• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. AMS Simulator in cadence virtuoso

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 125
  • Views 17177
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AMS Simulator in cadence virtuoso

Pandurangaiah
Pandurangaiah over 8 years ago

I am using cadence IC 6.1 version.

 I am using verilog ams and created test bench in schematic,to simulate a cell i have created a config view for test bench.I came to know that we need to create a config file if verilog ams code and ams simulator is used.I could do transient analysis for config view using ams simulator, but may i know how to plot resistance on y-axis versus voltage on x-axis curve using ams simulator in cadence (i.e. how to do DC simulation plot for config view) .I have saved DC operating point,and seen results in results->print->Dc operating point.

The problem is as config file has no option of sweeping a variable while dc analysis, how to choose a sweep variable, let us say voltage  or current on x-axis.

Please give the response as soon as possible as i am struggling for this since 2 weeks.

 

Thank you.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    "IC 6.1 version" is a bit vague. IC6.1.0 was released in 2006, and so we've got 10 years of different versions, including 8 major releases in that time.

    Anyway this is nothing to do with "config file" - it's a simulator setting in ADE, not the config view. DC sweep in AMS has only been added recently - in IC617 ISR5 (6.1.7.500.5). It might be that you could do this during a transient analysis too - if you are able to plot the resistance versus time, and voltage version time, you can then use the right mouse button menu over the x-axis in the ViVA graph to change the x-axis to be (say) the voltage signal. Not sure if that does what you want, or whether you really need the dc sweep.

    BTW, this forum should not be used for urgent questions as it is manned purely by volunteers - I'm answering here sat in an airport lounge waiting to board - there's no guaranteed response. If you want that, you should contact customer support.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    Thank you Andrew for the reply,
    I have one more doubt, in an verilog AMS code, in the input and output port list, i have declared module(T1,T2,X).... and i have written a expression in the code let us say temperature versus Voltage,where in the port list this temperature is not there. how to plot a graph for this using AMS simulator.
    Thank you
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Please show what you've written - otherwise I would have to guess how to access the signal (if indeed it's a signal).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    This is the verilog AMS code, i have declared all the parameters but i am not showing them here now.

    module Model1(T1,T2,x,Ttrans,PI);

    inout T1, T2,x,Ttrans,PI;
    electrical T1, T2,x,Ttrans,PI;
    real PolaP;
    real PolaAP;

    real surface;
    real gp;
    real gap;

    real Em;

    real TMRR;
    real TMRRT;

    real Rap;
    real Rp;

    real Vb; //V(T1,T2)
    real Vc; //V(T2,T1)

    real Id; //Current of MTJ

    //critial current for the two states of STT-MTJ
    real IcAP; //Critial current for AP state
    real IcP; //Critial current for P state

    integer Teta;

    real ix;

    real tau;
    real p;

    real FA;


    real duration;
    analog begin

    if (SHAPE==1)
    begin
    surface=a*b; //SQUARE
    end
    else if (SHAPE==2)
    begin
    surface=`M_PI*a*b/4.0; //ELLIPSE
    end
    else
    begin
    surface=`M_PI*r*r; //ROUND
    end

    Vc=V(T2,T1);
    Vb=V(T1,T2);

    //initial conditions
    @(initial_step)
    begin

    FA=3322.53/RA;
    Ro=(tox*1.0e10/(FA*`sqrt(PhiBas)*surface*1.0e12))*exp(1.025*tox*1.0e10*`sqrt(PhiBas));


    Em=Ms*tsl*surface*Hk/2;

    ix=PAP;
    I(x)<+ ix;
    I(Ttrans)<+ix;

    I(PI)<+0;

    end
    if(V(Ttrans)==0)
    begin

    Teta=0;

    PolaP=`sqrt(TMR*(TMR+2))/(2*(TMR+1));

    gp=alpha*gamma*`e*Ms*tsl*Hk/(40*`M_PI*(`ub*PolaP));
    IcP=gp*surface;

    //TMR real
    TMRR=TMR/(1+Vb*Vb/(Vh*Vh));


    Rp=Ro;

    if(Vb>=IcP*Rp)
    begin


    duration=(`C+ln(`M_PI*`M_PI*(Em/(`Kb*T*40*`M_PI))/4))*`e*1000*Ms*surface*tsl*(1+P*P)/(4*`M_PI*2*`ub*P*10000*abs(Id-IcP)

    if((duration<Pwidth))
    begin //Switching of the free layer always occurs
    ix=-1.0; //change the current state of MTJ
    Id=Vb/Rp;
    end
    else
    begin
    ix=0.0;
    Id=Vb/Rp;
    end

    end

    else
    begin
    ix=0.0;

    Id=Vb/Rp;
    end

    end


    if(V(Ttrans)!=0)

    begin

    Teta=`M_PI;

    PolaAP=`sqrt(TMR*(TMR+2))/(2*(TMR+1));

    gap=alpha*gamma*`e*Ms*tsl*Hk/(40*`M_PI*(`ub*PolaAP));
    IcAP=gap*surface;


    TMRRT=TMR/(1+Vb*Vb/(Vh*Vh));


    Rap=Ro*(1+TMRRT);


    Rp=Ro;
    if(Vc>=(IcAP*Rap))

    begin
    duration=(`C+ln(`M_PI*`M_PI*(Em/(`Kb*T*40*`M_PI))/4))*`e*1000*Ms*surface*tsl*(1+P*P)/(4*`M_PI*2*`ub*P*10000*abs(-Id-IcAP));


    if((duration<Pwidth))
    begin
    ix=0.0;

    Id=Vb/(Rap);
    //Id=(Vb*(1+TMRRT))/(Rap);
    end
    else
    begin
    ix=-1.0;
    Id=Vb/(Rap);
    end

    end

    else
    begin

    ix=-1.0;
    Id=Vb/(Rap);
    end

    end

    I(x)<+ix; //Actualisation of the state of x with the value calculated

    V(T1,T2)<+I(T1,T2)*Rp;

    I(T1,T2)<+Id; //Actualisation of the current of MTJ with the value calculated

    I(PI)<+-p; //Probability density function

    end

    endmodule

    I am using product version 15.1, virtuoso version IC 6.1.6. 64-b. 500.4
    For this code i have created symbol->schematic testbench->config view for the testbench.
    In the above code, if i want to plot the graph between TMRR and Vb from the expression, TMRR=TMR/(1+Vb*Vb/(Vh*Vh)), then what is the procedure..

    Thanking you.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    hello Andrew,
    As i said earlier iam using virtuoso product version IC 6.1.6. 64-b. 500.4
    while using ADEXL, when i right click 'test or analysis name' in the data view assistant pane, it is not displaying stimuli and also context sensitive menu.
    what to do to get these forms....

    Regards
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    sorry andrew for the wrong word 'context sensitive menu' above,
    when i right click 'test or analysis name' in the data view assistant pane,context sensitive menu apperaed, but there is no customize menus at the end of the context sensitive menu and stimuli

    Regards
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    To answer (rather belatedly) your original question about saving the internal variables, bring up the test editor (double click on the test name in ADE XL) and then Outputs->Save All and set the "Save AHDL variables" to "all". You can do it more selectively, but you either need to add a probe tcl command or do this from within the SimVision debugger - so it keep it simple, you can get all of the internal variables this way.

    After simulation, you can use the results browser to access the internal signals.

    I've no idea what your last two questions are trying to ask. If you were (via some roundabout way) asking about using Setup->Stimuli when using AMS as the simulator - the simple answer is that it doesn't exist. This is only there for spectre.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    Ok Thank you Andrew for the reply.
    I am using product version 15.1, virtuoso version IC 6.1.6. 64-b. 500.4.
    I came to know that DC sweep is not possible using AMS simulator in version 6.1.6, if this is the case then how sweeping has to be done for any variable with AMS simulator. Is there any procedure for sweeping a variable in version 6.1.6,as we have only 6.1.6 in our institute

    Regards
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Tools->Parametric Analysis in ADE is probably your only choice (or similar variable sweeps isn ADE XL) in that case.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pandurangaiah
    Pandurangaiah over 8 years ago
    Thank you Andrew
    I have done sweeping a variable using Tools-> parametric analysis for DC type analyses where the parametric simulation success message is obtained but the PLOT is not generated for the same.
    I got the plot for transient analysis
    How to get the plot for DC analysis.

    Regards
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. 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. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information