Merge branch 'dev-sky130' of https://github.com/ucb-bar/chipyard into dev-sky130

This commit is contained in:
Nayiri K
2022-02-11 22:30:33 -08:00

View File

@@ -42,16 +42,11 @@ This example gives a suggested file structure and build system. The ``vlsi/`` fo
* Core, tool, tech repositories. * Core, tool, tech repositories.
* view_gds.py
* A convenience script to view a layout using gdspy. Note that this will be very slow for large layouts (e.g. a Rocket core)!
Prerequisites Prerequisites
------------- -------------
* Python 3.4+ * Python 3.4+
* numpy package * numpy package
* gdspy 1.4 package if using ``view_gds.py`` script
* Genus, Innovus, and Calibre licenses * Genus, Innovus, and Calibre licenses
* Sky130 PDK, install using `these directions <https://github.com/ucb-bar/hammer/blob/master/src/hammer-vlsi/technology/sky130/README.md>`__ * Sky130 PDK, install using `these directions <https://github.com/ucb-bar/hammer/blob/master/src/hammer-vlsi/technology/sky130/README.md>`__
@@ -79,7 +74,7 @@ To elaborate the ``TinyRocketConfig`` and set up all prerequisites for the build
.. code-block:: shell .. code-block:: shell
make buildfile CONFIG=TinyRocketConfig make buildfile tech_name=sky130 CONFIG=TinyRocketConfig
The ``CONFIG=TinyRocketConfig`` selects the target generator config in the same manner as the rest of the Chipyard framework. This elaborates a stripped-down Rocket Chip in the interest of minimizing tool runtime. The ``CONFIG=TinyRocketConfig`` selects the target generator config in the same manner as the rest of the Chipyard framework. This elaborates a stripped-down Rocket Chip in the interest of minimizing tool runtime.
@@ -106,7 +101,7 @@ Synthesis
^^^^^^^^^ ^^^^^^^^^
.. code-block:: shell .. code-block:: shell
make syn CONFIG=TinyRocketConfig make syn tech_name=sky130 CONFIG=TinyRocketConfig
Post-synthesis logs and collateral are in ``build/syn-rundir``. The raw QoR data is available at ``build/syn-rundir/reports``, and methods to extract this information for design space exploration are a WIP. Post-synthesis logs and collateral are in ``build/syn-rundir``. The raw QoR data is available at ``build/syn-rundir/reports``, and methods to extract this information for design space exploration are a WIP.
@@ -114,7 +109,7 @@ Place-and-Route
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
.. code-block:: shell .. code-block:: shell
make par CONFIG=TinyRocketConfig make par tech_name=sky130 CONFIG=TinyRocketConfig
After completion, the final database can be opened in an interactive Innovus session via ``./build/par-rundir/generated-scripts/open_chip``. After completion, the final database can be opened in an interactive Innovus session via ``./build/par-rundir/generated-scripts/open_chip``.
@@ -122,24 +117,16 @@ Intermediate database are written in ``build/par-rundir`` between each step of t
Timing reports are found in ``build/par-rundir/timingReports``. They are gzipped text files. Timing reports are found in ``build/par-rundir/timingReports``. They are gzipped text files.
``gdspy`` can be used to `view the final layout <https://gdspy.readthedocs.io/en/stable/reference.html?highlight=scale#layoutviewer>`__, but it is somewhat crude and slow (wait a few minutes for it to load):
.. code-block:: shell
python3 view_gds.py build/chipyard.TestHarness.TinyRocketConfig/par-rundir/ChipTop.gds
By default, this script only shows the M2 thru M4 routing. Layers can be toggled in the layout viewer's side pane and ``view_gds.py`` has a mapping of layer numbers to layer names.
DRC & LVS DRC & LVS
^^^^^^^^^ ^^^^^^^^^
To run DRC & LVS, and view the results in Calibre: To run DRC & LVS, and view the results in Calibre:
.. code-block:: shell .. code-block:: shell
make drc CONFIG=TinyRocketConfig make drc tech_name=sky130 CONFIG=TinyRocketConfig
./build/drc-rundir/generated-scripts/view-drc ./build/chipyard.TestHarness.TinyRocketConfig-ChipTop/drc-rundir/generated-scripts/view_drc
make lvs CONFIG=TinyRocketConfig make lvs tech_name=sky130 CONFIG=TinyRocketConfig
./build/lvs-rundir/generated-scripts/view-lvs ./build/chipyard.TestHarness.TinyRocketConfig-ChipTop/lvs-rundir/generated-scripts/view_lvs
Some DRC errors are expected from this PDK, especially with regards to the SRAMs, as explained in the Some DRC errors are expected from this PDK, especially with regards to the SRAMs, as explained in the
`Sky130 Hammer plugin README <https://github.com/ucb-bar/hammer/blob/master/src/hammer-vlsi/technology/sky130/README.md>`__. `Sky130 Hammer plugin README <https://github.com/ucb-bar/hammer/blob/master/src/hammer-vlsi/technology/sky130/README.md>`__.
@@ -163,7 +150,7 @@ Post-P&R power and rail (IR drop) analysis is supported with Voltus:
.. code-block:: shell .. code-block:: shell
make power-par CONFIG=TinyRocketConfig make power-par tech_name=sky130 CONFIG=TinyRocketConfig
If you append the ``BINARY`` variable to the command, it will use the activity file generated from a ``sim-<syn/par>-debug`` run and report dynamic power & IR drop from the toggles encoded in the waveform. If you append the ``BINARY`` variable to the command, it will use the activity file generated from a ``sim-<syn/par>-debug`` run and report dynamic power & IR drop from the toggles encoded in the waveform.