在FPGA和ASIC(包括SoC)等IC产品设计开发过程中,芯片烧写定型(FPGA产品)或者Tape-Out (ASIC产品)之前的系统集成测试阶段一般都会进行硬件加速仿真。硬件加速仿真的目的是利用物理硬件高速运行的特点消除软件仿真器导致的仿真性能瓶颈,使得系统仿真的速度得到成千上万倍的提高。
硬件加速仿真拥有软件仿真所不具有的高速特性,因为采用硬件的方式实现验证对象,其仿真运行速度接近最终产品的现实速度。虽然硬件加速仿真方法具有高速的特性,但却是以降低调试能力为代价的,如何在高速仿真下提供更强的调试能力成为硬件加速仿真方法所关注的焦点之一。
ASIC设计和SoC的硬件加速仿真面临了更多的挑战。并且ASIC和SoC产品的NRE(投片费)费用随着工艺的进步呈现高速的增长,一次失败的流片不仅仅导致产品上市时间的推迟也提高了产品的开发成本。这些挑战包括:
1. 如何把ASIC设计代码应用于基于FPGA的硬件加速电路板上?
2. 如何将大型设计划分到多颗FPGA芯片进行加速仿真?
3. 如何实现SoC的软/硬件加速协同验证?
4. 如何实现设计内部信号的调试?
5. 如何实现不依赖于HDL仿真器的C/C++/SystemC测试激励,以消除软件仿真器带来的性能瓶颈?
6. 如何实现GUI软件方式的交互调试平台?
Aldec公司的HES硬件仿真加速系统为上述问题提供了最佳的解决方案。HES系统能够自动地将ASIC设计代码中的门控时钟逻辑转换为FPGA设计中的时钟使能逻辑,能够自动地将ASIC设计中的存储器模型转换成FPGA片内或片外存储器。用户可以通过在计算机中插入多块带PCI接口的HES硬件加速板,并通过DVM(Design Verification Manager)工具自动地将大型设计划分到多颗FPGA芯片中去。在HES系统中,用户可以在RTL级或EDIF网表级指定需要追踪的设计内部信号,并由DVM自动完成相关的代码修改等工作。DVM还提供了丰富的API接口函数,屏蔽了硬件加速板的驱动问题,允许用户通过C/C++/SystemC代码直接控制和访问硬件仿真加速电路板,无须通过HDL软件仿真器提供测试激励;例如编写基于C的Testbench,编写用户自定义开发的GUI软件等。
对于SoC的硬件加速仿真,HES系统还提供了软件代码的调试能力。通过HES硬件加速板与ARM等处理器子板相连在硬件上实现SoC设计,然后通过ARM子板上的Emulator接口和计算机中的IDE软件调试器实现软件代码的调试能力。在软件代码调试的同时,用户还可以通过HDL仿真器或自定义开发的GUI应用软件实现硬件部分的仿真调试。
HES硬件仿真加速系统
在IC产品的设计开发过程中,大约有60%~90%的时间被用于设计的反复调试、仿真验证、原型验证以及硬件测试;提高验证工作的效率对缩短产品上市时间和满足日益复杂的设计验证需求起到至关重要的作用。软件仿真器的仿真速度提升空间有限,无法解决日益突出的设计规模越来越大和复杂而开发周期急剧缩短的矛盾,因此必须寻求一种新颖的和可行有效的方法。Aldec公司及时地推出了硬件仿真加速系统—HES (Hardware Embedded Simulation accelerator )。
硬件仿真加速系统(HES)采用了增量原型技术,在不同的设计验证阶段可以把用户设计中的模块以递增的方式移植到硬件中,随着用户设计中硬件移植比例的增加,仿真速度逐渐提升。以往在HDL软件仿真器中需要运行数天的验证工作在HES系统中只需要几分钟即可完成。HES系统针对ARM、MIPS等嵌入式系统及存储器设计有专门的解决方案,可以大大提高仿真验证速度及软硬件协同验证调试的灵活性。HES系统的使用非常简单,它不需额外的JTAG接口,电缆以及电源等,完全通过PCI总线接口实现和主计算机的通信。
HES系统中的硬件加速板采用PCI总线(支持32和64位PCI总线)在软件和硬件之间建立了连接,并且利用先进的技术解决了硬件和软件速度不一致的问题,保证了加速仿真的结果和实际结果完全一致。HES系统通过DVM(Design verification manager)工具把硬件模型和软件仿真器连接到一起,DVM可与任意软件仿真器组成强大的IC验证系统。HES硬件加速板通过子板(Daughter Board)接口实现级联,以满足大型系统的验证需求;HES硬件加速板还支持网络化的团队设计。HES的硬件加速板有多种不同型号,支持Xilinx和Altera多种FPGA器件,设计师可以根据设计规模等选择满足自己需要的HES硬件加速板。目前单块HES板最大可以支持1200万门的设计,多板级联可以对高达4800万门的设计进行验证。
针对于带有大量存储器的设计,HES提供了专门的解决方案。普通HES硬件加速板上带有128M bit的存储器,包括DDR、SDRAM、SSRAM、DPRAM等类型;只需通过DVM设置外部存储器(FPGA芯片以外)。针对用户的大容量存储器设计(大于128M bit),Aldec公司提供了带有大容量存储器的HES硬件加速板,如提供256M bit存储器的HES1x2000板。用户也可以级联多块HES硬件加速板,增加对设计和存储器的加速仿真能力。除此之外,用户还可以通过插入子板(Daughter Board)的方式实现大容量存储器,Aldec公司为用户提供了多种大容量存储器子板。
图1显示了HES系统快速实现硬件加速仿真的流程。其中包括了SoC的软/硬件加速协同验证流程。

图 1: Aldec公司的HES硬件仿真加速系统的开发流程。
用HES系统快速实现高级硬件加速仿真
HES系统可以快速实现系统集成测试阶段的硬件加速仿真应用。并且通过开放的API编程接口,用户能够开发自定义的测试应用程序,例如开发带GUI图形界面的交互式控制软件。DVM(Design Verification Manager)工具能够自动实现设计代码到多颗FPGA芯片的划分,并且自动完成ASIC代码到FPGA代码的转换,例如门控时钟逻辑到时钟使能逻辑的转换,存储器IP的自动转换等。HES系统还提供了设计内部的调试能力,用户在DVM中可以指定RTL级或网表级需要追踪的内部信号,并有DVM自动完成代码修改等操作;除此之外,HES系统还支持Xilinx公司的ChipScope片内逻辑分析器。
通过API编写无须HDL仿真器的C/C++测试激励程序
DVM工具提供了C/C++ API应用编程接口。用户可以通过API直接访问和控制硬件仿真加速电路板:如开发C语言的测试激励,开发带有GUI图形界面的交互式控制软件。
通常,硬件加速仿真系统的加速性能受到HDL软件仿真器的限制。通过编写独立于仿真器的C/C++测试激励程序能够最大程度上消除仿真器带来的性能瓶颈。
除了编写C/C++测试激励程序外,用户还可以编写更高级的应用程序,例如在Visual C++环境中开发带GUI图形界面的高级应用程序。DVM可以自动产生基本的C-Testbench代码,里面包含了基本的API函数调用,例如硬件加速板的初始化函数等。用户可以在此基础上快速开发自定义的C代码。
内部信号的仿真调试
硬件加速仿真的方法通常需要以降低调试能力为代价来获得高速的仿真。HES硬件仿真加速系统不仅仅可以实现高速仿真,还为用户提供了内部信号的调试能力。在DVM工具中,用户可以在RTL级或EDIF网表级指定需要追踪的内部信号,DVM将自动完成代码修改等相关工作。在后续的仿真过程中,这些内部信号与外部信号一样可以进行波形观察、端点设置、信号数据流追踪等操作。
DVM将自动完成图2所示的PCI接口驱动程序的控制,PLI、VHPI、FLI语言接口的编程工作。用户需要做的只是告诉DVM哪些内部信号是需要仿真调试的。

图 2: DVM API接口函数的应用。
设计的自动划分
对于单颗FPGA芯片或单块HES硬件加速电路板无法容纳的大型设计,可以通过在计算机主板上插入多块HES硬件加速板来提供更大容量的FPGA等硬件资源。多块HES硬件加速板最大可以容纳1亿门级的大型设计。
除此之外,DVM工具能够自动完成设计的自动划分。用户只需要指定哪些代码模块实现在哪块HES硬件加速板上,然后由DVM自动完成设计划分,综合,以及最后的布局布线。甚至用户可以不指定划分的方式,由DVM来自动选择哪些代码模块实现在哪块HES硬件加速板上。

图 3:系统设计内部信号的仿真调试。
SoC加速软/硬件协同验证
SoC设计中的软/硬件协同验证技术一直以来都是工程师们关注的热点。在传统的SoC开发流程中,软件开发工程师与硬件设计工程师在原型电路板加工完成之前没有交互的过程。软件工程师在软件IDE环境中进行代码的设计与调试。代码调试完成时,软件工程师必须等待原型设计;直到原型电路板加工完成后,才能将软件代码集成到硬件平台上进行软硬件集成测试验证。由于软件开发和硬件设计过程中没有交互,软、硬件设计中的许多bug需要等到软件代码集成到原型电路板中以后才会被发现。在项目设计流程后期阶段才发现的bug往往会给工程师带来巨大的痛苦,很大程度上增加了整个项目的开发周期,同时降低了产品的设计质量。

图 4: HES系统中的SoC加速软/硬件协同验证。
软/硬件协同验证的方法能够将软、硬件设计工程师尽早协作在一起。通过软、硬件交互调试将设计中的大部分bug,尤其是软、硬件接口bug消除在开发流程的早期,保证产品的设计质量,并降低了设计反复的风险从而缩短产品的上市时间。
HES系统不仅提供了SoC的软/硬件协同验证能力,同时通过将硬件模型实现到HES硬件加速板和FPGA芯片中最大程度上加快了软/硬件协同验证的速度。

图 5 :使用HES系统快速实现各类IC设计的原型验证平台。
HES系统还能够将ARM或MIPS处理器核的指令存储器指定到不同的位置,以提供不同的取指仿真速度和调试要求。例如用户可以将指令存储器指定放在ARM子板上以获取最快的取指速度;也可以将指令存储器指定到HES硬件加速板上,在较快的取指速度下获得一定的调试能力;用户还可以将指令存储器作为硬件模型放在HDL仿真器里的testbench中以获取最强的指令存储器动作的调试能力。
快速实现各类IC设计的原型验证平台
当IC设计在最后阶段达到稳定时,一般需要进行长时间的、实时的测试验证。同时需要将整个设计转变为物理电路,通过真实的物理激励信号测试设计在真实的物理环境中是否能够正常的工作;因此在设计的最后阶段往往要进行基于FPGA的原型设计验证。HES系统除了提供上述的高级硬件加速仿真解决方案外,还能够快速地实现各类IC设计的原型验证平台。
DVM为原型验证平台提供了特定的API函数库。通过这些函数库,用户可以开发自定义的可视化C/C++程序,作为IC设计原型验证阶段的可视化人机交互控制接口。
将HES系统实现的各类IC设计原型验证平台通过PCB板上的子板接口,用户可以将原型设计与其它外部设备或PCB进行连接,例如逻辑分析仪、硬件激励产生器等。通过自定义开发的应用程序,用户可以在原型验证过程中加入人机交互控制。
支持Xilinx的 ChipScope片内逻辑分析工具
Xilinx公司的ChipScope片内逻辑分析工具为用户提供了FPGA芯片内部信号的调试分析能力。
要使用Xilinx ChipScope工具必须首先在设计代码中插入ChipScope核,DVM能够自动在设计代码中插入ChipScope核。在原型硬件完成后,通过JTAG接口和ChipScope软件工具,用户能够对预先在DVM中指定需要追踪的内部信号进行调试分析,参见图5。
本文小结
Aldec公司的HES系统能够提供各类IC设计的各个验证阶段的解决方案,包括硬件加速仿真,SoC软/硬件加速协同验证和硬件原型验证等。
通过开放的API接口函数,用户可以自定义开发应用程序来访问和控制HES硬件加速板,例如无须HDL仿真器的C/C++激励程序,带GUI图形界面的人机交互控制程序等。对于大型IC设计,HES系统能够自动进行设计划分并自动实现到多块HES硬件加速板和FPGA芯片中。通过在HES系统中指定需要追踪的内部信号,HES系统将自动完成所需的代码修改等工作,并在后续的硬件加速仿真和原型验证(通过Xilinx ChipScope工具)中实现对内部信号的调试分析。通过将ARM或MIPS子板与HES硬件加速板相连,用户可以快速实现SoC加速软/硬件协同验证。
除了实现各类IC设计的硬件加速仿真外,HES系统还能够快速实现各类IC设计的原型验证平台,通过开放的原型API接口函数,用户可以开发用于原型验证的可视化人机交互控制程序。通过JTAG接口和Xilinx ChipScope实现FPGA芯片内部信号的调试分析。通过HES硬件电路板的子板接口实现原型设计与外部硬件或电路板的互连,例如逻辑分析仪、示波器或硬件激励发生器等等。
作者:王翔
区域技术经理
Aldec中国
京公网安备 11011202001138号
