AR# 64138

|

2015.2: Vivado simulator not honoring concurrent assert statement when there is time expression (NOW)

描述

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
AR# 64138
日期 01/06/2016
状态 Active
Type 综合文章
器件
Tools More Less
People Also Viewed