本论文是一篇关于模块方面毕业论文提纲,关于一种谱的Matlab与VHDL代码转换方法相关在职研究生毕业论文范文。免费优秀的关于模块及蝶形及参考文献方面论文范文资料,适合模块论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
【摘 要】本文讨论由Matlab生成VHDL代码的原理,并介绍了利用SystemGenerator及DSPBuilder将Simulink模型转换为VHDL代码的方法.这样设计者可以利用Simulink高层次的设计仿真工具进行系统级设计,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,使用集成转换工具能够方便地进行VHDL代码的生成并进行硬件测试,极大地提高了设计效率.
【关 键 词】MATLAB;傅里叶变换;频域分析;VHDL
频谱分析在生产实践和科学研究中有着广泛的应用.其中,快速傅里叶变换(FastFourierTransform,FFT)是数字信号处理的最基本技术之一.近年来,随着现场可编程门阵列FPGA(FieldProgrammableGateArray)技术的迅猛发展,利用高并行度、高速度的FPGA芯片来实现FFT已成为必然趋势.
本文将以MATLAB为工具,对信号与系统在联系时间系统的频域进行分析.
一、Matlab编程实现FFT实践频谱分析
步骤如下:
1.用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自时域波形图.
2.进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选.
3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱.
4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图.
正弦波、矩形波以及白噪声三种信号的FFT变换(傅里叶变换)及IFFT变换(傅里叶反变换恢复信号).
图1-1正弦波
图1-2矩形波
图1-3白噪声信号
二、FFT算法在基于VHDL的FPGA下实现
1.基于VHDL的FPGA设计流程
本小节以Xilinx公司的FPGA系统开发为实例,FPGA的设计流程一般包括系统功能设计定义、设计输入、功能仿真、逻辑综合、前仿真、设计实现(包括翻译、映射、布局布线)、时序仿真与验证、下载配置与器件编程、测试验证等几个步骤.
本设计运用ISE和ModelSim与Matlab联合仿真的设计方法.
ISE的简称为集成综合的环境,是Xilinx公司的配套设计软件,这种工具可完成上述FPGA/CPLD的整个开发过程
2.FPGA的基本原理和结构
FPGA即现场可编程门阵列,相对其他可编程器件具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性.
FPGA的基本结构如图2-1所示.CLB阵列实现用户指定的逻辑功能,它们以阵列的形式分布在FPGA中;IOB为内部逻辑与器件封装引脚之间提供了可编程接口,它通常排列在芯片四周;可编程互连资源分布在CLB的空隙,互连资源可以编程配置在模块之间传递的信号网络,用于实现各个CLB之间、CLB与IOB之间以及全局信号与CLB和IOB之间的连接.FPGA利用可编程查找表实现逻辑块;程序控制多路复用器实现其功能选择.
图2-1FPGA的基本结构
3.FFT处理器的设计
本设计用于基于IEEE802.11a协议的OFDM系统的OFDM调制,根据IEEE802.11a协议规定,OFDM调制采用64点FFT变换,采样速率20M/s,即采样周期为50ns,即64点FFT数据输入的时间为64*50ns等于3200ns.
本系统采用的时域抽取算法中要对输入的所有数据进行倒序以后才开始蝶形运算,FFT可以分为数据输入、蝶形运算两个阶段,蝶形运算结束后,将最终结果存储到另一个单独的结果存储器另行读取,而为了能对输入数据实现连续的FFT变换,就需要蝶形运算的总时间小于3200ns,这样就可以用两个FFT模块去轮换做FFT,实现连续的FFT处理.如图2-2所示.
64点的基2的时域抽取FFT算法总共有6级蝶形运算,每级32次蝶形运算,总共需要32*6等于192个蝶形运算,如果采用单蝶形设计,需要192次蝶形运算,蝶形运算的极限时钟周期为3200ns/192等于16.67ns,在本设计的蝶形运算时钟周期采用16ns.
开发环境:QuartusII6.0
选择FPGA芯片:Altera公司Stratix系列中的EP1S10484C5
语言:VHDL
图2-2两个FFT模块
三、MATLAB到VHDL转换工具Simulink
Simulink程序包是MathWorks公司提供的一个非常有吸引力的高水平设计、仿真工具.
1.高效地从Simulink到VHDL的转换工具
目前为止,设计者经常遇到的最大问题是怎样完成从算法设计到物理实现的转换.在这个问题的研究发展过程中,设计者首先使用的是一种高层次的设计仿真工具,最通常的就是Matlab的Simulink.首先利用Mathworks的Matlab/Simulink完成顶层系统设计,然后通过转换工具配置Simulink中的IP核,即将静态参数传递给基于VHDL的IP,将Simulink模型文件(.md1)转换成VHDL的RTL表述和工具命令语言(Tcl)脚本,同时还可进行RTL级的功能仿真;然后通过SOPC设计工具进行综合、适配与时序仿真;最后形成对指定FPGA进行编程配置的POF和SOF文件,实现硬件系统的仿真测试.转换的工作可以描述成以下几步:
(1)分析并确定Simulink模型.
(2)产生VHDL环境.
(3)生成对应网表文件或示意图进行布局、布线和硬件的下载测试.2.从Simulink到VHDL的自动转换
为了简单化转换程序,在最初的Simulink模块中设定一些约束条件(如图3-1所示):
(1)运行高字节的信号或变量;
(2)整个设计只有一种取样率;
(3)系统只由入口、常数、端口及总线组成.
这些能够使相关的VHDL结构描述比较容易地产生.工具箱的下一部分就可以允许不同的变量类型和生成可应用的结构和行为的VHDL.
图3-1从Simulink到VHDL转换流程
从MDL(主要数据程序)模型到VHDL的转换的初步翻译由定制的Matlab程序完成.由于对Simulink描述的分析比较困难,生成的VHDL代码需要额外的编辑.例如,一些基本模块如标准逻辑门和双相位时钟等的行为描述被手动设计成标准模块库中的一部分.
四、Matlab/Simulink到VHDL代码的转换研究
1.XilinxSystemGenerator
Matlab中的Simulink是一种对动态系统进行建模、仿真及分析的交互式工具.Xilinx公司新推出的SystemGenerator是一种高性能的设计工具,他可以嵌入作为Simulink的一部分运行.在Simulink中SystemGenerator打包为XilinxBlockset,从Simulink的库中可以浏览.SystemGenerator设计流程图如图4-1所示.
本文来源:http://www.sxsky.net/benkelunwen/060156917.html
转换的操作也很简单,在SystemGenerator的模型参数设置对话框,选择一个输出路径并选择“CreateTestbench”,单击“Generate”就可以生成VHDL代码和设计的testbench变量.当选择生成testbench变量后,Simulink将重新运行刚才的仿真.这次由于将经历代码生成过程,他将在testbench变量中保存所有输入和输出信息供VHDL和post-PAR仿真调用.
图4-1Systemgenerator设计流程图
2.基于SystemGenerator的FFT算法的实现
SystemGeneratorforDSP是Xilinx公司开发的基于Simulink图形环境的DSP开发工具.利用SystemGenerator工具,即使是没有多少FPGA设计经验的设计人员也能够快速开发出高性能的FPGA来实现DSP算法.
FFT算法实现流程:
根据FFT算法的原理以及SystemGenerator工具的特点,可以在SystemGenerator中完成FFT算法的设计,然后自动生成HDL代码,通过ISE软件生成位流文件下载到FPGA中,从而完成整个设计.
实验环境:matlab2010b、ISE12.3、SystemGeneratorforDSP12.3
(1)系统模型设计
在Simulink环境中建立一个mdl模型文件,用图形方式调用SystemGenerator和其它的Simulink原图形模块,构成系统级或算法级设计框图如图4-2所示.
图4-2设计框图
Gatewayin和Gatewayout模块:用于双浮点精度数据和定点数据之间的转换.
SystemGenerator模块:提供Matlab和硬件设计环境ISE的接口,可在
关于模块方面论文范文参考文献,与一种谱的Matlab与VHDL代码转换方法相关毕业论文提纲参考文献资料: