It looks like you're new here. If you want to get involved, click one of these buttons!
Hi sir,
I want to check min. width in DRC that code as below , But I can't do that function ...
as that file , check rule by 5um first , if that is no any output , check rule by 6um / 7um....
could you please help to check that how to make that?
Thanks.
;DRC command
Rule=5
CapRD = input(210,0)
CapRD.width(Rule.micron).output(254,1)
CapRDWidth = input(254,1)
CapRDWidth.is_empty? do
Rule=Rule+1
CapRD.width(Rule.micron).output(254,1)
CapRDWidth = input(254,1)
end
Comments
First,
CapRDWidth = input(254,1)
is supposed to take the current status from "254/1"? So why not just taking the result of the "width" operation?"is_empty?" can have a "do". So you mean "while"?
So I think the script is supposed to be this:
Matthias
Hi Matthias ,
Thanks very much !!
I can run the DRC as below , this can working.
(but I have to output the rule result as a polygon layer first. or ".is_empty" can't working")
Check the min. spacing as looping
Rule=5
Step=1
CapRD = input(42,10)
CapRD.space(Rule.micron).output(254,Rule)
CapRDSpace=input(254,Rule)
while CapRDSpace.is_empty? do
Rule=Rule+Step
CapRD.space(Rule.micron).output(254,Rule)
CapRDSpace=input(254,Rule)
end
CapRDSpace.output(254, Rule)
Hi sir,
Is it possible to check what the min. spacing in some one layer?
I mean export the min. value in the DRC wizard.
such as ...
the space rule is 10um , but my layout have spacing 9.8 ..9.7....9.8...9.8...9.7...9.6...9.5....9.4....
#
report("DRC _width script")
Rule=10
LayerName = PI1
CapRD = input(42, 10)
CapRD.width(Rule.micron).output(LayerName, "CapRD width violations")
#
in the DRC wizard , I can get all the location to shown where the layout out of rule.(so many location...)
but I can't get what the spacing value in that.
could you please let me know how /what solution for this request?
Thanks very much for your help.
No, the actual values are not accessible directly. That's how simple DRC usually works. Just error flags.
Regarding the previous question: you're right, "is_empty?" can be used on EdgePairs currently. But you can use "CapRDSpace.size == 0" instead. No need to read the output layer.
Matthias
Hi Matthias,
Got it , I will try that way , Thanks very much for your help.
when I change the code as this , it is workable.
Thanks.
Loop programming for check min. width.
layer Maping
CapRD = input(154,1)
Rule Mapping
ValueD=10
ValueE=10
Step=0.1
Loop programming for check min. spacing.
Rule=ValueE
CapRD.space(Rule.micron).output(354,Rule)
CapRDSpace=input(354,Rule)
while CapRDSpace.is_empty? do
Rule=Rule+Step
RuleLayer=(Rule*10).to_i
LayerName="CapRD_Space_ #{RuleLayer}"
CapRD.space(Rule.micron).output(354,RuleLayer,LayerName)
CapRDSpace=input(354,RuleLayer)
end
CapRDSpace.output(254, Rule)