System Verilog任務 函式

2021-10-06 21:20:59 字數 865 閱讀 3912

在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...