A) В качестве альтернативного подхода существуют некоторые C-подобные языки, которые компилируются в VHDL или Verilog. Подробнее см. C - HDL в Википедии.
То, что обычно производит компилятор для такого языка, - это индивидуальный дизайн схемы для вашей конкретной "программы". Например, если вы хотите вычислить a * b + c * d + e * f, вы можете получить схему, которая содержит три умножителя и два сумматора и может выполнить это вычисление для другого (a, b, c, d , е, е) кортеж каждого цикла, вроде как конвейер .
Полагаю, это зависит от того, что вы хотите сделать. Для приложений низкого уровня ЦП работает медленнее, чем настраиваемая схема, но его определенно легче программировать.
D) Я согласен с FailedDev. Вы должны начать с основ, возиться с VHDL или Verilog и зажечь некоторые светодиоды (например, реализовать двоичный счетчик).