Как использовать порт HDMI на FPGA (основной)

8

Два вопроса.

У меня есть Xilinx Spartan 6 FPGA, которая имеет только входы и выходы HDMI. Есть ли какое-нибудь руководство или предварительно написанный код, который я могу использовать, чтобы начать отправку изображений на экран? Я не знаю, с чего начать, и я не смог найти ресурсы.

Во-вторых, причина, по которой я это делаю, заключается в том, что я хочу использовать и модифицировать код Atari 2600, разработанный парнем на Spartan 3E с VGA. Можно ли даже легко адаптировать видео аспект моего проекта?

Любая помощь, ресурсы или советы будут с благодарностью!

ballaw
источник
Это доска коммерческого развития? если да, то какую модель и проверьте эталонные конструкции, которые идут с ним.
Дэвид
Это доска: digilentinc.com/Products/… Ничего не пришло.
Баллав
@ballaw - продукты Digilent имеют довольно хорошую поддержку. Прокрутите вниз до страницы, на которую вы только что ссылались, и вы увидите целую кучу документации и примеров проектов в Интернете: i.stack.imgur.com/F0TgY.png . Сейчас онлайн считается "идет с этим". Вы также можете найти таблицы данных для других компонентов платы, таких как XC6SLX45 FPGA и буфер TMDS141RHAR HDMI, они есть в других местах в Интернете.
Кевин Вермеер

Ответы:

12

Плата Atlys использует входы TDMS, поэтому вам понадобится декодер HDMI, который принимает эти входы и выдает VSYNC, HSYNC, DE и DATA. Xilinx подробно описывает процесс кодирования и декодирования DVI в нескольких заметках по применению. Каждый из них поставляется с примером кода, требуется вход в систему xilinx:

Пример кода в verilog, хотя преобразование верхнего уровня в VHDL, если вы предпочитаете, является относительно тривиальным упражнением.

Вот рисунок, взятый из первой заметки о применении, показывающий основную предпосылку получателя:

из приложения Xilinx

Поскольку 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 является точной.

stanri
источник
4

Просто чтобы дополнить то, что объяснил предыдущий ответ:

Передатчик DVI / HDMI может быть хорошей отправной точкой, поскольку вы можете получить прямое видео.

HDMI / DVI Передача видео по каналу TMDS логически разделена на этапы, как показано на рисунке 1. Конструкция передатчика TMDS с реализацией видеоинтерфейса TMDS в FPGA Spartan-6

введите описание изображения здесь

  1. Кодеры TMDS: преобразуйте пиксельные данные из видеоисточника, вспомогательные / аудиоданные HDMI, а также HSYNC и VSYNC в три 10-битных символьных потока

  2. Сериализаторы (10: 5 Gear Box и OSERDES2 5: 1 Convert) выполняют в два этапа 10-битное параллельное последовательное преобразование во всех трех потоках, а затем отправляют их на три канала дифференциальных выходных пар (буферов TMDS).

Для обеих ступеней требуется схема синхронизации для генерации (PLL) и распределения (BUFPLL, BUFG) тактовых сигналов (с частотами эталонной тактовой частоты пикселя и ее кратными числами) должным образом.

Конечно, ядро ​​передатчика - это блок энкодеров. Вы можете начать с кодировщика DVI из-за его простоты по сравнению с HDMI. И HDMI, и DVI имеют много общих аспектов, включая физическую связь TMDS, алгоритм активного кодирования видео и определения токенов управления.

Замечание по применению также содержит 2 дизайна. Простым, но хорошим для запуска является «SMPTE HD Color bar Generation с программируемой синхронизацией видео». Он посылает видео генератора цветных полос через множество режимов экрана, которые можно выбрать с помощью ползунковых переключателей. Этот дизайн полезен, потому что мы можем изменить генератор цветовой полосы с другим видеоисточником и по-прежнему иметь возможность получать видео, сохраняя оригинальный блок передатчика.

Надеюсь, это поможет!

L30nardo SV.
источник
2
Ответы, содержащие только ссылки, не приветствуются, потому что если Xilinx реорганизует свой сайт в будущем и ссылка станет мертвой, это не окажет никакой помощи будущим посетителям. Может быть, вы могли бы добавить некоторые дополнительные детали общего подхода, описанного в примечании к приложению?
PeterJ
Спасибо, вы совершенно правы. Я добавил еще несколько деталей об этом.
L30nardo SV.
3

Вот текст эталонного дизайна, который вы можете скачать со страницы форума, на которую вы ссылаетесь:

DSD-0000326 13.12.11 Этот zip-файл содержит демонстрационный проект EDK, демонстрирующий использование HDMI на плате Genesys. Он принимает вход HDMI, буферизует входные кадры в память, а затем выводит буфер на другой порт HDMI. Это реализовано с использованием шины PLB. Скачать

Вы также можете ознакомиться с эталонными проектами, которые поставляются с комплектом для обработки промышленного видео 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.

davidd
источник
Спасибо. Я видел это, но я не совсем уверен, как его использовать, поскольку он использует EDK, которого у меня нет, потому что он не бесплатный. Было бы просто использовать файлы VHD в нем? Я сомневаюсь в этом, потому что в загрузке есть много других вещей, большинство из которых я понятия не имею, чем они являются.
балла
1

Следующий учебник, использующий miniSpartan6, очень подробный и стоит посмотреть: http://zerocharactersleft.blogspot.com/2015/04/diy-fpga-based-hdmi-ambient-lighting.html

Джейсон Денни
источник
Ответы, содержащие только ссылки, не приветствуются, потому что, если ссылка станет мертвой, она не окажет никакой помощи будущим посетителям. Может быть, вы могли бы добавить некоторые дополнительные детали?
Брайан Карлтон