В комплекте с отладочной платой идет так же программатор USB-Blaster Rev. C показанный на рисунке 1. Программатор предназначен для загрузки конфигураций с компьютера в FPGA расположенный на плате. Конфигурация создается с помощью ПО установленном на компьютере, в нашем случае это Quartus Prime, далее через USB хост компьютера по проводу на конце которого установлен разъем MiniUSB конфигурация попадает в программатор. В программаторе установлен микроконтроллер который преобразует информацию, полученную с компьютера, в режим загрузки JTAG, и далее по десяти контактному интерфейсу конфигурация попадает на отладочную плату.

JTAG является аппаратным интерфейсом с помощью которого производиться программирование, тестирование и отладка печатных плат. Изначально в 1980-х годах его создание было связанно для упрощения контроля произведенных плат на которых установлены микросхемы, плис и т.д. Преимуществом заключалось в том, что с помощью всего нескольких команд была возможна проверка состояний всех соединений микросхем. JTAG может взять под контроль контакты всех микросхем, считать значение выводов с одной микросхемы потом с другой, отправив команды между ними JTAG убеждается что соединения в порядке. В настоящий момент у интерфейса имеется четыре логические линии TMS, TDO, TDI и TCK, три из которых можно считать выходами и один входом.

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

Рисунок 1 – Программатор USB-Blaster для программирования FPGA

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