可以把折叠功能与另一优化功能-重定时功能结合起来使用。如果系统不满足目标频率要求,可以增加流水线级数,直到获得所需速率。这种做法对于使用高折叠系数的电路尤为重要,因为这类电路需要以相对较高的系统速度工作。
您还可以为折叠很少或没有折叠的电路使用重定时,除非已经达到FPGA的性能极限。可以通过增加流水线级数来减少两个寄存器之间组合逻辑门的数量(逻辑级数),这样可以提高系统时钟速度。
在生成RTL代码时,Synplify DSP工具将进行时序分析,它会考虑所需的采样频率、折叠系数和FPGA的目标架构。例如,与在较慢的低成本Spartan-3A DSP FPGA中实现的完全相同的电路相比,可以使用较少的流水线级数优化映射到快速Virtex-5 FPGA的电路。
可以用FPGA提供的大量寄存器进行这种优化。寄存器可以大量使用,不像乘法器或LUT(查找表)那样很快会用光,这意味着可以使用寄存器轻而易举的显著提高系统时钟速度。
当然,增加流水线级数会增加系统延迟。例如,如果使用重定时系数8,计算结果就会迟8个系统时钟周期(不是采样频率周期)出现在FPGA的输出上。向系统中嵌入电路时必须考虑到这一点(图6)。
图6:可以使用重定时功能为电路定义允许的最大延迟。然后由Synplify DSP自动增加流水线级数,直到获得所需频率。
特别重要的是,务必确保上述优化不会影响Simulink中描述的原始MATLAB模型。通过验证可以对算法进行鉴定,并且对量化效应的影响予以表述。Synplify DSP软件模块集允许使用截断(去除无关位)、四舍五入(在下溢情况下)或饱和(在上溢情况下)进行从浮点到定点的转换。一旦仿真显示算法工作正常,即可生成RTL代码。优化VHDL或Verilog代码可能改变延迟,但不会改变电路的操作。
本文小结
Synplify DSP工具基于MathWorks公司推出的行业标准MATLAB/Simulink软件。模块集提供的标准元件库可用于实现复杂算法。除了加法、增益和延迟等基本元件,该库还包含FIR或IIR滤波器等许多复杂功能和CORDIC算法。所有功能(包括高度复杂的FFT或Viterbi解码器)均可任意参数化。还可以创建用户定义库,或者将现有的VHDL或Verilog代码集成到Simulink模型中。
用Synplify DSP可以实现单速率和多速率系统。使用折叠、多通道化或重定时功能可以针对尺寸或速度优化代码。生成的RTL代码都是未加密的通用代码,可以使用常用工具进行综合。
为了用FPGA取得最佳结果,Synplicity推荐使用Synplify Pro综合工具。目前针对ASIC的开发环境也已经推出。
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术