在system verilog中,begin end是可選的
task mytask1 (output logic [ ] x,
input logic y);
...endtask
還可以使用ref型別的引數對變數進行引用,類似於c中的指標,但ref不允許進行陣列引數的傳遞
還可以使用預設引數
增加了return語句
方法一:定義陣列型別,在函式宣告中使用該型別
typedef int fixed_array5[5];
fixed_array5 f5;
function fixed_array5 init(int start);
foreach(init[i])
init[i] = i + start;
endfunction
init函式建立了乙個陣列,該陣列的值被拷貝到陣列f5中,但如果陣列很大,會引起效能上的問題
方法2:通過引用來進行陣列引數的傳遞,以ref引數的形式將陣列傳遞到函式中
function void init(ref int f[5], input int start);
foreach (f[i])
f[i] = i + start;
endfunction
$time 返回根據模組時間要求進行捨入的整數
$realtime 返回帶小數部分的完整實數
// 時間標度(9-ns,12-ps),小數點後的資料精度,時間值之後的字尾字串,顯示最小寬度
$timeformat(-9, 3, "ns", 8)
system Verilog 跳轉操作
在verilog中,使用disable宣告來從執行流程中的某一點跳轉到另一點。特別地,disable宣告使執行流程跳轉到標註名字的宣告組末尾,或者乙個任務的末尾。verilog中的disable命令用法有很多,下面是乙個簡單的例子,解釋了disable的作用範圍 1 find first bit s...
SystemVerilog語言簡介 二
6.使用者定義的型別 verilog不允許使用者定義新的資料型別。systemverilog通過使用typedef提供了一種方法來定義新的資料型別,這一點與c語言類似。使用者定義的型別可以與其它資料型別一樣地使用在宣告當中。例如 typedef unsigned int uint uint a,b ...
SystemVerilog語言簡介 四
23.動態過程 verilog 通過使用 fork jion 提供了一種靜態的併發過程。每乙個分支都是乙個分離的 並行的過程。fork jion 中任何語句的執行必須在組內的每乙個過程完成後才會執行。例如 initial begin fork send packet task 1,255,0 sen...