Trouble with laplace_zp

S

Stefan Joeres

Guest
Hi altogether,

we do have a schematic which implements a transfer function as

H(s)= Zeros / Poles

We wanted to implement this as a verilogA model to gain some simulation
speedup.
Therefore we calculated our Zeros & Poles from the schematic,
added these as

V(out) <+ kgain*laplace_zp(V(in),{z1r,z1i,z2r,z2i},{p1r,p1i,p2r,p2i});

and simulated the model again with the pz analysis.

But now :
The simulated pole zeroes don't match with the values implemented in the
laplace_zp function.

Does anyone have a clue what happens ?

Regards,

Stefan
 
Hi Stefan,

The only thing I can suggest is to double check the coefficients you
have used in laplace_zp again.. sorry not much help.

Prasanna
 
On Thu, 23 Mar 2006 10:01:48 +0100, Stefan Joeres <joeres@ias.rwth-aachen.de>
wrote:

Hi altogether,

we do have a schematic which implements a transfer function as

H(s)= Zeros / Poles

We wanted to implement this as a verilogA model to gain some simulation
speedup.
Therefore we calculated our Zeros & Poles from the schematic,
added these as

V(out) <+ kgain*laplace_zp(V(in),{z1r,z1i,z2r,z2i},{p1r,p1i,p2r,p2i});

and simulated the model again with the pz analysis.

But now :
The simulated pole zeroes don't match with the values implemented in the
laplace_zp function.

Does anyone have a clue what happens ?

Regards,

Stefan

Are you trying to do a pz analysis on the verilog-a model? If so, that will not
work. Essentially, components whose value varies with frequency (such as
these laplace functions, transmission lines, etc) are evaluated at a single
frequency (specified on the pz form), and so it won't work. This normally isn't
an issue (remember that for capacitance and inductance, it's not the capacitance
or inductance that varies with frequency, but the impedance).

Ah, I just read again what you said above, and saw you said you were doing a pz
analysis on the result (I missed that first time around).

I made exactly the same mistake when I was beta-testing pz before it
was originally released.

Andrew.
 
Uh, Andrew, I've seen you promulgate this answer a couple of times.
Unfortunately, if it came from the factory, someone is blowing smoke.
This is a bug.

Consider a 2-port with, e.g. r/l/c components. Run an AC analysis,
then a PZ analysis.

From the poles and zeros given, construct a Verilog-A 2-port with the
same poles and zeros using a laplace_zp function. An AC analysis
should match (if it doesn't, there are more problems -- either the
coefficients are entered incorrectly or the laplace_xx functions are
broken). If the AC analysis matches, then if the PZ analysis were
correct the PZ locations should match - it's just a transfer
function...

And yes, there is at least one simulator where PZ analysis extracts the
given laplace_xx root locations.
 
On 24 Mar 2006 07:30:40 -0800, "Steve" <steve.hamm@gmail.com> wrote:

Uh, Andrew, I've seen you promulgate this answer a couple of times.
Unfortunately, if it came from the factory, someone is blowing smoke.
This is a bug.
I'd call it an implementation limitation, rather than a bug. The main purpose of
pz is to analyze real circuits, not behavioural models, but anyway, read on....

Consider a 2-port with, e.g. r/l/c components. Run an AC analysis,
then a PZ analysis.

From the poles and zeros given, construct a Verilog-A 2-port with the
same poles and zeros using a laplace_zp function. An AC analysis
should match (if it doesn't, there are more problems -- either the
coefficients are entered incorrectly or the laplace_xx functions are
broken). If the AC analysis matches, then if the PZ analysis were
correct the PZ locations should match - it's just a transfer
function...

And yes, there is at least one simulator where PZ analysis extracts the
given laplace_xx root locations.
It depends how the PZ is done. Just because the ac results match (they did, in
my experience), doesn't mean that the pz analysis can extract them. It doesn't
try and fit poles and zeros to the AC curve - it does a more direct calculation
of the poles and zeros.

Anyway, I've just found by doing some research that the way this is done has
changed in MMSIM60 USR2, and now it should handle laplace functions properly - I
believe it now builds the model that is used for time domain simulation, and
uses that - rather than "fitting" at a single frequency, using the direct
frequency-domain representation of the laplace function.

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top