We use assert to check for device overvoltage. Due to overshoot in the circuits, we have to either increase the limits for VGS, VGD, VDS, etc, or use a duration setting to prevent false errors due to overshoot. What we should really check is the duty-cycle of the overvoltage level. A random example would be if a VGS signal exceeds 2V more than 5% then issue an error. The window of time to consider could be set in the assert statement, or better over the simulation time. Is this possible to do. I do not know of a way to do this. Any help would be appreciated.
I beleive I have found a method to do this. If I use the following expression, it seems to work.
avg_check1 assert mod=nch expr = "avg((abs(V(g,s)) > 2.0) )" level=error max=0.01 message="Signal Overvoltage too high"
However this does not generate an error in the ADE violations display. It shows up in the spectre log, but not violations display.
The following check does end up in the ADE violations display
avg_check2 assert mod=nch expr = "(abs(V(g,s)) > 2.0) " level=warning message="Signal Overvoltage too high"
The difference is one is evaluated during the tran simulation and one is evaluated after the sim is over. Is there a setting to allow assertions calculated at the end of the analysis toend up in the ADE violations display?
In reply to MarkSummers:
In reply to aplumb:
I had it set to psf. I changed it to both, but with the same result