1. 首页
  2. 课程学习
  3. 嵌入式
  4. 如何使用LUT实现FPGA中的DSP功能

如何使用LUT实现FPGA中的DSP功能

上传者: 2024-09-25 14:12:45上传 DOC文件 720.5KB 热度 9次
作为赛灵思的现场工程师,我常常问这样的问题:我们是否能够提供一款其功能可满足客户所有独特设计要求的DSP内核。有时候内核会太大,太小或者不够快。有时,我们会开发一款能确切满足客户需求的内核,并迅速以COREGeneratorTM商标推出。不过即便在这种情况下,客户仍然想要一套特定的DSP功能,而且刻不容缓。在这些情况下,我常常建议他们使用我们器件中的插值查找表来定制他们的DSP功能。r r t r r t查找表(LUT)实质上是一个存储元件,能够根据任何给定的输入状态组合,“查找”输出,以确保每个输入都有确切的输出。采用LUT来实现DSP功能具有一些重大优势:r r t r r t您可用诸如MATLAB:registered:或Simulink:registered:等高抽象层编程语言改变LUT内容。r r t r r t您可以设计一项DSP功能来运行那些采用离散逻辑运算将极度困难的数学函数,比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。r r t r r tLUT还可轻松执行在可配置逻辑块(CLB)芯片,以及嵌入式乘法单元或DSP48可编程乘法累加(MAC)单元方面可能要求过多FPGA资源的复杂数学函数。r r t r r t不过,以这种方式使用LUT当然也会存在一些弊端。当您使用LUT来实现DSP功能时,您必须使用块RAM(BRAM)元件。若执行函数y=sqrt(x)(其中x表示16位输入,y表示18位输出),每个变量则需要约64个18KBBRAM单元。如果,比如说,您的目标是实现小型化Spartan:registered:器件,或者您有太多的运算需要执行,无法为每个变量省出64个BRAM单元,建议您放弃这种需要如此大量BRAM单元的方法,从系统架构的角度来看,这种方法代价太大。在FPGA设计中,实现数字信号处理(DSP)功能是一个常见的需求。为了满足客户特定的DSP需求,一种灵活的方法是利用查找表(LUT,Lookup Table)。本文将深入探讨如何利用LUT在赛灵思FPGA器件中实现复杂的DSP算法,并讨论其优缺点以及插值查找表(ILUT)作为一种优化的解决方案。 LUT本质上是一个存储元件,能够根据输入的特定状态组合查找并返回相应的输出。在实现DSP功能时,LUT的优势主要体现在以下几个方面: 1. **高级编程语言支持**:设计师可以使用如MATLAB或Simulink这样的高级语言对LUT内容进行编程,简化了复杂数学函数(如对数、指数、倒数、正弦等)的实现。 2. **高效处理复杂函数**:LUT可以轻松处理在可配置逻辑块(CLB)和DSP48(可编程乘法累加器)单元中难以实现的数学运算,降低了资源的消耗。然而,使用LUT实现DSP功能也存在一些挑战。一个关键问题是LUT实现通常需要使用块RAM(BRAM)资源。例如,执行一个16位输入18位输出的平方根函数y=sqrt(x),可能需要大约64个18KB的BRAM单元。在资源有限的场景下,如小型化Spartan系列器件,或者在需要执行大量运算的设计中,这种需求可能会过于昂贵。为了解决这个问题,插值查找表(ILUT)应运而生。ILUT方法允许使用较小容量的LUT(如1000字LUT)并通过线性内插生成更高的数值分辨率,从而模拟更大容量的LUT,减少了BRAM的使用。只需要1个BRAM、1个嵌入式乘法器和少量CLB用于控制逻辑,ILUT在成本效益上更为合理,同时也提供了令人满意的数值精度。 ILUT的应用涉及到一定的技巧。例如,在执行y=sqrt(x)函数时,ILUT可以在保持性能的同时减少面积占用、改善时序,并提供良好的数值精度。System Generator for DSP工具结合MathWorks的Simulink,提供了基于模型的设计方法,用于在赛灵思FPGA上实现定点DSP算法。Simulink提供双精度浮点设计,而System Generator则专注于定点运算,允许用户定义信号的位宽和二进制位置,以适应定点环境。在图1中,展示了System Generator中的ILUT方案的顶层结构。输入变量x为16位无符号数,输出y为17位无符号数。通过将输入分为高位和低位部分,ILUT能够更有效地处理不同范围的输入值。图2展示了一个1000字小容量LUT的部署,利用双端口RAM模块并强制写入为零以实现只读操作。 LUT和ILUT在FPGA中的应用为实现特定的DSP功能提供了灵活性和效率。通过巧妙地利用这些技术,设计者可以克服硬件资源限制,实现复杂算法,满足定制化的工程需求。然而,选择合适的实现方式需要考虑系统资源、性能需求和设计复杂性之间的平衡。在实际应用中,设计师应根据具体项目的要求,权衡LUT和ILUT的优缺点,以实现最优的解决方案。
下载地址
用户评论