大家习惯使用$display来打印出一些debug/simulation information。我个人比较推荐使用$strobe。
区别:
example:
initial begin
#10 a = 0;
$display(“a is %d \n”,a);
$strobe(“Another a is %d ”,a);
a=1;
end
then,打印出来的信息:
a is 0; // the first value of a by $display
Another a is 1; // the final value of a by $strobe
实际上,在这种blocking assign block种,$display是按顺序执行的方式来打印,而$strobe却是等待当前时刻的所有操作都执行完毕后再进行打印。
在behaviour model中,经常会遇到这种blocking assign,此时采用$strobe比较好。
当然,在严格按照规范编写的代码里,是不应该有以上这种例子的代码,个人在sequence block喜欢使用non-blocking assign 的方式。拥有规范的代码编写习惯,能够事半功倍,避免一些不必要的问题。
P.S 也许应该抽时间写写coding style。
ilove314_323192455 2009-8-25 22:04