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"