eda 课程设计 可控计数器的设计!不甚感激!急用

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:02:15
设计要求:
1,设计一个五进制的计数器,由三个控制键SEL控制不同的计数方式。
2,当 sel=000时,按0,1,2,3,4,0,1,2,3,4.。。
3,当sel=001时,按0,2,4,6,8,0,2,4,6,8 。。
4,当sel=010时,按1,3,5,7,9,1,3,5,7,9。。。
5,当sel=011时,按5,4,3,2,1,5,4,3,2,1。。。
6,当sel=100时,按 0,1,3,6,9,0,1,3,6,9。。。
7,当sel=101时,按5,6,7,8,9,5,6,7,8,9。。。
8,当sel=110时,按2,4,6,8,0,2,4,6,8,0.。。
9,当sel=110时,按9,8,7,6,5,9,8,7,6,5.。。。
10,由数码管分别译码显示控制信号和计数状态,分别用3 位数码管动态显示
给出VHDL语言的源程序。
希望各位天涯高手帮帮忙啊 不甚感激!!!有急用!!!

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SHENGHAO IS
PORT(CLK:IN STD_LOGIC;
SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
Y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END SHENGHAO;
ARCHITECTURE SH OF SHENGHAO IS
SIGNAL CNT,CNT1:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
CASE SEL IS
WHEN "000"=>IF(CNT="0100")THEN
CNT<="0000";
ELSE CNT<=CNT+1;
END IF;
Y<=CNT;
WHEN "001"=>IF(CNT="1000")THEN
CNT<="0000";
ELSE CNT<=CNT+2;
END IF;
Y<=CNT;
WHEN "010"=>IF(CNT="1001")THEN
CNT<="0001";
ELSE CNT<=CNT+2;
END IF;
Y<=CNT;
WHEN "011"=>IF(CNT="0001")THEN
CNT<=&quo