SystemVerilog Assertion,用于在active_clk为高电平时检查是否提供了时钟

时间:2015-11-21 14:41:16

标签: assert system-verilog assertions system-verilog-assertions

在我正在使DUT通信的设计规范中,要求在active_clk信号为高电平时产生字时钟和位时钟。我在使用SVA方面经验不多,所以希望有更多经验的人可以指出我正确的方向,或者更好,提供解决方案。

1 个答案:

答案 0 :(得分:1)

有一个始终开启的时钟,您可以使用它来预测某些固定/计算持续时间内其他2个时钟的上升/下降沿。类似下面的代码:

 bit aon_clk;
 always #1 aon_clk = ~aon_clk;

 property clk_chk;
   @(aon_clk)
   // Within say 25 Always ON Clks, you should expect a rise/fall of bit_clk
   active_clk |=> ##[0:25] $rose(bit_clk) && active_clk ##[0:25] $fell(bit_clk) && active_clk;
 endproperty

 assert property (clk_chk) else $display($time," Clks not generated");