关键词:高层次综合;Catapult Synthesis;验证;IP复用;DSP;吞吐率
1.引言
随着市场对3G、4G、WiMAX、WLAN、UWB、MPEG4、H264、VC1等应用的追捧,其设计规模和复杂度的增加使得设计者需要考虑的问题越来越多,而激烈的市场竞争也使得电子产品上市时间的压力越来越大,采用传统的RTL级设计已导致了许多估计不到的难度:
1) 如何能够在上市时间的巨大压力之下,快速的找到一种优化的结构来实现?
2) 由于系统设计和RTL 设计之间存在鸿沟,如何避免理解上的偏差,减少RTL 设计中的错误?
3) 如何根据接口定义和要求的变化,快速实现RTL 设计?
4) 如何快速验证RTL 是否与原有的算法匹配?
5) 如何进行产品的差异化开发,如何真正做到IP 的Reuse?
因此,需要采用更高抽象层次的设计方法来满足新的设计需求。Mentor公司的Catapult Synthesis 高层次综合工具套件帮助硬件设计工程师将设计抽象层次提高到ANSI C++,使得下一代无线、卫星、视频和图像处理等应用中需要的高性能复杂ASIC和FPGA硬件的快速实现成为可能。
图1. 不同抽象层次描述对性能的影响。 |
2. 微结构分析和优化
Catapult Synthesis是业内第一个也是最成熟的综合无定时的ANSI C++的产品,它采用自动生成的方法,避免了手工编码引入设计的错误,且速度比手工编码的方法快10-20倍。由于传统的设计方法是劳动密集型的,它们几乎没有给设计者留下评估其它可选架构的时间。硬件设计者被迫提前对架构的进行选择,从而不可避免地导致非优化的硬件实现;像SystemC/HandelC 那样的硬件化语言,需要将硬件实现的细节在代码中规定,因而其对微架构的尝试也很有限,而ANSI C++代码并没有规定硬件实现细节,可以在整个设计空间中探索,并能快速探索不同的微架构对实现结果得影响,从而可以快速找到一种性能、面积和功耗之间适当折衷的最佳实现方案,如图1所示。
3.创新的设计流程
世界上领先的公司之所以可以持续领先,就在于其产品的上市时间比其竞争对手短。目前设计流程中系统设计与硬件设计之间有明显的断层,根据Collett International Research作的一项调查表明78%的产品不能按期完成正是由于原始系统级规格(C/C++ 或Spec)转译成RTL描述时的错误造成的。
利用Mentor的Catapult设计流程,由定点的C++代码直接综合出可综合的RTL代码,如图2所示。该流程的好处是工具自动解析C++的代码,不会因为硬件设计者对C++代码的理解上的偏差而造成设计上的缺陷,并且可以节省大量的RTL设计、调试和优化RTL代码的时间。如果需要进行原型板验证,可以在Catapult综合时指定所用FPGA型号和期望的频率,即可生成的针对该FPGA型号优化的RTL代码,同时也生成了Precision综合的脚本,双击该脚本可直接调出Precision RTL进行RTL综合,然后利用相应的布局布线工具进行布局布线,最后下载到FPGA中进行板级验证。为了保证硬件设计者能创造出最佳的设计实现, Catapult Synthesis 通过与领先的第三方工具提供商(如Synopsys Design Compiler)的密切合作为时序验证和功耗估计提供了确定的设计流程。顺序等效性验证流程(Calypto SLEC)可在系统级输入模型和输出的RTL 设计之间方便地证明功能的等效性,即为纯粹的ANSI C++源代码和输出RTL 代码提供了形式验证的途径。功耗估计流程(Sequence PowerTheater)使设计者在设计如消费类和移动通信产品等功耗敏感的应用时能够精确地估计设计的功耗。因此采用该创新的设计流程,可以得到面积、延迟和功耗三者最佳的折衷解决方案。
图2. 创新的Catapult设计流程。 |
4. 层次式设计和接口综合能力
在设计之初,Catapult Synthesis可帮助设计者确定和分析可能的设计层次,允许设计者交互选择优化的层次结构。一旦设计者决定了合适的层次结构,Catapult Synthesis运用其层次式引擎为各个函数综合出具有独立有限状态机,控制逻辑和数据通路的并行层次式子系统。
考虑到实际的项目开发过程中,系统的Spec往往会随着市场对项目的需求的变化而发生改变,且往往导致部分RTL代码的重新编写,延误了项目的进度。而Catapult Synthesis 不需要在源码上嵌入接口协议,它采用纯的ANSI C++描述作为它的输入,并采用专利的接口综合工艺来控制设计接口上的时序和通信协议。这使得设计者可以针对各种微架构和接口设计执行详细的what-if 分析,大幅减少RTL的实现时间,改善设计流程的可靠性,降低硬件开销,保持产品的竞争优势。相对于其它的高层次综合工具而言,Catapult Synthesis不仅提供了丰富的硬件接口如流接口、单端口或双端口RAM、硬件握手、FIFO、AMBA以及许多其它内嵌的I/O元件,还通过支持含FIFO的流通道、乒乓存储器、共享存储器和通道深度和宽度调整来自动保证层次式模块之间的数据通信的正确性,如图3所示。此外,Catapult Synthesis 的库编译器可以提供定制或具有特定属性的I/O元件,使得设计者能够将存储器,IP,DesignWare和现存的RTL代码提升为定制的库单元,从而进一步增强设计的性能,显著减少项目的开发周期。
图3. Catapult Synthesis 提供的接口综合能力。 |
5.产品的差异化开发和DSP 算法的快速高性能实现
市场竞争的日益加剧,顾客对产品的需求划分更加细化,而丰富和完善的产品线可以加深顾客对商家品牌的认知度。原来在开发相应的高、低端产品时,往往需要重新进行RTL 代码的设计,延误市场先机,而Catapult Synthesis 可以帮助解决这一问题。就打印机而言,从低端家庭打印机到高端网络打印机的所有产品的基本算法都是相同的。然而,不同打印机类型在数据通信、处理、存储需求上的重大差异要求那些算法有明显不同的实现,包括不同的存储器架构和通信总线架构。如果采用基于RTL 的方法就需要对每一代打印机所需的架构上的重大修改, Catapult Synthesis 可以根据高、低端的不同需求而施加相应的硬件约束条件,自动并快速生成RTL 代码,从而节省了大量的项目开发时间。
图4. Catapult Synthesis 交互式的微结构约束界面。 |
Catapult Synthesis为设计者如何综合成高性能硬件提供了全面的控制。利用同一个C/C++源代码,硬件工程师利用高层次约束可生成从紧凑到高度并行的实现方案。这些结构约束窗口提供了设计中所有端口、数组和循环的图形视图,并允许施加下列部分或全部的约束,如图4所示:
=> 循环的展开和流水
=> 循环的合并
=> RAM、ROM或FIFO数组映射
=> 存储器资源的合并
=> 存储器位宽大小的调整
以FIR的实现为例,FIR滤波器的实现通常有并行和串行两种实现方法。第一种方法采用多个乘加器(MAC)并行运算,能以很高的吞吐率进行运算,延迟较小,代价是其硬件规模较大,串行方法用一个乘加器完成FIR的各级运算,使用的硬件资源较少,但相应的延迟较长。采用传统的设计方法学,如果要实现FIR的话,需要根据特定的应用,决定采用串行或并行的架构,再编写相应的RTL代码,如果根据前一个项目的串行要求编写的代码,需要复用与下一个要求高吞吐率的项目中时,就不能满足应用的要求。这也是在RTL级不能进行真正IP复用的主要原因。
Catapult Synthesis自动解析纯粹的定点ANSI C/C++语言,根据设计者施加的高层次硬件约束条件,通过生成的层次式甘特图,设计者能立刻了解C/C++代码的性能瓶颈或低效性,如阻止并行性的存储器带宽限制,循环相关性以及限制优化调度的数据相关性等,可以快速识别设计中的问题,并能交叉定位到C++源码上,从而同时优化算法和硬件实现,最终快速收敛于一个优化的硬件实现上,如图5所示。此外,通过构造与关键时序不同的数据通路的基本FSM控制逻辑和提升原来的工艺确定的算子来构造高度优化的数据通路,保证了数据通路延迟的精确性,从而达到设计性能的最佳化。
图5. 甘特图提供的关于数据流、元件利用率和循环执行时间分布图的信息。 |
Catapult Synthesis可以基于设计者设置的不同约束而生成不同的实现方案,并在X-Y图、柱状图、表格以及原理图上显示出不同的方案的实现结果。而它提供的细粒度资源管理功能,又可以使用户进一步控制硬件实现方案中元件的特定结构和数量,可提供高达15%的设计面积和5%的设计速度的优化能力,如图6所示。图6中显示了FIR的三种不同实现方案的结果,其吞吐率分别为26、3、1个时钟周期。因此,硬件设计者可以根据面积和性能快速地做出正确的抉择来生成优化的硬件实现方案(包括VHDL 、Verilog、不同抽象层次的SystemC模型)。
6. 自动验证环境
图7. Catpult Synthesis自动验证环境。 |
芯片复杂度的日益增加使得验证的时间越来越长,大约占项目开发的60%左右的时间,因而如何提高验证的效率,减少验证的时间就显得尤为重要。Catapult Synthesis通过生成SystemC事务处理器提供了集成的模块级验证环境,而这些事务处理器把事务或顺序检测与时序的RTL同步起来。这种集成的验证流程使得设计者可方便地复用原始的C++测试程序验证C++设计和输出的RTL代码功能的一致性,也在特定的同步点为混合的语言仿真提供了先进分析和调试手段,如图7所示。
Catapult Synthesis在生成RTL级VHDL和Verilog代码的同时,也生成了如Design Compiler, Precision综合, Questa等业内领先综合和仿真工具的脚本,该工具还利用了如自动调用RAM或DSP宏模块等RTL综合特性,根据下游的RTL综合工具所采用的特定工艺库中采集详尽的特征数据。这使得Catapult Synthesis精确调度硬件资源,而无需花费大量的时间和精力来进行RTL综合就能快速提供精确面积,时序和吞吐率估计。Catapult Synthesis也自动为后续的RTL验证提供仿真的Makefile,双击该Makefile就会自动调用Questa/Modelsim/NC-Sim(VCS将在下个版本支持)仿真器进行仿真并自动比对C++仿真结果和RTL仿真结果,减少了脚本和Testbench的编写量,如图8所示。此外,它能自动为该模块生成不同抽象层次的SystemC的模型,从而使系统级验证提前进行成为可能,由于SystemC模型的抽象层次比RTL高,因而仿真的速度要快得多,大大缩短了验证周期,如图9所示,并可以更早地验证系统架构的划分是否合理,避免了设计上的反复,保证了产品的上市时间。
图8. Catapult Synthesis集成的自动验证和综合流程。 |
7.结论
由于上市时间对产品,特别是消费类电子的成败至关重要。而人工方法需要耗费大量时间,设计者无法尝试所有可能的微架构和接口设计,因此得到的设计优劣就与设计人员本身能力相关。Mentor Graphics公司推出的Catapult Synthesis,其先进的分析能力使得硬件设计者可以充分和交互探索微架构和接口设计空间,生成可与手工编码设计质量相媲美的高性能硬件实现,并以被世界各地的领先设计公司证明该设计流程有助于下一代计算密集型应用中设计复杂的ASIC或FPGA硬件,并已有36个ASIC设计成功流片和100多个FPGA设计成功实现。它还可针对不同应用而施加不同的约束,而无需修改算法,迅速综合出硬件,从而真正实现IP的Reuse,做到一次开发多次受益。此外,Catapult Synthesis 也将原来分离两个设计域:系统级设计和硬件设计, 有机地统一了起来,结合Mentor公司的Questa仿真工具,为下一代电子系统级设计(ESL)奠定了坚实基础。
图9. 不同设计抽象层次对仿真和实现效率的影响。 |
作者:Mentor Graphics明导(上海)电子科技有限公司,游余新
文章评论(0条评论)
登录后参与讨论