




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要:EDA技术与VHDL程序开发基础教程第4章Quartus II操作指南,本章主要介绍Altera公司配套的EDA开发套件Quartus II的使用方法。该软件在大学教学中使用最为广泛。通过介绍Quartus II工具的设计流程、嵌入式逻辑分析仪和宏单元模块的使用,力求使读者熟练掌握现代数字系统的设计流程和仿真验证方法。本小节为大家介绍LPM_ROM宏模块的工作原理。 标签:EDAVHDLEDA技术与VHDL程序开发基础教程4.3 LPM_ROM宏模块的使用Altera器件提供了一系列宏功能模块供设计者使用,如片上存储器、DSP模块、LVDS驱动器、嵌入式PLL及SERDES和DDIO电路等。这些模块的应用主要是为了提高EDA电路设计的效率和可靠性。设计者只要根据实际电路的设计需要,选择LPM库中的适当模块,为其设定适当的参数,便可以满足自己的设计指标,从而成功地达到优秀电子工程师的设计成果。LPM功能模块内容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言、模块参数设置及调用方法都可以在Quartus II的帮助文档中查到。本节以一个正选信号发生器为例介绍LPM_ROM的使用方法。4.3.1 LPM_ROM宏模块的工作原理图4-27为正弦信号发生器的模块化结构,可以看出该信号发生器由以下4部分组成:计数器正弦信号数据ROMVHDL顶层设计D/A转换器图4-27 正弦信号发生器结构在上述结构中,顶层文件在FPGA中实现包含ROM地址信号发生器和正弦数据ROM两部分。其中,ROM地址信号发生器由一个5位计数器实现,正弦数据ROM由LPM_ROM模块构成。LPM_ROM的底层是FPGA中的EAB或M4K等模块。正弦信号数据的采样率是64,即CLK频率为正弦信号频率的64倍。4.3.2 初始化数据文件由图4-27可知,正弦信号的数据ROM是通过LPM_ROM宏模块生成的。目前,Quartus II能接受的LPM模块的初始化数据文件的格式有两种,即Memory Initialization File(.mif)格式和Hexadecimal File(.hex)格式。下面以64点正弦波形数据为例使用.mif文件进行说明。首先在Quartus II中打开ROM数据文件编辑窗口,即选择File|New命令,在New对话框中切换到Other files选项卡,再选择Memory Initialization File选项,单击OK按钮后产生ROM数据文件大小选择窗口。这里采用64点8位数据的情况,可选ROM的数据数Number为64,数据宽Word size取8位。单击OK按钮,将出现如图4-28所示的空mif数据表格,表格中的数据为10进制形式,任一数据(如第三行的99)对应的地址为左列数与顶行数之和)。将波形数据填入此表中,完成后在File菜单中单击Save as命令,保存此数据文件。在这里不妨取名为romd.mif。图4-28 mif文件的数据当然,除了Quartus II之外,还可以用其他编辑器设计MIF文件,只要格式符合要求,均能够被正常使用。设计者甚至可以编写C语言程序生成目标MIF文件或者利用MATLAB来生成。由于这些方法超出了本书的范围,在此不做过多的讨论,有兴趣的读者可以参阅相关资料。4.3.3 定制LPM_ROM元件(1)在设计正弦信号发生器前,必须首先完成存放波形数据ROM的设计。利用MegaWizard Plug-In Manager可以定制正弦信号数据ROM宏功能模块,并将以上的波形数据加载于该ROM中,具体步骤如下。1. 打开MegaWizard Plug-In Manager打开MegaWizard Plug-In Manager的初始对话框。选择Tools|MegaWizard Plug-In Manager命令,弹出图4-29所示的对话框,选择Create a new custom megafunction variation单选按钮,即定制一个新的模块。图4-29 MegaWizard Plug-In Manager对话框单击Next按钮,出现图4-30所示的窗口,在左栏选择Storage项下的ROM :1-PORT,再选Cyclone器件和VHDL语言方式,最后输入ROM文件存放的路径和文件名:F:VHDLsin_gntdata_rom.vhd,单击Next按钮。(点击查看大图)图4-30 LPM宏功能设定2. 选择ROM控制线和地址、数据线在图4-31和图4-32所示的窗口中选择地址与数据的位宽分别为6和8,选择地址所存控制信号inclock,去除输出锁存功能。(点击查看大图)图4-31 选择data_rom模块数据线和地址线宽度(点击查看大图)图4-32 选择地址锁存信号inclock4.3.3 定制LPM_ROM元件(2)3. 选择数据文件单击Next按钮进行图4-33所示的窗口,选择Yes,use this file for the memory content data单选按钮并在File name文本框中选择数据文件romd.mif,最后选中Allow In-System Memory复选框,完成ROM文件data_rom.vhd的生成。Allow In-System Memory是Altera的新功能,支持对FPGA中的ROM进行在系统测试和读写,且不影响数字系统的正常工作。(点击查看大图)图4-33 调入ROM初始化数据文件并选择在系统读写功能按顺序完成以上三步的操作后,Quartus会自动生成data_rom的VHDL源程序,如例4-1所示。通过阅读程序,读者可以很快了解LPM_ROM调用mif数据文件的方式以及与其他元件进行连接的方法。【例4-1】data_rom的源程序1. LIBRARYieee; 2. USEieee.std_logic_1164.all; 3. LIBRARYaltera_mf; 4. USEaltera_mf.all;-使用宏功能库中的所有元件 5. 6. ENTITYdata_romIS 7. PORT 8. ( 9. address:INSTD_LOGIC_VECTOR(5DOWNTO0); 10. inclock:INSTD_LOGIC; 11. q:OUTSTD_LOGIC_VECTOR(7DOWNTO0) 12. ); 13. ENDdata_rom; 14. 15. ARCHITECTURESYNOFdata_romIS 16. SIGNALsub_wire0:STD_LOGIC_VECTOR(7DOWNTO0); 17. COMPONENTaltsyncram-例化altsyncram元件,调用LPM模块altsyncram 18. GENERIC(-参数传递 19. address_aclr_a:STRING; 20. init_file:STRING; 21. intended_device_family:STRING;-类属参量数据类型定义 22. lpm_hint:STRING; 23. lpm_type:STRING; 24. numwords_a:NATURAL; 25. operation_mode:STRING; 26. outdata_aclr_a:STRING; 27. outdata_reg_a:STRING; 28. widthad_a:NATURAL; 29. width_a:NATURAL; 30. width_byteena_a:NATURAL 31. ); 32. PORT( 33. clock0:INSTD_LOGIC; 34. address_a:INSTD_LOGIC_VECTOR(5DOWNTO0); 35. q_a:OUTSTD_LOGIC_VECTOR(7DOWNTO0) 36. ); 37. ENDCOMPONENT; 38. BEGIN 39. qNONE, 43. init_file=romd.mif, 44. intended_device_family=Cyclone, 45. lpm_hint=ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ROM1, 46. lpm_type=altsyncram, 47. numwords_a=64, 48. operation_mode=ROM, 49. outdata_aclr_a=NONE, 50. outdata_reg_a=UNREGISTERED, 51. widthad_a=6, 52. width_a=8, 53. width_byteena_a=1 54. ) 55. PORTMAP(-声明元件连接关系 56. clock0=inclock, 57. address_a=address, 58. q_a=sub_wire0 59. ); 60. ENDSYN;4.3.4 顶层文件的仿真测试顶层文件的仿真测试是检查整个系统是否能够正常工作最有效的方法。在生成data_rom.vhd文件后,完成项目的操作流程与4.1节基本相同,包括编辑顶层设计文件,例化刚刚生成的LPM_ROM宏模块、创建工程、全程编译、观察RTL电路、仿真、了解时序分析报告、指定引脚及下载测试等。例4-2给出了一个使用LPM_ROM宏模块的顶层设计范例。【例4-2】顶层设计文件1. LIBRARYIEEE;-声明IEEE库 2. USEIEEE.STD_LOGIC_1164.ALL;-声明程序包 3. USEIEEE.STD_LOGIC_UNSIGNED.ALL; 4. ENTITYSINGTIS 5. PORT(CLK:INSTD_LOGIC;-实体声明 6. DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0); 7. END; 8. ARCHITECTUREDACCOFSINGTIS 9. COMPONENTdata_rom-声明LPM_ROM 10. PORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0); 11. inclock:INSTD_LOGIC; 12. q:OUTSTD_LOGIC_VECTOR(7DOWNTO0); 13. ENDCOMPONENT; 14. SIGNALQ1:STD_LOGIC_VECTOR(5DOWNTO0); 15. BEGIN 16. PROCESS(CLK) 17. BEGIN 18. IFCLKEVENTANDCLK=1THEN 19. Q1Q1,q=DOUT,inclock=CLK);-调用data_rom 23. END;例4-2为顶层设计文件的VHDL代码,仿真结果如图4-34所示。使用嵌入式逻辑分析仪测试波形,所得结果如图4-35所示,参数设置为1024位采样深度,使用信号源的时钟CLK,触发位置为重点,触发信号是地址发生器的最高位且为上升沿触发,由图4-35可以看到一个正弦信号波形。(点击查看大图)图4-34 正弦信号发生器的仿真波形(点击查看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高考物理论证题逻辑链条构建试题
- 2025年面试城管考试题目及答案
- 2025年高考物理“责任担当”精神试题
- 工程岩土学考试题及答案
- 高职语文备考试题及答案
- 高科新员工考试题及答案
- 梦想星球的奇遇想象作文9篇
- 2025年高考试题题型分布及答案
- 医疗器械购销与使用培训协议
- 销售合同标准化条款及风险评估工具
- 比亚迪客服经理岗位认证考试题
- 2024河南省三门峡黄金工业学校工作人员招聘考试及答案
- 中西方文化对比研究
- 婴幼儿发展与活动指导岁婴幼儿生长发育概述课件
- 《诗经之采葛》课件
- 2025年度会计代理记账机构员工劳动合同范本
- 2025届高考语文复习:小说标题的含义、作用
- 小学生人体奥秘课件
- 电子信息工程概论(叶树江编)-第2章
- 施工企业五年规划
- My Lovely Lady 高清钢琴谱五线谱
评论
0/150
提交评论