这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 周师电子设计创新社区 » 用VHDL设计一个功能类似74LS160的计数器

共1条 1/1 1 跳转至

用VHDL设计一个功能类似74LS160的计数器

菜鸟
2015-01-09 09:05:27     打赏
LIBRARY IEEE;
  USE IEEE.STD_LOGIC_1164.ALL;
  USE IEEE.STD_LOGIC_UNSIGNED.ALL;
 ENTITY CNT10 IS
  PORT(CLK,RST,EN,LOAD : IN STD_LOGIC;
       DATA : IN  STD_LOGIC_VECTOR(3 DOWNTO 0); --4位预置数
        DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--计数值输出
      COUT : OUT STD_LOGIC);        --计数进位输出 END CNT10;
 ARCHITECTURE behav OF CNT10 IS
  BEGIN
   PROCESS(CLK,RST,EN,LOAD)
      VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0);
    BEGIN
      IF RST='0' THEN Q:=(OTHERS =>'0');   --计数器异步复位
       ELSIF CLK'EVENT AND CLK='1' THEN     --检测时钟上升沿
        IF EN='1' THEN                     --检测是否允许计数或加载(同步使能)
         IF LOAD='0' THEN Q:=DATA;        --允许加载
         ELSE
             IF Q<9 THEN Q:=Q+1; --允许计数,检测是否小于9
            ELSE Q:=(OTHERS=>'0'); --大于等于9时,计数值清零
           END IF;
         END IF;
       END IF;
     END IF;
         IF Q=9 THEN COUT<='1'; --计数大于9,输出进位信号
     ELSE COUT<='0';
     END IF;
      DOUT<=Q;              --将计数值向端口输出
   END PROCESS;
 END behav;

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]