模可控计数器(M=3,4,6,7)

来源:百度文库 编辑:神马文学网 时间:2024/10/06 13:55:36
模可控计数器(M=3,4,6,7)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC.UNSIGNAL.ALL;

ENTITY add IS
PORT(clk,x,y :IN STD_LOGIC;
        qout : OUT STD_LOGIC VECTOR(2 DOWNTO 0);
          co :OUT STD_LOGIC);
END add;

ARCHITECTURE behv OF add IS
SIGNAL con : STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL temp,m : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
   con<COM:PROCESS(con)
    BEGIN
       CASE con IS
          WHEN "00" => m <="011";
          WHEN "01" => m <="100";
          WHEN "10" => m <="110";
          WHEN "11" => m <="111";
       END CASE;
    END PROCESS;
REG:PROCESS(clk,m)
    BEGIN
      IF(clk'EVENT AND clk='1')THEN
          IF(temp = m-1)THEN
            temp <= "000";
            co <= '1';
          ELSE
            temp <= temp+1;
            co <= '0';
          END IF;
       END IF;
    END PROCESS;
    qout <= temp;
END behv;