1
SystemVerilog
中的随机化激励
神州龙芯集成电路设计公司
杨鑫 徐伟俊 陈先勇 夏宇闻
[摘要]:随着集成电路的验证工作日渐复杂,对验证的可靠性提出了越来越高的要求。传
统的验证工作中也使用随机化激励以便减轻测试代码编写的工作量,以提升验证的可靠性。
在
SystemVerilog
更强调了利用随机化激励函数以提高验证代码的效率和验证可靠性的重
要性。本文以
VMM
库为例,阐述了如何在
SystemVerilog
中使用随机化函数来编写高效率
的测试代码,重点介绍了可重用验证函数库的使用方法,以帮助读者理解如何使用
SystemVerilog
高效率地完成复杂的设计验证。
关键字:VMM
SystemVerilog
激励
随机化
1.
前言
随着电路工艺设计技术的不断发展,
集成电路的逻辑设计变得越来越复杂,
随之对验证工作
提出了更高的要求。由于投片(
tip-out
)的费用较高,很有必要在投片前对芯片设计进行全
面、可信的验证,以尽量减少“设计——测试——投片——调试——发现
Bug
修改设计”
这一流程的迭代次数。
因此在集成电路芯片的设计中,
尤其是复杂逻辑设计中,
对测试工作
的效率和可靠性提出了更高的要求。
在传统的验证方法中,
也有将激励随机化的方法,
这样可以用较少的测试代码生成较多、
较
全面的测试激励。
这些方法减少了人为因素的干扰,
能有效地提高验证的工作效率和可靠性。
在
SystemVerilog
中,强调在验证中使用可重用的验证
IP
,包括如何生成随机化激励。对于
如何尽可能地使用已有的验证
IP
,以及编写符合标准的可重用验证组件,
SystemVerilog
提
供了一整套的工作机制,这使得符合规范的随机化激励组件能够很好地在多个设计间复用,
这更进一步地提高了验证工作的效率和可靠性。
2.
在验证中使用随机化激励
在验证中,可以依照
DUT
(
Design Under Test
,被测设计,以下简称
DUT
)的验证要求来
设计定向的激励,并
对照
DUT
的预期响应,
用人工的方法
来判断设计是否正确。但也可以
使用随机化激励来驱动
DUT
,并使用特定的机制来完成响应的自检测。
利用随机化来产生激励可以看作一种近似的自动化激励产生,因为随机化足够长的时间后,
所生成的激励可以覆盖绝大部分的待验证特性。
但是纯粹的随机化激励效率并不高,
因为其
中正确的,
或是有意义的激励只占很少一部分。
必须使用一定的约束条件限制随机化的范围,
从而产生大量随机而有意义的激励。