На всякий случай еще раз подчеркну отличие технологий HDL/FPGA и языков программирования/микроконтроллеров, ибо это реально важно.
Компилятор языка высокого уровня транслирует алгоритм, записанный на некотором языке, в машинные команды, эффект набора которых эквивалентен исходной программе. Дальше эти команды записываются в память микроконтроллера/микропроцессора. Само же процессорное ядро представляет собой конечный автомат, который последовательно читает команды, записанные в машинном коде, и производит действия, которые им соответствуют. Сама по себе логика работы этого конечного автомата всегда одинакова, вне зависимости от конкретной программы. Если в коде встретится незнакомая инструкция, произойдет ошибка.
Синтезатор, обрабатывающий код на языке описания логики, не генерирует команд. На выходе синтезатора получается, по сути говоря, некоторая разновидность электрической схемы, представляющая собой описание конфигурации логических вентилей. FPGA представляет собой матрицу из универсальных логических вентилей, которые конфигурируются и соединяются друг с другом согласно этому описанию. В итоге мы получаем, что FPGA реально меняет свою логику, а не выполняет команды. Запрограммированная ПЛИС действительно становится той схемой, которая была описана на языке описания аппаратуры.