systemVerilog语法(一)

一、验证导论:
作为一个验证工程师,最重要的原则是“程序漏洞利大于弊”
设计流程:1)阅读硬件规范,解析其中的自然语言表述。2)使用RTL代码之类的机器语言创建相应的逻辑。
验证流程:1)阅读硬件规范,制定验证计划。2)创建测试来检查RTL代码是否实现所有特性。
单一的BFM测试平台:systemVerilog语法(一)_第1张图片
多个BFM测试平台:systemVerilog语法(一)_第2张图片

二、数据类型:
1、Logic:任何使用wire或者reg的信号在测试平台是都可使用logic。(注意:对于双向总线的信号不能用logic,只能用wire)
2、双状态数据类型:有利于提高仿真器的性能并减少内存。最简单的双状态类型是bit,无符号的。另外4种带符号位的双状态数据类型:byte、shortint、int、longint。
例: systemVerilog语法(一)_第3张图片
扩展:对四态信号的检查:($isunknown)
例:对iport信号的检测
systemVerilog语法(一)_第4张图片
3、定宽数组:例:
systemVerilog语法(一)_第5张图片

如果越界读取数据,则返回元素类型的缺省值,对于logic型的将返回X,对于双状态的则返回0。线网未驱动的输出Z。
4、常量数据:例:
systemVerilog语法(一)_第6张图片

三、数组操作
1、操作数组的最常见的方式是使用for或foreach循环。Foreach会自动遍历数组中的元素。
例: systemVerilog语法(一)_第7张图片
2、基本数组操作-复制和比较
例:systemVerilog语法(一)_第8张图片

3、合并数组
例:systemVerilog语法(一)_第9张图片
四、动态数组
动态数组在声明的时候使用空的下标[]。使用时需调用new[]操作符来分配空间。
例: systemVerilog语法(一)_第10张图片

五、队列
队列的声明使用带有美元符号的下标:[ ]0
例: systemVerilog语法(一)_第11张图片

六、数组的排序
例: systemVerilog语法(一)_第12张图片
七:使用typedef创建新的类型
例:下图的例子可以适应不同的比特位宽。
systemVerilog语法(一)_第13张图片
八、枚举类型
由于宏的范围太大,故出现枚举类型,只能用于本模块中。
例: systemVerilog语法(一)_第14张图片

你可能感兴趣的:(systemverilog语法,systemveri,验证)