Я работаю, чтобы узнать, как программировать FPGA на VHDL, и хочу знать, как я могу определить правильную частоту моего тактового входа.
Я использовал Руководство пользователя оборудования Sp605, контакт K21 в часах Таблица подключений источников (стр. 27, если вам интересно!) Описана как "200 MHz OSC SYSCLK_P".
Затем я использовал следующий процесс, чтобы попытаться создать тактовую частоту 1 Гц из тактовой частоты 200 МГц.
prescaler : process(CLK)
begin
if rising_edge(CLK) then
if (counter < 1000000) then --possibly change to number in binary
counter <= counter + 1;
else
CLK_1Hz <= not CLK_1Hz;
counter <= (others => '0');
end if;
end if;
end process;
Однако, если я установил верхний предел счетчика равным 100000000 - а так и должно быть, часы намного медленнее, чем 1 Гц - на самом деле использование текущего значения 1000000 отсчетов дает близкое приближение к импульсу 1 Гц - но почему это?