Выпущено программное обеспечение, которое позволяет сделать из 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:altera17.0quartusbin64 ну или другую папку в зависимости от используемой версии квартуса.
После этого, запуская «программатор» из среды квартуса можно обнаружить новый сетевой программатор (конечно если между вашим компьютером и распберри есть сеть/связь). Имя обнаруженного сетевого программатора содержит IP адрес распберри:
Далее все как обычно. Можно делать определение подключенного чипа, загружать ПЛИС.
Более того, сетевой программатор обнаруживается в Altera SignalTap и можно удаленно смотреть сигналы в анализируемой ПЛИС:
Конечно, пока это первая версия сетевого программатора. В процессе эксплуатации возможные баги будут находиться и исправляться.
Надеюсь этот инструмент покажется интересен читателям хабра, а кто-то возможно захочет использовать его в своей разработке.
Автор: nckma