【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.





目录
相关文章
|
19天前
|
存储 边缘计算 安全
边缘计算设备的设计与部署技术探索
【8月更文挑战第1天】边缘计算设备的设计与部署是一个复杂而系统的工程,需要综合考虑多个方面的因素。通过制定全面的战略规划、选择合适的技术和设备、设计合理的网络架构、实施有效的安全策略以及定期管理维护等措施,可以确保边缘计算设备的稳定运行和高效应用。随着物联网和云计算技术的不断发展,边缘计算将在更多领域展现出其独特的优势和潜力。
26 10
|
2月前
|
传感器 安全 物联网
物联网(IoT)设备的硬件选型与集成技术博文
【6月更文挑战第28天】物联网设备硬件选型与集成聚焦关键要素:功能匹配、性能稳定性、兼容扩展及成本效益。嵌入式系统、通信协议、数据处理和安全性技术确保集成效果,支撑高效、智能的IoT系统,驱动家居、城市与工业自动化变革。
|
2月前
|
监控 安全 机器人
|
10月前
|
监控 前端开发 搜索推荐
智能呼叫系统关键技术
一、呼叫系统关键技术   一个完整的呼叫系统,一般由PBX(程控交换机)、ACD(自动呼叫分配)交换机、IVR(交互式语音应答)系统、CTI(计算机电话呼叫系统集成)系统、数据库系统、呼叫管理系统、业务处理系统以及座席(业务代表)等组成。用户的呼叫在ACD交换机排队之后,引导到不同的人工受理席,然后以语音或传真等不同方式给予用户相关的业务答复。系统大致可以分为前端和后端两大部分。在系统前   端,CTI是其核心,在计算机与电话呼叫系统集成的基础之上对客户的呼叫进行应答、识别、接续、转移等受理活动;系统后端主要由各种数据库系统如账务系统、业务管理系统以及网络软硬件提供业务支持,保障数据的正确性和
H8
|
12月前
|
自然语言处理 物联网 Unix
全网最佳IoT命令行超级工具箱|帮你轻松解决百万物联网设备测试和联调
作为一个物联网开发和学习人员,IoT设备协议的测试联调是工作中很重要的一环!我有很多时刻都想拥有一个能集成常见物联网协议的客户端工具可供使用。经过我一通查找,发现和我拥有相同问题的人不在少数。 不仅仅是IoT开发者,包括云厂商、网络运营商都有相同烦恼: 开源物联网平台Thingsboard: coap -> coap.js(需要安装node); 移动OneNET平台: mqtt -> mqtt.fx(几年没更新了); 电信AEP平台:自定义TCP协议 -> sokit工具(只支持windows); 阿里云物联网平台: Nb-IoT协议 -> 需要到电信或移动平台上进行测试; 作者:穆书伟
H8
396 0
|
物联网
《阿里云产品手册2022-2023 版》——IoT边缘现场计算:云边协同软件获得首批可信云认证
《阿里云产品手册2022-2023 版》——IoT边缘现场计算:云边协同软件获得首批可信云认证
171 0
|
缓存 移动开发 开发工具
芯片对接流程 | 学习笔记
快速学习芯片对接流程
154 0
芯片对接流程 | 学习笔记
|
监控 安全 数据可视化
IoT 安全运营中心(SOC)最佳实践|学习笔记
快速学习 IoT 安全运营中心(SOC)最佳实践
443 0
IoT 安全运营中心(SOC)最佳实践|学习笔记