四位十进制加法计数器
- 格式:doc
- 大小:148.00 KB
- 文档页数:3
四位十进制加法计数器
一、实训目的
1.巩固编译、仿真VHDL文件的方法。
2.掌握VHDL程序顺序语句的应用。
3.掌握四位二进制加法计数器的工作原理。
二、实训器材
计算机与Quartus Ⅱ工具软件。
三、实训指导
(一)实训原理
四位十进制加法计数器真值表如表6-1所示。
表6-1 四位十进制加法计数器的真值表
输入输出
CR LD CP DIR D3 D2 D1 D0 Q3 Q2 Q1 Q0
1 X X X X X X X 0 0 0 0
0 0 X X d3 d2 d1 d0 d3 d2 d1 d0
0 1 ↑ 1 X X X X 加法计数
0 1 ↑0 X X X X 减法计数
0 1 1 X X X X X 保持
(二)实训步骤
1.设计输入VHDL文件
(1)建立工程项目。
(2)建立VHDL文件。
(3)设计输入VHDL文件,可用IF语句或CASE语句等顺序语句设计。
VHDL代码如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY JIAJIANJISHU IS
PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
CR,CP,LD,DIR:IN STD_LOGIC;
CO,BO:OUT STD_LOGIC;
Q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
END JIAJIANJISHU;
ARCHITECTURE W OF JIAJIANJISHU IS
BEGIN
PROCESS(CR,CP,DIR,LD,D)
BEGIN
IF CR='1' THEN Q<="0000";
ELSIF LD='0' THEN Q<=D;
ELSE
IF (CP='1' AND CP'EVENT) THEN
IF DIR='1' THEN Q<=Q+1;
IF Q=9 THEN Q<="0000";
END IF;
ELSIF DIR='0' THEN Q<=Q-1;
IF Q=0 THEN Q<="1001";
END IF;
END IF;
END IF;
END IF;
END PROCESS;
CO<=Q(3) AND Q(0)AND DIR;
BO<=(NOT Q(3))AND(NOT Q(2))AND (NOT Q(1)) AND (NOT Q(0))AND (NOT DIR); END W;
2.编译仿真VHDL文件
(1)编译VHDL文件。
如果有错误,检查并纠正错误,直至最后通过。
(2)仿真VHDL文件。
认真核对输入/输出波形,检查设计的功能是否正确。
四位十进制加法计数器的仿真波形图如图6-1所示。
图6-1 四位十进制加法计数器仿真波形图
四、实训总结
通过本次试验我熟练了VHDL文件的编译与仿真,在编辑程序的同时对四位
十进制加法计数器有了更深的理解,并且巩固了IF语句的应用。