1、過程語句
for語句、do-while語句、while語句
1initial
begin
2string
cmd;
3int
file,c;
4 $display("
**********= continue break **********");
5//bit [127:0] cmd;
6 file=$fopen("
command.txt
","r");
7while(!$feof(file)) begin
8 c = $fscanf(file,"%s"
,cmd);
9case
(cmd)10"
continue":
11begin
12continue;
13end
1415
"done":
16begin
17 $display("
done row");
18break;
19end
2021
default:22
begin
23$display(cmd);
24end
25endcase
26end
27$fclose(file);
28end
2、任務、函式以及void函式
verilog:任務可以耗時,函式不能;任務可以呼叫函式,函式不能呼叫任務;函式必須有返回值,且返回值必須被使用
systemverilog:允許函式呼叫任務,不消耗時間的sv任務應該定義成void函式
(1)使用ref和const傳遞陣列
好處:ref宣告在進行引數傳遞時無需複製到堆疊區,const宣告則使得子程式不能修改陣列的值,避免誤修改。ref的第2個好處是在任務裡可以修改變數而且修改結果對呼叫它的函式隨時可見。
這為併發執行執行緒之間的資訊傳遞提供了機會。
1//ref const
2function
automatic void print_checksum(const ref bit [31:0
] a);
3 bit [31:0
] checksum;
4for(int i=0;ibegin
5 checksum^=a[i];
6end
7 $display("
the array checksum is %b
",checksum);89
endfunction
1011 bit [31:0
] a;
12initial
begin
13 a = new[3
];14 a[0] = 32
'd0;
15 a[1] = 32
'd1;
16 a[2] = 32
'd3;
17//
bit [31:0] a[2] = ','};
18 $display("
********** automatic ref const **********=
"); //
# the array checksum is 00000000000000000000000000000010
19print_checksum(a);
20end
(2)從函式中返回乙個陣列
1//從函式中返回乙個陣列
2function
automatic void init(ref int f[5], input
intstart);
3foreach(f[i])
4 f[i] = i +start;
5endfunction67
int fa[5];8
initial
begin
9 init(fa,5
);10
foreach(fa[i])
11 $display("
fa[%0d]=%0d
",i,fa[i]);
12end
Python with語句和過程抽取思想
python中的with語句使用於對資源進行訪問的場合,保證不管處理過程中是否發生錯誤或者異常都會執行規定的 exit 清理 操作,釋放被訪問的資源,比如有檔案讀寫後自動關閉 執行緒中鎖的自動獲取和釋放等。與python中with語句有關的概念有 上下文管理協議 上下文管理器 執行時上下文 上下文表...
EF Core 執行SQL語句和儲存過程
無論orm有多麼強大,總會出現一些特殊的情況,它無法滿足我們的要求。在這篇文章中,我們介紹幾種執行sql的方法。在具體內容開始之前,我們先簡單說明一下要使用的表結構。public class category public string categoryname 在category定義了兩個字段 c...
03 IIC裝置和驅動的匹配過程分析
2.裝置端 上一節分析了 平台裝置和驅動的匹配過程,即 probe 函式的自動呼叫過程,本節來分析 iic 匯流排上裝置和驅動的匹配過程。struct i2c driver struct i2c device id mpu6050 id struct i2c driver mpu6050 drive...