Теоретически FPGA могла бы записать образ конфигурации во внешнюю память и загрузить образ конфигурации из памяти, чтобы перенастроить себя. Это будет «нединамическая» реконфигурация.
Есть ли у ПЛИС возможность динамически перестраивать свою логическую структуру? Действительно, хотя у триггеров может быть изменено их значение, я не слышал о динамической реконфигурации справочных таблиц и внутренних цепей, составляющих логическую структуру.
Может ли внутренняя логика ПЛИС (кроме памяти) динамически изменяться? Если нет, то почему нет?
Ответы:
Да, я знаю, что, по крайней мере, в Xilinx есть компоненты, которые поддерживают динамическую реконфигурацию, и, вероятно, другие крупные поставщики тоже.
Это серьезное обязательство, поэтому вам действительно нужно убедиться, что вам это нужно. Вам необходимо физически разделить микросхему на две или более областей, по крайней мере, одна из которых не подлежит реконфигурированию, и физически «закрепить» все внутренние интерфейсы между областями, чтобы инструменты синтеза могли устанавливать все правильные соединения.
источник
Есть два основных подхода, которые можно использовать. Многие типы FPGA хранят свою конфигурацию в защелках, которые выбираются с внешнего устройства (обычно EEPROM) при запуске; внешнее устройство не требуется ПЛИС после того, как оно было прочитано. Изменения в EEPROM во время работы устройства не вступят в силу, пока FPGA не получит команду перезагрузить его содержимое. Таким образом, для устройства, которое было бы полностью неработоспособным без ПЛИС, перепрограммировать эту ПЛИС во время работы; однако, если что-то идет не так во время записи в ЭСППЗУ, устройство может быть неработоспособным до тех пор, пока не будет перезаписано внешним устройством или пока оно не будет перезаписано (состояние, которое иногда называют «заблокированным»).
Альтернативный подход, который часто полезен для CPLD, чьи ячейки EEPROM «непосредственно» управляют их функциональностью (в отличие от копирования в защелки), состоит в том, чтобы иметь систему, которая может работать с ограниченными функциональными возможностями, даже когда программируемое устройство находится в бесполезном состоянии. Если таких ограниченных функциональных возможностей достаточно для перепрограммирования CPLD, устройство может быть защищено от «блокировки». Например, беспроводное устройство может использовать CPLD для управления своими беспроводными функциями и другими функциями. Обычный метод перепрограммирования CPLD может состоять в том, чтобы получить изображение в RAM через беспроводную связь, а затем использовать это изображение для перепрограммирования CPLD. При программировании файлов беспроводная связь может быть непригодна до перепрограммирования CPLD. Однако, чтобы система могла восстановиться, процессор может содержать «значение по умолчанию»
источник