Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 1 | #!/bin/tcsh |
| 2 | #--------------------------------------------------------------- |
| 3 | # Shell script setting up all variables used by the qflow scripts |
| 4 | # for this project |
| 5 | #--------------------------------------------------------------- |
| 6 | |
| 7 | # The LEF file containing standard cell macros |
| 8 | |
| 9 | #ifdef EF_FORMAT |
| 10 | set leffile=STAGING_PATH/TECHNAME/libs.ref/lef/sky130_osu130/sky130_osu130.lef |
| 11 | #else (!EF_FORMAT) |
| 12 | set leffile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/lef/sky130_osu130.lef |
| 13 | #endif (!EF_FORMAT) |
| 14 | |
| 15 | # The SPICE netlist containing subcell definitions for all the standard cells |
| 16 | #ifdef EF_FORMAT |
| 17 | set spicefile=STAGING_PATH/TECHNAME/libs.ref/spice/sky130_osu130/sky130_osu130.spice |
| 18 | #else (!EF_FORMAT) |
| 19 | set spicefile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/spice/sky130_osu130.spice |
| 20 | #endif (!EF_FORMAT) |
| 21 | |
| 22 | # The liberty format file containing standard cell timing and function information |
| 23 | #ifdef EF_FORMAT |
| 24 | set libertyfile=STAGING_PATH/TECHNAME/libs.ref/lib/sky130_osu130/sky130_osu130.lib |
| 25 | #else (!EF_FORMAT) |
| 26 | set libertyfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/lib/sky130_osu130.lib |
| 27 | #endif (!EF_FORMAT) |
| 28 | |
| 29 | # If there is another LEF file containing technology information |
| 30 | # that is separate from the file containing standard cell macros, |
| 31 | # set this. Otherwise, leave it defined as an empty string. |
| 32 | |
| 33 | #ifdef METAL5 |
| 34 | #ifdef EF_FORMAT |
| 35 | set techleffile=STAGING_PATH/TECHNAME/libs.ref/techLEF/sky130_osu130/sky130_osu130_tech.lef |
| 36 | #else (!EF_FORMAT) |
| 37 | set techleffile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/techLEF/sky130_osu130_tech.lef |
| 38 | #endif (!EF_FORMAT) |
| 39 | #else |
| 40 | # NOTE: There is no technology LEF file for the 3-metal stack! |
| 41 | #endif |
| 42 | |
| 43 | # All cells below should be the lowest output drive strength value, |
| 44 | # if the standard cell set has multiple cells with different drive |
| 45 | # strengths. Comment out any cells that do not exist. |
| 46 | |
| 47 | set bufcell=BUFX2 ;# Minimum drive strength buffer cell |
| 48 | set bufpin_in=A ;# Name of input port to buffer cell |
| 49 | set bufpin_out=Y ;# Name of output port to buffer cell |
| 50 | set clkbufcell=BUFX2 ;# Minimum drive strength buffer cell |
| 51 | set clkbufpin_in=A ;# Name of input port to buffer cell |
| 52 | set clkbufpin_out=Y ;# Name of output port to buffer cell |
| 53 | |
| 54 | set fillcell=FILL ;# Spacer (filler) cell (prefix, if more than one) |
| 55 | set decapcell="" ;# Decap (filler) cell (prefix, if more than one) |
| 56 | set antennacell="" ;# Antenna (filler) cell (prefix, if more than one) |
| 57 | set antennapin_in="" ;# Antenna cell input connection |
| 58 | set bodytiecell="" ;# Body tie (filler) cell (prefix, if more than one) |
| 59 | |
| 60 | # yosys tries to eliminate use of these; depends on source .v |
| 61 | set tiehi="" ;# Cell to connect to power, if one exists |
| 62 | set tiehipin_out="" ;# Output pin name of tiehi cell, if it exists |
| 63 | set tielo="" ;# Cell to connect to ground, if one exists |
| 64 | set tielopin_out="" ;# Output pin name of tielo cell, if it exists |
| 65 | |
| 66 | set gndnet="vdd" ;# Name used for ground pins in standard cells |
| 67 | set vddnet="vss" ;# Name used for power pins in standard cells |
| 68 | |
| 69 | set separator="" ;# Separator between gate names and drive strengths |
| 70 | set techfile=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.tech ;# magic techfile |
| 71 | set magicrc=STAGING_PATH/TECHNAME/MAGIC_CURRENT/TECHNAME.magicrc ;# magic startup script |
| 72 | set magic_display="XR" ;# magic display, defeat display query and OGL preference |
| 73 | set netgen_setup=STAGING_PATH/TECHNAME/libs.tech/netgen/TECHNAME_setup.tcl ;# netgen setup file for LVS |
| 74 | #ifdef EF_FORMAT |
| 75 | set gdsfile=STAGING_PATH/TECHNAME/libs.ref/gds/sky130_osu130/sky130_osu130.gds ;# GDS database of standard cells |
| 76 | set verilogfile=STAGING_PATH/TECHNAME/libs.ref/verilog/sky130_osu130/sky130_osu130.v ;# Verilog models of standard cells |
| 77 | #else (!EF_FORMAT) |
| 78 | set gdsfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/gds/sky130_osu130.gds ;# GDS database of standard cells |
| 79 | set verilogfile=STAGING_PATH/TECHNAME/libs.ref/sky130_osu130/verilog/sky130_osu130.v ;# Verilog models of standard cells |
| 80 | #endif (!EF_FORMAT) |
| 81 | |
| 82 | # Set a conditional default in the project_vars.sh file for this process |
| 83 | set postproc_options="" |
| 84 | #ifdef METAL5 |
| 85 | # Normally one does not want to use the top metal for signal routing |
| 86 | set route_layers = 5 |
| 87 | #else |
| 88 | set route_layers = 3 |
| 89 | #endif |
| 90 | set fill_ratios="100,0,0,0" |
| 91 | set fanout_options="-l 100 -c 10" |
| 92 | set addspacers_options="-stripe 1.6 40.0 PG" |
| 93 | set xspice_options="-io_time=250p -time=50p -idelay=20p -odelay=50p -cload=250f" |