"Карно" - плата интерактивная расширяемая для синтезирования цифровых схем (ПИР СЦХ-254 "Карно")

Описание к видео "Карно" - плата интерактивная расширяемая для синтезирования цифровых схем (ПИР СЦХ-254 "Карно")

В данном новогоднем видео демонстрируются возможности платы ПИР СЦХ-254 "Карно". Данная плата содержит микросхему ПЛИС Lattice ECP5 (25К логических блоков), а так же ряд периферийных устройств, в том числе многоканальные ЦАП и АЦП, FastEthernet, HMDI. Плата имеет формфактор Raspberry Pi3 с совместимым разъёмом GPIO. Полная спецификация платы приведена ниже.

Плата "Карно" предназначена для синтеза цифровых схем и их тестирования. На плате может быть собран полноценный микроконтроллер для управления промышленными устройствами. В качестве демонстрации мы синтезировали средствами ПЛИС полноценный микроконтроллер с вычислительным ядром RISC-V (VexRiscV с тактовой частотой 60 МГц), контроллером FastEthernet и контроллером интерфейса HUB75. Через HUB75 к плате подключена светодиодная матрица формата 80x40, каждый пиксель матрицы имеет три цвета (RGB светодиод). На ядре RISC-V запущено программное обеспечение реализующее программный протокол Modbus over IP/UDP (Modbus/UDP), через который ножно обновлять изображение выводимое на светодиодную матрицу, а также выводить данные на каналы АЦП, т.е. генерировать звук.

Стриминг видео осуществляется с помощью небольшого скрипта написанного на языке Perl5 запущенного на внешнем хосте (на ноутбуке). Скрипт считывает аудио и видео из специально подготовленных файлов и отправляет по сети на плату Карно, инкапсулируя видео и аудио данные в пакеты Modbus/UDP. На строне Карно, ПО на синтезированном ядре RISC-V демультиплексирует полученные UDP пакеты и перекладывает данные либо в видео фрейм буфер либо в кольцевой буфер ЦАП. Имеются и другие возможности по управлению периферией через протокол Modbus/UDP.

Плата "Карно" спроектированная в САПР KiCAD 7. Цифровая аппаратура ПЛИС написана на языке SpinalHDL и синтезирована с помощью open source toolchain-а Yosis+NextPNR. Программное опеспечения для ядра RISC-V написано на языке C с использованием облегченного TCP/IP стека lwIP. Объём машинного кода - 75КБ, размещается в синтезируемой RAM.

Спецификация платы "Карно" ПИР СЦЗ-254:

RPi3 form factor board with 40pin head connector
Lattice ECP5 25K FPGA, RISC-V ready
SRAM 16x256 KBits (512 KB)
NOR flash 128 MBits for FPGA configs
EEPROM 1Kbits (128 bytes) for user settings
Ethernet 10/100Base-TX
RS-485 transceiver
HDMI connector directly connected to FPGA
SPI DAC 4 channels (2 for audio)
SPI ADC 4 channels + 1 mic in
4 keys and 4 LEDs
4 pin audio jack connected to DAC/ADC
Built-in FT2232D based programmer

Схема и трассировка платы "Карно": https://github.com/Fabmicro-LLC/Karni...

Программное обеспечение: https://github.com/Fabmicro-LLC/VexRi...

Комментарии

Информация по комментариям в разработке