Jorge Marin
11/09/2022, 7:09 PMHarald Pretl
11/09/2022, 7:45 PM.gds
, I would like to take a look.Jorge Marin
11/09/2022, 7:47 PMJorge Marin
11/09/2022, 7:55 PMHarald Pretl
11/09/2022, 7:55 PMJorge Marin
11/09/2022, 7:56 PMgzip -d file.gz
Jorge Marin
11/09/2022, 7:56 PMHarald Pretl
11/09/2022, 8:01 PMHarald Pretl
11/09/2022, 8:04 PMpmos_waffle_48x48
and nmos_waffle_36x36
are extremely repetitive, yet flat layouts. The tools are build to exploit redundancy, think standard cells.Harald Pretl
11/09/2022, 8:04 PMHarald Pretl
11/09/2022, 8:05 PMHarald Pretl
11/09/2022, 8:08 PMHarald Pretl
11/09/2022, 8:09 PMHarald Pretl
11/09/2022, 8:10 PMJorge Marin
11/09/2022, 8:10 PMJorge Marin
11/09/2022, 8:11 PMHarald Pretl
11/09/2022, 8:12 PMklayout
and magic
have potential issues, and improve it. I suggest to file tickets for both tools after the tapeout.Jorge Marin
11/09/2022, 8:16 PMHarald Pretl
11/09/2022, 8:18 PMHarald Pretl
11/09/2022, 8:18 PMHarald Pretl
11/09/2022, 8:19 PMHarald Pretl
11/09/2022, 8:20 PMTim Edwards
11/09/2022, 8:23 PMHarald Pretl
11/09/2022, 8:26 PMTim Edwards
11/09/2022, 8:27 PMTim Edwards
11/09/2022, 8:27 PMHarald Pretl
11/09/2022, 8:28 PMTim Edwards
11/09/2022, 8:31 PMgds merge true
. The drawback is that the option makes everything into polygons, which is why it takes so long. It would be a lot more efficient if it just wrote polygons for the non-manhattan parts (technically, everything is written as a polygon in GDS, but magic's database is in tiles, so it just dumps tiles to GDS and everything is either a rectangle or a triangle. Long non-manhattan wires are then lots and lots of triangles and rectangles.)Harald Pretl
11/09/2022, 8:31 PMTim Edwards
11/09/2022, 8:32 PMJorge Marin
11/09/2022, 8:34 PMTim Edwards
11/09/2022, 8:35 PMgds write ...
Tim Edwards
11/09/2022, 8:36 PMJorge Marin
11/09/2022, 8:37 PMTim Edwards
11/09/2022, 8:38 PMHarald Pretl
11/09/2022, 8:38 PMJorge Marin
11/09/2022, 8:38 PMJorge Marin
11/09/2022, 8:39 PMHarald Pretl
11/09/2022, 8:39 PMTim Edwards
11/09/2022, 8:41 PMHarald Pretl
11/09/2022, 8:42 PMJorge Marin
11/09/2022, 8:43 PMHarald Pretl
11/09/2022, 8:44 PMJorge Marin
11/09/2022, 8:44 PMHarald Pretl
11/09/2022, 8:46 PMHarald Pretl
11/09/2022, 8:47 PMgds merge true
options took around 10min on my machine (Mac, 4y old), and the GDS is almost same size (621MB instead of 630MB).Jorge Marin
11/09/2022, 8:48 PMTim Edwards
11/09/2022, 8:49 PMHarald Pretl
11/09/2022, 8:50 PMJorge Marin
11/09/2022, 8:54 PMAlfonso Cortés
11/09/2022, 10:19 PMbox 142.8um 3411um 442.8um 3511um
paint {metal1 metal2 metal3 metal4 metal5}
box 143um 3411.2um 442.6um 3510.8um
paint {m2contact m3contact via3 via4 glass}
box 642.8um 3411um 942.8um 3511um
paint {metal1 metal2 metal3 metal4 metal5}
box 643um 3411.2um 942.6um 3510.8um
paint {m2contact m3contact via3 via4 glass}
box 1142.8um 3411um 1442.8um 3511um
paint {metal1 metal2 metal3 metal4 metal5}
box 1143um 3411.2um 1442.6um 3510.8um
paint {m2contact m3contact via3 via4 glass}
box 1642.8um 3411um 1942.8um 3511um
paint {metal1 metal2 metal3 metal4 metal5}
box 1643um 3411.2um 1942.6um 3510.8um
paint {m2contact m3contact via3 via4 glass}
box 2142.8um 3411um 2442.8um 3511um
paint {metal1 metal2 metal3 metal4 metal5}
box 2143um 3411.2um 2442.6um 3510.8um
paint {m2contact m3contact via3 via4 glass}
There are 5 pads, which means each pads weights about 40 MB. Since they are identical, I will make a subcell. But 40 MB still seems too heavy for a pad that is made of only 10 rectangles.Tim Edwards
11/09/2022, 10:43 PMgds contacts true
option. This will output contact cuts as an array instead of individual cut rectangles and is best for a large array of contacts like your pads. I do not use this option much, so please let me know if it has any issues.Harald Pretl
11/10/2022, 8:03 AMmagic
resolves these huge via areas in the pads into individual rectangles, then you should make a small cell containing the vias (ideally containing the whole metal-via-stack), and then array this smaller instance into the pad area. Then the resulting GDS will be much smaller and hopefully runs smoothly.
@Tim Edwards I think you should put this setting by default into magic
that large via areas are built out of smaller arrayed structures.Alfonso Cortés
11/10/2022, 1:11 PMgds contacts true
I get the exact same file size. I only see that the perimeter of the vias changes a little.
How can I check the effect of using this option?Tim Edwards
11/10/2022, 2:08 PMAlfonso Cortés
11/10/2022, 2:44 PMAlfonso Cortés
11/10/2022, 2:47 PMTim Edwards
11/10/2022, 3:00 PMgds contacts true
caused magic to generate subcells for each of the contact types used in the pad, and then it failed to use those contacts and wrote out the same output as without the option. I'll need to fix that, but I'll assume that the solution you made works for now.
I think a better solution in magic would be to enforce the gds contacts true
always, and try to optimize that method for speed.Tim Edwards
11/11/2022, 12:54 AMHarald Pretl
11/11/2022, 6:49 AMJorge Marin
11/11/2022, 11:21 AMTim Edwards
11/11/2022, 1:53 PMJorge Marin
11/11/2022, 2:02 PMJorge Marin
11/11/2022, 2:04 PMTim Edwards
11/11/2022, 2:05 PMJorge Marin
11/11/2022, 2:05 PMTim Edwards
11/11/2022, 2:07 PMJorge Marin
11/11/2022, 2:08 PMTim Edwards
11/11/2022, 5:29 PMAlfonso Cortés
11/12/2022, 10:30 PMm3.enclosing(via3, 0.06, euclidian).output("via3.4", "via3.4 : min. m3 enclosure of via3 : 0.06um")
Could it be that making our pads as arrays of small instances is increasing the computational cost of checking these VIA rules? @Harald PretlHarald Pretl
11/12/2022, 10:35 PMJorge Marin
11/14/2022, 4:40 PMHarald Pretl
11/14/2022, 5:26 PM