LPM宏模块使用方法
- 格式:docx
- 大小:607.73 KB
- 文档页数:7
LPM_ROM的应用该模块为逻辑宏模块存储器。
其应用过程如下。
1选择模块2点击ok后,得到3属性编辑:可以根据实际需要选择数据宽度和内存的容量,默认是修改空间和数据属性,Cyclone系列支持最大存储深度4k。
8bit,32个字空间。
该界面可以选择输出引脚的属性, 需要把hex文件或者mif放置该模块:Iprr< Back Next >All Fil«address[7.> dockResource Estitnaift1 M4KFinish其中mif文件或者hex文件可以由多种形式生成。
或由多种工具获得,女口Quartus的Text File编辑器、Matlab等。
完成设置:Kegaf izard Plug-In lanager - LPI_ROI [page 6 of 6] —S UBM aryWto the 'Finish' button i$ pressed, the MegaV/izard Plug-In Manager 囚illcreate the checked file$ in the follo^irig list You may choose to includeor exclude a file by checking or ur»cbecking 韶co悴pondingcheckbox^ respective^. The state of checkboxes will be remembered forthe next MegaWizard Plug-In Manager session.T he M tga^Vizard Plug in Mdnagei will create thwe fies in the directar)J:D:\altera\quartus51 \jgao\File| Descriptiori0 Ipm_rom1 vIpm_rom1 inc 商Ipm_rom1 .cmp 0Ipm_rom1 .bsf □Ipm_rom1 ^inst.v 3Ipm_rom1_bb.7Variation fileAHDL Include HieVHDL Ccmponent declaratkn fileQuartus symbol fileInstantiation template fileVerilog 'Black Bos' declaration fileCocixnentaliDn Cancel< flack也册t >Finishpiri rml,!-*7 L—acWressR.-Ol *irmst1t按照基本操作步骤添加引脚,并进行编译,排除错误。
LPM计数器模块使用方法和例化——10电信本(2)班石健康 9实验名称:LPM计数器模块的使用方法实验预期:学习LPM计数器LPM_COUNTER的调用方法、流程的测试,掌握MegaWizard Plug_In Manager管理器对同类宏模块的一般使用方法;实验内容:一、LPM_COUNTER计数器模块文本文件的调用1.在程序文件夹abceda下建立子文件夹LPM_MD;2.选择菜单栏Tools→MegaWizard Plug_In Manager命令,打开对话框如图所示:图表 1 定制新的宏功能块选中create a new custom megafunction variatin单选按钮,即定制一个新的模块(如果要修改一个已编辑好的LPM模块,则选中Edit an existing custom megafunction variation单选按钮);单击Next按钮,在弹出的窗口中选择Arithmetic展开LPM算术模块选项。
选择计数器LPM-COUNTER,再在右上选择Cyclone Ⅲ器件系列和VHDL语言方式。
最后输入此模块文件存放的路径和文件名:f:\abceda\LPM_MD\cnt4b:单击next按钮,弹出对话框。
选择4位计数器,选择“Creat an updown input…”使计数器有加减控制功能。
单击next按钮,打开对话框,选择Modulus…12,则表示模12计数器,从0记到11(若选择Plain binary则表示是普通的二进制计数器)。
然后选择时钟使能控制Clock Enable和进位输出Carry-out,如图:7.再单击next按钮,打开对话框,选择4位数据同步加载控制Load和异步清零控制Clear,如图:8.再按next按钮结束设置。
二、例化1)生成的LPM计数器模块VHDL源程序cnt4b如下:LIBRARY ieee;USE lpm;USE ;ENTITY cnt4b ISPORT(aclr : IN STD_LOGIC ;clk_en : IN STD_LOGIC ;clock : IN STD_LOGIC ;data : IN STD_LOGIC_VECTOR (3 DOWNTO 0);sload : IN STD_LOGIC ;updown : IN STD_LOGIC ;cout : OUT STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END cnt4b;ARCHITECTURE SYN OF cnt4b ISSIGNAL sub_wire0 : STD_LOGIC ;SIGNAL sub_wire1 : STD_LOGIC_VECTOR (3 DOWNTO 0);COMPONENT lpm_counterGENERIC (lpm_direction : STRING;lpm_modulus : NATURAL;lpm_port_updown : STRING;lpm_type : STRING;lpm_width : NATURAL);PORT (sload : IN STD_LOGIC ;clk_en : IN STD_LOGIC ;aclr : IN STD_LOGIC ;clock : IN STD_LOGIC ;cout : OUT STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);data : IN STD_LOGIC_VECTOR (3 DOWNTO 0);updown : IN STD_LOGIC);END COMPONENT;BEGINcout <= sub_wire0;q <= sub_wire1(3 DOWNTO 0);lpm_counter_component : lpm_counterGENERIC MAP (lpm_direction => "UNUSED",lpm_modulus => 12,lpm_port_updown => "PORT_USED",lpm_type => "LPM_COUNTER",lpm_width => 4)PORT MAP (sload => sload,clk_en => clk_en,aclr => aclr,clock => clock,data => data,updown => updown,cout => sub_wire0,q => sub_wire1);END SYN;它调用了更底层的文件lpm_counter,同时可以作为一个底层元件被上一层设计调用或例化。