作者CCMAKE (夏夜晚风)
看板Electronics
标题[问题] 请问testbench中关於@的语法
时间Mon Feb 15 22:59:00 2016
各位大大好
想请教一下testbench中的关於@语法
像是下面的例子(节录自Chris Spear的 SystemVerilog for Verification)
int new_address1, new_address2;
bit clk;
initial begin
fork
my_task(21, new_address1);
my_task(20, new_address2);
join
$display("new_address1 = %0d", new_address1);
$display("new_address2 = %0d", new_address2);
end
initial
forever #50 clk = !clk;
task my_task(input int address, output int new_address);
@(clk)
new_address = address;
endtask
其中task里面的 @(clk)
是代表clk变为1的时候才做下面的叙述吗?
我在书上看到的都只有写到@(posedge xxx) 或是 @(negedge xxx)
不然就是要先定义一个event 之後才有@的trigger条件
但是在这个例子中
既没有posedge/negedge,也没有event
为什麽可以直接写@(clk)
还是verilog里面就有规定这种写法呢?
甚麽网站或是书会有写吗?
(我看了ASIC WORLD里面的 tutorial好像没有....)
感谢回答!! ^_^
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.86.131
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1455548342.A.FD8.html
1F:推 UBL: 表示有变动(pos or neg edge)就会触发 02/15 23:35
2F:→ CCMAKE: Hi U大 感谢回答^^ 请问这是verilog语法吗? 02/16 00:15
3F:→ CCMAKE: 另外这样的写法 跟systemverilog里的event一样吗? 02/16 00:15