How to define a port in cadence which has an impedance value that is frequency dependent

Status
Not open for further replies.

Ata-Va

Junior Member level 3
Joined
Jul 13, 2012
Messages
27
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,505
How to define port in cadence which has a impedance value that is frequency dependent

Hi Everyone,

I am trying to use a port with complex value as a output termination in SP simulation of cadence. For example output port impedance value is 1/(2*pi*freq*C) which is also frequency dependent. Is there any idea how to do this in cadence? Thanks in advance.
 

Re: How to define port in cadence which has a impedance value that is frequency depen

Unfortunately "freq" variable cannot be used in Spectre s-parameters simulations.However it's possible to use in ADS.
 

Re: How to define port in cadence which has a impedance value that is frequency depen

I am trying to use a port with complex value as a output termination in SP simulation of cadence.
What simulator do you use ?

Use correct terminology.
We can use many simulators, e.g. Synopsys HSPICE, Mentor Eldo, Keysight ADSsim, Keysight Goldengate, etc. in Cadence Virtuoso.

For example output port impedance value is 1/(2*pi*freq*C) which is also frequency dependent.
Is there any idea how to do this in cadence?
What do you mean by "in cadence" ?

Unfortunately "freq" variable cannot be used in Spectre s-parameters simulations.
Wrong.
Frequency expressions are possible by using "$freq" even in Cadence Spectre.

This is available for "analogLib/res", "analogLib/ind" and "analogLib/cap".

However Spectre primitive, "resistor", "inductor" and "capacitor" don't have ability of treating frequency expressions actually.
Spectre treats frequency expressions by Spectre primitive, "bsource" internally.
See "spectre -h bsource".

Currently, we can not use $freq for Spectre primitive, "port".

So use "analogLib/res" and "analogLib/ind" instead of "analogLib/port".
Here negative resistance is not available if you use $freq for r=func($freq) in "analogLib/res".

It seems Spectre primitive, "bsource" can not reflect negative resistance.

On the other hand, Spectre primitive, "resistance" can reflect negative resistance.

"test_freq_expression.scs"
Code:
// Generated for: spectre
// Generated on: Nov  2 13:55:42 2018
// Design library name: My_RFDE_Test
// Design cell name: test_freq_expression
// Design view name: schematic
simulator lang=spectre
global 0

// Library name: My_RFDE_Test
// Cell name: test_freq_expression
// View name: schematic
PORT0 (x1 0) port r=50 x=0 num=1 type=dc
R0 (x1 net1) resistor r=cos(2*acos(-1)/100M*$freq)
L0 (net1 0) inductor l=sin(2*acos(-1)/100M*$freq)/(2*acos(-1)*$freq)
simulatorOptions options psfversion="1.1.0" reltol=1e-3 vabstol=1e-6 \
    iabstol=1e-12 temp=25.0 tnom=25.0 scalem=1.0 scale=1.0 gmin=1e-12 \
    rforce=1 maxnotes=5 maxwarns=5 digits=5 cols=80 pivrel=1e-3 \
    sensfile="../psf/sens.output" 
sp sp center=1G span=100M annotate=status 
saveOptions options save=selected
 

Attachments

  • 2018-1102-1356-53.png
    49.9 KB · Views: 384
  • 2018-1102-1359-12.png
    33.5 KB · Views: 391
Last edited:
Reactions: Ata-Va

    Ata-Va

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…