library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity CNT10 is
-- Port ( );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 Behavioral of CNT10 isbeginPROCESS(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 := (OTHE