Chinaunix首页 | 论坛 | 博客
  • 博客访问: 243924
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-30 14:04
文章分类

全部博文(36)

文章存档

2014年(36)

我的朋友

分类: 嵌入式

2014-10-31 08:53:14

使用 Simulink、算法块和已有的 HDL 代码,可创建系统级的设计模型,并优化设计以在硬件上实现。HDL Coder?可用于自动生成 HDL 代码,以在 FPGA 中快速实现算法。通过采用 HDL Verifier将 Simulink 测试平台与在 HDL 仿真器中运行的 FPGA 实现方案联系起来,可从功能上验证 HDL 代码。

      要设计算法以供在 FPGA 或与处理器结合的 FPGA 上实现,要求对影响功能性能的定点特性进行准确的建模。可在 MATLAB 和 Simulink 中创建浮点算法规格,然后将其转换为位真定点数据类型以供仿真。对设计进行模型级定点优化可用于透彻地研究 FPGA 设计所涉及的定点权衡。还可以创建有限状态机来对这些算法的控制逻辑进行建模。

使用 HDL Coder,能自动从模型生成可自定义的、与目标无关的 VHDL 和 Verilog 代码,这些代码可综合以用于 FPGA 实现。可通过更新模型并重新生成代码来快速修改该代码。生成的代码可传递到下游工具以供综合、布局、布线,并将位流下载到 FPGA。

网上找的一个案例,不是很全,先了解下吧

 

 设计FIR滤波器的方法有多种,其中Matlab软件提供了很多关于滤波器设计的工具箱,FDATool就是一个很好的工具,如图2所示就是FDATool的界面,可以在Matlab的Command窗口中直接输入FDATool命令来调用。

图2

滤波器的设计首先需要设置的参数:

(1) Response Type:选择FIR滤波器的类型:低通、高通、带通和带阻等。如图3所示为Lowpass中的下拉选项,在DDC/DUC模块设计中,抽取和内插需要使用Halfband Lowpass类型,而channel filter需要使用Raised-cosine类型。

图3

(2) Design Method:FIR滤波器设计方法有多种,如图4所示,最常用的是窗函数设计法(Window)、等波纹设计法(Equiripple)和最小二乘法(Least-Squares)等。其中窗函数设计法在学校课堂中是重点讲解的,提到FIR滤波器肯定会想到hamming、kaiser窗,但是实际应用中却很少使用,因为如果采用窗函数设计法,达到所期望的频率响应,与其它方法相比往往阶数会更多;而且窗函数设计法一般只参照通频带wp、抑制频带ws和理想增益来设计滤波器,但是实际应用中通频带和抑制带的波纹也是需要考虑的,那在这种情况下,采用等波纹设计法就非常适用了。

图4

(3) Filter Order:设置滤波器的阶数,这个选项直接影响滤波器的性能,阶数越高,性能越好,但是相应在FPGA实现耗用的资源需要增多。在这个设置中提供2个选项:Specify order和Minimum order,Specify order是工程师自己确定滤波器的阶数,Minimum order是让工具自动确定达到期望的频率相应所需要的最小阶数,因此具体选择哪个选项得视实际情况而定了。

图5

(4) Frequency Specification:设置频率响应的参数,包括采样频率Fs、通带频率Fpass和阻带频率Fstop。

图6

参数设置完成后,FDATool就会分析并且生成滤波系数,如图7所示,可以得到滤波器的频率相应曲线,并且可以通过File->Export导出滤波系数,如图8所示。

图7

图8

为了快速验证FIR滤波器的FPGA实现,使用Xilinx的System Generator工具,如图9所示为FIR滤波器的验证模型,其中通过Gateway In和Gateway out模块分隔matlab simulink模块和Xilinx FPGA模块,matlab simulink模块用于产生测试源,接收并显示滤波后波形。还有System Generator Token用于生成Xilinx FPGA模块的HDL代码。

图9

其中FIR Compiler 5.0模块的参数设置如图10所示,滤波系数直接调用FDATool生成的滤波系数equ_coe,输出为全精度数据。

图10

得到输出结果如图11所示,上边图为输入原波形,由两个频率分量的正弦波叠加而成,频率分别为2MHz和100MHz,经过FIR滤波之后,100MHz频率分量被滤除。

阅读(2921) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~