systemverilog小贴士
1赞
发表于 2018/1/21 18:37:34
阅读(4766)
使用sv做设计一年多了,本文给出一些verilog没有的,systemverilog新引入的,实用的功能,这些功能都是我经常用到的。
1、绝对路径引用
可以在任意模块内,引用任意模块里面的变量。通常verilog在上级模块通过点索引可以引用子模块内的变量,但是反过来就不行,但是通过使用$root,可以做到。我最近在做HLS(其实已经不止综合synthesis了)techbench功能时,就必须要用$root。
2、断言 assert,$error,$warning
assert,经典断言
$error,$warning,可以打印具体的信息,具体到哪一个模块哪一行
3、全局变量
在module外定义的变量都是全局变量,可以在任意文件任意模块内引用,但是为了避免名字重复,通常把它们放到一个package里面
4、延时
带单位的延时真的很好用
5、枚举
枚举变量用于状态机,这样仿真看波形的时候,状态机变量就不是数字了,而是文字。
6、字符型
用字符型做parameter,比01直观多了
7、随机生成函数
8、取对数
经常用于parameter dsize,注意最后值是做ceil,整数输出的$clog2(60) = 7