Ні, немає стандартного рішення для перетворення програмного забезпечення на апаратне забезпечення. Взагалі кажучи, беручи до уваги програмне забезпечення, яке не було написано з технічною реалізацією, не можна легко перетворити на апаратне забезпечення без великих витрат і неефективності. Зазвичай, найкраще зробити це лише зробити чіп із процесором та ПЗУ - і поставити програмне забезпечення в ПЗУ.
Протягом багатьох років існували компілятори, які брали б "C-Like" код і компілювали його в апаратне забезпечення - майже так само, як VHDL або Verilog можна компілювати в апаратне забезпечення. Але головне, що це "C-Like", а не C. Ви все одно не можете взяти, наприклад, програму C / C ++, яка обчислює PI і магічно перетворює її в апаратне забезпечення, яке обчислює PI. Більшість цих мов C-Line відійшли або не використовуються в жодній кількості. Однією з найпопулярніших версій цього є SystemC , але важливо зазначити, що це не C / C ++ і не є корисним для загального "давайте запишемо програмне забезпечення, а потім компілюємо його в апаратне забезпечення". Вам все одно потрібно "написати деяке обладнання, яке також може бути складено в програмне забезпечення".
Перемикачі та маршрутизатори, як правило, мають апаратне забезпечення, яке виконує більшість часто використовуваних і критичних функцій маршрутизатора (швидкість пошуку матеріалів у таблицях маршрутизації, керування чергами тощо) в апаратному забезпеченні, а потім використовуйте процесор, щоб виконувати всі не дуже поширені функції (обробка винятків, помилок, оновлення таблиці маршрутів тощо). Багато в чому це схоже на те, як працюють сучасні процесори, де найбільш поширені опкоди виконуються апаратно, а іноді деякі опкоди реально реалізовані в програмному забезпеченні (наприклад, інструкції з плаваючою комою, коли ФПУ відсутня).