-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Daniel Lim Wee Soong <[email protected]>
- Loading branch information
1 parent
0fbd97c
commit 2f24549
Showing
6 changed files
with
129 additions
and
111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
SymbiFlow Verilog to VtR XML (v2x) | ||
=================================== | ||
|
||
|
||
.. image:: https://readthedocs.org/projects/python-symbiflow-v2x/badge/?version=latest | ||
:target: https://python-symbiflow-v2x.readthedocs.io/en/latest/?badge=latest | ||
:alt: Documentation Status | ||
|
||
.. image:: https://travis-ci.com/SymbiFlow/python-symbiflow-v2x.svg?branch=master | ||
:target: https://travis-ci.com/SymbiFlow/python-symbiflow-v2x | ||
:alt: Build Status | ||
|
||
|
||
v2x is a tool for converting specialized annotated Verilog models into XML needed for | ||
`Verilog to Routing flow <https://docs.verilogtorouting.org/en/latest/arch/reference/>`_. | ||
|
||
Documentation can be found at `https://python-symbiflow-v2x.readthedocs.io/en/latest/ <https://python-symbiflow-v2x.readthedocs.io/en/latest/examples.html>`_. | ||
|
||
Installation | ||
------------ | ||
|
||
v2x can be installed from a local git repository using pip. | ||
|
||
.. code-block:: | ||
cd python-symbiflow-v2x | ||
pip install . | ||
Alternatively, it can be installed from GitHub directly. | ||
|
||
.. code-block:: | ||
pip install git+https://github.com/SymbiFlow/python-symbiflow-v2x.git#egg=python-symbiflow-v2x | ||
Usage | ||
----- | ||
|
||
After installing v2x, you can run ``python -m v2x`` to use it. | ||
|
||
.. code-block:: | ||
python -m v2x -h | ||
usage: __main__.py [-h] [--top TOP] [--outfile OUTFILE] [--includes INCLUDES] | ||
[--mode {pb_type,model}] | ||
input.v [input.v ...] | ||
Verilog to XML | ||
positional arguments: | ||
input.v One or more Verilog input files, that will be passed | ||
to Yosys internally. They should be enough to generate | ||
a flattened representation of the model, so that paths | ||
through the model can be determined. | ||
optional arguments: | ||
-h, --help show this help message and exit | ||
--top TOP Top level module, will usually be automatically | ||
determined from the file name im.v | ||
--outfile OUTFILE, -o OUTFILE | ||
Output filename, default 'output.xml' | ||
--includes INCLUDES Comma separate list of include directories. | ||
--mode {pb_type,model} | ||
Output file type, possible values are: pb_type and | ||
model. Default value is pb_type | ||
For example, to generate a pb_type xml file from adder.v, run | ||
|
||
.. code-block:: | ||
python -m v2x -o adder.pb_type.xml adder.v | ||
Or, to generate a model xml file, run | ||
|
||
.. code-block:: | ||
python -m v2x --mode model -o adder.model.xml adder.v | ||
v2x expects the module name to be the same as the file name. If it is different, make sure to specifiy it with the ``--top`` argument. | ||
|
||
.. code-block:: | ||
python -m v2x --top BLOCK -o adder.pb_type.xml adder.v | ||
Tests | ||
----- | ||
|
||
The test cases are stored in tests/, and pytest can be used to run them. | ||
|
||
.. code-block:: | ||
rm -rf build # run this step so that pytest uses the latest files for the tests | ||
pytest -vv | ||
If you are making changes to any python code, make sure that they follow the PEP8 style guide by running flake8. | ||
|
||
.. code-block:: | ||
flake8 tests | ||
flake8 v2x | ||
Documentation | ||
------------- | ||
|
||
We use sphinx for our documentation and the files are stored in docs/. To host it locally (if you are planning to update it), you can use the Makefile inside. | ||
|
||
First, run ``make env`` to prepare a Conda environment that contains the necessary packages to build and host the documentation site. After that, simply run ``make livehtml`` which starts a local server running at port 8000 with the documentation site. | ||
|
||
.. code-block:: | ||
cd docs | ||
make env | ||
make livehtml | ||
Talks | ||
----- | ||
|
||
**VPR device models generation from Verilog with V2X - Karol Gugala - ORConf 2019** | ||
|
||
|
||
.. image:: https://img.youtube.com/vi/a31vH_tZLBM/0.jpg | ||
:target: https://www.youtube.com/watch?v=a31vH_tZLBM | ||
:alt: v2x orconf talk | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
.. mdinclude:: ../README.md | ||
.. include:: ../README.rst | ||
|
||
.. toctree:: | ||
introduction.rst | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters