-
Notifications
You must be signed in to change notification settings - Fork 415
Update Documentation with recent changes for Yosys Plugins #2139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 7 commits
ad56bec
6b7e690
4fc0e92
34ca0c4
d900c7a
d5192c1
82a50d8
313c146
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -60,6 +60,44 @@ For example:: | |
will run the VTR flow to map the circuit ``my_circuit.v`` onto the architecture ``my_arch.xml``; the arguments ``--pack`` and ``--place`` will be passed to VPR (since they are unrecognized arguments to ``run_vtr_flow.py``). | ||
They will cause VPR to perform only :ref:`packing and placement <general_options>`. | ||
|
||
.. code-block:: bash | ||
|
||
# Using the Yosys conventional Verilog parser | ||
./run_vtr_flow <path/to/Verilog/File> <path/to/arch/file> -elaborator yosys -fflegalize | ||
|
||
# Using the Yosys-SystemVerilog plugin if installed, otherwise the Yosys conventional Verilog parser | ||
./run_vtr_flow <path/to/SystemVerilog/File> <path/to/arch/file> -elaborator yosys -fflegalize | ||
|
||
# Using the Surelog plugin if installed, otherwise failure on the unsupported file type | ||
./run_vtr_flow <path/to/UHDM/File> <path/to/arch/file> -elaborator yosys -fflegalize | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems like we should explain what a UHDM file is and how it was created (run an earlier Surelog command?). Can be brief and include a link to the UHDM documentation, but should give some idea I think. |
||
|
||
Passes a Verilog/SystemVerilog/UHDM file to Yosys for performing elaboration. | ||
sdamghan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
The BLIF elaboration and partial mapping phases will be executed on the generated netlist by Odin-II, and all latches in the Yosys+Odin-II output file will be rising edge. | ||
Then ABC and VPR perform the default behaviour for the VTR flow, respectively. | ||
|
||
.. code-block:: bash | ||
|
||
# Using the Yosys conventional Verilog parser | ||
./run_vtr_flow <path/to/Verilog/File> <path/to/arch/file> -start yosys | ||
|
||
# Using the Yosys-SystemVerilog plugin if installed, otherwise the Yosys conventional Verilog parser | ||
./run_vtr_flow <path/to/SystemVerilog/File> <path/to/arch/file> -start yosys | ||
|
||
Running the VTR flow with the default configuration using the Yosys standalone front-end. | ||
The parser for these runs is considered the Yosys conventional Verilog/SystemVerilog parser (i.e., ``read_verilog -sv``), as the parser is not explicitly specified. | ||
|
||
.. code-block:: bash | ||
|
||
# Using the Yosys-SystemVerilog plugin if installed, otherwise the Yosys conventional Verilog parser | ||
./run_vtr_flow <path/to/SystemVerilog/File> <path/to/arch/file> -start yosys -parser yosys-plugin | ||
|
||
# Using the Surelog plugin if installed, otherwise failure on the unsupported file type | ||
./run_vtr_flow <path/to/UHDM/File> <path/to/arch/file> -start yosys -parser surelog | ||
|
||
Running the default VTR flow using the Yosys standalone front-end. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If not previously explained (and I don't see one) what UHDM is should be explained. Why/how would I use UHDM instead of the direct systemVerilog reading? |
||
The Yosys HDL parser is considered as Yosys-SystemVerilog plugin (i.e., ``read_systemverilog``) and Yosys UHDM plugin (i.e., ``read_uhdm``), respectively. | ||
It is worth mentioning that utilizing Yosys plugins requires passing the ``-DYOSYS_SV_UHDM_PLUGIN=ON`` compile flag to build and install the plugins for the Yosys front-end. | ||
|
||
Detailed Command-line Options | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
|
@@ -72,6 +110,7 @@ Detailed Command-line Options | |
Accepted values: | ||
|
||
* ``odin`` | ||
* ``yosys`` | ||
* ``abc`` | ||
* ``scripts`` | ||
* ``vpr`` | ||
|
@@ -86,6 +125,7 @@ Detailed Command-line Options | |
Accepted values: | ||
|
||
* ``odin`` | ||
* ``yosys`` | ||
* ``abc`` | ||
* ``scripts`` | ||
* ``vpr`` | ||
|
@@ -183,3 +223,66 @@ Detailed Command-line Options | |
scenarios. This option is needed for running the entire VTR flow with | ||
additional parameters for ODIN II that are provided from within the | ||
.xml file. | ||
|
||
.. option:: -use_odin_simulation | ||
|
||
Tells ODIN II to run simulation. | ||
|
||
.. option:: -min_hard_mult_size <min_hard_mult_size> | ||
|
||
Tells ODIN II the minimum multiplier size to be implemented using hard multiplier. | ||
|
||
**Default:** 3 | ||
|
||
.. option:: -min_hard_adder_size <MIN_HARD_ADDER_SIZE> | ||
|
||
Tells ODIN II the minimum adder size that should be implemented using hard adder. | ||
sdamghan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
**Default:** 1 | ||
|
||
.. option:: -elaborator <ELABORATOR> | ||
|
||
Specifies the elaborator of the synthesis flow for ODIN II [odin, yosys] | ||
|
||
**Default:** odin | ||
|
||
.. option:: -top_module <TOP_MODULE> | ||
|
||
Specifies the name of the module in the design that should be considered as top | ||
|
||
.. option:: -coarsen | ||
|
||
Notifies ODIN II if the input BLIF is coarse-grained | ||
sdamghan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
**Default:** False | ||
|
||
.. option:: -fflegalize | ||
|
||
Makes flip-flops rising edge for coarse-grained input BLIFs in the partial technology mapping phase (ODIN II synthesis flow generates rising edge FFs by default, should be used for Yosys+Odin-II) | ||
|
||
**Default:** False | ||
|
||
.. option:: -encode_names | ||
|
||
Enables ODIN II utilization of operation-type-encoded naming style for Yosys coarse-grained RTLIL nodes | ||
sdamghan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
**Default:** False | ||
|
||
.. option:: -yosys_script <YOSYS_SCRIPT> | ||
|
||
Supplies Yosys with a .ys script file (similar to Tcl script), including the synthesis steps. | ||
|
||
**Default:** None | ||
|
||
.. option:: -parser <PARSER> | ||
|
||
Specify a parser for the Yosys synthesizer [yosys (Verilog-2005), surelog (UHDM), yosys-plugin (SystemVerilog)]. | ||
The script considers the Yosys conventional Verilog parser if this argument is not used. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. considers -> uses (And maybe this is the right place to explain UHDM) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, need to explain UHDM (internal data format generated by ??, or a synonym for a .sv extension)? surelog (UHDM) --> surelog (SystemVerilog). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tried to address this concern in the last commit, by adding a note section below the |
||
|
||
**Default:** yosys | ||
|
||
.. note:: | ||
|
||
The ``-parser`` option is only available for the Yosys standalone front-end. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How does the yosys+odin-II flow automatically determine whether to use the yosys-plugin vs. surelog extension for .sv files? Does it assume the .sv has already been converted to uhdm in order to use surelog? (again, I think somewhere we need to define where UHDM comes from/how it is created). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @vaughnbetz , it seems like there was a misunderstanding for me about Surelog. I test the tool with a different extension than |
||
On the other hand, the Yosys+Odin-II front-end automatically determine the Yosys HDL parser according to the input file extension. | ||
If the input HDL type is not supported by the Yosys conventional Verilog front-end (i.e., ``read_verilog -sv``) and the Yosys plugins are not installed, the Yosys+Odin-II flow results in failure. |
Uh oh!
There was an error while loading. Please reload this page.