Not signed in (Sign In)

Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.

    • CommentAuthordevengr
    • CommentTimeFeb 20th 2017 edited

    Hi, Matthias, Thanks for making your excellent program freely available. The new utility Edit->Selection->Round Corners is amazing! With it, I can take a layer which is rounded with one set of values (inner radius, outer radius) and change it to another set of values (inner radius, outer radius) and this works perfectly. However, the DRC method layer#rounded_corners seems to behave differently. Here's a link to a sample layout: <> and here is Ruby DRC script code illustrating the problem:

    report("sample DRC")
    # these are features on the sample layout
    ly1 = input(1,0) # this layer has no rounding
    ly2 = input(2,0) # this layer is rounded with 2 um inner and 10 um outer radii
    # these are new layers created by this DRC script
    ly3 = ly2.rounded_corners(0.0, 0.0, 128) # ly3 is un-rounded
    ly4 = ly1.rounded_corners(1.0, 5.0, 128) # ly4 has different rounding than ly2
    ly5 = ly2.rounded_corners(1.0, 5.0, 128) # ly5 tries to create different rounding from ly2
    ly6 = ly4.xor(ly2)
    ly6.output("rounded corner", "rounded corner problem") # note:  rounding a square layer did work
    ly7 = ly3.xor(ly1)
    ly7.output("square corner", "square corner problem") # note:  squaring corners didn't work
    ly8 = ly5.xor(ly2)
    ly8.output("rerounded corner", "rerounded corner problem")

    Note that if the feature on GDS layer 2 is selected and then rounded using Edit->Selection->Round Corners with new values (inner = 1.0, outer = 5.0), it is updated correctly. But, ly5 (created above) does not work correctly--it seems to have the same rounding as the source layer ly2. (ly3, which is unrounded by setting the inner and outer radii to 0, does not appear to work correctly either.) Note that ly4, which is created from the unrounded ly1, does work correctly.

    Is this the expected behavior?

    • CommentAuthorMatthias
    • CommentTimeFeb 20th 2017 edited


    thanks, but could you reformat the post? It's hard to read. The forum supports Markdown markup, so you can embed code putting four blanks in front of each line.

    In general, the DRC "round_corners" and the edit function are not the same. The edit function allows updating the radius while the DRC function will apply "more rounding". In effect, to emulate the editor feature, one would need a "undo rounded corners" before applying a new rounding.


    • CommentAuthordevengr
    • CommentTimeFeb 23rd 2017

    Thanks--that makes sense. Any pointers on what it would take to add the functionality of "unround" which is available in the edit function as a DRC function? Naively, I would think it's just a matter of looping through the shapes on a DRC layer and feeding them to the existing edit function, but maybe there are other complications.

    • CommentAuthorMatthias
    • CommentTimeFeb 26th 2017 edited


    This is the pointer: