Можна використовувати два загальні підходи. Багато типів FPGA зберігають свою конфігурацію у засувках, які виймаються із зовнішнього пристрою (як правило, EEPROM) при запуску; FPGA не потребує зовнішнього пристрою після його зчитування. Зміни в EEPROM під час роботи пристрою не наберуть чинності, доки FPGA не отримає вказівку щодо перезавантаження його вмісту. Таким чином, можливо, щоб пристрій, який без FPGA був повністю непрацездатний, перепрограмував FPGA під час роботи; якщо під час запису в EEPROM щось піде не так, проте пристрій може бути непрацездатним, якщо або поки його не можна буде переписати зовнішнім пристроєм (стан, який іноді називають "цегляним").
Альтернативний підхід, який часто корисний для CPLD, клітини яких EEPROM "безпосередньо" контролюють свою функціональність (на відміну від копіювання в засувки), - це мати систему, яка може працювати з обмеженою функціональністю, навіть коли програмований пристрій знаходиться в марному стані. Якщо такої обмеженої функціональності достатньо для перепрограмування CPLD, пристрій може бути захищений від "bricking". Наприклад, бездротовий пристрій може використовувати CPLD для управління його бездротовою функціональністю та іншими функціями. Звичайним методом перепрограмування CPLD може бути отримання зображення в ОЗУ по бездротовому каналу зв'язку, а потім використання цього зображення для перепрограмування CPLD. Якщо програмувати файли, бездротове з'єднання може бути непридатним, поки CPLD не буде перепрограмовано. Однак, щоб система могла відновитись, процесор міг містити "за замовчуванням"