MacroPlacement

Synthesis, Place & Route (SP&R):

The setups to run SP&R on the available testcases for the given enablements are available in ./<enablement_name>/<testcase_name>/ directories.

Inside each directory are the following sub-directories containing all the files required to run the full SP&R flow.

The runscripts for all the flows are available in the ./<enablement>/<testcase>/scripts/ directory. Inside the script directory are the following sub-directories.

All the flows use the RTL from the Testcases directory and the .lef, .lib, and qrc files from the Enablements directory. The required SRAM models for each testcase are generated and available under the Enablements directory. The detailed steps for different tools are as follows.

Using Cadence Genus and Innovus:

All the required runscripts are available in the ./<enablement>/<testcase>/scripts/cadence/ directory. The steps to modify run.sh to launch SP&R runs for Flow-1 and Flow-2 are as follows.

Synthesis: The run_genus_hybrid.tcl is used to run the logical synthesis using Genus and physical synthesis using Genus iSpatial. It utilizes the PHY_SYNTH environment variable to determine the flow. Minor details of each synthesis flow are as follows.

The command to launch only the synthesis run is as follows.

# export PHY_SYNTH=0   #For Flow-1 uncomment this line
# export PHY_SYNTH=1   #For Flow-2 uncomment this line
genus -overwrite -log log/genus.log -no_gui -files run_genus_hybrid.tcl

P\&R: The run_invs.tcl is used to run the place and route using Cadence Innovus. The netlist and constraint generated during synthesis flow are used in this step. It also utilizes the PHY_SYNTH environment variable to choose which flow to run. Minor details of each P&R flow are as follows.

The command to launch the P&R run is as follows.

### Make sure you have run the synthesis step. run_invs.tcl uses the output files generated synthesis ###
# export PHY_SYNTH=0   #For Flow-1 uncomment this line
# export PHY_SYNTH=1   #For Flow-2 uncomment this line
innovus -64 -init run_invs.tcl -log log/run.log

The screenshot of the Ariane 136 testcase using the Cadence Flow-1 on NanGate45 enablement is shown below.
ariane136_cadence

This script was written and developed by ABKGroup students at UCSD; however, the underlying commands and reports are copyrighted by Cadence. We thank Cadence for granting permission to share our research to help promote and foster the next generation of innovators.

Using OpenROAD-flow-scripts:

Clone ORFS and build OpenROAD tools following the steps given here. Use the following steps to run SP&R using OpenROAD tools:

  1. Copy ./<enablement>/<testcase>/scripts/OpenROAD/<design>.tar.gz file to {ORFS Clone Directory}/OpenROAD-flow-scripts/flow/designs/<enablement> area.
  2. Use the command tar -xvf <design>.tar.gz to untar <design>.tar.gz. It will generate a <design> directory, which contains all the files required to run SP&R using ORFS.
  3. To launch the SP&R job, go to the flow directory and use the make command
      make DESIGN_CONFIG=./designs/<enablement>/<design>/config_hier.mk
    
  4. config_hier.mk uses the RTL-MP (RTL Macro Placer) for macro placement. If you wish to run macro placement using the older Triton Macro Placer, please use the below command:
      make DESIGN_CONFIG=./designs/<enablement>/<design>/config.mk
    

The screenshot of the Ariane 136 testcase using the ORFS (RTL-MP) on NanGate45 enablement is shown below.
ariane136_orfs