在Matlab中实现数字通信FPGA硬件设计

发布者:码字徜徉最新更新时间:2009-01-16 来源: 今日电子关键字:Matlab  FPGA  数字通信  网络  图像处理 手机看文章 扫描二维码
随时随地手机看文章

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

在Matlab中实现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.

在Matlab中实现FPGA硬件设计[page]

  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模拟、综合、实现工具来完成硬件设计.

在Matlab中实现FPGA硬件设计

  由于一般的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系统周期参数.

在Matlab中实现FPGA硬件设计

  有些情况会导致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滤波器框图.

关键字:Matlab  FPGA  数字通信  网络  图像处理 引用地址:在Matlab中实现数字通信FPGA硬件设计

上一篇:简化PCI总线协议的实现以及FPGA驱动设计
下一篇:基于FPGA的高速数据传输、记录及显示系统

推荐阅读最新更新时间:2024-05-02 20:45

传感器网络中能耗问题的研究
基于电池供电的传感器网络通常运行在火山地带、战区等人无法接近的恶劣甚至危险的远程环境之中,网络节点的电源更换或再充电等工作通常无法进行。广泛分布于被测环境的传感器节点既要负责收集敏感数据,又要完成数据传输的路由等功能;而且,攻击者还可能会利用侵占节点向网络中注入大量的虚假数据包,致使节点在传输这些数据包时耗尽能量而失去效用。因此,网络节点电源的无法替换性使能量消耗问题相对于传感器网络的其他关键技术而言尤为重要;在不影响性能的前提下,设计有效的能量消耗控制策略成为传感器网络软硬件设计中的核心问题。 1 传感器网络节点组成及其能量分析 典型的传感器网络体系结构通常由分布的传感器节点、接收发送器、互联网和用户界面等构成。其中,传感器节点
[电源管理]
传感器<font color='red'>网络</font>中能耗问题的研究
C-motech与Wavesat联手开发WiMAX ExpressCard
新型ExpressCard采用Wavesat芯片组 使现有固接网络也能提供WiMAX可移植性 专业电子元器件代理商益登科技 (3048) 所代理的802.16d与802.16e WiMAX芯片解决方案领先供货商Wavesat与无线数据调制解调器专业厂商C-motech ( www.cmotech.com ) 日前宣布,双方将联手开发膝上型计算机专用的WiMAX ExpressCard。 新型ExpressCard采用Wavesat支持802.16d+标准的Evolutive NP7256芯片组,可用来发展WiMAX ETWG类别所定义的漫游和便携式装置。这款组件还兼容IEEE 802.16-2004固接WiMAX系统,这项竞争
[新品]
Actel推动FPGA从引擎盖下应用进入关键的汽车传动和安全系统
Flash技术固有的低功耗优势实现业界首款符合AEC-Q100 Grade 1规范的 FPGA Actel公司宣布其低功耗ProASIC3现场可编程门阵列 (FPGA) 系列已获得AEC-Q100 Grade 2 和 Grade 1标准认证,即通过了一系列专为确保汽车应用中半导体器件的质量、可靠性和耐久性的临界压力测试,成功地为汽车制造商提供了可替代昂贵、复杂的ASIC技术的灵活、可靠的解决方案。Actel的 AEC-Q100 Grade 1 ProASIC3器件是业界首款达到这一质量级别的FPGA产品。Actel还宣布支持生产件批准程序 (PPAP),PPAP是汽车行业使用的控制程序,确保用于汽车供应链中的所有部件均拥有详细透
[新品]
FPGA与SRAM相结合完成大容量数据存储
1 引言 随着数字信号处理技术的不断发展,大容量可编程逻辑器件的不断涌现,FPGA技术越来越多地应用在大规模集成电路设计中。在此硬件系统设计中,经常会遇到需要大容量的数据存储的情况,下面我们将针对FPGA中内部Block RAM有限的缺点,提出了将FPGA与外部SRAM相结合来改进设计的方法,并给出了部分VHDL程序。 2 硬件设计 这里将主要讨论以Xilinx公司的 FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)为主要器件来完成大容量数据存储的设计思路。 FPGA即现场可编程门阵列,其结构与传统的门阵列相似,大量的可编程逻辑块(CLB, Configurable L
[应用]
基于FPGA的LCD%26amp;VGA控制器设计
摘要:介绍了基于FPGA的图形式LCD%26;amp;VGA控制器的设计,详细讨论了用VHDL设计行场扫描时序的方法,这种设计方法稍作改动便可产生任意行场扫描时序,具有很好的可重用性。该控制器已成功地在某型飞机座舱图形显示系统中使用。 关键词:仪表装置 LCD VHDL FPGA VGA 飞机座舱图形显示系统已发展到第六代,即采用有源矩阵彩色液晶显示器AMLCD(Active Matrix Liquid Crystal Display)。当前高分辨率的军用AMLCD显示模块还只能依靠进口,且控制电路板须安装在该显示模块提供的机箱内。这种安装方式对AMLCD控制电路板的尺寸要求高,要求尽可能减少所设计电路板的尺寸。在笔者设计的
[半导体设计/制造]
错失3G发展机遇,台湾IC设计公司欲抓光网络商机
看好光纤网络成长潜力,台湾本土IC设计公司我想科技(iCreate)宣布推出光纤通信收发模块(Optical Transceivers)芯片组,抢攻市场商机。该产品包含做为信号发射端的雷射驱动器(Laser Diode Driver)芯片i7070,以及用于接收端的限幅放大器(Limiting Amplifier)芯片i7090、i7091;适用1.25Gbps以下Gigabit以太网(Ethernet),以及同步光纤网(SONET)系统等形式的收发模块。 我想为钰创科技(Etron)转投资的IC设计公司,该公司董事长卢超群认为,在数字家庭(Digital Home)的概念带动之下,曾经一度沉寂的光纤网络产业可望在未来两年内再度
[焦点新闻]
麻省理工学院在 NVIDIA DRIVE AGX Pegasus 上开发出一体化自动驾驶网络
从英伟达获悉,麻省理工学院的研究人员正在开发一个一体化深度神经网络(DNN)为自动驾驶汽车提供支持,并取代由多个网络组成的系统。 据悉,在今年 COMPUTEX 上发表的这项研究使用了 NVIDIA DRIVE AGX Pegasus 在车辆中运行网络,能够高效、实时地处理激光雷达数据。 自动驾驶汽车传感器会产生大量数据。如果一个由 50 辆车组成的车队每天行驶 6 小时,那么每天就会产生约 1.6PB 的传感器数据。 在论文中,麻省理工学院团队详细介绍了如何使用一个一体化 DNN 尝试新的自动驾驶策略,首先就是要完成实时激光雷达传感器数据处理任务。通过运用 NVIDIA DRIVE AGX Pegasus,该团队进一
[汽车电子]
ipv6网络应用及影响
IPv6协议将是NGI(下一代互联网)的一种重要协议。目前IPv6协议的基本标准逐渐成熟,支持IPv6的各种类型的网络设备也脱颖而出,并逐步应用于商业上。在运营方面,国外很多电信运营商已架设了IPv6网络,且已着手进行提供基于IPv6的增值业务和接入服务。我国也开启了CNGI(下一代互联网)工程建设,大大促进了NGI在我国的发展与普及。因此,在网络条件基本成熟的状况下,下一代互联网要想获得成功,就必须能为用户研发出新的业务,能为电信运营商创造出新的价值。 随着IPv4地址资源的逐步枯竭,网络安全及网络服务质量的要求不断提升,世界主要国家已充分认识到现阶段部署IPv6的紧迫性和重要性,各国政府纷纷出台国家发展战略,制定明确的发展
[网络通信]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved