Commit 43e2617b by sakundu

Updated README

Signed-off-by: sakundu <sakundu@ucsd.edu>
parent 9529d01d
......@@ -15,6 +15,8 @@ The setup to run SP&R on the available test cases for the given enablements are
- [Ariane133](./SKY130HD/ariane133/)
- [MemPool tile](./SKY130HD/mempool_tile/)
- [NVDLA](./SKY130HD/nvdla/)
- [Utility](./util/)
- 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.
- *constraints* directory contians the SDC constraint file for current design and enablement.
......
# Utility Scripts details
- TCL Scripts:
- [extract_report.tcl](./extract_report.tcl): Contains procedure to extrac metrics (i.e., Core Area, Standard Cell Area, Macro Area, Total Power,Wire Length, WNS, TNS, Congestion) at different stage of P&R in Innovus shell. First source this file in the Innovus shell and then you can use the following commands:
- *extract_report preCTS*: Use this command to extract metric after running the *place_opt_design* command.
- *extract_report postCTS*: Use this command to extract metric after running the *ccopt_design* command.
- *extract_report postRoute*: Use this command to extract metric after running the *routeDesing* or *opt_desing -postRoute* command.
- [gen_pb.tcl](./gen_pb.tcl): Contains procedure to write out flat netlist in protocol buffer format in Innovus shell. First source this file in the Innovus shell and then use gen_pb_netlist.
- *gen_pb_netlist*: This command writes out flat netlist in protobuf format. The output file name is \<top desing\>.pb.txt.
- [pdn_flow.tcl](./pdn_flow.tcl): This script generates power delivery network (PDN) for Innovus implementation. It uses the PDN configuration file available in the [*./Enablements/\**](../../Enablements/) directory.
- [NanGate45 Config](../../Enablements/NanGate45/util/pdn_config.tcl)
- [ASAP7 Config](../../Enablements/ASAP7/util/pdn_config.tcl)
- [SKY130HD Fake Stack Config](../../Enablements/SKY130HD/util/pdn_config.tcl)
- [place_pin.tcl](./place_pin.tcl): This script places all the top level design ports on the left boundary. Pins are spreaded over 65\% length around the center of the left boundary.
- [write_required_def.tcl](./write_required_def.tcl): This scripts writes out the def and netlist file from innovus. We use this def and netlist are used as inputs to CodeElement to generate the clustered netlist.
- Python Scripts:
- [flow.py](./flow.py): This script runs griding, grouping and clustering to generate the clustered netlist. It requires two inputs:
- *run directory*: Provide the SP&R run directory path.
- *output directory*: Provide the name of the output directory. In this directory the script will write out the clustered netlist.
- **Example**: python flow.py \<run directory\> \<output directory\>
- [gen_setup.py](./gen_setup.py): This is a helper script of [flow.py](./flow.py). This extracts the required inputs from the rundir to run the CodeElement.
- [genJobList.py](./genJobList.py): It create a run directory to run Flow-1 and Flow-2 for each design on all platforms and writes out the job file. You can use this job file to submit a GNU Parallel job.
- **Example**: python ./util/genJobList.py (ensure you are in the [Flows](../) directory.)
- [plc_pb_to_placement_tcl.py](./plc_pb_to_placement_tcl.py): It writes out the *.plc file from the clustreed-protobuf netlist.
- Shell Scripts:
- [run_CodeFlow.sh](./run_CodeFlow.sh): This runs the [flow.py](./flow.py) in the run directory to generate clustred netlist.
- **Example**: In the run directory just use *./run_CodeFlow.sh* command to generate the clustred netlist while using Flow-4. Make sure *PHY_SYNTH* is set to 1 or some greater value.
- [run_grp.sh](./run_grp.sh): This script generates clustered netlist using [CircuitTraining grouping code](https://github.com/google-research/circuit_training/tree/main/circuit_training/grouping). It uses the following environmental variabels:
- *CT_PATH*: Provide the full path of Circuit Training (CT). This path is added to import the grouping module available in the CT repo.
- *HMETIS_DIR*: Provide the path of the hMETIS binary directory.
- *PLC_WRAPPER_MAIN*: Provide the path of the plc_wrapper_main binary.
- *OUTPUT_DIR*: Clustered netlist generated using CT grouping flow will be available in the OUTPUT_DIR. Provide the full or relative path.
- *NETLIST_FILE*: Flat post-physical-synthesis protobuf netlist path.
- *BLOCK NAME*: Provide the name of the design.
- [run_grp_main.sh](./run_grp_main.sh): Here update the *CT_PATH*, *HMETIS_DIR* and *PLC_WRAPPER_MAIN* path and then source it in the SP&R run directory then it will generate the clustered netlist.
\ No newline at end of file
......@@ -84,61 +84,61 @@ In the following table, we provide the status details of each testcase on each o
<tbody>
<tr>
<td class="tg-0lax">Ariane 136</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane136">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/ariane136">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/ariane136">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane136">Link</a></td>
<td class="tg-0lax">N/A</td>
</tr>
<tr>
<td class="tg-0lax">Ariane 133</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/ariane133">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/ariane133">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/ariane133">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/ariane133">Link</a></td>
<td class="tg-0lax">N/A</td>
</tr>
<tr>
<td class="tg-0lax">MemPool tile</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/mempool_tile">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/mempool_tile">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/mempool_tile">Link</a></td>
<td class="tg-0lax">N/A</td>
</tr>
<tr>
<td class="tg-0lax">NVDLA</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/nvdla">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/NanGate45/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/NanGate45/nvdla">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/nvdla">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/ASAP7/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/ASAP7/nvdla">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/nvdla">Link</a></td>
<td class="tg-0lax"><a href="https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/Flows/SKY130HD/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/nvdla">Link</a></td>
<td class="tg-0lax"><a href="./Flows/SKY130HD/nvdla">Link</a></td>
<td class="tg-0lax">N/A</td>
<td class="tg-0lax">N/A</td>
</tr>
......
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