- 1、本文档共253页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
图7.70FIR滤波器模块的基本设计结果7.6.4在Simulink中仿真FIR滤波器
(1)将频谱的屏幕放到前台,选择线性调频信号(Chirpsignal),按照前面叙述的信源范围对其进行参数设置,运行仿真。
注意:出现以下的警告信息是因为Simulink计算了不同的采样率,需要更新它,如图7.71所示。图7.71警告信息指示计算的采样率(2)单击按钮,接受采样率的变更,并返回仿真。
(3)检查由FIR滤波器输出的信号已经被衰减,如图7.72和图7.73所示。暂时停止仿真,进行下一步仿真。图7.72在通带中没有衰减(频谱屏幕)图7.73在止带中衰减(频谱屏幕)(3)设置BlackBox的参数,如图7.60所示。图7.60BlackBox参数设置对话框BlackBox的参数主要包括以下几项:
①Blockconfigurationm-function:规定BlackBox模块配置M函数的名称。M函数可以是手工编写的,也可以是由配置向导自动生成的。
②Simulationmode:有“Inactive”和“Externalco-simulator”两个选项。如果是前者,那么在仿真时将忽略输入,始终输出零;如果是后者,则使用HDL协同仿真。这时需要在模型中新增一个ModelSim模块,并在BlackBox模块的【HDLco-simulatortouse(specifyhelperblockbyname)】项中指定为ModelSim。③FPGAArea:提供资源使用估算的信息。
在生成代码时,该模块功能的硬件实现将直接使用指定的HDL文件,但必须人工编写模块的M函数。进行仿真时,BlackBox模块通过结合多路仿真器(SimulationMultiplexer)模块和ModelSim模块可提供多种灵活的仿真方法。3)?ModelSim模块
ModelSim模块的配置用于控制一个或几个BlackBox模块的协同仿真。这个模块完成以下工作:
(1)把模块构造为允许BlackBoxHDL在ModelSim中被仿真所需要的附加HDL。
(2)当Simulink仿真开始时,该模块引起ModelSim一个对话时间。
(3)在Simulink和ModelSim之间传递通信信息。
(4)当BlackBoxHDL被编译时,该模块报告是否检测出错误。
(5)验证模块功能正确后可终止ModelSim。图7.61ModelSim模块的参数选择4)?GatewayIn模块和GatewayOut模块
GatewayIn模块将Simulink模块的双精度浮点数据转换成XilinxFPGA需要的定点数据,GatewayOut模块则正好相反。当用户选择定点宽度或者用定点方式仿真FPGA设计没有得到期望的结果或结果不正确时,用户就可以选择以双精度浮点的方式仿真整个系统或特定的某些模块,以帮助发现FPGA设计中的哪一部分存在量化错误。5)?Concat模块、Convert模块、Reinterpret模块
在以下的一些情况,可以利用模块来完成所需做的工作:
①将两个数据总线组合起来形成一个新的总线。
②强迫进行包括位数和二进制点的数据类型变换。
③重置无符号数为符号数或符号数为无符号数。
④在数据位增长时提取数据的指定位。
(1)?Concat模块。此模块执行两个位矢量的连接,模块的两个输入必须是无符号的整数,如果输入不是无符号整数,可以利用Reinterpret模块将符号数变换为无符号数的能力达到扩展Concat模块功能的目的。(2)?Convert模块。该模块可以把每个输入采样变换为所需算术类型的数。
①一个数可以变换为二进制补码的符号数或无符号数。
②总位数和二进制点由设计者规定。
③舍入和量化选择加到输出数值。
④取决于溢出和量化的选择。
在规定总位数和二进制点位置、符号或无符号的算术类型后,模块首先排齐输入和输出端口类型之间的二进制点,然后利用溢出和量化选择规定的总位数和二进制点。饱和溢出会改变小数的数值。舍入量化也可能影响到二进制点左边的数值。例如:通过Convert模块可将以下数值在使用不同位数和二进制点时有相同的结果。
原始数值: Fix_10_8 01 变换为: Fix_7_4 001.1000
变换为: Fix_6_0 000010.(舍入)
文档评论(0)