模可变计数器的实验报告模板
- 格式:doc
- 大小:160.50 KB
- 文档页数:4
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
实验二 模可变计数器的设计
(一)实验要求
利用控制位M来改变模长要求M=1时模为114计数,M=0时模为16计数;
(二)实验步骤
1.建立工作库文件夹,输入计数器的VHDL代码并存盘。(自编代码请标注)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY count IS
PORT(CLK,M,EN,RST:IN STD_LOGIC;
sel0,sel1,sel2:buffer STD_LOGIC;
SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管八段
CLK1:buffer STD_LOGIC;
GW,SW,BW: buffer STD_LOGIC_VECTOR(3 DOWNTO 0);--计数器的个,十,百位
COUT:OUT STD_LOGIC;溢出信号
SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --位选信号
);
END count;
ARCHITECTURE behav OF count IS
SIGNAL CNT : STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管分频计数
SIGNAL J : STD_LOGIC_VECTOR(11 DOWNTO 0); --12位BCD计数值
SIGNAL CNT8: STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管选择
SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0);--数码管显示值0
SIGNAL MODEL : STD_LOGIC_VECTOR(11 DOWNTO 0); --模长信号
BEGIN
P1:PROCESS(CLK) --进程P1分出的频率用来数码管的位选扫描
BEGIN
IF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1;
IF CNT=130 THEN CLK1<='1';--130分频
ELSE CLK1<='0';
END IF;
END IF;
END PROCESS;
P2:PROCESS(EN,RST,M,CLK1)—计数
BEGIN
CASE M IS
IF RST='1' THEN J<=(others=>'0');
ELSIF CLK1'EVENT AND CLK1='1' THEN
IF EN='1' THEN
IF J
J<=J+7;
IF SW=9 THEN --十位为9时加103调整
END IF;
END IF;
SEL(0)<=sel0 ;
SEL(1)<=sel1 ;
SEL(2)<=sel2 ;
CASE CNT8 IS --个、十、百分别送数码管动态显示
WHEN "000" => sel2<='0';sel1<='1';sel0<='0';A<=GW;
WHEN "001" => sel2<='0';sel1<='0';sel0<='1';A<=SW;
WHEN "010" => sel2<='0';sel1<='0';sel0<='0';A<=BW;
WHEN OTHERS =>NULL;
END CASE;
END PROCESS ;
P4:PROCESS(A)—七段译码
BEGIN
CASE A IS
WHEN "0000" =>SG<="00111111"; WHEN "0001" =>SG<="00000110";
WHEN "0010" =>SG<="01011011"; WHEN "0011" =>SG<="01001111";
WHEN "0100" =>SG<="01100110"; WHEN "0101" =>SG<="01101101";
WHEN "0110" =>SG<="01111101"; WHEN "0111" =>SG<="00000111";
WHEN "1000" =>SG<="01111111"; WHEN "1001" =>SG<="01101111";
WHEN OTHERS=>NULL;
END CASE;
END PROCESS;
COUT <='1' WHEN J =MODEL ELSE '0';
END behav;
2.选目标器件CycloneII中的EP2C35F672C8并编译。
3.建立仿真波形文件,进行波形仿真。
(使能以及复位清零仿真)
(M=0时模16计数仿真)
M=0时,是16计数
使能及复位测试
(M=1时模114计数仿真)
波形分析:当置位RST为高电平或EN为低电平时,计数清零,当RST为低电平,使能位
EN为高电平时,开始计数:模控制位M为低电平时,则计数器记到15时归0后重新计数,
实现模为16的计数功能;模控制位M为高电平时,则计数器记到113时归0后重新计数,实
现模为114的计数功能。
4.引脚锁定,包装元件。
列出信号对应锁定的引脚及试验箱对应引脚名称,如 M─H8─K1 RST─P25─S1 EN─J8─K2
5 、下载测试。
下载到实验箱上测试,下推K1(M=0),可以从实验箱数码管观察到0~15模16计数。按下
S1(RST=1)可以使计数器复位清零。K2 下推(EN=0),计数值维持不变。将K1上推(M=1),
可在数码管上观察0~113模114的计数,可知测试结果符合模可变计数器要求。
6、实验小结
在前面基础实验的基础上进一步深入理解实验台的配置,个人觉得知识学习了更重要的在于整
合内化成为自己的东西,才能运用的游刃有余,才能在以后的世纪应用中使用到。对于参考程序中
的不理解的寄存器设置或者不理解的语句要学会查用户手册寻找答案;另外分析程序时,要将硬件
和软件结合起来看,分析其各个部分连接能够实现的功能。
7、附件(自编代码者可以不需要)
程序流程图/状态图
M=1时,是114计数