• 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. OCC (Operating Condition Check) simulation using AMS

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15581
  • 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

OCC (Operating Condition Check) simulation using AMS

Ashwathmp
Ashwathmp over 11 years ago

Hi,

I have testbench setup to do AMS simulation. The simulation runs fine when I use the regular simulation models. When I replace the regular models with those meant for OCC simulation, I get the following error message -

 " ncsim: *E,RNALER: Simulation terminated due to analog error."

 Is OCC simulation supported by AMS simulator? If yes, can someone help me debug this error.

Thanks,

Ashwath 

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Ashwath,

    Assuming you're talking about "asserts" in spectre when you mention "OCC", then that should work (unless you're using ultrasim as the solver - but in that case, you still shouldn't have this error but a warning telling you that "assert" is not supported).

    For example, if I use this VerilogAMS code:

     `include "disciplines.vams"
    module testassert;

    electrical vd,vg;
    electrical gnd;
    ground gnd;

    vsource #(.dc(3.0)) V1(vd,gnd);
    nch #(.w(1e-6),.l(1e-6)) M1(vd,vg,gnd,gnd);
    vsource #(.type("pulse"),.val0(0.0),.val1(3.0),.rise(1u)) VG(vg,gnd);

    endmodule

    and this file (models.scs):

    inline subckt nch (d g s b)
    parameters w=1u l=1u
    model nch bsim4 type=n
    nch (d g s b) nch w=w l=l
    ass1 assert dev=nch param=vgs min=1 max=2
    ass2 assert expr="v(g)-v(s)" min=1 max=2
    ends nch

    tran tran stop=1u

    And then I run "irun asserttest.vams models.scs" and I get:

     Warning from spectre at time = 1 ns during transient analysis `tran'.
        WARNING (SPECTRE-4105): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 3e-03 has exceeded its lower bound `1'.
        WARNING (SPECTRE-4004): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 3 mV has exceeded its lower bound `1'.
    Warning from spectre at time = 352.138 ns during transient analysis `tran'.
        WARNING (SPECTRE-4108): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 1.05641 has returned to within bounds [1, 2].
            Peak value was 3e-03 at time 1e-09. Total duration of overshoot was 351.138e-09.
        WARNING (SPECTRE-4020): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 1.05641 V has returned to within bounds [1, 2].
    Warning from spectre at time = 672.138 ns during transient analysis `tran'.
        WARNING (SPECTRE-4106): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 2.01641 has exceeded its upper bound `2'.
        WARNING (SPECTRE-4014): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 2.01641 V has exceeded its upper bound `2'.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Ashwath,

    Assuming you're talking about "asserts" in spectre when you mention "OCC", then that should work (unless you're using ultrasim as the solver - but in that case, you still shouldn't have this error but a warning telling you that "assert" is not supported).

    For example, if I use this VerilogAMS code:

     `include "disciplines.vams"
    module testassert;

    electrical vd,vg;
    electrical gnd;
    ground gnd;

    vsource #(.dc(3.0)) V1(vd,gnd);
    nch #(.w(1e-6),.l(1e-6)) M1(vd,vg,gnd,gnd);
    vsource #(.type("pulse"),.val0(0.0),.val1(3.0),.rise(1u)) VG(vg,gnd);

    endmodule

    and this file (models.scs):

    inline subckt nch (d g s b)
    parameters w=1u l=1u
    model nch bsim4 type=n
    nch (d g s b) nch w=w l=l
    ass1 assert dev=nch param=vgs min=1 max=2
    ass2 assert expr="v(g)-v(s)" min=1 max=2
    ends nch

    tran tran stop=1u

    And then I run "irun asserttest.vams models.scs" and I get:

     Warning from spectre at time = 1 ns during transient analysis `tran'.
        WARNING (SPECTRE-4105): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 3e-03 has exceeded its lower bound `1'.
        WARNING (SPECTRE-4004): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 3 mV has exceeded its lower bound `1'.
    Warning from spectre at time = 352.138 ns during transient analysis `tran'.
        WARNING (SPECTRE-4108): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 1.05641 has returned to within bounds [1, 2].
            Peak value was 3e-03 at time 1e-09. Total duration of overshoot was 351.138e-09.
        WARNING (SPECTRE-4020): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 1.05641 V has returned to within bounds [1, 2].
    Warning from spectre at time = 672.138 ns during transient analysis `tran'.
        WARNING (SPECTRE-4106): testassert.M1.ass2, instance testassert.M1: Expression `v(g)-v(s)' having value 2.01641 has exceeded its upper bound `2'.
        WARNING (SPECTRE-4014): testassert.M1.ass1: Instance testassert.M1, Parameter `vgs' having value 2.01641 V has exceeded its upper bound `2'.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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