systemverilog验证测试平台编写指南_使用systemverilog编写测试平台

67f7125fcb090c0f093fc7a715efbe62.png

使用Systemverilog编写测试平台

设计大小和复杂性的显著增加对传统的验证方法而言是个重大的挑战。不断增加的模块间交互使得传统的功能验证方法效率低下,并且需要大量的验证时间。

在tape-out之前找到并fix所有的bug是验证的首要目标。 修复bug的成本随着时间的推移呈指数级增长。

24789bb4023cf21fe7474bc1995781d9.png

01

SystemVerilog

1、通过使用复杂的同步和时序机制,可以仿真并发进程。

2、支持面向对象编程,提供必要的抽象级别来开发可重用的验证环境。

3、生成随机约束激励和自我检查,这有助于增加验证效率

并发性允许产生多个并行进程。 一个典型的例子是激励设计的同时检查结果。 这允许测试平台可以通过修改激励实时地对结果做出反应。

并发是通过fork-join结构实现的,该结构会产生多个并行进程。

对于进程间通信, mailboxes可以将消息发送到任何其他进程。

24789bb4023cf21fe7474bc1995781d9.png

02

受约束的随机激励

随机激励确保了corner-case得到了充分的验证。 这是确保验证时间和精力花在最有效方面的方式。

SystemVerilog提供了一种非常强大的随机激励生成机制。 它基于对象的随机化,即通过调用预定义的randomize方法。

约束进一步增强了随机化约束,定义其中随机属性的边界,还可以添加weights,以便更频繁地产生某些激励。

24789bb4023cf21fe7474bc1995781d9.png

03

Clocking模块

Clocking模块封装了同步时序的细节。 输入输出信号仅在时钟边沿被驱动和采样。 Clocking模块清晰地分离多时钟设计中的时钟域。

由于芯片的复杂性,系统验证的完备性是一个关键问题。 功能覆盖率补充了传统的代码覆盖率。 SystemVerilog提供内置功能覆盖率分析功能,满足了这一需求。

945938e55af030010e38e97742b492fe.png

END

9667d073d68c006856f806ab06ce60c1.png 96a781cef7a95ef837d829efec2a3455.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值