It looks like you're new here. If you want to get involved, click one of these buttons!
Hi!
I have just a little Cadence SKILL hacking experience, and I'm managed to figure out how to hack the lyp files to add new layers. I'm trying to figure out how to write DRC checks just using the reference material on the Klayout website, but what would really help me is seeing examples of a variety of checks: min width, exact width, min space same layer, min space different layers, min inside of, exact inside of etc. This way I can see how the lines of code are structured in a real working deck, as well as see a variety of function names.
Thanks!
Ken Shaw
Skorpios Technologies Inc.
Albuquerque, NM USA
Comments
Hi Ken,
there are few free samples, as technology information often is confidential.
But in this forum there are some samples and discussions which may be helpful:
https://www.klayout.de/forum/discussion/1032
https://www.klayout.de/forum/discussion/1072
https://www.klayout.de/forum/discussion/904
https://www.klayout.de/forum/discussion/1108
https://www.klayout.de/forum/discussion/1046
Maybe someone else has more samples which can be shared?
Matthias
Hi Ken,
Matthias has already provided some examples. The 3 KLayout sites I found extremely informative were the following:
https://www.klayout.de/doc-qt4/manual/drc_basic.html
https://www.klayout.de/doc-qt4/manual/drc_runsets.html
https://www.klayout.de/doc-qt4/about/drc_ref_layer.html
As the size of your GDS grows you may also find the following comments from Matthias extremely useful:
https://www.klayout.de/forum/discussion/comment/5278#Comment_5278
Enjoy!
Vikas
Mathias and Vikas,
Thank you for your responses. I'm learning to use the very helpful website materials.
Ken Shaw
Mathias and Vikas,
I'm practicing writing DRCs using the Macro Development utility. I'm having a problem with the "separation" function.
This is what I wrote:
DIFF.sep(POLY,(1.5.micron).output(103, 0))
When I try to run it, it chokes on ".output(103, 0)". What am I doing wrong???
Ken Shaw
Have you tried:
OK...I just tried changing "micron" to "um", but I get the same "Script Error" message saying "undefined method 'output' for 1.5:Float in MacroInterpreter::execute
What am I doing wrong?
Ken Shaw
Skorpios Technologies
Vikasg,
I looked at it again and realized that I had too many )s. It works now thanks to you!
Ken Shaw
Is there a DRC function that is the opposite of "overlap"? What function should I use to check the extension of poly beyond the active to make a legal gate?
The Forum keeps changing my username to "Felix". Strange.
Hi Ken,
strange indeed ... but I see you as "KenShawSkorpios" now :-)
Maybe you can try "enclosing". That should do the job. The name is slightly misleading: enclosing does not ensure one layer actually encloses another, but it checks whether anything extending beyond another layer does so with a given minimum extension.
Details are here: https://www.klayout.de/doc-qt4/about/drc_ref_layer.html#h2-324
Regards,
Matthias
Matthias,
Thank you!
Ken