网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-05-29 10:18

人气:

作者:admin

标签: 代码  Verilog  存储器 

导读:Verilog 提供了在特定时间点保存设计及其测试平台状态的选项。我们可以将模拟恢复到相同的状态,然后从那里继续。这可以通过从Verilog代码添加适当的内置系统调用来完成。VCS 提供与...

在许多验证环境中,我们在不同的测试用例中重复使用相同的配置周期。这些周期可能涉及从不同的配置和状态寄存器写入和读取、加载程序存储器和其他类似任务,以为其目标激励设置DUT。在许多此类环境中,这些配置周期所花费的时间非常长。此外,由于验证工程师必须为不同的测试用例运行同一组经过验证的配置周期,因此存在大量冗余,从而导致生产力下降。对于具有多个接口的复杂验证环境尤其如此,这些接口需要配置不同的组件。

Verilog 提供了在特定时间点保存设计及其测试平台状态的选项。我们可以将模拟恢复到相同的状态,然后从那里继续。这可以通过从Verilog代码添加适当的内置系统调用来完成。VCS 提供与统一命令行解释器 (UCLI) 相同的选项。

但是,我们仅从保存的状态恢复仿真是不够的。对于不同的模拟,我们可能希望对DUT应用不同的随机激励。在 UVM 的上下文中,最好从保存的状态运行不同的序列,如下所示:

poYBAGR0CzaAS5CkAABphu8u8BA875.png

在上面的例子中,除了最后一步在很大程度上变化之外,其余步骤一旦建立就不需要迭代。

poYBAGR0CzqAIasFAAKHARYNFDM787.png

在这里,我们将解释如何使用标准UVM安装中可用的简单现有UBUS示例来实现上述策略。在环境中进行了简单的更改,以显示引入此附加功能需要执行的操作。在现有的测试集中,它们中的两个,“test_read_modify_write”和“test_r8_w8_r4_w4”,仅在执行的主序列上有所不同:“read_modify_write_seq”和“r8_w8_r4_w4_seq”。

pYYBAGR0Cz6AIjHvAADTDVOJ1Og767.png

假设我们有一个场景,我们希望在reset_phase完成后保存模拟,然后在恢复的模拟reset_phase后开始执行不同的序列。为了通过UBUS测试演示类似的场景,我们在基本测试的reset_phase中引入了延迟(在实际测试中,这可能对应于PLL锁,DDR初始化,基本DUT配置)。

以下代码片段显示了如何修改现有测试,以引入在不同“还原”模拟中运行不同测试的功能:

poYBAGR0C0GAbtlyAAGcuA8eQ44325.png

在这里,我们进行了两个主要修改:

将阶段default_sequence的设置从构建阶段转移到主阶段的开始。

从命令行获取序列的名称作为参数,并在代码中适当地处理字符串,以在相关排序器上执行序列。

如您所见,更改保持在最低限度。有了这个,上面的通用框架就可以进行了仿真。在 VCS 中,启用保存/恢复流程的一种方法是:

poYBAGR0C0WAANWXAAEN4S2Nw3w961.png

因此,上述策略有助于通过验证流程中的简单更改来优化计算资源。希望这很有用,并且您可以轻松地在验证环境中进行更改以采用此流程并避免冗余的模拟周期。

审核编辑:郭婷

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信