原创 Testbench——关于变量的定义

2009-3-3 19:07 6877 11 10 分类: FPGA/CPLD

Testbench——关于变量的定义:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


       在编写testbench时,关于变量的定义常犯的错误就是将一个定义的全局变量应用到了两个不同的always块中(如例1所示),那么由于这两个always块独立并行的工作机制,很可能会导致意想不到的后果。


1


integer i;


 


always  begin


for (i = 0; i < 32; i = i + 1) begin


              ………


end


end


 


always  begin


for (i = 0; i < 32; i = i + 1) begin


              ……


end


end


 


       实际上,在verilog中(编写testbench时),如果在begin end之间定义了always的块名,那么你可以如例2一样申明变量。这样两个always块里的变量i就互不相关,也就不会产生不可预料的结果了。


2


always


begin:  block_l


integer i;


for (i = 0; i < 32; i = i + 1) begin


……


end


end


 


always


begin:  block_2


integer i;


for (i = 15; i >= 0; i = i - 1) begin


……


end


end


 


       除此以外,在verilog中的functiontask 支持类似上面的局部变量定义。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条