用 HDL CoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器.docx
- 文档编号:7841978
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:15
- 大小:135.14KB
用 HDL CoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器.docx
《用 HDL CoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器.docx》由会员分享,可在线阅读,更多相关《用 HDL CoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器.docx(15页珍藏版)》请在冰豆网上搜索。
用HDLCoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器
实验2:
用HDLCo-Simulation(协同仿真)验证MAC(乘法累加器)有限冲激响应滤波器
针对Spartan-3E开发套件
用同步Co-Simulations(协同仿真)验证MACFIRFilter(有限冲激响应滤波器)
介绍
在这个试验中,你将检验如何通过blackbox(黑匣)和co-simulationtoken(协同仿真)把一个VHDL模型(用户自定义)或者COREGenerator™IP文件整合进SystemGenerator.你可以用blackbox调用XilinxiSIM仿真器来验证此模块的功能并可在Simulink™工具的示波器中观察输出.blackbox和token能够用在任何同水平层次的VHDL代码或者IP(EDIF)网表的仿真.在以HDLco-simulation模式完成校验以后,你将可以创建一个硬件协同仿真模块并执行硬件和软件HDL协同仿真.
注意:
在c:
xup\dsp_flow\labs\solutions\lab2目录下有完整的例子.
目标
在完成这个试验后,你将能够:
∙把核作为黑匣整合进你的设计中,并用具有XilinxiSIM仿真器的HDL协同仿真来仿真你的设计
∙通过MATLAB设计文件设计blackbox和Simulink之间的接口
∙以不同的方法运用黑匣:
通过硬件协同仿真把核放入Simulink工具中,并观察验证速度的提高
∙创建一个硬件协同仿真模块并执行硬件和软件协同仿真
设计描述
你是Cyberdyne系统的一个dsp设计者.你的公司正在调查用数字滤波器代替安防检测器中的模拟滤波器,以尝试提高性能和降低整个系统的成本.这将使贵公司可以进一步渗入日益增长的安防市场.一个单频取样滤波器设计如下:
∙SamplingFrequency(Fs)(采样频率)=3.0MHz
∙Fstop1=540kHz
∙Fpass1=600kHz
∙Fpass2=900kHz
∙Fstop2=960kHz
∙Attenuationonbothsidesofthepassband(双边通频带衰减)=54dB
∙Passbandripple(通频带脉动)=1
因为灵活性和上市时间的原因,Cyberdyne已经选择FPGA来实现它.你的HDL设计经验是有限的.因为你对MathWorks的产品比较熟悉,所以SystemGeneratorforDSP会是一个在FPGA中实现滤波器的优秀解决方案.
因为利用这个原理实现全部设计的滤波器太大,你的苛刻的经理要求你调查可以创建更小滤波器的其它技术.利用较小的Spartan™-3或Spartan-3E器件,可以使滤波器缩小50%,从而使全部设计更加合适.这将使产品成本显著地降低,从而提高产品的市场竞争力.也就是说,由于系统的其它部分不会用到内嵌的乘法器而你的经理又不想浪费资源,所以,如果你能利用这些乘法器的话,将是十分有利的.
那些系统,与Lab4中产生的一样,被修改成整形并被存在lab3目录中名为coef.coe的系数文件中.这是因为通过COREGenerator™软件系统加载的系数必须是整形格式.
滤波器可以通过阶跃函数输入源来仿真,其输出结果是可观察的.为了分析滤波器的输出,可以用示波器来显示输入和输出.
实验步骤
这个实验包括四个主要步骤.在步骤1里,你将用coef.coe中提供的系数和COREGenerator软件系统来产生一个MACFIR核.你也要创建一个wrapper文件以便这个核能与Simulink.环境接口.在步骤2,你将完成设计.在步骤3,你将执行HDL协同仿真验证.步骤4将指导你利用硬件协同仿真对这个设计进行仿真.
对于每一大步的每一小步,会有总的指示(其符号标记为).这些总的指示只是提供实现这一小步的大纲.在这些总的指示下面,还有手把手的指导信息指示如何完成每一小步.如果你对完成某一小步有信心,你可以略过它下面的细节指示,跳到下一步去..
产生一个MACFIR核步骤1
实验总流程:
步骤4:
通过硬件
来验证
步骤3:
执行HDL
协同仿真
步骤2:
完成MACFIR的设计
步骤1:
产生一个MACFIR
核
用COREGenerator软件系统来产生一个针对Spartan™-3E系列的单频取样MAC滤波器核.
❶选择StartProgramsXilinxISE8.2iAccessoriesCoreGenerator
❷在开始出现的对话框中点击CreateaNewProject
❸点击浏览按钮,选中c:
\xup\dsp_flow\labs\lab2目录,然后点击OK
图2-1.目录选择窗口
❹在指示coregen目录不存在并问你是否创建这个目录的对话框中点YES
❺
在Part标签卡里选择以下选项并点击OK
图2-2.Part选择窗口
❻在左边窗口双击DigitalSignalProcessingFilters以后,选择MACFIRFilter5.1
图2-3.Part选择窗口
❼双击MACFIR5.1Core条目,以打开配置对话框
❽在MACFIR配置对话框中分五步选择下列选项
第1页
¡ComponentName:
fir
¡SingleRateFIR:
选中
¡Channels:
1
第2页
¡Taps:
92
¡ImpulseResponse:
对称
¡CoefficientWidth:
12
¡NumberofCoefficientSets:
1
¡CoefficientType:
有符号
¡CoefficientBufferType:
BlockMemory
第3页
¡DataWidth:
8
¡DataType:
有符号
¡DataBufferType:
BlockRAM
¡点击LoadCoefficients并从lab2目录选择coef.coe文件
第4页
¡PerformanceOptimization:
Auto
¡SystemClockRate:
276MHz
¡InputSampleRate:
3MHz
¡RegisteredOutput:
被选中
第5页
显示配置统计.注意Resultwidth(=27)和Latency(=57)
❾点击Generate以产生核,当成功产生时点击OK
注意:
产生的文件列表形如:
fir.mif,COEF_BUFFER.mif,fir.edn,fir.vhd,andfir.vho,这是值得注意的
❿关闭COREGenerator™软件系统
打开并修改wrapper文件fir_blackbox.vhd以包含所有除类型std_logic_vector的clock和clock-enable文件外的所有输入.一般地,这个文件必须被用户创建.这个文件需要提供时钟电路的时钟使能,这是与SystemGenerator模块集接口的基础
❶用M-Editor或WordPad应用程序打开位于目录c:
\xup\dsp_flow\labs\lab2下的fir_blackbox.vhdwrapper文件
注意:
这个文件是为了方便才提供给你.实际上,这个文件必须针对一个没有使能的时钟核而被创建(如此例).
❷在fir_blackbox实体中改变reset端口入口,使它成为尺度为1的std_logic_vector.
结果应如下所示:
reset:
instd_logic_vector(0downto0);
❸反注释U1实例(所有七行)以包括fir核模块实例
❹储存并关闭file
完成针对HDL协同仿真的MACFIR设计步骤2
试验总流程:
Step4:
VerifyingthroughHardware
Step3:
PerformingHDLCo-Simulation
Step2:
CompletingtheMACFIRDesign
Step1:
GeneratingaMACFIRCore
用MATLAB控制台窗口打开c:
\xup\dsp_flow\labs\lab2目录下的模型文件fir_bb_hdlcosim.mdl.从XilinxBlocksetBasicElements添加BlackBox模块到这个设计中.为BlackBoxblock模块指定fir_blackbox.vhd文件.
❶在MATLAB中,从命令行窗口键入cdc:
\xup\dsp_flow\labs\lab2
❸从MATLAB控制台窗口打开fir_bb_hdlcosim.mdl
一个带有输入、输出、示波器和系统发生器符号的模型将被打开,如图2-4所示.
图2-4.fir_bb_hdlcosim模型
❹从XilinxBlocksetBasicElements库中加入BlackBox模块到这个设计
一个BlackBox配置文件对话框打开,显示可利用的VHDL文件(图2-5).
图2-5.BlackBox配置文件对话框
❺选择c:
\xup\dsp_flow\labs\lab2\fir_blackbox.vhd文件并点击Open以指定它为顶层实体
带有合适的端口数和端口名的BlackBox符号将被加入到这个设计中,如图2-6所示.
图2-6.被加入到设计中的BlackBoxBlock
具有顶层VHDL实体入口的配置文件也会被打开,BlackBox可以通过这个入口连到仿真器.请通过配置文件浏览并理解文件中的主要部件.注意对VHDL文件仅有的参考是顶层入口.对于实现编译的ModelSim仿真器而言,它需要所有按合适顺序排列的分层文件的入口.
图2-7.在BlackBox关联期间自动产生的配置文件的一部分
❻在this_block.addFile('fir_blackbox.vhd')文件前添加下列入口;行[行63]
this_block.addFile('coregen\fir.edn');
this_block.addFile('coregen\COEF_BUFFER.mif');
this_block.addFile('coregen\fir.mif');
this_block.addFile('coregen\fir.vhd');
❼改变指示输出尺寸为27的行,并把类型UFIX改为FIX,如下所示[行26]
dout_port.setType('Fix_27_0');
❽选择FileSave,关闭editor
把BlackBox符号与设计的输入和输出相连.选择iSIM仿真器并执行HDL协同仿真.
❶把BlackBox符号与输入和输出相连
连接后的设计应如下图所示.
图2-8.包含ModelSim符号的完整设计
❸双击BlackBox模块,为仿真模式选择ISESimulator
图2-9.选择仿真模式
❹点击OK接受设置
❽储存model
执行HDL协同仿真步骤3
试验总流程:
Step4:
VerifyingthroughHardware
Step3:
PerformingHDLCo-Simulation
Step2:
CompletingtheMACFIRDesign
Step1:
GeneratingaMACFIRCore
设置仿真停止时间为100并运行仿真.研究输出.你将看到滤波器系数剖面图显示在输出窗口.
❶选择SimulationConfigurationParameters菜单项并在StopTime区域中键入100来设置仿真停止时间为100
图2-10.选择100作为仿真时间
❷在MATLAB命令窗口中键入Ts=1并回车
注意:
模块中的gateway的采样率被设为Ts.
❸点击Run(
)按钮来开始仿真
SIM仿真器将在后台被调用,结果将显示在Simulink示波器窗口.你也会看到一个警告框,指示Simulink系统周期设置无效.
❹
当仿真阶段开始时,点击Scope模块可以看到Simulink窗口的输出,如图2-11
Figure2-11.示波器显示输入和输出
❺放大并观察示波器的输出(图2-12)
图2-12.示波器显示完整的输入和输出
❻关闭Scope窗口
❼储存model
加入ResourceEstimator模块,双击它,点击Post-MapAreaReport以获得资源利用量.
❶在工程窗口放置ResourceEstimator模块
❷双击ResourceEstimator模块
❸选择Post-MapArea并点击Estimate按钮
1.
读ResourceEstimator窗口返回的信息并回答以下问题.
Slices的数目:
FFs的数目:
LUTs的数目:
embeddedmultipliers的数目:
通过硬件协同仿真实现验证步骤4
实验总流程:
Step4:
VerifyingthroughHardware
Step3:
PerformingHDLCo-Simulation
Step2:
CompletingtheMACFIRDesign
Step1:
GeneratingaMACFIRCore
把模型储存为fir_hwcosim.mdl.把目标编译改为HardwareCo-SimulationSpartan-3Estarterkit.选择./netlist_hw作为目标目录.产生硬件协同仿真模块.
❶把模块储存为fir_hwcosim.mdl
❷双击SystemGenerator模块
❸点击Compilation并选择HardwareCo-SimulationxupSpartan_3e_Starter_Kit作为目标硬件板
❹输入./netlist_hw作为目标目录
❺点击Apply接受设置
❻点击Generate,一个命令窗口会打开,显示编译过程
当产生成功完成后,一个新的Simulink库窗口会打开,一个已编译的、具有合适输入输出数的模块会出现.
复制并添加fir_hw_hdlcosim到设计中.把它连到合适的输入输出上以完成设计.指定属性以便blackbox比fir_hwcosim_hwcosim模块有较低的优先级
❶复制fir_hwcosim_hwcosim到设计中
❷连接fir_hwcosim_hwcosim到输入输出,结果应如图2-17所示
图2-17.具有BlackBox和HardwareCo-SimulationLibraryBlock的设计
❸右击BlackBox模块并选择BlockProperties.
❹在Priority区域填入10
❺右击fir_hw_hdlcosim并选择BlockProperties
❻在Priority区域填入0
现在,0比10小,因为较低数字有较高的优先级,HWIL将较早开始HDL协同仿真.如果不这样,因为调用ISE仿真器需要更多时间,这有可能造成HWIL会话超时.
❼储存这个model
如果你正在使用物理板,
请连接好板子.通过Simulink工具仿真这个设计并验证它的功能.如果你没有使用物理板,请从下面细节步骤5开始.
❶连接powercable到硬件板
❷连接usbcable到板子和计算机.
❸在板子被连接以后,打开电源.并行电缆会有绿色LED点亮
❹双击硬件模块并设置电缆为PlatformUSB.
❺在Simulink窗口中点击Run按钮(
)运行仿真
BIT配置文件将被下载,仿真将开始运行.
输出示波器上的仿真结果将在顶部显示输入,底部显示硬件输出(如图2-18).
图2-18.SimulationResultShowingHardwareOutputattheTopandBlackBoxOutput(throughModelSim)Bottom
❻完成后关闭电源
❼关闭model
结论
通过这个试验,你学会用COREGenerator™软件系统产生核,使之与wrapper相结合并实现它与blackbox的接口.你可以通过HDL协同仿真(用ISIM仿真器)和硬件协同仿真来验证这个设计.执行结果会清楚地指出你可以设计出令你经理满意的系统.
答案
1.
读ResourceEstimator的返回信息并回答下列问题.
Slices的数目:
95
FFs的数目:
152
LUTs的数目:
110
embeddedmultipliers的数目:
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HDL CoSimulation协同仿真验证MAC乘法累加器有限冲激响应滤波器 CoSimulation 协同 仿真 验证 MAC 乘法 累加器 有限 冲激 响应 滤波器