eda数字钟程序_eda简易数字钟

2020-02-28 其他范文 下载本文

eda数字钟程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“eda简易数字钟”。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock IS PORT(EN

:IN STD_LOGIC;数码管使能

CLK

:IN STD_LOGIC;时钟信号

RST

:IN STD_LOGIC;复位信号

SEC_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒高位

SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);秒低位

MIN_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分高位

MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);分低位

HOU_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);时高位

HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);时低位

BEE

:OUT STD_LOGIC);END clock;

ARCHITECTURE behovior OF clock IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL SEC_LOW

:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL HOU_LOW

:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL CY_MIN

:STD_LOGIC;分进位

SIGNAL CY_HOU

:STD_LOGIC;时进位

SIGNAL LOGO_1

:STD_LOGIC;标志

SIGNAL LOGO_2

:STD_LOGIC;

SIGNAL LOGO_3

:STD_LOGIC;

BEGIN MIAOLOW:PROCESS(CLK,RST,EN)

BEGIN

IF(RST = '0')

THEN

SEC_LOW

ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN 检测时钟上升沿及数码管使能端

IF(SEC_LOW = “1001”)THEN

SEC_LOW

ELSE

SEC_LOW

END IF;

END IF;

END PROCESS MIAOLOW;

LOGO_1

SEC_01

MIAOHIGH:PROCESS(CLK,RST)

BEGIN

IF(RST = '0')

THEN

SEC_HIGH

ELSIF(CLK'EVENT AND CLK = '1')THEN检测时钟上升沿

IF(LOGO_1 = '1')THEN

IF(SEC_HIGH = “0101”)THEN

SEC_HIGH

CY_MIN

ELSE

SEC_HIGH

CY_MIN

END IF;

END IF;

END IF;

END PROCESS MIAOHIGH;

SEC_1

FENLOW:PROCESS(CY_MIN,RST,EN)

BEGIN

IF(RST = '0')

THEN 若复位位为0

MIN_LOW

ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN检测时钟上升沿及数码管使能端

IF(MIN_LOW = “1001”)THEN

MIN_LOW

ELSE

MIN_LOW

END IF;

END IF;

END PROCESS FENLOW;

LOGO_2

MIN_01

FENHIGH:PROCESS(CY_MIN,RST)

BEGIN

IF(RST = '0')

THEN

MIN_HIGH

ELSIF(CY_MIN'EVENT AND CY_MIN = '1')THEN检测分进位上升沿

IF(LOGO_2 = '1')THEN

IF(MIN_HIGH = “0101”)THEN若分十位为5

MIN_HIGH

CY_HOU

ELSE

MIN_HIGH

CY_HOU

END IF;

END IF;

END IF;

END PROCESS FENHIGH;

MIN_1

SHILOW:PROCESS(CY_HOU,RST,EN)

BEGIN

IF(RST = '0')

THEN

HOU_LOW

ELSIF(CY_HOU'EVENT AND CY_HOU = '1'

AND EN = '1')THEN检测时进位上升沿及数码管使能端

IF(HOU_LOW = “1001”)THEN若时低位为9

HOU_LOW

ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN若时十位为2,个位为3

HOU_LOW

ELSE

HOU_LOW

END IF;

END IF;

END PROCESS SHILOW;

LOGO_3

HOU_01

SHIHIGH:PROCESS(CY_HOU,RST)

BEGIN

IF(RST = '0')

THEN

HOU_HIGH

ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THEN检测时进位上升沿

IF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN若时十位为2,时个位为3

HOU_HIGH

ELSIF(LOGO_3 = '1')THEN

HOU_HIGH

END IF;

END IF;

END PROCESS SHIHIGH;

BEE_CLOCK:PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK = '1')THEN检测时钟上升沿

IF(SEC_HIGH = “0101” AND SEC_LOW = “1001”

AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THEN

BEE

ELSE

BEE

END IF;

END IF;

END PROCESS BEE_CLOCK;

HOU_1

END behovior;

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock1 IS PORT(EN

:IN STD_LOGIC;

CLK

:IN STD_LOGIC;

RST

:IN STD_LOGIC;SEC_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

SEC_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

MIN_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOU_1

:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

HOU_01 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

BEE

:OUT STD_LOGIC);END clock1;

ARCHITECTURE behovior OF clock1 IS SIGNAL SEC_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL SEC_LOW

:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MIN_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL MIN_LOW:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL HOU_HIGH:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL HOU_LOW

:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL CY_MIN

:STD_LOGIC;

SIGNAL CY_HOU

:STD_LOGIC;SIGNAL LOGO_1

:STD_LOGIC;

SIGNAL LOGO_2

:STD_LOGIC;

SIGNAL LOGO_3

:STD_LOGIC;

BEGIN MIAOLOW:PROCESS(CLK,RST,EN)

BEGIN

IF(RST = '0')

THEN

SEC_LOW

ELSIF(CLK'EVENT AND CLK = '1' AND EN = '1')THEN

IF(SEC_LOW = “1001”)THEN

SEC_LOW

ELSE

SEC_LOW

END IF;

END IF;

END PROCESS MIAOLOW;

LOGO_1

SEC_01

MIAOHIGH:PROCESS(CLK,RST)

BEGIN

IF(RST = '0')

THEN

SEC_HIGH

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

IF(LOGO_1 = '1')THEN

IF(SEC_HIGH = “0101”)THEN

SEC_HIGH

CY_MIN

ELSE

SEC_HIGH

CY_MIN

END IF;

END IF;

END IF;

END PROCESS MIAOHIGH;

SEC_1

BEGIN

IF(RST = '0')

THEN

MIN_LOW

ELSIF(CY_MIN'EVENT AND CY_MIN = '1' AND EN = '1')THEN

IF(MIN_LOW = “1001”)THEN

MIN_LOW

ELSE

MIN_LOW

END IF;

END IF;

END PROCESS FENLOW;

LOGO_2

MIN_01

FENHIGH:PROCESS(CY_MIN,RST)

BEGIN

IF(RST = '0')

THEN

MIN_HIGH

ELSIF(Cy_MIN'EVENT AND CY_MIN = '1')THEN

IF(LOGO_2 = '1')THEN

IF(MIN_HIGH = “0101”)THEN

MIN_HIGH

CY_HOU

ELSE

MIN_HIGH

CY_HOU

END IF;

END IF;

END IF;

END PROCESS FENHIGH;

MIN_1

BEGIN

IF(RST = '0')

THEN

HOU_LOW

ELSIF(CY_HOU'EVENT AND CY_HOU = '1' AND EN = '1')THEN

IF(HOU_LOW = “1001”)THEN

HOU_LOW

ELSIF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN

HOU_LOW

ELSE

HOU_LOW

END IF;

END IF;

END PROCESS SHILOW;

LOGO_3

HOU_01

SHIHIGH:PROCESS(Cy_HOU,RST)

BEGIN

IF(RST = '0')

THEN

HOU_HIGH

ELSIF(CY_HOU'EVENT AND CY_HOU = '1')THEN

IF(HOU_HIGH = “0010” AND HOU_LOW = “0011”)THEN

HOU_HIGH

ELSIF(LOGO_3 = '1')THEN

HOU_HIGH

END IF;

END IF;

END PROCESS SHIHIGH;

BEE_CLOCK:PROCESS(CLK)

BEGIN

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

IF(SEC_HIGH = “0101” AND SEC_LOW = “1001”

AND MIN_HIGH = “0101” AND MIN_LOW = “1001”)THEN

BEE

ELSE

BEE

END IF;

END IF;

END PROCESS BEE_CLOCK;

HOU_1

END behovior;

《eda数字钟程序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
eda数字钟程序
点击下载文档
相关专题 eda简易数字钟 程序 数字钟 EDA eda简易数字钟 程序 数字钟 EDA
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文