基于FPGA的自动化DSP开发流程

描述

DSP产品中的FPGA使用量急剧上升,只需要了解部署DSP的产品就可以了解原因。总的来说,DSP正在成为一种高度普遍存在的技术,不仅在无数的消费者,汽车和电话产品中,而且在越来越先进的设备类别中也看到了它的应用。

无线基站,雷达处理,指纹识别和软件定义无线电等应用需要非常高性能的处理。然而,这种新型高性能DSP应用推动了独立处理器的性能范围,硬件解决方案正在不断发展以提升性能。

在20世纪90年代初期,设计人员面临着通过部署来提高马力的挑战多个处理器,以满足其性能需求。但是,在协调多个处理器的功能时,系统级设计变得非常困难,更不用说这种方法成本高昂且浪费资源。

当第一批DSP授权的FPGA出现在现场时,DSP设计人员开始使用这些设备来增强其处理器的功能。通过这种方法,FPGA通过加速DSP算法的性能关键部分来补充处理器。

今天的专用FPGA,如Xilinx的Virtex 4或Altera的Stratix II,具有通过并行化提高性能的巨大潜力。事实上,与其他实现方案相比,DSP专用FPGA技术已经显示出高达100倍的性能优势(图1)。

因此,越来越常见的是发现标准DSP伴随着执行高性能功能的FPGA,并且预计这种方式使用FPGA会迅速提升。

处理器


图1 - FPGA提供快速MACOPS(每秒乘法/累加运算)作为时钟频率乘以倍数的因子。

满足设计要求挑战

然而,除了这种强大的硬件功能外,高效实施这些基于FPGA的DSP系统也面临着挑战。这种大而复杂的设计对传统的DSP设计方法要求。这主要是因为DSP空间中的传统FPGA设计流程没有利用高效且有效的设计流程的两个关键要素:合成技术和便携式知识产权(IP)。

那些使用合成技术设计ASIC的人都知道它的优点。对于基于FPGA的DSP,这项技术至关重要,可以实现高水平抽象设计,以及区域和性能权衡的自动化探索。快速设计输入,高度抽象和自动化操作的组合不仅提供了设计的单一实例化,而且提供了一系列可供选择的结果。

用于哪个性能优先于区域,可能需要消耗数百个乘法器的实现 - 它会非常快,但也会消耗很多区域。同样,对于对区域更敏感的应用程序,在较低性能下共享较少乘数的实现将产生更小的结果。这些类型的权衡需要强大的工具,对于基于FPGA的高级DSP的最佳开发至关重要。

高效DSP开发的另一个关键因素是拥有正确的构建模块或IP。适合这些应用程序的IP有两个主要属性:可扩展性和可移植性。

与其适应性较差的对应物相比,可扩展IP使设计人员能够在不降低效率的情况下构建自定义IP功能。新的功能块非常高效,因为在随后的合成过程中,未使用的或不必要的部分将被优化掉。

便携性也确保了效率。 DSP设计人员需要能够设计一次算法,然后才能在任何FPGA供应商的产品中运行它们而无需修改。这种便携性提供了很高的效率,并且可以轻松选择最佳实现。

DSP验证也可能带来挑战。在验证DSP时,信号调试和分析比检查时域和频域图和散点图更复杂。由于数字信号的特征在于采样时间和离散幅度,因此DSP验证工具必须在多速率DSP应用中有效地定义和操纵时间。

此外,它们必须能够轻松地从全精度浮动转换 - 有限字长定点模拟的点模拟。还需要一种用于建模DSP算法的语言,其中包括对时间,定点资源和并行性等概念的本机支持。

将方法结合在一起

设计技术的最新进展为解决DSP设计人员的独特挑战提供了有趣的解决方案。 Mathworks的Simulink是一个基于数学模型的系统设计环境,为DSP设计人员提供了强大的建模和仿真功能。该环境本身处理DSP问题,如多速率离散时间定义和管理以及单源浮点仿真。

对于FPGA实现,DSP综合是将DSP验证与最优化相结合的关键创新。 DSP实现。借助Synplicity的Synplify DSP工具中体现的功能,设计人员可以通过自动化,独立于设备的方式来检查实现权衡并实现目标映射。

将DSP综合与Simulink结合使用可带来专业知识系统架构师和硬件设计人员在一个共同的环境中。系统架构师为Simulink创建了一个独立于供应商的模型,使入口点保持在纯粹的算法级别,从而将注意力集中在设计的高级功能上。

当它交给硬件设计师时,规范没有架构含义。只要建模环境的DSP验证基础架构允许无缝集成合成引擎,硬件设计人员就可以在不修改验证源的情况下检查架构权衡。

由于保留了源代码,系统架构师无需担心硬件实现问题,硬件设计人员也不必担心DSP算法规范。同时,确保了设计的完整性和优化,提高了团队成员的工作效率。

这种方法的关键是使用通用DSP库。特定于供应商的IP使算法设计陷入困境,并且具有不必要的实现细节。使用没有架构参数的通用DSP功能库,处理输入信号,并根据高级规范生成输出。

使用高级库,甚至与DSP功能相关的延迟也可以被推迟到架构优化阶段。通过DSP综合,实现了硬件功能和实现。 DSP综合,Simulink和便携式库等创新是改进DSP设计的关键因素,但同样重要的是将这些功能纳入连接RTL和实现设计领域的整体方法。最佳DSP设计流程通过通用库以及DSP综合和Simulink的组合功能(图2)增强了现有功能。

处理器


图2 - DSP FPGA设计流程

在设计规范期间,系统架构师纯粹在算法抽象层次上运行。通过使用功能块集,设计人员可以使用熟悉的DSP概念捕获算法。

在流程的后期,Simulink的DSP验证环境功能大大减轻了算法验证。可视化和调试以及内置加速器等功能有助于快速模拟离散时间设计。

这种设计方法的引擎,是区域和性能的系统级目标的决定因素, DSP合成。此步骤构建了一种架构,该架构消耗了实现所需性能所需的最少资源。应用适当的系统级优化技术(如折叠,系统范围的重定时和延迟添加),DSP综合可满足系统级性能目标。

生成的体系结构由独立于供应商的可综合RTL代码生成。由于此时设计仍然与供应商无关,因此RTL综合工具的全部功能可用于进一步优化设计。

令人印象深刻的结果

与传统流程相比,所描述的DSP设计方法显示出显着的优势。随着设计变得越来越大,DSP合成流可能仅仅由于其无延迟算法而超过其传统对应物,并且因为没有时间来同步多个路径。

比较DSP合成和传统流程的设计结果,即使在不同的优化方案下,前者也能得到持续改进。当在DSP合成期间不执行高级优化时,任何产生的优化很大程度上归因于单独的RTL合成。即使没有DSP综合优化,所部署的逻辑单元数量也会在所有测试电路中保持一致,性能也会提高。

应考虑几种不同的优化方案。当允许资源共享时,通常会期望资源利用率显着提高,但会有一些性能损失。测试电路证明了这一点,显示出消耗的资源显着减少,但代价是性能显着下降。

当资源有限且可以容忍性能下降时,最好应用此优化技术。重定时优化技术为增强DSP合成结果提供了另一种选择。当重新定时是一种选择时,与单独的DSP合成和传统设计相比,可以观察到显着的性能提升,尽管它可能以消耗更多资源为代价。

一些DSP综合解决方案重新分配寄存器并在架构级别引入流水线以实现时序。通过门级重新定时补充这种高级重定时功能,可以通过在特定FPGA器件中移位寄存器来进一步优化。高级和门级重定时的这种组合可以产生最高度优化的结果,并且可以在不增加额外资源的情况下显着提高性能。

如今,性能匮乏的DSP应用推动了高性能DSP专用FPGA的使用,这反过来又带来了新的重大设计挑战。为了应对这一挑战,基于现有方法的基于FPGA的自动化DSP开发流程已被证明在提供高度优化的设计结果方面远远超出传统设计方法。

DSP-的组合具体的建模和仿真创新,自动化综合和优化工具以及通用便携式DSP库是该流程中的关键要素。凭借这些功能,DSP开发人员可以解决以前困扰他们的有问题的生产力和设计质量问题,现在可以充分利用新的强大FPGA技术所能提供的所有功能。

Dirk Seynhaeve是Synplicity Inc.的DSP企业应用工程总监。他在ASIC设计和EDA行业拥有20年的经验。他加入Synplicity,帮助定义和推出DSP解决方案,以增加综合产品组合。之前,在Tera Systems担任技术营销总监之前,Seynhaeve专注于定义RTL交接策略的产品线策略。在Tera Systems之前,Seynhaeve担任Tharas Systems的技术服务总监,之后担任Escalade的应用总监。

Andrew Dauman是Synplicity公司应用工程副总裁,负责所有技术支持,产品验证,产品培训和技术出版物。自从1994年加入Synplicity以来,Dauman已经将Synplicity的应用工程团队从一个概念发展成为一个全球性的组织。在加入Synplicity之前,Dauman是Mentor Graphics Corporation的AutoLogic ASIC综合团队的成员。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分