Quantcast
Channel: Cadence RF Design Forum
Viewing all 968 articles
Browse latest View live

IIP3 simulations: qpss/hb vs hb

$
0
0

Hi,


What is the difference between obtaining IIP3 of a mixer with qpss+hb engine hb itself?

I am getting signficantly different results and I thought at lea "hb" should be consistent.

See example PDF attached which compares qpss(shooting_+qpac, qpss(hb)+qpac, hb+hbac.

There are many other ways for IIP3 calculations (e.g. rapid IIP3, 3-tone with hb up to running a transient, obtaining HD3 from DFT and converting to IIP3).

What is the most reliable/consistent method for switching transistors in a modern 28nm process? (e.g. N-path filters, passive mixers, ...)

Thank you!(Please visit the site to view this file)


Gate resistance effect in simulation

$
0
0

In MOS models available with me, gate resistance is not modeled.  For RF designs since gate resistance values are important, is there


any other way to calculate this value for a fixed size transistor ?


And is it fine if I put this Resistance in series with gate and then do input matching for this MOS ?

Can extraction tool like QUANTUS QRC help me in someway to extract this gate resistance from layout ?

Regards

Vipul

Query regarding the Verilog-A code given under "Modeling Oscillators with Arbitrary Phase Noise Profiles"

$
0
0

Dear All,

I was trying to understand the Verilog-A code given under "Modeling Oscillators with Arbitrary Phase Noise Profiles" .

( see the link  http://support.cadence.com/wps/myportal/cos/COSHome/viewsolution/!ut/p/a1/nY_LDoIwEEW_hQ8wnUKhsKyPgKWBqBhpNwYiMY28guDCrxeMiSs1cXYzOXNmLlIoRarObvqc9bqps3LqlXNc4xXBQQzc99gCGNAN34fYDKk9AnIE4EMx-LV_QOqJfDHI8QR9O1whPGB-6GwDmlgQU7Svm64an91NrlNRtELXFyT7biimybUphylONFR50SGJMaW24zovsR0sCXDAPJ6bFFiQEJ9EAkNs_i1uqxRmsnItW-d3ZhgPAm41FA!!/dl5/d5/L2dBISEvZ0FBIS9nQSEh/ )

 


I want to know the meaning of the two lines present in that verilog-A code:-  ( What they are meant for ?)

isource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .freq(freq) ) is1(gnd,out);

vsource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .sinephase(-90), .freq(freq) ) vs1(gnd,int);

 

 


The code is as below:-

`define db10_real(x) pow(10, (x)/10)

`define dbm2pow(x) `db10_real( ((x)-30) )

`define pow2v(x,r) sqrt(8*(r)*(x))

module oscwphnoise(out, ph);

inout out;

input ph;

electrical out;

electrical ph;

electrical gnd;

ground gnd;

electrical int;

parameter real power = 10 ;

parameter real rout = 50 ;

parameter real freq = 1e+09 ;isource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .freq(freq) ) is1(gnd,out);

vsource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .sinephase(-90), .freq(freq) ) vs1(gnd,int);
analog begin

I(out) <+ -V(int)*V(ph);

I(out) <+ V(out)/rout;

end

endmodule

Ccustom inductor in Virtuoso

$
0
0

Dear all,

I have a problem that I cannot solve. I want to create custom component for inductor in Virtuoso. I have drawn layout of inductor in Virtuoso, and then imported it to EM simulator (Sonnet) where from EM simulation I got touchstone file and broadband spice model file for inductor. So my question is, is there a way to link touchstone file with layout of inductor so that LVS won’t show short circuit error and QRC extraction will give result from touchstone file? I.e. is there a way create component when you have layout and touchstone file so that component will pass LVS and results of parasitic extraction will be same as in touchstone file?

Kind regards,

Radivoje Djuric

Gt, Gp and Ga: Significance in LNA matching

$
0
0

Hi

I want to understand how spectre calculates Gt(transducer gain , Gp( power gain) and Ga(available gain).


And what is their significance i.e. how they help in understanding matching of LNA?

Regards

Vipul

Edit Object Properties for the Current Source

$
0
0

I am doing simulations in which I intend to generate s parameters from the hybrid pi model equivalent circuit of transistor.  I have a challenge on implementing the current source in cadence. The equation defining the current from the current source is given as 

I = Vbe*Gm*e^(-jwt) = Vbe/(kBT)*qIc*(1-jwt), where,

w is the angular frequency,

t is the transit time delay of transconductance,

I have no idea how to implement the above equation in cadence under edit object properties of the current source. I will appreciate any help I can get to assist me implement the current source correctly in the simulations.

Kind regards,

Brilliant

On-chip measured Inductor de-embedding

$
0
0

I have measured s-parameter data form VNA for an on-chip inductor along with s-parameters for DE-embedding structures ( short, open and thru).


How can the parasitic data now be DE-embedd from the inductor data to get actual s-parameters of my DUT.

Regards

Vipul

Harmonic Balance Analysis S-Parameter Impedance Data

$
0
0

Just to summarise the what I’m working on: I’m trying to model ultrasonic transducers (CMUTs) using Virtuoso Spectre. The transducer has a small signal circuit equivalent and a large signal circuit equivalent.  I have a working small signal simulation which utilises basic circuit components. The large signal circuit equivalent is more complex: for the Cadence simulation, I use a Verilog-A block to model the transducer and I need to use Harmonic Balance to simulate the large signal model. Both large signal and small signal models get radiation impedance data from n-port blocks. The radiation impedance is an S-parameter data file which governs the changing impedance of the transducer at specific frequency points in the form of “freq: z1:1(real,imag). The small signal simulation can employ this n-port without problem and gives correct AC simulation results (verified by comparison to existing results from other simulators).

My question is the following: When I run Harmonic Balance to simulate the large signal transducer model using a linear resistor instead of the n-port under small signal conditions, the results of the simulation match the small signal model simulations. In other words the Large signal model simulation works. However, once I plug in the n-port, the results do not match anymore. I tried using simple data in the n-port and it seems that the data is read by the Verilog-A block, but even with the simpler data large and small signal model results don’t match. I’m wondering if there is something I’m missing? For example is there some setting that that I'm overlooking which will enable the n-port data to be processed correctly? Or maybe the complex number impedances are causing trouble (though I can’t see how that could be seeing as the small signal model uses the same data?).

 


Igfinfet simulation

$
0
0

Hi,

I'm a new cadence user and I urgenly need to simulate igfinfet model shown here :

Can anyone rescue me with a tutorial or any data to simulat it.

Thanks in advance.

Regards;

Bakr

Simulation of standalone LNA IC

$
0
0

Hi

I am designing a standalone LNA to be packagedto be matched to 50Ohm antenna output at its input and also 50Ohm load a its output.


I believe in this case I will be using two 2-port element source with their source impedance as 50Ohm.


What if I have a load impedance with capacitive component of 1pF i.e. my load now becomes 50Ohm + 1pF, should I change source impedance of my port2 accordingly ?

same output from two PRBS sources

$
0
0

hi

I am using two prbs sources in my simulation. In my circuit ,i want to have same random sequence generation from both sources. how to configure in this situation (i  do  not want to distribute the source o/p as i will have matching issue)?

Thanks

Calculate input impedance for matching with spectreRF

$
0
0

Hi

I am designing an LNA and want to match its input impedance to 50Ohms port impedance.


During 'sp' analysis in spectreRF , which function will give me idea about this impedance matching.

Gp,Ga , Gmax ,Gumx etc.  only gives the gain value depending upon kind of matching at input and output of LNA.

Is it OK to use Z11 and Z22 as input and output impedance values for matching purpose.

Or is their some other way thru which impedance matching is determined in SP or some other analysis with spectreRF.

Regards

Vipul

Query on Harmonic Port element in analogLib

$
0
0

Hi


 In what applications is harmonic port required.

In user guide it mentions that this element is required when different impedance need to be set for different harmonics.

Can somebody tell application in which such requirement is needed in port element.

Regards

Vipul

Quantus QRC for RF design parasitic extraction

$
0
0

Hi

I want to use QUANTUS QRC for extraction of my RFCMOS circuit layout.

Can anybody tell what all options or properties need to be set in ICT file in order to generate qrcTechFile to be used for extraction of high frequency parasitic effects

 like skin effect , self and mutual inductance etc.

There are several license options for QRC available, which option will be suitable for 180nm RFCMOS technology.

My frequency of operation for RF design is <5GHz.

Regards

Vipul

FATAL (CMI-2010) in transient simulation

$
0
0

My spectre version is: Version 15.1.0.644.isr13 64bit -- 22 Oct 2016

Error information as following:

Internal error found in spectre at time = 35.7142 ps during transient analysis `tran'.
Encountered a critical error during simulation. Submit a Service Request via Cadence Online Support, including the netlist, the Spectre log file, the behavioral model files, and any other information that can help identify the problem.
FATAL (CMI-2010): Assertion failed in file `waves.c' at line 12549.
FATAL (SPECTRE-21): Assertion failed.

It is related to the block "shifter_combiner" in the rfLib, and the simulation could run after I remove this block. But I have to use this block for simulation.

Any idea how to resolve this issue?


Simulation of all Diodes with inverted junction-voltage

$
0
0

No matter what diode-model I'm taking or in whatever way I'm measuring, the junction-voltage of the diode always is inverted, meaning that negative voltages are passed through and positive ones are blocked.

What could the reason be?

Harmonic Balance -LC Oscillator

$
0
0

Hi all,

I am facing a weird issue. When I am simulating a LC Oscillator in HB, the Estimated oscillating frequency from Tstab Tran differs around 1GHz from the calculated fundamental frequency. The oscillator aims to oscillate in 11.5Ghz.

When I am saying "Estimated oscillating frequency from Tstab", I am referring to the frequency that SpectreRF simulator calculates after the simulation is done. It's written in the output log file.

I have followed all the recommended settings that MMSIM 14.1 Spectre RF document proposes, such as:

A] Transient-Aided Options: 1) Run Transient -->either YES  or Decide automatically

                                                   2) Detect Steady State -->YES

                     3) tstab= 30n

B] Fundamental Freq =12G

    Number of Harmonics =12

    Over-sample Factor = 12

C] Accuracy: conservative

D] Options button:

1)Integration method tstab: I tried both traponly and trap. I am getting the same freq. deviation

2)maxstep=1psec,350f --> I am getting the same freq. deviation

From my previous experience, the estimated osc. frequency from tstab tran is a bit close to the fundamental freq.

My questions are: 1) Could anybody tell me what is the reason behind this big deviation? Am I doing something wrong?

    2) Is it safe to run the same testbench in Transient analysis and set the stop time around 200nsec and then measure the frequency using the "freq" function from the calculator menu?

Thanks in advance

Problem with Hidden states in Verilog A while running PSS/PAC...

$
0
0

Dear All,

I wrote a code in Verilog A  to generate four different clocks clk1, clk2, clk3 and clk4 from clk, as shown below. These clocks are used for switching in the filter.  While doing PSS/PAC analysis for plotting the magnitude response of filter, its giving an error shown below, Could anybody please tell how can I avoid this. I am a beginner in Verilog A, the code is also posted for the reference.

Regards,

Jayaram 

ERROR In Running PSS/PAC...

Error found by spectre during periodic steady state analysis `pss'.
    ERROR (SPCRTRF-15177): PSS analysis doesn't support behavioral module components with hidden states found in component 'JYR_CLKgen_VerA'.  Skipped.
        
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 18: Hidden state variable: count
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout1
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout2
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout3
        /home/jayaram/SCL_JYR_filter/JYR_CLKgen_VerA/veriloga/veriloga.va, declared in line 19: Hidden state variable: vout4

Analysis `pss' was terminated prematurely due to an error.

 

CODE:

`include "constants.h"
`include "disciplines.h"

module JYR_CLKgen_VerA(vclk, vclk1, vclk2, vclk3, vclk4);
input vclk;
output vclk1, vclk2, vclk3, vclk4;
electrical vclk, vclk1, vclk2, vclk3, vclk4;
parameter real vtrans_clk=0.9;
parameter real voh=1.8;
parameter real vol=0.0;

parameter real tdel = 0 from [0:inf);
parameter real trise = 0.1n from [0:inf);
parameter real tfall = 0.1n  from [0:inf);

 integer count;
  real vout1, vout2, vout3, vout4;

   analog begin

       @(initial_step) begin
            count = 0;
             end
    @ (cross(V(vclk) - vtrans_clk, 1.0)) begin
         
     if (count == 0) begin
        vout1 = voh;
            vout2 = vol;
         vout3 = vol;
        vout4 = vol;
         end
  else if (count <= 7) begin
            vout1 =vol;
            vout2 = voh;
         vout3 = vol;
        vout4 = vol;
      end
  else if (count <= 20) begin
            vout1 = vol;
            vout2 = vol;
         vout3 = voh;
        vout4 = vol;
      end
  else if (count <= 31) begin
            vout1 = vol;
            vout2 = vol;
         vout3 = vol;
        vout4 = voh;
      end
 if (count<=31)
     count = count+1;
else count = 0;
      end
    V(vclk1) <+ transition(vout1,tdel,trise,tfall);
    V(vclk2) <+ transition(vout2,tdel,trise,tfall);
    V(vclk3) <+ transition(vout3,tdel,trise,tfall);
    V(vclk4) <+ transition(vout4,tdel,trise,tfall);
   end
endmodule

 

 

Problem with Monte Carlo in ADE XL: no psf written

$
0
0

Hi,

I am new to ADE XL and want to run a MC sim bt it behaves weird and I cannot see/browse the results. I am not sure if I am doing anything wrong or if it is buggy. I am ADE L user so I describe what I did:

1. Set up my environment in ADE L as usual. Simple transient sim with output waveform as result

2. Start ADE XL, create new cell, Tests -> Click to add test and then load the state from ADE L. The Outputs Setup and Results get populated.

3. I am working with an ST PDK, so I go to ArtistKit -> Load corners from state and select the scenario that I previously saved where I enabled statistics/monte cartlo. I choose "Select Nominal Corner: yes" and "Location: ADE-XL Results Database"

4. "Corners" in the data view gets populated with my monte carlo states. I think this is fine.

5. I select "Single Run, Sweeps and Corners" and hit the "Plot all waveforms" button. IT WORKS -> the results browser shows two traces on top (one for nominal and one for monte carlo)

6. Then I select "Monte Carlo Sampling" and select number of points, save mismatch data etc and run.

7. After the run, hitting the "plot all waveforms" button, the window is just black and empty! Hitting Results browser button also shows the empty results browser.

It seems that no psf file is created which is there for the interactive run. The file adexl/data/MonteCarlo.0/psf/testlib:testcell:1/psf is empty.

Opening the run log shows that all runs (total number of points 4, number of points passed 4) have been completed successfully.

Am I doing anything wrong here? Where are the MC results supposed to be?

PSS shooting vs. transient with nport (S-aparm) loading

$
0
0

Hello,

I am simulating a differential circuit with a tune-load (LC tank), where L is modeled by EMX. I am using AnalogLib/nport cell to include S-parameter behavior of the inductor in my PSS simulations. PSS is using shooting method to solve the circuit. nport cell is created by EMX tool (interpolation method="linear").

Here is the problem that I see:

for a given condition, transient and PSS-shooting results are different (output swing in PSS is wrong; doesn't lineup with current*Rp). I checked the tstab transient results of PSS simulations and I can see that tstab results correlate with transient simulation results. 

I appreciate any comments.

-Masoud

 

Viewing all 968 articles
Browse latest View live