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

в 19:33, , рубрики: Altera, fpga, jtag, Raspberry Pi, SignalTap, Марсоход2RPI, программатор
Сетевой JTAG программатор для Altera Quartus Prime из Raspberry Pi3 - 1

Выпущено программное обеспечение, которое позволяет сделать из 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 программатор для Altera Quartus Prime из Raspberry Pi3 - 2

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

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

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

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

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

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

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

Автор: nckma

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js