Commit 62f27d13 by sakundu

Updated README

Signed-off-by: sakundu <sakundu@ucsd.edu>
parent 82fdd7d8
...@@ -4237,7 +4237,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4237,7 +4237,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10"><p align="center">Ariane133-GF12-68% CMP (results are normalized as described <a href=“#GF12_Normalization”>here</a> <th colspan="10"><p align="center">Ariane133-GF12-68% CMP (results are normalized as described <a href="#GF12_Normalization">here</a>
) </p></th> ) </p></th>
</tr> </tr>
</thead> </thead>
...@@ -4392,7 +4392,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4392,7 +4392,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10">Ariane-GF12-68% AutoDMP (results are normalized as described <a href=“#GF12_Normalization”>here</a>)</th> <th colspan="10">Ariane-GF12-68% AutoDMP (results are normalized as described <a href="#GF12_Normalization">here</a>)</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -4468,7 +4468,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4468,7 +4468,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10"><p align="center">BlackParrot-GF12-68% CMP (results are normalized as described <a href=“#GF12_Normalization”>here</a>) </p></th> <th colspan="10"><p align="center">BlackParrot-GF12-68% CMP (results are normalized as described <a href="#GF12_Normalization">here</a>) </p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -4544,7 +4544,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4544,7 +4544,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10"><p align="center">BlackParrot-GF12-68% CT [results are normalized as described <a href=“#GF12_Normalization”>here</a>] (<a href="https://tensorboard.dev/experiment/6grbdijUQDe5m8KGfOSpnw/">Link</a> to Tensorboard)</p></th> <th colspan="10"><p align="center">BlackParrot-GF12-68% CT [results are normalized as described <a href="#GF12_Normalization">here</a>] (<a href="https://tensorboard.dev/experiment/6grbdijUQDe5m8KGfOSpnw/">Link</a> to Tensorboard)</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -4622,7 +4622,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4622,7 +4622,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10">BlackParrot-GF12-68% AutoDMP [results are normalized as described <a href=“#GF12_Normalization”>here</a>]</th> <th colspan="10">BlackParrot-GF12-68% AutoDMP [results are normalized as described <a href="#GF12_Normalization">here</a>]</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
...@@ -4698,7 +4698,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4698,7 +4698,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10"><p align="center">MemPool Group-GF12-68% CMP [results are normalized as described <a href=“#GF12_Normalization”>here</a> <th colspan="10"><p align="center">MemPool Group-GF12-68% CMP [results are normalized as described <a href="#GF12_Normalization">here</a>
] </p></th> ] </p></th>
</tr> </tr>
</thead> </thead>
...@@ -4775,7 +4775,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4775,7 +4775,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10"><p align="center">MemPool Group-GF12-68% CT [results are normalized as described <a href=“#GF12_Normalization”>here</a> <th colspan="10"><p align="center">MemPool Group-GF12-68% CT [results are normalized as described <a href="#GF12_Normalization">here</a>
] (<a href="https://tensorboard.dev/experiment/liqXGb6rSrqpf55G2OH2Fw/">Link</a> to Tensorboard)</p></th> ] (<a href="https://tensorboard.dev/experiment/liqXGb6rSrqpf55G2OH2Fw/">Link</a> to Tensorboard)</p></th>
</tr> </tr>
</thead> </thead>
...@@ -4854,7 +4854,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo ...@@ -4854,7 +4854,7 @@ We have run CT to generate macro placements for Ariane133, BlackParrot and MemPo
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="10">MemPool Group-GF12-68% human macro placement [results are normalized as described <a href=“#GF12_Normalization”>here</a> <th colspan="10">MemPool Group-GF12-68% human macro placement [results are normalized as described <a href="#GF12_Normalization">here</a>
] </th> ] </th>
</tr> </tr>
</thead> </thead>
......
...@@ -23,39 +23,39 @@ The setup to run SP&R on the available test cases for the given enablements are ...@@ -23,39 +23,39 @@ The setup to run SP&R on the available test cases for the given enablements are
- [Utility](./util/) - [Utility](./util/)
- Contains utility scripts for SP&R runs. - Contains utility scripts for SP&R runs.
Inside each directory are the following sub-directories that contain all of the files required to run the full SP&R flow. Inside each directory are the following sub-directories containing all the files required to run the full SP&R flow.
- *constraints* directory contians the SDC constraint file for current design and enablement. - The *constraints* directory contains the SDC constraint file for current design and enablement.
- *def* directory contains the floorplan DEF file that is used in the SP&R flow. We provide two DEF files one with just the core. - The *def* directory contains the floorplan DEF file used in the SP&R flow. We provide two DEF files one with just the core.
area and pin placements that is used for the logical synthesis flow [Flow-1](./figures/flow-1.PNG) and another DEF file that also inlcudes macro placements that area and pin placements that is used for the logical synthesis flow [Flow-1](./figures/flow-1.PNG) and another DEF file that also inlcudes macro placements that
is used in the physical synthesis iSpatial flow [Flow-2](./figures/flow-2.PNG). is used in the physical synthesis iSpatial flow [Flow-2](./figures/flow-2.PNG).
- *netlist* directory contains the synthesized netlist from [Flow-1](./figures/flow-1.PNG). - The *netlist* directory contains the synthesized netlist from [Flow-1](./figures/flow-1.PNG).
- *scripts* directory contains the setup and scripts to run the full SP&R flow using both commercial and open-source tools. - The *scripts* directory contains the setup and scripts to run the full SP&R flow using both commercial and open-source tools.
- *run* directory to peform the SP&R runs using the runscripts available in the *scripts* direcotry. - The *run* directory is provided to peform the SP&R runs using the runscripts available in the *scripts* direcotry.
The runscripts for all the flows are available in the *./\<enablement\>/\<testcase\>/scripts/* directory. Inside *script* directory are the following sub-directories. The runscripts for all the flows are available in the *./\<enablement\>/\<testcase\>/scripts/* directory. Inside the *script* directory are the following sub-directories.
- *cadence* directory contains all the runscripts related to [Flow-1](./figures/flow-1.PNG), [Flow-2](./figures/flow-2.PNG). We will also add [Flow-4](./figures/flow-4.PNG) scripts here. - The *cadence* directory contains all the runscripts related to [Flow-1](./figures/flow-1.PNG), [Flow-2](./figures/flow-2.PNG) and [Flow-4](./figures/flow-4.PNG).
- *OpenROAD* directory contains the *<testcase>.tar.gz* file, which includes all the required files to run [Flow-3](./figures/flow-3.PNG) using OpenROAD-flow-scripts ([ORFS](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/)). - *OpenROAD* directory contains the *<testcase>.tar.gz* file, which includes all the required files to run [Flow-3](./figures/flow-3.PNG) using OpenROAD-flow-scripts ([ORFS](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/)).
- We provide detailed scripts to run physical synthesis using Synopsys DCTopo. All the scripts are available in the [*./scripts/DCTopoFlow*](./scripts/DCTopoFlow/) directory. We also add the scripts required to generate the inputs for DCTopo along with the detailed description of each step. - We provide detailed scripts to run physical synthesis using Synopsys DCTopo. All the scripts are available in the [*./scripts/DCTopoFlow*](./scripts/DCTopoFlow/) directory. We also add the scripts required to generate the inputs for DCTopo, along with a detailed description of each step.
All the flows uses the *RTL* from the [*Testcases*](../Testcases/) directory and the *.lef*, *.lib* and *qrc* files from the [*Enablements*](../Enablements/) directory. The required SRAM models for each testcase are generated and also available under the [*Enablements*](../Enablements/) directory. The detailed steps for different tools are as follows. All the flows use the *RTL* from the [*Testcases*](../Testcases/) directory and the *.lef*, *.lib*, and *qrc* files from the [*Enablements*](../Enablements/) directory. The required SRAM models for each testcase are generated and available under the [*Enablements*](../Enablements/) directory. The detailed steps for different tools are as follows.
- [**Cadence tools**](#using-cadence-genus-and-innovus) - [**Cadence tools**](#using-cadence-genus-and-innovus)
- [**OpenROAD tools**](#using-openroad-flow-scripts) - [**OpenROAD tools**](#using-openroad-flow-scripts)
## **Using Cadence Genus and Innovus:** ## **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. 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.
- To launch Flow-1 set the **PHY_SYNTH** environment variable to *0* in the *run.sh* file. - To launch Flow-1, set the **PHY_SYNTH** environment variable to *0* in the *run.sh* file.
``` export PHY_SYNTH=0 ``` ``` export PHY_SYNTH=0 ```
- To launch Flow-2 set the **PHY_SYNTH** environment variable to *1* in the *run.sh* file. - To launch Flow-2, set the **PHY_SYNTH** environment variable to *1* in the *run.sh* file.
``` export PHY_SYNTH=1 ``` ``` export PHY_SYNTH=1 ```
- To start the SP&R run use the following command. - To start the SP&R run, use the following command.
``` ./run.sh ``` ``` ./run.sh ```
**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. **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.
- Logical synthesis using Genus (Flow-1): We use the *elaborate*, *syn_generic*, *syn_map* and *syn_opt* commands to generate the synthesized netlist. This synthesized netlist is copied into the *netlist* directory. - Logical synthesis using Genus (Flow-1): We use the *elaborate*, *syn_generic*, *syn_map* and *syn_opt* commands to generate the synthesized netlist. This synthesized netlist is copied into the *netlist* directory.
- Physical synthesis using Genus iSpatial (Flow-2): We use the *elaborate*, *syn_generic -physical*, *syn_map -physical* and *syn_opt -iSpatial* commands to generate the sunthesized netlist. In this step we provide the floorplan def with placed macros and pins as an additional input compared to Flow-1. This def file is generate in Flow-1. - Physical synthesis using Genus iSpatial (Flow-2): We use the *elaborate*, *syn_generic -physical*, *syn_map -physical* and *syn_opt -iSpatial* commands to generate the synthesized netlist. In this step, we provide the floorplan def with placed macros and pins as an additional input compared to Flow-1. This def file is generated in Flow-1.
- Physical synthesis using Genus iSpatial for Circuit Training (Flow-4): This is same as Flow-2 synthesis flow. The only difference is that the input def file does not include macro placement information. - Physical synthesis using Genus iSpatial for Circuit Training (Flow-4): This is the same as Flow-2 synthesis flow. The only difference is that the input def file does not include macro placement information.
The command to launch only the synthesis run is as follows. The command to launch only the synthesis run is as follows.
``` ```
...@@ -67,12 +67,12 @@ genus -overwrite -log log/genus.log -no_gui -files run_genus_hybrid.tcl ...@@ -67,12 +67,12 @@ 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. **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.
- Flow-1 - Flow-1
- We use aspect ratio 1 and a utilization value in the range of 40% to 60%. All the pins are placed on the left side of the floorplan and the floorplan def file *\<design\>_fp.def* is created and copied into the def directory for place and route. The following command is used to place the pins. - We use aspect ratio 1 and a utilization value of 40% to 60%. All the pins are placed on the left side of the floorplan and the floorplan def file *\<design\>_fp.def* is created and copied into the def directory for place and route. The following command is used to place the pins.
``` ```
### pin_list contains the name of all the top level pins. Here Y1 < Y2. LAYER1 and LAYER2 are two horizontal layer above M1 or metal1 or met1 ### ### pin_list contains the name of all the top level pins. Here Y1 < Y2. LAYER1 and LAYER2 are two horizontal layer above M1 or metal1 or met1 ###
editPin -pin $pin_list -edge 0 -start {0 Y1} -end {0 Y2} -fixedPin -layer {LAYER1 LAYER2} -spreadDirection clockwise -pattern fill_optimised editPin -pin $pin_list -edge 0 -start {0 Y1} -end {0 Y2} -fixedPin -layer {LAYER1 LAYER2} -spreadDirection clockwise -pattern fill_optimised
``` ```
- We use default HALO width based on the enablement for all the macros using the following command. - We use the default HALO width based on the enablement for all the macros using the following command.
``` ```
### HALO_WIDTH is 2um for ASAP7 and 5um for NanGate45 and SKY130HD FakeStack enablements ### ### HALO_WIDTH is 2um for ASAP7 and 5um for NanGate45 and SKY130HD FakeStack enablements ###
addHaloToBlock -allMacro $HALO_WIDTH $HALO_WIDTH $HALO_WIDTH $HALO_WIDTH addHaloToBlock -allMacro $HALO_WIDTH $HALO_WIDTH $HALO_WIDTH $HALO_WIDTH
...@@ -81,7 +81,7 @@ genus -overwrite -log log/genus.log -no_gui -files run_genus_hybrid.tcl ...@@ -81,7 +81,7 @@ genus -overwrite -log log/genus.log -no_gui -files run_genus_hybrid.tcl
- It uses *place_opt_design*, *ccopt_design* and *routeDesign* commands for placement, CTS and routing of the design. - It uses *place_opt_design*, *ccopt_design* and *routeDesign* commands for placement, CTS and routing of the design.
- Flow-2 - Flow-2
- The *run_invs.tcl* script utilizes the *.def* file generated by the Genus iSpatial flow as a starting point. - The *run_invs.tcl* script utilizes the *.def* file generated by the Genus iSpatial flow as a starting point.
- Similar to Flow-1 it uses *place_opt_design*, *ccopt_design* and *routeDesign* commands for placement, CTS and routing of the design. - Similar to Flow-1, it uses *place_opt_design*, *ccopt_design* and *routeDesign* commands for placement, CTS and routing of the design.
The command to launch the P&R run is as follows. The command to launch the P&R run is as follows.
``` ```
...@@ -99,8 +99,8 @@ This script was written and developed by ABKGroup students at UCSD; however, the ...@@ -99,8 +99,8 @@ This script was written and developed by ABKGroup students at UCSD; however, the
## **Using OpenROAD-flow-scripts:** ## **Using OpenROAD-flow-scripts:**
Clone ORFS and build OpenROAD tools following the steps given [here](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts). Use the following steps to run SP&R using OpenROAD tools: Clone ORFS and build OpenROAD tools following the steps given [here](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts). 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. 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*. This will generate *\<design\>* directory which contains all the files required to run SP&R using ORFS. 2. Use the command *tar -xvf \<design\>.tar.gz* to untar *\<design\>.tar.gz*. It will generate *\<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 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 make DESIGN_CONFIG=./designs/<enablement>/<design>/config_hier.mk
``` ```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment