3 Replies Latest reply on Mar 5, 2009 1:27 PM by Steve_McKinney

    A tale of a differential pair

    milostnik

      Hello to all,

      I was working on a design with some diff pairs and since I had to log a SR for an unrelated topic, I finished writing up this tale.

      See if you can enjoy the reading and learn from it, and if you want to joining me (see the mystery section after the end of the tale)

       

       

      Thanks

       

       

      Let's say that I want to design a differential pair.

      Armed with the latest HyperLynx release I boldly envision a differential pair of 100 ohms.

      I start with the stackup editor, put in a reasonably good stackup and aim at the external layer.

       

      So I start with a "solve for both"

      solve for both.gif
      to have a clue on what to expect:
      graph both.gif

      My manufacturer can not do smaller than 120um and an outer layer and the line start to bend at about 150um trace width, so I choose 140um trace width.

      So let go back to solve for separation, and put in the numbers.

      external_start.gif

      Since it is impractical to design a board with 126.856 um of  insulation we have to round it to say 125 um (about 5mils)
      So the first question is? How does this affect my impedance?
      If I would have solve for impedance, I would just put width of 140  and gap of 125 and I would get the result.
      Now I have to guess the impedance (keep pouncing numbers into the  field ) until I get the results:
      I start with 99 impedance

      imp1.gif

      oh it is too low, so let increase it a little bit,

      imp2.gif

      whaw I just put in too much
      asdfasdfasdf.gif
      so we are  near

      imp4.gif


      say that's good.
      We have officially a impedance of 99.6 ohms or 0.4% error on the  desired 100 ohms.
      Now I would like to see what happens if my PCB fabricator has  etched 10% more out of my traces. The new trace will be 140um  *0.9=126um
      but the tools say that I how now to have a gap of 111.479.

      etch1.gif

      Since  the board is already produced, and the trace center didn't move, I have a  mismatch.
      But wait, on the PCB the gap has increased from 125um to 125um +  (140um-126um)=139um
      so I have to start guessing again. Depending on how good I am in  aiming to the right direction I will have to spend a fair long time to guess the  right values.
      After trying I finally get:

      etch2.gif



      where a solve for impedance would have done this in  seconds.
      Now I know that a 10% etching of my pair will give me a 106.2 ohm pair with a 6.2% error on my calculated 100 ohms.

      The tale ends here.

      This are calculation that I regularly do. Now for the real fun:add the  variation in plating thickness, change of copper foil thickness and different  over or under etching and such a calculation will take a very long time, due to  the step where you have to guess the impedance to match the gap.

      how to solve the tale:

      A "solve for impedance" would be  not only helpful, but is imperative in this kind of calculations.

      The mystery of the above tale?
      HL in its earlier versions had a "solve for impedance", but it was removed in the later releases.

      Hope you enjoyed it
        Matija
        • 1. Re: A tale of a differential pair
          yu.yanfeng

          Hi Matija,

           

          To make it's easy of use, Hyperlynx have considering the fab. tolences of the etch during solving the impedence, so user don't have to consider etch's fab tol, etc again. I think this is why the up-to-date Hyperlynx removed the option of solving impedence.

           

          Yanfeng

          • 2. Re: A tale of a differential pair
            weston_beal

            Matija,

             

            I agree that your approach of guessing the impedance and width to achieve a specific gap is cumbersome. I wouldn't do it that way. You can easily solve for impedance of a single line in the stackup editor in the Basic tab. Just change the Test Width field and the impedance is calculated and shown in the Z0 field. Calculating differential impedance is a bit more complicated and the stackup editor is not designed as a differential impedance calculator.

             

            On the other hand, we know that HyperLynx can easily calculate (solve EM fields) impedance for differential traces, so there must be an easier method to access and control the field solver. There is an easier method in the coupled traces dialog. Here's how I would solve your problem:

            - Open LineSim and create a topology with just 2 trace segments in a coupling region. No need for buffers or anything else.

            - Double-click one of the segments in the coupling region to open the Edit Transmission Line dialog and select the Edit Coupling Regions tab.

            diffZ.GIF

             

            The green boxes show where I input the trace width and gap. Then the differential impedance is automatically calculated and displayed in the area highlighted with the red box. This dialog makes it very easy to change trace width, even asymmetrically, and the gap to find the effect on the differential impedance.

             

            So the stackup editor is great to find a starting point to give to the PCB manufacturer or layout designer. Then when the PCB manufacturer tells you how they are going to change your trace specification, you can easily plug in the number into the Edit Coupling Regions dialog to find the differential impedance that you can expect from the manufactured board.

            • 3. Re: A tale of a differential pair
              Steve_McKinney

              Something else I will add to this.  The ability to solve for impedance is not gone with differential pairs.  You can use the method that Weston recommends, you can go through the iterative process you've went through, or you can do as you originally started, and select Plan for Differential Pair with a Strategy of Solve for both on the Zo Planning tab in the stackup editor.  Specify what you want your target impedance to be for the given layer in your stackup, and then click View button for that layer under the Zo Curve column.

               

              stackup_editor.jpg

               

              Once you bring up the graph of the impedance curve, this is telling you the seperation and width combinations that will provide you with your target impedance on this layer (in this case the line represents 100 ohms differential impedance).  Trace seperation is in the x-direction and trace width in the y-direction.  If you right mouse click on the graph, you can select "track cursor" and that will let you move anywhere along that impedance curve to determine the correct width and seperation you want to use to hit 100 ohms.

              impedance curve.jpg