Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Basic Cadence analog issues

Status
Not open for further replies.

shlomo22

Member level 4
Member level 4
Joined
Jan 31, 2007
Messages
77
Helped
23
Reputation
46
Reaction score
11
Trophy points
1,288
Location
Earth
Activity points
1,820
candence inductance simulation

I'm having two issues with the Cadence/spectre analog enviroment. Perhaps someone more experienced than me can help me solve them?

1) In the schematic: Next to my transistor are three lines of red text. They go as follows:
"n18rf"
*Error*
nf=6
The first line is the device model name and the third line is the number of fingers. What does the second line refer to? I see no way of getting rid of this "Error" (when I look at properties everything seems to be OK) but when I run simulations, everything seems to run correctly. Can I just ignore this error?

2) I want to do a s-parameter analysis of this transistor. The simulation runs successfully and then I go to Results->Print->S-Parameter and the s-parameters are displayed. Then I go to Expressions->Edit in the "Results Display Window". It lists the formulas used to display s-parameters, for example "mag(sp(1 1))". Keeping this window open, I then run another simulation, then go back to the results window and choose Window->Update Results. But this fails with the message "*Error* mag: can't handle mag(nil)"! Why doesn't this work? Also, whenever I try to define an output variable in the main analog enviroment window, the simulation fails with a similar message about "nil". What's going on?
 

cadence xval()

For your first error, there is some CDF call back function working in the background that will try to calculate some parameter like Perimeter of Drain region or area of drain region. When you dont enough parameters for that callback function it displays an error in the schematic window. To confirm about your simulation you need to look at your netlist that every parameter of your interest is existing there. Generally for RF simulations where S parameters are observed, the parasitic and fringe capacitors also matter and hence PD,PS,AD,AS parameters sometimes change those low capacitance values appreciably.

For your second error, as far as I know your S parameters are calculated from the values you give after a simulation. The equivalent ac circuit or equation parameters are stored inside and after you gave sweep values etc, the tool calculates the response and plots it. But when you run the new simulation the buffers are emptied which hold your previous simulation results and pointers to results. Hence when you try to Refresh such addresses are invalid and point to nil. Hence you need to start from again from the beginning of your results display window again. Refresh probably cannot work here.
 

cadence xval

Update:

1)
Solved this problem. In my netlist the transistor was defined as follows:
M0 (vout vin net036 net036) n18rf l=0.18um w=5um nf=6
Notice that for l and w, I defined the sizes with a "um" after them. When I removed the "um" the red "*Error*" text was replaced by "l:0.18", i.e. 0.18 um. Then, to make the simulation work, I had to edit the scale factor in the analog environment, which by default was set wrong (1 not 1e-6).

2)
My real problem is not opening the display window again. I want to do calculations with the s-parameters and look at the results. If I open the display window after the simulation, all the previous equations are erased. I also added an "Output" which uses the equation I wrote. However when I run the simulation and try to look at the output, I get errors such as this:
Please specify a result name.
Please specify a result name.
Please specify a result name.
Please specify a result name.
*Error* Evaluating expression (mag((sp(1 1) * sp(2 2)))).
*Error* ("times" 3 t nil ("*Error* times: can't handle (nil * nil)"))
My basic question is: Is it even possible to write equations and look at their results, without having to rewrite them every time you rerun the simulation? That is such a basic capability, is Cadence really missing it?
 

nil cadence

I figured out how to do variables. Instead of
Code:
mag(sp(1 1)
you have to use
Code:
mag(sp(1 1 ?result "sp"))
Then I wanted to write an equation for inductance using the formula 1/im(Y11)/(2*pi*f). For this I had to use
Code:
-1/imag(yp(1 1 ?result "sp"))/2/3.141593/xval(yp(1 1 ?result "sp"))
Note the weird definition for frequency at the end: xval(yp(1 1 ?result "sp")). That one took some searching to figure out...
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top