Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

MAX delay in HSPICE

Status
Not open for further replies.

taranom1

Junior Member level 1
Joined
Jan 19, 2011
Messages
18
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,415
Hi,

I want to measure Max delay of a full adder,So I use .measure for compare the Max of inputs to outputs Rise and Fall times in group of two, but there is negative value in several rise or fall times!

Code:
.measure tran delay_ar_C  TRIG  v(A)   val='Supply*0.5' td=5ns cross=1   
                                + TARG  v(Cout)   val='Supply*0.5' td=5ns cross=1 
.
.
.
.measure tran td_m1  param='max(delay_ar_C ,delay_bf_C)'
.measure tran td_m2  param='max(delay_cinf_C,delay_cinr_C)'
.
.
.

.measure tran td_m12  param='max(td_m1,td_m2)'
.
.
.
What's wrong?
 

Did you check if always the correct crossing is used?
 

Could you please explain more.I don't have electronic base!
in another code I use fall=1 ... rise =1 insead of cross , but it cause negetive results too.

I have another question too: in test bed of full adder we should get pulse after first output buffer or before that?
 

Could you please explain more.
in another code I use fall=1 ... rise =1 insead of cross , but it cause negetive results too.

In simulation output you should check if the target edge is really after the trigger edge.

I have another question too: in test bed of full adder we should get pulse after first output buffer or before that?

Depends on application: if in the application the output buffer is used, get the pulse after it.
 
Hi again,

I examined several times but I didn't know how can I set trigger befor target:-|. Is it related to Delay or rise and fall time of input pulses?
this is part of my input pulses and measure delay:

VA A Gnd PULSE (0 vdd 2ns 100ps 100ps 5ns 10ns)
.
.
.
.measure tran delay_ar_C TRIG v(A) val='Supply*0.5' td=1ns rise=3
+ TARG v(Cout) val='Supply*0.5' fall=3

Could you please explain whats wrong?
 

I think for debug you'd be better off picking off the time
of crossing, individually, printing them each (to enable
sanity checking) along with the resultant delay() value.
There may be spurious transitions which make the Nth
transition you're looking for, jump cycles or something.
You could also plot the waveforms in question to inspect.

Getting fancy with functions is something you should do
when things are working repeatably well, not at the
outset.

You could perhaps take advantage of the clip() function
to get rid of portions of the waveforms you are not
interested in, this could filter out the aforementioned
spurious activity and make the specification of which
transition, more robust to that.
 

Thank you dick_freebird!
I tried to earn delay of all inpus to outputs from cosmosScope/wave viewer delay func and max of them is very near to the result in .lis file (in spite of negative values),just with 0.2 pico difference.

Could you plz Write an example about clip func, I Couldnot find that's difinition in manual or internet!

Meantime I found that just SUM output Fall times are negative and others are Positive! wave.png
 

Can I use absolute value for Rise and Fall times?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top