mcy112 angles 1280

Мы разработали новую FPGA плату MCY112 с чипом ПЛИС Altera Cyclone I EP1C12Q240C8. Мы понимаем, что ПЛИС Cyclone I не самый новый чип на сегодняшний день, но его достоинство - он есть в наличии и он более-менее доступен по цене. И главное - на этой плате очень много пользовательских выводов! Можно много чего подключить!

Плата MCY112 простая, но вполне подходит для изучения возможностей ПЛИС. На этой плате мы и светодиодами поморгать сможем и систему на кристалле с процессором RISC-V запустим.

Рассмотрим плату подробнее. В ПЛИС EP1C12Q240C8 содержатся 12060 логических элементов, 239616 бит встроенной памяти, два PLL. На плате установлены:

  • Кварцевый генератор 100Мгц;

  • Две пользовательские кнопки;

  • Восемь пользовательских светодиодов и 7-ми сегментный индикатор;

  • SDRAM IS42S32200B, 8 (или 16) Мбайт, 32 разряда шина данных (на обратной стороне платы);

  • Двухканальная аудио АЦП PCM1801U,16 бит, 48 Кгц;

  • Двухканальный аудио выход для Дельта Сигма ЦАП (8бит);

  • Три разъема для установки плат расширения, квазисовместимые с Raspberry Pi;

  • SPI Flash W25Q16, 2 Мбайта для автозагрузки ПЛИС:

  • SPI Flash W25Q16, 2 Мбайта для пользовательских данных;

  • Разъем для установки USB JTAG программатора, например MBFTDI или UsbBlaster

  • Разъем Active Serial для прошивки флэш памяти автозагрузки ПЛИС тем же самым программатором MBFTDI или UsbBlaster.

Вот план расположения компонентов на плате:

mcy112 1280 yellow marks

Программировать эту плату придется в среде Altera Quartus II Web Edition v9.1sp2. Скачать эту версию квартуса можно здесь на яндекс диске: https://disk.yandex.ru/d/KS4rCSB-MixEIw

Там же в папке есть еще один файл jtag_hw_mbftdi_blaster32.zip. Если плата будет использоваться совместно с нашим программатором MBFDI, то этот файл понадобится - это драйвер программатора к квартусу. Девятый квартус является 32х битной программой, но работает в Windows 10 64бит без проблем. Если квартус установлен например в папку D:\altera\91sp2, то распакуйте jtag_hw_mbftdi_blaster32.zip в папку D:\altera\91sp2\quartus\bin. Тогда программатор MBFTDI будет работать в САПР Quartus II Web Edition 9.1

Плата MCY112 разработана таким образом, чтобы при необходимости JTAG программатор MBFTDI мог быть просто установлен сверху на разъемы, вот так:

mcy112 mbftdi angles 1280

Сам программатор MBFTDI требует небольшой доработки - добавлен провод +5В от USB на разъем. Так плата будет получаь питание. Вероятно следующии версии программатора уже будут разведены соответствующим образом.

В таком виде плата, как единый макет: MCY112 с установленным программатором, может использоваться, например, студентами на лабораторных работах. Студенты будут разрабатывать свои проекты и загружать их в ПЛИС через USB кабель через программатор MBFTDI и его JTAG . Если же плата будет использоваться в составе какого-то оборудования, то тогда программатор нужен только чтобы загрузить прошивку в микросхему Flash памяти автозагрузки ПЛИС. Для этого программатор можно сместить и установить на разъем Active Serial, зашить флэшку и снять программатор. После подачи питания на плату она автоматически стартует и без программатора.

Выше я написал, что разъемы GPIO являются квазисовместимыми с платой микрокомпьютера Raspberry Pi. Это значит, что по крайней мере земля и питание разведены соответствующим распбери пи образом. Платы для распбери вероятно можно использовать совместно с нашей FPGA платой MCY112. Например, я планирую поключать к нашей плате MCY112 плату адаптера VGA для Raspberry Pi4:

mcy112 mbftdi vga angles 1280

И это будет работать! Адаптер VGA можно ставить и на разъем GPIO_A и на разъем GPIO_B. Выводов ПЛИС хватит.

К сожалению не все сигналы распбери будут доступны на всех разъемах GPIO. Точнее можно сказать так. На разъеме GPIO_A все выводы как на распберри есть в наличии. Есть 28 входов-выходов, доступных для FPGA проектов: inout wire [27:0]gpio_a.

На разъеме GPIO четыре вывода из 28 недоступны. Они зарезервированы в качестве сигналов JTAG для загрузки проектов в ПЛИС при подключении платы к микрокомпьютеру расперри. Про это надеюсь будет отдельная статья. В целом же всё задумано так же, как было раньше с нашей платой M2RPI

Зарезервированы под программатор:

//inout wire gpio0, //JTAG TMS
//inout wire gpio1, //JTAG TDO
//inout wire gpio7, //JTAG TCK
//inout wire gpio11, //JTAG TDI

На разъем GPIO_B свободных выводов ПЛИС немного не хватило. Поэтому здесь будет только 23 сигнала на ввод-вывод и три сигнала только на ввод:

inout wire [22:0]gpio_b,
input wire [2:0]RESERVE

Более подробно понять назначение сигналов FPGA и разъемов GPIO можно из схемы платы. Вот схема: https://github.com/marsohod4you/MCY112/blob/main/docs/MCY112-schema-v2.pdf

Для этой платы я уже подготовил несколько проектов, их можно посмотреть на странице github: https://github.com/marsohod4you/MCY112

Первый проект будет традиционно про светодиоды. Второй проект я планирую сделать фреймбуфер в памяти SDRAM и отображать его на VGA монитор. Ну и дальше будут проекты с оцифровкой звука и RISC-V. Посмотрим, что из этого у нас получится.

Здесь список выполненных проектов и их краткое описание.

buy button


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