Quantcast
Channel: Cadence Custom IC Design Forum
Viewing all 4893 articles
Browse latest View live

Saving the image of many output signals in Cadence Virtuoso

$
0
0

Hello,

I have a problem when I try to save the image of my circuit that have many outputs, 

the problem is that the saved image capture only the visible signals from the simulation result viva window, as an example I have about 20 signals but when I save the image I can only see like 8 signals. 

Hence I am saving a batch of signals every time and merging them using third party software, 

I believe there is a way by Cadence where it could be done more perfectly in one shot and save the image quality and effort, and for this, I need your help

Thank you in advance

Best Regards


Maestro - use other output as spec value.

$
0
0

Hello.
I define some expression in outputs and want to use it in spec (range).
VAR("")  and just output name in the spec field don't work.

How to plot current results along with last run results in the same window/tab in viva.

$
0
0

I'm back to Cadence after three years out, and unfortunately good old AWD has gone. I have Ic618 and Viva.  Yesterday I figured out how to plot outputs in Viva and restore a prior run's results onto the same window (not another tab) so that I could do an A--B compare. Today, I can't remember what I did!  It was some combination of save window --- load window in Viva, or ADE-explorer>results >save, then ADE-explorer>results>select, but I'm darned if I can make it work again. It's not too difficult to display two runs in separate tabs, but I just want Viva to do what AWD did trivially, that is superimpose THESE results over the LAST RUNS results in the same window.

Can someone give a blow by blow account on how t do this?

Thanks.

Models for components in sample lib

$
0
0

Hi All,

I am using digital gates (inverter, nand ) from Sample library.

Can anyone give some idea where to get the models for these digital gates inside the Sample library as during simulation I am getting an error of missing nmos , pmos models as shown below ?

thank you

write *.scs file to use model library

$
0
0

i have TSMC RF fr013.scs and i cant directly use this file at ADE>model library setup>global model file

Error found by spectre during circuit read-in.
ERROR (SFE-675): "/home/disk/simulation/TSMC130_PDK/models/RF_12_33_FSG/T013CMSP002_1_2/spectre/rf013.scs" 3: Illegal library definition found in netlist
When I opened the fr013.scs file, it said to use model library :
"
1)To use these models directly by programming in this style: *
// *
// .lib 'lib_path/lib_name' model_name *
// *
// *
// EX: .lib '/home/user/tsmc/LOGIC/rf013.l' TT_RFMOS *
// for typical RF 1.2V N,PMOS

"
i can't find /tsmc/LOGIC/rf013.l

Finally, I created a test.scs file and write the following command to use model library

include "./RF_12_33_FSG/T013CMSP002_1_2/spectre/rf013.scs" section=tt_lvt
include "./RF_12_33_FSG/T013CMSP002_1_2/spectre/rf013.scs" section=tt_hvt
The problem was solved and simulation was performed
There is only one problem is that I have to change the test.scs file every time to change the corner from tt to sf or ff , ..

What command can I use to make these sections changeable at ADE>model library setup>global model file (drop-down menu)
thanks

Change default increment of deriv

$
0
0

Hello,

I try to use "deriv" function to analyze the slope of some signals, I'm using transient simulation, so X-axis is time. For "deriv" function, what is the default increment or step size of the derivative function? In output setup, I simply write:

deriv(v("/cout" ?result"tran-tran"))

"/cout" is the signal. I want to change the increment to 2ps or 20ps, how should I do it?

Thanks a lot!

Access Top-Level Hierarchical Net with BSource

$
0
0

Hello,

I am trying to define a bsource within a subcircuit, which addresses currents and voltages from the top-level hierarchy. For currents, this seems to work, but for voltages it does not. My expressions looks like this ('I0' is an instance in the top schematic and 'I1' an instance in 'I0', which has a net 'net1')

for current: i=i(".I0.I1:1") -> works
for voltage v=v(I0.I1.net1) -> does not work

I also tried different variants

v(.I0.I1.net1) -> error because of leading '.'
v("I0.I1.net1") and v(".I0.I1.net1") -> also does not work

It seems, instead of interpreting the voltage path as global, Spectre assumes them as local, because i get warnings for dangling nets with these names.

I searched the Forum and the Spectre reference and user manual, but could not find an example for what I am trying to do. Maybe it is not possible at all, but why does it work for currents?

Best regards
Paul

How can I import verilog-A (.va) file in the cadence virtuoso?

$
0
0

I have a verilog-A TFT model file, but I do not know how can I import this model in the cadence virtuoso.

How can I import this model into the cadence virtuoso?

Please tell me

Thank you

yysunj


some questions about pz analysis

$
0
0

I am simulating the open-loop characteristics of a two-stage op amp. The simulation circuit is as follows (using a large resistor R0=1Gohm and large capacitor C2=1KF to form a feedback loop).

I performed a pz simulation. The input is v2, and the output is Vout.

The pz simulation results are as follows.

There are two poles here, which correspond to the pole positions after Miller compensation.

But I think there should be a mirror pole and a pole contributed by the tail current source (M5).But pz simulation does not give these two poles.

Later, I reduced C2 to 1F, as the following circuit.

Then, the pz simulation gives the following zeros and poles.

This time there are several more poles and zeros, including the mirror pole, the pole contributed by the tail current source (M5), and the two very small poles and zeros introduced by R0 and C2.

Why is this so? I think if the topology of the circuit remains the same, the number of poles and zeros should be the same.

Why is the value of C2 different and the number of poles and zeros given by pz are different?

Why does the pz simulation not show the mirror pole and the pole contributed by the tail current source (M5) when C2 is equal to 1K?

Thanks you very much.

How does the correlation constraint "cc" affect the correlation of mismatch parameters

$
0
0

Hello,

I am using the correlation constraint to tie together Monte-Carlo mismatch parameters for a number of instances of an ADC.

Example syntax 

statistics {
correlate dev=[ I0.* I1.* ] cc=1.00
}

When cc=1 I can see that the parameters are all identical across instances.

When cc=0 the parameters are uncorrelated and I have full Monte-Carlo dispersion has per the model distributions.

Are values between 0 and 1 valid?

I would like to reduce the amount of mismatch between certain instances with the idea being that my blocks aren't too far away from each other so perhaps my mismatch should not be maximum.

Is this a valid approach? I haven't yet found any documentation that describes the values for "cc" and in my testing it's not obvious to me how cc affects the correlation for values between 0 and 1.

Thanks for your help.

Matthew Cordrey-Gale

Thermal noise modeling

$
0
0

Hi. 

I am interested in calculating the thermal noise power ("id.src" value in noise section of the result browser) of a MOSFET modeled by the BSIM4.5 model in Matlab. During my dc as well as noise simulation of a single transistor, I utilized all the operating point information found in the "dcOpInfo" section and the model parameters found in the "model" section of the result browser. In order to calculate thermal noise, I used the "holistic model". However, the results were different from the simulation. I would appreciate any assistance you can provide. Thanks 

OCEAN

Using existing maestro view

$
0
0

Hi All,

I am trying to use an design shared with me that has a testbench schematic and associated maestro view.

When I am trying to open the maestro view it throws a message that "design associated with the test is invalid".

The design seems to be fine.

Is there a way I can use the existing maestro view or will I have to create a new one ?

thanks in advance.

regards

Violations display in ADE L

$
0
0

Hi all,

I created a set of parameter checks using the Device Check Specification in ADE L (Simulation --> Device checking), and activated the related options (Simulation --> Options --> Analog, and then in Check tab I choose dochecklimit=yes and checklimitdest=both).

In the log file I see the correct warnings, i.e.:

WARNING (SPECTRE-4120): check73: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check73: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check74: instance M3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check74: instance NM3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check75: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check75: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check76: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check76: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check78: instance M3.m1, Expression `(V(d)-V(s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check78: instance NM3.m1, Expression `(V(d)-V(s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check80: instance M3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check80: instance NM3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check81: instance M3, Expression `(V(d)-V(s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check81: instance NM3, Expression `(V(d)-V(s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check82: instance M3, Expression `(V(D)-V(S))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check82: instance NM3, Expression `(V(D)-V(S))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check83: instance M3, Expression `(V(D,S))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check83: instance NM3, Expression `(V(D,S))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check84: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check84: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check85: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check85: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check86: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check86: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check87: instance M3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check87: instance NM3.m1, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check88: instance M3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check88: instance NM3, Expression `(V(d,s))' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check89: instance M3.m1, Expression `V(d)' exceeds its upper bound `5' . Peak value was 19.2878 at time 7e-06. Total duration of overshoot was 997e-06.
WARNING (SPECTRE-4120): check89: instance NM3.m1, Expression `V(d)' exceeds its upper bound `5' . Peak value was 50 at time 3e-06. Total duration of overshoot was 997e-06.

But if I open Results --> Violations Display, then looks like all the checks are passed, as in the attached picture, so that I cannot check the details of the violation.

What can be wrong in my setup?

Fabio

bandwidth function in Virtuoso calculator

$
0
0

Hi All,

I am trying to use the bandwidth function in Virtuoso calculator in IC6.1.8

Do I have to ensure that the input signal to the bandwidth function is in a particular format like non db20 or only a magnitude function ?

When I am applying the bandwidth function to a db20 format wave then the 3db results from the calculator don't match with the visual results for me.

regards


Is it possible to do this in VerilogA?

$
0
0

Hi,

Is it possible to compile one part of my verilogA code if an input parameter is set and not compile it when the parameter is not set? Note that this is not like executing a set of commands in an if statement and executing another set if the condition is not satisfied. I am really asking about compiling part of the code if a parameter is set.

Thanks

Svilen

Issue in accessing PSF directory with ocean script.

$
0
0

Hello, I'm writing down this paragraph because I couldn't fix strange issue during running ocean.

I already ran the same testbench with ADLE, and saw it is working okay.

However, when I extracted ocean script in the ADLE->Session and run with the ocean script (ocean -restore ~.ocn), it shows the error like this:

It successfully deletes the previous psf data, but then it says as WARNING OCN-6040, cannot find the directory.

Also before that, it also says it "cannot start up spectre". Maybe the WARNING is related to this one.

Will anyone have an idea how to fix it? I will greatly appreciate all the advice.

Thank you, have a nice day.

Sincerely,

Dongsuk

How to backannotate Monte-Carlo DCOP simulation results to schematic

$
0
0

I need to backannotate a single run MC simulation. It does not work nicely in my setup.
First, I need to click op on the calculator, after that the annotation pops up.
But the second time I run MC, the backannotation is not updated.

Here is a almost the same issue on a different version of virtuoso.
I use assembler, IC6.1.7-64b.500.15.

This is the MC option window.

Statistical file for Monte Carlo analysis

$
0
0

Hi, 

 I am new to Monte Carlo simulations. I am trying to do the analysis for PUF using Monte Carlo simulation. I am using IC 6.1.7 version and UMC 90nm technology. I am having some basic questions, please clear it, 

I have written a spectre file for statistical analysis for varying tox and vth of pmos and nmos. My question is 

 1. What should be the parameter value that I have to give for dtox and dvtho?  If I give zero for these parameters, I can see that these values are always at zero for all runs( I checked it in the histogram). If I should not give zero what should be the value and how should I decide?

2. What should be the std deviation value one should provide? Is there is any limitation?

3. I am also getting some notice stating 

  Statistical parameter 'dvth0_n_10_sp' depends on other parameters, its nomial value will be calculated only once and then treated as a constant.

This is my spectre code. Appreciating your help in advance. Thank you.





simulator lang=spectre

library monteLib

section param


parameters dtoxp_p_10_sp=0 toxp_p_10_std=0.2
parameters dtoxp_n_10_sp=0 toxp_n_10_std=0.2
parameters dvth0_n_10_sp=0 vth0_n_10_std=0.002
parameters dvth0_p_10_sp=0 vth0_p_10_std=0.002
//parameters du0_p_10_sp=9.26e-03

parameters mtoxp_p_10_std=0.02
parameters mtoxp_n_10_std=0.02
parameters mvth0_n_10_std=0.0002
parameters mvth0_p_10_std=0.0002

endsection param

section statistics

statistics
{
process
{

vary dvth0_n_10_sp dist=gauss std=vth0_n_10_std
vary dvth0_p_10_sp dist=gauss std=vth0_p_10_std
vary dtoxp_n_10_sp dist=gauss std=toxp_n_10_std
vary dtoxp_p_10_sp dist=gauss std=toxp_p_10_std
//vary du0_p_10_sp dist=gauss std=20 percent=yes
}
mismatch
{
vary dvth0_n_10_sp dist=gauss std=mvth0_n_10_std
vary dvth0_p_10_sp dist=gauss std=mvth0_p_10_std
vary dtoxp_n_10_sp dist=gauss std=mtoxp_n_10_std
vary dtoxp_p_10_sp dist=gauss std=mtoxp_p_10_std
//vary du0_p_10_sp dist=gauss std=20 percent=yes

}
}

endsection statistics

section models

// removed by moderator as this might be revealing confidential IP


endsection models
endlibrary monteLib

Spectre 16775 Warning

$
0
0

Hi,

While running reliability analysis for UMC90nm i am getting the following warning message. 

Warning SPECTRE 16775: Cannot run the aged model because one or more 'gradual_aging_alter' statements have been specified in the reliability block but the aged devices are either not specified or the age values of the all devices are less than the minage value.......

Please help to sort out this issue

thanks,

Deepa Mohan 

Viewing all 4893 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>