I am trying to use a concurrent assert statement, but Vivado 2015.2 simulator is not displaying a report message even when the condition is true.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity testbench is
end testbench;
architecture behavioural of testbench is
signal tb_counter : integer := 0;
begin
tb_counter <= tb_counter + 1 after 1 ns;
process(tb_counter)
begin
end process;
assert not(tb_counter mod ((2**20)-1) = 0 and NOW /= 0 ps)
report "maximal length detected at lfsr at the correct time/code - YIPEE!"
severity NOTE;
end behavioural;
This problem has been fixed in Vivado 2015.3. There is an issue in evaluating expression with time during concurrent assertion.
The work-around is to use sequential assert statements and avoid using concurrent asserts.
process(tb_counter)
begin
assert not(tb_counter mod ((2**20)-1) = 0 and NOW /= 0 ps)
report "maximal length detected at lfsr at the correct time/code - YIPEE!"
severity NOTE;
end process;
Answer Number | 问答标题 | 问题版本 | 已解决问题的版本 |
---|---|---|---|
63956 | 2015.x Vivado Simulator - Known Issues | N/A | N/A |