You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/src/quickstart/index.rst
+38-7Lines changed: 38 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Download VTR
12
12
13
13
The first step is to `download VTR <https://verilogtorouting.org/download/>`_ and extract VTR on your local machine.
14
14
15
-
.. note:: Developers planning to modify VTR should checkout the `VTR git repository <https://github.com/verilog-to-routing/vtr-verilog-to-routing/>`_.
15
+
.. note:: Developers planning to modify VTR should clone the `VTR git repository <https://github.com/verilog-to-routing/vtr-verilog-to-routing/>`_.
16
16
17
17
Build VTR
18
18
---------
@@ -23,13 +23,21 @@ On most unix-like systems you can run:
23
23
24
24
> make
25
25
26
-
from the VTR root directory (here after referred to as :term:`$VTR_ROOT`) to build VTR.
26
+
from the VTR root directory (hereafter referred to as :term:`$VTR_ROOT`) to build VTR.
27
27
28
28
.. note::
29
29
30
30
In the VTR documentation lines starting with ``>`` (like ``> make`` above), indicate a command (i.e. ``make``) to run from your terminal.
31
31
When the ``\`` symbol appears at the end of a line, it indicates line continuation.
32
32
33
+
.. note::
34
+
35
+
:term:`$VTR_ROOT` refers to the root directory of the VTR project source tree.
36
+
To run the examples in this guide on your machine, either:
37
+
38
+
* define VTR_ROOT as a variable in your shell (e.g. if ``~/trees/vtr`` is the path to the VTR source tree on your machine, run the equivalent of ``VTR_ROOT=~/trees/vtr`` in BASH) which will allow you to run the commands as written in this guide, or
39
+
* manually replace `$VTR_ROOT` in the example commandss below with your path to the VTR source tree.
40
+
33
41
.. note:: If VTR fails to build you may need to install the :ref:`required dependencies <building_vtr>`.
34
42
35
43
For more details on building VTR on various operating systems/platforms see :ref:`Building VTR<building_vtr>`.
@@ -70,7 +78,23 @@ We do this by passing these files to the VPR tool, and also specifying that we w
70
78
$VTR_ROOT/vtr_flow/benchmarks/blif/tseng.blif \
71
79
--route_chan_width 100
72
80
73
-
This will produce a large amount of output as VPR implements the circuit, but at the end you should see something similar to::
81
+
This will produce a large amount of output as VPR implements the circuit, but you should see something similar to::
82
+
83
+
VPR FPGA Placement and Routing.
84
+
Version: 8.1.0-dev+2b5807ecf
85
+
Revision: v8.0.0-1821-g2b5807ecf
86
+
Compiled: 2020-05-21T16:39:33
87
+
Compiler: GNU 7.3.0 on Linux-4.15.0-20-generic x86_64
@@ -148,12 +172,12 @@ As an exercise try the following:
148
172
.. note::
149
173
If you do not provide :option:`--analysis <vpr --analysis>`, VPR will re-implement the circuit from scratch.
150
174
If you also specify :option:`--disp <vpr --disp>` ``on``, you can see how VPR modifies the implementation as it runs.
151
-
By default ``--disp on`` it stops at key stages to allow you to view and explore the implementation.
175
+
By default ``--disp on`` stops at key stages to allow you to view and explore the implementation.
152
176
You will need to press the ``Proceed`` button in the GUI to allow VPR to continue to the next stage.
153
177
154
178
Running the VTR Flow
155
179
====================
156
-
In the previous section we have implement a pre-synthesized circuit onto a pre-existing FPGA architecture using VPR, and visualized the result.
180
+
In the previous section we have implemented a pre-synthesized circuit onto a pre-existing FPGA architecture using VPR, and visualized the result.
157
181
We now turn to how we can implement *our own circuit* on a pre-existing FPGA architecture.
158
182
159
183
To do this we begin by describing a circuit behaviourly using the Verilog Hardware Description Language (HDL).
@@ -215,7 +239,7 @@ which when run should end with something like::
215
239
where ``Odin ran with exit status: 0`` indicates Odin successfully synthesized our verilog.
216
240
217
241
We can now take a look at the circuit which ODIN produced (``blink.odin.blif``).
218
-
The file is long and likely harder to follow than our code in ``blink.v``, however it implements the same functionality.
242
+
The file is long and likely harder to follow than our code in ``blink.v``; however it implements the same functionality.
219
243
Some interesting highlights are shown below:
220
244
221
245
.. literalinclude:: blink.odin.blif
@@ -272,7 +296,7 @@ If we now inspect the produced BLIF file (``blink.abc_no_clock.blif``) we see th
272
296
ABC has kept the ``.latch`` and ``.subckt adder`` primitives, but has significantly simplified the other logic (``.names``).
273
297
274
298
275
-
However, there is an issue with the above BLIF produced by ABC: the latches (rising edge Flip-Flops) do not have any clocks specified, which is information required by VPR.
299
+
However, there is an issue with the above BLIF produced by ABC: the latches (rising edge Flip-Flops) do not have any clocks or edge sensitivity specified, which is information required by VPR.
276
300
277
301
Re-inserting clocks
278
302
^^^^^^^^^^^^^^^^^^^
@@ -387,6 +411,13 @@ There are also multiple log files (including for ABC, ODIN and VPR), which by co
With the main log files of interest including the ODIN log file (``odin.out``), log files produced by ABC (e.g. ``abc0.out``), and the VPR log file (``vpr.out``).
415
+
416
+
.. note::
417
+
418
+
ABC may be invoked multiple times if a circuit has multiple clock domains, producing multiple log files (``abc0.out``, ``abc1.out``, ...)
419
+
420
+
390
421
You will also see there are several BLIF files produced:
0 commit comments