基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的HDL代码生成

本文介绍了如何在Matlab中使用Filter Designer HDL Coder生成滤波器的HDL代码,并进行测试。通过启动代码生成GUI、设置参数和优化选项,可以生成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工程的时序分析以及上片测试。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值