Hi everyone Magic uses the MOSIS design rules by default (on which we've built our rules). The minimum width and length for contacts (including poly contact) is 4 lambda (2 microns side length). So either I hack Magic in a way that it requires less height/length for the vias of LibreSilicon or we try to use 2 microns side length.
Any inputs?
-lev
Hello David.
On 8/1/19 7:42 AM, David Lanzendörfer wrote:
Hi everyone Magic uses the MOSIS design rules by default (on which we've built our rules). The minimum width and length for contacts (including poly contact) is 4 lambda (2 microns side length). So either I hack Magic in a way that it requires less height/length for the vias of LibreSilicon or we try to use 2 microns side length.
Yes, in Magic the Tool like to gets rectangles which are at least 4 by 4 lambdas (2 by 2 micron)
I think, we are free to export them as 2 by 2 lambdas (1 by 1 micron), 'cause we also like to get the overlapping area.
I ascii art a contact on metal1 would would look like
--------+_______+------- | | met1 | cont | met1 | | |_______| --------+ +------- 2u by 2u
The contact itself would 'break', or 'interrupt' the metal1 stripe. As long as the contact is developed fine, no problem. But
--------+-------+------- : ___ : met1 : | | : met1 : |___| : : : --------+-------+------- 1u by 1u
exporting the contact hole smaller than the metal stripe ensures that the metal1 stripe is still conductive even if the contact itself is broken.
Same, when contacts are longer, as in the following ascii art.
--------+-------+-------+------- : ___ : ___ : met1 : | | : | | : met1 : |___| : |___| : : : : --------+-------+-------+------- 2 times 1u by 1u
This contact would have a size of 8 lambdas (4 micron) length and the 4 lambdas (2 micron) width in Magic. In reality, after exporting them from Magic, there are two holes with 1 by 1 micron each on our masks.
So my suggestion is, we use the 4 by 4 lambda rule for Magic and exporting them (with help of our scripts) by - splitting up longer / wider holes into 4 by 4 lambda areas - leave 1 lambda margin around contact holes - every contact hole has to be 2 by 2 lambdas (1 by 1 micron) to satisfy etching issues
BTW, this design pattern of dozens of smaller contact holes instead of one bigger one is quite common in industry. Now, with our etching issues, I figured out why :-)
Regards, Hagen.
Hi Hagen I just had the enlightenment on how to fix it.
Thanks for your input! It's exactly what I realized myself as well, some moments ago :D
-lev
On Thursday, 1 August 2019 4:24:45 PM HKT Hagen SANKOWSKI wrote:
Hello David.
On 8/1/19 7:42 AM, David Lanzendörfer wrote:
Hi everyone Magic uses the MOSIS design rules by default (on which we've built our rules). The minimum width and length for contacts (including poly contact) is 4 lambda (2 microns side length). So either I hack Magic in a way that it requires less height/length for the vias of LibreSilicon or we try to use 2 microns side length.
Yes, in Magic the Tool like to gets rectangles which are at least 4 by 4 lambdas (2 by 2 micron)
I think, we are free to export them as 2 by 2 lambdas (1 by 1 micron), 'cause we also like to get the overlapping area.
I ascii art a contact on metal1 would would look like
--------+_______+-------
met1 | cont | met1
|_______|
--------+ +------- 2u by 2u
The contact itself would 'break', or 'interrupt' the metal1 stripe. As long as the contact is developed fine, no problem. But
--------+-------+-------
: ___ :
met1 : | | : met1
: |___| :
--------+-------+------- 1u by 1u
exporting the contact hole smaller than the metal stripe ensures that the metal1 stripe is still conductive even if the contact itself is broken.
Same, when contacts are longer, as in the following ascii art.
--------+-------+-------+-------
: ___ : ___ :
met1 : | | : | | : met1
: |___| : |___| :
--------+-------+-------+------- 2 times 1u by 1u
This contact would have a size of 8 lambdas (4 micron) length and the 4 lambdas (2 micron) width in Magic. In reality, after exporting them from Magic, there are two holes with 1 by 1 micron each on our masks.
So my suggestion is, we use the 4 by 4 lambda rule for Magic and exporting them (with help of our scripts) by
- splitting up longer / wider holes into 4 by 4 lambda areas
- leave 1 lambda margin around contact holes
- every contact hole has to be 2 by 2 lambdas (1 by 1 micron) to satisfy
etching issues
BTW, this design pattern of dozens of smaller contact holes instead of one bigger one is quite common in industry. Now, with our etching issues, I figured out why :-)
Regards, Hagen.
Hello David,
Magic uses the MOSIS design rules by default (on which we've built our rules). The minimum width and length for contacts (including poly contact) is 4 lambda (2 microns side length).
Be aware that magic defines a contact layer in the same way that a LEF technology file would describe a "VIARULE". It is an area that defines not only the contact cut, but also all metal overlaps, and potentially any number of contact cuts that will fill the area.
The "cifoutput" section of the techfile usually defines the contact layer using the "squares" statement. The "squares" statement defines the cut size, spacing, and metal overlap.
For any real process, you would want to define the cut size, spacing, and overlap as needed. They do not follow lambda rules, but are in centimicron units corresponding to physical dimensions in the output GDS file.
It is possible to define a contact layer in magic as corresponding to exactly one contact cut, but that is not the intent of the SCMOS ruleset.
Regards, Tim
+--------------------------------+-------------------------------------+ | R. Timothy Edwards (Tim) | email: tim@opencircuitdesign.com | | Open Circuit Design | web: http://opencircuitdesign.com | | 19601 Jerusalem Road | phone: (240) 489-3255 | | Poolesville, MD 20837 | cell: (408) 828-8212 | +--------------------------------+-------------------------------------+
libresilicon-developers@list.libresilicon.com