[問題] 請問testbench中關於@的語法

看板Electronics作者 (夏夜晚風)時間10年前 (2016/02/15 22:59), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
各位大大好 想請教一下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://www.ptt.cc/bbs/Electronics/M.1455548342.A.FD8.html

02/15 23:35, , 1F
表示有變動(pos or neg edge)就會觸發
02/15 23:35, 1F

02/16 00:15, , 2F
Hi U大 感謝回答^^ 請問這是verilog語法嗎?
02/16 00:15, 2F

02/16 00:15, , 3F
另外這樣的寫法 跟systemverilog裡的event一樣嗎?
02/16 00:15, 3F
文章代碼(AID): #1MmUUs_O (Electronics)