10进制和60进制计数器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

十进制计数器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10IS

PORT(CLK,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3DOWNTO 0);

COUT:OUT STD_LOGIC);

END CNT10;

ARCHITECTURE behav OF CNT10IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLE CQI: STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IF RST='1'THEN CQI:=(OTHERS =>'0');--计数

ELSIF CLK'EVENT AND CLK='1'THEN

IF EN='1'THEN

IF CQI<9THEN CQI:=CQI+1; --允许计数,

ELSE CQI:=(OTHERS=>'0'); --大于9,

END IF;

END IF;

END IF;

IF CQI=9THEN COUT<='1';--计数大于9,输出进位信号

ELSE COUT<='0';

END IF;

CQ<=CQI;--将计数值向端口输出

END PROCESS;

END behav;六十进制计数器源程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt60is

port(clk,rst,en:in std_logic;

cq:out std_logic_vector(7downto0);

cout:out std_logic);

end cnt60;

architecture behav of cnt60is

begin

process(clk,rst,en)

variable cqi:std_logic_vector(7downto0); begin

if rst='1'then cqi:=(others=>'0');

elsif clk'event and clk='1'then

if en='1'then

if cqi<59then cqi:=cqi+1;

else cqi:=(others=>'0');

end if;

end if;

end if;

if cqi=59then cout<='1';

else cout<='0';

end if;

cq<=cqi;

end process;

end behav;

相关文档
最新文档