• 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. PCB Design
  3. PCB Editor Tool for Matched Lengths in DDR Fly-By Topology...

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 165
  • Views 19181
  • Members are here 0
More Content
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

PCB Editor Tool for Matched Lengths in DDR Fly-By Topology?

Gipper
Gipper over 5 years ago

I'm currently working on a project involving routing of DDR4 memory in a fly-by topology. For a fly-by topology, routing needs to be length matched from the controller to the first device in the series, length matched again from the first device to the second, and length matched to the remaining devices in the order they are configured. See the attachment below for a visual.

I'm using the etched length constraint CSet to match the lengths from the controller to the first device. The direct routed current length is 1932 mils with a min/max of 2485/2505 to the first device, so it is much less than the targeted length window. If I tried to delay tune this net to achieve the desired length, the length meter is showing that I am way over my target when it should be under. See the meter below.

If I examine the net using show element, I see that the total etch length (totE) is including the unrouted ratsnests for the DDR4 memory devices that are yet to be routed. See the "Show Element" window below.

And here is my constraint class with the CSet using D1_MACT_B as an example.

So, the actual "Total Etch Length" is 1932 mils, but the total etch length shown when routing is 4143 mils because it is including ratsnest in total etch. 

I've submitted a support ticket to EMA-EDA on 8/14, but they have made no progress on a solution.

Now, I can't imaging that I am the first person to implement DDR in a fly-by topology. What tools are available to help length match in this routing method? Am I using the wrong tool? Is there a setting to not include ratsnest in the total etch length?

My tool set is OrCAD PCB Designer Professional 17.4-2019 S009.

  • Cancel
Parents
  • steve
    steve over 5 years ago

    You are better using Pin Pairs and match groups to create groups from 1-2, 2-3, 3-4 etc. Total etch length is based on the complete net length and not individual pin pairs. Check out https://www.youtube.com/watch?v=SHhfwT57um0&t=3s and https://www.youtube.com/watch?v=x5XY0zQ0fZM&t=5s and see if this helps.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Gipper
    Gipper over 5 years ago in reply to steve

    One question, Steve. 

    I went through the process of making all the match groups between the devices for a relative propagation delay. In my first match group, I have existing traces that range between 1800 and 2400 mils. The auto-selected "TARGET" picked out a trace that is 1858 mils in length. Why didn't it pick the longest trace, and is there a way to manually pick the target trace?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Gipper
    Gipper over 5 years ago in reply to steve

    One question, Steve. 

    I went through the process of making all the match groups between the devices for a relative propagation delay. In my first match group, I have existing traces that range between 1800 and 2400 mils. The auto-selected "TARGET" picked out a trace that is 1858 mils in length. Why didn't it pick the longest trace, and is there a way to manually pick the target trace?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • steve
    steve over 5 years ago in reply to Gipper

    By default it usually picks the longest manhattan length as the target so if you want to use something else you can right click on the delta/tolerance column value of the object in question and choose Set as Target. 

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Gipper
    Gipper over 5 years ago in reply to steve

    That worked. Thanks, again.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Gipper
    Gipper over 5 years ago in reply to steve

    I have another question - last one, I hope!

    Pin pairs do not seem to work with differential pairs. In my case, I have (30) single ended plus (2) differential pairs that I want to route in fly-by. I got the single ended to work fine with defining pin pairs than creating a matched group. Those options don't exist for differential pairs. When I tried to add the individual traces of the differential pairs using the existing method, it just gave me a yellow bar in the constraint manager where the actual delay normally is. When I tried routing the differential pair, the head up display did not show length.

    Is there a way to include differential pairs in the matched group?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • steve
    steve over 5 years ago in reply to Gipper

    . You can't add a diff pair object type to a matched group but you can add both the nets to the same matched group. If you are seeing a yellow bar in CM then this usually means that the next is not 100% routed. Make sure there are no unplaced components or small ratsnest that are part of the net. Another thing to consider is that if it is a diff pair and you have that constrained using static or dynamic phase (to match the two halves together) then you only need to put one half in the matched group. Just a thought.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Gipper
    Gipper over 5 years ago in reply to steve

    I really combed through those nets showing a yellow block, but they weren't going away even after reconnecting to the terminals. I ended up saving, then running a database check. That fixed it. 

    Thanks again for the help. I learned some new tricks!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Cadence Guidelines

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