Я надходжу з програми програмування і не заплутався занадто багато з обладнанням або мікропрограмним забезпеченням (принаймні, трохи електроніки та Arduino).
Яка мотивація у використанні апаратних мов опису (HDL), таких як Verilog та VHDL над мовами програмування, такими як C або деякі збори?
Це питання взагалі є питанням вибору?
Я читав, що апаратне забезпечення, яке прошивка записане на HDL, має явну перевагу в паралельному виконанні інструкцій. Однак я був здивований, побачивши дискусії, в яких висловлювались сумніви щодо того, чи писати прошивку на С або Асамблеї (як Асамблея підходить, якщо у вас не обов'язково є процесор?), Але я прийшов до висновку, що це також варіант.
Тому у мене є кілька запитань (не соромтесь нічого пояснювати):
Прошивку справді можна записати або в HDL, або на мові програмування, або це просто інший спосіб виконати ту саму місію? Я б хотів навести приклади в реальному світі. Які обмеження внаслідок кожного варіанту?
Я знаю, що поширене використання прошивки над програмним забезпеченням відбувається в апаратних прискорювачах (таких як графічні процесори, мережеві адаптери, прискорювачі SSL тощо). Як я розумію, це прискорення не завжди необхідне, а лише рекомендується (наприклад, у випадку SSL та прискорення складних алгоритмів). Чи можна обирати між вбудованим і програмним забезпеченням у всіх випадках? Якщо ні, я був би радий випадкам, коли прошивки явно і однозначно доречні.
Я читав, що вбудована програма в основному горіла на ROM або flash. Як це представлено там? Бітами, як програмне забезпечення? Якщо так, то яка різниця? Це наявність адаптованих схем у разі прошивки?
Напевно, я помилявся тут і там у деяких припущеннях, будь ласка, пробач мене. Дякую!