SystemVerilog用于设计与验证,有哪些好处?

作者:Duoqiang Liu,来源:FPGA算法工程师

作为硅片上的舞者,人类科技发展的灵魂工程师,我们在IC设计或者FPGA开发过程中,通过Verilog或SystemVerilog硬件描述语言,将真实世界中的事件转化为抽象的逻辑语言,通过数字电路表达我们对这个世界的理解。

40年来,Verilog DHL依然是IC工程师们的首选和最爱,其语法与C语言有很多相似之处,使得工程师们可以更多关注设计本身,而不必投入更多的精力去学习语法。

1.png

随着集成电路的设计规模日益扩大,如今广泛应用于无线通信、航空航天、智能驾驶等领域,面对日益激烈的市场竞争,这也使得产品的研发周期被极度压缩。从2年发布一款产品到1年发布产品,甚至时间可能更短。

20年前的行业推动者便意识到,提高芯片的设计和验证效率,将更有利于产品的研发。SystemVerilog作为Verilog的增强版就这样被纳入IEEE标准,成为如今众多IC设计和验证工程师的常用语言。

2.png

SystemVerilog能够兼容Verilog,并且引入了interface、package、assertion、classes和OOP等,为芯片的设计和验证带来便利。

3.png


《SystemVerilog For Design》和《SystemVerilog for Verification》两本书,广泛地放于全世界的芯片工程师身边,成为了日常工作中的工具书。

《SystemVerilog For Design》一书的思维导图如下:

4.png


在工作学习中,我们经常需要完成某个项目的设计和验证,直至最终交付定型。在设计时,SystemVerilog可在module设计中带来好的体验,尤其是对于全局性的接口和参数定义,此外在多维信号变量定义和使用时,也比Verilog方便。

例如:我们定义一个RAM的interface,可以参数化调用。

5.png

另外一个常用的是枚举(enum),尤其是在状态机的定义中。

6.png

对于仿真或者验证,《SystemVerilog for Verification》一书也是芯片工程师经常参考学习的资料。其思维导图如下:

7.png

尤其对于验证工程师而言,需要构建完备的测试用例进行随机化测试,并以代码覆盖率、功能覆盖率和断言覆盖率来衡量验证的完成度,将潜在的bug找出来进行修改,确保设计的正确性。

8.png


FPGA虽然不用像IC那样做十分完备的验证,但在仿真过程中,随机化和边界覆盖依然十分重要,可以尽可能减少调试的时间。

在如今给FPGA或者IC设计中,一些高级语言正在被使用,能够从一定程度上减轻工程师的工作量,并提高执行的效率,但也比依赖开发环境和工具,工具最终依然需要将代码转换为Verilog或者SystemVerilog再进行编译。

在研发周期中,真正coding的时间仅占1/3,更多的时间花在设计和调试中。

最新文章

最新文章