【DVCon-US-2020】采用先进 Save & Restore 技术加速仿真周转时间 (Simulation Turnaround Time)

简介: 【DVCon-US-2020】采用先进 Save & Restore 技术加速仿真周转时间 (Simulation Turnaround Time)

论文概述


本文题目 Saving and Restoring Simulation Methodology using UVM Factory Overriding to Reduce Simulation Turnaround Time,作者是三星电子的韩国工程师。


 本文提出并实现了一种动态SnR(save and restore)方法,能够加速仿真周转时间(simulation turnaround time)。



研究目的


热身两小时,上场一分钟


SoC仿真验证中,你是否苦恼于 初始化配置两小时,个人测试sequence运行一分钟 的现状?对于大型SoC而言,在运行我们写的test sequence之前,要进行繁杂耗时的boot、initialization、phy training过程(下文称common sequence),我们真正关心的test sequence跑起来可能几分钟就够了。


在case调试期间,每做一点case修改rerun的时候都要重复跑一遍common sequence,common sequence删还删不得,让热爱工作追求效率的我们心力憔悴。



原有优化方法局限多



加速仿真的方法有很多:


  •    simulation加速,这个方法就很多了。

   

  • 一是优化code、flow,但这个对优秀的验证工程师而言并不适用,除非你code、flow很烂,否则指望优化code获得的simulation提速效果都不是很明显。


  •        二是可以用save & store(下文称SnR)的方法跳过common sequence(图1是未采用SnR及采用SnR方法的验证Flow对比,图二是SnR Override示意图),但传统的SnR方法仅适用于case、TB固定情况下的rerun,且只能指定一个时间点进行SnR。一来能够指定的SnR数目有点少,二来SnR时间点不好把握,三来Save后要用来override的test sequence不能做任何修改,这还怎么玩?


       此外,simulation性能本身以每年10%的速度提升,这个跟SoC Size的发展速度比,还是不行。


   emulation。emulation很快,但emulator一是死贵,二是一般用在耗时极久的大场面的仿真上,小case开发过程中也不太方便频繁放到emulator去跑,怕被跑emulation的同学打。

1869444c29c24ad78d5c9e84bff3b1e3.png



图1 Proposed Workflows with SnR Methodology

4ceef459f6964b36a653f26a46d8590c.png


图2 Basic Concept of UVM Factory Override Mechanism




新方法


方法提出


本文提出一种新的SnR方法(图3)来缩减仿真周转时间,该方法仍然是基于UVM factory的override机制,采用该方法可以指定多个SnR的点,且在case、TB不稳定的时候仍然适用。该方法无需额外的硬件投资,经济实惠。


 当simulation跑到指定点之后把DUT、TB状态进行保存,称为snapshot。restore的时候,先编译自己修改后的test sequence,然后用simulator的tcl命令把旧的sequence override掉,最后把save的文件读进来,从执行save的时间点继续执行仿真。


本文的方法在初次运行的时候,执行多次save过程,restore的时候可以指定save point。有几点需要注意:restore的时候,指定的save point需要在test sequence开始执行的时刻之前。


97840a8aba7f493086d0435a44861272.png

图3 The Dynamic SnR Methodology




方法实现


Save


为了保存仿真现场,需要做以下三步:


  1.    saving_test.sv 中插入save point,save point插入位置在common sequence之后、test sequence之前,其间可以插入多个save point。本文是DPI-C调用do_save函数,函数参数是save point的名称。


  1.    do_save.c中实现do_save函数,进行simulation状态的保存。


  1.    simulation flow中开启SnR功能,指定save file的保存路径等。



 Save 的示意代码见图4。

6333596a108343788b6bfb93fd999fc4.png


Restore


  为了恢复仿真现场,需要做以下三步:


 

  1.    test sequence放在test_pkg.sv中。可以在base_sequence放common sequence,并从base_sequence派生出test sequence。为了实现sequence可修改的SnR机制,test sequence需要放在SV package中(Top Level),以在多个环境组件之间共享数据、参数等。SV package作为restore simulation的输入文件,在restore之前重新compile、elabrate这些test sequence。


  1.    uvm_factory.tcl中用test_sequence override base_sequence。为了实现override_by_type,test_sequence和base_sequence的type需要相同,这也是第一步test_sequence从base_sequence派生而来的原因。


  1.    simulation flow中指定配置参数,例如sv package、tcl command、start point、datebase name等。


 Restore的示意代码见图5。

582ea401f6f545218d55300f1cfdf6b7.png




实验结果


  本文设置了两组对比实验,一是有无SnR方法的仿真时间,二是不同的common sequence(Block-A with boot,Block-B with boot + PHY init)。


试验结果如下图(图6)所示。


fc6667331c5a4535aee459f1c22623a4.png


图6 试验结果



 从图中可见,仅有Boot的Blocak-A,采用本文SnR方法能够把TAT提升88%;


Boot+PHY init的Blocak-B,采用本文SnR方法能够把TAT提升97%




讨论


 方法挺好,实现起来不复杂,经济实惠,支持多save point,在case调试过程中也能使用,提升的速度也相当明显,能够大大加快case开发迭代速度。


 本方法做些改进,用在power-aware sim、gate-sim或regression中,省时间不说,还能省不少memory、licence、server资源。


 不错,推荐。





目录
相关文章
|
7月前
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
134 0
|
4月前
|
算法 数据挖掘 数据处理
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
本文介绍了一篇博士论文,提出了一种基于非随机拓扑结构的改进型Echo State Networks (ESN)模型,用于处理时间序列数据,通过在储层中使用复杂网络和聚类模型的拓扑结构,提高了模型性能并降低了计算成本,论文还展示了该模型在信号预测和图像分类中的应用。
46 3
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
|
2月前
|
自然语言处理 数据中心
Scaling LLM Test-Time Compute Optimally: 一种更有效的方法
【10月更文挑战第14天】本文探讨了大型语言模型(LLMs)在测试时通过增加计算资源来提升性能的可能性。研究发现,通过优化测试时计算的分配,特别是采用基于过程的验证器搜索和自适应更新响应分布的方法,LLM可以显著提高对复杂问题的应对能力,甚至在某些情况下超越更大规模的模型。论文提出了“计算最优”策略,旨在根据问题难度自适应调整计算资源,以最大化性能提升。未来工作将聚焦于增强测试时计算缩放、快速评估问题难度及实现自我改进循环。
80 6
|
2月前
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
54 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
4月前
|
机器学习/深度学习 存储 算法
【博士每天一篇文献-算法】Memory augmented echo state network for time series prediction
本文介绍了一种记忆增强的回声状态网络(MA-ESN),它通过在储层中引入线性记忆模块和非线性映射模块来平衡ESN的记忆能力和非线性映射能力,提高了时间序列预测的性能,并在多个基准数据集上展示了其优越的记忆能力和预测精度。
33 3
【博士每天一篇文献-算法】Memory augmented echo state network for time series prediction
|
4月前
|
机器学习/深度学习 人工智能
【博士每天一篇文献-模型】Self-organizing deep belief modular echo state network for time series
本文提出了一种自组织深度置信模块式回声状态网络(SDBMESN),通过结合深度置信网络和模块化回声状态网络,利用自组织机制动态调整网络结构,以提高时间序列预测的泛化能力。
23 2
|
4月前
|
机器学习/深度学习 算法
【博士每天一篇文献-算法】Modular state space of echo state network
本文提出了一种改进的回声状态网络(ESN)方法,名为模块化状态空间的ESN(MSSESN),通过将状态空间分解为多个子空间(模块)并使用分段输出函数映射每个模块的状态到输出,实现了直接预测,提高了预测性能,并在Mackey-Glass和Lorenz时间序列预测中展示了其优越性。
24 0
【博士每天一篇文献-算法】Modular state space of echo state network
|
机器学习/深度学习 自然语言处理 计算机视觉
【计算机视觉】MDETR - Modulated Detection for End-to-End Multi-Modal Understanding
对于图像模型,MDETR采用的是一个CNN backbone来提取视觉特征,然后加上二维的位置编码;对于语言模态,作者采用了一个预训练好的Transformer语言模型来生成与输入值相同大小的hidden state。然后作者采用了一个模态相关的Linear Projection将图像和文本特征映射到一个共享的embedding空间。 接着,将图像embedding和语言embedding进行concat,生成一个样本的图像和文本特征序列。这个序列特征首先被送入到一个Cross Encoder进行处理,后面的步骤就和DETR一样,设置Object Query用于预测目标框。
|
存储 数据采集 分布式计算
实时大数据处理real-time big data processing (RTDP)框架:挑战与解决方案
实时大数据处理real-time big data processing (RTDP)框架:挑战与解决方案
|
编解码 算法
Google Earth Engine ——MOD14A1.006: Terra Thermal Anomalies & Fire Daily Global 1km该产品区分了每日火灾、无火灾数据集
Google Earth Engine ——MOD14A1.006: Terra Thermal Anomalies & Fire Daily Global 1km该产品区分了每日火灾、无火灾数据集
191 0
Google Earth Engine ——MOD14A1.006: Terra Thermal Anomalies & Fire Daily Global 1km该产品区分了每日火灾、无火灾数据集