Using lots of new devices today! I have generated ...
# magic
e
Using lots of new devices today! I have generated a MiM cap using Metal3/Metal 4. Assuming the capacitor is the giant square on the left? Do I simply wire m3/m4 strips directly to this, for either side of the capacitor? Also, what is the vertical stripe of M3/M4 on the right for?
t
Yes, the capacitor is the large square to the left. The stripe on the right is a contact to the bottom plate. The "best practice" for avoiding antenna discharge problems during manufacture is to contact upwards from the bottom plate. So the two connections should be a M4 wire directly to the capacitor contact on top, and a M4 wire to the contact on the right.
πŸ‘ 1
e
I have been trying to avoid using Metal 4 for anything in the design, so as not to disturb Caravel's PDN. Will the M4 capacitor wires cause any issue - do I need a keep-out area?
h
I think you can use
m4
in a macro. The LEF you write has the block-out shape. You just need to make sure after placement that a proper powergrid is done by OL, and nothing shorts. There are frequently tool bugs so that the PDN is not properly created.
e
Oh that is interesting that the LEF has the block-out shape. I was actually using
m4
in my Macros to draw vertical power lines, and labelling them with
vccd1
etc, so that Caravel's PDN would pick them up and power my macro. This was on the advice of some other users. Is this your approach too, or do you think these
m4
strips are getting blocked-out when generating the LEF? I was getting some problems with my macro powering up after routing through OL, so maybe that is a contributing factor! I never did get to the bottom of it.
t
I have not tried to stuff analog macros into an openlane flow myself, but the SRAM block is commonly used in that context, and it has its own power connections, and it's possible to get openlane to route the power nets and make the right connections. So I know it can be done.
m
I had to use MIMCAPs in macros, as far as I know the PDN-generator reads the
.lef
file and then avoids all
OBS
structures, and specific
PIN
layers (in the same layer + their nets are explicitely specified in OpenLane configuration
FP_PDN_MACRO_HOOKS
). Other PIN layers are being ignored (causing shorts). m4 power rails: Should be connected via m5 if they are specified in
FP_PDN_MACRO_HOOKS
and m5 can reach them Mimcaps: worked for me with the power nets. But with different nets, adding obstructions might be necessary
πŸŽ‰ 1
πŸ‘€ 1
e
Really useful thank you!
@Manuel M so if I have understood correctly, I should create
OBS
areas in Magic over my MIMCAPs, and then specify my power rails in
FP_PDN_MACRO_HOOKS
so that Caravel doesn't generate its own PDN over them? Then they should be connected to M5 if they are reachable?
πŸ‘ 1
h
@Ellen Wood Sometimes it is easier to edit the
.mag
file directly in a texteditor, than to draw in magic using the GUI. Just a hint, in case you were not aware. Also a LEF/DEF is just ASCII, you can manipulate directly if useful.
e
@Harald Pretl do you mean for creating
OBS
areas etc? I haven't tried that yet but sounds like a good idea!
h
Exactly. Sometimes modifying OBS is just easier this way. Also adding pins in magic I do with
vim
, quicker than in magic. I just put a label in magic via the GUI, the rest I do with vim πŸ™‚
e
That is great to know 😊 (assuming PINs are the same as PORTs?)
h
Yes, sorry πŸ˜€