From d28077ff0b71939a501dafc74e7ec45039951df6 Mon Sep 17 00:00:00 2001 From: Harrison Liew Date: Mon, 2 Sep 2019 16:59:14 -0700 Subject: [PATCH] updated DCO collateral --- vlsi/README.md | 17 ++- vlsi/example.yml | 20 ++- vlsi/extra_libraries/dco/ExampleDCO.gds | Bin 0 -> 10240 bytes .../dco/{dco.lef => ExampleDCO.lef} | 100 ++++++------ .../dco/ExampleDCO_PVT_0P63V_100C.lib | 142 ++++++++++++++++++ .../dco/ExampleDCO_PVT_0P77V_0C.lib | 142 ++++++++++++++++++ vlsi/extra_libraries/dco/dco.gds | Bin 10240 -> 0 bytes 7 files changed, 359 insertions(+), 62 deletions(-) create mode 100644 vlsi/extra_libraries/dco/ExampleDCO.gds rename vlsi/extra_libraries/dco/{dco.lef => ExampleDCO.lef} (76%) create mode 100644 vlsi/extra_libraries/dco/ExampleDCO_PVT_0P63V_100C.lib create mode 100644 vlsi/extra_libraries/dco/ExampleDCO_PVT_0P77V_0C.lib delete mode 100644 vlsi/extra_libraries/dco/dco.gds diff --git a/vlsi/README.md b/vlsi/README.md index 12cb6fd9..29fd2bc7 100644 --- a/vlsi/README.md +++ b/vlsi/README.md @@ -1,3 +1,4 @@ +# HAMMER VLSI flow This is the starting point for a vlsi flow from this repository. This flow will not work without the necessary CAD and technology plugins for HAMMER. @@ -5,7 +6,7 @@ This flow will not work without the necessary CAD and technology plugins for HAM If you are a UCB-affiliate, you may be able to acquire access to the tool & tech plugins. # Initial Setup Instructions (For all technologies) -Run the `init-vlsi.sh` script to pull correct versions of hammer, hammer-TOOL\_VENDOR-plugins, and the hammer-TECH\_NAME-plugins. Note the included technology 'asap7' is already included and will not submodule a tech plugin. +Run the `init-vlsi.sh` script to pull correct versions of hammer, hammer-TOOL\_VENDOR-plugins, and the hammer-TECH\_NAME-plugins. Note the technologies `asap7` and `saed32` are already included and will not submodule a tech plugin. ```shell ./scripts/init-vlsi.sh TECH_NAME ``` @@ -13,15 +14,16 @@ Run the `init-vlsi.sh` script to pull correct versions of hammer, hammer-TOOL\_V An example of tool environment configuration for BWRC affiliates is given in `bwrc-env.yml`. Replace as necessary for your environment. # Example design -In this example, you will be running a SHA-3 accelerator with a dummy hard macro through the VLSI flow in the ASAP7 process. To elaborate the Sha3RocketConfig and set up all prerequisites for the build system: +## Building the design +In this example, you will be running a SHA-3 accelerator with a dummy hard macro through the VLSI flow in the ASAP7 process. To elaborate the Sha3RocketConfig (Rocketchip w/ the accelerator) and set up all prerequisites for the build system: ```shell export MACROCOMPILER_MODE=' --mode synflops' export CONFIG=Sha3RocketConfig -export TOP=Sha3AccelwBB make buildfile ``` Note that because the ASAP7 process does not yet have a memory compiler, synflops are elaborated instead. +## Using HAMMER HAMMER's configuration is driven by a JSON/YAML format. For HAMMER, JSON and YAML files are equivalent - you can use either one since HAMMER will convert them to the same representation for itself. We start by pulling the HAMMER environment into the shell: @@ -33,10 +35,15 @@ source $HAMMER_HOME/sourceme.sh The configuration for the example design is contained in `example.yml` and the entry script with hooks is contained in `example-vlsi`. You may go through Hammer's readme to learn about the supported configuration options and how to write hooks. -In order to install the process, edit the keys `vlsi.technology.asap7.tarball_dir` if you already have the ASAP7 tarball downloaded and `vlsi.technology.asap7.install_dir` if you have already extracted it. If omitted, Hammer will automatically download and extract the tarballs into the `build/asap7-tech-cache` directory when you first run synthesis. +In order to install the process, download (and optionally extract) the ASAP7 PDK tarball. Then, edit the key `vlsi.technology.asap7.tarball_dir` if you want Hammer to extract for you or `vlsi.technology.asap7.install_dir` if you have already extracted it. -To synthesize a design: +To synthesize the just the SHA-3 accelerator with the hard macro we have to change the physical top module (this step is not necessary if you are pushing the entire Rocket-chip through the VLSI flow): +```shell +export TOP=Sha3AccelwBB +rm build/inputs.yml +``` +Then, to run synthesis: ```shell make syn ``` diff --git a/vlsi/example.yml b/vlsi/example.yml index d4251ad2..1c92731e 100644 --- a/vlsi/example.yml +++ b/vlsi/example.yml @@ -82,12 +82,15 @@ vlsi.inputs.pin.assignments: [ ] # Paths to extra libraries -vlsi.technology.extra_libraries_meta: "append" +vlsi.technology.extra_libraries_meta: ["append", "deepsubst"] vlsi.technology.extra_libraries: - library: - nldm liberty file: "extra_libraries/dco/dco_SS.lib" - lef file: "extra_libraries/dco/dco.lef" - gds file: "extra_libraries/dco/dco.gds" + nldm liberty file_deepsubst_meta: "local" + nldm liberty file: "extra_libraries/dco/ExampleDCO_PVT_0P63V_100C.lib" + lef file_deepsubst_meta: "local" + lef file: "extra_libraries/dco/ExampleDCO.lef" + gds file_deepsubst_meta: "local" + gds file: "extra_libraries/dco/ExampleDCO.gds" corner: nmos: "slow" pmos: "slow" @@ -96,9 +99,12 @@ vlsi.technology.extra_libraries: VDD: "0.63 V" GND: "0 V" - library: - nldm liberty file: "extra_libraries/dco/dco_FF.lib" - lef file: "extra_libraries/dco/dco.lef" - gds file: "extra_libraries/dco/dco.gds" + nldm liberty file_deepsubst_meta: "local" + nldm liberty file: "extra_libraries/dco/ExampleDCO_PVT_0P77V_0C.lib" + lef file_deepsubst_meta: "local" + lef file: "extra_libraries/dco/ExampleDCO.lef" + gds file_deepsubst_meta: "local" + gds file: "extra_libraries/dco/ExampleDCO.gds" corner: nmos: "fast" pmos: "fast" diff --git a/vlsi/extra_libraries/dco/ExampleDCO.gds b/vlsi/extra_libraries/dco/ExampleDCO.gds new file mode 100644 index 0000000000000000000000000000000000000000..843e5dffde0888fed5ae34c73a086f90c1f56936 GIT binary patch literal 10240 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