• 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. Digital Implementation
  3. Classification of nets in DEF

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 93
  • Views 14353
  • 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

Classification of nets in DEF

RobB
RobB over 12 years ago

Can anyone help me understand why there are classifications of NETS, PINS, and SPECIALNETS in DEF?

I am looking at the Cadence 13.14 EDI LEF/DEF Language Reference manual - version 5.8, March 2013.

It shows the following for NETS (and something very similar for PINS and SPECIALNETS) :

--------------------------------------------------------------------- 

 NETS numNets ;

   ......
   [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL 
             | TIEOFF}]

---------------------------------------------------------------------

And it has the following description:

---------------------------------------------------------------------
USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF} 
Specifies how the net is used. 
Value: Specify one of the following:
ANALOG Used as an analog signal net.
CLOCK Used as a clock net.
GROUND Used as a ground net.
POWER Used as a power net.
RESET Used as a reset net.
SCAN Used as a scan net.
SIGNAL Used as a digital signal net.
TIEOFF Used as a tie-high or tie-low net.

--------------------------------------------------------------------- 

Having these classifications seems like a good idea (and they seem to be mentioned at least as far back as SOC8.1USR3's LEF/DEF Language Reference version 5.7 from June 2009). However, I don't know of any way to set, modify, or query them from within EDI.

Is this possible? Thanks!

  • Cancel
Parents
  • fitz
    fitz over 12 years ago

     These basic NET attribute classifications are used to differentiate how EDI handles them during each of layout stages , placeDesign , clockDesign,  optDesign and routeDesign.

    The majority of the attributes are handled automatically for you by the standard flow.
    ie. The original create_clock constraint  tags the clk root for you and clockDesign tags the rest of the created tree for you.
    Then optDesign & RouteDesign  know not to disturb the sensitive clock tree placement or routes .

    ANALOG = custom manual route , "setAttribute -net -skip_routing true", to prevent routeDesign from automatically routing the specialNet.
    CLOCK = balanced "H" tree or mesh routing,  clockDesign generally automatically handles multiple clock attributes for you, getAttribute -net <clkNet>
    GROUND = "addRing & addStripe" router .
    POWER "addRing & addStripe" router.
    RESET "bufferTreeSynthesis" to buffer high fanout nets.
    SCAN defIn <top>.scanDef & scanTrace allows placeDesign to ignore and reorder scan chains  .
    SIGNAL <default> standard digital signal net .
    TIEOFF for some technologies  'b1/'b0 cannot attach directly to rails and require additional Pullup or pullDown cells

    The system is fairly straight forward until you step out of the standard flow and do something really funky with vi.
    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • fitz
    fitz over 12 years ago

     These basic NET attribute classifications are used to differentiate how EDI handles them during each of layout stages , placeDesign , clockDesign,  optDesign and routeDesign.

    The majority of the attributes are handled automatically for you by the standard flow.
    ie. The original create_clock constraint  tags the clk root for you and clockDesign tags the rest of the created tree for you.
    Then optDesign & RouteDesign  know not to disturb the sensitive clock tree placement or routes .

    ANALOG = custom manual route , "setAttribute -net -skip_routing true", to prevent routeDesign from automatically routing the specialNet.
    CLOCK = balanced "H" tree or mesh routing,  clockDesign generally automatically handles multiple clock attributes for you, getAttribute -net <clkNet>
    GROUND = "addRing & addStripe" router .
    POWER "addRing & addStripe" router.
    RESET "bufferTreeSynthesis" to buffer high fanout nets.
    SCAN defIn <top>.scanDef & scanTrace allows placeDesign to ignore and reorder scan chains  .
    SIGNAL <default> standard digital signal net .
    TIEOFF for some technologies  'b1/'b0 cannot attach directly to rails and require additional Pullup or pullDown cells

    The system is fairly straight forward until you step out of the standard flow and do something really funky with vi.
    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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