How can I see the violated values ​​in the info tab?

How can I see the violated values ​​in the info tab? And is there a way to filter the violated values ​​by min and max in the Markers tab??

Comments

  • edited May 16

    Hi, friends from Korea. Seems that you are also working with DRC problem. As I know, you can manully set the value you want like:

    l1 = (1, 0)
    l1.width(0.2.um).output('The minimum value should be 0.2 um', 'The minimum width is 0.2 um')
    

    In output(str1, str2), the first string parameter str1 gives the tips in Markers tab, while the second string parameter str2 gives the tips in Info tab.

    Here, I give an example, after running the code above, we will get:

    See, In Markers, you can see the violated values(information you offered), but the same info will also be shown in Info tab. Thus, reading information from Info tab is enough.

  • edited May 16

    If you have any question, you can leave me message.

  • edited May 21

    Hello, first of all, thank you for your answer.
    However, I would like to expose the measured value, not the rule value itself, manually in the Marker TAB.

    For example, if the rule is set to catch widths less than 2um, if there is a polygon with a width of 1.57um, I would like to display 1.57um in the Marker TAB.

  • Hi @안준용,

    the intention of a DRC check is to indicate the positions where the desired width or space is violated. The goal is to have zero violations - i.e. you have to fix them, regardless how much the space or width is violated. Correspondingly, the actual value is irrelevant.

    In other words, there is no such feature. The actual distance cannot be displayed by standard features.

    One solution for you problem is binning - so you check for 2µm, 1.8µm, 1.6µm etc.

    Or you turn the markers ("EdgePair" objects) into texts with the value displayed:

    # An example using a space measurement
    report("Space with values")
    
    l1 = input(1, 0)
    
    space = l1.space(2.um)
    space_values = labels
    
    space.each do |ep|
      space_values.insert(RBA::DText::new("Distance is #{'%.6g' % ep.distance}", ep.bbox.center - RBA::DPoint::new))
    end
    
    space.output("Space violation markers")
    space_values.output("Space violations")
    

    Which gives you two categories: the original markers and labels with the measured values:

    Matthias

  • edited May 23

    I'll interject that some foundries have a "waiver process"
    (Brand X has a PVS "waiver tool", it's lame). But you can
    in some cases negotiate a "relaxation" if it's not a
    "production mask" and semi-automate scrutiny.

    In that case you'd have edit the deck or parse the error
    list to error-instances' values vs negotiated exceptions.

    If your CAD support is under somebody else's control
    they might resist modding a deck for a one-off and
    then it's worse, manual inspection per site.

    I favor full disclosure and seems to me there might
    be a way to extend that report-text with the actual,
    inlined to it? Like $actualWhatever.

  • Hi @dick_freebird,

    thanks for this comment. The way I usually see this implemented is in two checks - let's say a category "warning" for a space of x and a category "must be fixed" for a space of y with y being smaller than x.

    Is that an option?

    Basically - as it's shown in the script above - one can access every single error shape and do whatever you need to do with the distance or other attributes. It may just not be very efficient what we talk about millions of errors.

    Matthias

  • HI Matthias
    I tried writing it using the code you gave me as an example, but how can I solve the following error?
    There are many things I don't knowㅠㅠ

  • Hi @안준용,

    which is the KLayout version you are using?

    There was a bugfix in 0.30.1 which should fix this problem. The current version is 0.30.2 and I have confirmed that this one does not give the issue you describe.

    Matthias

  • The version was 0.30.0. I confirmed that it was applied after updating to 0.30.2.

Sign In or Register to comment.