Using IHP SG13G2 open PDK and klayout. Does anyone...
# ihp-sg13g2
s
Using IHP SG13G2 open PDK and klayout. Does anyone know how to get rid of this active filler area, density, global metal drc errors??? I've been trying different area and filling them but this ertror won't go. Slack Conversation
k
have you generated the fillers ?
I mean Active fillers
s
I use these options? Is this how filler is generated?
k
you have to run all Fills
and then run density report
and then DRC
s
oh okay let me check
I've used all 3 fills, and then density report. After clicking density report, a prompt showed up but nothing was given to me, it closed on its own. Then I ran drc and this is the output
Errors persist
k
could you share the gds ?
s
message has been deleted
What is the purpose of maximal and minimum drc, could you clarify?
k
You can also edit the filler script decreasing values of
spacing_h
and
spacing_v
up to 0.42. It will generate much more dense active filler
s
And as for the 2 types of drc?
k
Please let me know if changing the spacing worked for you ?
s
okay I'm testing now
Ah yes, 1 drc has decreased
But the rest still persists
k
if it is about fillers you can play with the densities modifying other scripts
which grid dou you use/
s
Okay, I'll try widths of other metal and top metal fillers. Are all of those have lower limits of 0.42? And please could you kindly clarify the reasoning of having multiple drcs?
k
the minimal is 5 nm
you have some offgrids
s
Yes I'm using 5 nm grid
k
I will be bcak here in 2 h
s
Another thing, the bulk connection of the rf_cmim and npn13g2 hbt, where will be the connection to the devices? For rf_cmim, is it the tie portion in klayout? Same question for the hbt.
v
@Sultan Ikram In your gds layout I noticed that Metal4.nofill and Metal5.nofill are missing in the inductors. Is that on purpose?
s
No that shouldn't be ideal case. I don't want any metals there so this is a discrepancy. thanks for pointing it out. I'll check on that
k
@Sultan Ikram as for the
tie
substrate connections in
rfcmim
device it is the outer ring of pSD+ Active covered by array of contacts and respective Metal1. As for HBT it is similar however we are lacking contacts and metal in this case.
s
Okay, @Krzysztof Herman thanks. Just one more thing, does the IHP process eleminate the need of dummies of pcells or is it recommended? About the guard rings, since the rppd res have a bulk connection labeled as sub!, do I need to add a p type guard ring ilke the one in ptap-fix branch? ( The layers of guard ring are Active, pSD, cont, metal1)
k
could you please elaborate more on that "does the IHP process eleminate the need of dummies of pcells or is it recommended?"?
We will soon update our resistors models with Verilog-A R3cmc model (where a capacitive coupling to the substrate is modeled). Right now you do not have to add any sub! nets or ptap1 devices.
And the guard_ring is WiP
s
Yes sure, as far as my knowledge goes, some pdks don't require dummy cells for mitigation of pvt or uniform ion implantation. This was the query
k
I am not expert in layout techniques but afaik. the dummy elements always ensure uniform working conditions for regular devices. So if your circuit elements are sensitive to the process variation it is recommended to use it.
s
@Krzysztof Herman Can I update the width and lengths of the filler cells of activ/gat poly, metal and top metal arbitrarily? I'm finding it very difficult to cleaning this error. Any suggestions on the sealring size and filler cell parameters?
I haven't drawn a pr boundary. Could this be the reason??
k
You can size the filler cells as you wish following the drc rules.
The minimal sealring size is 400x400 as far as I can remember but it can produce issues during packaging I mean long bonding wires
As for Pr boundary, why do you need this?
s
I don't need the pr boundary. The density report ruby script said there is no pr boundary drawn and total area calculated is the area inside the pr boundary. So again, is the minimum width of metal fillers arbitrary?  Or is there a limit
k
Having sealring you should be able to calculate the total area
you could also try to replace prBoundary = input("39/4") with prBoundary = Eadge.Seal.holes
s
prBoundary=EdgeSeal.holes produces error