It looks like you're new here. If you want to get involved, click one of these buttons!
Reading the DRC Runsets documentation, I see the examples all use the "raw" layer specification (layer/datatype):
layer = input(1, 0)
layer2 = layer
layer = layer.sized(0.0)
layer.output(100, 0)
layer2.output(101, 0)
Now I have just gone and made a nice fat layertable (.lyp) that has all (188) layers named uniquely per (used) layer/datatype pair. This includes Tanner meta-layers which I am trying to stick with, in translating the Tanner DRC deck. I would like to use the same "human readable" names for layers, if this is supported. But the syntax for so-doing, I do not find (unless this here, shows it?):
layer.width(0.2).output("width violations")
w = width(layer, 0.2)
output(w, "width violations")
Question1: is output(100,0) the same as output("width violations") if the layer named "width violations" exists and is defined as 100/0@1?
Question 1b: is "width violations" a layer, or something else (like a report-section label)?
Question2: Has anybody here got interesting examples of runsets that work, and exercise "most of what DRC usually does"? Getting from textbook to runs-clean code, like?
Comments
Hi Jim,
the variable names will be human-readable form, but "input" cannot take information from the .lyp. These are different domains (views vs. database).
There may be a dirty trick to achieve this (basically, DRC has access to the layer views), but this will render the DRC useless for standalone execution.
Question 1 is tricky - in general, layer matching happens first on numbers, then on name. If numbers are present, the names are ignored. So if the layout is GDS and every layer has a number, output("xyz") shouldn't match any original layer and should produce a new layer (not tested yet).
output("xyz") is a report database layer if your output is sent to a report (use "report" statement in DRC script). Otherwise it's a database layer in the active layout.
For an example, maybe you'd like to see this: https://github.com/klayoutmatthias/si4all. Real-world examples are unknown to me as all foundries keep their design manuals confidential and provide details only when signing a NDA. One cannot publish these DRC decks therefore.
If you know a foundry with a different policy, let me know.
Matthias