Update Sky130-OpenROAD-Tutorial.rst
This commit is contained in:
@@ -72,18 +72,6 @@ Pull the Hammer environment into the shell:
|
||||
export HAMMER_HOME=$PWD/hammer
|
||||
source $HAMMER_HOME/sourceme.sh
|
||||
|
||||
Building the Design
|
||||
--------------------
|
||||
To elaborate the ``TinyRocketConfig`` and set up all prerequisites for the build system to push the design and SRAM macros through the flow:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
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.
|
||||
|
||||
For the curious, ``make buildfile`` generates a set of Make targets in ``build/hammer.d``. It needs to be re-run if environment variables are changed. It is recommended that you edit these variables directly in the Makefile rather than exporting them to your shell environment.
|
||||
|
||||
Running the VLSI Flow
|
||||
---------------------
|
||||
|
||||
@@ -101,8 +89,46 @@ First, set ``technology.sky130.<sky130A, sky130_nda, openram_lib>`` to the absol
|
||||
for details about the PDK setup.
|
||||
|
||||
|
||||
Generating SRAMs
|
||||
----------------
|
||||
To map the generic memory macros in the generarted Verilog to the SRAMs in your technology process, run the following command:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
make srams tech_name=sky130 CONFIG=TinyRocketConfig
|
||||
|
||||
Generating Verilog
|
||||
------------------
|
||||
To elaborate the ``TinyRocketConfig`` from Chisel to Verilog, run:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
make verilog 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 resulting verilog is located in ``./generated-src/chipyard.TestHarness.TinyRocketConfig/chipyard.TestHarness.TinyRocketConfig.top.v``.
|
||||
|
||||
Note that in the generated Verilog, there are generic memory macros for the various memory components (dcache, icache, tag array, PTW).
|
||||
This is the same Verilog that is generated for RTL simulations in the ``~chipyard/sims/verilator`` directory, see ` :ref:`Simulation/Software-RTL-Simulation:sw-rtl-sim-intro` for directions on how to run these simulations.
|
||||
|
||||
Building the Design
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
To set up all prerequisites for the build system to push the design and SRAM macros through the flow:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
make buildfile tech_name=sky130 CONFIG=TinyRocketConfig
|
||||
|
||||
For the curious, ``make buildfile`` generates a set of Make targets in ``build/hammer.d``. It needs to be re-run if environment variables are changed. It is recommended that you edit these variables directly in the Makefile rather than exporting them to your shell environment.
|
||||
|
||||
|
||||
example-openroad.yml
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
This contains the Hammer configuration for the OpenROAD tool flow. It selects tools for the SRAM "compiler" (already specified in ``example-sky130.yml``), synthesis (Yosys), place and route (OpenROAD), DRC (Magic), and LVS (NetGen). For the remaining commands, we will need to specify this file as the tool configuration to hammer via the ``TOOLS_CONF`` Makefile variable.
|
||||
|
||||
|
||||
Synthesis
|
||||
^^^^^^^^^
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
make syn tech_name=sky130 TOOLS_CONF=example-openroad.yml CONFIG=TinyRocketConfig
|
||||
|
||||
Reference in New Issue
Block a user