Os FPGAs podem modificar dinamicamente sua lógica?

15

Teoricamente, seria possível para um FPGA gravar uma imagem de configuração em uma memória externa e carregar a imagem de configuração da memória para se reconfigurar. Isso seria reconfiguração "não dinâmica".

Os FPGAs têm a capacidade de religar dinamicamente sua estrutura lógica? De fato, embora os flip-flops possam ter seu valor modificado, não ouvi falar da reconfiguração dinâmica das tabelas de consulta e das conexões internas que compõem a estrutura lógica.

A lógica interna do FPGA (exceto memórias) pode ser modificada dinamicamente? Se não, por que não?

Randomblue
fonte
"reconfiguração dinâmica" é de fato a frase que você está procurando :)
Martin Thompson
Você está procurando FPGAs que possam se reconfigurar (como alguns microcontroladores podem) ou que possam ser reconfigurados (tempo de execução) a partir de um componente externo?
Trygve Laugstøl 24/10/12

Respostas:

12

Sim, eu sei que pelo menos o Xilinx tem peças que oferecem suporte à reconfiguração dinâmica, e os outros principais fornecedores provavelmente também.

Porém, é uma tarefa importante fazer isso, então você realmente precisa ter certeza de que precisa. Você precisa particionar fisicamente o chip em duas ou mais áreas, pelo menos uma delas não reconfigurável, e "fixar" fisicamente todas as interfaces internas entre as áreas, para que as ferramentas de síntese possam fazer todas as conexões corretas.

Dave Tweed
fonte
1
Pesquise no site da Xilinx "reconfigurabilidade"!
Leon Heller
3

Existem duas abordagens gerais que podemos usar. Muitos tipos de FPGA mantêm sua configuração em travas que são buscadas de um dispositivo externo (normalmente uma EEPROM) na inicialização; o dispositivo externo não é necessário pelo FPGA após a leitura. Alterações na EEPROM durante a operação do dispositivo não terão efeito até que o FPGA seja instruído a recarregar seu conteúdo. Assim, é possível para um dispositivo que seria completamente inoperável sem um FPGA reprogramar esse FPGA durante a operação; se algo der errado durante a gravação da EEPROM, no entanto, o dispositivo poderá ficar inoperante, a menos ou até que possa ser reescrito por um dispositivo externo (um estado às vezes chamado de "empedrado").

Uma abordagem alternativa, que geralmente é útil com CPLDs cujas células EEPROM "controlam" diretamente sua funcionalidade (em vez de serem copiadas para travas) é ter um sistema que possa operar com funcionalidade limitada, mesmo quando o dispositivo programável estiver em um estado inútil. Se essa funcionalidade limitada for suficiente para reprogramar o CPLD, o dispositivo poderá estar imune a 'tijolos'. Por exemplo, um dispositivo sem fio pode usar um CPLD para controlar sua funcionalidade sem fio e outros recursos. O método normal de reprogramar o CPLD pode ser o de receber uma imagem na RAM via link sem fio e, em seguida, usar essa imagem para reprogramar o CPLD. Se estiver programando arquivos, o link sem fio poderá ser inutilizado até que o CPLD seja reprogramado. Para permitir a recuperação do sistema, no entanto, o processador pode conter um "padrão"

supercat
fonte