EDA技术及应用课程设计 三位十进制计数器,交通灯控制器,四位移位乘法器.doc
文本预览下载声明
设计一 三位十进制计数显示器
一、课设目的
① 学习时序电路中多进程的VHDL描述方法。
② 掌握层次化设计方法。
③ 熟悉EDA的仿真分析和硬件测试技术。
二、设计内容
设计一个三位十进制计数器,对计数器相关的理论进行分析、归纳和总结;三位十进制计数器的结构组成及原理分析。程序代码;给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。
三、课设原理
计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数学运算等,计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。3位十进制计数显示器的设计分位3个步骤,先设计3位十进制计数电路,再设计显示译码电路,最后建立一个顶层文件将二者连接起来。
三位十进制计数器VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COUNT3 IS
PORT(CLK,RESET,CIN:IN STD_LOGIC;
CO:OUT STD_LOGIC;
A,B,C:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END COUNT3;
ARCHITECTURE ART OF COUNT3 IS
SIGNAL AP,BP,CP:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
KK1:PROCESS(CLK) IS
BEGIN
IF CLKEVENT AND CLK=1 THEN
IF RESET=0 THEN
AP=0000;
ELSIF CIN=1 THEN
IF AP=1001 THEN
AP=0000;
ELSE
AP=AP+1;
END IF;
END IF;
END IF;
END PROCESS KK1;
KK2:PROCESS(CLK) IS
BEGIN
IF CLKEVENT AND CLK=1 THEN
IF RESET=0 THEN
BP=0000;
ELSIF CIN=1 AND AP=1001 THEN
IF BP=1001 THEN
BP=0000;
ELSE
BP=BP+1;
END IF;
END IF;
END IF;
END PROCESS KK2;
KK3:PROCESS(CLK) IS
BEGIN
IF CLKEVENT AND CLK=1 THEN
IF RESET=0 THEN
CP=0000;
ELSIF CIN=1 AND AP=1001 and BP=1001 THEN
IF CP=1001 then
CP=0000;
ELSE
CP=CP+1;
END IF;
END IF;
END IF;
END PROCESS KK3;
PROCESS(AP,BP,CP) IS
BEGIN
if (AP=1001 AND BP=1001 AND CP=1001) THEN
CO=1;
ELSE
CO=0;
END IF;
END PROCESS;
A=AP;
B=BP;
C=CP;
END ART;
显示译码器VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY YIMA7 IS
PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
YIMA:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END YIMA7;
ARCHITECTURE ART OF YIMA7 IS
BEGIN
PROCESS(A) IS
BEGIN
CASE (A) IS
显示全部