2016-04-26 65 views
1

全部, 我是VHDL的新手。我有一个工作设计,但是我的模拟一直运行直到我取消模拟。在测试平台中,如何在x个时钟周期后停止模拟?这是否在时钟进程中完成?如何在设定的时钟周期内运行模拟

clk_process :process 
    begin 
    clk <= '0'; 
    wait for clk_period/2; 
    clk <= '1'; 
    wait for clk_period/2; 
end process; 

请和谢谢!

回答

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; 

这(滥用断言),后者的好奇心雅尼克伯杰龙的书实际上是推荐“写测试平台”!

时钟进程与其他任何地方一样好,但是对于模拟控制来说,单独的进程(可能对时钟敏感)可能是稍微更清洁的设计。

+0

我想仿真在1000个时钟周期后停止。你能告诉我如何将VHDL-2008代码集成到时钟进程中吗?这是简单的如果clk> = clk_period * 1000然后std.env.stop;万一; – Craig3832

+0

我已经做了。只需将X设置为1000.请注意,您的评论无效,因为'clk'不是'time'类型。 –