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

Так-же как в VGA, сигналы управления Hsync, Vsync и Vdе вырабатывает синхрогенератор (VHgen). А сигналы RGB в отличие от VGA поступают не на ЦАПы , а на три TMDS-энкодера, которые преборазуют 8-ми битные сигналы цветности и два управляющих сигнала (с0,с1) в 10-битные. В синем канале в качестве управляющих сигналов передаются Hsync и Vsync. Управляющие сигналы зеленого и красного каналов в DVI не используются.
Цели у TMDS преобразования две - уменьшение количества изменений состояния и баланс постоянной составляющей.
Затем сигналы поступают на сериалайзер и далее на дифференциальный выход. Так-же на диф-выход поступает и пиксель-клок. В принципе все довольно просто и в приведенной выше ссылке есть пример проекта, который можно использовать практически без переделки. Правда разрешение там небольшое - 640х480, зато будет работать на любом мониторе или даже телевизоре.
У большинства современных телевизоров довольно большой список поддерживаемых режимов. Вот например режимы телевизора Samsung , на котором я делал свои эксперименты:
Меняя частоту пиксель-клока и параметры синхрогенератора можно реализовать любое разрешение, но есть одно "но".
Максимальная частота глобал-клока нашего чипа MAX10 400МГЦ а на сериалайзер нужно подавать частоту в десять раз больше пиксель-клока. Таким образом, будут работать разрешения с частотами до 40МГЦ. Что-же делать если хочется больше?
Можно посмотреть выходной пин нашего чипа в Altera Quartus II "Resourse Property Editor":

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

1. Откуда берется младший бит сигналов red/green/blue ??? Такое впечатление, что он не подключен, но какой в этом глубокий смысл ?
2. В описании функции altddio_out перечислены семейства FPGA, с которыми она работает, и MAX 10 там нет. Зато для MAX 10 существует Altera GPIO Lite - это поменялось в очередной версии Quartus'а ?
А вот нечто такое можно увидеть на экране Марсохода3 после включения питания.
Что это и какие ещё есть сюрпризы в "заводской прошивке"?
Тест совместимости прошёл телевизор SHIVAKI STV-22LEDG7
В списке поддерживаемых режимов "720р" у него есть,похоже дело в чем-то другом
Как оказалось, не каждый телевизор понимает это разрешение. Проверил проект из статьи на телевизоре JVC LT-32EX18 - не работает. К слову, телевизор очень специфический и даже с компьютером через HDMI его подружить непросто. Но факт - 1280х720 x 74МГЦ - не такой уж и стандарт, если не вся техника его понимает.
Справедливости ради надо заметить, что на другом телевизоре тест показал картинку в точности как в статье.
ну наверное все таки нет, не так. Путей более быстрых чем Global Clock видимо нет. А вот аппаратные блоки могут и больше сериализаторы и десериализаторы , даблклокеры. Кстати уверен что DCM и PLL могут и за гигагерцы вышвырнут вот только скорее всего это через глобал клок не пройдет. А speedgrade как основной показатель относится ко всему в том числе и к глобал клоку, но мне кажется важнее то что другие LE's и блоки при этом так же подтягиваются по частотности.
Там ножка CEC целый мир открывает. На схеме Марсохода3 она подписана но не подключена.
К выводу графики из SDRAM я отношуст скептически, а вот аофавитно-цифро вой дисплей через HDMI или высокоскоростно й коммуникационны й контроллер вполне реальны. Как вариант из области фантастики - графический ускоритель, который оперирует не образами памяти, а командами, но это уж совсем из области фантастики.
Вот что интересно, так это концентратор, позволяющий соединиить HDMI более двух Марсоходов. Это будет широкое поле для экспериментов и творчества, можно даже кластеры из Марсоходов делать с интерконнектом через HDMI.
Можно попробовать разбить мой вопрос на несколько:
- правильно ли я понимаю, что максимальная частота глобалклока - это правильное название основного показателя быстродействия ПЛИС. Быстрее этого там ничего нет?
- существуют ли паябельные ПЛИС, которые быстрее 400MHz в этом смысле?
- этот фокус с удвоением эффективной частоты с помощью триггера наверняка не единственный метод. Может существуют паябельные ПЛИС с какими-то еще хитрыми приемопередатчи ками?
P.S. Я не говорю что у Spartan-6 есть что то, чего нет у marsohod-3/3bis , не передергивайте мои слова, был вопрос есть ли ПЛИС. Как оказалось есть и паябельном корпусе и могущие 1080i. Целью холиварить Xilinx vs Altera у меня не было. Я прекрасно знаю про узкие места у обоих разработчиков, одинаково люблю работать с обоим, и не только с этими двумя - Lattice мне тоже нравится и цены тоже сходные.
И не надо меня ловить на протекционизме к Ксалингсам я начинал с Альтеры и люблю наверное даже больше, так как изначально именно она была лицом к разработчику и любителю такому как я например. Ценовые категории, доступность, качество ПО для разработки.
Из табличек вроде как следует, что 1080i требует тех же скоростей, что и 720p - т.е. Марсоход 3 это может, как видно. В чем же тогда преимущества Xilinx? В статье про Pipistrello сказано, что у них сигнал с отклонениями от стандарта получился.
Из таблички разрешений самсунга я умышленно не убрал "Примечание". А статья по вашей ссылке из категории "нельзя, но если очень хочется то можно"
Я поступал проще, увеличивал частоты в своем проекте в два раза. Тоже полосички показывает, но такие решения не подходят для практического применения.
В вопросе про FPGA других производителей я не обратил внимание на Full-HD, отвечал больше на вторую часть вопроса паябельный корпус и наличие HDMI, для Альтеры кстати больной вопрос.
Ну да ладно Spartan-3 конечно в пролете, но по FullHD:
Я правильно понимаю что необходим режим
HDTV 1080i ????
тогда необходимая полоса для него 742,5 и она обеспечивается интерфейсами I/O Spartan-6.
Однако даже честный 1080p вполне себе, и я даже называл Вам как платка именуется Pipistrello.
hamsterworks.co.nz/.../...
В самом начале речь шла о "FullHD". На какой ПЛИС это можно сделать?
вот ДШ на Spartan-6 по TMDS интерфейсу
xilinx.com/.../...
Всегда считал что вы делает хороше полезное дело, думаю под НГ приобрести у Вас девборд 3/3bis если не подаражают.
Кстати почему не обращаете внимание на Ксалингс? Они последнее время повернулись лицом к народу.
Я не являюсь специалистом компании Xilinx, хотя и одинаково хорошо умею работать с продукцией обоих компаний и Altera и Xilinx.
Если это такой сарказм :) с Вашей стороны, то в начале статьи есть ссылка на fpga4fan где фигурирует плата на которой проверялся HDMI поток - Pluto-IIx не надо долго гуглить что бы найти ссылку на опсиание продукции:
knjn.com/.../...
как видим не самый передовой Spartan-3A XC3S50, даже XC3S200A может HDMI.
вот ДШ на интерфейс TMDS у Spartan-3A
www.xilinx.com/.../xapp460.pdf
Так же погуглив легко можно найти платы на Spartan-6 позволяющие работать с HDMI - Papistrello например.
joco.homeserver.hu/zxpipi/
Как быть с SDRAM? Картинка 1280х720 скушает почти половину ОЗУ. При этом придётся каким-то образом разделять обращения к памяти между процессором и HDMI модулем. Насколько при этом упадёт скорость доступа к SRAM?
Очень интересно пообщаться со специалистом по чипам компании Xilinx. Не могли бы вы сказать точное название самого доступного чипа , работающего на частоте 740МГц
Spartan 3(A,E,AN)
Spartan 6
есть там TQFP144 и даже VQG100
Пару постов назад (статья про новый драйвер) есть фотография альтеровского девкита, там стоит adv7513.
Есть ПЛИС со встроенными высокоскоростны ми трансиверами, но это далеко не бюджетные решения.
И сразу еще вопрос: существует ли семейство ПЛИС, способное на FullHD, но выполненное не в BGA корпусе, а в TQFP144 или подобном? В том, что можно припаять дома?