1简介
SystemVerilog简称为SV语言,它建立在Verilog语言的基础上,是 IEEE 1364 Verilog-2001 标准的扩展增强,兼容Verilog 2001,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来。System Verilog是Verilog语言的拓展和延伸,其中一些扩展用来描述电路行为,这部分是可综合的;另一部分用于testbench的编写以及更高层的系统建模,是不可综合的。在设计中现在比较常见的是用verilog的可综合子集进行电路描述,而SV只是用于UVM验证。由于SV标准中没有明显定义哪些子集是可综合的,而且由于现在综合工具支持的不同,往往让人忽略了SV中的可综合子集相比Verilog具有更高效、更有效率、更少的代码描述电路行为的能力。本文总结分享一些芯片设计中一些常用的SV语法结构,文中所描述的都是现在综合工具支持的。
2
面壁者逻辑——logic 数据类型
也许大家开始学Verilog都遇到过wire、reg数据类型的困扰,哪些地方需要用reg,哪些地方需要用wire,在写test_bench时又要区分wire、reg类型。即使现在你对这个用法一清二楚了,写代码时也往往需要特别注意,这个用错了工具可能会给你报出来,但改来改去也是费心费力的,而且wire与reg 定义时让代码也不是特别整洁(因为wire、reg不一样长呀!!)。现在有SV,你可以发现在过去verilog中用reg型或是wire型的地方基本上都可以用logic型来代替,实际上logic是对reg数据类型的改进,使得它除了作为一个变量之外,还可以被连续赋值