Skip to content

Commit

Permalink
Merge pull request #38 from vaughnbetz/innovus_support
Browse files Browse the repository at this point in the history
Innovus support
  • Loading branch information
StephenMoreOSU authored Nov 1, 2022
2 parents 67b62ff + 667c6fe commit 09fb0d4
Show file tree
Hide file tree
Showing 5 changed files with 313 additions and 108 deletions.
49 changes: 35 additions & 14 deletions User Manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,31 @@ To run COFFE, simply run coffe.py and follow the instructions.
There are several sample input files in the test directory accompanying COFFE which stimulate all existing features. These files describe what each of the parameters are; simply read them and change them to form your desired architecture.
We have also included several tests with COFFE which should smoothly run when using the latest version. To test your setup, you can run those.

# How to run a test for ASIC flow (using stratix III like DSP)
# How to run a full test for ASIC flow (using stratix III like DSP)
Note:
This test runs the ASIC flow, COFFE custom flow, and utility scripts

The following test was tested with the following tools:
-Synopsys Design Compiler 2017
-Cadence Encounter 2009

Prerequisites:
Make sure the ASIC tools are on your environments path, this can be done with the following commands:
$(which dc_shell-t)
$(which encounter)
```console
which dc_shell-t
#if using encounter
which encounter
#if using innovus
which innovus
which genus
```

1. Now the configuration files for the asic tools must be edited to match the environment and ASIC PDK being used
(If you're using UofT servers you can skip this portion as they're already setup)

open up the following file in editor:
- ~/COFFE/input_files/strtx_III_dsp/dsp_hb_settings.txt

If you only want to run the asic flow, set the "asic_flow_only" param to True

- set the "target_libraries" and "link_libraries" parameters to the absolute paths to the standard cell front end .db files provided by semiconductor PDK (surrounded by quotes).
- set the "inv_footprint", "buf_footprint", and "delay_footprint" params to footprints, found in front end .lib files from pdk (found under similar names to "INVD0" "BUFFD1" "DEL0")

Expand All @@ -68,24 +75,38 @@ $(which encounter)
clock_period=2.5
etc...
2. run the following command (run this with python2):
- $(python2 coffe.py -i 1 input_files/strtx_III_dsp/dsp_coffe_params.txt)
```console
python2 coffe.py -i 1 input_files/strtx_III_dsp/dsp_coffe_params.txt
```

3. Once the program has finished go to the following directory:
- ~/COFFE/analyze_results

run the following command the argument points to where the .txt reports from post ASIC flow exist, which should be the same as the arch_out_folder param in dsp_coffe_params.txt):
- $(python2 condense_results.py -r ../output_files/strtx_III_dsp/arch_out_dir)
```console
python2 condense_results.py -r ../output_files/strtx_III_dsp/arch_out_dir
```

The above command creates a csv file with all reports from the specified directory.
To plot the power, area, and delay results against target frequency run the following command (this requires python3 and matplotlib to be installed):
- $(python3 plot_coffe_results.py -c report_csv_out/condensed_report.csv)

```console
python3 plot_coffe_results.py -c report_csv_out/condensed_report.csv
```
4. A script that runs all of the above commands can be run from COFFE repo:
- $(chmod +x ./unit_test.sh)
- $(./unit_test.sh)



```console
chmod +x ./unit_test.sh
./unit_test.sh
```

## Running Full COFFE flow
Prereqs: if using INNOVUS make sure you have sourced GENUS and INNOVUS Cadence tools (innovus uses genus during place and route)
```console
python2 coffe.py -i 1 input_files/strtx_III_dsp/dsp_coffe_params.txt
```
## Running ASIC COFFE flow
```console
python2 coffe.py -ho -i 1 input_files/strtx_III_dsp/dsp_coffe_params.txt
```



Expand Down
Loading

0 comments on commit 09fb0d4

Please sign in to comment.