FPGA原型验证系统VS硬件仿真器

2022-05-25 20:41:47 来源:杨一峰,芯华章科技技术市场经理

FPGA原型验证系统

FPGA原型验证系统的主要应用场景是“芯片设计过程中搭建软硬件一体的系统验证环境”:一是芯片流片回来前为软件团队提供调试驱动软件的平台,加速芯片上市时间;二是作为芯片仿真验证的一个补充,因为在FPGA内部可以生成真实电路,并且可以对接真实的硬件子卡,相较仿真使用的软件模型有一定差别,因此可以发现更多隐蔽的bug ;此外FPGA相对软件仿真以及Emulator而言,速度更快,比较适合一些耗时较多的场景case。故在芯片设计规模越来越大的情况下,使用多颗FPGA芯片互联能够快速实现高性能的全系统验证原型,并满足该场景下的调试需求。

 

Emulator 硬件仿真器

Emulator的主要应用场景是 “芯片设计过程中对完整封闭的设计进行加速仿真并调试”,它与FPGA原型验证系统的主要定位差异在于:能对全芯片进行和芯片时序行为一致的硬件仿真,包括全芯片信号的提取,对全芯片的功能、性能、功耗进行系统级的验证与调试。这一点差别导致了两者系统设计上的巨大差异。用户无需花费大量的时间去考虑如何设计、如何分割、如何布局布线等问题,从而在易用性方面大大增强。


基于FPGA原型验证系统平台和 Emulator硬件仿真平台二者的设计目标和应用场景差异,下面我们分别来介绍一下这两种产品的关键点。

 

FPGA原型验证系统


随着目前集成电路的不断发展,设计规模的大型化,单颗FPGA板在容量上就显得捉襟见肘,已经无法满足设计需求。以目前国内头部的CPUGPU设计公司的设计规模,单颗IC芯片的设计体量,需要占用到几十颗Xilinx VU440级别FPGA的情况,已屡见不鲜。在这种背景之下,FPGA系统供应厂商开始着手研究多颗FPGA的系统互联解决方案。其中就包括在单块的PCB板上装配多颗FPGA及多个FPGA系统之间的互联。


经过不断探索,FPGA原型验证平台产品应运而生。之所以称之为“平台”或“系统”,就一定会包含对应的软件和硬件。首先在硬件结构上多颗FPGA互联结构的引入就要求结构上比单板形式的FPGA开发板要复杂的多,其次FPGA芯片厂商提供的软件工具无法支持多片的FPGA分割,需要配套专业的FPGA原型分割相关软件工具。


一套优秀的FPGA原型验证系统,应该具有以下产品特性:

基于模块化的设计,可灵活扩充与裁剪的验证平台规模

在保证一定的高速仿真性能的前提下,提供设计完整性

提供从软件早期开发到系统级验证的解决方案

提供从综合、自动模块分割、布局布线、FPGA bit产生、下载、在线/离线Debug的整套流程

提供丰富的调测手段,帮助用户快速定位问题,易于设计的快速Bring Up

提供丰富的接口子板和外部真实设备相连

提供软件接口与外部工具构成复杂的调试解决方案

提供丰富的IO接口,以及高速Serdes接口用于partition互连以及外设子卡的互连

 


FPGA原型验证系统速度快,但它的缺点也是显而易见的,主要体现在调试的便利性上继承了FPGA自身的一些缺点,比如需借助FPGA内嵌逻辑分析仪来抓取信号排查问题,布局布线耗时冗长,效率不是太高。

 

硬件仿真器Emulator


在目前SoC规模越来越大型化的情况下,有的设计甚至达到数百亿ASIC等效门规模,巨大的设计规模导致软件仿真时间上的消耗变得越来越无法忍受。FPGA原型平台在验证规模到达一定级别,FPGA数量太多的情况下,也会带来新的分割问题并且会失去原有的性能优势。硬件仿真器的优势主要在于它独有的、超大规模的硬件结构,尽可能地保证了RTL设计的完整性。从硬件实现上看,一般有基于FPGACPU两种架构,对于基于FPGA架构的类型来说(如Synopsys的Zebu系列),可以理解为有很多块FPGA单板,大量的单板与电源、控制等再互相连接起来,形成一个“庞然大物”,优点是仿真性能高,使用商用FPGA可以降低开发成本;对于基于CPU架构的类型来说(如Cadence的Palladium系列),通常会将集成了数以万计的高速CPU核的ASIC芯片焊接在一块巨大的单板上,配以控制、冷却等模块构成一个完整系统。优点在于编译时间短,调试能力强;缺点就是功耗高,需要特别冷却系统和运营成本高,稳定性比较难控制,性能一般也比基于FPGA的硬件仿真系统低些。一般一套Emulator的体积大约从一个冰柜到一台大双开门冰箱的大小,而大型Emulator的重量也可以用“吨”来计算了。本文主要介绍基于FPGA的硬件仿真器。


基于FPGA的原型平台和硬件仿真器,两者的架构和软件上虽有一定的相似之处,但定位不同,Emulator的定位和设计都是指向大容量和全系统仿真级调试,因此软硬件设计上有不同的取舍。综合来看,硬件仿真器的特点是支持超大规模(10亿门级以上)的设计容量,全自动化的软件设置实现流程,基本无需修改硬件连接配置,以及灵活多样的全系统仿真调试能力,包括:

 

信号的追踪深度更深(达数十亿仿真周期)

信号的条件触发、动态探针插入、离线调试

拥有不限量的时钟域,它们可以从核心时钟资源中无限衍生

全系统范围的调试追踪

带有UVM验证方法学的协同加速仿真

软硬件的协同验证、测试接口的虚拟化支持

系统功耗与性能预估、分析


目前,主流的Emulator工作特点,基本上包括以下几种:

 

基于Cycle级的软硬件联合仿真

基于ICE ( In-Circuit Emulator )模式: 一种最为传统的,理论上运行速度最快的模式。这种模式下需要在硬件中集成被测试逻辑单元及测试逻辑,或者通过外设硬件输入激励;且往往需要用到Speed Adapter以实现外围高速硬件和硬件仿真器在工作频率上的桥接。由于Emulator本身的运行频率不高,那么和外部的设备,如PCIE/SATA/USB等连接时需要通过速度匹配设备,通过缓存来匹配快速端的速度进行适配

基于事务级(Transaction)的软硬件联合仿真;这种情况下,被测试的逻辑部分运行在Emulator的硬件里面;硬件通过一套完整的软件及驱动、物理通道和Host Server实现连接。这种方式下可以使用多样的SW model Library,常见的有PCIE/AMBA bus等。虽然说它的运行速度没有ICE模式快,但是在软件上的功能和方法支持非常丰富。这种方式也被认为是软件Simulator的硬件化

提供丰富多样的虚拟解决方案:包括Virtual Host(Qemu/VDK),Virtual Device(例如基于Chiplet的Die to Die 模型),Virtual memory models(各类协议的存储器模型SDRAM/Flash/SRAM/EEPROM),Transactors(AMBA/PCIe),Hybrid Mode(CPU Models+ DUT in Hardware)

多种模式的探针工作方式:静态探针、动态探针、全景探针和定制探针组等


其次,在多用户的支持方面,Emulator系统可以支持较多的用户同时在线使用,实现资源的灵活调度;而FPGA原型系统目前也有可以支持多用户的场景,但因为产品在时钟资源分配等方面存在着局限性,所以实际很少采用。

 

总结


最后,我们再来看一下FPGA原型验证系统和硬件仿真器Emulator之间的对比表格:
图片4.png

下面的图例便于读者更容易的理解它们二者之间的关系:
图片3.png

从系统的特性上看,FPGA 原型系统支持多FPGA、自动分割;性能较高的情况下运行系统软件;仿真加速器的超大容量可以放全芯片的设计,进行全芯片的系统功能/性能/功耗验证。从应用场景上看,我们看到原型系统和仿真加速器在软硬件协同设计方面,有一定的交集。

  1. EETOP 官方微信

  2. 创芯大讲堂 在线教育

  3. 创芯老字号 半导体快讯

相关文章

全部评论

  • 最新资讯
  • 最热资讯
@2003-2022 EETOP

京ICP备10050787号   京公网安备:11010502037710