基于FPGA的DSP设计方法
时间:08-26
来源:
点击:
DSP正在成为一种几乎无处不在的技术,不仅应用在众多消费电子、汽车与电话产品中,而且也进入越来越先进的设备。
诸如无线基站、雷达信号处理、指纹识别以及软件无线电等应用都要求极高的处理能力。这些新类型的高性能DSP应用推动独立处理器的性能走高,而为了提升性能,硬件解决方案也在不断发展。
在90年代初,设计者面临的挑战是,如何采用多个处理器以汇聚更多的处理能力,从而满足他们的性能要求。但是在协调多个处理器的功能时,系统级设计变得极为困难,更不用说这种方法既昂贵又浪费资源。
当第一种实现DSP的FPGA出现时,DSP设计者开始利用这种器件来支援处理器的能力。在这种方法中,FPGA通过加速DSP算法的关键部分(这对性能至关重要),可以补充处理器的不足。
今天的专用FPGA,如Xilinx公司的Virtex 4或Altera公司的Stratix II等蕴藏着巨大的潜力,可通过并行化来提高性能。的确,DSP专用FPGA技术已显示出可提供比其它实现方案高100倍的性能优势(表1)。
图1:FPGA提供100倍于DSP的
MACOPS(每秒乘/加运算数)。MACOPS是
时钟频率与乘法器个数的乘积。
因此,在FPGA中包含一颗标准DSP的情况变得越来越普遍,而且预计以此种方式来使用FPGA的设计将迅速增加。
设计挑战
不过,伴随着这种强大的硬件能力,设计者面临如何有效实现这些基于FPGA的DSP系统的问题。这种大型的复杂设计对传统的 DSP设计方法提出了挑战。这在很大程度上是因为以下事实,即在DSP应用中,传统的FPGA设计流程没有充分利用一个高效设计流程的两个关键要素:综合技术与可移植IP。
那些利用综合技术来设计ASIC的人都很清楚综合技术的优势。对基于FPGA的DSP来说,该技术是关键,它使设计进入处于高级的抽象水平并能自动探索面积与性能之间的折衷。快速设计进入与高抽象水平及自动化的结合,不仅能提供单一的设计示例,而且还能提供各种可供选择的实现结果。
对于性能优先于面积的应用来说,它可能需要包含数百个乘法器的实现方案。这种方法将具有很快的速度,但也会消耗大量硅片面积。同样,对于那些对面积更敏感的应用来说,实现方案应使用性能较低、数量较少的乘法器,以得到占位面积更小的结果。这些类型的折衷对基于FPGA的高级 DSP的开发来说至关重要,因而要求有功能强大的工具。
高效DSP开发的另一个关键要素是拥有恰当的构建模块或IP。适合于这些应用的IP具有两个主要属性:可扩展性与可移植性。
与适用性相对较低的同类IP相比,可扩展IP使设计者无需牺牲效率即能构建定制IP功能。新功能模块是高效的,因为在后续的综合过程中,未用的或不必要的部分将被优化掉。
可移植性也能保证效率。DSP设计者必须能在设计出算法以后,无需进行修改即可在任何FPGA供应商的产品上运行它们。这种可移植性将提供极大的效率与自由度,以方便选择一种最佳实现方案。
DSP验证也构成挑战。当验证DSP时,信号调试与分析变得更复杂,并不仅仅限于检查时域、频域曲线及散布图。由于数字信号的特征取决于其采样时间和离散幅度,DSP验证工具必须能有效定义及操作多速率DSP应用中的时间。
此外,它们还必须易于从全精度浮点仿真转换到有限字长定点仿真。同时,它们还需要一种用于对DSP算法进行建模的语言,包括对时间、定点资源与并行性等概念的本地支持。
整合方法
设计技术方面的最新进展为解决DSP设计者的独特挑战提供了令人兴奋的解决方案。由Mathworks公司提供的 Simulink是一种基于数学模型的系统设计环境,为DSP设计者提供了强大的建模与仿真功能。该环境能处理多速率离散时间定义与管理以及单源浮点仿真等DSP问题。
图2:基于FPGA的DSP设计流程。
对于FPGA实现来说,DSP综合是一项将DSP验证与最佳DSP实现链接在一起的关键创新。借助嵌入在Synplify DSP工具中的能力,设计者可以采用一种自动式且独立于器件的方法来检查实现过程的折衷并完成目标映射。
将DSP综合与Simulink联合使用,可将系统架构师与硬件设计师的专长整合到一个公共环境中。系统架构师可以为Simulink创建一个独立于供应商的模型,使设计进入点保持在纯算法层面,从而将他的注意力集中在更高层次的设计功能上。
当模型转交给硬件设计师时,规范没有任何架构含义。只要建模环境中的DSP验证工具允许无缝集成综合引擎,硬件设计师无需修改验证源就可检查架构方面的折衷。
由于验证源保持一致,所以系统架构师不用担心硬件实现问题,而硬件设计师也不必费劲地去研究DSP算法规范。此外,这还能保证设计完整性与最优化,并提高两个团队成员的工作效率。
该设计方法的关键是采用通用DSP库。供应商专有的IP会使算法设计陷入到不必要的实现细节中。采用一个与架构参数无关的通用DSP功能库,设计将根据高层规范来产生输出。
借助一个高层功能库,甚至与DSP功能有关的延时也能被推迟到架构优化阶段来处理。这是通过DSP综合来完成的。诸如DSP 综合、Simulink及可移植库等创新都是改进DSP设计的关键元素,但将这些能力集成到一个总的方法学中也非常关键。最佳的DSP设计流程可为现有设计能力增加通用库以及整合DSP综合与Simulink的能力(参见图2)。
在设计规范时,系统架构师只需在纯粹的算法抽象层面上操作。通过使用功能块,设计师可用类似的DSP概念来捕获算法。
在设计流程的后期,由于Simulink具有DSP验证环境特性,算法验证因而变得非常容易。可视化、调试以及内置的加速器等能力使设计者更容易实现离散时间设计的快速仿真。
这种设计方法的引擎就是DSP综合,它决定了面积、性能等系统级目标。这个步骤旨在创造出一种能消耗最少的资源并达到所需性能的架构。通过采用折叠、系统范围重定时以及增加延时等适当的系统级优化技术,DSP综合能满足系统级性能目标。
所得到的架构可由独立于供应商的可综合RTL代码来生成。由于设计保留了独立于供应商的特性,RTL综合工具的全部能力可以被用于执行进一步的设计优化。
与传统设计流程相比,上述DSP设计方法具有明显的优势。随着设计规模增大,仅是由于其无延时的算法及无需时间来同步多条路径,DSP综合流程就超过了传统方法。
比较DSP综合与传统流程的设计结果表明,即使在不同的优化情况下,前者也一样有改进。当在DSP综合期间不执行高级优化时,所得到的任何优化主要归功于RTL综合。即使没有DSP综合优化,在所有测试电路中采用的逻辑单元数量也会一如既往地减少,而性能也会得到改善。
我们需要考虑几种不同的优化情况。当允许进行资源共享时,常常希望在资源利用上有明显的改进,即使以牺牲某些性能为代价。测试电路已经证明了这一点,即以性能的明显下降为代价可以显著减少消耗的资源。
这种优化技术最适合在资源有限但允许性能有一定下降的情况下使用。重定时优化技术是增强DSP综合结果的另一个选项。采用这种方法时,尽管可能要以消耗更多的资源为代价,但与单独的DSP综合及传统设计方法相比,性能将有显著提升。
为达到定时目的,一些DSP综合解决方案在架构层上重新分配寄存器并引入一些管道。采用门级重定时可以补充这种高级定时,两者的结合使用将获得最佳的优化结果,且无需增加任何资源即可获得明显的性能改进。
诸如无线基站、雷达信号处理、指纹识别以及软件无线电等应用都要求极高的处理能力。这些新类型的高性能DSP应用推动独立处理器的性能走高,而为了提升性能,硬件解决方案也在不断发展。
在90年代初,设计者面临的挑战是,如何采用多个处理器以汇聚更多的处理能力,从而满足他们的性能要求。但是在协调多个处理器的功能时,系统级设计变得极为困难,更不用说这种方法既昂贵又浪费资源。
当第一种实现DSP的FPGA出现时,DSP设计者开始利用这种器件来支援处理器的能力。在这种方法中,FPGA通过加速DSP算法的关键部分(这对性能至关重要),可以补充处理器的不足。
今天的专用FPGA,如Xilinx公司的Virtex 4或Altera公司的Stratix II等蕴藏着巨大的潜力,可通过并行化来提高性能。的确,DSP专用FPGA技术已显示出可提供比其它实现方案高100倍的性能优势(表1)。
图1:FPGA提供100倍于DSP的
MACOPS(每秒乘/加运算数)。MACOPS是
时钟频率与乘法器个数的乘积。
因此,在FPGA中包含一颗标准DSP的情况变得越来越普遍,而且预计以此种方式来使用FPGA的设计将迅速增加。
设计挑战
不过,伴随着这种强大的硬件能力,设计者面临如何有效实现这些基于FPGA的DSP系统的问题。这种大型的复杂设计对传统的 DSP设计方法提出了挑战。这在很大程度上是因为以下事实,即在DSP应用中,传统的FPGA设计流程没有充分利用一个高效设计流程的两个关键要素:综合技术与可移植IP。
那些利用综合技术来设计ASIC的人都很清楚综合技术的优势。对基于FPGA的DSP来说,该技术是关键,它使设计进入处于高级的抽象水平并能自动探索面积与性能之间的折衷。快速设计进入与高抽象水平及自动化的结合,不仅能提供单一的设计示例,而且还能提供各种可供选择的实现结果。
对于性能优先于面积的应用来说,它可能需要包含数百个乘法器的实现方案。这种方法将具有很快的速度,但也会消耗大量硅片面积。同样,对于那些对面积更敏感的应用来说,实现方案应使用性能较低、数量较少的乘法器,以得到占位面积更小的结果。这些类型的折衷对基于FPGA的高级 DSP的开发来说至关重要,因而要求有功能强大的工具。
高效DSP开发的另一个关键要素是拥有恰当的构建模块或IP。适合于这些应用的IP具有两个主要属性:可扩展性与可移植性。
与适用性相对较低的同类IP相比,可扩展IP使设计者无需牺牲效率即能构建定制IP功能。新功能模块是高效的,因为在后续的综合过程中,未用的或不必要的部分将被优化掉。
可移植性也能保证效率。DSP设计者必须能在设计出算法以后,无需进行修改即可在任何FPGA供应商的产品上运行它们。这种可移植性将提供极大的效率与自由度,以方便选择一种最佳实现方案。
DSP验证也构成挑战。当验证DSP时,信号调试与分析变得更复杂,并不仅仅限于检查时域、频域曲线及散布图。由于数字信号的特征取决于其采样时间和离散幅度,DSP验证工具必须能有效定义及操作多速率DSP应用中的时间。
此外,它们还必须易于从全精度浮点仿真转换到有限字长定点仿真。同时,它们还需要一种用于对DSP算法进行建模的语言,包括对时间、定点资源与并行性等概念的本地支持。
整合方法
设计技术方面的最新进展为解决DSP设计者的独特挑战提供了令人兴奋的解决方案。由Mathworks公司提供的 Simulink是一种基于数学模型的系统设计环境,为DSP设计者提供了强大的建模与仿真功能。该环境能处理多速率离散时间定义与管理以及单源浮点仿真等DSP问题。
图2:基于FPGA的DSP设计流程。
对于FPGA实现来说,DSP综合是一项将DSP验证与最佳DSP实现链接在一起的关键创新。借助嵌入在Synplify DSP工具中的能力,设计者可以采用一种自动式且独立于器件的方法来检查实现过程的折衷并完成目标映射。
将DSP综合与Simulink联合使用,可将系统架构师与硬件设计师的专长整合到一个公共环境中。系统架构师可以为Simulink创建一个独立于供应商的模型,使设计进入点保持在纯算法层面,从而将他的注意力集中在更高层次的设计功能上。
当模型转交给硬件设计师时,规范没有任何架构含义。只要建模环境中的DSP验证工具允许无缝集成综合引擎,硬件设计师无需修改验证源就可检查架构方面的折衷。
由于验证源保持一致,所以系统架构师不用担心硬件实现问题,而硬件设计师也不必费劲地去研究DSP算法规范。此外,这还能保证设计完整性与最优化,并提高两个团队成员的工作效率。
该设计方法的关键是采用通用DSP库。供应商专有的IP会使算法设计陷入到不必要的实现细节中。采用一个与架构参数无关的通用DSP功能库,设计将根据高层规范来产生输出。
借助一个高层功能库,甚至与DSP功能有关的延时也能被推迟到架构优化阶段来处理。这是通过DSP综合来完成的。诸如DSP 综合、Simulink及可移植库等创新都是改进DSP设计的关键元素,但将这些能力集成到一个总的方法学中也非常关键。最佳的DSP设计流程可为现有设计能力增加通用库以及整合DSP综合与Simulink的能力(参见图2)。
在设计规范时,系统架构师只需在纯粹的算法抽象层面上操作。通过使用功能块,设计师可用类似的DSP概念来捕获算法。
在设计流程的后期,由于Simulink具有DSP验证环境特性,算法验证因而变得非常容易。可视化、调试以及内置的加速器等能力使设计者更容易实现离散时间设计的快速仿真。
这种设计方法的引擎就是DSP综合,它决定了面积、性能等系统级目标。这个步骤旨在创造出一种能消耗最少的资源并达到所需性能的架构。通过采用折叠、系统范围重定时以及增加延时等适当的系统级优化技术,DSP综合能满足系统级性能目标。
所得到的架构可由独立于供应商的可综合RTL代码来生成。由于设计保留了独立于供应商的特性,RTL综合工具的全部能力可以被用于执行进一步的设计优化。
与传统设计流程相比,上述DSP设计方法具有明显的优势。随着设计规模增大,仅是由于其无延时的算法及无需时间来同步多条路径,DSP综合流程就超过了传统方法。
比较DSP综合与传统流程的设计结果表明,即使在不同的优化情况下,前者也一样有改进。当在DSP综合期间不执行高级优化时,所得到的任何优化主要归功于RTL综合。即使没有DSP综合优化,在所有测试电路中采用的逻辑单元数量也会一如既往地减少,而性能也会得到改善。
我们需要考虑几种不同的优化情况。当允许进行资源共享时,常常希望在资源利用上有明显的改进,即使以牺牲某些性能为代价。测试电路已经证明了这一点,即以性能的明显下降为代价可以显著减少消耗的资源。
这种优化技术最适合在资源有限但允许性能有一定下降的情况下使用。重定时优化技术是增强DSP综合结果的另一个选项。采用这种方法时,尽管可能要以消耗更多的资源为代价,但与单独的DSP综合及传统设计方法相比,性能将有显著提升。
为达到定时目的,一些DSP综合解决方案在架构层上重新分配寄存器并引入一些管道。采用门级重定时可以补充这种高级定时,两者的结合使用将获得最佳的优化结果,且无需增加任何资源即可获得明显的性能改进。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)