• 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. clock tree synthesis.

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 94
  • Views 26753
  • 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

clock tree synthesis.

gops
gops over 16 years ago
How should i manage CTS efficiently. I need to know what all things should be taken care in the clock tree sppecification file for an optimized clock tree. I usually create the .ctsch file from the tool itself. I just used to give the clock buffer and clock inverter foot prints for the purpose. Will this much information create the clock tree in an efficient way? if not please give me some tips to improve my clock tree. thanks gops.
  • Cancel
Parents
  • Kari
    Kari over 16 years ago

     Hi Alex,

    I'm a bit confused. If you don't want to build a clock tree, why are you running CTS? :-)

    The OptAddBuffer line is to control whether or not buffers/inverters are added during an optimization of the tree AFTER it is built.

    After your CTS run, the other nets you see routed are probably just trialRoutes. You will still need to route them for real with nanoRoute. You don't have to worry about the clock nets though; after being routed with nano during CTS, they are marked fixed. The more typical problem is having violations when routing the rest of the design because nano really needed to slightly move a clock net in order to connect a signal net. To allow nano to be able to move signal nets, you would do the following before calling routeDesign:

    changeUseClockNetStatus -noFixedNetWires

    This will allow nanoRoute to move a clock wire if it has to. We have never seen this affect the clock timing.

    Since it seems you don't want to build a clock tree (but I may not fully understand your intent), I would suggest just routing your clock nets first with nano:

      # ROUTE CLOCKS ONLY FIRST
      selectNet -allDefClock
      setNanoRouteMode -routeSelectedNetOnly true
      globalDetailRoute

      #unfix clock routes so nano can fix violations
      changeUseClockNetStatus -noFixedNetWires

      # ROUTE EVERYTHING ELSE
      setNanoRouteMode -routeSelectedNetOnly false
      globalDetailRoute

    - Kari
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Kari
    Kari over 16 years ago

     Hi Alex,

    I'm a bit confused. If you don't want to build a clock tree, why are you running CTS? :-)

    The OptAddBuffer line is to control whether or not buffers/inverters are added during an optimization of the tree AFTER it is built.

    After your CTS run, the other nets you see routed are probably just trialRoutes. You will still need to route them for real with nanoRoute. You don't have to worry about the clock nets though; after being routed with nano during CTS, they are marked fixed. The more typical problem is having violations when routing the rest of the design because nano really needed to slightly move a clock net in order to connect a signal net. To allow nano to be able to move signal nets, you would do the following before calling routeDesign:

    changeUseClockNetStatus -noFixedNetWires

    This will allow nanoRoute to move a clock wire if it has to. We have never seen this affect the clock timing.

    Since it seems you don't want to build a clock tree (but I may not fully understand your intent), I would suggest just routing your clock nets first with nano:

      # ROUTE CLOCKS ONLY FIRST
      selectNet -allDefClock
      setNanoRouteMode -routeSelectedNetOnly true
      globalDetailRoute

      #unfix clock routes so nano can fix violations
      changeUseClockNetStatus -noFixedNetWires

      # ROUTE EVERYTHING ELSE
      setNanoRouteMode -routeSelectedNetOnly false
      globalDetailRoute

    - Kari
    • 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