当前位置:网站首页>[dvcon2020] adopt advanced save & restore technology to accelerate simulation turnaround time
[dvcon2020] adopt advanced save & restore technology to accelerate simulation turnaround time
2022-04-22 23:26:00 【MangoPapa】
Click to enter 【 Chip design verification 】 Community , See more
Statement :
- 🥭 Author URI :【MangoPapa Of CSDN Home page 】.
- ️ This article was first published in CSDN, Please indicate the source of reprint or quotation 【 Click to view the original 】.
- ️ The purpose of this column is Academic paper sharing , This paper is non-profit , Only used for Personal learning record And Knowledge sharing .
- ️ If the pictures or relevant references used in this article infringe upon your legitimate rights and interests , Please contact me to delete .
- Welcome to point out the mistakes in the article , Welcome colleagues to communicate with me ~
- mailbox :[email protected]
List of articles
Overview of the paper
The title of this paper is Saving and Restoring Simulation Methodology using UVM Factory Overriding to Reduce Simulation Turnaround Time, The author is a Korean engineer of Samsung Electronics .
This paper proposes and implements a dynamic SnR(save and restore) Method , It can accelerate the simulation turnaround time (simulation turnaround time).
research objective
Warm up for two hours , Play for a minute
SoC Simulation verification , Are you worried about Initialize the configuration for two hours , Personal test sequence Run for a minute The status quo of ? For large SoC for , Running what we wrote test sequence Before , Complicated and time-consuming boot、initialization、phy training The process ( Hereinafter referred to as common sequence), What we really care about test sequence A few minutes may be enough to run . stay case During commissioning , Every little bit case modify rerun You have to run it again when you are common sequence,common sequence Delete or not delete , Let us who love our work and pursue efficiency languish .
The original optimization method has many limitations
There are many ways to speed up simulation :
- simulation Speed up , There are many ways .
- First, optimization code、flow, But this does not apply to good verification engineers , Unless you code、flow Sucks , Otherwise, expect to optimize code To obtain the simulation The acceleration effect is not very obvious .
- Second, you can use save & store( Hereinafter referred to as SnR) Method skip common sequence( chart 1 Is not used SnR And adopt SnR Validation of methods Flow contrast , Figure 2 is SnR Override Sketch Map ), But traditional SnR The method is only applicable to case、TB Under fixed conditions rerun, And only one time point can be specified SnR. One can specify SnR The number is a little small , both SnR It's hard to grasp the time , Third come Save Later, it will be used to override Of test sequence Can't make any changes , How can I play this ?
- Besides ,simulation The performance itself is based on 10% Speed up , This heel SoC Size The speed of development is higher than , Not yet. .
- emulation.emulation Soon , but emulator One is Death is expensive , Second, it is generally used in the simulation of large scenes that take a long time , Small case The development process also Not very convenient Frequently put emulator Go for a run , Fear of being run away emulation My classmate called .


The new method
The method proposes
This paper puts forward a kind of new SnR Method ( chart 3) To reduce simulation turnaround time , The method is still based on UVM factory Of override Mechanism , Use this method You can specify multiple SnR The point of , And stay case、TB It still applies when it is unstable . This method does not require additional hardware investment , Economic material benefit .
When simulation Run to the designated point and turn DUT、TB Save status , be called snapshot.restore When , First compile your modified test sequence, And then use simulator Of tcl Order the old sequence override fall , Finally, put save Read in your file , From execution save Continue the simulation at the point in time . When the method in this paper is first run , Execute many times save The process ,restore You can specify save point. There are several points to pay attention to :restore When , designated save point Need to be in test sequence Before the moment of execution .

Method realization
Save
In order to save the simulation scene , You need to do the following three steps :
- saving_test.sv Insert save point,save point The insertion position is common sequence after 、test sequence Before , Multiple... Can be inserted between them save point. This article is about DPI-C call do_save function , The argument to the function is save point The name of .
- do_save.c To realize do_save function , Conduct simulation The preservation of state .
- simulation flow In the open SnR function , Appoint save file Save path, etc .
Save The schematic code of is shown in Figure 4.

Restore
In order to restore the simulation scene , You need to do the following three steps :
- test sequence Put it in test_pkg.sv in . Can be in base_sequence discharge common sequence, And from base_sequence Derive from test sequence. In order to achieve sequence Modifiable SnR Mechanism ,test sequence Need to put in SV package in (Top Level), To share data between multiple environmental components 、 Parameters, etc. .SV package As restore simulation The input file of , stay restore Before re compile、elabrate these test sequence.
- uvm_factory.tcl of use test_sequence override base_sequence. In order to achieve override_by_type,test_sequence and base_sequence Of type It needs to be the same , This is also the first step test_sequence from base_sequence Derived reasons .
- simulation flow Specify configuration parameters in , for example sv package、tcl command、start point、datebase name etc. .
Restore The schematic code of is shown in Figure 5.

experimental result
This paper sets up two groups of comparative experiments , First, whether there is SnR The simulation time of the method , The second is different common sequence(Block-A with boot,Block-B with boot + PHY init). The test results are as follows ( chart 6) Shown .

As you can see from the diagram , have only Boot Of Blocak-A, Using this article SnR Method can TAT promote 88%;Boot+PHY init Of Blocak-B, Using this article SnR Method can TAT promote 97%
Discuss
The method is very good , The implementation is not complicated , Economic material benefit , Support more save point, stay case It can also be used during debugging , The speed of improvement is also quite obvious , Can greatly speed up case Development iteration speed .
This method makes some improvements , Use in power-aware sim、gate-sim or regression in , Save time not to say , It can also save a lot memory、licence、server resources .
Pretty good , recommend .
End
Click to enter 【 Chip design verification 】 Community , See more
版权声明
本文为[MangoPapa]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204222322441128.html
边栏推荐
- Read software engineering at Google (12)
- (JS)利用String对象的属性和方法实现注册和登录功能,要求用户名长度在3-10范围内,密码在6-20位
- Esp32 (GPIO) - GPIO learning (5)
- Must brush the simulation question bank and answers of operators of the latest fire-fighting facilities in Jiangxi in 2022
- JS has several red, white and black balls, including 25 red and white balls, 31 white and black balls and 28 red and black balls. Find the number of each of the three balls.
- visio文本框输入公式
- Webrtc series - webrtc Foundation (VII) NAT, stun and turn (1)
- [Swift]代碼觸發UIButton的點擊事件
- Lire "Software Engineering at Google" (11)
- 在Spartacus产品明细页面用outlet显示自定义数据
猜你喜欢

辰视工业级机器视觉 | 焊缝检测解决方案

VsCode使用EmmyLua插件调试Unity工程ToLua代码
![[BJDCTF2020]Easy MD5](/img/94/08b19ead7c48549340b29bc8f34033.png)
[BJDCTF2020]Easy MD5

SQL语言详解

【LeetCode 剑指 Offer 54. 二叉搜索树的第k大节点(简单)】

【DVCon2020】基于多线程UVM测试平台的仿真加速方法

【DVCon2020】采用先进 Save & Restore 技术加速仿真周转时间 (Simulation Turnaround Time)
![[leetcode sword finger offer 36. Binary search tree and two-way linked list (medium)]](/img/66/3daf049b0b627b904d882f84685289.png)
[leetcode sword finger offer 36. Binary search tree and two-way linked list (medium)]

Dart: use async and await in the loop

visio文本框输入公式
随机推荐
Gbase 8A common parallelism parameter adjustment to improve performance
Basic knowledge of SQL database
网狐U3D客户端游戏配置加载失败Couldn‘t connect to server解决
Vulnerability exploitation and security reinforcement
SystemVerilog 验证-测试平台编写指南学习笔记(0):验证导论
. net 6 when exiting the constructor, the non nullable property "XXX" must contain a non null value.
[leetcode refers to offer 54. The k-th node of the binary search tree (simple)]
[HCTF 2018]admin之Flask之session伪造
django连接数据库获取数据
Cron expression
一个快速追踪密切接触者的开源脚本方案
【DVCon2020】基于多线程UVM测试平台的仿真加速方法
VI / VIM editor basic operation
SQL Net message from client 事件产生的原因分析
JS计算圆的周长和面积
[leetcode sword finger offer 36. Binary search tree and two-way linked list (medium)]
存储器简介
JS has several red, white and black balls, including 25 red and white balls, 31 white and black balls and 28 red and black balls. Find the number of each of the three balls.
DEJA_ 014 profile analysis of vu3d - cesium feature set
《新程序员003》正式上市,华为、阿里等 30+ 公司的云原生及数字化实战经验