Skip to content

Commit

Permalink
final commit where i added several devices to the tourture test and r…
Browse files Browse the repository at this point in the history
…esolved several errors for the test.
  • Loading branch information
qurratulainalam committed Oct 8, 2023
1 parent 5af9703 commit a0a8de0
Show file tree
Hide file tree
Showing 4 changed files with 310 additions and 101 deletions.
22 changes: 11 additions & 11 deletions gf180mcu/magic/gf180mcu.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ namespace eval gf180mcu {
dict set ruleset diffres_spacing 0.40 ;# Diffusion resistor spacing rule
dict set ruleset polyres_spacing 0.40 ;# Poly resistor spacing rule
dict set ruleset diff_poly_space 0.10 ;# Diffusion to poly spacing rule
dict set ruleset diff_gate_space 0.10 ;# Diffusion to gate poly spacing rule
dict set ruleset diff_gate_space 0.11 ;# Diffusion to gate poly spacing rule
dict set ruleset metal_spacing 0.23 ;# Metal1 spacing rule
dict set ruleset mmetal_spacing 0.23 ;# Metal spacing rule (above metal1)
dict set ruleset mmetal_spacing 0.38 ;# Metal spacing rule (above metal1)
dict set ruleset sblk_to_cont 0.33 ;# resistor to contact center
dict set ruleset sblk_diff_space 0.44 ;# resistor to guard ring
}
Expand Down Expand Up @@ -2780,10 +2780,10 @@ proc gf180mcu::nwell_draw {parameters} {
plus_contact_type psc \
sub_type pwell \
end_surround $diff_surround \
end_spacing 1.2 \
end_spacing 1.4 \
overlap_compress -0.84 \
res_to_endcont 0.22 \
res_spacing 1.2 \
res_to_endcont 0.38 \
res_spacing 1.4 \
res_diff_spacing 0.28 \
well_res_overlap 0.24 \
]
Expand Down Expand Up @@ -2953,8 +2953,8 @@ proc gf180mcu::rm5_draw {parameters} {
res_type rm5 \
end_type m5 \
end_surround 0.0 \
end_spacing 0.0 \
res_to_endcont 0.2 \
end_spacing 0.0\
res_to_endcont 0.265 \
res_spacing $mmetal_spacing \
]
set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
Expand Down Expand Up @@ -3282,16 +3282,16 @@ proc gf180mcu::nfet_06v0_nvt_defaults {} {
}

proc gf180mcu::nfet_10v0_asym_defaults {} {
return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
return {w 4 l 0.6 m 1 nf 1 diffcov 100 polycov 100 \
guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
topc 1 botc 1 poverlap 0 doverlap 1 lmin 1.0 wmin 1.0 \
topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.6 wmin 4 \
full_metal 1 }
}

proc gf180mcu::pfet_10v0_asym_defaults {} {
return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
return {w 4.0 l 0.6 m 1 nf 1 diffcov 100 polycov 100 \
guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
topc 1 botc 1 poverlap 0 doverlap 1 lmin 1.0 wmin 1.0 \
topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.6 wmin 4.0 \
full_metal 1 }
}

Expand Down
96 changes: 48 additions & 48 deletions gf180mcu/magic/gf180mcu.tech
Original file line number Diff line number Diff line change
Expand Up @@ -4787,60 +4787,60 @@ variants *
# All devices except diodes are modeled as subcircuits

# device list:
# nfet_03v3 mosfet
# pfet_03v3 mosfet
# nfet_06v0 mosfet (thick oxide)
# pfet_06v0 mosfet (thick oxide)
# nfet_06v0_nvt mosfet (native Vt)
# nfet_03v3_dss mosfet (unsalicided drain)
# pfet_03v3_dss mosfet (unsalicided drain)
# nfet_06v0_dss mosfet (unsalicided drain, thick oxide)
# pfet_06v0_dss mosfet (unsalicided drain, thick oxide)
# nfet_10v0_asym LDNMOS (extended drain)
# pfet_10v0_asym LDPMOS (extended drain)
## nfet_03v3 mosfet
## pfet_03v3 mosfet
## nfet_06v0 mosfet (thick oxide)
## pfet_06v0 mosfet (thick oxide)
## nfet_06v0_nvt mosfet (native Vt)
## nfet_03v3_dss mosfet (unsalicided drain)
## pfet_03v3_dss mosfet (unsalicided drain)
## nfet_06v0_dss mosfet (unsalicided drain, thick oxide)
## pfet_06v0_dss mosfet (unsalicided drain, thick oxide)
## nfet_10v0_asym LDNMOS (extended drain)
## pfet_10v0_asym LDPMOS (extended drain)
#
# diode_nd2ps_03v3 diode (N+/pwell)
# diode_pd2nw_03v3 diode (P+/nwell)
# diode_nd2ps_06v0 diode (N+/pwell, high voltage)
# diode_pd2nw_06v0 diode (P+/nwell, high voltage)
# diode_nw2pw_03v3 diode (nwell/pwell)
# diode_nw2pw_06v0 diode (nwell/pwell, high voltage)
# diode_dnw2pw diode (pwell/dnwell)
# diode_dnw2ps diode (dnwll/substrate)
# sc_diode diode (Schottky)
## diode_nd2ps_03v3 diode (N+/pwell)
## diode_pd2nw_03v3 diode (P+/nwell)
## diode_nd2ps_06v0 diode (N+/pwell, high voltage)
## diode_pd2nw_06v0 diode (P+/nwell, high voltage)
## diode_nw2pw_03v3 diode (nwell/pwell)
## diode_nw2pw_06v0 diode (nwell/pwell, high voltage)
## diode_dnw2pw diode (pwell/dnwell)
## diode_dnw2ps diode (dnwll/substrate)
## sc_diode diode (Schottky)
#
# pnp_WxL BJT (10x10, 5x5, 0.42x10, 0.42x5 emitter sizes)
# npn_WxL BJT (10x10, 5x5, 0.54x16, 0.54x8, 0.54x4, 0.54x2)
#
# npolyf_u resistor (N+ poly, unsalicided)
# ppolyf_u resistor (P+ poly, unsalicided)
# ppolyf_u_1k resistor (high res resistor)*
# ppolyf_u_1k_6p0 resistor (high res resistor, high voltage)*
# nplus_u resistor (N+ diffusion, unsalicided)
# pplus_u resistor (P+ diffusion, unsalicided)
# npolyf_s resistor (N+ poly, salicided)
# ppolyf_s resistor (P+ poly, salicided)
# nplus_s resistor (N+ diffusion, salicided)
# pplus_s resistor (N+ diffusion, salicided)
# nwell resistor (N-well resistor)
# rm1 resistor (metal1)
# rm2 resistor (metal2)
# rm3 resistor (metal3)
# rm4 resistor (metal4)
# rm5 resistor (metal5)
# tm6k resistor (top metal, 0.6um thick (standard))**
# tm9k resistor (top metal, 0.9um thick)
# tm11k resistor (top metal, 1.1um thick)
# tm30k resistor (top metal, 3.0um thick)
## npolyf_u resistor (N+ poly, unsalicided)
## ppolyf_u resistor (P+ poly, unsalicided)
## ppolyf_u_1k resistor (high res resistor)*
## ppolyf_u_1k_6p0 resistor (high res resistor, high voltage)*
## nplus_u resistor (N+ diffusion, unsalicided)
## pplus_u resistor (P+ diffusion, unsalicided)
## npolyf_s resistor (N+ poly, salicided)
## ppolyf_s resistor (P+ poly, salicided)
## nplus_s resistor (N+ diffusion, salicided)
## pplus_s resistor (N+ diffusion, salicided)
## nwell resistor (N-well resistor)
## rm1 resistor (metal1)
## rm2 resistor (metal2)
## rm3 resistor (metal3)
## rm4 resistor (metal4)
## rm5 resistor (metal5)
## tm6k resistor (top metal, 0.6um thick (standard))**
## tm9k resistor (top metal, 0.9um thick)
## tm11k resistor (top metal, 1.1um thick)
## tm30k resistor (top metal, 3.0um thick)
#
# cap_nmos_03v3 mosfet (source-drain tied)
# cap_pmos_03v3 mosfet (source-drain tied)
# cap_nmos_06v0 mosfet (source-drain tied, high voltage)
# cap_pmos_06v0 mosfet (source-drain tied, high voltage)
# cap_nmos_03v3_b mosfet (n-varactor)
# cap_pmos_03v3_b mosfet (p-varactor)
# cap_nmos_06v0_b mosfet (n-varactor, high voltage)
# cap_pmos_06v0_b mosfet (p-varactor, high voltage)
## cap_nmos_03v3 mosfet (source-drain tied)
## cap_pmos_03v3 mosfet (source-drain tied)
## cap_nmos_06v0 mosfet (source-drain tied, high voltage)
## cap_pmos_06v0 mosfet (source-drain tied, high voltage)
## cap_nmos_03v3_b mosfet (n-varactor)
## cap_pmos_03v3_b mosfet (p-varactor)
## cap_nmos_06v0_b mosfet (n-varactor, high voltage)
## cap_pmos_06v0_b mosfet (p-varactor, high voltage)
#
# cap_mim_2f0fF capacitor (MiM)*,**
#
Expand Down
106 changes: 64 additions & 42 deletions gf180mcu/magic/gf180mcu_make_torture.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ proc mos_array {n devname startx starty} {
magic::gencell gf180mcu::${devname} ${devname}_$i w $w l $l m $m nf $nf diffcov $dcov polycov $pcov rlcov $rlcov poverlap $pov doverlap $dov topc $tc botc $bc full_metal $fm glc $gl grc $gr gbc $gb gtc $gt
select cell ${devname}_$i
set bh [box height]
set bh [+ $bh 124]
set bh [+ $bh 200]
box move n $bh
incr i
}
Expand Down Expand Up @@ -88,7 +88,7 @@ proc res_array {n devname startx starty} {
magic::gencell gf180mcu::${devname} ${devname}_$i w $w l $l m $m nx $nx endcov $ecov roverlap $rov snake $sn full_metal $fm glc $gl grc $gr gbc $gb gtc $gt
select cell ${devname}_$i
set bh [box height]
set bh [+ $bh 124]
set bh [+ $bh 200]
box move n $bh
incr i
}
Expand Down Expand Up @@ -130,7 +130,7 @@ proc diode_array {n devname startx starty} {
magic::gencell gf180mcu::${devname} ${devname}_$i w $w l $l nx $nx ny $ny doverlap $dov full_metal $fm elc $el erc $er etc $et ebc $eb glc $gl grc $gr gbc $gb gtc $gt
select cell ${devname}_$i
set bh [box height]
set bh [+ $bh 124]
set bh [+ $bh 200]
box move n $bh
incr i
}
Expand Down Expand Up @@ -225,48 +225,70 @@ box size 0 0
#


mos_array 6 nmos_3p3 0 0
mos_array 6 pmos_3p3 0 75000
mos_array 6 nmos_6p0 0 150000
mos_array 6 pmos_6p0 0 225000
mos_array 6 pmos_3p3_lvt 0 300000
mos_array 6 pmos_3p3_hvt 0 375000
mos_array 6 nmos_3p3_lvt 0 450000
mos_array 6 nmos_3p3_hvt 0 525000
mos_array 6 nmos_3p3_nat 0 600000
mos_array 6 nmos_6p0_nat 0 675000

res_array 6 nplus_u 100000 0
res_array 6 pplus_u 100000 180000

res_array 6 nwell_1p2 200000 0
res_array 6 ppolyf_s 200000 180000

res_array 6 npolyf_u 300000 0
res_array 6 ppolyf_u 300000 180000

res_array 6 nplus_u_3p3 400000 0
res_array 6 pplus_u_3p3 400000 180000

diode_array 6 np_1p2 500000 0
diode_array 6 pn_1p2 500000 30000
diode_array 6 np_3p3 500000 60000
diode_array 6 pn_3p3 500000 90000
diode_array 6 np_1p2_lvt 500000 120000
diode_array 6 np_1p2_hvt 500000 150000
diode_array 6 np_1p2_nat 500000 180000
diode_array 6 pn_1p2_lvt 500000 210000
diode_array 6 pn_1p2_hvt 500000 240000
mos_array 6 nfet_03v3 0 0
mos_array 6 pfet_03v3 0 75000
mos_array 6 nfet_06v0 0 150000
mos_array 6 pfet_06v0 0 225000
mos_array 6 nfet_06v0_nvt 0 300000
mos_array 6 nfet_03v3_dss 0 375000
mos_array 6 pfet_03v3_dss 0 450000
mos_array 6 nfet_06v0_dss 0 525000
mos_array 6 pfet_06v0_dss 0 600000
mos_array 6 nfet_10v0_asym 0 675000
mos_array 6 pfet_10v0_asym 0 725000

res_array 6 npolyf_u 100000 0
res_array 6 ppolyf_u 100000 180000

res_array 6 ppolyf_u_1k 200000 0
res_array 6 ppolyf_u_1k_6p0 200000 180000

res_array 6 nplus_u 300000 0
res_array 6 pplus_u 300000 180000

res_array 6 npolyf_s 400000 0
res_array 6 ppolyf_s 400000 180000

#res_array 6 nplus_s 400000 0
#res_array 6 pplus_s 400000 180000

res_array 6 nwell 800000 0
res_array 6 rm1 800000 180000
res_array 6 rm2 800000 360000
res_array 6 rm3 800000 540000
res_array 6 rm4 800000 720000
res_array 6 rm5 800000 900000
#res_array 6 rmtp 800000 1080000
#res_array 6 rmtp 800000 1260000
#res_array 6 rmtp 800000 1440000
#res_array 6 rmtp 800000 1620000

diode_array 6 diode_nd2ps_03v3 500000 0
diode_array 6 diode_pd2nw_03v3 500000 30000
diode_array 6 diode_nd2ps_06v0 500000 60000
diode_array 6 diode_pd2nw_06v0 500000 90000
diode_array 6 diode_nw2pw_03v3 500000 120000
diode_array 6 diode_nw2pw_06v0 500000 150000
diode_array 6 diode_dnw2pw 500000 180000
diode_array 6 diode_dnw2ps 500000 210000
diode_array 6 sc_diode 500000 240000
diode_array 6 np_3p3_nat 500000 270000

# Add individual devices from primdev, check GDS pointers
fixed_array 2 vnpn_2x2 600000 0
fixed_array 2 vnpn_5x0p42 600000 50000
fixed_array 2 vnpn_5x5 600000 100000
fixed_array 2 vnpn_10x0p42 600000 150000

cap_array 6 mim_sm_bb 600000 200000
# cap_array 6 apmom_bb 600000 250000
fixed_array 2 efuse 600000 0
#fixed_array 2 vnpn_5x0p42 600000 50000
#fixed_array 2 vnpn_5x5 600000 100000
#fixed_array 2 vnpn_10x0p42 600000 150000

cap_array 6 nmoscap_3p3 600000 200000
cap_array 6 cap_mim_2p0fF 600000 250000
cap_array 6 nmoscap_6p0 600000 500000
#cap_array 6 cap_pmos_06v0 600000 750000
#cap_array 6 cap_nmos_03v3_b 600000 1000000
#cap_array 6 cap_pmos_03v3_b 600000 1250000
#cap_array 6 cap_nmos_06v0_b 600000 1500000
#cap_array 6 cap_pmos_06v0_b 600000 1750000
#cap_array 6 cap_mim_2f0fF 600000 2000000

save torture_test_gf013
gds write torture_test_gf013
Loading

0 comments on commit a0a8de0

Please sign in to comment.