МАРСОХОД

Open Source Hardware Project

Проекты Altera Quartus Prime для платы Марсоход3

Реализация HDMI в ПЛИС

HDMI в ПЛИС платы Марсоход3

Мир не стоит на месте, и взамен морально устаревшего VGA пришли чисто цифровые видеоинтерфейсы, сначала DVI-D , затем HDMI и DisplayPort. Мое знакомство с HDMI началось вот с этой статьи - http://www.fpga4fun.com/HDMI.html.
Там же есть ссылки на всю базовую информацию.
Далее, вкратце, мое видение данной темы.

dvi block
Так-же как в VGA, сигналы управления Hsync, Vsync и Vdе вырабатывает синхрогенератор (VHgen). А сигналы RGB в отличие от VGA поступают не на ЦАПы , а на три TMDS-энкодера, которые преборазуют 8-ми битные сигналы цветности и два управляющих сигнала (с0,с1) в 10-битные. В синем канале в качестве управляющих сигналов передаются Hsync и Vsync. Управляющие сигналы зеленого и красного каналов в DVI не используются.

Цели у TMDS преобразования две - уменьшение количества изменений состояния и баланс постоянной составляющей.

Затем сигналы поступают на сериалайзер и далее на дифференциальный выход. Так-же на диф-выход поступает и пиксель-клок. В принципе все довольно просто и в приведенной выше ссылке есть пример проекта, который можно использовать практически без переделки. Правда разрешение там небольшое - 640х480, зато будет работать на любом мониторе или даже телевизоре.

У большинства современных телевизоров довольно большой список поддерживаемых режимов. Вот например режимы телевизора Samsung , на котором я делал свои эксперименты:
samsung TV res

Меняя частоту пиксель-клока и параметры синхрогенератора можно реализовать любое разрешение, но есть одно "но".
Максимальная частота глобал-клока нашего чипа MAX10 400МГЦ а на сериалайзер нужно подавать частоту в десять раз больше пиксель-клока. Таким образом, будут работать разрешения с частотами до 40МГЦ. Что-же делать если хочется больше?

Можно посмотреть выходной пин нашего чипа в Altera Quartus II "Resourse Property Editor":

altera ddio

В его составе есть элемент "DDIO OUT". Он состоит из двух триггеров, выходы которых подключены к паду через мультиплексор. Практически, это уже встроенный в каждый пин сериалайзер 2х1. Это простое техническое решение позволяет повысить битрейт на выходной ножке относительно клока в два раза. Для его использования в проекте есть библиотечный компонент "altddio_out", но поскольку нам на выходе нужен дифференциальный сигнал, то на каждый канал (в том числе и на клок) нам понадобится по два таких компонента , один для положительного выхода и второй, на котором входные сигналы проинвертированы, для отрицательного.
altddio out
Кроме того в проекте теперь понадобится по два пятибитных сериалайзера вместо каждого десятибитного, и соответственно понизить клок для сериалайзинга в два раза. Теперь , после этих доработок, нам становятся доступными разрешения, с пиксель-клоком до 80МГЦ.

В качестве примера мы взяли из списка самое "телевизионное" разрешение - 1280х720 с клоком 74МГЦ.
В примере на экран выводятся цветные полосы, ну а в принципе можно приделать все что угодно, тот-же "фреймбуффер". Вот загруженное в плату изображение:

photo2

 

Весь проект можно взять вот здесь: icon Реализация HDMI интерфейса в ПЛИС (42.33 Кбайт)

 

Комментарии  

0 #22 Dronchic 01.10.2015 09:11
От использования LVDS и внешнего TMDS-конвертера ради удешевления платы отказались? А то создание дифференциальны х сигналов на single-ended пинах таким способом выглядит несколько извращенным :)
+1 #21 umarsohod 03.09.2015 13:59
Это "матрас" отсюда - http://marsohod.org/index.php/projects/marsohod2/214-c3fb2
0 #20 alman 03.09.2015 12:48
MMЦитирую alman:

Справедливости ради надо заметить, что на другом телевизоре тест показал картинку в точности как в статье.


А вот нечто такое можно увидеть на экране Марсохода3 после включения питания.


Что это и какие ещё есть сюрпризы в "заводской прошивке"?

Тест совместимости прошёл телевизор SHIVAKI STV-22LEDG7
0 #19 umarsohod 03.09.2015 12:03
Цитирую alman:
Цитирую umarsohod:
В качестве примера мы взяли из списка самое "телевизионное" разрешение - 1280х720 с клоком 74МГЦ.


Как оказалось, не каждый телевизор понимает это разрешение. Проверил проект из статьи на телевизоре JVC LT-32EX18 - не работает. К слову, телевизор очень специфический и даже с компьютером через HDMI его подружить непросто. Но факт - 1280х720 x 74МГЦ - не такой уж и стандарт, если не вся техника его понимает.

Справедливости ради надо заметить, что на другом телевизоре тест показал картинку в точности как в статье.

В списке поддерживаемых режимов "720р" у него есть,похоже дело в чем-то другом :sad:
0 #18 alman 03.09.2015 11:51
Цитирую umarsohod:
В качестве примера мы взяли из списка самое "телевизионное" разрешение - 1280х720 с клоком 74МГЦ.


Как оказалось, не каждый телевизор понимает это разрешение. Проверил проект из статьи на телевизоре JVC LT-32EX18 - не работает. К слову, телевизор очень специфический и даже с компьютером через HDMI его подружить непросто. Но факт - 1280х720 x 74МГЦ - не такой уж и стандарт, если не вся техника его понимает.

Справедливости ради надо заметить, что на другом телевизоре тест показал картинку в точности как в статье.
0 #17 SAA 25.08.2015 08:40
"- правильно ли я понимаю, что максимальная частота глобалклока - это правильное название основного показателя быстродействия ПЛИС. Быстрее этого там ничего нет?"


ну наверное все таки нет, не так. Путей более быстрых чем Global Clock видимо нет. А вот аппаратные блоки могут и больше сериализаторы и десериализаторы , даблклокеры. Кстати уверен что DCM и PLL могут и за гигагерцы вышвырнут вот только скорее всего это через глобал клок не пройдет. А speedgrade как основной показатель относится ко всему в том числе и к глобал клоку, но мне кажется важнее то что другие LE's и блоки при этом так же подтягиваются по частотности.
0 #16 alman 24.08.2015 23:41
Немного спецификации HDMI - www.microprocessor.org/HDMISpecification13a.pdf

Там ножка CEC целый мир открывает. На схеме Марсохода3 она подписана но не подключена. :sad:
0 #15 alman 24.08.2015 21:48
Во всяком случае связать два Марсозода3 по HDMI-интерфейсу , наверное, проще, чем VGA кабелем.

К выводу графики из SDRAM я отношуст скептически, а вот аофавитно-цифро вой дисплей через HDMI или высокоскоростно й коммуникационны й контроллер вполне реальны. Как вариант из области фантастики - графический ускоритель, который оперирует не образами памяти, а командами, но это уж совсем из области фантастики.

Вот что интересно, так это концентратор, позволяющий соединиить HDMI более двух Марсоходов. Это будет широкое поле для экспериментов и творчества, можно даже кластеры из Марсоходов делать с интерконнектом через HDMI.
0 #14 Chaosorg 24.08.2015 17:47
Если честно, то я забыл, что под FullHD может пониматься 1080i. Не судите строго - я с 1080i нигде не сталкиваюсь. И потом, по самому факту вопроса понятно, что я спрашиваю именно о том, чего Марсоход 3 НЕ может. Иначе бы я спросил: "а какие ЕЩЕ ПЛИС это умеют?". Вот так - никакого злого умысла, сарказма и передергиваний :) Какой холивар - мне все равно чьей фирмы будет нужная микросхема.

Можно попробовать разбить мой вопрос на несколько:

- правильно ли я понимаю, что максимальная частота глобалклока - это правильное название основного показателя быстродействия ПЛИС. Быстрее этого там ничего нет?

- существуют ли паябельные ПЛИС, которые быстрее 400MHz в этом смысле?

- этот фокус с удвоением эффективной частоты с помощью триггера наверняка не единственный метод. Может существуют паябельные ПЛИС с какими-то еще хитрыми приемопередатчи ками?
0 #13 SAA 24.08.2015 13:32
Но пришли времена и Spartan даже 6 стал намного дешевле чем Cyclone-IV или например Cyclone-V. Отладочных наборов по цене 4т.р. на MAX-10 я вообще не видел кроме как у Марсоходов.

P.S. Я не говорю что у Spartan-6 есть что то, чего нет у marsohod-3/3bis , не передергивайте мои слова, был вопрос есть ли ПЛИС. Как оказалось есть и паябельном корпусе и могущие 1080i. Целью холиварить Xilinx vs Altera у меня не было. Я прекрасно знаю про узкие места у обоих разработчиков, одинаково люблю работать с обоим, и не только с этими двумя - Lattice мне тоже нравится и цены тоже сходные.
0 #12 SAA 24.08.2015 13:31
Думаю что SC6LX9 несколько дешевле чем MAX-10, а TMDS для Altera не так доступен как для Xilinx. Я могу ошибаться но что то близкое к Spartan-6 есть только в Cyclone-V. Вот хотел прикупить дев.борд для Cyclone-V однако стоимость зашкаливает, а во тSpartan-6 легко доступен и как чип и как девборд на ebay и aliexpress.
И не надо меня ловить на протекционизме к Ксалингсам я начинал с Альтеры и люблю наверное даже больше, так как изначально именно она была лицом к разработчику и любителю такому как я например. Ценовые категории, доступность, качество ПО для разработки.
0 #11 Chaosorg 24.08.2015 11:56
Цитирую SAA:

... Не смотрели ДШ? Так вот там для speedgrade -2 (вполне бюджетные чипы) указана полоса 945 Mb/s.
...
Я правильно понимаю что необходим режим
HDTV 1080i ????

тогда необходимая полоса для него 742,5 и она обеспечивается интерфейсами I/O Spartan-6.

Однако даже честный 1080p вполне себе, и я даже называл Вам как платка именуется Pipistrello.


Из табличек вроде как следует, что 1080i требует тех же скоростей, что и 720p - т.е. Марсоход 3 это может, как видно. В чем же тогда преимущества Xilinx? В статье про Pipistrello сказано, что у них сигнал с отклонениями от стандарта получился.
0 #10 umarsohod 24.08.2015 11:50
Цитирую SAA:

Я правильно понимаю что необходим режим
HDTV 1080i ????

Из таблички разрешений самсунга я умышленно не убрал "Примечание". А статья по вашей ссылке из категории "нельзя, но если очень хочется то можно"
Я поступал проще, увеличивал частоты в своем проекте в два раза. Тоже полосички показывает, но такие решения не подходят для практического применения.
0 #9 SAA 24.08.2015 10:32
В ДШ по Spartan-6 есть табличка Table-1 в ней указаны достижимые для разных speedgrade пропускные способности TMDS I/O. Не смотрели ДШ? Так вот там для speedgrade -2 (вполне бюджетные чипы) указана полоса 945 Mb/s.

В вопросе про FPGA других производителей я не обратил внимание на Full-HD, отвечал больше на вторую часть вопроса паябельный корпус и наличие HDMI, для Альтеры кстати больной вопрос.

Ну да ладно Spartan-3 конечно в пролете, но по FullHD:

Я правильно понимаю что необходим режим
HDTV 1080i ????

тогда необходимая полоса для него 742,5 и она обеспечивается интерфейсами I/O Spartan-6.

Однако даже честный 1080p вполне себе, и я даже называл Вам как платка именуется Pipistrello.

http://hamsterworks.co.nz/mediawiki/index.php/Spartan_6_1080p
0 #8 umarsohod 24.08.2015 05:10
Цитирую SAA:
XC6SLX9 тоже можно считать бюджетным и даже экономическим классом у Ксалингсов.

вот ДШ на Spartan-6 по TMDS интерфейсу
http://www.xilinx.com/support/documentation/application_notes/xapp495_S6TMDS_Video_Interface.pdf
Всегда считал что вы делает хороше полезное дело, думаю под НГ приобрести у Вас девборд 3/3bis если не подаражают.
Кстати почему не обращаете внимание на Ксалингс? Они последнее время повернулись лицом к народу.

В самом начале речь шла о "FullHD". На какой ПЛИС это можно сделать?
0 #7 SAA 21.08.2015 18:23
XC6SLX9 тоже можно считать бюджетным и даже экономическим классом у Ксалингсов.

вот ДШ на Spartan-6 по TMDS интерфейсу
http://www.xilinx.com/support/documentation/application_notes/xapp495_S6TMDS_Video_Interface.pdf

Всегда считал что вы делает хороше полезное дело, думаю под НГ приобрести у Вас девборд 3/3bis если не подаражают.
Кстати почему не обращаете внимание на Ксалингс? Они последнее время повернулись лицом к народу.
0 #6 SAA 21.08.2015 18:22
to umarsahod:
Я не являюсь специалистом компании Xilinx, хотя и одинаково хорошо умею работать с продукцией обоих компаний и Altera и Xilinx.

Если это такой сарказм :) с Вашей стороны, то в начале статьи есть ссылка на fpga4fan где фигурирует плата на которой проверялся HDMI поток - Pluto-IIx не надо долго гуглить что бы найти ссылку на опсиание продукции:
http://www.knjn.com/docs/KNJN%20RS232%20FPGA%20boards.pdf

как видим не самый передовой Spartan-3A XC3S50, даже XC3S200A может HDMI.
вот ДШ на интерфейс TMDS у Spartan-3A
http://www.xilinx.com/support/documentation/application_notes/xapp460.pdf

Так же погуглив легко можно найти платы на Spartan-6 позволяющие работать с HDMI - Papistrello например.
http://joco.homeserver.hu/zxpipi/
0 #5 alman 21.08.2015 15:07
А звук поместится? Вроде бы как для передачи звука в HDMI используются те же самые контакты, но разделяются по времени с изображением.

Как быть с SDRAM? Картинка 1280х720 скушает почти половину ОЗУ. При этом придётся каким-то образом разделять обращения к памяти между процессором и HDMI модулем. Насколько при этом упадёт скорость доступа к SRAM?
0 #4 umarsohod 20.08.2015 16:33
Цитирую SAA:
Есть такие ПЛИС но почти все у Ксалингсов

Spartan 3(A,E,AN)
Spartan 6

есть там TQFP144 и даже VQG100

Очень интересно пообщаться со специалистом по чипам компании Xilinx. Не могли бы вы сказать точное название самого доступного чипа , работающего на частоте 740МГц
+1 #3 SAA 20.08.2015 11:45
Есть такие ПЛИС но почти все у Ксалингсов

Spartan 3(A,E,AN)
Spartan 6

есть там TQFP144 и даже VQG100
0 #2 umarsohod 20.08.2015 08:10
Цитирую Chaosorg:
а нет ли случайно каких-то отдельных микросхем, которые в паре с ПЛИС, работающей на 400MHz, могли бы выдать FullHD HDMI сигнал? Т.е. чтобы лишь в этой отдельной микросхеме были бы высоки частоты, а на входе она бы требовала параллельно передаваемые по пиксельклоку цвета пикселей?

И сразу еще вопрос: существует ли семейство ПЛИС, способное на FullHD, но выполненное не в BGA корпусе, а в TQFP144 или подобном? В том, что можно припаять дома?

Пару постов назад (статья про новый драйвер) есть фотография альтеровского девкита, там стоит adv7513.
Есть ПЛИС со встроенными высокоскоростны ми трансиверами, но это далеко не бюджетные решения.
0 #1 Chaosorg 20.08.2015 07:34
а нет ли случайно каких-то отдельных микросхем, которые в паре с ПЛИС, работающей на 400MHz, могли бы выдать FullHD HDMI сигнал? Т.е. чтобы лишь в этой отдельной микросхеме были бы высоки частоты, а на входе она бы требовала параллельно передаваемые по пиксельклоку цвета пикселей?

И сразу еще вопрос: существует ли семейство ПЛИС, способное на FullHD, но выполненное не в BGA корпусе, а в TQFP144 или подобном? В том, что можно припаять дома?

Добавить комментарий


Защитный код
Обновить


GitHub YouTube Twitter
Вы здесь: Начало Проекты Проект Марсоход3 Реализация HDMI в ПЛИС