Signal Attribute Issue

C

Calvin

In the following codes:

if (A'delayed(Th)'event and rd1= '1') then
if (rd1'last_event > Th) then
if (BHE_n = '0') then
ASSERT (IO1'LAST_EVENT = 0 ns) or (IO1'LAST_EVENT > Th)
REPORT "DATA HOLD1 FROM ADDRESS CHANGE TIME VIOLATION"
SEVERITY Error;
end if;
end if;

Th = 0 ns, originally. I got error report when A and IO1 changed 1-2 ns
after rd1 = '1'.

To allow more time for A and IO1 to settle, I changed Th to 5 ns.
However I still got the same error report.

What was wrong ?

Thanks,

Calvin
 
A

Alan Fitch

Calvin said:
In the following codes:

if (A'delayed(Th)'event and rd1= '1') then
if (rd1'last_event > Th) then
if (BHE_n = '0') then
ASSERT (IO1'LAST_EVENT = 0 ns) or (IO1'LAST_EVENT > Th)
REPORT "DATA HOLD1 FROM ADDRESS CHANGE TIME VIOLATION"
SEVERITY Error;
end if;
end if;

Th = 0 ns, originally. I got error report when A and IO1 changed 1-2 ns
after rd1 = '1'.

To allow more time for A and IO1 to settle, I changed Th to 5 ns.
However I still got the same error report.

What was wrong ?

I'm not sure I understand the problem, but your report says "data hold1
from address change time violation". So I wonder if you could use a
simpler approach

process
begin
wait on A;
wait for Th;
if rd1 = '1' and BHE_n = '0' then
assert IO1'STABLE(Th)
report "DATA HOLD1 FROM ADDRESS CHANGE TIME VIOLATION";
end process;

I've probably misunderstood what you are doing, but I think the simplest
way to check a hold time is to wait until the hold time is ended and
then look backwards using 'STABLE,

regards
Alan
 
M

Milos

Hi,

If You want to check for HOLD violation, I think that You should use
VitalSetupHoldCheck procedure (part of the IEEE.VITAL_timing package).
For more info on this checkout http://vhdl.org/fmf and see how it is
done.

Best regards,
Milos
 

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,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top