DRC code to delete a layer or overwrite a layer

edited February 2018 in Ruby Scripting
This is probably a basic question. But when I write DRC scripts to output a layer, generally the results are added to the contents already on the layer (except in cases of using merged). Can you specifically force an overwrite of the layer data already on the output layer?
On a related note, how do you erase the contents of the layer in a DRC script, I don't see any function to do that.
Thanks,
Jakub

Comments

  • edited November -1

    Hi,

    I'm sorry, but I can't confirm this: a normal DRC script like this

    input(1).sized(1.0.um).output(1, 0)
    

    will overwrite layer 1.

    Do you have a sample where this does not happen?

    Matthias

  • edited November -1
    Matthias,
    I figured out part of my problem. I was outputing the same layer several times, the first time it was overwritting the original layer, and subsequent times it was just adding to the previous output. This type of functionality is fine. But it is a bit confusing if you don't get it at first.
    The second part of the question was how to clear a layer. What I am doing now is outputing a layer that is already empty to layers I want cleared, it works. But it would be nice to have an explicit way to empty a layer in DRC, and I don't see that. Is there a way I am missing?
    Thanks for your help,
    Jakub
  • edited November -1

    Hi Jakub,

    I guess this is what you are looking for:

    # writes an empty layer to 1/0
    polygon_layer.output(1, 0)
    

    Regards,

    Matthias

  • edited November -1
    Thanks Matthias,
    That is what I was looking for.
    Jakub
  • Hi Matthias,
    almost same question as this case , the layer 510,1 is a temp layer , can we delete that or clear it?

    PI1.inside(DIESize).output(510,1)
    PI1.not_inside(DIESize).output(510,2)
    PI1IO=input(510,1)
    PI1edge=input(510,2)
    PI1IO.extents.output(510,99)
    PI1_open=input(510,99)

    check rule step

    PI1_open.width(ruleA.micron).output(251,1,"RuleAResult")
    PI1_open.space(ruleI.micron).output(251,9,"RuleIResult")
    PI1IO.enclosing(PSV,ruleB.micron,projection).output(251,2,"RuleBResult")
    polygon_layer.output(510,1)
    polygon_layer.output(510,2)

Sign In or Register to comment.