Внутрисистемное программирование FPGA с помощью MCU

Дайте мне знать, если это неправильное место для этого, но я хочу запрограммировать FPGA (я полагаю, Spartan 6) с помощью микроконтроллера.

Прямо сейчас я думаю об этом: я загружу программу FPGA в файле .hex в память микроконтроллера и последовательно загружу ее в какую-нибудь микросхему JTAG, которая затем будет программировать FPGA. Мой вопрос: теоретически существует ли эта JTAG IC, и если да, то что мне искать? Я не совсем знаком с JTAG, так что, возможно, это и есть источник моего замешательства.

Заранее спасибо!

1. Битовые потоки FPGA обычно довольно велики, по крайней мере, для больших FPGA (1 Мбит+). У вас есть столько места для программы? 2. JTAG - это просто специальный протокол, работающий поверх того, что в основном является шиной SPI, поэтому вы можете выполнять фактическое «программирование», используя только аппаратное обеспечение MCU, без особых проблем. Вряд ли существует много специализированных ИС для JTAG, поскольку это в основном общий, легко реализуемый интерфейс, по крайней мере, на аппаратном уровне.
Кроме того, программы FPGA обычно не хранятся в файлах .hex. У большинства производителей ПЛИС есть собственные проприетарные двоичные/шестнадцатеричные форматы файлов.
Спасибо за советы, очень может быть, что у меня не хватает места, мой микроконтроллер имеет 128k памяти, я обязательно посмотрю, какие программы хочет использовать команда FPGA.

Ответы (1)

Если вы серьезно относитесь к этому, вам нужно прочитать UG380, « Руководство пользователя по настройке FPGA Spartan-6 ». (Если выяснится, что это не то семейство ПЛИС, для каждого семейства Xilinx есть аналогичный документ; просто найдите его.)

Обзор (начиная со стр. 15) показывает, что существует несколько способов настройки Spartan-6, и JTAG не обязательно самый простой для управления с микроконтроллера. Существует режим «Slave Serial», который будет напрямую взаимодействовать с главным контроллером SPI на любом микроконтроллере, у которого он есть.

Спасибо за помощь, я обязательно прочитаю документ. Похоже, что Slave Serial — это то, что нужно.