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,同时可以作为一个底层元件被上一层设计调用或例化。
实验六LPM模块的使用一、实验目的1 掌握LPM模块的调用;2 掌握LPM模块的端口和参数设置;3 掌握时钟波形的设置;4 了解使用LPM计数器模块构成数控分频器的方法;5 掌握器件选型号和引脚分配的方法。
二、实验内容1 调用LPM计数器模块LPM_COUNTER并进行参数和端口信号的设置;2 使用LPM_COUNTER模块产生输入时钟的3分频、6分频信号;3 使用LPM_COUNTER模块产生输入时钟的5分频、10分频信号。
三、实验原理在本实验中,设置LPM_COUNTER(其端口信号和参数意义参看教材)为4位加法计数器,所以分频比R可以按如下公式计算:R =“1111”-d[3..0] + 1。
根据该公式,如果知道分频比R,可以计算置数值d[3..0]。
例如,R=3时,应该设置d=13。
将如下原理图3.1作为设计的输入,则进位信号COUT就是分频信号,后面的D触发器和非门构成2分频电路,其输出信号QOUT的分频比2R,而且其占空比为50%(即均匀时钟)。
该设计的分频信号COUT是不均匀时钟。
仿真波形图参看图3.2。
三、实验步骤(一)3分频和6分频数控分频器的设计1 建立一个工程(注意要正确设置工程的保存目录),工程名可以命名为LPM_CNT_4【菜单命令file/project/name 】;2 按图3.1画出原理图【注意LPM_COUNTER 模块符号在mega_lpm 库目录之下,调用时,出现对话框,选cancel 。
D 触发器符号是DFF 】;3 设置LPM_COUNTER 的端口信号和参数【选中LPM 模块,点右键,点editports/parameters ,然后将不用的端口信号设置为unused ,则原理图中该信号隐藏,使用的信号设置为used ,则原理图中该信号出现,各信号的意义见教材或者在软件的帮助中查看。
参数设置:将LPM_WIDTH 的值设置为4,点change ,其他的参数值不设置,然后确定,则设置完成】;4 选器件:将器件型号选为EP1k30144_3;【assign/device :ACEX1k 系列,将选项show onlyfast speed grades 前的“√”去掉】5 编译;6 建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us: 菜单命令file/end time ,然后输入10us ,确定。