dsip 0 26 января, 2017 Опубликовано 26 января, 2017 · Жалоба Опять на тему "нужна тактовая а её нет", и внутренний тактовый генератор ПЛИС недоступен. https://electronix.ru/forum/index.php?s=&am...t&p=1476805 Или если нужно создать импульс из фронта при отсутствии тактовой. (И это, наверно, даже более актуально). Есть такой способ генерации тактового сигнала в ПЛИС - построить кольцевой генератор из кучи LUTов. Вместо кучи LUTов можно применить встроенную в IOB задержку, получим простой тактовый генератор. Пример для Altera: alt_iobuf clk_iobuf ( .i (~clk ), .oe(1'b1 ), .o (clk ), .io(clk_pin) ); И в qsf файле указываем задержку: // Use IOB delay set_instance_assignment -name PAD_TO_CORE_DELAY 6 -to clk_pin Разумеется, для указания задержки, нужно сначала прочитать даташит на конкретную ПЛИС, выяснить какие задержки встроены в IOB, и какие параметры им можно передавать. Эту задержку можно применить для генерации одиночного импульса из фронта при отсутствии тактового сигнала, например - сгенерировать сигнал сброса. alt_iobuf delay_iobuf ( .i (delay_i ), .oe(1'b1 ), .o (delay_o ), .io(delay_pin) ); assign pulse = delay_i & ~delay_o; Не забываем прочитать как, подумать какую и указать задержку в qsf файле: // Use IOB delay set_instance_assignment -name PAD_TO_CORE_DELAY 6 -to delay_pin Понятно, что в этом случае теряем один вывод ПЛИС, жертвы... FPGA clock pulse generation IOB delay - это для поисковых машин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться