作者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/m.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