C a HDL - C to HDL
Las herramientas C a HDL convierten el lenguaje C o código informático similar a C en un lenguaje de descripción de hardware (HDL) como VHDL o Verilog . El código convertido se puede sintetizar y traducir a un dispositivo de hardware, como una matriz de puertas programable en campo . En comparación con el software , los diseños equivalentes en hardware consumen menos energía (lo que produce un mayor rendimiento por vatio ) y se ejecutan más rápido con menor latencia , más paralelismo y mayor rendimiento . Sin embargo, el diseño del sistema y la verificación funcional en un lenguaje de descripción de hardware pueden ser tediosos y llevar mucho tiempo, por lo que los ingenieros de sistemas a menudo escriben módulos críticos en HDL y otros módulos en un lenguaje de alto nivel y los sintetizan en HDL a través de C a HDL o de alto nivel. herramientas de síntesis de nivel .
C a RTL es otro nombre para esta metodología. RTL se refiere a la representación del nivel de transferencia de registro de un programa necesario para implementarlo en lógica.
Historia
El desarrollo temprano de C a HDL fue realizado por Ian Page, Charles Sweeney y sus colegas de la Universidad de Oxford en la década de 1990, quienes desarrollaron el lenguaje Handel-C . Se comercializan sus investigaciones mediante la formación de Embedded Solutions Limited (ESL) en 1999, que pasó a denominarse Celoxica en septiembre de 2000. En 2008, los departamentos de sistemas integrados de Celoxica fue vendido a Catalítico por $ 3 millones y que más tarde se fusionaron para convertirse en la agilidad Computing. En enero de 2009, Mentor Graphics adquirió los activos de síntesis C de Agility. Celoxica continúa operando concentrándose en la aceleración del hardware en las industrias financiera y otras .
Aplicaciones
Las técnicas de C a HDL se aplican con mayor frecuencia a aplicaciones que tienen tiempos de ejecución inaceptablemente altos en arquitecturas de supercomputadoras de propósito general existentes . Los ejemplos incluyen bioinformática , dinámica de fluidos computacional (CFD), procesamiento financiero y análisis de datos de encuestas de petróleo y gas. Las aplicaciones integradas que requieren un alto rendimiento o procesamiento de datos en tiempo real también son un área de uso. El diseño de sistema en chip (SoC) también puede aprovechar las técnicas de C a HDL.
Los compiladores C-to-VHDL son muy útiles para diseños grandes o para implementar código que podría cambiar en el futuro. Diseñar una gran aplicación completamente en HDL puede resultar muy difícil y llevar mucho tiempo; la abstracción de un lenguaje de alto nivel para una aplicación tan grande a menudo reducirá el tiempo total de desarrollo. Además, es casi seguro que una aplicación codificada en HDL será más difícil de modificar que una codificada en un lenguaje de nivel superior. Si el diseñador necesita agregar una nueva funcionalidad a la aplicación, agregar algunas líneas de código C casi siempre será más fácil que remodelar el código HDL equivalente.
Las herramientas de flujo a HDL tienen un objetivo similar, pero con un diseño de flujo en lugar de basado en C.
Herramientas de ejemplo
- Herramienta LegUp Open Source ANSI C to Verilog, basada en el compilador LLVM.
- LegUp Variante comercial de LegUp.
- VHDP VHDL simplificado con soporte de programación procedimental.
- bambu (herramienta gratuita y de código abierto ANSI C a Verilog basada en el compilador GCC) del sitio web de PandA
- CBG CtoV Una herramienta desarrollada en 1995-99 por DJ Greaves (Univ Cambridge) que instanciaba RAM e interpretaba varios tipos de datos y construcciones de SystemC .
- Herramienta C-to-Verilog ( NISC ) de la Universidad de California, Irvine
- ROCCC 2.0 (herramienta gratuita y de código abierto C a HDL) de Jacquard Computing Inc.
- Altium Designer 6.9 y 7.0 (también conocido como Verano 08) de Altium
- Compilador de aceleración Nios II C-to-Hardware de Altera
- Herramienta Catapult C de Mentor Graphics
- Cynthesizer de Forte Design Systems
- SystemC de Celoxica (desaparecido)
- Handel-C de Celoxica (desaparecido)
- DIME-C de Nallatech
- Impulse C de Impulse Accelerated Technologies
- FpgaC, que es una iniciativa de código abierto
- Lenguaje de programación SA-C
- Cascade (sintetizador C a RTL) de CriticalBlue
- Mitrion-C de Mitrionics
- Compilador C2R de Cebatech
- PICO Express de Synfora
- SPARK (un C-to-VHDL) de la Universidad de California, San Diego
- Entorno de compilación de hardware (HCE) de Accelize (anteriormente entorno de compilación HARWEST de Ylichron )
- Herramienta HercuLeS (C / ensamblaje a VHDL)
- Índice de herramientas útiles de VLSI / VHDL CAD Group de la página de inicio de la Universidad CWRU
- DWARV como parte del proyecto de investigación ′ Delft Work Bench ′ y utilizado en la ′ cadena de herramientas hArtes ′
- MyHDL es un compilador y simulador de subconjuntos de Python para VHDL y Verilog
- Trident (C a VHDL) de trident.sourceforge.net
- Vsyn (C a Verilog, proyecto ruso)
- Instant SoC de FPGA Cores genera un SoC con núcleo RISC-V , periféricos y memorias directamente desde C ++.
- PipelineC Lenguaje de descripción de hardware similar a C que agrega síntesis de alto nivel, como canalización automática como una característica de construcción / compilador de lenguaje.
Ver también
- Comparación de software EDA
- Automatización de diseño electrónico (EDA)
- Síntesis de alto nivel
- Compilador de silicio
- Aceleracion de hardware
Referencias
- ^ Clarke, Peter (1 de abril de 2008). "Celoxica vende el negocio de EDA a Catalytic por $ 3 millones" . EE Times .
- ^ Dylan McGrath (22 de enero de 2009). "Mentor compra activos de síntesis C de Agility" . EETimes.com .
- ^ Celoxica Ltd (22 de enero de 2011). "Celoxica Ltd 'Acerca de nosotros ' " . Celoxica.com . Archivado desde el original el 16 de enero de 2011 . Consultado el 22 de enero de 2011 .
- ^ http://www.myhdl.org/
- ^ "Copia archivada" . Archivado desde el original el 2 de junio de 2017 . Consultado el 27 de octubre de 2019 .Mantenimiento de CS1: copia archivada como título ( enlace )
enlaces externos
- Un buen artículo en el Dr Dobbs Journal sobre ImpulseC.
- Una descripción general de los flujos de Daresbury Labs.
- Una descripción general de la compilación de hardware y el lenguaje Handel-C.
- La iniciativa ESL de Xilinx, algunos productos enumerados y herramientas de C a VHDL.
- Descripción general del compilador C-to-Hardware de Altium.
- Informe técnico del compilador de aceleración Nios II C2H de Altera.