对所有人来说, 我是VHDL的新手。我有一个工作设计,但我的模拟一直在运行,直到我取消模拟。在测试台中,如何在x个时钟周期后停止模拟?这是在时钟过程中完成的吗?
SELECT ORD.ID
,ORD.NAME
,ORD.DATE
,ORD_HIST.VALUE
FROM ORD
CROSS APPLY (
SELECT TOP 1 ORD_HISTORY.VALUE
FROM ORD_HISTORY
WHERE ORD.ID = ORD_HISTORY.ID
AND ORD.DATE <= ORD_HISTORY.DATE
ORDER BY ORD_HISTORY.DATE DESC
) ORD_HIST
请,谢谢!
答案 0 :(得分:0)
在VHDL-2008中:
if now >= clk_period * x then
std.env.stop;
end if;
在早期版本中(尽管在2008年仍然有效!):
assert now < clk_period * x report
"Stopping simulation : this is not a failure!" severity failure;
后者的好奇心(滥用断言)实际上是在Janick Bergeron的书&#34;写测试台&#34;!
中推荐的。时钟过程和它们一样好,但是对于模拟控制来说,一个单独的过程(可能对时钟很敏感)可能会稍微简洁一些。