Объединение технологий FPGA и CPU давно будоражит пытливые умы разработчиков. Та же компания Intel не оставляет попыток "скрестить ежа с ужом", да и у разных производителей ПЛИС есть свои чипы с встроенным HPS. Об одной такой системе мы уже писали. Интерес этот понятен, каждая из технологий FPGA/CPU удобнее в какой-то своей сфере применения. На FPGA шире спектр подключаемой периферии и проще работать с задачами реального времени. На CPU удобнее обрабатывать и хранить данные, проще с пользовательским интерфейсом и связью с внешним миром. Но у существующих решений есть две серьезные проблемы - это высокий порог вхождения и цена. А нам хотелось бы реализовать симбиоз FPGA и CPU "для самых маленьких". Отсюда появилась идея сделать плату для Raspbery Pi. Хотя платы с FPGA для Raspbery Pi уже существуют, они имеют ряд недостатков. Опять-же, цена, нет плат с альтеровскими чипами и, на наш взгляд, не очень удачное конструктивное решение.
Хочу остановиться на этом моменте подробнее. Те, кто знаком с Raspbery Pi, наверное обратили внимание, что на последней версии платы Raspbery Pi3, на чипах уже появились радиаторы. Простите меня за сарказм, но в следующей версии (типа Raspbery Pi4) можно ожидать и вентилятор. А все существующие платы вставляются сверху, что только ухудшает охлаждение процессора, и будет повышать температуру находящейся над ней FPGA. Поэтому мы решили устанавливать плату не сверху, а рядом и соединять с Raspbery Pi при помощи специального переходника.
Плату мы постарались сделать как можно проще (и соответственно дешевле) - FPGA EP4CE6E22C8 или 10CL006YE144C8G:
- Логических элементов 6272;
- Встроенная память 270Кбит;
- Умножителей 15 (18x18) или 30 (9x9);
- PLL 2;
- 4 светодиода;
- 3 кнопки;
- Кварцевый генератор 100Мгц;
- Возможность установки чипа EPCS4 (для случая, если плата будет использоваться автономно);
- Разъем JTAG (для случая, если плата будет использоваться автономно);
- два 40 пиновых разъема на каждом по 28 пользовательских GPIO;
- один 40 пиновый разьем для подключения к Raspbery, на котором можно использовать 24 или 20 GPIO (в зависимости от того, установлен чип EPCS4 или нет).
Мы тестировали нашу плату с Raspberry Pi3 и Raspberry Pi2B. Нашу плату можно подключить и к Raspbery Pi Zero. Но они, к сожалению, продаются с невпаянными разъемами, и их придется допаивать самостоятельно. Если, допаять "гребенку " сверху, то подключение будет таким-же, как и с обычным Raspbery Pi:
Но если запаять разъем "противоположной сексуальной ориентации" снизу, то в этом случае, можно обойтись без переходника:
Схема платы доступна для загрузки
Программировать плату можно несколькими способами. Первый способ - использование программного обеспечения OpenOCD,
Второй способ - использование сетевого программатора для Quartus Prime. В этом случае на Raspberry запускается специальный сервер и у Quartus устанавливается специальный Jtag DLL. Они взаимодействуют по сети и FPGA загружается по сети прямо из среды квартуса. В этом случае можно пользоваться даже Quaruts Prime SignalTap. Последняя версия JTAG Server поддерживает Raspberry Pi4.
Плату можно купить в нашем интернет магазине.
Подробнее...