原创 任意倍数的分频器的VHDL描述

2009-11-1 20:41 1929 3 3 分类: FPGA/CPLD

 


--1000分频器


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;


ENTITY clkdiv IS
    PORT(   clk : IN STD_LOGIC;  --输入时钟信号
             en : IN STD_LOGIC;  --使能信号
        clk_div : OUT STD_LOGIC); --输出分频信号
END clkdiv;


ARCHITECTURE behave of clkdiv IS
SIGNAL clkout : STD_LOGIC;
BEGIN
    clk_div <= clkout;
   
    PROCESS (en, clk)
        VARIABLE cnt : INTEGER RANGE 0 TO 499;
        --频率想要为原来1\N,则cnt范围取0到N/2-1
        BEGIN
            IF en = '1' THEN
                cnt := 0;
                clkout <= '0';  --注意信号与变量不同的赋值方式
            ELSIF rising_edge(clk) THEN
                IF cnt = 499 THEN
                    cnt := 0;
                    clkout <= not(clkout);
                    ELSE cnt := cnt + 1;
            END IF;
        END IF;
    END PROCESS;
END behave;

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条