
Программируемые логические интегральные схемы (ПЛИС) появились полтора десятилетия назад как альтернатива программируемым логическим матрицам (ПЛМ). От последних ПЛИС отличаются как по архитектуре, так и по технологии изготовления.
ПЛМ представляет собой матрицу многовходовых (несколько десятков входов) логических элементов с триггерами, в которых перемычками программируются конституенты единиц дизъюнктивных нормальных форм функций этих элементов. Вначале перемычки выполнялись в виде пережигаемых тонких проводничков. Теперь перемычки выполняются в виде МОП-транзистора с плавающим затвором, как в электрически перепрограммируемом ПЗУ, т.е. ПЛМ изготовляются по технологии флэш-памяти. Большие ПЛМ (CPLD) отличаются только тем, что несколько ПЛМ собраны на одном кристалле и объединены программируемым полем связей.

Для проверки основных систем нашей платы VE-10CL025 таких как FPGA, HDMI, SDRAM было решено создать проект, на основе процессорного ядра NIOS II. В нашем проекте процессор NIOS с помощью упрощенной библиотеки simple_graphics формирует изображение в экранном буфере, расположенном в SDRAM памяти. Далее данные из SDRAM считываются при помощи DMA, после чего передаются на блок генерации HDMI сигналов. Все компоненты системы, кроме блока генерации HDMI — стандартные (встроены в Quartus).Теперь подробнее о том, как это реализовать. Для начала нужно создать пустой проект в Quartus, сконфигурировать его под конкретную ПЛИС и создать систему SOPC. Более подробно это описано в нашей статье Процессор Nios II для VE-EP4CE10E.

В предыдущей статье Создание процессора со свободная архитектурой RISC-V. Часть 1. мы рассказали об истории появления, и основных архитектурных решениях микропроцессорной архитектуры со свободным набором команд RISC-V. Во второй части мы покажем, как можно реализовать FPGA версию микропроцессора RISC-V на языке SystemVerilog. Так-же мы получим в свое распоряжение программы для компиляции ассемблерного кода процессора, и возможность отладки с выводом информации на VGA дисплей и USART консоль. Полученная реализация имеет следующие особенности:

RISC-V — это свободная архитектура набора команд. Проект зародился в Калифорнийском университете в Беркли в 2010 году. Важную роль в его успехе сыграла открытость кода и свобода использования, что резко отличалось от многих других архитектур. Возьмите ARM: чтобы создать совместимый процессор, вы должны заплатить авансовый сбор от $1 млн до $10 млн, а также выплачивать роялти 0,5−2% с продаж. Свободная и открытая модель делает RISC-V привлекательным вариантом для многих, в том числе для стартапов, которые не могут оплатить лицензию на ARM или другой процессор, для академических исследователей и (очевидно) для сообщества open source.
Стремительный рост популярности RISC-V не остался незамеченным. ARM запустила сайт, который пытался (довольно безуспешно) подчеркнуть предполагаемые преимущества ARM над RISC-V (сайт уже закрыт). Проект RISC-V поддерживают многие крупные компании, включая Google, Nvidia и Western Digital.

Видно, что по HDMI, помимо видео потока (TMDS channel 0/1/2/clk), передаются еще и данные по интерфейсам DDC и CEC, последний нас пока интересовать не будет. DDC есть не что иное как интерфейс I2C, только без мультимастера, мастер только один — источник видео сигнала. Основной информацией передаваемой по DDC, для случая не защищенного HDCP HDMI канала, является EDID — «это стандарт формата данных VESA, который содержит базовую информацию о мониторе и его возможностях, включая информацию о производителе, максимальном размере изображения...». Да и еще одна маленькая, но важная особенность: без получения «нормального» EDID, источник сигнала не активизирует передачу видео сигналов по TMDS. По итогу имеем следующее: приемником HDMI является FPGA которая и знать не знает что такое I2C, EDID, DDC, а без нормального EDID, честных сигналов TMDS от видеокарты не видать «как своих ушей».

В технологии стереозрения используются, как правило, две камеры, работающие синхронно, что позволяет восстанавливать форму и расположение наблюдаемых объектов в трехмерном пространстве. При этом создается трехмерная полигональная модель какого-либо объекта, формируемая на основе анализа изображений этого объекта, полученных разнесенными в пространстве камерами.
Обычно для машинного зрения и распознавания достаточно использовать одну камеру, но стоит отметить, что стереозрение, в определенной степени повторяя особенности развития природного зрения, позволяет бортовой системе получать информацию не только о цвете и яркости объекта, но и о расстоянии до него, о его геометрической форме, о препятствиях на пути к объекту. Кроме того, совместное использование различных сенсоров и их комбинаций с технологией стереозрения позволяет более качественно и полно строить «сцену мира» для робота, тем самым улучшая его взаимодействие с окружающей средой. К таким сенсорам относятся сонары и лидары, радары; их применение, естественно, повышает себестоимость технического решения и сложность программного интеллекта бортовой системы.