The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> Circuit Simulators >> PFD/CP transfer using ADE https://designers-guide.org/forum/YaBB.pl?num=1170964871 Message started by Visjnoe on Feb 8th, 2007, 12:01pm |
Title: PFD/CP transfer using ADE Post by Visjnoe on Feb 8th, 2007, 12:01pm Dear, I'm pretty new to Cadence's ADE and Ocean, therefore I would look some advice on the best 'way to go'. Normally, I would sweep the phase difference (linear) between -2PI and 2PI, run a transient for each phase difference and extract the average output current. Is this something that can be set up easily under ADE or would OCEAN be preferred? Kind Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Andrew Beckett on Feb 8th, 2007, 6:59pm Peter, You could do this with either. You can use the Parametric Analysis Tool (Tools->Parametric Analysis) to set up the sweep, and then use a calculator expression to plot the average current - this will then plot the average current versus the swept parameter. There's no particular need to do this with OCEAN - it should be easy enough with ADE. Regards, Andrew. |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 11th, 2007, 9:30am Dear Andrew, I was able to set up the parametric analysis using ADE. However, it seems I cannot have this run over corners using the Corner Analysis Tool. Could it be that this can only be set up using OCEAN scripting (using a parametric analysis statement in combination with a corner run functional call?) Kind Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 12th, 2007, 12:36am Andrew, I noticed strange behavior when performing a parametric sweep analysis of the PFD: when I plot the average output voltage, strange 'outliers' appear (see picture in attachment), where on would expect a straight line through the origin These look very unrealistic and indeed, when I simulate the individual cases, an average output voltage appears which is OK and should lie on a straight line (as expected). So, in short, the circuit appears to work fine, it's just the parametric analysis which shows strange outliers. I know this can have something to do with initial conditions being re-used during simulation, but perhaps you are more familiar with this kind of simulation error within Cadence's ADE... Kind Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 12th, 2007, 1:13am Dear all, in the meanwhile I have been able to let the anomalies 'disappear' (obtain a nice straight line through the origin) by either applying restart=no (transient analysis options) or skipdc sigrampup However, from the manual, I do not understand WHY this helps... Kind Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Andrew Beckett on Feb 22nd, 2007, 12:02pm Peter, Sorry about the delay in responding - I've been travelling a lot the last couple of weeks. Perhaps your circuit has more than one stable operating point? Since the starting point for the operating point will be the previous solution, perhaps this is tending to lead to the results you're seeing? I suspect you might be able to work around it by using the option "rebuild_matrix=yes" - but I'd be worried that there was a real circuit problem. Also, what happens if you do: Code:
before you start ADE? Regards, Andrew. |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 22nd, 2007, 12:05pm Dear Andrew, I will try your suggestion out and let you know. I personally am pretty sure it's no circuit problem, since the circuit is a 3-state PFD: all-digital, simulated under typical conditions. This should result in a straight line (except maybe for some deadzone). It's clear to me these 'dips' are simulator anomalies. Now, restart = no helped me out, I'll see what your suggestion does... Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Andrew Beckett on Feb 22nd, 2007, 12:09pm Peter, I'm very interested in hearing what you find. Have you looked at the detailed waveforms of the failing runs to see what the circuit is doing? It seems very odd that such a big difference would be a simulator anomaly. I can imagine small differences due to different convergence starting conditions, but such major differences sound as if they are either due to your circuit or the simulation setup/testbench somehow? Regards, Andrew. |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 22nd, 2007, 11:38pm Dear Andrew, I understand your scepticism towards the circuit :), but this time I'm 100% sure it's a simulator anomaly, since I actually simulated the circuit for the X-values which -according to the sweep analysis - would result in the large dips. When I did that, the average output was a value that: a) differs from the one shown by the sweep analysis b) lies nicely on the expected straight line through the origin Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 23rd, 2007, 12:38am Dear Andrew, I'm back with feedback on all the options you suggested (quick recap: restart = no did the trick for me). 1) rebuild matrix = yes: results in a nice, straight line 2) envSetVal("spectre.envOpts" "controlMode" 'string "batch"): results in a nice, straight line -> this string is very familiar to me, since Cadence support suggested this one already when a jitter analysis could not be performed over corners. Typing this string @ CIW resolved this issue and apparently also this one. As a reference, I attached the curve which I think is the right one (please contrast with the curve at the start of this thread) Thanks a lot for the suggestions...if you still doubt the circuit, please let me know. Regards Peter |
Title: Re: PFD/CP transfer using ADE Post by Andrew Beckett on Feb 23rd, 2007, 2:11am Hi Peter, Just because you simulated the circuit at the X points with the dips, and were then seeing good results, does not mean that all is OK with the world :-/ Effectively the two suggestions I made are telling spectre to rebuild the matrix from scratch, or to restart the simulator altogether (in the envSetVal case). This removes the history of what was done previously, and so that doesn't influence the operating point found. What concerns me is that your circuit has more than one operating point. In the case where the simulator starts from scratch, it is finding the "good" operating point. In the case where you're doing a parametric analysis, it's sometimes finding the "bad" operating point. (I use the terms "good" and "bad" in quotation marks, because they are good and bad as far as how you want the circuit to behave; I'm not saying that the simulator is coming up with a false result). When you have multiple operating points, which one you end up in can be dependent on the starting conditions for solving the operating point - just because most of the time you end up in one does not mean that the other one is false. Often when you have this kind of scenario, you can use nodesets to push the circuit into one solution or the other. With spectre, false convergence is something that really doesn't happen. That said, you need to be careful about models - for example, a few years ago one of the large foundries has a veriloga resistor model which suddenly became a negative resistor when high voltages appeared across it - what could happen during convergence iterations was that it could get a high voltage across it during an intermediate step along the way to convergence, the resistor went negative, and then it could get locked into this nonphysical convergence region - despite the fact that in normal operating ranges it would never occur. I've seen the same thing happen with verilog-a models of non-linear resistors (using some quadratic voltage dependency, say); again, the resistor value can have more than one solution. Of course, circuits themselves can have more than one operating point. So this is why I think you really need to look carefully at the waveforms you're getting from the points in the parametric simulation which show the dips - to see what is going on in the circuit. Perhaps you can write the operating point from one of these, and then try simulating that X point with that file as a nodeset, and see what happens? Regards, Andrew. |
Title: Re: PFD/CP transfer using ADE Post by Visjnoe on Feb 23rd, 2007, 5:57am Dear Andrew, I will look once again into the circuit, but I would like to mention again that this is a normal, classic, all-digital, 3-state phase frequency detector (PFD), so I don't think that 'false operating points' can be an issue here. I know from my experience with Mentor Graphics that sweep simulations can generate this kind of strange behavior, because indeed they calculate solution i+1 based on solution i... Everytime, when simulating the individual outliers, the results produced by a single simulation run looked normal. For several circuits (not being all-digital, but e.g. oscillators with capacitor banks) I have seen silicon confirming 'common sense/intuition' and contradicting (false) sweep simulation results. That being said, I appreciate your attitude of 'paranoia' about circuits, it is one of the characteristics of good designers (to my opinion). Scepticism about CAD/EDA tools is however also one of the characteristics ;) Regards Peter |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |