LPM宏模块使用方法
END SYN1;
RTL图:
波形仿真:
实验总结
通过这次实验,我学会了如何使用工具快速设计相关器件的VHDL代码。加强了如何去例化元件。在实验过程中,我遇到了无法编译成功的困难,原因是:我生成的计数器代码和给的代码是不一样的,主要是接口不一样,例化的时候出现了接口不搭配,改正后就成功了。
指导教师意见
签名: 年 月 日
cnt_en1: IN STD_LOGIC ;
data1: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sclr1: IN STD_LOGIC ;
updown1: IN STD_LOGIC ;
cout1: OUT STD_LOGIC ;
q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
data: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sclr: IN STD_LOGIC ;
updown: IN STD_LOGIC ;
cout: OUT STD_LOGIC ;
q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
);
END COMPONENT;
利用计数宏模块构建一个12进制计数器。
实验数据
1、由于软件之间的偏差,cnt4bb,需要重新设计,设计如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity cnt4bb IS
PORT(aload1: IN STD_LOGIC ;
clock1: IN STD_LOGIC ;
sload: IN STD_LOGIC ;
updown: IN STD_LOGIC ;
cout: OUT STD_LOGIC ;
q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
);
END COMPONENT;
BEGIN
U1:CNT4B PORT MAP(sclr1,cnt_en1,clock1,data1,aload1,updown1,cout1,q1);
实验报告
学院: 专业:电子信息工程 班级:
姓名
学号
实验组
实验时间
2019.6
指导教师
成绩
实验项目名称
LPM宏模块使用方法
实验目的
实验目的
1、了解LPM的参数设置方法。
2、了解LPM模块的调用方法。
3、掌握元件例化语句的使用方法,掌握利用VHDL语言实现层次化设计的方法。
实验原理和步骤
实验原理与实验步骤
BEGIN
U1:CNT4BPORT MAP(aload1,clock1,cnt_en1,data1,sclr1,updown1,cout1,q1);
END SYN1;
可以对刚才的项目CNT4B创建项目,编译,创建符号,然后调用此符号进行编译调试。
实验仪器
电脑、quartusII9.0软件。
实验内容
实验内容
(1)首先建立一个文件夹,比如:D:\LPM_MD.
(2)选择Tool—MegaWizard Plug_In Manager命令,弹出一个如下对话框。
点击next ,
单击Arithmetic选择LPM_COUNTER,器件采用默认,选择VHDL语言,指定模块存放的路径和名字。点击next.
点击finish,就可以了。
clock1: IN STD_LOGIC ;
cnt_en1: IN STD_LOGIC ;
data1: IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sclr1: IN STD_LOGIC ;
updown1: IN STD_LOGIC ;
cout1: OUT STD_LOGIC ;
q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)
);
END cnt4bb;
ARCHITECTURE SYN1 OF cnt4bb IS
COMPONENTCNT4BPORT
(
aload: IN STD_nt_en: IN STD_LOGIC ;
LPM(Library of Parameterized Modules)主要是对altera FPGA结构功能做了优化设计。在许多设计中,必须利用LPM模块才能进行设计。设计者可以根据自己电路的需要,从而在项目中十分便利地调用相应的LPM模块,并设置适当的参数,就能满足自己的需要。
计数LPM模块调用和设置如下:
通过FILE-OPEN ,既可以打开刚才设计的VHDL语言程序了。
刚才设计的计数器就可以通过创建项目,用顶层文件进行例化或原理图调用了。
用元件例化语句调用源程序:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
entity cnt4bb IS
PORT(aload1: IN STD_LOGIC ;
);
END cnt4bb;
ARCHITECTURE SYN1 OF cnt4bb IS
COMPONENTCNT4B PORT
(
aclr: IN STD_LOGIC ;
clk_en: IN STD_LOGIC ;
clock: IN STD_LOGIC ;
data: IN STD_LOGIC_VECTOR (3 DOWNTO 0);