深圳pcb抄板LUT来实现DSP功能的重大优势详解
为在赛灵思FPGA上实施DPS算法,我借助了采用MathWorks Simulink基于模型设计方法的System Generator for DSP设计与综合工具。System Generator得益于赛灵思在Simulink 环境中的DSP模块组,可自动调用CORE Generator为DSP构建块生成高度优化的网表。Simulink是一种双精度浮点设计工具,而System Generator则是一款定点运算工具。不管怎样,您只要将这两种工具协同使用,就可以定义每个信号的总位数以及每个信号的二进制位置,从而在定点运算中巧妙处理分数。pcb抄板仿真结果周期精确、位真,因此您可以方便地将它们与MATLAB脚本或Simulink模块生成的浮点参考值相比较,以检查量化误差。
查找表 (LUT) 实质上是一个存储元件,能够根据任何给定的输入状态组合,“查找”输出,以确保每个输入都有确切的输出。采用LUT来实现 DSP功能具有一些重大优势:
您可用诸如MATLAB?或Simulink?等高抽象层编程语言改变LUT内容。
您可以设计一项DSP功能来运行那些采用离散逻辑运算将极度困难的数学函数,比如l y=“log”(x)、y=exp(x)、y=1/x、y=sin(x) 等。
LUT还可轻松执行在可配置逻辑块 (CLB)l 芯片,以及嵌入式乘法单元或DSP48可编程乘法累加 (MAC) 单元方面可能要求过多FPGA资源的复杂数学函数。
不过,以这种方式使用LUT当然也会存在一些弊端。当您使用LUT来实现DSP功能时,您必须使用块RAM (BRAM) 元件。若执行函数 y=“sqrt”(x)(其中x 表示16位输入,y 表示18位输出),每个变量则需要约64个18KB BRAM单元。如果,比如说,您的目标是实现小型化Spartan?器件,或者您有太多的运算需要执行,无法为每个变量省出64个BRAM单元,建议您放弃这种需要如此大量BRAM单元的方法,从系统架构的角度来看,这种方法代价太大。
插值LUT方法不仅具有LUT方法在实现DSP功能时所带来的各种优势,而且无需使用太多BRAM单元。电路板克隆采用这种方法,您可以使用来自容量较小的 LUT (比如,1000字 LUT)的连续输出,线性地对其内插,以模拟更大容量的LUT。这样,您就可以实现比1000 字 LUT 更高的数值分辨率。此外,通过这种方法,仅需 1 个 BRAM、1 个嵌入式乘法器(或DSP48),以及少数几个CLB芯片便可实施控制逻辑,因此LUT的使用成本变得更加合理化。而且,从信噪比的角度来看,其数值精度也是非常让人满意。