Verilog to Routing XML file generation from Verilog (`python-symbiflow-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 ``v2x`` to use it.

.. code-block::

   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::

   v2x -o adder.pb_type.xml adder.v

Or, to generate a model xml file, run 

.. code-block::

   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::

   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

