• 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. VHDL-AMS simulation issue

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 14788
  • 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

VHDL-AMS simulation issue

srana01
srana01 over 8 years ago

I am using Cadence (ncsim?) to simulate the operation of a MEMS switch. In the code I have a generic time variable (called delay) that acts as step size (highlighted in the code snippet below). I use this variable inside a process and use "wait for delay". The code looks as follows:


begin
   break q1 => 0.0;
   break q1'dot => 0.0;

pr1:process
begin
  sene_120<= spoly_calc(q1,0.0,s_type120,s_inve120,s_ord120,s_fak120,s_data120);
  ca12_120<= spoly_calc(q1,0.0,ca12_type120,ca12_inve120,ca12_ord120,ca12_fak120,ca12_data120);
  wait for delay;
end process;

break on sene_120(2), sene_120(3), sene_120(4), ca12_120(2), ca12_120(3), ca12_120(4);

fm1==mm_1*q1'dot'dot + dm_1*q1'dot + sene_120(2) - ca12_120(2)*(v1-v2)**2/2.0 + fi1_1*p1;
r1==fi1_1*q1-u1;
f1==-p1;
i1==+((v1-v2)*(ca12_120(2)*q1'dot)+(v1'dot-v2'dot)*ca12_120(1));
i2==-((v1-v2)*(ca12_120(2)*q1'dot)+(v1'dot-v2'dot)*ca12_120(1));

 

I am having trouble running a transient simulation using this model. The simulation starts, and runs for a time which is exactly equal to the value of delay variable times 3000. For example, if delay is set to 100 ps the simulation will end at 30 ns. If delay is 500 ps the simulation will end at 150 ns. The error message I get is as follows:

Error found by spectre at time = 150 ns during transient analysis `tran'.
    ERROR (SPECTRE-16928): Cannot run the simulation because transient analysis
        has reached the maximum number of times allowed to approach minstep
        (within 5% of stop time or 5 us, whichever is less).
        Use the `max_approach_minstep' option to change the maximum number of
        times allowed to approach minstep and rerun the simulation.


When I simulate simple models written in VHDL-AMS, such as RLC circuits, the simulations run to the end without any problems. The interesting thing is that my MEMS switch model used to run perfectly on older versions of Cadence (around 2013-14). The Cadence version has been updated since and I cannot get the model to run. I had to make a few changes to the original model to just make the simulation start; for example the new version doesn't let me assign values to branch quantities in architecture declaration.

I am a novice at both VHDL-AMS and Cadence. Any help would be greatly appreciated!

Many thanks.

  • 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