NyaiCEProg F3. Программатор для FPGA серии iCE5 (iCE40 Ultra)

На время отладки конфигурации FPGA неудобно постоянно изменять прошивку и перепрошивать мастер-контроллер, потому сделал себе простенький программатор, благо, на отладочной плате разведён USB.
В архиве stm32f3lattice.zip лежит два hex, для STM32F3Discovery и для отладочной платы «STM32F303 + ice5 Development Board». Отличаются, впрочем, они только расположением светодиода.

Загрузка выполняется в энергозависимую память, потому при отключении питания конфигурация пропадёт!

Интерфейс ПО незамысловат: выбираем bin-файл конфигурации и нажимаем «Program».
Интерфейс


Читать дальше

Подключение встроенного модуля токового драйвера FPGA серии iCE5 (iCE40 Ultra)

В микросхеме iCE5LP2K есть встроенные токовые драйвера для светодиодов. Три канала слаботочных, с ограничением тока от 4 до 24 мА с шагом в 4 мА (настраивается статически) и один канал посильнее, от 50 до 500 мА с шагом в 50 мА.

На его примере и расскажу, как здесь, а может, и не только здесь, подключаются встроенные в микросхему блоки.


Читать дальше

Настройка PLL FPGA серии iCE5 (iCE40 Ultra) в среде iCEcube2

Как и в любом уважающем себя FPGA, рассчитанном на достаточно высокое быстродействие, в iCE5LP2K есть один модуль PLL, и, скорее всего, он понадобится. Продолжим же с него. На самом деле, микросхема эта не настолько уж и шустрая, не дотягивает даже до уровня первого циклона (Altera Cyclone I).

Я провёл мини-тест, запускал моргалку светодиода на разных частотах.
  • 96 МГц: предупреждений нет, моргает нормально;
  • 120 МГц: есть предупреждения о превышениях временных порогов на каких-то путях, но ещё работает, сбоев в моргании нет;
  • 130 МГц: есть предупреждения, моргает со сбоями и зависаниями, всё плохо.
  • 150 МГц: есть предупреждения, не работает ничего, светодиод просто не включается.
Синтезатор не требует файла с временными ограничениями на сигналы и позволяет собрать даже нерабочий вариант. Файл ограничений, кстати, добавить можно.
То есть даже собранный правильный код не означает, что он будет работать. Думаю, более простая схема, без такого километрового счётчика, работала бы и на более высокой частоте, чем эта моргалка.

Читать дальше

Создание проекта для iCE5 (iCE40 Ultra) в среде iCEcube2

Есть такая фирма Lattice, которая производит микросхемы FPGA (некоторые из них тут продаются, некоторые — фиг). Самое интересное их отличительное качество — размер. Например, серия iCE5 (iCE40 Ultra), имеет вариант корпуса QFN48 7х7мм:
STM32F303 + ice5 Development Board
Вторая микросхема — это stm32f303. Сама плата: STM32F303 + ice5 Development Board. iCE5LP4K не удалось найти, потому поставили iCE5LP2K, да и слот под sd-карты решили не паять.


Читать дальше