Made a change to the PNP transistor layouts in sky130_fd_pr so that the layouts
have an _rf_ in the name (which they did, originally, except not consistently).
This keeps the layout cell from having the same name as the wrapper subcircuit,
which would otherwise cause an invalid loop of a subcircuit apparently calling
itself. The magic .mag view of this device layout is modified to contain the
ID layer specific to the 0p68 or 3p40 devices, so that when extracted from
magic, the device has the correct extracted name for the device model's
subcircuit wrapper. This should be correct now for the four devices that can
be instantiated from magic's device generator.
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl
index 69250f2..bcf4df5 100644
--- a/sky130/magic/sky130.tcl
+++ b/sky130/magic/sky130.tcl
@@ -112,9 +112,9 @@
magic::add_toolkit_command $layoutframe "NPN 1.0 x 2.0" \
"magic::gencell sky130::sky130_fd_pr__rf_npn_05v5_W1p00L2p00" pdk1
magic::add_toolkit_command $layoutframe "PNP 0.68 x 0.68" \
- "magic::gencell sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68" pdk1
+ "magic::gencell sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68" pdk1
magic::add_toolkit_command $layoutframe "PNP 3.4 x 3.4" \
- "magic::gencell sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40" pdk1
+ "magic::gencell sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40" pdk1
magic::add_toolkit_separator $layoutframe pdk1
@@ -6392,8 +6392,8 @@
#
# sky130_fd_pr__rf_npn_05v5_W1p00L1p00
# sky130_fd_pr__rf_npn_05v5_W1p00L2p00
-# sky130_fd_pr__pnp_05v5_W3p40L3p40
-# sky130_fd_pr__pnp_05v5_W0p68L0p68
+# sky130_fd_pr__rf_pnp_05v5_W3p40L3p40
+# sky130_fd_pr__rf_pnp_05v5_W0p68L0p68
#
# Parallel Plate Capacitors:
#
@@ -6415,11 +6415,11 @@
return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 8.03}
}
-proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_defaults {} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68_defaults {} {
return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.72 ystep 3.72}
}
-proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_defaults {} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40_defaults {} {
return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44}
}
@@ -6472,11 +6472,11 @@
return [sky130::fixed_convert $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_convert {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68_convert {parameters} {
return [sky130::fixed_convert $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_convert {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40_convert {parameters} {
return [sky130::fixed_convert $parameters]
}
@@ -6556,11 +6556,11 @@
sky130::fixed_dialog $parameters
}
-proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_dialog {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68_dialog {parameters} {
sky130::fixed_dialog $parameters
}
-proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_dialog {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40_dialog {parameters} {
sky130::fixed_dialog $parameters
}
@@ -6635,12 +6635,12 @@
return [sky130::fixed_draw sky130_fd_pr__rf_npn_05v5_W1p00L2p00 $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_draw {parameters} {
- return [sky130::fixed_draw sky130_fd_pr__pnp_05v5_W0p68L0p68 $parameters]
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68_draw {parameters} {
+ return [sky130::fixed_draw sky130_fd_pr__rf_pnp_05v5_W0p68L0p68 $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_draw {parameters} {
- return [sky130::fixed_draw sky130_fd_pr__pnp_05v5_W3p40L3p40 $parameters]
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40_draw {parameters} {
+ return [sky130::fixed_draw sky130_fd_pr__rf_pnp_05v5_W3p40L3p40 $parameters]
}
proc sky130::sky130_fd_pr__rf_test_coil1 {parameters} {
@@ -6726,11 +6726,11 @@
return [sky130::fixed_check $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_check {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W0p68L0p68_check {parameters} {
return [sky130::fixed_check $parameters]
}
-proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_check {parameters} {
+proc sky130::sky130_fd_pr__rf_pnp_05v5_W3p40L3p40_check {parameters} {
return [sky130::fixed_check $parameters]
}