Negative setup and Negative hold

P

prem_eda

What is the practical implication of negative setup and negative hold?
How do simulators handle negative timing checks?
 
P

Pieter Hulshoff

prem_eda said:
What is the practical implication of negative setup and negative hold?
How do simulators handle negative timing checks?

Setup and hold together just define the time during which the input signal
should not change in order to get a stable output. Having either a negative
setup or a negative hold (both at the same time is very unlikely:) just
places that stable period before (negative hold) or after (negative setup)
the clock edge i.s.o. around it. I see no reason why a simulator would have
any problems with this.

Regards,

Pieter Hulshoff
 
P

prem_eda

Whenever we perform Timing simulation, the SDF file contains Timing check
tasks (For example $setuphold) constructs which has some negative
values.Normally, the simulator has a negative timing constraint algorithm
to handle the -ve values in the timing check tasks and in some cases I see
that being rounded off to zero.
So,any one you guys have faced this? Why is the simulator doin this?
 
P

Pieter Hulshoff

prem_eda said:
Whenever we perform Timing simulation, the SDF file contains Timing check
tasks (For example $setuphold) constructs which has some negative
values.Normally, the simulator has a negative timing constraint algorithm
to handle the -ve values in the timing check tasks and in some cases I see
that being rounded off to zero.
So,any one you guys have faced this? Why is the simulator doin this?

Hmm, a tad more information would be nice.
1. Which simulator are you running?
2. How much is th negative timing constraint?
3. What is your simulation resolution?

One reason I could think of is that the negative timing constraint is
smaller than your simulation resolution, but perhaps other reasons may pop
up if you can give a few more specifics. You say 'in some cases'; I presume
that means that sometimes it's handled correctly?

Regards,

Pieter Hulshoff
 
P

prem_eda

I am using Modelsim SE version 5.8c on Windows 2000 platform.The simulator
resolution is in ns and the SDF file has a a ps resolution.I do not have
the SDF file with me But I can just quote an example which is something
like this.
$setuphold( posedge s1clk, negedge wr_en1, 180, -74,
notifier,,,ds1clk,dd);
 
P

Pieter Hulshoff

prem_eda said:
I am using Modelsim SE version 5.8c on Windows 2000 platform.The simulator
resolution is in ns and the SDF file has a a ps resolution.I do not have
the SDF file with me But I can just quote an example which is something
like this.
$setuphold( posedge s1clk, negedge wr_en1, 180, -74,
notifier,,,ds1clk,dd);

Are you sure your simulator uses a resolution of 1 ns? If it is, then any
time setting will be chopped down to a number x 1 ns, e.g. 3.9 ns => 3 ns,
1.1 ns => 1 ns, 150 ps => 0 ns. You might want to see what results you get
if you set your simulation resolution to 10 ps or 1 ps.

Regards,

Pieter Hulshoff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top