Сетевой JTAG программатор для Altera Quartus Prime из Raspberry Pi3

FPGA

Выпущено программное обеспечение, которое позволяет сделать из Raspberry Pi3 сетевой JTAG программатор для САПР Altera Quartus Prime. Это решение позволяет удаленно загружать FPGA Altera/Intel и даже вести удаленную отладку с помощью инструмента SignalTap. Далее расскажу,
как использовать это ПО.

Вообще-то все это ПО создавалось ради платы расширения Марсоход2RPI, которая показана выше на фото. Плата имеет на борту ПЛИС Intel Cyclone IV и может подключаться через переходник к Raspberry Pi3 / Pi2 / Pi-Zero. Описывать здесь плату пожалуй подробно не буду, о ней уже писали на geektimes. Однако, ничто не мешает использовать это же программное обеспечение самостоятельно с другими FPGA платами — все, что нужно сделать — это изготовить простой JTAG провод и подключить его к GPIO микрокомпьютера распберри. Там всего-то нужны четыре сигнала tck → GPIO7, tms → GPIO0, tdi → GPIO11 и tdo ← GPIO1, ну и конечно, хорошая «Земля»/GND.

Честно говоря, использовать Raspberry Pi в качестве JTAG программатора было возможно и раньше. САПР Quartus Prime позволяет при компиляции проектов генерировать SVF файлы, а сервер OpenOCD может загружать SVF файлы в ПЛИС через GPIO пины распберри.

Однако, к сожалению, OpenOCD нельзя использовать в связке с самой САПР Quartus.
Теперь у нас есть другое ПО, где это возможно. Программное обеспечение можно скачать бесплатно без регистрации и без SMS вот здесь, на сайте проекта.

Архив содержит два файла.

Файл nw_jtag_srv — это исполняемый файл для raspberry pi. Является JTAG сервером, управляемым по UDP/TCP сети.

Вот так запускается nw_jtag_srv на распберри в консоли терминала. Использую sudo, так как нужен доступ к GPIO:



Второй файл из архива jtag_hw_net_blaster64.dll — это драйвер для Altera Quartus Prime. Его нужно переписать в папку c:\altera\17.0\quartus\bin64 ну или другую папку в зависимости от используемой версии квартуса.

После этого, запуская «программатор» из среды квартуса можно обнаружить новый сетевой программатор (конечно если между вашим компьютером и распберри есть сеть/связь). Имя обнаруженного сетевого программатора содержит IP адрес распберри:



Далее все как обычно. Можно делать определение подключенного чипа, загружать ПЛИС.
Более того, сетевой программатор обнаруживается в Altera SignalTap и можно удаленно смотреть сигналы в анализируемой ПЛИС:



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

Надеюсь этот инструмент покажется интересен читателям хабра, а кто-то возможно захочет использовать его в своей разработке.
Теги:Raspberry PiМарсоход2RPIAlteraJTAGпрограмматорSignalTap
Хабы: FPGA
+16
7,8k 47
Комментарии 7

Похожие публикации

Python для анализа данных
3 марта 202124 900 ₽SkillFactory
Профессия Product Manager
3 марта 2021108 500 ₽Нетология
Профессия Data Scientist
3 марта 2021162 000 ₽SkillFactory
Специализация Data Science
3 марта 2021114 000 ₽SkillFactory
Python для веб-разработки
5 марта 202159 400 ₽SkillFactory

Лучшие публикации за сутки