Нет, не существует стандартного решения для превращения программного обеспечения в оборудование. Вообще говоря, принимая во внимание программное обеспечение, которое не было написано с аппаратной реализацией, нельзя легко преобразовать его в оборудование без огромных потерь и неэффективности. Обычно лучше всего сделать чип с процессором и ПЗУ и поместить программное обеспечение в ПЗУ.
За прошедшие годы появились компиляторы, которые брали код типа «C-Like» и компилировали его в аппаратные средства - во многом так же, как VHDL или Verilog можно компилировать в аппаратные средства. Но главное в том, что это "C-Like", а не C. Вы все равно не можете взять, например, программу на C / C ++, которая вычисляет PI и магически конвертирует ее в аппаратное обеспечение, которое вычисляет PI. Большинство из этих языков C-Line исчезли или не используются ни в каком количестве. Одна из наиболее популярных версий этого - SystemC , но важно отметить, что это не C / C ++ и не полезен для универсального «давайте напишем программное обеспечение, а затем скомпилируем его в аппаратное обеспечение». Вам все еще нужно «написать какое-то оборудование, которое также может быть скомпилировано в программное обеспечение».
Коммутаторы и маршрутизаторы обычно имеют аппаратное обеспечение, которое выполняет большинство наиболее часто используемых и быстродействующих функций маршрутизатора (поиск содержимого в таблицах маршрутизации, управление очередями и т. Д.) На аппаратном уровне, а затем использует ЦП для выполнения всех не столь распространенных функций. (обработка исключений, ошибок, обновлений таблицы маршрутизации и т. д.). Во многом это похоже на работу современного ЦП, где наиболее распространенные коды операций выполняются аппаратно, а иногда некоторые коды операций фактически реализуются в программном обеспечении (например, инструкции с плавающей запятой, когда отсутствует FPU).