验证基础技巧记录(一)
1.产生激励:
延续verilog的思路,验证的simulator initiator需要在posedge clk后再改变激励,并且至少让其保存至negedge后。下一次改变信号也要等下一次posedge clk;
这是为了模拟实际硬件环境下信号的产生方式,即在时钟沿到来后的一段延时才能完成逻辑运算并驱动信号。准确的保持时间是这次posedge clk后的保持时间后到下一次posedge后的保持事件前这么长的一段时间。
体现在仿真器就是posedge后改变信号,如果需要握手的话就需要握手negedge clk锁存到的接收的dut信号,因为negedge前的信号未必驱动完全,考虑时序这才是稳妥的。
2.采样信号:
为了保证时序吻合,所有和时序有关的wait都应该放在@(negedge clk)之后。以模拟采样锁存的过程。
同上,因为锁存数据可以在时钟下降沿进行,所以可以用这个作为monitor抽取数据的触发条件,并放入数组。
3.清空队列或动态数组的几种方法:
1.delete
2.重新定义;
3.new一个空的;
4.在计算过程中可以通过右侧增加大位宽数来改变位宽;
5.task也可以使用return,这意味着提前结束task;
6.数据类型转换的越界问题(枚举);

浙公网安备 33010602011771号