您的当前位置:首页正文

24进制计数器设计VHDL语言

来源:一二三四网


24进制计数器设计VHDL语言:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ESJZ IS

PORT(

CLK :IN STD_LOGIC; --时钟

EN :IN STD_LOGIC; --使能端

CR :IN STD_LOGIC; --清零端,低电平有效

LD :IN STD_LOGIC; --数据载入控制,低电平有效

D :IN STD_LOGIC_VECTOR(5 DOWNTO 0); --载入数据端

CO : OUT STD_LOGIC; --进位

Q :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) --计时输出

);

END ESJZ ;

ARCHITECTURE a OF ESJZ IS

SIGNAL QN :STD_LOGIC_VECTOR(5 DOWNTO 0);

BEGIN --进位控制

CO<='1' WHEN(QN=X\"23\" AND EN='1')

ELSE'0';

PROCESS(CLK,CR)

BEGIN

IF (CR='0')THEN

QN<=\"000000\";

ELSE

IF (CLK'EVENT AND CLK='1') THEN

IF (LD='0') THEN --数据加载

QN<=D;

ELSIF(EN='1') THEN

IF (QN(3 DOWNTO 0)=3 and QN(5 DOWNTO 4)=2) or QN(3 DOWNTO 0)=9 THEN

QN(3 DOWNTO 0)<=\"0000\"; --个位数进位

IF QN(5 DOWNTO 4)=2 THEN

QN(5 DOWNTO 4)<=\"00\"; --十位数进位

ELSE

QN(5 DOWNTO 4)<= QN(5 DOWNTO 4)+1;

END IF;

ELSE

QN(3 DOWNTO 0)<= QN(3 DOWNTO 0)+1;

END IF ;

END IF;

END IF ;

END IF;

END PROCESS;

Q<=QN;

end a;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top