作者:杨一峰,芯华章科技技术市场经理
文章首发于《中国集成电路》,由国家工业和信息化部主管,中国半导体行业协会主办的官方专业期刊。
之前我们已经对“FPGA开发板”和“原型验证系统”做了详细的对比。
那么,在下篇中,我们将继续进行 FPGA原型验证系统和Emulator硬件仿真器的比较。
先简要的回顾一下FPGA原型验证系统的应用场景,并与Emulator硬件仿真器应用场景作对比:
FPGA原型验证系统
FPGA原型验证系统的主要应用场景是“芯片设计过程中搭建软硬件一体的系统验证环境”:一是芯片流片回来前为软件团队提供调试驱动软件的平台,加速芯片上市时间;二是作为芯片仿真验证的一个补充,因为在FPGA内部可以生成真实电路,并且可以对接真实的硬件子卡,相较仿真使用的软件模型有一定差别,因此可以发现更多隐蔽的bug ;此外FPGA相对软件仿真以及Emulator而言,速度更快,比较适合一些耗时较多的场景case。故在芯片设计规模越来越大的情况下,使用多颗FPGA芯片互联能够快速实现高性能的全系统验证原型,并满足该场景下的调试需求。
Emulator 硬件仿真器
Emulator的主要应用场景是 “芯片设计过程中对完整封闭的设计进行加速仿真并调试”,它与FPGA原型验证系统的主要定位差异在于:能对全芯片进行和芯片时序行为一致的硬件仿真,包括全芯片信号的提取,对全芯片的功能、性能、功耗进行系统级的验证与调试。这一点差别导致了两者系统设计上的巨大差异。用户无需花费大量的时间去考虑如何设计、如何分割、如何布局布线等问题,从而在易用性方面大大增强。
基于FPGA原型验证系统平台和 Emulator硬件仿真平台二者的设计目标和应用场景差异,下面我们分别来介绍一下这两种产品的关键点。
FPGA原型验证系统
随着目前集成电路的不断发展,设计规模的大型化,单颗FPGA板在容量上就显得捉襟见肘,已经无法满足设计需求。以目前国内头部的CPU、GPU设计公司的设计规模,单颗IC芯片的设计体量,需要占用到几十颗Xilinx VU440级别FPGA的情况,已屡见不鲜。在这种背景之下,FPGA系统供应厂商开始着手研究多颗FPGA的系统互联解决方案。其中就包括在单块的PCB板上装配多颗FPGA及多个FPGA系统之间的互联。
经过不断探索,FPGA原型验证平台产品应运而生。之所以称之为“平台”或“系统”,就一定会包含对应的软件和硬件。首先在硬件结构上多颗FPGA互联结构的引入就要求结构上比单板形式的FPGA开发板要复杂的多,其次FPGA芯片厂商提供的软件工具无法支持多片的FPGA分割,需要配套专业的FPGA原型分割相关软件工具。
一套优秀的FPGA原型验证系统,应该具有以下产品特性:
FPGA原型验证系统速度快,但它的缺点也是显而易见的,主要体现在调试的便利性上继承了FPGA自身的一些缺点,比如需借助FPGA内嵌逻辑分析仪来抓取信号排查问题,布局布线耗时冗长,效率不是太高。
其他关于FPGA原型验证系统的详细内容,请参考文《硬件辅助验证产品解读(上篇)- FPGA开发板vs原型验证系统》。
硬件仿真器Emulator
在目前SoC规模越来越大型化的情况下,有的设计甚至达到数百亿ASIC等效门规模,巨大的设计规模导致软件仿真时间上的消耗变得越来越无法忍受。FPGA原型平台在验证规模到达一定级别,FPGA数量太多的情况下,也会带来新的分割问题并且会失去原有的性能优势。硬件仿真器的优势主要在于它独有的、超大规模的硬件结构,尽可能地保证了RTL设计的完整性。从硬件实现上看,一般有基于FPGA和CPU两种架构,对于基于FPGA架构的类型来说(如Synopsys的Zebu系列),可以理解为有很多块FPGA单板,大量的单板与电源、控制等再互相连接起来,形成一个“庞然大物”,优点是仿真性能高,使用商用FPGA可以降低开发成本;对于基于CPU架构的类型来说(如Cadence的Palladium系列),通常会将集成了数以万计的高速CPU核的ASIC芯片焊接在一块巨大的单板上,配以控制、冷却等模块构成一个完整系统。优点在于编译时间短,调试能力强;缺点就是功耗高,需要特别冷却系统和运营成本高,稳定性比较难控制,性能一般也比基于FPGA的硬件仿真系统低些。一般一套Emulator的体积大约从一个冰柜到一台大双开门冰箱的大小,而大型Emulator的重量也可以用“吨”来计算了。本文主要介绍基于FPGA的硬件仿真器。
基于FPGA的原型平台和硬件仿真器,两者的架构和软件上虽有一定的相似之处,但定位不同,Emulator的定位和设计都是指向大容量和全系统仿真级调试,因此软硬件设计上有不同的取舍。综合来看,硬件仿真器的特点是支持超大规模(10亿门级以上)的设计容量,全自动化的软件设置实现流程,基本无需修改硬件连接配置,以及灵活多样的全系统仿真调试能力,包括:
目前,主流的Emulator工作特点,基本上包括以下几种:
其次,在多用户的支持方面,Emulator系统可以支持较多的用户同时在线使用,实现资源的灵活调度;而FPGA原型系统目前也有可以支持多用户的场景,但因为产品在时钟资源分配等方面存在着局限性,所以实际很少采用。
总结
最后,我们再来看一下FPGA原型验证系统和硬件仿真器Emulator之间的对比表格:
下面的图例便于读者更容易的理解它们二者之间的关系:
从系统的特性上看,FPGA 原型系统支持多FPGA、自动分割;性能较高的情况下运行系统软件;仿真加速器的超大容量可以放全芯片的设计,进行全芯片的系统功能/性能/功耗验证。从应用场景上看,我们看到原型系统和仿真加速器在软硬件协同设计方面,有一定的交集。
以上就是关于FPGA原型验证系统和硬件仿真器这两种不同的数字设计验证平台的对比介绍,谢谢!