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 文件中。

System Verilog视频学习笔记(3)- Language Basic_第1张图片

图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语法

System Verilog视频学习笔记(3)- Language Basic_第2张图片

图2、简单语法

2.1 2-state(0|1)数据类型

以下基本从ppt粘贴而来,比较简单。

System Verilog视频学习笔记(3)- Language Basic_第3张图片

图3、2-state(0|1)数据类型1

System Verilog视频学习笔记(3)- Language Basic_第4张图片

图4、2-state(0|1)数据类型2

System Verilog视频学习笔记(3)- Language Basic_第5张图片

图5、2-state(0|1)数据类型3

2.2 4-state(0|1|x|z)数据类型

System Verilog视频学习笔记(3)- Language Basic_第6张图片

图6、4-state(0|1|x|z)数据类型1

System Verilog视频学习笔记(3)- Language Basic_第7张图片

图7、4-state(0|1|x|z)数据类型2

2.3 字符串数据类型

System Verilog视频学习笔记(3)- Language Basic_第8张图片

图8、字符串数据类型

2.4 枚举类型

System Verilog视频学习笔记(3)- Language Basic_第9张图片

图9、枚举类型

2.5 数据数组

System Verilog视频学习笔记(3)- Language Basic_第10张图片

图10、数据数组——固定数组

System Verilog视频学习笔记(3)- Language Basic_第11张图片

图11、数据数组——动态数组

System Verilog视频学习笔记(3)- Language Basic_第12张图片

图12、数据数组——队列(类似堆栈)

System Verilog视频学习笔记(3)- Language Basic_第13张图片

图13、队列例子

System Verilog视频学习笔记(3)- Language Basic_第14张图片

图14、数据数组——联合数组

数组信号控制foreach

数组操作方法

 

2.6 系统函数Randomization

System Verilog视频学习笔记(3)- Language Basic_第15张图片

图15、Randomization函数

 

2.7 操作符

System Verilog视频学习笔记(3)- Language Basic_第16张图片System Verilog视频学习笔记(3)- Language Basic_第17张图片

图16、操作符

2.8 流程控制

System Verilog视频学习笔记(3)- Language Basic_第18张图片

图17、流程控制

task和function,区别在于task在运行时消耗时间。

function内部调用task,task内部可调用function。

System Verilog视频学习笔记(3)- Language Basic_第19张图片

图18、task参数

2.9 变量作用域

System Verilog视频学习笔记(3)- Language Basic_第20张图片

图19、变量生存时间(变量作用域在模块内)

Structure结构体:将不同数据类型打包,与C语言相似

SV DPI(Direct Programming Interface):

system verilog 调用C/C++函数,C/C++调用systemverilog函数和task

与C模型连接的简单接口

 

3、总结

本节视频讲了各种数据类型、操作符、流程控制、系统函数等,这类语法类知识在用的时候可从手册查找,一旦使用熟练后基本不用查找,以上一看就很明了。

你可能感兴趣的:(System,Verilog)