1

クロック分周器の作成方法でこのコードを見つけました。カウンターを使用して仕切りを作成する方法については一般的な理解がありますが、このコードが何をしているのか、なぜそれをしているのかはわかりません。

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;

この例は基本 2 ボード上にあり、入力クロックは 50MHz であることがわかっています。このコードは、48hz クロック信号と 190hz クロック信号を作成することになっています。

4

2 に答える 2