Два вопроса.
У меня есть Xilinx Spartan 6 FPGA, которая имеет только входы и выходы HDMI. Есть ли какое-нибудь руководство или предварительно написанный код, который я могу использовать, чтобы начать отправку изображений на экран? Я не знаю, с чего начать, и я не смог найти ресурсы.
Во-вторых, причина, по которой я это делаю, заключается в том, что я хочу использовать и модифицировать код Atari 2600, разработанный парнем на Spartan 3E с VGA. Можно ли даже легко адаптировать видео аспект моего проекта?
Любая помощь, ресурсы или советы будут с благодарностью!
Ответы:
Плата Atlys использует входы TDMS, поэтому вам понадобится декодер HDMI, который принимает эти входы и выдает VSYNC, HSYNC, DE и DATA. Xilinx подробно описывает процесс кодирования и декодирования DVI в нескольких заметках по применению. Каждый из них поставляется с примером кода, требуется вход в систему xilinx:
Пример кода в verilog, хотя преобразование верхнего уровня в VHDL, если вы предпочитаете, является относительно тривиальным упражнением.
Вот рисунок, взятый из первой заметки о применении, показывающий основную предпосылку получателя:
Поскольку Spartan 6 имеет встроенное оборудование SERDES, его можно использовать как часть процесса десериализации. Существует процесс синхронизации, который восстанавливает часы и гарантирует, что все каналы синхронизированы. Наконец, для получения данных канала RGB применяется декодирование 8b / 10b.
Как только видеосигналы будут восстановлены, Вы можете затем направить эти сигналы на любую обработку, которую вы хотите выполнить, или на кодировщик, который снова отправит их из портов HDMI.
Если у вас есть дисплей TFTMOD, то пересылка данных на дисплей так же проста, как подключение сигналов DE и DATA к соответствующим выводам FPGA. Справочное руководство по плате TFT полезно для синхронизации информации об дисплее, хотя я обнаружил, что синхронизация вывода десериализатора прошла нормально.
Вы можете использовать файл UCF из этого проекта для ограничений для HDMI и этот проект для ограничений MODTFT, если вы используете эту плату.
Единственное, что следует отметить, это то, что пример Xilinx не обрабатывает информацию EDID. Если вы просто используете доску для пересылки данных, то вы можете направить линии EDID насквозь и назвать это днем. Другие сценарии могут потребовать обработки данных EDID на FPGA. В основном это просто I2C. Интерфейс opencores I2C довольно солидный, или вы можете написать свой собственный. Насколько я знаю, таблица в Википедии о формате данных для EDID 1.3 является точной.
источник
Просто чтобы дополнить то, что объяснил предыдущий ответ:
Передатчик DVI / HDMI может быть хорошей отправной точкой, поскольку вы можете получить прямое видео.
HDMI / DVI Передача видео по каналу TMDS логически разделена на этапы, как показано на рисунке 1. Конструкция передатчика TMDS с реализацией видеоинтерфейса TMDS в FPGA Spartan-6
Кодеры TMDS: преобразуйте пиксельные данные из видеоисточника, вспомогательные / аудиоданные HDMI, а также HSYNC и VSYNC в три 10-битных символьных потока
Сериализаторы (10: 5 Gear Box и OSERDES2 5: 1 Convert) выполняют в два этапа 10-битное параллельное последовательное преобразование во всех трех потоках, а затем отправляют их на три канала дифференциальных выходных пар (буферов TMDS).
Для обеих ступеней требуется схема синхронизации для генерации (PLL) и распределения (BUFPLL, BUFG) тактовых сигналов (с частотами эталонной тактовой частоты пикселя и ее кратными числами) должным образом.
Конечно, ядро передатчика - это блок энкодеров. Вы можете начать с кодировщика DVI из-за его простоты по сравнению с HDMI. И HDMI, и DVI имеют много общих аспектов, включая физическую связь TMDS, алгоритм активного кодирования видео и определения токенов управления.
Замечание по применению также содержит 2 дизайна. Простым, но хорошим для запуска является «SMPTE HD Color bar Generation с программируемой синхронизацией видео». Он посылает видео генератора цветных полос через множество режимов экрана, которые можно выбрать с помощью ползунковых переключателей. Этот дизайн полезен, потому что мы можем изменить генератор цветовой полосы с другим видеоисточником и по-прежнему иметь возможность получать видео, сохраняя оригинальный блок передатчика.
Надеюсь, это поможет!
источник
Вот текст эталонного дизайна, который вы можете скачать со страницы форума, на которую вы ссылаетесь:
Вы также можете ознакомиться с эталонными проектами, которые поставляются с комплектом для обработки промышленного видео Xilinx spartan 6. http://www.em.avnet.com/en-us/design/drc/Pages/Xilinx-Spartan-6-FPGA-Industrial-Video-Processing-Kit.aspx (нажмите на ссылку на файлы поддержки, требуется логин avnet) ).
Вероятно, есть и другие эталонные конструкции для разных fpgas.
Кроме того, если вы не реализуете аудио или шифрование, hdmi в основном совпадает с dvi.
источник
Следующий учебник, использующий miniSpartan6, очень подробный и стоит посмотреть: http://zerocharactersleft.blogspot.com/2015/04/diy-fpga-based-hdmi-ambient-lighting.html
источник