Why "deep" in DRC script doesn't make function?

edited September 2021 in General

Hi,

I recently find "deep" in DRC script doesn't make function, it still show errors in flat.

The script are as follows:

report(" DRC report.lyrdb")
dummy_check = false
DENSITY = false
deep
tiles(1000)
threads(24)

HMWG = input(1, 0)
SLABWG = input(2, 0)
STRIPWG = input(3, 0)

d=SLABWG.overlapping(STRIPWG)
SLABWGe=d.overlapping(HMWG)

g=STRIPWG.overlapping(HMWG)
STRIPWGe=g.overlapping(SLABWG)

SLABWGe.enclosing(STRIPWGe,2.um).output("SLABWG.E.SITRIPWG.01.OVERLAY", "Optional--Minimum inclusion of SITRIPWG in SLABWG layer in rib waveguide=2 um")

(STRIPWGe-SLABWGe).output("SLABWG.E.SITRIPWG.02.OVERLAY", "Optional--SITRIPWG layer larger than SLAB layer is not allowed in rib waveguide")

if(g.is_empty?)
else

a=HMWG.sized(-0.049.um)
b=a& STRIPWG

c=b-b.rectangles

f=g.select_not_overlapping(c)
f.output("HMWG.E.STRIPWG.OVERLAY", "Optional--The STRIPWG layer cannot exceed HMWG waveguide in the tip,the space should be more than or equal to 0.05 um.")

end

The gds file are shown as follows:

After run, it shows errors like this:

I guess that is why it runs slowly for large layout. Every kind of errors consumes large space, and the number of one kind of error could be up to 2000000. So I can hardly get the final drc results.

Is there a good way to solve this?

Comments

  • @Weiling_Zheng "tiles(1000)" will turn off "deep" (see here: https://www.klayout.de/doc-qt5/manual/drc_runsets.html#h2-1028). Comment out "tiles(1000)" or move "deep" after it.

    But I have a stupid question maybe: who wants to have a DRC which reports 2000000 errors? A DRC is supposed to give 0 errors - at least for a clean layout. If you want to produce such a number of results, consider writing the output to a layout layer. The report DB isn't made for millions of errors.

    And deep mode is no warranty of getting a DRC faster. The hierarchical analysis may take longer than a flat DRC.

    Matthias

  • @Matthias ,

    Thank you very much for your respond.
    Using tiles(1000) could speed up verification,right?

    I see the possibility of increase in verification speed by using the method you said, "writing the output to a layout layer" . I will check the running time further.

    For me, the report of 2000000 may happen when there are a lot of error in one kind of vertification in flat DRC. It can also happen when a lot of mismatch waveguide for a large layout.
    Or, there are a lot of angled shapes in the pattern.

    I may sort out the specific problems of DRC encountered during operation in the future, which are mainly reflected in the operation speed and the accuracy of DRC inspection. I will seek for you help when the time comes.

    Thank you again.
    Weiling

  • Hi Matthias
    in my side , we not only want to check the layout is in-rule of DRC,
    but also our team need to provide what the min. value of some of DRC item.
    Such as that , even our process capability is metal width by 10um.
    Our photo /plat/etch team still need to know what the min. value of width (maybe it is 15um or any value more than DRC rule (10um in this rule case))
    so ,when our designer get a new GDSII file from customer.
    They will check it by min. manufacture rule, ...mmm... OK, it is in-process rule.
    then , we need to enlarge the check value ---15um , 20um or something , till we get the real min. value in this layout.
    Yes , we can make DRC function have a loop , when we get a empty result (check rule 10um), we can enlarge the check value , maybe add it by 5um. (check rule 15um)
    Finally , DRC function find some of out rule location in this layout.
    and designer still need to check the rule result , and find which the min. value in report.
    But as you know , it will take so many times to try and error...
    do you have any good way for that?

  • How about

    1) Make a deck that fails everything, but reports every fail's
    measured number and coords to a log file

    2) clean and sort that log file by the measurement value

    3) inspect the little end.

  • Hi Dick,
    Thanks a lot for your idea , but now , what the key point is...
    I have no idea for how read and sort DRC log file...

  • I opened a new discussion as this one is not really fitting: https://www.klayout.de/forum/discussion/2299

    Please find a solution there.

    Matthias

Sign In or Register to comment.