【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资源。


 不错,推荐。





目录
相关文章
|
10月前
|
算法 数据挖掘
Sentieon | 每周文献-Population Sequencing-第二十三期
Sentieon | 每周文献-Population Sequencing-第二十三期
48 1
|
10月前
|
算法 数据挖掘
Sentieon | 每周文献-Population Sequencing-第三十四期
Sentieon | 每周文献-Population Sequencing-第三十四期
64 0
|
7月前
|
算法 数据挖掘 数据处理
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
本文介绍了一篇博士论文,提出了一种基于非随机拓扑结构的改进型Echo State Networks (ESN)模型,用于处理时间序列数据,通过在储层中使用复杂网络和聚类模型的拓扑结构,提高了模型性能并降低了计算成本,论文还展示了该模型在信号预测和图像分类中的应用。
58 3
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
|
2月前
|
算法 数据挖掘 数据处理
文献解读-Bioinformatic Methods and Bridging of Assay Results for Reliable Tumor Mutational Burden Assessment in Non-Small-Cell Lung Cancer
文章讨论了肿瘤突变负荷(TMB)作为免疫治疗生物标志物的重要性及其测定方法的标准化问题。强调了不同TMB测定方法间存在的差异,以及统一这些方法的必要性。尽管存在差异,研究发现不同方法的结果具有良好相关性。研究组呼吁建立准确、可重复的TMB评估标准,以促进其在临床实践中的应用。
34 0
|
4月前
|
算法 安全 数据挖掘
文献解读-Transcriptional Start Site Coverage Analysis in Plasma Cell-Free DNA Reveals Disease Severity and Tissue Specificity of COVID-19 Patients
这项研究展示了 cfDNA 分析在揭示新冠肺炎进展中的组织参与情况和疾病机制方面的潜力。它强调了 cfDNA 作为无创生物标志物在疾病严重程度检测、患者监测和预后评估中的应用价值。这种方法为理解新冠肺炎的病理生理学提供了新的视角,并可能帮助开发更有针对性的治疗策略。
43 2
|
7月前
|
算法 IDE 开发工具
【博士每天一篇文献-实验】Impact of modular organization on dynamical richness_in cortical networks
本文研究了大脑模块化组织对其动态特性的影响,发现不同耦合强度下的模块化网络展现出不同的活动模式,并通过实验揭示了单键模式在动态丰富性方面的优势,为理解大脑皮层网络的复杂动态提供了新的视角。
32 2
【博士每天一篇文献-实验】Impact of modular organization on dynamical richness_in cortical networks
|
7月前
|
机器学习/深度学习 数据可视化 算法
2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧
本文提供了2023年美赛C题"预测Wordle结果"的详细建模方案、Python代码实现、数据和图片,包括对Wordle游戏规则的理解、数据分析、模型构建和结果预测,以及如何撰写给《纽约时报》字谜编辑的信件。
101 1
2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧
|
7月前
|
机器学习/深度学习 人工智能
【博士每天一篇文献-模型】Self-organizing deep belief modular echo state network for time series
本文提出了一种自组织深度置信模块式回声状态网络(SDBMESN),通过结合深度置信网络和模块化回声状态网络,利用自组织机制动态调整网络结构,以提高时间序列预测的泛化能力。
38 2
|
7月前
|
机器学习/深度学习 数据可视化 算法
【博士每天一篇论文-实验分析】Toroidal topology of population activity in grid cells
本文通过同时记录多个网格细胞并应用拓扑数据分析,揭示了这些细胞网络的环面拓扑结构,表明存在一个二维连续吸引子网络,为理解空间编码和网格细胞在导航记忆中的作用提供了新视角。
54 3
|
数据挖掘
【提示学习】Automatic Multi-Label Prompting: Simple and Interpretable Few-Shot Classification
文章提出了一种简单确高效地构建verbalization的方法: