基于软件仿真工具对于动辄几百万门的ASIC验证而言,几乎显得力不从心。不管是从成本还是从性能的角度来看,使用硬件仿真器或者基于FPGA的原型验证平台,几乎是验证工程师的不二法门。因为基于硬件的环境能够极大的提高验证的速度,增加代码覆盖率,缩短产品的面试时间。原型验证平台的另外一个重要角色,就是能够为整个系统的固件和软件提供一个早期而真实的硬件环境,在流片之前对系统进行整体的性能评估和瓶颈分析。
但是到底是选择硬件模拟器,还是基于FPGA 的原型验证平台来加速 ASIC验证,对于很多团队而言都是一个复杂而艰难的选择。对于平台选择的过程,需要考虑的因素非常多、往往既包括技术因素又包括成本考虑:硬件模拟器的容量,运行速率,硬件成本,代码覆盖率,技术支持,等等。选择某一个平台的最终目标就是尽可能多地发现隐藏的问题和进行可行性分析。基于FPGA的原型验证平台比基于定制处理器的平台会有更多的限制,甚至某些时候,在多芯片划分、逻辑综合、物理实现方面会遇到难以克服的问题。
专业术语
并没有一个固定的术语来描述各种硬件加速平台的名称,诸如硬件模拟器、原型验证平台、软硬件协同仿真、在线仿真都是可以互换的概念,并且他们之间也没有明确的定义划分。
但是硬件模拟器和原型验证平台之间还是有差异:硬件模拟器通常能够提供像软件仿真工具一样的调试能力,因此硬件模拟器使用的范围相当宽广:从模块级别的软件仿真,到整个芯片级别的在线调试。另外硬件模拟器整合了更为强大的设计流程,并且支持‘编译-调试’一步完成。相对来讲原型验证平台则缺乏调试的灵活性,因此常常用于流片之前的系统集成与软件调试。原型验证平台往往只需要相对简单的开发板和软件工具。
但是原型验证平台所具有的执行速度却是硬件模拟器无法匹敌的:前者往往可以运行在10 MHz级别,后者只有几 MHz级别。而且就价格来讲原型验证平台也便宜得多。
除了硬件模拟器和原型验证平台,仿真加速工具(软/硬件协同仿真工具)也可以为验证提供加速服务。顾名思义,软/硬件协同仿真工具就是将整个设计的一部分下载到硬件平台中运行,这部分通常都是可综合的RTL源代码。运行在软件仿真工具的测试平台通过专用协议接口(JTAG、Ethermet、PCle或者其他高速接口)和硬件平台通信。Xilinx的仿真工具ISIM 就支持这种方式的硬件加速。
硬件架构
硬件加速平台根据架构分为两种:基于FPGA的原型验证平台,基于定制处理器的硬件模拟器。基于FPGA 的平台在价格上有较大优势,而且执行速度快得多,通常用于ASIC的原型验证阶段。硬件模拟器则由成百上千的定制处理器构成,能够为整个验证提供全功能的各种调试方法,并且具有更大的处理容量和更快的编译速度。
硬件成本
和基于FPCA 的原型验证平台相比,硬件模拟器的价格可能超过数百万美元。通常商用硬件加速平台的价格和其处理容量成正比。除了平台本身之外,一些额外的附加费用往往也难以避免,包括整机维护、用于验证的库模型、交易级模型、附加增强工具、外设模拟器等。
由于购买硬件加速平台的价格不菲,因此许多公司开始提供租赁服务。原因很简单,从验证到流片的时间都比较短(通常为几个月),因此租用往往比购买更加划算。
在硬件加速平台的选择中,通常用来考核的指标有单位逻辑门的费用和单位运行周期的费用。
处理容量
通常使用2输入逻辑的等效门来描述硬件模拟器或者原型验证平台的处理容量,这主要是为了方便比较不同硬件平台的处理能力。不同的硬件平台的处理容量可以从几百万门到高端的数十亿门。关于 ASIC处理容量的不同估计方法,感兴趣的读者可以关注公众号,会持续更新。
片内存储
许多 ASIC设计需要大量的片内存储空间来实现嵌入式处理器、系统缓存、FIFO、包缓冲器和其他的应用。硬件模拟器和原型验证平台都能够提供这样的存储空间,其大小从MB级到TB级不等。
模拟器的运行速度
关于模拟器运行速度的估计,感兴趣的读者可以关注公众号,后续会持续更新!
多芯片划分
通常ASIC的规模要远远大于FPGA,因此需要把整个设计划分到多颗FPGA芯片中才能完成其所有的功能。芯片的划分工作绝不是简单地将不同的模块放置到不同的 FPGA中那么简单,这个过程需要考虑到整个平台的成本、性能、规模,甚至划分的难易程度。这是一项需要反复优化的复杂过程。
软件工具
提供硬件加速平台的供应商,同时也提供各种功能的软件开发包:多芯片自动划分工具,针对该平台而优化的综合工具,在线调试工具,等等。正所谓“工欲善其事,必先利其器”,选择高性能的软件开发工具能够极大地提高验证效率。
最新的高端FPGA无论是从逻辑容量、可用引脚数目还是内部存储单元来讲,都使其成为硬件加速平台变得可行,而这些平台足以满足中小规模的ASIC验证。
设计支持特定任务的硬件加速平台能够充分发挥FPGA的性能优势,使得运行在芯片所支持的最高速率。在某些验证中,能够在200 ~300 MHz的速率下运行。
设计支持特定任务的硬件加速平台能够获得商用硬件平台无法提供的特殊功能和性能。比如能够支持超大容量的外部存储器,能够支持10 Cbps的以太网通信接口,并且能够支持 FPGA 芯片之间的特殊连接方式。
开发特定的硬件加速平台所需的时间和资源是相当大的挑战。由于硬件加速平台的生命周期很短(往往不到1年时间),因此如果购买成熟的商用产品,工程师就有更多的时间投入到ASIC的验证上,而不是在硬件加速平台的开发上花费过多的时间和资源。
到底选择哪种方案能有更好的性价比,这没有确定的答案。因为影响决策的因素很多:设计该平台的难度,工程团队的技术力量,需要生产的零件数目,等等。
第三方硬件模拟器和原型验证平台
以下是一些主流的硬件模拟器、原型验证平台及其工具。
1,平台:VU19P FPGA原型验证平台
业界最大FPGA VU19P 原型验证平台
可编程系统集成
900 万个系统逻辑单元
PCI Express® Gen3x16 / Gen4 x8增强的路由、逻辑和时钟
更高的系统性能
UltraScale™ 架构带来的高性能,2,072 个 GPIO
支持高达 8 组 72 位 DDR4,提供 1.5Tb/s 存储带宽
80个具有 4.5Tb/s I/O 带宽的高速收发器
2,平台:Incisive Palladium
公司:Cadence
http:// www.cadence. com/products/sd/palladium_series/ pages/ default . aspx
图2是Cadence公司的 Incisive Palladium Enterptise Simulator高性能硬件模拟器,它使用多颗自定义处理器作为核心来完成各种验证任务。Palladium平台有面向编译速度而优化的引擎;针对该平台而开发的生态系统:验证库,软件包;支持系统级软/硬件协同验证的硬件模块。该平台的关键指标为(来源:Cadence Palladium数据表):
·逻辑容量:高达20亿逻辑门
·存储空间:高达1TB
·1O引脚:多达6万个
·运行速度:高达4 MHz(硬件模拟器速度)
·编译时间:每个工作站上1~3千万逻辑门/小时·支持交易级模型和基于断言的加速
. SpeedBridge转接卡支持PCle、Ethernet 、USB、AXl等多种外设接l1协议Palladium是用于ASIC验证的硬件加速平台的市场领导品牌。
平台:Veloce
公司:Mentor Graphics
http;//www.mentor.com/products/fv/emulation-systems/veloce
高性能的Veloce产品系列常常用于仿真加速、流片之前的验证。它基于定制化的处理器结构、其5条产品线可以支持8百万门到超过5亿门的逻辑验证。
平台:ZeBu-Server
公司:Synopsys
http://www.synopsys.com/Tools/Verification/hardware-verification/emulation/ Pages/ zebu-server-asic-emulator. aspx
ZeBu-Server是基于FPGA 系统的验证加速平台,可以支持高达10亿门的逻辑设计,而且执行速度能够达到30 MHz。ZeBu-Server瞄准的是大规模多核芯片的系统验证任务。基于Xilinx Virtex-5 LX330的ZeBu-Server是现在市场上性能最高的验证加速平台。
产品:RocketDrive,RocketVision
公司: GateRocket
http:/ / www.gaterocket.com
GateRocket公司的RockeDrive属于基于 FPGA 的小型外设,能够提供硬件语言仿真工.具的加速功能。而RocketVision则是配套的调试软件。
产品: HES
公司: Aldec
http:// www. aldec.com/ en/products/emulation/ hes-dvm
Aldec公司的硬件模拟系统(HES)是专用于仿真加速的FPGA原型验证平台。该工具的强项在于能够提供自动化吃的编译环境、标准的测试接口,并且能够整合其他高性能的软/硬件调试工具。
公司:Dini Group
http://www. dinigroup. com/new/index. php
Dini Group公司能够提供高性能的FPGA 原型验证平台和硬件模拟器。图3显示了 DiniGroup公司的FPGA 原型验证平台,它采用了16颗Xilinx Virtex-5 FPGA芯片。
更多有趣的话题请看链接:
FPGA知识汇集-FPGA项目开发包含那些任务?
FPGA知识汇集--FPGA结构(1)
FPGA的应用
FPGA知识汇集-在命令行模式下使用Xilinx工具
FPGA知识汇集-ISE的这些有用的工具您知道吗?
FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?
FPGA知识汇集-值得收藏的FPGA代码命名规范?
FPGA 知识汇集--Linux下ISE的环境变量设置
FPGA知识汇集-值得收藏的Verilog代码风格1
FPGA知识汇集-值得收藏的Verilog代码风格2
FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结
FPGA知识汇集-Verilog和VHDL的混合使用
FPGA知识汇集-关于Xilinx 工具报告
FPGA知识汇集-例化与推译
FPGA知识汇集-FPGA的重构