Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tech file updates #257

Merged
merged 1 commit into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Tech file updates
Added new models for sky130
Updated gf180mcuD tech file
Added gf180mcuD lvs_config for sram
Cleaned up models for wrong pdk
  • Loading branch information
d-m-bailey committed Nov 8, 2023
commit 66da67e2a17631475c7a2bcda0c02c0040a2aef1
58 changes: 4 additions & 54 deletions checks/be_checks/tech/gf180mcuD/cvc.models
Original file line number Diff line number Diff line change
@@ -1,77 +1,27 @@

MN nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
MP pfet_01v8_hvt Vth=-0.2 Vgs=1.8 Vds=1.8

R short model=switch_on

D np_6p0
D pn_6p0
D diode_nd2ps_06v0
D diode_pd2nw_06v0

D sky130_fd_pr__diode_pw2nd_05v5
D sky130_fd_pr__diode_pw2nd_11v0
D sky130_fd_pr__diode_pw2nd_05v5_nvt
D sky130_fd_pr__diode_pd2nw_05v5
D sky130_fd_pr__diode_pd2nw_05v5_lvt
D sky130_fd_pr__diode_pd2nw_11v0
D sky130_fd_pr__model__parasitic__diode_ps2dn
D sky130_fd_pr__model__parasitic__diode_ps2nw
D sky130_fd_pr__model__parasitic__diode_pw2dn
D condiode


R ppolyf_u_1k_6p0 R=r_length/r_width*50

#R sky130_fd_pr__res_generic_m1 R=l/w*0.125
#R sky130_fd_pr__res_generic_m2 R=l/w*0.125
#R sky130_fd_pr__res_generic_m3 R=l/w*0.047
#R sky130_fd_pr__res_generic_m4 R=l/w*0.047
#R sky130_fd_pr__res_generic_nd R=l/w*0.029
R sky130_fd_pr__res_generic_l1 model=switch_on
R sky130_fd_pr__res_generic_m1 model=switch_on
R sky130_fd_pr__res_generic_m2 model=switch_on
R sky130_fd_pr__res_generic_m3 model=switch_on
R sky130_fd_pr__res_generic_m4 model=switch_on
R sky130_fd_pr__res_generic_m5 model=switch_on
R sky130_fd_pr__res_generic_nd R=l/w*120
R sky130_fd_pr__res_generic_nd__hv R=l/w*114
R sky130_fd_pr__res_generic_pd__hv R=l/w*191
R sky130_fd_pr__res_generic_po R=l/w*48
R sky130_fd_pr__res_xhigh_po R=l/w*2000
R sky130_fd_pr__res_high_po R=l/w*2000
R sky130_fd_pr__reram_reram_cell R=10
R ppolyf_u R=r_length/r_width*50

MN nfet_06v0 Vth=0.4
MN nfet_06v0_dss Vth=0.4
MP pfet_06v0 Vth=-0.4
MP pfet_06v0_dss Vth=-0.4
MN nmos_6p0 Vth=0.4
MP pmos_6p0 Vth=-0.4
MN nmos_3p3 Vth=0.3
MP pmos_3p3 Vth=-0.3

MN sky130_fd_pr__nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__nfet_01v8_lvt Vth=0.1 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__special_nfet_latch Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__nfet_03v3_nvt Vth=0.2 Vgs=3.3 Vds=3.3
MN sky130_fd_pr__esd_nfet_g5v0d10v5 Vth=0.2
MN sky130_fd_pr__nfet_05v0_nvt Vth=0.2
MN sky130_fd_pr__nfet_g5v0d10v5 Vth=0.2
MN sky130_fd_bs_flash__special_sonosfet_star Vth=0.2

MP sky130_fd_pr__pfet_01v8 Vth=-0.2 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_01v8_lvt Vth=-0.1 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_01v8_hvt Vth=-0.3 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__special_pfet_pass Vth=-0.2 Vgs=1.8 Vds=1.8
MP sky130_fd_pr__pfet_g5v0d10v5 Vth=-0.2

C mim_2p0fF

C sky130_fd_pr__cap_mim_m3_1
C sky130_fd_pr__cap_mim_m3_2
C sky130_fd_pr__cap_var
C sky130_fd_pr__cap_var_lvt
C cap_mim_2f0_m4m5_noshield
C cap_nmos_06v0

Q sky130_fd_pr__pnp_05v5


27 changes: 9 additions & 18 deletions checks/be_checks/tech/gf180mcuD/cvc.power.caravel
Original file line number Diff line number Diff line change
@@ -1,18 +1,9 @@
vccd power 1.8
vccd1 power 1.8
vccd2 power 1.8
vdda power 3.3
vdda1 power 3.3
vdda1_2 power 3.3
vdda2 power 3.3
vddio power 3.3
vddio_2 power 3.3
vssa power 0.0
vssa1 power 0.0
vssa1_2 power 0.0
vssa2 power 0.0
vssd power 0.0
vssd1 power 0.0
vssd2 power 0.0
vssio power 0.0
vssio_2 power 0.0
VDD power 5.0
VSS power 0.0
clock input min@0.0 max@5.0
flash_clk input min@0.0 max@5.0
flash_csb input min@0.0 max@5.0
flash_io* input min@0.0 max@5.0
gpio input min@0.0 max@5.0
resetb input min@0.0 max@5.0
mprj_io[*] input min@0.0 max@5.0
7 changes: 2 additions & 5 deletions checks/be_checks/tech/gf180mcuD/gf180mcuD.tech
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ tech
end

version
version 1.0.453-0-g559a117
version 1.0.455-1-ge0f692f
description "Global Foundries 180mcu: open PDK rules and DRC"
requires magic-8.3.411
end
Expand Down Expand Up @@ -3011,8 +3011,6 @@ extract

tiedown alldiffnonfet

variants ()

substrate *ppdiff,*mvppdiff,space/w,pwell well $SUB -dnwell,isosub

# Layer resistance
Expand Down Expand Up @@ -3931,8 +3929,7 @@ variants (nowell)


variants *
device csubcircuit cap_mim_2f0fF *mimcap *m4 l=c_length w=c_width

device csubcircuit cap_mim_2f0_m4m5_noshield *mimcap *m4 l=c_length w=c_width
end

#-----------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions checks/be_checks/tech/gf180mcuD/known_abstract_filter.awk
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
/nfet_06v0/ {next} # ignore primitive devices
/cap_nmos_06v0/ {next} # ignore primitive devices
/ppolyf_u/ {next} # ignore primitive devices
/cap_mim/ {next} # ignore primitive devices
{ print }
6 changes: 4 additions & 2 deletions checks/be_checks/tech/gf180mcuD/lvs_config.base.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"EXTRACT_FLATGLOB": [
"*nmos_*_*",
"*pmos_*_*"
"*nmos_*_*[A-Z]*",
"*mim_*_*[A-Z]*",
"*ppolyf_*_*[A-Z]*",
"*pmos_*_*[A-Z]*"
],
"EXTRACT_ABSTRACT": [
"*__fill_*",
Expand Down
7 changes: 3 additions & 4 deletions checks/be_checks/tech/gf180mcuD/lvs_config.caravel_core.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"STD_CELL_LIBRARY": "gf180mcu_fd_sc_mcu7t5v0",
"SRAM_MACRO": "gf180mcu_fd_ip_sram__sram512x8m8wm1",
"INCLUDE_CONFIGS": [
"$LVS_ROOT/tech/$PDK/lvs_config.sram512x8m8wm1.json",

"$LVS_ROOT/tech/$PDK/lvs_config.sram.json",
"$LVS_ROOT/tech/$PDK/lvs_config.base.json",
"$UPRJ_ROOT/lvs/user_project_wrapper/lvs_config.json"
],
Expand All @@ -24,14 +24,13 @@
""
],
"LVS_SPICE_FILES": [
"$CARAVEL_ROOT/xschem/simple_por.spice"
"$CARAVEL_ROOT/macros/simple_por/netlist/simple_por.spice"
],
"LVS_VERILOG_FILES": [
"$MCW_ROOT/verilog/gl/gf180_ram_512x8_wrapper.v",
"$CARAVEL_ROOT/verilog/gl/housekeeping.v",
"$CARAVEL_ROOT/verilog/gl/mprj_io_buffer.v",
"$CARAVEL_ROOT/verilog/gl/spare_logic_block.v",

"$UPRJ_ROOT/verilog/gl/gpio_defaults_block_*.v",
"$UPRJ_ROOT/verilog/gl/user_id_programming.v",
"$UPRJ_ROOT/verilog/gl/caravel_core.v"
Expand Down
2 changes: 1 addition & 1 deletion checks/be_checks/tech/gf180mcuD/lvs_config.chip_io.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"*NMOS_*",
"*moscap_*",
"*nmos_*",
"*pmos_*",
"*comp018green*",
"*POWER_RAIL_COR*",
"*top_route*",
Expand Down Expand Up @@ -37,7 +38,6 @@
"$PDK_ROOT/$PDK/libs.ref/gf180mcu_fd_io/spice/*.spice"
],
"LVS_VERILOG_FILES": [

"$CARAVEL_ROOT/verilog/gl/chip_io.v"
],
"LAYOUT_FILE": "$UPRJ_ROOT/gds/caravel.gds"
Expand Down
71 changes: 71 additions & 0 deletions checks/be_checks/tech/gf180mcuD/lvs_config.sram.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"TOP_SOURCE": "$SRAM_MACRO",
"TOP_LAYOUT": "$TOP_SOURCE",
"EXTRACT_FLATGLOB": [
"*$$*",
"*018SRAM_*",
"*Cell_array*",
"*GF018_*x8M8WM1_*",
"*G_ring_*",
"*M?_?ACTIVE*_*",
"*M?_M*_*",
"*M?_NWEL*_*",
"*M?_POLY*_*",
"*M?_PSUB*_*",
"*alatch*",
"*col_*",
"*control_*",
"*dcap_*",
"*din_*",
"*dummy*",
"*gen_*",
"*lcol4_*",
"*m2_saout*",
"*m2m3_*",
"*mux821_*",
"*new_dummyrow*",
"*nmos_*",
"*outbuf_oe*",
"*pmos_*",
"*pmoscap*",
"*power_*",
"*power_route*",
"*predec?_*",
"*prexdec_top*",
"*rarray*",
"*rcol4_*",
"*sa_*",
"*sacntl_*",
"*saout_*",
"*strapx2b_bndry*",
"*via1_*",
"*wen_*",
"*wen_wm1_*",
"*x8M8W*_PWR_*",
"*xdec16_*",
"*xdec32_*",
"*xdec64_*",
"*xdec8_*",
"*xdec_*",
"*ypass_gate*"
],
"EXTRACT_ABSTRACT": [
""
],
"LVS_FLATTEN": [
""
],
"LVS_NOFLATTEN": [
""
],
"LVS_IGNORE": [
""
],
"LVS_SPICE_FILES": [
"$PDK_ROOT/$PDK/libs.ref/gf180mcu_fd_ip_sram/spice/$TOP_SOURCE.spice"
],
"LVS_VERILOG_FILES": [
""
],
"LAYOUT_FILE": "$PDK_ROOT/$PDK/libs.ref/gf180mcu_fd_ip_sram/gds/$TOP_LAYOUT.gds"
}
13 changes: 0 additions & 13 deletions checks/be_checks/tech/gf180mcuD/remove_well.sed
Original file line number Diff line number Diff line change
@@ -1,19 +1,6 @@
s/[^ ]* \(sky130_fd_pr__.fet\)/\1/
s/[^ ]* \(sky130_fd_pr__special_.fet\)/\1/
s/[^ ]* \(sky130_fd_pr__esd_.fet\)/\1/
s/[^ ]* \(sky130_fd_pr__res_high_po\)/\1/
s/[^ ]* \(sky130_fd_pr__res_xhigh_po\)/\1/
s/[^ ]* \(sky130_fd_pr__res_generic_nd\)/\1/
s/[^ ]* \(sky130_fd_pr__res_generic_pd\)/\1/
s/[^ ]* \(sky130_fd_pr__cap_var_lvt\)/\1/
s/[^ ]* \(sky130_fd_bs_flash__special_sonosfet_star\)/\1/
s/[^ ]* \(ppolyf_u_1k_6p0\)/\1/
s/[^ ]* \(ppolyf_u\)/\1/
s/[^ ]* \(.fet_06v0\)/\1/
/^D.* sky130_fd_pr__diode_pd2nw_/d
/^D.* sky130_fd_pr__diode_pw2nd_/d
/^D.* diode_pd2nw_06v0/d
/^D.* diode_nd2ps_06v0/d
/^D.* np_6p0/d
/^D.* pn_6p0/d
/^X.* sky130_fd_pr__pnp_05v5/d
2 changes: 2 additions & 0 deletions checks/be_checks/tech/sky130A/cvc.models
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ R sky130_fd_pr__res_generic_m3 model=switch_on
R sky130_fd_pr__res_generic_m4 model=switch_on
R sky130_fd_pr__res_generic_m5 model=switch_on
R sky130_fd_pr__res_generic_nd R=l/w*120
R sky130_fd_pr__res_generic_pd R=l/w*197
R sky130_fd_pr__res_generic_nd__hv R=l/w*114
R sky130_fd_pr__res_generic_pd__hv R=l/w*191
R sky130_fd_pr__res_generic_po R=l/w*48
Expand All @@ -43,6 +44,7 @@ R sky130_fd_pr__res_high_po_0p69 R=l/0.69*300
R sky130_fd_pr__res_high_po_1p41 R=l/1.42*300
R sky130_fd_pr__res_high_po_2p86 R=l/2.86*300
R sky130_fd_pr__res_high_po_5p73 R=l/5.72*300
R sky130_fd_pr__res_iso_pw R=l/w*4400

MN sky130_fd_pr__nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
MN sky130_fd_pr__nfet_01v8_lvt Vth=0.1 Vgs=1.8 Vds=1.8
Expand Down
8 changes: 7 additions & 1 deletion checks/be_checks/tech/sky130A/fix_spice
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
sed -i.org -e 's/sky130_fd_pr__pnp_05v5_W3p40L3p40/sky130_fd_pr__pnp_05v5 W=3.40 L=3.40/' \
-e 's/sky130_fd_pr__pnp_05v5_W0p68L0p68/sky130_fd_pr__pnp_05v5 area=3.25/' \
-e 's/sky130_fd_pr__res_high_po_0p35/sky130_fd_pr__res_high_po W=0.35/' \
-e 's/sky130_fd_pr__res_high_po_0p69/sky130_fd_pr__res_high_po W=0.69/' \
-e 's/sky130_fd_pr__res_high_po_1p41/sky130_fd_pr__res_high_po W=1.41/' \
-e 's/sky130_fd_pr__res_high_po_2p85/sky130_fd_pr__res_high_po W=2.85/' \
-e 's/sky130_fd_pr__res_high_po_5p73/sky130_fd_pr__res_high_po W=5p73/' \
-e 's/sky130_fd_pr__res_xhigh_po_0p35/sky130_fd_pr__res_xhigh_po W=0.35/' \
-e 's/sky130_fd_pr__res_xhigh_po_0p69/sky130_fd_pr__res_xhigh_po W=0.69/' \
-e 's/sky130_fd_pr__res_xhigh_po_2p85/sky130_fd_pr__res_xhigh_po W=2.85/' $*
-e 's/sky130_fd_pr__res_xhigh_po_1p41/sky130_fd_pr__res_xhigh_po W=1.41/' \
-e 's/sky130_fd_pr__res_xhigh_po_2p85/sky130_fd_pr__res_xhigh_po W=2.85/' \
-e 's/sky130_fd_pr__res_xhigh_po_5p73/sky130_fd_pr__res_xhigh_po W=5.73/' $*
1 change: 1 addition & 0 deletions checks/be_checks/tech/sky130A/remove_well.sed
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ s/[^ ]* \(.fet_06v0\)/\1/
/^D.* diode_nd2ps_06v0/d
/^D.* np_6p0/d
/^D.* pn_6p0/d
/^R.* sky130_fd_pr__res_iso_pw/d
/^X.* sky130_fd_pr__pnp_05v5/d
2 changes: 2 additions & 0 deletions checks/be_checks/tech/sky130B/cvc.models
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ R sky130_fd_pr__res_generic_m3 model=switch_on
R sky130_fd_pr__res_generic_m4 model=switch_on
R sky130_fd_pr__res_generic_m5 model=switch_on
R sky130_fd_pr__res_generic_nd R=l/w*120
R sky130_fd_pr__res_generic_pd R=l/w*197
R sky130_fd_pr__res_generic_nd__hv R=l/w*114
R sky130_fd_pr__res_generic_pd__hv R=l/w*191
R sky130_fd_pr__res_generic_po R=l/w*48
Expand All @@ -43,6 +44,7 @@ R sky130_fd_pr__res_high_po_0p69 R=l/0.69*300
R sky130_fd_pr__res_high_po_1p41 R=l/1.42*300
R sky130_fd_pr__res_high_po_2p86 R=l/2.86*300
R sky130_fd_pr__res_high_po_5p73 R=l/5.72*300
R sky130_fd_pr__res_iso_pw R=l/w*4400
R sky130_fd_pr__reram_reram_cell R=10

MN sky130_fd_pr__nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8
Expand Down
8 changes: 7 additions & 1 deletion checks/be_checks/tech/sky130B/fix_spice
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
sed -i.org -e 's/sky130_fd_pr__pnp_05v5_W3p40L3p40/sky130_fd_pr__pnp_05v5 W=3.40 L=3.40/' \
-e 's/sky130_fd_pr__pnp_05v5_W0p68L0p68/sky130_fd_pr__pnp_05v5 area=3.25/' \
-e 's/sky130_fd_pr__res_high_po_0p35/sky130_fd_pr__res_high_po W=0.35/' \
-e 's/sky130_fd_pr__res_high_po_0p69/sky130_fd_pr__res_high_po W=0.69/' \
-e 's/sky130_fd_pr__res_high_po_1p41/sky130_fd_pr__res_high_po W=1.41/' \
-e 's/sky130_fd_pr__res_high_po_2p85/sky130_fd_pr__res_high_po W=2.85/' \
-e 's/sky130_fd_pr__res_high_po_5p73/sky130_fd_pr__res_high_po W=5p73/' \
-e 's/sky130_fd_pr__res_xhigh_po_0p35/sky130_fd_pr__res_xhigh_po W=0.35/' \
-e 's/sky130_fd_pr__res_xhigh_po_0p69/sky130_fd_pr__res_xhigh_po W=0.69/' \
-e 's/sky130_fd_pr__res_xhigh_po_2p85/sky130_fd_pr__res_xhigh_po W=2.85/' $*
-e 's/sky130_fd_pr__res_xhigh_po_1p41/sky130_fd_pr__res_xhigh_po W=1.41/' \
-e 's/sky130_fd_pr__res_xhigh_po_2p85/sky130_fd_pr__res_xhigh_po W=2.85/' \
-e 's/sky130_fd_pr__res_xhigh_po_5p73/sky130_fd_pr__res_xhigh_po W=5.73/' $*
1 change: 1 addition & 0 deletions checks/be_checks/tech/sky130B/remove_well.sed
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ s/[^ ]* \(.fet_06v0\)/\1/
/^D.* diode_nd2ps_06v0/d
/^D.* np_6p0/d
/^D.* pn_6p0/d
/^R.* sky130_fd_pr__res_iso_pw/d
/^X.* sky130_fd_pr__pnp_05v5/d