The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> spectre assertions
https://designers-guide.org/forum/YaBB.pl?num=1160484157

Message started by achim.graupner on Oct 10th, 2006, 5:42am

Title: spectre assertions
Post by achim.graupner on Oct 10th, 2006, 5:42am

Hi all,

I try to get started with spectra assertions. I did the following example

R0 (net3 0) resistor r=1K
V0 (net3 0) vsource dc=1 type=pulse val0=0.0 val1=3.3 rise=10u

A1 assert dev=R0 param=i max=3m level=error   message="Assertion: I too large"      
A2 assert dev=R0 param=i max=2m level=warning message="Assertion: I too large"      
A3 assert dev=R0 param=i max=1m level=notice  message="Assertion: I too large"      

C0 checklimit checkallasserts=yes

tran tran stop=10u errpreset=conservative write="spectre.ic" \
   writefinal="spectre.fc" annotate=status maxiters=5


When simulating I get a failure when the current exceeds 3mA but nothing happens when the current exceeds 1mA resp, 2mA.  There are also no messages in the log files.

What I am doing wrong?

You help is appreciated,
Achim

Title: Re: spectre assertions
Post by John O Donovan on Oct 10th, 2006, 9:32am


Achim,

I'm guessing that you are using MMSIM6.1. I tried 6.0_USR2 and it works as expected. In 6.1, it appears to only print a message for the error condition. However if I save the output to a logfile, using +log or =log, it does print the messages for the warning and notice to the logfile. There seems to be a problem with the message handler. For the moment, save the output to the logfile and you can continue.

Regards,
 John

 % spectre test.scs =log test.log
 % cat test.log
  ...
      tran: time = 2.268 us    (22.7 %), step = 100 ns          (1 %)
      tran: time = 2.768 us    (27.7 %), step = 100 ns          (1 %)

  Notice from spectre at time = 3.0675 us during transient analysis `tran'.
      A3: Assertion: I too large. Instance R0, Parameter `i' having value 1.01227 mA has exceeded its upper bound `1e-03'.

      tran: time = 3.267 us    (32.7 %), step = 100 ns          (1 %)
      tran: time = 3.767 us    (37.7 %), step = 100 ns          (1 %)
     ...
      tran: time = 5.767 us    (57.7 %), step = 100 ns          (1 %)

  Warning from spectre at time = 6.0675 us during transient analysis `tran'.
      A2: Assertion: I too large. Instance R0, Parameter `i' having value 2.00227 mA has exceeded its upper bound `2e-03'.

      tran: time = 6.267 us    (62.7 %), step = 100 ns          (1 %)
      tran: time = 6.767 us    (67.7 %), step = 100 ns          (1 %)
     ...
      tran: time = 8.768 us    (87.7 %), step = 100 ns          (1 %)

  Error found by spectre at time = 9.1675 us during transient analysis `tran'.
      A1: Assertion: I too large. Instance R0, Parameter `i' having value 3.02528 mA has exceeded its upper bound `3e-03'.

  Analysis `tran' terminated prematurely due to error.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.