Я работаю над тем, как программировать FPGA в VHDL и хочу знать, как я могу определить правильную частоту ввода часов.Определение тактовой частоты на FPGA Spartan-6
Я использовал Sp605 Hardware User Guide, контакт K21, который в таблице синхронизации часов (стр. 27, если вам интересно!) Описывается как «200 МГц 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;
Однако, если установить верхний предел счетчика, чтобы быть 100,000,000 - что оно должно быть, часы намного медленнее, чем 1 Гц - фактически использование текущего значения в 1000 000 отсчетов дает близкое приближение импульса 1 Гц - но почему это?
Ваш код рассчитан на 100 Гц: счетчик -> деление на 1 000 000, а встроенный T триггер -> на 2. – Paebbels