cnt10b.vhd

来自「基于fpga和sopc的用VHDL语言编写的EDA含异步清0和同步时钟使能的加法」· VHDL 代码 · 共 28 行

VHD
28
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 IS
    PORT (CLK,RST,EN : IN STD_LOGIC;                     
                     CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);     
COUT : OUT STD_LOGIC  );           
END CNT10;
ARCHITECTURE behav OF CNT10 IS
BEGIN
   PROCESS(CLK, RST, EN)
     VARIABLE  CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); 
   BEGIN
      IF RST = '1' THEN   CQI := (OTHERS =>'0') ;  --计数器异步复位          
       ELSIF CLK'EVENT AND CLK='1' THEN             --检测时钟上升沿
        IF EN = '1' THEN                        --检测是否允许计数(同步使能)
          IF CQI < 9 THEN   CQI := CQI + 1;          --允许计数, 检测是否小于9 
            ELSE    CQI := (OTHERS =>'0');            --大于9,计数值清零       
          END IF;
        END IF;
      END IF;   
       IF CQI = 9 THEN COUT <= '1';                --计数大于9,输出进位信号
         ELSE    COUT <= '0';
       END IF;
         CQ <= CQI;       --将计数值向端口输出
   END PROCESS;
END behav;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?