吴明

systemverilog小贴士

1
阅读(4766)

使用sv做设计一年多了,本文给出一些verilog没有的,systemverilog新引入的,实用的功能,这些功能都是我经常用到的。

1、绝对路径引用

可以在任意模块内,引用任意模块里面的变量。通常verilog在上级模块通过点索引可以引用子模块内的变量,但是反过来就不行,但是通过使用$root,可以做到。我最近在做HLS(其实已经不止综合synthesis了)techbench功能时,就必须要用$root。

root.png


2、断言 assert,$error,$warning

assert,经典断言

$error,$warning,可以打印具体的信息,具体到哪一个模块哪一行

assert.png


3、全局变量

在module外定义的变量都是全局变量,可以在任意文件任意模块内引用,但是为了避免名字重复,通常把它们放到一个package里面

global.png

4、延时

带单位的延时真的很好用

time.png


5、枚举

枚举变量用于状态机,这样仿真看波形的时候,状态机变量就不是数字了,而是文字。

state.png

6、字符型

用字符型做parameter,比01直观多了

string.png

7、随机生成函数

radom.png

8、取对数

经常用于parameter dsize,注意最后值是做ceil,整数输出的$clog2(60) = 7

log2.png


Baidu
map