基于System Generator for DSP工具实现FPGA系统的设计方案

时间:2025-11-02  作者:Diven  阅读:0

近年来,在数字通信、网络、视频和图像处理领域,FPGA已经成为高性能数字信号处理系统的关键元件.FPGA的逻辑结构不仅包括查找表、寄存器多路复用器存储器,而且还有快速加法器、乘法器和I/O处理专用电路.FPGA具有实现高性能并行算法的能力,是构成高性能可定制数据通路处理器(数字滤波、FFT)的理想器件.如Virtex-II Pro FPGA包含高性能的可编程架构、嵌入式PowerPC处理器和3.125Gbps收发器等.

基于System Generator for DSP工具实现FPGA系统的设计方案

但是,FPGA在数字信号处理领域的应用受限于几个因素.首先,DSP开发人员不熟悉硬件设计,尤其是FPGA.使用Matlab验证算法,运用C语言或汇编语言编程,通常不会使用硬件描述语言(VHDL或Verilog)实现数字设计.其次,虽然VHDL语言也提供了许多高层次的语言抽象,但是基于并行硬件系统的VHDL程序设计与基于微处理器的串行程序设计有很大的不同.

基于以上原因,Xilinx公司开发了基于Matlab的System Generator for DSP工具.System Generator for DSP是Simulink中一个基于FPGA的信号处理建模和设计工具.该工具可以将一个DSP系统表示为一个高度抽象的模块,并自动将系统映射为一个基于FPGA的硬件方案.重要的是,该System Generator for DSP实现这些功能并没有降低硬件性能.

1 System Generator for DSP的特点

Simulink为DSP系统提供了强有力的高层次建模环境,可大量应用于算法开发和验证.System Generator for DSP作为Simulink的一个工具箱很好地体现了这些特性,同时又可以自动将设计转换为可综合的高效硬件实现方案.该硬件实现方案忠实于原始设计,因此设计模型与硬件实现在采样点(在Simulink中定义)是一一对应的.通过使用Xilinx精心设计的IP(intellectual property)核可以使硬件方案具有较小的延迟和体积.虽然System Generator中的IP模块是经过功能抽象的,但是对于熟悉FPGA的设计者来说,该模块也具有直接访问底层硬件细节的能力.例如,可以指定System Generator乘法器模块使用Virtex-II系列FPGA中的专用高速乘法器元件,用户定义的IP模块也能够作为黑盒子插入系统之中,等等.

使用System Generator for DSP实现系统设计的主要特点有:

●在Simulink中实现FPGA电路的系统级建模,并自动生成硬件描述语言.

●自动生成Modelsim测试程序,支持软硬件仿真.

●支持用户创建的Simulink模块.

●使用Xilinx FPGA自动实现硬件系统.支持的Xilinx FPGA系列包括Spartan-II、Spartan-IIE、Spar-tan-3、Virtex、Virtex-E、Virtex-II、Virtex-II Pro.

2 使用System Generator for DSP实现系统级建模

传统的DSP系统开发人员在设计一个DSP系统时,一般先研究算法,再使用Matlab或C语言验证算法,最后由硬件工程师在FPGA或DSP上实现并验证.典型的DSP系统设计流程如下:

(1) 用数学语言描述算法.

(2) 设计环境中使用双精度数实现算法.

(3) 将双精度运算变为定点运算.

(4) 将设计转换为有效的硬件实现.

使用System Generator for DSP可以简化这一过程.设计人员先在Matlab中对系统进行建模和算法验证,经过仿真后便可以直接将系统映射为基于FPGA的底层硬件实现方案.可用Simulink提供的图形化环境对系统进行建模.System Generator for DSP包括被称为Xilinx blockset的Simulink库和模型到硬件实现的转换软件,可以将Simulink中定义的系统参数映射为硬件实现中的实体、结构、端口、信号和属性.另外,System Generator可自动生成FPGA综合、仿真和实现工具所需的命令文件,因此用户可以在图形化环境中完成系统模型的硬件开发.图1为使用System Generator for DSP设计系统的流程图.

在Matlab中,我们可以通过Simulink的库浏览器使用Xilinx blockset库中的模块,Xilinx blockset库中的模块可以与Simulink其库中的模块自由组合.Xilinx blockset库中最重要的模块是System Gen-erator,利用该模块可完成系统级设计到基于FPGA的底层硬件设计的转换工作.可以在System Generator模块的属性对话框中选择目标FPGA器件、目标系统时钟周期等选项.System Generator将Xilinx blockset中的模块映射为IP库中的模块,接着从系统参数(例如采样周期)推断出控制信号和电路,再将Simulink的分层设计转换为VHDL的分层网表,之后,System Generator即可调用Xilinx CORE Generator和VHDL模拟、综合、实现工具来完成硬件设计.

由于一般的FPGA综合工具不支持浮点数,因此System Generator模块使用的数据类型为任意精度的定点数,这样可以实现准确的硬件模拟.由于Simulink中的信号类型是双精度浮点数,因此在Xil-inx模块和非Xilinx模块之间必须插入Gateway In block和Gateway Out block模块.通常Simulink中的连续时间信号在Gateway In block模块中进行采样,同时该模块也可将双精度浮点信号转换为定点信号,而Gateway Out block模块则可将定点信号转换为双精度浮点信号.大部分Xilinx模块能够根据输入信号类型推断输出信号的类型.如果模块的精度参数定义为全精度,则模块将自动选择输出信号类型以保证不损失输入信号精度,并自动进行符号位扩展和补零操作.用户也可以自定义输出信号类型来进行精度控制.

3 使用中需注意的问题

在FPGA系统设计中,时钟的设计十分重要.因此必须正确理解System Generator中的时钟和FPGA硬件时钟之间的关系.Simulink中没有明确的时钟源信号,模块在系统参数中定义的采样周期点进行采样.硬件设计中的外部时钟源对时序逻辑电路十分重要.在System Generator模块中,通过定义Simulink System Period和FPGA System Clock Period参数可以建立Simulink采样周期和硬件时钟间的关系,也可通过设置这些参数来改变Simulink中模拟时间和实际硬件系统中时间的比例关系.Simulink的系统周期一般是各模块采样周期的最大公约数.FPGA的硬件时钟是单位为ns的硬件时钟周期.例如,若Simulink中有两个模块,采样周期分别为2s和3s,而FPGA系统时钟周期为10ns,则Simulink系统周期应该为两个模块采样周期的最大公约数即为1s.这意味着Simulink中的1s对应实际硬件系统的10ns.在生成硬件系统前,System Generator将自动检查用户定义的Simulink系统周期参数是否与系统中模块的采样周期相冲突,如果冲突,则提示用修改Simulink系统周期参数.

有些情况会导致System Generator模块产生不确定数(NaN-not a number).如在双端口RAM模块中,两个端口同时对模块中的某一地址进行写操作时,该地址中的数据将被标记为NaN.如果模块中有不确定数出现,则表明该模块的最终硬件实现将会有不可预测的行为,当Simulink进行仿真时,System Generator将会捕捉该错误.

4 应用实例

图2是一个图像处理应用实例的系统实现框图.该应用实例使用5×5的二维FIR滤波器完成图像增强预处理.该系统将输入图像分别延迟0×N(N为输入图像宽度)、1×N、2×N、3×N、4×N个采样点后输入5个Line Buffer,数据在Line Buffer中缓存后并行输入5个5抽头的MAC FIR滤波器.滤波器系统存储于FPGA的块RAM中,图像数据经滤波器处理后输出.图3为Line Buffer实现框图,图4为5×5滤波器框图.

猜您喜欢

贴片电阻作为电子元件中的基础组件,其性能直接影响到整个电路的稳定性和可靠性。金凤冠作为国内知名的电子元器件品牌,其贴片电阻产品因质量优异、价格合理而受到关注。本...
2018-08-04 16:07:30

光敏电阻,又称光电导体或光电阻,是对光线敏感的电阻元件。的电阻值会光照强度的变化而变化,应用于各类电子设备中。在现代科技飞速发展的今天,光敏电阻在许多领域是重要...
2025-04-18 16:01:42


二极管是重要的电子元件,应用于整流、限流、开关等电路中。了解二极管的工作状态对于电子电路的设计和故障排查非常重要。本文将介绍一些判断二极管工作状态的方法,帮助读...
2025-04-07 02:30:02

贴片电阻体积小巧,表面通常印有3位或4位数字代码,用来表示其阻值。理解这些代码对于电子爱好者和工程师至关重要。三位数代码的解读方式如下:前两位数字代表阻值的前两...
2025-04-14 15:04:06

磁保持继电器是特殊类型的继电器,其主要作用是通过电磁力保持接点的状态,无需持续供电。这种特性使得磁保持继电器在多个领域中有着着重要作用。磁保持继电器应用于自动化...
2014-09-18 00:00:00

瓷片电阻是常见的电子元件,应用于各种电器和电子设备中。的主要功能是限制电流,保护电路中的其元件,确保设备的正常运行。电子技术的不断发展,瓷片电阻的应用领域也在不...
2025-04-14 19:00:06

变容二极管(Varicap或Varactor Diode)是特殊类型的二极管,其主要特性是能够通过施加不同的电压来改变其电容值。这种特性使得变容二极管在调谐电路...
2025-04-05 21:00:35

在现代网络建设中,网线和模块化电缆是两种常见的连接方式,但之间存在一些显著的区别。网线通常是指标准的以太网电缆,如Cat5e、Cat6等,主要用于连接计算机、路...
2018-04-08 00:00:00

引言基于头盔显示器对便携性的要求,要实现微型化和低功耗,将彩色时序控制器设计为单片的ASIC是较好的解决方案。本文正是针对应用LCoS(Liquid Crys...
2020-04-25 10:28:00