如何在一定量的时钟周期内运行模拟

时间:2016-04-26 15:22:13

标签: vhdl simulation clock cycle

对所有人来说, 我是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

请,谢谢!

1 个答案:

答案 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;!

中推荐的。

时钟过程和它们一样好,但是对于模拟控制来说,一个单独的过程(可能对时钟很敏感)可能会稍微简洁一些。