通过简单的保存-恢复策略避免UVM VIP的冗余仿真周期

在许多验证环境中,我们在不同的测试用例中重复使用相同的配置周期。这些周期可能涉及从不同的配置和状态寄存器写入和读取、加载程序存储器和其他类似任务,以为其目标激励设置dut。在许多此类环境中,这些配置周期所花费的时间非常长。此外,由于验证工程师必须为不同的测试用例运行同一组经过验证的配置周期,因此存在大量冗余,从而导致生产力下降。对于具有多个接口的复杂验证环境尤其如此,这些接口需要配置不同的组件。
verilog 提供了在特定时间点保存设计及其测试平台状态的选项。我们可以将模拟恢复到相同的状态,然后从那里继续。这可以通过从verilog代码添加适当的内置系统调用来完成。vcs 提供与统一命令行解释器 (ucli) 相同的选项。
但是,我们仅从保存的状态恢复仿真是不够的。对于不同的模拟,我们可能希望对dut应用不同的随机激励。在 uvm 的上下文中,最好从保存的状态运行不同的序列,如下所示:
在上面的例子中,除了最后一步在很大程度上变化之外,其余步骤一旦建立就不需要迭代。
在这里,我们将解释如何使用标准uvm安装中可用的简单现有ubus示例来实现上述策略。在环境中进行了简单的更改,以显示引入此附加功能需要执行的操作。在现有的测试集中,它们中的两个,“test_read_modify_write”和“test_r8_w8_r4_w4”,仅在执行的主序列上有所不同:“read_modify_write_seq”和“r8_w8_r4_w4_seq”。
假设我们有一个场景,我们希望在reset_phase完成后保存模拟,然后在恢复的模拟reset_phase后开始执行不同的序列。为了通过ubus测试演示类似的场景,我们在基本测试的reset_phase中引入了延迟(在实际测试中,这可能对应于pll锁,ddr初始化,基本dut配置)。
以下代码片段显示了如何修改现有测试,以引入在不同“还原”模拟中运行不同测试的功能:
在这里,我们进行了两个主要修改:
将阶段default_sequence的设置从构建阶段转移到主阶段的开始。
从命令行获取序列的名称作为参数,并在代码中适当地处理字符串,以在相关排序器上执行序列。
如您所见,更改保持在最低限度。有了这个,上面的通用框架就可以进行了仿真。在 vcs 中,启用保存/恢复流程的一种方法是:
因此,上述策略有助于通过验证流程中的简单更改来优化计算资源。希望这很有用,并且您可以轻松地在验证环境中进行更改以采用此流程并避免冗余的模拟周期。


中国电信宣布“三千兆”升级:正式进入“三千兆”时代
光伏玻璃的价格上涨约60%,带动了整个光伏概念的发展热潮
一种基于全电介质紧凑薄膜结构的计算重构微型光谱仪
磷酸铁锂电池组供电系统在变电站的应用
AXI实战(一)-搭建简单仿真环境
通过简单的保存-恢复策略避免UVM VIP的冗余仿真周期
浅谈产品电磁兼容性设计培训的重要性
旧手机别丢了!参与vivo以旧换新活动, 最高可享2020元补贴
如何用两种不同的方法列写双容水槽传递函数
电路板设计可测试性技术
浅谈红外增透膜
美国打压,台积电不能为国内的芯片提供有效的帮助
配备音乐定时器的蓝牙智能牙刷
WIPPO小品获千万融资
绝缘轴承的电气绝缘性能优越,有着更广泛的应用
PCB布线:50欧姆迹线宽度应该有多宽?
iQOO手机评测 “武林英雄”生而强悍
麒麟芯片量产计划将搁浅 鸿蒙系统或许是救星
长电科技推出XDFOI全系列产品 为全球客户提供更加优质的服务
机器人教育的作用