您可以添加到网摘 让更多人关注此文章:
摘要:为了满足产品上市时间和功能丰富性的要求,越来越多的先进设计公司开始提高设计的抽象层次进行复杂的DSP硬件设计,从RTL级提高到C/C++,以保持产品的持续领先地位。Mentor Graphics的高层次综合工具(Catapult Synthesis)是第一个综合标准的ANSI C++的产品,它可无误地生成针对ASIC/FPGA的高质量RTL代码,且速度比手工编码的快10-20倍。本文以FIR的实现为例,利用Catapult Synthesis快速探索不同的设计架构,快速地找到性能、面积和功耗之间折衷的最佳实现方案,使得真正的IP复用成为可能,并以图表方式给出不同约束下的面积、延迟和吞吐率(36、3、1 时钟周期)的性能,同时提供了集成的验证和综合流程,极大地提高了设计效率。
关键词:高层次综合;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运用其层次式引擎为各个函数综合出具有独立有限状态机,控制逻辑和数据通路的并行层次式子系统。
[1] [2] [3] 下一页
|