Machen Sie einen clock-divider

Fand ich diesen code, wie man ein clock-divider. Ich habe eine Allgemeine Verständnis, wie man eine Trennlinie mit Hilfe von Zählern, aber ich nicht sicher, was dieser code macht und warum Ihr es tun.

entity clkdiv is
    Port ( mclk : in  STD_LOGIC;
           clr : in  STD_LOGIC;
           clk190 : out  STD_LOGIC;
           clk48 : out  STD_LOGIC);
end clkdiv;

architecture clkdiv of clkdiv is
signal q: std_logic_vector(23 downto 0);
begin
    --clock divider
    process(mclk,clr)
    begin   
        if clr ='1' then
            q <= X"000000";
        elsif mclk'event and mclk = '1' then
            q <= q+1;
        end if;
    end process;
    clk48 <= q(19);
    clk190 <= q(17);

end clkdiv;

Ich weiß, das Beispiel ist auf der basis 2-board -, input clock 50MHz. Dieser code erzeugen soll eine 48hz clock-signal und 190hz clock-signal.

InformationsquelleAutor user1175889 | 2013-10-31

Schreibe einen Kommentar