基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的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。

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

2)filterbuilder中直接在代码生成面板Code Generation中,单击Generate HDL启动HDL生成GUI。

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

屏幕剪辑的捕获时间: 2011/9/7 7:22

3)命令行启动:

fdhdltool(Hf2)

2、滤波器生成HDL的GUI及其设置:

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

屏幕剪辑的捕获时间: 2011/9/9 22:28

与Simulink HDLCoder相同的Global Settings选项这儿就不做介绍,留在Simulink HDL Coder 中来介绍。这儿主要介绍滤波器HDL生成中的独有选项进行详细介绍,通过这些设置可以优化生成的HDL代码,来满足要求。

1)生成HDL代码

简单设置之后就可以生成HDL代码了,我们这儿直接使用Generate按钮生成HDL,以便和后面的精细设置之后的代码。下图为生成的代码部分截图。

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

屏幕剪辑的捕获时间: 2011/9/9 22:43

2)生成测试激励或联合仿真模型:

如下图所示,在TestBench面板中选择Cosimulation model for use with 就可以生成联合仿真模型。红色部分为联合仿真是需要测试的几个相应。包括脉冲响应、阶跃响应、斜坡信号响应、啁啾响应、白噪声响应、自定义测试(此处是用第一节中的测试用的x=x1+x2)

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

生成的联合仿真模型,如下图所示。这儿启动ModelSim的是单击Start HDL Simulator,和Simulink模型生成联合仿真模型有一点区别。在启动ModelSim后不需要做任何设置直接可以启动Simulink联合仿真。

屏幕剪辑的捕获时间: 2011/9/9 23:08

来看下联合仿真的结果如下图。在观察下自定义测试的局部放大图。

最后看下ModelSim中观察到的结果及局部放大图。

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

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

总结:

利用filter design HDL Coder可以很方便的生成HDL和联合仿真,大大的减少了工作量,可以让设计人员集中精力在算法和思想上来满足需求,不再拘泥于代码。

这时很多人可能有这么个问题,那么就是生成的滤波器所能到达的性能和效率?这个问题的答案是:MBD可以做到一切!生成代码可以达到手写代码所能达到的任何需求甚至更好,只要你使用合适。后面的一节将讨论滤波器代码生成简单优化和FPGA工程的时序分析以及上片测试。

你可能感兴趣的:(优化,filter,测试,matlab,Parameters,generation)