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


    Выпущено программное обеспечение, которое позволяет сделать из 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 и можно удаленно смотреть сигналы в анализируемой ПЛИС:



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

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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 7

      +1
      «Сетевой программатор» используют уже два десятка лет. Рядом со стендом ставится ноут с программатором (BB1/2, USBblaster, MasterBlaster и т.д.), поднимается Altera JTAG сервер. На удаленной машине ставится клиентская часть. Всё, можно работать удаленно.
      + На ноуте еще часто делают удаленный ресет и включение питания стенда.
        0
        Помню было время, когда на Linux в разы медленнее выгружались данные в Signaltap при подключении напрямую к Altera UsbBlaster'у. Исправлял подключением UsbBlaster к компьютеру с Windows и открытием «сетевого доступа» для Linux.
        0
        А под raspberry pi 2 будет работать?
        А будет ли развиваться программатор MBTF, в частности драйвер под Linux?
          0
          С распберри пи2 работать будет.
          И под Ubuntu Linux mbtfdi работает с квартусом: marsohod.org/11-blog/335-mbftdi-quartus-ubuntu
            0
            Спасибо ребята!
            Надо попробовать на своей marsohod 2 с Cyclone III. Есть нюансы работы драйверов на 13-м квартусе?
              0
              Попробовал эту dll с Quartus 16.1 — Quartus не видит новый тип JTAG устройств. В Quartus 17.0 всё видно.
          0
          Это супер круто! Уже год как мучаюсь пытаясь получить стабильную работу SignalTap over Ethernet (WiFi) без EthernetBlaster.
          Купил за $7 USB Blaster clone на EBay, подключил к Raspberry PI 3 и установил VirtualHere USB Server на нём. На Windows 10 — VirtualHere USB Client. Основные операции проходят нормально — прошивка, запуск SignalTap, выгрузка внутренних данных и т.п. Однако долговременный коннект (with polling) нестабильный. Примерно через минуты две ожидания триггера SignalTap выдаёт ошибку — что-то вроде «Unexpected data». Когда этот USB Blaster подключен локально никаких проблем нет.
          PS: ноутбук рядом поставить нельзя, т.к. устройство работает на улице.

          Only users with full accounts can post comments. Log in, please.