【DVCon-US-2020】以接口为中心的软硬件协同SoC验证仿真加速

简介: 【DVCon-US-2020】以接口为中心的软硬件协同SoC验证仿真加速

论文概述


 前几日讲了 一种基于UVM的集群级测试平台(CLT)硬件加速方法,文中采用了信号级的加速,并表示可以采用事务级传输来进一步提速——这不,讲优化方案的论文就来了

 本文题目是 Interface Centric UVM Acceleration for Rapid SOC Verification,作者是三星电子的几位韩国验证工程师。本文提出了一种以接口为中心的、基于事务级的UVM加速方案,来加速SoC验证,仿真速度提升了30多倍。


 真真是你方唱罢我登场,两篇论文在所采用的方法上衔接是如此丝滑顺畅,而且是在同一届会议上。若不是一个在印度Intel,一个在韩国Sumsung,我都要怀疑这两篇是不是同一个team发了两篇文章。幸亏没有放在一个session里,不然开会的时候也怪尴尬的。




研究目的



 片子越做越大,仿真耗时越来越长,有钱人家便用上了emulation来加速仿真。有钱也不能放肆,原来simulation用的UVM那一套能复用就复用,改改用在emulation上也不错。


 在 simulator+emulator软硬件协同验证SoC的方案 中,常用的做法是把众多的验证组件放在软件一侧。这样一来,在硬件平台和软件平台之间需要频繁地通信以进行软硬件同步,占用了大量的仿真时间。


 解决软硬件平台之间频繁通信降低仿真效率、增加仿真耗时的问题,便是本文的目的。




新方法


 为了加快软硬件协同仿真平台的仿真速度,本文较新颖的点主要有两点:


   采用了基于transaction的事务级加速方案;(非首次,参考文献[1][2]有类似概念)

   提出了一种以接口为中心的UVM加速方案,把大量的验证组件移植为可综合的interface中,并部署到emulator上去跑。


   除此以外,本文还开发了一系列的通用接口库,便于复用,加快移植速度。

   采用本文提供的方案,仿真速度提升了30倍有余。🐂





基于事务的加速


 相较于之前基于信号的加速(SBA,Signal Based Acceleration,图1a),本文的加速方案是基于transaction的、事务级的加速(TBA,Transaction Based Acceleration,图1b)。本文做了一个实验,采用SBA方案的SoC验证,软硬件通信占用了emulation整个仿真时间的70%多,TBA方案软硬间通信只占30%,TBA加速效果更明显。



7f030c9668184dc39ca396fddc890833.png


图1 Previous UVM environment for SOC verification



为什么事务级通信加速更明显呢?


 采用SBA方案时,为了正确驱动DUT,软件需要严格按照时序驱动多根信号线,还需要监测DUT反馈的信号进行check等。采用TBA方案时,由于相关驱动和监测模块做到了DUT接口部分,软件只需要发送简单的控制信号给DUT,DUT接口处的相关组件驱动DUT。之前需要长篇大论才能解释清楚的工作,现在现在一个眼神就心知肚明了,速度当然快了。


以接口为中心的UVM加速


 以接口为中心的UVM加速环境示意图如图2所示。


   UVM软件层面,把monitor、scoreboard、checker等工作从agent挪到interface里来完成;


   硬件层面,在DUT接口处实现跟UVM monitor、scoreboard、checker等功能相同的、可综合的组件。

3fea76a91d80428f906bf7a404ff23d2.png



图2 Interface centric UVM Acceleration environment



TB移植


SoC验证软硬件接口


 为了减少软硬件通信,硬件希望把接口部分放在硬件侧;为了开启增量编译,软件希望把接口部分放在软件侧,这样不用每次都编译完整的RTL。如何兼顾两者呢?本文把所有子系统的接口例化集中放在同一个接口文件 intf_inst.sv 中,用 EMULATION 这个宏决定吃不吃intf_inst.sv,在软硬件编译的时候都编译一次。如图3所示。


19dfdb5b6e1646488e44691786a05014.png



图3 Implementation of Interfaces


通用接口库


 为了加速移植,本文开发了部分通用接口库。


 以simulation环境的 repeat(cycle_delay) @(posedge aclk) 为例,本文详细解释了如何用通用接口库来实现替换的。原有的repeat方式,每个clk cycle都要进行软硬件同步。本文在interface的task实现相同的功能,软件调用task的方式,只需要start和result两次软硬同步就可完成repeat相同的功能。具体不作赘述,请看图4、图5自行品味。

83838421b12445a6958e95732f6ccebc.png


图4 Example of using Common Interface Library

0a2f91f8c2444da49af4c2addbece0fa.png


图5 waitClock Implementation for Concurrent Access of wait_posedge task



Emulation 加速


可综合的验证组件


 为了打造一个适用于simulation和emulation的快速验证环境,原来simulation既有的monitor、checker、scoreboard等组件转换为可综合的形式,并移驾到Interface中。不同于典型的RTL写法,emulation中支持可综合的for/while等语法,便于code移植。


基于FIFO的软硬件通信


 把原来simulation既有的monitor、checker、scoreboard等组件全部转换为可综合的形式,工作量也是不小。尤其是对于C model的情况,C不可综合,总不能把C model用RTL重写一边吧。这时怎么办? 本文还是继续用C model,通信的数据放在FIFO里,Emulator工具支持软硬件间通过FIFO通信,等FIFO快空/满的时候再填/搬数据,聚零为整,也是能够大大减少软硬件通信次数的。




实现举例


Monitor/Scoreboard


fdcc4ee93b3d4c58b80352f3531dd67d.png


图6 Conventional Monitor for Scoreboard


04fe13b66f534f5bbfc239d96b9bf958.png


图7 TBA Implementation of Figure 6


e1fc9b5e8f7440eea63cff40b7b2a9c8.png


图8 Proposed Implementation of Scoreboard


寄存器访问

674c3e2d4d334dc89fc75782d87c2869.png


图9 Proposed Method for Register Access


3a1e1c88e14246678264b9afdcda6253.png


图10 Example of Proposed Method for Polling

PLL

93acee486dab4cdc832a3129e0b2359b.png


图11 Example of PLL Modeling



讨论


 方法好,没得说。论文没有提下一步的计划,强行安了几条缺点:emulator贵、协同仿真schedule/resource不好排。




参考


   Hans can der Schoot, “UVM and Emulation: How to Get Your Ultimate

Testbench Acceleration Speed-up”, DVCON EUROPE, 2015.


   Sunil Roe, “UVM Acceleration Using Hardware Emulator at Pre-silicon Stage”, DVCON, 2018.





目录
相关文章
|
4月前
|
存储 边缘计算 安全
边缘计算设备的设计与部署技术探索
【8月更文挑战第1天】边缘计算设备的设计与部署是一个复杂而系统的工程,需要综合考虑多个方面的因素。通过制定全面的战略规划、选择合适的技术和设备、设计合理的网络架构、实施有效的安全策略以及定期管理维护等措施,可以确保边缘计算设备的稳定运行和高效应用。随着物联网和云计算技术的不断发展,边缘计算将在更多领域展现出其独特的优势和潜力。
66 10
|
6月前
|
数据采集 边缘计算 UED
必知的技术知识:iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
必知的技术知识:iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
43 0
EMQ
|
存储 缓存 Prometheus
Neuron 2.3.0 发布:更轻松地接入和管理海量工业设备
开源工业协议网关软件Neuron发布2.3.0版本,新增CIP Ethernet/IP、Mitsubishi Melsec 1E frame E71和Fanuc Focas三个协议驱动,帮助更多工业用户实现海量工业设备接入。
EMQ
225 0
Neuron 2.3.0 发布:更轻松地接入和管理海量工业设备
|
缓存 移动开发 开发工具
芯片对接流程 | 学习笔记
快速学习芯片对接流程
芯片对接流程 | 学习笔记
|
运维 物联网 新能源
|
文字识别 数据可视化 算法
一种无线端测试平台化最佳实践
就像持续集成,互联网公司对测试平台化的探索从未停止过,大厂也不例外。测试平台化并不是单纯地“可视化”,将脚本搬到平台上。它是一种“可能性”,一种多元化技术融合提升测试效果的可能,一种变革测试组织与行为的可能。那么来看看零售通的平台化实践有没有解开你心中的疑云。
423 0
一种无线端测试平台化最佳实践
|
人工智能 安全 网络协议
技术解码 | 从芯片到云全链路高效设计 一文了解YoC基础软件平台
技术解码栏目:是面向开发者详细解读芯片开放社区(OCC)上关于处理器、芯片、基础软件平台、集成开发环境及应用开发平台的相关技术,方便开发者学习及快速上手,提升开发效率。
455 0
技术解码 | 从芯片到云全链路高效设计 一文了解YoC基础软件平台
|
机器学习/深度学习 人工智能 分布式计算
如何通过广泛、集成和自动化的网络安全保护所有边缘设备
通过将安全性和网络结合在一起,安全性不再充当叠加层。与其相反,需要了解网络功能,可以动态调整配置、策略和协议,以确保持续的保护和一致的实施。许多组织都在朝着平台方法迈进,但是平台需要考虑所有因素,而不是只关注某一个领域。平台不能只是端点的平台或是网络中的平台或跨多个云平台的平台。它必须是跨网络所有区域的平台,始终如一地端到端地工作,并使用身份和威胁情报加以增强。
188 0
下一篇
DataWorks