Hi <@U016EM8L91B>, sorry to bother you on holiday....
# magic
m
Hi @User, sorry to bother you on holiday. When I try to generate an inductor device (from Devices 1 menu) I get the following error:
Copy code
No import routine for sky130 library cell sky130_fd_pr__rf_test_coil1!
No import routine for sky130 library cell sky130_fd_pr__rf_test_coil1!
    while executing
"error "No import routine for ${library} library cell ${gencell_type}!""
    (procedure "magic::gencell" line 45)
    invoked from within
"magic::gencell sky130::sky130_fd_pr__rf_test_coil1 "
    invoked from within
".layout1.pane.top.titlebar.mbuttons.pdk1.toolmenu invoke active"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke active]"
    (procedure "tk::MenuInvoke" line 50)
    invoked from within
"tk::MenuInvoke .layout1.pane.top.titlebar.mbuttons.pdk1.toolmenu 1"
    (command bound to event)
(I'm using magic 8.3 rev 245) Also, I think these coils are just very rough test because I can't even find a spice model in the entire pdk
t
Holiday? What's a holiday? Thank you for bringing this to my attention. I discovered that the routine names for the inductor devices in sky130A.tcl were incorrect, causing the error. I just corrected this in open_pdks:
commit e4b453599ad0b112e90c89220145c8219dda3cb0
on opencircuitdesign.com, open_pdks version 1.0.262. It is true, however, that there is a huge disconnect in the PDK with respect to inductors. There are layouts for the ones in the parameterized cell menu in magic called
test_coil1
,
test_coil2
, and
test_coil3
. There are SPICE models for three inductors called
ind_03_90
,
ind_05_125
, and
ind_05_220
. I have not been able to validate if the three models correspond to the three test coils. It appers that the values
xx
and
yy
in the name
ind_xx_yy
refer to the number of turns and the radius (?). The number of turns seems to correspond to the test coil layouts, and the
yy
value is proportional to the radii of those layouts, but not equal. So I have held off on equating the layouts and models with each other in the PDK installation. The other issue is that there was one specific variant of the older s8 process that was said to support inductors and had a 3-metal stack with a thick metal3. So there is the additional uncertainty as to whether the test coil models are even appropriate to sky130. Clearly, one would prefer to create coils on the topmost metal, so for sky130, that would mean metal5 inductors. I have one layout of a metal5 inductor from SkyWater called
xind4_01
that comes from an LVS verification layout but has no model anywhere, making it somewhat useless except maybe as a reference for how to do an inductor layout.
👍 1
1
m
Thanks you for the fast and useful reply! I was trying to implement a basic LC oscillator for rf applications but as you said inductor design in the pdk isn't straightforward. I've checked the
ind_xx_yy
spice models and they seems to be for a very specific coils. They needs some (probably a lot!) work to be general or widely usable. Then, reading here I found two extra feature named Inductor-TLM and Cu Inductor of which I don't know the exact purpose. Also, you have raised another doubt: why is the inductor made out of met3 instead of the top layer? I was thinking to run some EM simulation to extract some useful spice parameters but i see it more like a desperate attempt because I'm not sure it will led me to a working "model". Honestly, if you were me, would you try to make this topology work or just let it go and focus on something else (like ring oscillators and so on)? Have a nice day!
t
There are some inductor designs that were on the MPW runs, so eventually we should get some data for devices with a known layout. However, it never hurts to do more if you have the room on your chip for them (and especially if you have an S-parameter analyzer on hand). Then, it would be nice to run some geometries through a 3D field equation solver like FastHenry to see if it gives meaningful results.
1
m
I've set up a 3D EM simulation of
test_coil1
and
test_coil2
from which I extracted some spice parameters (pi-model, nothing exotic). About the first one, I've found
l=1.54e-9 @ DC
and
1.43e-9 @ 1GHz
which seems to be consistent with
ind_03_90
spice model. Also, for the bigger coil I've found
l=5.64e-9 @ 1GHz
which is similar with
ind_05_125
spice model. I'm going to run more simulation and see if I still get consistent result
1