No, no existe una solución estándar para convertir el software en hardware. En términos generales, tomar software que no fue escrito con una implementación de hardware en mente no se puede convertir fácilmente en hardware sin grandes pérdidas e ineficiencias. Por lo general, lo mejor que puede hacer es crear un chip que tenga una CPU y una ROM, y colocar el software en la ROM.
A lo largo de los años ha habido compiladores que tomarían el código "C-Like" y lo compilarían en hardware, de la misma manera que VHDL o Verilog se pueden compilar en hardware. Pero la clave es que es "C-Like" y no C. Todavía no puede tomar, por ejemplo, un programa C / C ++ que calcule PI y lo convierta mágicamente en hardware que calcule PI. La mayoría de estos lenguajes C-Line han desaparecido o no se usan en ningún número. Una de las versiones más populares de esto es SystemC , pero es importante tener en cuenta que no es C / C ++ y no es útil para el software genérico "vamos a escribir y luego lo compilamos en hardware". Aún necesita "escribir algo de hardware, que también podría compilarse en software".
Los conmutadores y enrutadores suelen tener hardware que realiza la mayoría de las funciones de enrutador críticas y de uso común (buscar cosas en las tablas de enrutamiento, administrar colas, etc.) en hardware y luego usar una CPU para realizar todas las funciones no tan comunes (manejo de excepciones, errores, actualizaciones de la tabla de enrutamiento, etc.). En muchos sentidos, esto es similar al funcionamiento de la CPU moderna, donde los códigos de operación más comunes se realizan en hardware y, en ocasiones, algunos códigos de operación se implementan realmente en software (por ejemplo, instrucciones de coma flotante cuando una FPU no está presente).