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

S


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

The testbench is consisted  of:  1) the extracted view of the capacitor bank and the GM circuit

                                                         2) N-Port S -parameter file for the inductor and the tracks (extracted from EMX tool)

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? Did anyone has experienced similar HB/tstab behavior?

   2) Is it safe as a verification check 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

 

S11 for bandpass filter

$
0
0


I am designing a bandpass filter using active inductor as shown in attached schematic and had a query in this regard.

Since this is a BPF I am interested in seeing its S21 response. But for that ckt input and output impedance should match with input and output port impedance so that S11 and S22 are low.

But since I am in initial phase of my design I dont want to spend too much time in input matching and just want to see S21 response of my filter. For that I want to minimize S11 and S22.

How can I achieve this input and output matching in spectreRF so as to see optimum s21 response of my filter ? Can load/source pull analysis be of any help to achieve this requirement ?

Regards

Vipul

RF front-end simulation

$
0
0

Dear collegues,

I am trying to simulate an RF front-end (LNA+VCO+MIXER) in order to get performances such as conversion gain, noise figure, etc.

If I simulate only the LNA+MIXER and use a Vsin to emulate the behavior of the VCO I can perform a PSS+PNOISE+PAC and get all the desired performances.

However, If i use the "real" VCO, which is an autonomous circuit, then the PSS does not work correctly:

- If I simulate the whole front-end and give the fundamental frequency, then it does not get the exact VCO frequency, and I cannot get the performances.

- If I simulate the whole front-end and the PSS is enable for autonomous circuits, then it simulates the entire front-end as an oscillator, and I cannot get the performances.

Can anyone help me with this issue?

Best Regards,
Fabio

Guarantee LC Oscillator Start Up over PVTs

$
0
0

Hi all and Andrew,

I have a question which I think it has been examined thoroughly but I would like to clarify to myself something which is not very clear to me.

The question is:

Which testbench-analysis is most accurate regarding the correctness of starting the oscillator and so satisfying the Barkhausen criteria?

1) Run PSS analysis without any stimulus [such as: a) set initial condition at the differential outputs of the VCO, or b) Power up VCO or c) inserting a time-varying independent source]

and then check the start-up transient behavior using tstab analysis?

OR

2) Run PSS analysis with a stimulus such those that I referred just before?

Thanks , any advice is more than welcome


Error in Evaluating IIP2 with Monte Carlo

$
0
0

Hello All,

I would like to know why Monte carlo iteration is being terminated prematurely while computing IIP2 due to the following error:

ERROR (SPECTRE-8003): mc1_subckts: Error evaluating ocean expression `MONTE_EXPR_1=ipnVRI((v("/Voutp" ?result "hbac") - 
            v("/Voutn" ?result "hbac")) '-1 '0 ?rport 50.0 ?ordspur 2)'.

I am presently using cadence Virtuoso IC6.1.3.500.13

for the spectre :  sub-version 7.1.1.187.isr11

Thanks as I look forward to possible suggestions and solutions.

The issues with Ports!!!

$
0
0

 As i carrying out simulations using the port instance in analogLib, I noticed that when i define a pulse and dc port, i have this offset of 310.mV on the output of the both the pulse and dc. Please let me know, as to what is the issue

Stability analysis of PLL

$
0
0

I am designing a PLL and I want to plot the frequency response of it.  I have chosen to plot it using STB analysis in cadence. So what I have done is I did break the feedback loop from frequency divider to PFD and inserted a probe. I have the figure which shows how I have given the inputs. But the output that I get is as given below which is incorrect. My question is, Is it the correct way to plot the frequency response of pll? If it is then where am I going wrong? What should I modify for a proper output?

How to compare what Spectre interprets from the raw s-parameter file?

$
0
0

I wanted to know how to view what Spectre interprets from a raw  s-parameter touchstone file? Is there a created pole/zero file that that can be compared, and also later reused?   

RF frequency synthesis problem- how low power?

$
0
0

I'm an undergrad working on the analog frontend for a student-developed cube satellite. After looking at the options, I've decided to use the CML Microcircuits CMX994 for the receiver and the CMX998 for the transmitter.

I chose the 994 for the RX because it's a direct conversion receiver, so I don't have to worry about external crystal or SAW filters for selectivity (they're kind of hard to find in small quantity for the frequencies I'd be interested in). Power consumption based on the datasheet seems reasonable, at less than 200 mW in low power mode. I chose the 998 for the TX for similar reasons - it does closed-loop predistortion to linearize the PA I designed, saving me from doing my own complicated digital predistortion setup.

I now need to decide how I'm going to do frequency synthesis. The 994 has an onboard frequency synthesizer, the 998 does not. The 994 has a buffer output to feed the 998, but that only works for half-duplex systems - I'm doing a full duplex setup (435 MHz RX, 144 MHz TX), so I need a separate frequency synth for the TX.

I'm not super concerned about the efficiency of the TX LO. When transmitting I'm pumping about 3.6 watts into the power amplifier (according to my ADS sims it'll be about 2W output at ~55% PAE). So, if I use a clock gen chip like the LMX2571 the added power consumption (100mW) next to the PA is pretty much negligible.

I'm more concerned about power efficiency for the RX LO, which will be running all the time. My options for generating the RX LO are:

  1. Use the 994's onboard PLL and design a tank circuit for its VCO. This should take about 70 mW or so.
  2. Use an off-the shelf low-power frequency synth with an integrated VCO like the LMX2571 (http://www.kynix.com/Parts/17564/LMX2571NJKR.html) from TI. This would take about 100 mW, but I avoid having to design a varactor-tuned tank circuit for the 994's VCO and potentially get a cleaner clock.
  3. Use a PLL without an external VCO and design a low-power VCO from scratch. There are some seriously low power RF PLLs out there, but naturally they don't include the VCO.

So my question is basically this: if I sink 2-3 days into designing a very narrowband VCO, can I reasonably expect enough power efficiency improvement to make option #3 better than option #1? My frequency requirements for the VCO are pretty loose, I only need about a 20 MHz tuning range centered at 870 MHz.

I figure if I can cut LO consumption for the receiver to 50 mW or less, it'll be worth my time. As the LO buffer amp for the 994 takes 5mA when using an external clock, this means that the PLL + VCO together should consume less than about 30 mW - ie: 9 mA consumption at 3.3V, or less.

Given that I have only an undergrad level education (I'll be graduating in a few months), and access to design tools such as ADS and Genesys, is this something I could reasonably do, or should I focus my attention elsewhere?

Thanks for your help!

In PSS, direct plot of harmonic frequency gives single frequency - i need range!

$
0
0

Hi,
I'm simulating injection locked oscillator, i want to plot the relation between the control voltage and the output frequency.

I know that pss is not the best choice for that but i found this solution:

"For such oscillators you shouldn’t be using the Oscillator button in the PSS form as this is considered a driven circuit since it is driven by an injection source. That is the reason you are receiving the error message. Once you set the PSS form accordingly, set the tstab to 100 periods (and can also use the saveinit button to save the initial transient waveform before steady state). You should now be able to run the simulation."

Then i set-up the pss as follows:

Finally, this what showed up to me.

It's a single frequency. I need to see how the frequency vary while changing the control voltage.
Any help?!

Thanks in advance.

PSS issue when enabling APS multicore simulation

$
0
0

Dears,

I'm currently facing the following problem:

When running PSS simulation using Spectre or APS (Multithreading Disabled), stabilization time simulation (and subsequent PSS iterations) runs through smoothly, leading to the following example plot:

However, just by enabling multithread APS simulation, the output signal swing is killed few nanoseconds after the period setup as stabilization time (100ns), as noted below:

This is the best I could do so far to track down to possible causes of such behavior. My design is mostly populated at this moment with analogLib ideal components, and (hidden-state free) verilog-a blocks that were bullet-proof tested (also with multithread APS simulation) on another server. Unfortunately I'm forced to move to this new server, since this is the only one with the PDK installation.

Virtuoso/Spectre version on faulty simulation server: Virtuoso 6.1.7 - 64b / Spectre 16.1.0 64bit

Virtuoso/Spectre version on successful multicore APS simulation server: Virtuoso 6.1.6 - 64b / Spectre 13.1.1 64bit

Thank you in advance for your support.

 


Help, Corner Analysis doesn't work in vco, error in evaluating the expression.

$
0
0

I'm Simulating a vco and want to get the Kvco and its corner analysis.

The Kvco itself is evaluated correctly but its corner analysis is not working.

The error that showed up to me is:

ERROR (ADE-1057): Could not evaluate expression
        Name:'Kvco'
        Expression:'deriv(harmonic(xval(getData("/net15" ?result "pss_fd")) '1))'
     because of the following error(s)
        ("error" 0 t nil ("*Error* drfGetWaveformYVec (DRL-18): argument not a valid srr waveform interface object nil"))
     Ensure that the definition of the expression is correct.

thanks.

Figures missing in the RF Design Blogs article of "Measuring Fmax for MOS Transistors"

Error when starting Momentum

$
0
0

Hi,

I am trying to run Momentum from Virtuoso Layout suite. After creating the momentum view starting from the layout view of my cell, the setup screen where I set ports frequencies, etc., I hit the "start simulation" green arrow button, but iget the following error:

*Error* greaterp: can't handle (nil > -0.5)

Note: I have the correct version of ADS installed (2016), and the PDK is fully supporting this functionality.

Can someone help with this?

Many thanks
Luca

Regarding output power of LC-VCO

$
0
0

In most of the LC-VCO architectures, why the output power doesn't remain constant??

What parameters are affected for that?

Adding same (fully correlated) Phase-noise to two LO paths

$
0
0

Dear All,

I have 4 LO paths (LO0, LO90, LO180 and LO270)  with 25% duty cycle clock output wave forms.

These wave forms are almost squarish and captured form another LO generation circuit simulation.

Currently, I using the captured files of the 4-waveforms for PSS/Pnoise simulation of the receiver circuit.

I want to add  phasenoise to the 4 LO paths.  I have a phase-noise profile file.

But, the important thing I want is :- The phasenoise of LO0 and LO180 should be completely co-related and the phasenoise of  LO90 and LO270 should be completely co-related.

How this can be achieved.

Could anybody please help in this regard.

Kind Regards,

Viewing all 967 articles
Browse latest View live