System Verilog視頻學習筆記(3)- Language Basic

Language Basic

內容來自啓芯-System Verilog視頻

============================================================== 

目錄結構:

1、System VerilogTestbench code structure

2、System Verilog語法

--------2.1 2-state(0|1)數據類型

--------2.2 4-state(0|1|x|z)數據類型

--------2.3 字符串數據類型

--------2.4 枚舉類型

--------2.5 數據數組

--------2.6 系統函數Randomization

--------2.7 操作符

--------2.8 流程控制

--------2.9 變量作用域

3、總結

 ==============================================================

本章目標:

1、瞭解System Verilogprogram

2、program內聲明變量

3、查看program內的變量等

4、數據流控制實現SystemVerilog驗證

 

1System VerilogTestbench code structure

測試代碼在program塊中,program在頂層harness 文件中。

圖1、代碼結構

關鍵字:

program……endprogram

initial begin …………end

task……endtask

右半圖是左半圖的簡單例子

test是testcase

router_test_top是testbench文件

router是dut文件

router_io是interface文件

將以上模塊進行端口連接,例化interface文件,將interface傳遞給testcase,router內部的信號即可使用test這個testcase作爲激勵。

testcase驅動interface,interface驅動dut,這個結構在上個筆記的testbench架構圖中。

 

2System Verilog語法

圖2、簡單語法

2.1 2-state(0|1)數據類型

以下基本從ppt粘貼而來,比較簡單。

圖3、2-state(0|1)數據類型1

圖4、2-state(0|1)數據類型2


圖5、2-state(0|1)數據類型3

2.2 4-state(0|1|x|z)數據類型

圖6、4-state(0|1|x|z)數據類型1

圖7、4-state(0|1|x|z)數據類型2

2.3 字符串數據類型

圖8、字符串數據類型

2.4 枚舉類型

圖9、枚舉類型

2.5 數據數組

圖10、數據數組——固定數組

圖11、數據數組——動態數組

圖12、數據數組——隊列(類似堆棧)

圖13、隊列例子

圖14、數據數組——聯合數組

數組信號控制foreach

數組操作方法

 

2.6 系統函數Randomization

圖15、Randomization函數

 

2.7 操作符

圖16、操作符

2.8 流程控制

圖17、流程控制

task和function,區別在於task在運行時消耗時間。

function內部調用task,task內部可調用function。

圖18、task參數

2.9 變量作用域

圖19、變量生存時間(變量作用域在模塊內)

Structure結構體:將不同數據類型打包,與C語言相似

SV DPI(Direct Programming Interface):

system verilog 調用C/C++函數,C/C++調用systemverilog函數和task

與C模型連接的簡單接口

 

3、總結

本節視頻講了各種數據類型、操作符、流程控制、系統函數等,這類語法類知識在用的時候可從手冊查找,一旦使用熟練後基本不用查找,以上一看就很明瞭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章