У меня большая проблема с синтезом кода VHDL. Я оставляю новые идеи для FPGA.VHDL - Должен ли я использовать один и тот же тактовый сигнал в каждом последовательном процессе?
У меня есть несколько последовательных процессов, и часы некоторых процессов является следствием других, как в коде ниже:
process(clk_100MHz)
begin
if(clk_100MHz'event and clk_100MHz = '1') then
clk_divider_4 <= clk_divider_4 + 1;
clk_25MHz <= clk_divider(1);
end if;
end process;
process(clk_25MHz)
begin
if(clk_25MHz'event and clk_25MHz = '1') then
-- Some sequantial code here
end if;
end process;
Это проблема? Потому что я чувствую, что проблема моего кода связана с проблемой времени и что это может быть причиной.
Благодарим за ответы,
Damien.
To downvoter: Пожалуйста, предоставьте короткий комментарий по причине downvote, так как это поможет новичкам улучшить свои вопросы. –
Вы передаете данные между двумя тактовыми доменами? Есть ли количество регистров, связанных с 'clk_25MHz'? –
Используйте один единственный таймер, если у вас нет ДЕЙСТВИТЕЛЬНО хорошей причины для этого. Затем используйте методы «переключения доменов» для решения проблем - см. Также «входные синхронизаторы» для асинхронных входов. В пределах этой тактовой области использование часов позволяет (ответ Мортена) для связанных часов. –