No, no existe una solución estándar para convertir software en hardware. En general, tomar software que no fue escrito teniendo en cuenta una implementación de hardware no se puede convertir fácilmente en hardware sin grandes desperdicios e ineficiencias. Por lo general, lo mejor que puede hacer es hacer 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 calcula PI y lo convierte mágicamente en hardware que calcula PI. La mayoría de estos idiomas de C-Line han desaparecido o no se utilizan 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 es no es útil para el genérico "escribamos software y luego compilémoslo en hardware". Aún necesita "escribir algún hardware, que también podría compilarse en el software".
Los conmutadores y enrutadores suelen tener hardware que hace la mayoría de las funciones de enrutador más comunes y rápidas (buscar cosas en tablas de enrutamiento, administrar colas, etc.) en hardware y luego usar una CPU para hacer todo lo que no. - Funciones comunes (manejo de excepciones, errores, actualizaciones de la tabla de enrutamiento, etc.). En muchos aspectos, esto es similar a cómo funcionan las CPU modernas, 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 en el software (por ejemplo, instrucciones de punto flotante cuando no hay una FPU).