Я пришел из опыта программирования и не слишком много путался с аппаратными средствами или прошивками (самое большее, электроника и Arduino).
Какова мотивация в использовании языков описания аппаратных средств (HDL), таких как Verilog и VHDL, по сравнению с языками программирования, такими как C или некоторая сборка?
Является ли этот вопрос вопросом выбора?
Я читал, что аппаратное обеспечение, прошивка которого написана на HDL, имеет явное преимущество при параллельном выполнении инструкций. Тем не менее, я был удивлен, увидев дискуссии, выражающие сомнения , писать ли прошивку на C или Assembly (как подходит Assembly, если у вас не обязательно есть CPU?), Но я пришел к выводу, что это тоже вариант.
Поэтому у меня есть несколько вопросов (не стесняйтесь ничего объяснять):
Прошивка действительно может быть написана либо на HDL, либо на языке программирования, или это просто еще один способ выполнить ту же задачу? Я хотел бы привести примеры из реальной жизни. Какие ограничения вытекают из каждого варианта?
Я знаю, что обычное использование встроенного программного обеспечения вместо программного обеспечения используется в аппаратных ускорителях (таких как графические процессоры, сетевые адаптеры, SSL-ускорители и т. Д.). Насколько я понимаю, это ускорение не всегда необходимо, а только рекомендуется (например, в случае SSL и ускорения сложных алгоритмов). Можно ли выбирать между прошивкой и программным обеспечением во всех случаях? Если нет, я был бы рад случаям, когда прошивка явно и однозначно уместна.
Я читал, что прошивка в основном сгорела на ROM или flash. Как это там представлено? В битах, как программное обеспечение? Если так, то в чем глубокая разница? Это наличие адаптированных схем в случае прошивки?
Думаю, я допустил ошибку здесь и там в некоторых предположениях, пожалуйста, прости меня. Спасибо!