• 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. Phase Tolerance: Proper pin pair setup

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 166
  • Views 19620
  • 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

Phase Tolerance: Proper pin pair setup

Eric IntAZ
Eric IntAZ over 16 years ago

I am attempting to use phase tolerance to control some relative length rules within a differential pair. The topology is essentially 3 components which I will call A, B and C. The signal goes from a pin on comp A to one on comp B and continues on from B to a pin on comp C.

I would like to set phase tolerance to say 5mils and see the property on pin pairs from A-B and A-C though I could live with B-C being created as well.

The issue that I am having with this is that Allegro configures the pin pairs associated with a given net/diff pair based upon the PINUSE property (and apparently the part CLASS, though I haven't seen this affect anything in my situation.) The pins in question are functionally bi-directional, yet I don't get the pin pairs I would expect if I set the PINUSE property of the associated pins on A, B and C to "BI". Perhaps I'm not thinking about this correctly, but in my mind a bi-directional pin is one that can either drive or receive a signal. As such, I would expect to see 3 pin pairs created when all components are set as mentioned (pinuse = "BI"); A.pin:B.pin; A.pin:C.pin; B.pin:C.pin. Instead, Allegro will only create a pin pair based upon the longest length (A.pin:C.pin).

I decided to research this a bit further and found information essentially saying that there has to be an explicit definition of driver and receiver, otherwise the longest path will be chosen. To further complicate matters I tried the following configuration: A = TRI         B = BI         C = BI

This yielded the 3 aforementioned pin pairs I would've expected to see on a BI, BI, BI configuration. What is confusing here is that a pin pair is created between components B and C which again, were both set to BI... yet in the previous configuration (BI, BI, BI) Allegro defaulted to the longest path method of pin pair creation.

I can work around this issue by using the following: A = OUT         B = IN         C = IN. This works fine for my purposes as I will get A.pin:B.pin; A.pin:C.pin as I originally wanted, but it is functionally incorrect in terms of PINUSE which could adversely affect other disciplines interacting with the topology.

 

To summarize, I would like to know if there is a way to set this up in such a way that I can access the desired pin pairs while maintaining accurate PINUSE properties.

 

 

 

 

 

  • Cancel
  • Khurana
    Khurana over 16 years ago

    Phase Tolerance property gets applied to the differential pair (i.e. the diff pair object in CM and gets applied to the "whole" net not pin pairs, I think) so I am not sure what you mean by "would like to set phase tolerance to say 5mils and see the property on pin pairs from A-B and A-C though I could live with B-C being created as well."

    If you want to apply length restrictions on pin pairs then group the pin pairs in a match group - this is done in Relative Propagation Delay tab.  You can create pin pairs in Relative Propagation Delay worksheet then create a match group by selecting those pin pairs.

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Eric IntAZ
    Eric IntAZ over 16 years ago

    Thanks for the response. I will attempt to elaborate.

    You are partially correct in your first statement; phase tolerance IS a property that is applied to the differential pair, but Allegro will break the individual nets of the differential pair into pin pairs according to their PINUSE configuration. Please see the following table:

     

    DP__NET_A<5>This group was created by configuring PINUSE as follows:

    Comp_A = OUT
    Comp_B = BI
    Comp_C = BI
    NET_A_DN<5>
    Comp_B.93:Comp_C.93
    Comp_A.K7:Comp_B.93
    Comp_A.K7:Comp_C.93
    NET_A_DP<5>
    Comp_B.94:Comp_C.94
    Comp_A.L7:Comp_B.94
    Comp_A.L7:Comp_C.94
    DP__NET_B_D<6>This group was created by configuring PINUSE as follows:

    Comp_A = OUT
    Comp_B = IN
    Comp_C = IN
    NET_B_DN<6>
    Comp_A.P5:Comp_B.102
    Comp_A.P5:Comp_C.102
    NET_B_DP<6>
    Comp_A.P6:Comp_B.103
    Comp_A.P6:Comp_C.103
    DP__NET_C_D<7>This group was created by configuring PINUSE as follows:

    Comp_A = BI
    Comp_B = UNSPEC
    Comp_C = UNSPEC
    NET_C_DN<7>
    Comp_A.T8:Comp_C.111
    NET_C_DP<7>
    Comp_A.U8:Comp_C.112

     

    I did find the following information (which seems all too similar to an IQ Test question) as a solution to a similar issue on sourcelink:

    * If there are no RECEIVER pins, then all UNSPECIFIED pins are assumed to be RECEIVERs; otherwise if there are no DRIVER pins, then all UNSPECIFIED pins are assumed to be DRIVERs.
    * If there are DRIVER pins but no RECEIVER pins, then all BI pins are assumed to be RECEIVERS; otherwise all BIs are assumed to be DRIVERS.

    The above seems to indicate that UNSPECIFIED and BI PINUSE types will fill the need of either missing property (driver or receiver.) This gets a bit convoluted when coupled with other pinuse types such as BI, BI, BI gives A:C yet TRI, BI, BI yields A:B, A:C, B:C.

    I suppose you can disregard this post for now as I will ask Cadence directly and then post the answer. Thanks again.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • annoonan
    annoonan over 14 years ago
    Wondering if there are any updates on this. I have an issue with proper diff pair phase tolerance matching when a mid-bus probe is inserted in the path, making the diff pair net 3 pairs of nodes, when normally it is two pairs (point to point). Somehow, the mid bus probe symbol was created with PINUSE as BI, and I think should be UNSPEC, since it's a non-directional component. There is an AC coupling cap which has PINUSE = UNSPEC, and the receiver is 'IN'.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Khurana
    Khurana over 14 years ago

    Not sure where the problem is, if there's one but Allegro PCB allows you to change the PINUSE in Constraint Manager's Component folder when you choose Properties selector bar.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • annoonan
    annoonan over 14 years ago
    Hi Khurana, Allegro mis-reports DRC on phase tolerance. I have one net 6730mils etch length and another 6373mils and Allegro reports them as out of phase by over 9 mils. The half of the net that goes from Driver to mid-bus probe behaves like diff pair (pick up a net and route, both P/N route together). The other half of the net from Mid Bus probe to AC coupling cap does not display any diff pair routing/sliding behaviors.
    • 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