1 2 First Previous 20 Replies Latest reply on Nov 29, 2016 9:46 AM by aleksandr.kupchik@oracle.com

    How to deal with the AC capacitor in a serial link?

    bruce_qin

      Hi Guys,

          I'm really confused by the AC capacitor in a serial link, who can detail its function?  In our simulation,how to deal with it?

          I want to use the S parameter model, which can be found from its supplier. But when the upper frequency of the model is only 6G Hz, i can't use it in my 6G Hz simulation again. I also found another option to deal with this problem, its main thought is model the ESL and ESR of a capacitor, not directly use it but divide ESL/ESR value to some small inductor/resistor, as below showing. But how does this model working?

      (ESpice ".subckt Cap2 1 2

      C1 1 0  0.15p

      R1 1 3a  0.001

      L1 3a 4a  0.2n

      R1a 4a 3  0.001

      L1a 3 4b  0.2n

      R1b 4b 3ab  0.001

      L1b 3ab 4ab  0.2n

      R1ab 4ab 3b  0.001

      L1ab 3b 4  0.2n

      * CB 4 5  100n  * uncomment to use 100nF series cap

      R2 4 6a  0.001  * change node 4 to 5 when using cap

      L2 6a 2a  0.1n

      R2a 2a 6  0.001 

      L2a 6 4c  0.1n

      R2c 4c 6ac  0.001

      L2c 6ac 2ac  0.1n

      R2c 2ac 6c  0.001 

      L2c 6c 4b  0.1n

      R2b 4b 6ab  0.001

      L2b 6ab 2ab  0.2n

      R2ab 2ab 6b  0.001 

      L2ab 6b 2  0.2n

      C2 2 0  0.15p

      RS 1 2  100k

      .ends Cap2

      " )

        • 1. Re: How to deal with the AC capacitor in a serial link?
          yu.yanfeng

          Bruce,

           

          It's very simple to use spice model in HL. The model file you posted is for Cadence' s Allegro SI(DML format), but you can copy it's content and save as a .sp file to use in HL.Then, inn  free-from schematic, add a package/connetor instance on your chain and RMB the package/connector instance, click the library path button,add the directory where the .sp file stays. Now everything is ok.

           

          Again, I hope you call Dr. You for better understanding how to do simulation if you live in China

           

          Yanfeng

           

           

           

          demo.JPG

          1 of 1 people found this helpful
          • 2. Re: How to deal with the AC capacitor in a serial link?
            Steve_McKinney

            Hi Bruce,

             

            One of your quesitons was "I'm really confused by the AC capacitor in a serial link, who can detail its function?"

             

            This capacitor serves to remove the DC component that results from an un-even number of 1's and 0's in the bit stream from the AC signal so it switches around 0V.  Here's an article from Howard Johnson that you might find useful in explaining why you need them:

             

            http://www.sigcon.com/Pubs/news/4_15.htm

             

            The tricky part for simulation is that these capacitors have an RC time constant and they don't charge up instantly.  When they're in the actual hardware, they charge up seemingly fast (a few miliseconds). The problem is, in simulation, you typically don't simulate out to a few miliseconds, you're simulating a few nano-seconds, or if you're really patient, maybe microseconds.  So that means that your signal in simulation always looks bad unless you skip thousands of bits of simulation data.  The alternative is to use a SPICE capacitor model and set an initial condition on the nodes of the capacitor so that it is effectively charged right from the beginning. 

             

            -Steve

            • 3. Re: How to deal with the AC capacitor in a serial link?
              yu.yanfeng

              I

               

              Yes. Pepople should set the initial voltage to the cap.

               

              Yanfeng

              • 4. Re: How to deal with the AC capacitor in a serial link?
                bruce_qin

                Hi Yanfeng,

                     Thanks for your reply. Could I get the phone number or email of Dr. You?

                • 5. Re: How to deal with the AC capacitor in a serial link?
                  bruce_qin

                  Hi Steve,

                    Your explanation is very beneficial to me. Thanks.

                    I have try some simulation using a spice model capacitor, but the how to set the initial condition? I have failed with simple values such as IC=0 or 0.5.

                    Beside that, do I need to divide the ESR/ESL valuses as the model I pasted has done? if so, how many parts do I need?

                   

                      Bruce

                  • 6. Re: How to deal with the AC capacitor in a serial link?
                    yu.yanfeng

                    Hi Qin,

                     

                    Dr. You is one of best freinds. He worked as Mentor TME and leaved months ago. Now Dr. You is in SERF, a Hyperlynx distributor in China. Here is the contact info. He normally stays in Beijing.

                     

                    Yanfeng

                     

                     

                    深圳市瑟孚电子有限公司
                    SERF Electronics Co., Ltd

                    广东省深圳市南山区科苑北路清华信息港综合楼809室 邮编:518057
                    电话:0755-26030094
                    传真:0755-26030879
                    E-mail:sales@serf-eda.com

                    北京办事处
                    北京市海淀区知春路甲48号盈都大厦C座2单元6B 邮编:100098
                    电话:010-58731123,010-58732595
                    传真:010-58731120 Mobile:13910828364
                    E-mail:lifu_you@serf-eda.com

                    1 of 1 people found this helpful
                    • 7. Re: How to deal with the AC capacitor in a serial link?
                      Steve_McKinney

                      Generally speaking, you should take an approach to simulation just like any other engineering task.  Most designers don't have the time/bandwidth to be a research scientist.  You're job is to design a product and do it quickly, making engineering trade-offs along the way to optimize for cost, manufacturing, quality, and reliability. 

                       

                      Translated to simulation, it's important to get the first order effects in your simulation to see the quality of your design - things like driver/receiver impedance, switching speeds, trace impedance, etc.  Then you come to second order effects, tolerancing of your stackup and trace geometry for manufacturing, having a more detailed model of components in your system (such as an AC cap).  Then you could go to third order effects, things that will have a minimal impact on the design, such as whether a via stub is going to cause you problem for signals that are running 3 Gbps or less (in this case, if the signal were 10 Gbps, that via might actually become a 1st order effect depending on board thickness and stub length).

                       

                      In other words, if you run the simulation with a simple capacitor model rather than the complex distributed one that you initially posted, and you have plenty of margin on your signal, then you should feel confident that even with a more complex model, you'll still have plenty of margin (i.e. you don't need the complex model).  If you had very little margin on your signal though when you look at the first order effects, it becomes more important to pay attention to the 2nd order and in that case you may want to use a more advanced model for the capacitor.  In general though, for an AC cap, a simple model is sufficient.

                       

                      I use to have a VHDL-AMS model of a fast charging cap somewhere that I will try to dig up and post to this thread. You could use this in your simulation and it should set the initial condition correctly.

                       

                      -Steve

                      • 8. Re: How to deal with the AC capacitor in a serial link?
                        bruce_qin

                        Steve,

                          Really thanks for your excellent reply. I think I have got the right direction on this issue.

                         

                            Bruce

                        • 9. Re: How to deal with the AC capacitor in a serial link?
                          Steve_McKinney

                          Attached is the fast charging VHDL-AMS model that I talked about.  You'll need to run the Compile.bat file in the zip, then open the FFS and run a simulation.  You'll see that the VHDL-AMS cap charges with 1 timestep where as the regular cap takes much more time to charge.

                           

                          -Steve

                          • 10. Re: How to deal with the AC capacitor in a serial link?
                            bruce_qin

                              Hi Steve,

                                I got a error message as attached pic show when running the .bat file, it seems I did nothing more than deleting the 'complielib' folder. PS: I ran it on my Windows XP system.

                             

                                    -Bruce

                            • 11. Re: How to deal with the AC capacitor in a serial link?
                              Steve_McKinney

                              Are you using HyperLynx 8.0?  I can send you an updated version of this that should run without running the compile on the models.

                              • 12. Re: How to deal with the AC capacitor in a serial link?
                                amartin

                                Can you also use a SPICE model with an initial condition in BoardSim?  I am currently evaluating HyperLynx, specifically for a PCI Express crosstalk issue.  I have not found a satisfactory way to deal with the AC capacitors, and I haven't found a way to use a SPICE model for the capacitor.

                                 

                                Thanks,

                                Andy

                                • 13. Re: How to deal with the AC capacitor in a serial link?
                                  Steve_McKinney

                                  The issue I've found with the SPICE model is that it requires more than just an IC statement on the capacitor node.  You also need to add at UIC (Use Initial Conditions) on the .TRAN line of the SPICE simulation.  The IC statement alone only helps a SPICE engine converge on a DC solution, it doesn't have any impact on the transient simulation. However, because of the way HyperLynx works with ADMS, you can't edit the .TRAN line in your HyperLynx simulation.

                                   

                                  This VHDL-AMS model is a good work around for this situation.  It essentially looks like a SPICE model to HyperLynx.  You can open the blackbox in the example schematic and then click Edit model and it will show you this SPICE SUBCKT:

                                   

                                  .SUBCKT  Fast_C_wr  PortP  PortN
                                  *====================================================
                                  .model FastSettling_C(ideal) macro lang=VHDLAMS lib=CompiledLib
                                  YfastC FastSettling_C(ideal)
                                  + generic:  Cval       = 10.0e-12
                                  +           C0         = 1.00e-18
                                  +           SwitchTime = 0.01e-9
                                  + port:     PortP  PortN
                                  *====================================================
                                  .ENDS
                                  *====================================================

                                   

                                  You can change the value of the capacitor here as well as the switching time of the capacitor (i.e. make it charge up faster than 10ps).

                                   

                                  I've included an updated version of this so you should just be able to open the FFS and run it (no need to run any of the .bat files).  If this doesn't work for you, please let me know.  I ran it on my system and it seem to run OK with the native ADMS in HyperLynx v8.0 though - so you shouldn't experience any problems.  Below, you can see the fast charging cap will charge in 1 timestep vs the regular cap.

                                   

                                  fastcap.png

                                  • 14. Re: How to deal with the AC capacitor in a serial link?
                                    weston_beal

                                    We have a good application note on SupportNet dealing with this issue.

                                    http://supportnet.mentor.com/reference/appnotes/index.cfm?id=10828

                                     

                                    My prefered method is to use a small resistor in place of the capacitor. It has the same high-frequency effect, but without the long charging time of the large series capacitor.

                                     

                                    Weston

                                    1 2 First Previous