3MHZ 10HZ分频器的源程序CLKGEN.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CLKGEN IS
PORT(CLK:IN STD+LOGIC;
NEWCLK:OUT STD_LOGIC);
END ENTITY CLKGEN;
ARCHITECTURE ART OF CLKGEN IS
SIGNAL CNTER:INTEGER RANGE 0 TO 10#29999#;
BEGIN
PROCESS(CLK) IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF CNTER=10#29999#THE CNTER<=0;
ELSE CNTER<=CNTER+1;
END IF;
END IF;
END PROCESS;
PROCESS(CNTER) IS
BEGIN
IF CNTER=10#29999#THEN NEWCLK<='1';
ELSE NEWCLK<='0';
END IF;
END PROCESS;
END ARCHITECTURE ART;
六进制计数器的源程序CNT6.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD+LOGIC_UNSIGNED.ALL;
ENTITY CNT6 IS
PORT(CLK:IN STD_LOGIC;
CLR:IN STD_LOGIC;
ENA:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CARRT_OUT:OUT STD_LOGIC);
END ENTITY CNT6;
ARCHITECTURE ART OF CNT6 IS
SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,CLR,ENA)IS
BEGIN
IF CLR='1'THEN CQI<="0000";
ELSIF CLK'EVENT AND CLK='1'THEN
IF ENA='1'THEN
IF CQI="0101"THEN CQI<="0000";
ELSE CQI<=CQI+'1';
END IF;
END IF;
END IF;
END PROCESS;
PROCESS(CQI)IS
BEGIN
IF CQI="0000"THEN CARRY_OUT<='1';
ELSE CARRY_OUT<='0';
END IF;