I'm using Quartus to compile a DFLIPFLOP that i had created originally for Modelsim Altera, on the Modelsim it compiles great with no error on Quartus II i get the following error:
Error: VHDL Case Statement or If Statement error at DFLIPFLOP.vhd(22): can't synthesize condition that contains an isolated 'EVENT predefined attribute
below is the snippet of the code, Quartus seems not to like,
begin
process(D, CK)
variable LastEventOnD, LastEventonCK: TIME;
begin
if (D'event) then
assert (NOW = 0 ns) or (NOW - LastEventOnCK) >= HOLD_TIME
report "Hold time to short"
severity FAILURE;
LastEventOnD := NOW;
end if;
if ( rising_edge(CK) ) then
assert (NOW = 0 ns) or (NOW - LastEventonD) >= SETUP_TIME
report "SETUP time to short"
severity FAILURE;
LastEventOnCK := NOW;
end if;
if rising_edge(CK) then
Q <= D;
NOTQ <= not D;
end if;
end process;
it I were to rem the first IF statement if compiles just fine and i get the same results in my waveforms as the ones in Modelsim. Yet, i want to know why do i get this error, please if someone knows can they help me.
Error: VHDL Case Statement or If Statement error at DFLIPFLOP.vhd(22): can't synthesize condition that contains an isolated 'EVENT predefined attribute
below is the snippet of the code, Quartus seems not to like,
begin
process(D, CK)
variable LastEventOnD, LastEventonCK: TIME;
begin
if (D'event) then
assert (NOW = 0 ns) or (NOW - LastEventOnCK) >= HOLD_TIME
report "Hold time to short"
severity FAILURE;
LastEventOnD := NOW;
end if;
if ( rising_edge(CK) ) then
assert (NOW = 0 ns) or (NOW - LastEventonD) >= SETUP_TIME
report "SETUP time to short"
severity FAILURE;
LastEventOnCK := NOW;
end if;
if rising_edge(CK) then
Q <= D;
NOTQ <= not D;
end if;
end process;
it I were to rem the first IF statement if compiles just fine and i get the same results in my waveforms as the ones in Modelsim. Yet, i want to know why do i get this error, please if someone knows can they help me.