0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:synopsys 作者:Parag Goel 2023-05-29 10:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在许多验证环境中,我们在不同的测试用例中重复使用相同的配置周期。这些周期可能涉及从不同的配置和状态寄存器写入和读取、加载程序存储器和其他类似任务,以为其目标激励设置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

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

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    39

    文章

    7716

    浏览量

    170939
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114192
  • 代码
    +关注

    关注

    30

    文章

    4946

    浏览量

    73214
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图像处理:HDMI显示代码的UVM仿真

    本篇完成对HDMI显示代码的UVM仿真,梳理一下在windows-modelsim工具下UVM仿真环境的建立,调试以及遇到的问题。 仿真架构
    的头像 发表于 11-10 15:35 5980次阅读
    图像处理:HDMI显示代码的<b class='flag-5'>UVM</b><b class='flag-5'>仿真</b>

    vcs和xrun搭配uvm1.1/uvm1.2版本库的使用情况

    我们在项目中有时候需要使用不同的UVM版本库进行仿真,有时候还会在不同的仿真器之间进行切换,本文简单总结了一下vcs和xrun搭配uvm1.
    的头像 发表于 10-27 09:41 6994次阅读

    UVM环境的看门狗怎么没看住超时了?

    uvm验证环境里一般通过objection机制来控制仿真的结束,不过在机制之外,有时还需要通过看门狗来watchdog避免
    的头像 发表于 12-04 11:42 2060次阅读

    UVM手把手教程系列(二)Phase机制简单介绍

    UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类
    的头像 发表于 02-29 09:26 2915次阅读
    <b class='flag-5'>UVM</b>手把手教程系列(二)Phase机制<b class='flag-5'>简单</b>介绍

    如何避免存储示波器再次崩溃?

    截图、远程控制等非核心功能,减少系统资源占用(如Keysight示波器可通过System > Utilities禁用冗余服务)。 2. 存储系统优化 分区与格式化 策略:将存储介质分为
    发表于 05-23 14:47

    NVMe高速传输之摆脱XDMA设计18:UVM验证平台

    十分复杂,需要使用成熟的验证知识产权(Verification IP,VIP)保证仿真的准确性和效率,这一类的 VIP 通常十分昂贵并且复杂;另一方面,PCIE 集成块是 Xilinx 提供的过了充分
    发表于 07-31 16:39

    NVMe高速传输之摆脱XDMA设计23:UVM验证平台

    十分复杂,需要使用成熟的验证知识产权(Verification IP,VIP)保证仿真的准确性和效率,这一类的 VIP 通常十分昂贵并且复杂;另一方面,PCIE 集成块是 Xilinx 提供的过了充分
    发表于 08-26 09:49

    IC验证"一个简单UVM验证平台"是如何搭建的(六)

    的组件,是整个验证平台数据流的源泉。本节以一个简单的DUT为例,说明一个只有driver的UVM验 证平台是如何搭建的。最简单的验证平台,假设有如下的DUT定义:这个DUT的功能非常简单
    发表于 12-04 15:48

    什么是uvmuvm的特点有哪些呢

    直观的印象,就是uvm验证平台,它是分层的结构。图中的每一个巨型框都代表着平台的一个构成元素。这些元素呢,我们称为平台组建,下面来简单的分析一下。从最底层上来看,agent 中包含了driver,monitor和sequencer,其中driver ,monitor中也包
    发表于 02-14 06:46

    请问一下在UVM中的UVMsequences是什么意思啊

    uvm_object基类扩展得到。UVM sequences不是在仿真的开始,而是在仿真的过程中生成并分配内存的,也没有类似uvm_comp
    发表于 04-11 16:43

    如何使用Xilinx AXI VIP对自己的设计搭建仿真验证环境的方法

    接口进行仿真验证),提前规避和发现一些不满足AXI总线规范的设计问题。本文就跟大家分享如何使用Xilinx AXI VIP对自己的设计搭建仿真验证环境的方法。本文参考的Xilinx官方文档为
    发表于 10-09 16:08

    NetScreen防火墙策略冗余配置指南

    NetScreen防火墙策略冗余配置指南成都通信建设工程局 游凯 邮政编码 611130[摘要] 本文通过对NetScreen访问策略其防火墙配置介绍,简要介绍了如何对该产品
    发表于 05-16 01:38 35次下载

    基于最大信息系数与冗余分摊策略的特征选择方法

    的特征选择方法(MlC- share)。以MIC度量相关性测度与冗余性测度,釆用冗余分摊策略获取新的特征得分,自动终止特征引入过程,减少最优子集确定所需时间。仿真结果表明,与PLSR、
    发表于 03-26 15:27 13次下载
    基于最大信息系数与<b class='flag-5'>冗余</b>分摊<b class='flag-5'>策略</b>的特征选择方法

    开始使用AXI VIP,对UVM有一些基本的了解

    Synopsys 的 VIP 以 SystemVerilog 包的形式提供。这些包为 VIP 定义唯一的命名空间,但为了使 VIP 更易于使用,可以将 VIP 命名空间导入到全局命名空
    的头像 发表于 05-25 14:44 1.1w次阅读

    Jtti:如何在服务器扩展时避免单点故障?有哪些常见的高可用性策略

    服务器扩展时,通过引入冗余备份是避免单点故障的有效策略。这包括硬件冗余(如RAID阵列)、数据冗余
    的头像 发表于 07-18 16:02 691次阅读