Soy muy consciente de la programación de procesadores y microcontroladores en C. ¿Pero se puede usar el código C (no SystemC) para el diseño lógico de los FPGA? ¿Existen herramientas de software específicas para este propósito?
Soy muy consciente de la programación de procesadores y microcontroladores en C. ¿Pero se puede usar el código C (no SystemC) para el diseño lógico de los FPGA? ¿Existen herramientas de software específicas para este propósito?
Sí , es posible realizar un diseño de lógica de alto nivel (HLL) utilizando C o lenguajes similares a C. Aquí hay una lista de las herramientas de software más populares:
El seguimiento de ellos se dificulta por el hecho de que estas empresas se tragan entre sí de forma regular, cambian los nombres o suspenden los productos por completo.
Parece que para todas las herramientas, el código C debe pasar por una etapa HDL intermedia. Por lo tanto, el diseño se traducirá a Verilog o VHDL, y estas herramientas facilitan la transición antes de que finalmente se ponga en hardware. Pero recuerde, Verilog y VHDL son etapas intermedias. Incluso el netlist es intermediario. La etapa final será un archivo binario propietario que reconfigura el FPGA. Diseñar en C tendrá sus propios desafíos y trade-offs . Pero la respuesta a la pregunta es un rotundo sí, se puede hacer un diseño lógico en C.
Una bonita introducción a C-to-FPGA se escribió en 2005. Wikipedia tiene una buena lista de HDL y herramientas. Actualmente, también hay herramientas para lenguajes similares a C, C ++, Java, Python y Ruby. . Por favor comente si me perdí una herramienta y la agregaré a la respuesta.
No, los FPGA no pueden programarse en C. A lo largo de los años ha habido varios intentos de utilizar un lenguaje tipo C, pero estos tampoco han tenido éxito en absoluto. Incluso para los que "tuvieron éxito" no los llamaría reales C. Por ejemplo, no podría tomar un código preexistente destinado a ser compilado para un procesador y recompilarlo para un FPGA y esperar que funcione.
Usa VHDL o Verilog, estarás mucho más contento.
Si su objetivo es ejecutar un sistema en el FPGA que ejecuta C, puede intentar instalar un núcleo de CPU. Sin embargo, esto niega el propósito del FPGA.
Usar C para programar FPGA sería una opción de diseño bastante pobre, ya que C está diseñado para programas iterativos, no para arreglos lógicos. Verilog y VHDL están diseñados de tal manera que usted crea una estructura, no una lista de instrucciones.
Lea otras preguntas en las etiquetas fpga hdl programming