我为一家半导体制造商工作。我们经常尝试测试我们的设计,以确保我们在部件上运行的序列正确连接原理图上的两个点,例如signal_a和signal_b。这两个信号通常具有多个传输门,必须将其打开以连接两个信号。为了检查这是否正确发生,我们通常会通过原理图和模拟来检查所有传递门是否都已正确打开。似乎Verilog已经有一个内置命令来检查这个。例如类似于:
@triggering_signal
begin
connected=check_connection(signal_a,signal_b)
end
如果已连接,connected将设置为1,如果不连接,则设置为0。如果有任何人可以指出我正确的方向,如果这样的事情存在,我将不胜感激。注意我想在代码中放置一个强制信号来切换signal_a并查看它是否显示在signal_b上使用计数器,但这不适用于我需要的所有情况,因为signal_a处于任何其他状态而不是1关闭模具。
答案 0 :(得分:0)
您可以尝试使用序列来测试SIG断言,即signal_a值始终与signal_b相同。
assert (signal_a == signal_b) else $error("It's gone wrong");