-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge the Cadence and Synopsys plugins into Hammer (#713)
* merge synopsys and cadence plugins into hammer * get e2e tests working with asap7 on a machines * add ICV link to docs * incorporate genus retiming commit * incorporate genus ILM blackboxes commit * fix type error * add defines for sky130 post-syn sim * Update keys for sky130 at BWRC used for #740 * -top should be optional (#34) * extraneous type:ignores with local mypy * Revert "extraneous type:ignores with local mypy" This reverts commit b0f5f95. * openroad at bwrc moved to common location --------- Co-authored-by: Harrison Liew <[email protected]>
- Loading branch information
1 parent
d60afc0
commit 419766d
Showing
57 changed files
with
5,554 additions
and
321 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 |
---|---|---|
@@ -1,12 +1,4 @@ | ||
[submodule "e2e/hammer-cadence-plugins"] | ||
path = e2e/hammer-cadence-plugins | ||
url = [email protected]:ucb-bar/hammer-cadence-plugins | ||
branch = packaging | ||
[submodule "e2e/hammer-mentor-plugins"] | ||
path = e2e/hammer-mentor-plugins | ||
url = [email protected]:ucb-bar/hammer-mentor-plugins | ||
branch = packaging | ||
[submodule "e2e/hammer-synopsys-plugins"] | ||
path = e2e/hammer-synopsys-plugins | ||
url = [email protected]:ucb-bar/hammer-synopsys-plugins | ||
branch = packaging | ||
branch = master |
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 @@ | ||
../../hammer/drc/icv/README.md |
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,2 +1,3 @@ | ||
poetry.lock | ||
*.log | ||
obj_dir* |
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 @@ | ||
include obj_dir/hammer.d |
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,31 +1,60 @@ | ||
# Hammer End-to-End Integration Tests | ||
|
||
This folder contains an end-to-end (RTL -> GDS) smoketest flow using Hammer, using either of the OpenROAD or Cadence toolchains, and the ASAP7 or Skywater 130 PDKs. | ||
This folder contains an end-to-end (RTL -> GDS) smoketest flow using Hammer, using the Cadence toolchain, and the ASAP7 or Skywater 130 PDKs. | ||
|
||
## Setup | ||
|
||
### Environment | ||
The integration tests use Hammer as a source dependency, so create the e2e poetry environment. | ||
|
||
This repo has environment configs (commercial CAD tool paths and license servers) for Berkeley EECS compute nodes (BWRC, Millennium, and instructional machines) in `env`. | ||
Add a file for your specific environment in `env` modeled after the provided files. | ||
```shell | ||
poetry install | ||
poetry shell | ||
``` | ||
|
||
### PDKs | ||
We provide configs for Berkeley EECS compute nodes: BWRC (`-bwrc`), Millennium (`-a`), and instructional machines (`-inst`). | ||
|
||
#### ASAP7 | ||
- Environment configs (commercial CAD tool paths and license servers) are in `env` | ||
- PDK configs for ASAP7 and sky130 (pointers to PDK paths and CAD tool versions) are in `pdks` | ||
- The common design config (which CAD tool plugins to use and the design input files) in `configs/common.yml` | ||
- The PDK specific design config (clock, placement, and pin constraints, and which SRAM generator to use) in `configs/{asap7,sky130}.yml` | ||
|
||
If you're using a Berkeley EECS compute node, find the ASAP7 install configs in `pdks/asap7-{a,bwrc,inst}.yml`. | ||
First, use Hammer to construct a Makefile fragment with targets for all parts of the RTL -> GDS flow. | ||
Specify the configs according to which PDK and environment you are using. | ||
|
||
If you're using another environment: | ||
```shell | ||
hammer-vlsi -e env/a-env.yml -p pdks/asap7-a.yml -p configs/common.yml -p configs/asap7.yml build | ||
``` | ||
|
||
1. Clone the [asap7 repo](https://github.com/The-OpenROAD-Project/asap7) | ||
2. Create an ASAP7 install config modeled after the configs in `pdks/asap7{a,bwrc,inst}.yml` | ||
Hammer will generate a Makefile fragment in `obj_dir/hammer.d`. | ||
|
||
### CAD Tools | ||
### Run the Flow | ||
|
||
### Designs | ||
- RTL simulation | ||
- `make sim-rtl HAMMER_EXTRA_ARGS="-p configs/sim.yml"` | ||
- Generated waveform in `obj_dir/sim-rtl-rundir/output.fsdb` | ||
- Synthesis | ||
- `make syn` | ||
- Gate-level netlist in `obj_dir/syn-rundir/pass.mapped.v` | ||
- Post-Synthesis simulation | ||
- `make syn-to-sim HAMMER_EXTRA_ARGS="-p configs/syn-sim.yml"` | ||
- `make sim-syn HAMMER_EXTRA_ARGS="-p configs/syn-sim.yml"` | ||
- Generated waveform and register forcing ucli script in `obj_dir/sim-syn-rundir` | ||
- PnR | ||
- `make syn-to-par` | ||
- `make par` | ||
- LVS netlist (`pass.lvs.v`) and GDS (`pass.gds`) in `obj_dir/par-rundir` | ||
- Post-PnR simulation | ||
- `make par-to-sim HAMMER_EXTRA_ARGS="-p configs/par-sim.yml"` | ||
- `make sim-par HAMMER_EXTRA_ARGS="-p configs/par-sim.yml"` | ||
|
||
## Running Hammer | ||
### Custom Setups | ||
|
||
```shell | ||
hammer-vlsi -e env/a-env.yml -p pdks/asap7-a.yml -p test.yml | ||
``` | ||
If you're not using a Berkeley EECS compute node, you can create your own environment setup. | ||
|
||
- Create an environment config for your node to specify the location of the CAD tools, modeled after the yaml files in `env` | ||
- Create a PDK config for your node to specify the PDK paths and versions, modeled after the yaml files in `pdks` | ||
- Point to your custom configs when running `hammer-vlsi`. The rest of the flow should be identical | ||
|
||
#### ASAP7 Install | ||
|
||
Clone the [asap7 repo](https://github.com/The-OpenROAD-Project/asap7) somewhere and reference the path in your PDK yaml config. |
This file was deleted.
Oops, something went wrong.
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 |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Generate Make include to aid in flow | ||
vlsi.core.build_system: make | ||
|
||
vlsi.inputs.power_spec_type: "cpf" | ||
vlsi.inputs.power_spec_mode: "auto" | ||
|
||
synthesis.inputs: | ||
top_module: "pass" | ||
input_files: ["src/pass.v"] | ||
|
||
vlsi.core.synthesis_tool: "hammer.synthesis.genus" | ||
|
||
vlsi.core.par_tool: "hammer.par.innovus" | ||
par.innovus.design_flow_effort: "standard" | ||
par.inputs.gds_merge: true | ||
par.innovus.floorplan_mode: "generate" | ||
|
||
vlsi.core.sim_tool: "hammer.sim.vcs" | ||
vlsi.core.timing_tool: "hammer.timing.tempus" | ||
vlsi.core.formal_tool: "hammer.formal.conformal" | ||
vlsi.core.drc_tool: "hammer.drc.calibre" | ||
vlsi.core.lvs_tool: "hammer.lvs.calibre" |
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 |
---|---|---|
|
@@ -10,4 +10,3 @@ sim.inputs: | |
options: ['-timescale=1ns/10ps'] | ||
options_meta: append | ||
timing_annotated: false | ||
|
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 |
---|---|---|
|
@@ -10,4 +10,3 @@ sim.inputs: | |
options: ['-timescale=1ns/10ps'] | ||
options_meta: append | ||
timing_annotated: true | ||
|
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
Submodule hammer-cadence-plugins
deleted from
902657
Submodule hammer-synopsys-plugins
deleted from
e53fa5
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 |
---|---|---|
@@ -0,0 +1,17 @@ | ||
vlsi.core.technology: "hammer.technology.sky130" | ||
technology.sky130: | ||
sky130A: "/nscratch/vighneshiyer/miniconda3/envs/sky130/share/pdk/sky130A" | ||
sram22_sky130_macros: "/nscratch/sky130/sram22_sky130_macros" | ||
# sky130_nda: | ||
|
||
synthesis.genus.version: "211" | ||
par.innovus.version: "211" | ||
|
||
sim.vcs.version: "P-2019.06-SP1" | ||
sim.vcs.verdi_home: "/ecad/tools/synopsys/verdi/P-2019.06-SP2-2" | ||
sim.vcs.verdi_home_meta: lazysubst | ||
|
||
synthesis.yosys.yosys_bin: "/nscratch/vighneshiyer/miniconda3/envs/sky130/bin/yosys" | ||
par.openroad.openroad_bin: "/nscratch/vighneshiyer/miniconda3/envs/sky130/bin/openroad" | ||
drc.magic.magic_bin: "/nscratch/vighneshiyer/miniconda3/envs/sky130/bin/magic" | ||
lvs.netgen.netgen_bin: "/nscratch/vighneshiyer/miniconda3/envs/sky130/bin/netgen" |
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
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
Oops, something went wrong.