• 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. PVS Rule writing

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 15243
  • 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

PVS Rule writing

Pranay99
Pranay99 over 6 years ago

Hi,

How to check the length and perimeter of all the nodes by writing  PVS rule.

Thank you 

Pranay

  • Cancel
Parents
  • Pranay99
    Pranay99 over 6 years ago

    Hi All,

     How to write PVS rules to  check the  perimeter of all the nets individually? I don't want to check perimeter of a particular layer.

    For example for routing connection M1, Via1, M2, Via2, M3, Via3 M4 are used. Now I want to highlight all the connection which have perimeter more than 5micron. Perimeter value includes  M1, Via1, M2, Via2, M3, Via3, M4  as single layer depending upon connectivity of the connection. 

    Thank you in advance.

    Regards

    Pranay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 6 years ago in reply to Pranay99

    Hi Pranay

    Sorry to keep you waiting. Here are my comments:

    a. I have checked internally and confirmed that measurement of total net length cannot be easily done. This is because of the available cmds and also because of the definition of net length itself. E.g. a net may have multiple branches. How do we define the length for such a case? If the longest branch is to be used, how to filter the shapes for the other branches?

    b. For perimeter, perhaps you can try the following:

    rule checkPerim {
       antenna m1 m2 m3 -gt 0 -expr "perimeter(m1)+perimeter(m2)+perimeter(m3)" -rdb "perim.rdb"
    }

    At the end of the DRC run, egrep for "VALUE" in perim.rdb file:

    terminal> egrep "VALUE" perim.rdb

    === perim.rdb ===
    test_net 2000
    checkPerim:antLay_1
    1 1 3 Mar 17 11:25:48 2019
    ANTENNA -gt 0.000000 m1 m2 m3 -rdb perim.rdb checkPerim:antLay
    CELL=test_net FPC=1 NET=1 NETNAME=myNet2 VALUE=7.960000
    m1 AREA= PERIMETER=1.580000 COUNT= DBCOUNT=1
    ...

    There will be some inaccuracies because the ends of each shape might be double counted. You can try to do some more layer processing to see if this can be resolved.


    Best regards
    Quek

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Quek
    Quek over 6 years ago in reply to Pranay99

    Hi Pranay

    Sorry to keep you waiting. Here are my comments:

    a. I have checked internally and confirmed that measurement of total net length cannot be easily done. This is because of the available cmds and also because of the definition of net length itself. E.g. a net may have multiple branches. How do we define the length for such a case? If the longest branch is to be used, how to filter the shapes for the other branches?

    b. For perimeter, perhaps you can try the following:

    rule checkPerim {
       antenna m1 m2 m3 -gt 0 -expr "perimeter(m1)+perimeter(m2)+perimeter(m3)" -rdb "perim.rdb"
    }

    At the end of the DRC run, egrep for "VALUE" in perim.rdb file:

    terminal> egrep "VALUE" perim.rdb

    === perim.rdb ===
    test_net 2000
    checkPerim:antLay_1
    1 1 3 Mar 17 11:25:48 2019
    ANTENNA -gt 0.000000 m1 m2 m3 -rdb perim.rdb checkPerim:antLay
    CELL=test_net FPC=1 NET=1 NETNAME=myNet2 VALUE=7.960000
    m1 AREA= PERIMETER=1.580000 COUNT= DBCOUNT=1
    ...

    There will be some inaccuracies because the ends of each shape might be double counted. You can try to do some more layer processing to see if this can be resolved.


    Best regards
    Quek

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • Pranay99
    Pranay99 over 6 years ago in reply to Quek

    Hi Quek,

    Thank you very much, for the help.

    Is working properly as you suggested. 

    Best regards

    Pranay

    • 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