Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I am facing an often discussed problem while simulating a differential pair in cadence virtuoso.
Though I have biased the transistors through DC (though they are in subthreshold mode), yet when I try do do ac analysis (I follow all regular steps) I get a zero magnitude at output. Ths schematic is attached.
Can someone help me in debugging this ?
You probably didn't set the AC magnitude on your input source. I see you have a sine source there, but that won't help in an AC simulation. There is a separate parameter to set the magnitude of the input signal. It's a bit hard to see in your picture - you might have set it in which case your Vac variable needs to be non-zero.
Other than that, your circuit is probably connected up incorrectly.
Maybe you can post the input.scs from your simulation (the netlist) and then it's easier to take a look?
In reply to Andrew Beckett:
Thanks a lot for help. Please find below the contents of the netlist:
// Generated for: spectre
// Generated on: Mar 22 14:37:53 2013
// Design library name: Basic_Blocks
// Design cell name: DiffAmp_MOS
// Design view name: schematic
global 0 vdd!
parameters C=2p Ibias=1u Vac=0.1 VDD=0.4 VinNDC=0.2 VinPDC=0.2
// Library name: Basic_Blocks
// Cell name: DiffAmp_MOS
// View name: schematic
I2 (net2 0) isource dc=Ibias type=dc
V2 (VinN 0) vsource dc=VinNDC type=dc
V3 (net012 0) vsource dc=VinPDC type=dc
V0 (vdd! 0) vsource dc=VDD type=dc
C0 (Vout 0) capacitor c=C
Vac (VinP net012) vsource dc=0 mag=Vac phase=0 type=sine
sinedc=0 ampl=Vac \
I21 (net3 net3 vdd!) SubPMOS_noisy W=Wpl Temp=300
Gamma=1.2 Kox=12 L=2e-08 \
Tox_P=2.5e-09 Trap_depth=2e-09 attn=1.25e+10
I20 (Vout net3 vdd!) SubPMOS_noisy W=Wpl Temp=300
Gamma=1.2 Kox=12 L=2e-08 \
I23 (Vout VinN net2) SubNMOS_noisy W=Wnl Temp=300
Gamma=1.2 Kox=12 L=2e-08 \
Tox_P=2.5e-09 Trap_depth=2e-09 attn=5e+09
I22 (net3 VinP net2) SubNMOS_noisy W=Wnl Temp=300
Gamma=1.2 Kox=12 L=2e-08 \
simulatorOptions options reltol=1e-3 vabstol=1e-6
iabstol=1e-12 temp=27 \
scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
ac ac start=1 stop=1G dec=20 save=all annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts
saveOptions options save=allpub currents=all
In reply to OneNewBoy:
My guess is that there's either something wrong with your models, or that the dimensions passed in are wrong. For example, your L is 20nm, but the W is 7 metres!
I did some adjustment (I don't have your models, so I made some up), and it's simulating OK for me:
// Generated for: spectre// Generated on: Mar 22 14:37:53 2013// Design library name: Basic_Blocks// Design cell name: DiffAmp_MOS// Design view name: schematicsimulator lang=spectreglobal 0 vdd!parameters C=2p Ibias=1u Vac=0.1 VDD=0.4 VinNDC=0.2 VinPDC=0.2 Wnl=7 Wpl=7 // very simple models because I don't have your models...inline subckt SubNMOS_noisy (d g s) parameters W=1 L=1 SubNMOS_noisy (d g s 0) nch w=W*1u l=L*10 model nch bsim4 type=nends SubNMOS_noisyinline subckt SubPMOS_noisy (d g s) parameters W=1 L=1 SubPMOS_noisy (d g s s) pch w=W*1u l=L*10 model pch bsim4 type=pends SubPMOS_noisy// Library name: Basic_Blocks// Cell name: DiffAmp_MOS// View name: schematicI2 (net2 0) isource dc=Ibias type=dcV2 (VinN 0) vsource dc=VinNDC type=dcV3 (net012 0) vsource dc=VinPDC type=dcV0 (vdd! 0) vsource dc=VDD type=dcC0 (Vout 0) capacitor c=CVac (VinP net012) vsource dc=0 mag=Vac phase=0 type=sine sinedc=0 ampl=Vac \ sinephase=0 freq=1KI21 (net3 net3 vdd!) SubPMOS_noisy W=Wpl Temp=300 Gamma=1.2 Kox=12 L=2e-08 \ Nit=1e+16 Tox_P=2.5e-09 Trap_depth=2e-09 attn=1.25e+10I20 (Vout net3 vdd!) SubPMOS_noisy W=Wpl Temp=300 Gamma=1.2 Kox=12 L=2e-08 \ Nit=1e+16 Tox_P=2.5e-09 Trap_depth=2e-09 attn=1.25e+10I23 (Vout VinN net2) SubNMOS_noisy W=Wnl Temp=300 Gamma=1.2 Kox=12 L=2e-08 \ Nit=1e+16 Tox_P=2.5e-09 Trap_depth=2e-09 attn=5e+09I22 (net3 VinP net2) SubNMOS_noisy W=Wnl Temp=300 Gamma=1.2 Kox=12 L=2e-08 \ Nit=1e+16 Tox_P=2.5e-09 Trap_depth=2e-09 attn=5e+09simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \ tnom=27 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" \ checklimitdest=psfac ac start=1 stop=1G dec=20 save=all annotate=statusmodelParameter info what=models where=rawfileelement info what=inst where=rawfileoutputParameter info what=output where=rawfiledesignParamVals info what=parameters where=rawfileprimitives info what=primitives where=rawfilesubckts info what=subckts where=rawfilesaveOptions options save=allpub currents=all//ahdl_include "~/Library_userDefined/Basic_Blocks/SubPMOS_noisy/veriloga/veriloga.va"//ahdl_include "~/Library_userDefined/Basic_Blocks/SubNMOS_noisy/veriloga/veriloga.va"
(I fiddled with the lengths, because I got very little gain with the values you'd entered, but my models are completely artificial).
I had a little doubt on what parameters are explicitly needed for ac analysis. This is because I am using verilog -A based models and hence want to be sure if I am doing the right thing.
As far as I know, AC analysis first computes the DC operating point: so I must define current at each operating/gate voltage.
Now at that particular operating point, I expect that spectre automatically computes all variables like transconductance/output resistance etc., which it will use in the linearized model representation of the circuit.
So I wish to know if I need to provide these variables explicitly at each operating point and somehow include them in building a small signal model, to get MOSFET drain current as function of small signal inputs ?
Thanks a lot !
Actually, spectre will linearize your VerilogA model and simulate that in the AC analysis. You should not have to write an explicit AC model (and in fact you can't really). Not sure what your model looks like, but maybe you've written it in a way that can't be transformed into a small signal model?