Installation and Setup
Run the following commands sequentially to install RAD-Gen and its dependencies.
Clone Repository
$ cd ~ && git clone git@github.com:StephenMoreOSU/rad_gen.git
$ cd rad_gen
$ git submodule init
$ git submodule update
We don’t do a recursive clone as there are some modules from within hammer that require an NDA.
Python Setup and Activation
The following script will setup the python environment for RAD-Gen. Dependencies are (conda) OR (python >= 3.9 AND venv).
Sourcing the following script will activate the specified RAD-Gen environment. If the environment is not found, it will install RAD-Gen’s environment as specified.
$ # from <RAD_GEN_HOME>
$ # Adds modules to PYTHONPATH and activates conda / venv environment
$ source env_setup.sh [conda|venv] # Defaults to conda if environment is unspecified
ASAP7 PDK Setup
The ASAP7 pdk is large so its not specified as a submodule to RAD-Gen. Users will have to clone this themselves, create a directory in a desired workspace that will be used to store ASAP7 and possibly other pdks:
- Optional: after cloning the ASAP7 follow instructions to set it up for cadence virtuoso
This is only needed if virtuoso GDS extraction / DRC / LVS is required (not needed for vanilla asic flow)
Clone the ASAP7 repo in a directory of your choosing.
$ cd ~ && git clone git@github.com:The-OpenROAD-Project/asap7.git
- ASAP7 is supported for open source and commercial tools:
Commercial: Cadence
genus → Synthesis
innovus → Place & Route
tempus → Static Timing Analysis
Open Source: OpenROAD
RAD-Gen ASIC Flow ASAP7 Specific Dependencies
Cadence Genus → Synthesis
Cadence Innovus → Place & Route
Synopsys PrimeTime → Timing & Power
(Optional) Cadence Virtuoso → Full custom + GDS manipulation
The above commercial tools are required for the below examples, however, due to hammers support for OpenROAD, it would be possible to run it was well with modification to config files. However this is untested.
If they are installed correctly the following commands should return executable paths:
$ which genus
$ which innovus
$ which pt_shell
$ # Below for COFFE / 3D IC flow
$ which hspice
$ # Below is Optional
$ which virtuoso