软硬件协同仿真——硬件加速

参考:

  1. 王宏伟,孙宇明,李铀,唐柳. 一种软件联合FPGA硬件仿真加速系统设计[C]//.2020中国航空工业技术装备工程协会年会论文集.[出版者不详],2020:114-117.DOI:10.26914/c.cnkihy.2020.036194.
  2. 蒋心祝. 软硬件协同仿真的自动化验证平台设计[D].西安电子科技大学,2019.DOI:10.27389/d.cnki.gxadu.2019.000734.
  3. 验证学院
  4. https://www.design-reuse.com/articles/21885/hardware-acceleration-hvl-testbench.html
  5. https://compas.cs.stonybrook.edu/projects/vm-hdl-cosim

1. 仿真验证方法

  1. 什么是仿真验证?
    仿真即是借助于仿真工具(仿真器)来验证一个使用硬件描述语言性语言(Verilog/SystemVerilog/VHDL)建模的数字设计的功能正确性的过程。

1.1 软件仿真(Software Simulation)

软件仿真,即是使用Modelsim, Icarus, Verilator,VCS, Xceilum等仿真工具,对HDL建模的电路进行模拟仿真, 也是目前使用最多,最普遍的仿真技术

优势:可以查看电路中任何地方的信号
缺点:设计电路越复杂,仿真所需要的时间越长
在这里插入图片描述

1.2 协同模拟 (Co-Simulation)

使用硬件加速器协同进行加速,主要是验证部分和测试向量等都是在软件一侧的仿真上运行的,只有待测设计的代码在硬件上执行
在这里插入图片描述
图2 来源https://compas.cs.stonybrook.edu/projects/vm-hdl-cosim

1.3 协同仿真 (Co-Emulation)

同样使用硬件加速器协同进行加速,与Co-Simulation不同的是,Co-Emulation分工明确,Software只负责验证平台中不包含时序的部分,Hardware负责验证平台中时序部分(产生时钟、其他部分?)以及待测设计部分。这样可以最大化的利用硬件加速器性能。
在这里插入图片描述
图3,来源https://www.edn.com/co-emulation-for-better-ic-testing/

1.4 三种仿真技术对比

表1 仿真验证技术对比表 [ 1 ] ^{[1]} [1]

比较项Software SimulationCo-SimulationCo-Emulation
普及度较高
仿真速度明显提速最大程度的提速
测试规模小规模大规模超大规模
成本较低
易用性便于调试,结果直观,功能覆盖、断言等支持好DUT部分调试非常困难,需要修改测试向量以达到更高的覆盖率提供便捷的调试特性

仿真时间对比
图 4 [ 5 ] 图4^{[5]} 4[5]: 仿真时间对比

  • RTL Simulation,即是纯软件仿真,Testbench和 DUT 都在仿真软件上运行,可以看到设计部分消耗了很多时间
  • TB in SW, DUT in HW,即是Co-Simulation,Testbench 代码在软件中运行,将DUT加载到硬件上运行,相较于 RTL Simulation方案,Co-Simulation仅仅优化了DUT仿真所消耗的时间,同时增加了SW-HW之间的同步时间
  • TBA( transaction-based acceleration) Method,即是Co-emulation

2. 硬件加速实现方法

2.1 专用硬件Emulator

emulation vs FPGA Prototyping

(来源[2])目前业界常使用的硬件仿真器:

  • Synopsis 公司的 ZeBu, Zebu 基于 Xilinx FPGA
  • Candence 公司的 Palladium, 基于专用处理器设计
  • Mentor 公司的 Veloce, 基于专用处理器设计
  • 其他基于FPGA的硬件Emulator
    • Aldec
    • Bluespec
    • Cadence RPP
    • Dini Group
    • S2C
    • HyperSilicon

2.2 硬件加速方式

  1. 基于信号的仿真加速
    基于信号的仿真加速方式,主要思想是,将整个待测设计或是期望加速的待测设
    计的一部分移植到硬件仿真器中,并将验证环境直接与待测设计相连。可综合的待测
    设计部分被放到硬件仿真器中,验证环境与待测设计是基于信号级别相连的,数据会
    串行通过高速通道。 [ 2 ] ^{[2]} [2]
  2. 基于事务的仿真加速
    基于事物的仿真加速方式, 可以更好地发挥硬件仿真器的性能,最小化了主机与硬件仿真器之间的数据,相比于基于信号的仿真加速。 因为在主机上运行的验证环境和在硬件仿真器上执行的待测设计是通过无时序的事物进行交互的,不再是基于周期精准的信号。 [ 2 ] ^{[2]} [2]
    在这里插入图片描述
    图6 [ 2 ] ^[2] [2]: 硬件加速系统结构

2.3 硬件加速实现方法

在这里插入图片描述
图7 [ 1 ] ^{[1]} [1]:软硬件协同仿真系统结构框图

  • 仿真软件
    1. 为FPGA硬件加速提供测试向量(测试激励)
    2. 提供Debug窗口,显示DUT输出向量
  • 软硬件通信模块
    软硬件通信模块是软件硬件协同仿真的核心部件,本质上应该还是目前常用的通信接口,如以太网,PCIE等(猜测,有待进一步确认)。
    1. 硬件端实现(FPGA端):如使用PCIE物理接口,那么可以将FPGA中DUT的输出向量封装成PCIE数据包,通过PCIE接口将数据发送到软件端
    2. 软件端实现(PC端):使用C代码完成向电脑或服务器的PCIE端口发送/接收数据,可以通过SystemVerilog DPI-C接口调用该C代码函数,从而实现软硬件数据交换
  • FPGA硬件加速模块
    1. 待测设计
    2. 时钟源
    3. 缓存DUT输出向量,发送至上位机(软件端)
    4. 缓存DUT测试向量,输送至待测设计
  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值