Merge pull request #1695 from ucb-bar/remove-yosys-flag
Remove references to ENABLE_YOSYS
This commit is contained in:
@@ -28,7 +28,6 @@ EXTRA_SIM_CXXFLAGS ?=
|
|||||||
EXTRA_SIM_LDFLAGS ?=
|
EXTRA_SIM_LDFLAGS ?=
|
||||||
EXTRA_SIM_SOURCES ?=
|
EXTRA_SIM_SOURCES ?=
|
||||||
EXTRA_SIM_REQS ?=
|
EXTRA_SIM_REQS ?=
|
||||||
ENABLE_CUSTOM_FIRRTL_PASS += $(ENABLE_YOSYS_FLOW)
|
|
||||||
|
|
||||||
ifneq ($(ASPECTS), )
|
ifneq ($(ASPECTS), )
|
||||||
comma = ,
|
comma = ,
|
||||||
|
|||||||
@@ -123,8 +123,7 @@ The ``buildfile`` make target has dependencies on both (1) the Verilog that is e
|
|||||||
and (2) the mapping of memory instances in the design to SRAM macros;
|
and (2) the mapping of memory instances in the design to SRAM macros;
|
||||||
all files related to these two steps reside in the ``generated-src/chipyard.harness.TestHarness.TinyRocketConfig-ChipTop`` directory.
|
all files related to these two steps reside in the ``generated-src/chipyard.harness.TestHarness.TinyRocketConfig-ChipTop`` directory.
|
||||||
Note that the files in ``generated-src`` vary for each tool/technology flow.
|
Note that the files in ``generated-src`` vary for each tool/technology flow.
|
||||||
This especially applies to the Sky130 Commercial vs OpenROAD tutorial flows
|
This especially applies to the Sky130 Commercial vs OpenROAD tutorial flows, so these flows should be run in separate
|
||||||
(due to the ``ENABLE_YOSYS_FLOW`` flag present for the OpenROAD flow), so these flows should be run in separate
|
|
||||||
chipyard installations. If the wrong sources are generated, simply run ``make buildfile -B`` to rebuild all targets correctly.
|
chipyard installations. If the wrong sources are generated, simply run ``make buildfile -B`` to rebuild all targets correctly.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Prerequisites
|
|||||||
* OpenROAD flow tools (NOTE: tutorial may break with different tool versions):
|
* OpenROAD flow tools (NOTE: tutorial may break with different tool versions):
|
||||||
|
|
||||||
* **Yosys 0.27+3** (synthesis), install `using conda <https://anaconda.org/litex-hub/yosys>`__ or `from source <https://yosyshq.net/yosys/download.html>`__
|
* **Yosys 0.27+3** (synthesis), install `using conda <https://anaconda.org/litex-hub/yosys>`__ or `from source <https://yosyshq.net/yosys/download.html>`__
|
||||||
* **OpenROAD v2.0-7070-g0264023b6** (place-and-route), install `using conda <https://anaconda.org/litex-hub/openroad>`__ (note that GUI is disabled in conda package) or
|
* **OpenROAD v2.0-7070-g0264023b6** (place-and-route), install `using conda <https://anaconda.org/litex-hub/openroad>`__ (note that GUI is disabled in conda package) or
|
||||||
`from source <https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/docs/user/Build.md>`__ (git hash: 0264023b6c2a8ae803b8d440478d657387277d93)
|
`from source <https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/docs/user/Build.md>`__ (git hash: 0264023b6c2a8ae803b8d440478d657387277d93)
|
||||||
* **KLayout 0.28.5** (DEF to GDSII conversion, DRC), install `using conda <https://anaconda.org/litex-hub/klayout>`__ or `from source <https://www.klayout.de/build.html>`__
|
* **KLayout 0.28.5** (DEF to GDSII conversion, DRC), install `using conda <https://anaconda.org/litex-hub/klayout>`__ or `from source <https://www.klayout.de/build.html>`__
|
||||||
* **Magic 8.3.376** (DRC), install `using conda <https://anaconda.org/litex-hub/magic>`__ or `from source <http://www.opencircuitdesign.com/magic/install.html>`__
|
* **Magic 8.3.376** (DRC), install `using conda <https://anaconda.org/litex-hub/magic>`__ or `from source <http://www.opencircuitdesign.com/magic/install.html>`__
|
||||||
@@ -161,8 +161,7 @@ The ``buildfile`` make target has dependencies on both (1) the Verilog that is e
|
|||||||
and (2) the mapping of memory instances in the design to SRAM macros;
|
and (2) the mapping of memory instances in the design to SRAM macros;
|
||||||
all files related to these two steps reside in the ``generated-src/chipyard.harness.TestHarness.TinyRocketConfig-ChipTop`` directory.
|
all files related to these two steps reside in the ``generated-src/chipyard.harness.TestHarness.TinyRocketConfig-ChipTop`` directory.
|
||||||
Note that the files in ``generated-src`` vary for each tool/technology flow.
|
Note that the files in ``generated-src`` vary for each tool/technology flow.
|
||||||
This especially applies to the Sky130 Commercial vs OpenROAD tutorial flows
|
This especially applies to the Sky130 Commercial vs OpenROAD tutorial flows, so these flows should be run in separate
|
||||||
(due to the ``ENABLE_YOSYS_FLOW`` flag, explained below), so these flows should be run in separate
|
|
||||||
chipyard installations. If the wrong sources are generated, simply run ``make buildfile -B`` to rebuild all targets correctly.
|
chipyard installations. If the wrong sources are generated, simply run ``make buildfile -B`` to rebuild all targets correctly.
|
||||||
|
|
||||||
|
|
||||||
@@ -175,7 +174,6 @@ which will cause additional variables to be set in ``tutorial.mk``, a few of whi
|
|||||||
* ``DESIGN_CONF`` and ``EXTRA_CONFS`` allow for additonal design-specific overrides of the Hammer IR in ``example-sky130.yml``
|
* ``DESIGN_CONF`` and ``EXTRA_CONFS`` allow for additonal design-specific overrides of the Hammer IR in ``example-sky130.yml``
|
||||||
* ``VLSI_OBJ_DIR=build-sky130-openroad`` gives the build directory a unique name to allow running multiple flows in the same repo. Note that for the rest of the tutorial we will still refer to this directory in file paths as ``build``, again for brevity.
|
* ``VLSI_OBJ_DIR=build-sky130-openroad`` gives the build directory a unique name to allow running multiple flows in the same repo. Note that for the rest of the tutorial we will still refer to this directory in file paths as ``build``, again for brevity.
|
||||||
* ``VLSI_TOP`` is by default ``ChipTop``, which is the name of the top-level Verilog module generated in the Chipyard SoC configs. By instead setting ``VLSI_TOP=Rocket``, we can use the Rocket core as the top-level module for the VLSI flow, which consists only of a single RISC-V core (and no caches, peripherals, buses, etc). This is useful to run through this tutorial quickly, and does not rely on any SRAMs.
|
* ``VLSI_TOP`` is by default ``ChipTop``, which is the name of the top-level Verilog module generated in the Chipyard SoC configs. By instead setting ``VLSI_TOP=Rocket``, we can use the Rocket core as the top-level module for the VLSI flow, which consists only of a single RISC-V core (and no caches, peripherals, buses, etc). This is useful to run through this tutorial quickly, and does not rely on any SRAMs.
|
||||||
* ``ENABLE_YOSYS_FLOW = 1`` is required for synthesis through Yosys. This reverts to the Scala FIRRTL Compiler so that unsupported multidimensional arrays are not generated in the Verilog.
|
|
||||||
|
|
||||||
Running the VLSI Flow
|
Running the VLSI Flow
|
||||||
---------------------
|
---------------------
|
||||||
@@ -275,7 +273,7 @@ This is because Magic and Netgen, as of the writing of this tutorial, do not hav
|
|||||||
so to view the DRC/LVS results for debugging you must launch the tool interactively, then run DRC/LVS checks,
|
so to view the DRC/LVS results for debugging you must launch the tool interactively, then run DRC/LVS checks,
|
||||||
which is done by the ``generated-scripts/view_[drc|lvs]`` scripts. This is not the case for KLayout, which does have a loadable database format.
|
which is done by the ``generated-scripts/view_[drc|lvs]`` scripts. This is not the case for KLayout, which does have a loadable database format.
|
||||||
|
|
||||||
Below is the window you should see when loading the KLayout DRC results interactively. Note that most of these DRC errors are
|
Below is the window you should see when loading the KLayout DRC results interactively. Note that most of these DRC errors are
|
||||||
from special rules relating to Sky130 SRAMs, which have been verified separately. In the future the KLayout tool plugin should blackbox these
|
from special rules relating to Sky130 SRAMs, which have been verified separately. In the future the KLayout tool plugin should blackbox these
|
||||||
SRAM macros by default, but this feature does not exist yet.
|
SRAM macros by default, but this feature does not exist yet.
|
||||||
|
|
||||||
|
|||||||
@@ -22,27 +22,16 @@ vlsi.inputs.placement_constraints:
|
|||||||
bottom: 10
|
bottom: 10
|
||||||
|
|
||||||
# Place SRAM memory instances
|
# Place SRAM memory instances
|
||||||
# SRAM paths and configurations are slightly different due to ENABLE_YOSYS_FLOW flag
|
# data cache
|
||||||
# data cache
|
- path: "RocketTile/dcache/data/data_arrays_0/data_arrays_0_ext/mem_0_0"
|
||||||
- path: "RocketTile/dcache/data/data_arrays_0_0/data_arrays_0_0_ext/mem_0_0"
|
|
||||||
type: hardmacro
|
type: hardmacro
|
||||||
x: 50
|
x: 50
|
||||||
y: 50
|
y: 50
|
||||||
orientation: r90
|
orientation: r90
|
||||||
- path: "RocketTile/dcache/data/data_arrays_0_1/data_arrays_0_0_ext/mem_0_0"
|
- path: "RocketTile/dcache/data/data_arrays_0/data_arrays_0_ext/mem_1_0"
|
||||||
type: hardmacro
|
type: hardmacro
|
||||||
x: 50
|
x: 50
|
||||||
y: 450
|
y: 800
|
||||||
orientation: r90
|
|
||||||
- path: "RocketTile/dcache/data/data_arrays_0_2/data_arrays_0_0_ext/mem_0_0"
|
|
||||||
type: hardmacro
|
|
||||||
x: 50
|
|
||||||
y: 850
|
|
||||||
orientation: r90
|
|
||||||
- path: "RocketTile/dcache/data/data_arrays_0_3/data_arrays_0_0_ext/mem_0_0"
|
|
||||||
type: hardmacro
|
|
||||||
x: 50
|
|
||||||
y: 1250
|
|
||||||
orientation: r90
|
orientation: r90
|
||||||
|
|
||||||
# tag array
|
# tag array
|
||||||
@@ -53,7 +42,7 @@ vlsi.inputs.placement_constraints:
|
|||||||
orientation: r90
|
orientation: r90
|
||||||
|
|
||||||
# instruction cache
|
# instruction cache
|
||||||
- path: "RocketTile/frontend/icache/data_arrays_0_0/data_arrays_0_0_0_ext/mem_0_0"
|
- path: "RocketTile/frontend/icache/data_arrays_0_0/data_arrays_0_0_ext/mem_0_0"
|
||||||
type: hardmacro
|
type: hardmacro
|
||||||
x: 50
|
x: 50
|
||||||
y: 2100
|
y: 2100
|
||||||
|
|||||||
@@ -54,8 +54,6 @@ vlsi.inputs.placement_constraints:
|
|||||||
bottom: 10
|
bottom: 10
|
||||||
|
|
||||||
# Place SRAM memory instances
|
# Place SRAM memory instances
|
||||||
# SRAM paths and configurations are slightly different due to ENABLE_YOSYS_FLOW flag
|
|
||||||
# data cache
|
|
||||||
- path: "ChipTop/system/tile_prci_domain/tile_reset_domain_tile/dcache/data/data_arrays_0_0/data_arrays_0_0_ext/mem_0_0"
|
- path: "ChipTop/system/tile_prci_domain/tile_reset_domain_tile/dcache/data/data_arrays_0_0/data_arrays_0_0_ext/mem_0_0"
|
||||||
type: hardmacro
|
type: hardmacro
|
||||||
x: 50
|
x: 50
|
||||||
|
|||||||
@@ -48,6 +48,11 @@ vlsi.inputs.placement_constraints:
|
|||||||
x: 50
|
x: 50
|
||||||
y: 50
|
y: 50
|
||||||
orientation: r90
|
orientation: r90
|
||||||
|
- path: "ChipTop/system/tile_prci_domain/tile_reset_domain_tile/dcache/data/data_arrays_0/data_arrays_0_ext/mem_1_0"
|
||||||
|
type: hardmacro
|
||||||
|
x: 50
|
||||||
|
y: 800
|
||||||
|
orientation: r90
|
||||||
|
|
||||||
# tag array
|
# tag array
|
||||||
- path: "ChipTop/system/tile_prci_domain/tile_reset_domain_tile/frontend/icache/tag_array_0/tag_array_0_ext/mem_0_0"
|
- path: "ChipTop/system/tile_prci_domain/tile_reset_domain_tile/frontend/icache/tag_array_0/tag_array_0_ext/mem_0_0"
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ ifeq ($(tutorial),sky130-openroad)
|
|||||||
example-designs/sky130-openroad-rockettile.yml, )
|
example-designs/sky130-openroad-rockettile.yml, )
|
||||||
VLSI_OBJ_DIR ?= build-sky130-openroad
|
VLSI_OBJ_DIR ?= build-sky130-openroad
|
||||||
INPUT_CONFS ?= $(TOOLS_CONF) $(TECH_CONF) $(DESIGN_CONFS) $(EXTRA_CONFS)
|
INPUT_CONFS ?= $(TOOLS_CONF) $(TECH_CONF) $(DESIGN_CONFS) $(EXTRA_CONFS)
|
||||||
# Yosys compatibility for CIRCT-generated Verilog, at the expense of elaboration time.
|
# Yosys compatibility for CIRCT-generated Verilog
|
||||||
ENABLE_YOSYS_FLOW = 1
|
ENABLE_YOSYS_FLOW = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user