基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的HDL代码生成
2011-09-09 23:34
1021 查看
MBD-FPGA 开发与实现
http://blog.sina.com.cn/McCrocodile
这里要介绍的内容可以在帮助文档Filter Designer HDL Coder章节查找到相应的内容,包括:如何在Matlab中生成滤波器的HDL代码,以及对生成的HDL代码加以测试(联合仿真)。
1、代码生成GUI的启动:
主要有三种方式:从Fdatool启动,从filterbuilder启动,命令行启动。
1)如下图所示从fdatool中启动代码生成,但是在这个之前你需要量化(定点化)滤波器Set Quantization Parameters ,甚至设置滤波器的结构Filter arithmetic。
2)filterbuilder中直接在代码生成面板Code Generation中,单击Generate HDL启动HDL生成GUI。
屏幕剪辑的捕获时间: 2011/9/7 7:22
3)命令行启动:
fdhdltool(Hf2)
2、滤波器生成HDL的GUI及其设置:
屏幕剪辑的捕获时间: 2011/9/9 22:28
与Simulink HDLCoder相同的Global Settings选项这儿就不做介绍,留在Simulink HDL Coder 中来介绍。这儿主要介绍滤波器HDL生成中的独有选项进行详细介绍,通过这些设置可以优化生成的HDL代码,来满足要求。
1)生成HDL代码
简单设置之后就可以生成HDL代码了,我们这儿直接使用Generate按钮生成HDL,以便和后面的精细设置之后的代码。下图为生成的代码部分截图。
屏幕剪辑的捕获时间: 2011/9/9 22:43
2)生成测试激励或联合仿真模型:
如下图所示,在TestBench面板中选择Cosimulation model for use with 就可以生成联合仿真模型。红色部分为联合仿真是需要测试的几个相应。包括脉冲响应、阶跃响应、斜坡信号响应、啁啾响应、白噪声响应、自定义测试(此处是用第一节中的测试用的x=x1+x2)
生成的联合仿真模型,如下图所示。这儿启动ModelSim的是单击Start HDL Simulator,和Simulink模型生成联合仿真模型有一点区别。在启动ModelSim后不需要做任何设置直接可以启动Simulink联合仿真。
屏幕剪辑的捕获时间: 2011/9/9 23:08
来看下联合仿真的结果如下图。在观察下自定义测试的局部放大图。
最后看下ModelSim中观察到的结果及局部放大图。
总结:
利用filter design HDL Coder可以很方便的生成HDL和联合仿真,大大的减少了工作量,可以让设计人员集中精力在算法和思想上来满足需求,不再拘泥于代码。
这时很多人可能有这么个问题,那么就是生成的滤波器所能到达的性能和效率?这个问题的答案是:MBD可以做到一切!生成代码可以达到手写代码所能达到的任何需求甚至更好,只要你使用合适。后面的一节将讨论滤波器代码生成简单优化和FPGA工程的时序分析以及上片测试。
http://blog.sina.com.cn/McCrocodile
这里要介绍的内容可以在帮助文档Filter Designer HDL Coder章节查找到相应的内容,包括:如何在Matlab中生成滤波器的HDL代码,以及对生成的HDL代码加以测试(联合仿真)。
1、代码生成GUI的启动:
主要有三种方式:从Fdatool启动,从filterbuilder启动,命令行启动。
1)如下图所示从fdatool中启动代码生成,但是在这个之前你需要量化(定点化)滤波器Set Quantization Parameters ,甚至设置滤波器的结构Filter arithmetic。
2)filterbuilder中直接在代码生成面板Code Generation中,单击Generate HDL启动HDL生成GUI。
屏幕剪辑的捕获时间: 2011/9/7 7:22
3)命令行启动:
fdhdltool(Hf2)
2、滤波器生成HDL的GUI及其设置:
屏幕剪辑的捕获时间: 2011/9/9 22:28
与Simulink HDLCoder相同的Global Settings选项这儿就不做介绍,留在Simulink HDL Coder 中来介绍。这儿主要介绍滤波器HDL生成中的独有选项进行详细介绍,通过这些设置可以优化生成的HDL代码,来满足要求。
1)生成HDL代码
简单设置之后就可以生成HDL代码了,我们这儿直接使用Generate按钮生成HDL,以便和后面的精细设置之后的代码。下图为生成的代码部分截图。
屏幕剪辑的捕获时间: 2011/9/9 22:43
2)生成测试激励或联合仿真模型:
如下图所示,在TestBench面板中选择Cosimulation model for use with 就可以生成联合仿真模型。红色部分为联合仿真是需要测试的几个相应。包括脉冲响应、阶跃响应、斜坡信号响应、啁啾响应、白噪声响应、自定义测试(此处是用第一节中的测试用的x=x1+x2)
生成的联合仿真模型,如下图所示。这儿启动ModelSim的是单击Start HDL Simulator,和Simulink模型生成联合仿真模型有一点区别。在启动ModelSim后不需要做任何设置直接可以启动Simulink联合仿真。
屏幕剪辑的捕获时间: 2011/9/9 23:08
来看下联合仿真的结果如下图。在观察下自定义测试的局部放大图。
最后看下ModelSim中观察到的结果及局部放大图。
总结:
利用filter design HDL Coder可以很方便的生成HDL和联合仿真,大大的减少了工作量,可以让设计人员集中精力在算法和思想上来满足需求,不再拘泥于代码。
这时很多人可能有这么个问题,那么就是生成的滤波器所能到达的性能和效率?这个问题的答案是:MBD可以做到一切!生成代码可以达到手写代码所能达到的任何需求甚至更好,只要你使用合适。后面的一节将讨论滤波器代码生成简单优化和FPGA工程的时序分析以及上片测试。
相关文章推荐
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(四)Matlab中滤波器HDL代码生成优化
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(二)Matlab中滤波器的定点化
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(一)在Matlab中高效设计滤波器
- 基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(一):跑马灯
- 基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表
- 基于模型设计的FPGA开发与实现:基本流程(一)概述
- 基于FPGA与MATLAB的IIR滤波器设计与实现
- 应用层代码设计(基于模型自动代码生成)
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 基于Matlab的语音信号滤波器的设计与实现
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 基于matlab FPGA verilog的FIR滤波器设计
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- Android自动化基于UIAutomator的实现及代码生成
- 基于FPGA的直接数字频率合成器的的设计和实现设计和实现
- 基于邻接矩阵存储的无向网图的创建,最小生成树算法实现完整代码