您的位置:首页 > 其它

systemVerilog语法(一)

2017-02-11 00:42 162 查看
一、验证导论:

作为一个验证工程师,最重要的原则是“程序漏洞利大于弊”

设计流程:1)阅读硬件规范,解析其中的自然语言表述。2)使用RTL代码之类的机器语言创建相应的逻辑。

验证流程:1)阅读硬件规范,制定验证计划。2)创建测试来检查RTL代码是否实现所有特性。

单一的BFM测试平台:


多个BFM测试平台:


二、数据类型:

1、Logic:任何使用wire或者reg的信号在测试平台是都可使用logic。(注意:对于双向总线的信号不能用logic,只能用wire)

2、双状态数据类型:有利于提高仿真器的性能并减少内存。最简单的双状态类型是bit,无符号的。另外4种带符号位的双状态数据类型:byte、shortint、int、longint。

例:


扩展:对四态信号的检查:($isunknown)

例:对iport信号的检测



3、定宽数组:例:



如果越界读取数据,则返回元素类型的缺省值,对于logic型的将返回X,对于双状态的则返回0。线网未驱动的输出Z。

4、常量数据:例:



三、数组操作

1、操作数组的最常见的方式是使用for或foreach循环。Foreach会自动遍历数组中的元素。

例:


2、基本数组操作-复制和比较

例:


3、合并数组

例:


四、动态数组

动态数组在声明的时候使用空的下标[]。使用时需调用new[]操作符来分配空间。

例:


五、队列

队列的声明使用带有美元符号的下标:[]。队列元素的编号从0到。

例:


六、数组的排序

例:

七:使用typedef创建新的类型

例:下图的例子可以适应不同的比特位宽。



八、枚举类型

由于宏的范围太大,故出现枚举类型,只能用于本模块中。

例:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  systemveri 验证