1、43LPMROM宏模块H的使用4.3-LPM-ROM宏模块H的使用D图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,去除输出锁存功能。(点击查看
2、大图)图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进行在系统测试和读写,
3、且不影响数字系统的正常工作。(点击查看大图)图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.
4、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; 2
5、0.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:I
6、NSTD_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.operatio
7、n_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节基本相
8、同,包括编辑顶层设计文件,例化刚刚生成的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.AR
9、CHITECTUREDACCOFSINGTIS 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=
10、CLK);-调用data_rom 23.END;例4-2为顶层设计文件的VHDL代码,仿真结果如图4-34所示。使用嵌入式逻辑分析仪测试波形,所得结果如图4-35所示,参数设置为1024位采样深度,使用信号源的时钟CLK,触发位置为重点,触发信号是地址发生器的最高位且为上升沿触发,由图4-35可以看到一个正弦信号波形。(点击查看大图)图4-34 正弦信号发生器的仿真波形(点击查看大图)图4-35 用SignalTap II实时观察正弦信号发生器的结果4.4 本章小结本章主要讲述了采用EDA软件Quartus II进行VHDL设计的操作方法以及嵌入式逻辑分析仪(SignalTap II)和LPM_ROM宏模块的使用。熟练掌握这些操作对于工程师快速、高效地设计正确的数字系统有很大帮助。通过本章的学习,读者应该掌握以下几个知识点:掌握Quartus II基本设计流程;掌握嵌入式逻辑分析仪的设计目的、原理和使用方法;掌握LPM_ROM宏模块的工作原理和使用方法。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1