• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. DRC rule deck writing

Stats

  • Locked Locked
  • Replies 17
  • Subscribers 125
  • Views 4977
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DRC rule deck writing

thiruvenkata
thiruvenkata 8 months ago

Hello all, I am a beginner in writing DRC rule deck,

I need to check spacing between single or two different layers, I can use exte keyword to raise error but exte keyword has some restrictions, Now I need to check spacing between the two shapes and raise error, but the problem the spacing should be exact in my case, I can raise error if the value is less than specified constraint but I cannot raise error if the spacing is greater than specified constraint.   

  • Cancel
  • Andrew Beckett
    Andrew Beckett 8 months ago

    Which DRC tool are you writing the rule deck for? Pegasus? PVS? Assura? Diva? Dracula? Something else?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • thiruvenkata
    thiruvenkata 8 months ago in reply to Andrew Beckett

    I am using PVS.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan 8 months ago in reply to thiruvenkata

    Use the "negative1" option of the “exte” and “enc’ commands. This checks for the opposite of whatever constraint operator is used. If "equal to" is used, it will be treated as "not equal to".
     

    exte layer1 layer 2 -eq 11.2 -output negative1;

    enc layer 1 layer2 -eq 11.2 -output negative1;

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • thiruvenkata
    thiruvenkata 8 months ago in reply to RobMan

    Hi RobMan, I tried the above mentioned method, it's highlighting all the edges of the shapes other than the edges which are meeting the constraint, In good case, In my case I have used same layer shapes of two rectangles placed with space of 2, in this case the edges meeting the constraint is not highlighting, but highlighting other edges of the shapes. But this is a good case and should not highlight any edges, I need to highlight the spacing region if possible

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan 8 months ago in reply to thiruvenkata

    Hi Thiruvenkata,

    But that is what you asked for: "I can raise error if the value is less than specified constraint but I cannot raise error if the spacing is greater than specified constraint". i.e. You wish to flag shapes which are less than and greater than. BTW this is going to flag lots of shapes unless you have a specific structure with all uniform spacing.

    So you want to flag spacing which are an exact value?

    exte layer1 layer2 -eq 2.0 -output region;

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • thiruvenkata
    thiruvenkata 8 months ago in reply to RobMan

    What I wanted to convey is, I have two shapes separated by exact distance say 2, I have to write a rule that raise error when the spacing is either greater than 2 or lesser than 2, not equal to 2,  the method what you have written is working but what is the issue is the error highlighting section, even if I run the rule on the good case, its highlighting the other edges of the shapes. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan 8 months ago in reply to thiruvenkata

    Yes, so you have two shapes: The space between the two shape is exactly 2.0. However, every other edge is not exactly 2.0 from another shape. So they WILL flag...

    The top, left and bottom of the left layer1 shape are NOT exactly two from a shape on layer2.

    This is why I raised a query on the validity of the check. Unless every edge of the layer1 shape is exactly 2.0 from a layer2 shape then an error will occur. The only sort of topology that would pass this check is like this...

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • thiruvenkata
    thiruvenkata 8 months ago in reply to RobMan

    Picture 1: Good case

    Picture 2: Bad case

    The above donut case is much useful, thanks for that.

    If I am using same layer with two different shapes separated by a distance 2(Picture 1), I don't want PVS to flag the other edges, In case of bad case (the separated distance is not 2,  Picture 2), its flagging all the edges, its fine I guess.

    Is there anyway to flag the region of spacing between the shapes that is not equal to 2?  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RobMan
    RobMan 8 months ago in reply to thiruvenkata

    OK. But you do understand that in picture 1 the outside edges are indeed not exactly 2 from another shape.

    So let's consider a real design:

      1) How many shapes of the relevant layers are you expecting to have?

      2) Are ALL of those shapes really going to be exactly separated by 2? (in ALL directions!)

      3) The edges are going to be a challenge, but I do have an idea how you might tackle that. However, if the answer to question 2 is "no" then there's probably no way to check this.

    The only possible option would be to find shapes which are at some location on the periphery have a separation of exactly 2. However, Shapes like this will pass...

    Do you consider the above legal? The separation is 2. But also there is a separation on <2 on the same shape. The outside edges fall into the same category as your piucture 1.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • thiruvenkata
    thiruvenkata 8 months ago in reply to RobMan

    Thank you! Now I understood.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information