| 안녕하십니까?
한백전자의 이장겸입니다.
문의하신 HBE-DTK-WRITER에 대한 답변을 드리겠습니다.
Clock 생성 블록은 그 블록에 있는 EPM7064 디바이스에 주파수 분주회로를 입력하여 원하는 클럭을 사용할 수 있는 블록입니다.
기본적으로 들어가있는 회로는 클럭 생성 블록에 있는 Rotary Switch(아래에 있는 원형의 스위치를 말합니다.)를 이용하여 Switch가 0일 때는 80MHz(OSC1의 클럭이 직접 연결됨)의 클럭에서 시작하여 1, 2, ... , F로 갈수록 각각 40MHz, 20MHz, 16MHz, 10MHz, 8MHz, 5MHz, 4MHz, 2.5MHz, 2MHz, 1.25MHz, 1MHz, 100KHz, 10kHz, 1kHz, 100Hz, USER HZ(OSC2의 클럭이 연결됨)으로 구성되어 있습니다.
사용하시려는 50KHz를 사용하기 위해서는 80MHz를 주파수 카운트하여 80KHz로 만드는 블록을 사용하거나, 다른 오실레이터를 연결하여 분주하는 블록의 설계가 필요합니다.
예를 들어 1MHz의 클럭 입력으로 50KHz의 클럭 출력을 하고자 할 때에는 아래와 같이 설계할 수 있습니다. Rotary Switch를 사용하고 싶을 때에는 그에 따른 입력을 바탕으로 사용하시면 됩니다.
------------------
library ieee;
use ieee.std_logic_1164.all;
entity clock_gen is
port(
clk : in std_logic;
clk_50kHz : out std_logic);
end clock_gen;
architecture arc of clock_gen is
signal cnt : integer range 0 to 9; -- ((1M / 50K) / 2)
signal t_clk_50k : std_logic;
begin
process(clk)
begin
if clkevent and clk = 1 then
if cnt = 9 then
cnt <= 0;
t_clk_50k <= not t_clk_50k;
else
cnt <= cnt + 1;
end if;
end if;
end process;
clk_50kHz <= t_clk_50kHz;
end arc;
---------------------------------------
그럼, 많은 도움이 되시길 바랍니다.
좋은 하루 되세요. |