¿Cuáles son algunos lenguajes c-to-gates de última generación?

No hay “lenguajes C-to-gates”. Hay una serie de enfoques de C a las puertas; principalmente en investigación académica. Sin embargo, en los últimos años, muchos proveedores de EDA han presentado sus propias herramientas comerciales de C to gates. Este enfoque de diseño de hardware utilizando lenguajes tipo C o C (como C ++, SystemC) se denomina “Síntesis de alto nivel (HLS)” aunque, fundamentalmente, el concepto HLS no está restringido a ningún lenguaje en particular. El concepto es utilizar un lenguaje que abstraiga el diseño a un nivel de descripción que sea más alto que un HDL.

Calypto Design Systems tiene Catapult: Productos :: Catapult Overview; La cadencia tiene que C-a-Silicon: C-a-Silicon Compiler; Synopsys tiene Synphony C: https://www.synopsys.com/Tools/I…. Estas son herramientas comerciales HLS para diseño ASIC y FPGA (dependiendo del nivel de soporte). Xilinx tiene Vivado HLS: Síntesis de alto nivel de Vivado para FPGA Xilinx.

A partir de ahora, ninguna de estas herramientas está destinada a reemplazar el diseño basado en HDL. Solo están destinados a complementar el diseño basado en HDL. Nadie está diseñando un chip completo con ninguna de estas herramientas, aunque puede leer “informes de noticias” con esos titulares. Estas herramientas se están utilizando para diseñar algunos módulos de un diseño más grande. Estos módulos generalmente están relacionados con algún algoritmo que debe implementarse y tienden a ser ricos en computación. Una vez que ese módulo ha sido diseñado, se integra con otros módulos (posiblemente aquellos diseñados directamente en HDL) para formar el diseño general. No es de dominio público si alguna compañía ha utilizado estas herramientas para diseñar un módulo que realmente entró en producción; pero para la creación de prototipos, etc. estas herramientas definitivamente se han utilizado. Una razón por la que alguien querría hacer prototipos con cualquiera de estas herramientas es que estas herramientas permiten una rápida “exploración del espacio de diseño (DSE)”. Se pueden crear múltiples diseños en un tiempo relativamente más corto utilizando la misma descripción C / C ++ / System C y probando diferentes conjuntos de directivas de optimización. Esto permite ver el posible espacio de diseño y luego seleccionar uno que cumpla con los requisitos. Por supuesto, los estudios de caso con estas herramientas provienen en gran parte de algunas de las compañías más grandes en la industria de semiconductores. Su adopción en las empresas más pequeñas es bastante discutible.

Si por “estado del arte” se refiere a la corriente principal, entonces no hay ninguno. A menos que para fines académicos, recomiendo tener cuidado antes de comenzar un diseño comercial con una de estas herramientas.

Los intentos de construir bibliotecas HDL C / C ++ y las herramientas correspondientes se han realizado de manera constante en los últimos 15-20 años. Todos han fallado por una razón muy simple: las principales compañías de CAD, a saber, Synopsys Cadence y MentorGraphics, no han adoptado este enfoque en sus herramientas / flujos de CAD. No lo han hecho, IMO, por una buena razón: la industria, en su conjunto, no ha visto una buena razón para alejarse de Verilog y VHDL, que son HDL perfectamente buenos.

Modelar el hardware usando un HDL, y sintetizarlo en una lista de nivel de puerta, son solo dos procesos en una cadena muy larga de procesos necesarios para sacar un IC de la puerta fabulosa. Un flujo de IC moderno requiere muchos más procesos que están directamente conectados con el modelo RTL de hardware y, por lo tanto, requieren la capacidad de analizarlo y “comprenderlo”: linting, verificación de equivalencia, verificación utilizando metodologías estándar de la industria (es decir, UVM / OVM, etc.), co -simulación con IP de verificación estándar, integración con IP de diseño estándar, síntesis de islas multi-Vt, sincronización de reloj, síntesis física, por nombrar algunas. Todos estos procesos generalmente requieren herramientas CAD estándar de la industria, que solo leerían su diseño si se implementa en Verilog, VHDL (y, en cierta medida, las opciones de diseño de SystemVerilog).

Si intentó implementar un IC con uno de los HDL C, no es probable que encuentre herramientas CAD para implementar todos los procesos anteriores, por lo que terminará teniendo que construir sus propias herramientas CAD personalizadas o dejará de funcionar Algunos procesos críticos. Es posible que estas desventajas superen cualquier ventaja que pueda encontrar con HDL alternativos

No hay buenas maneras de diseñar hardware en C. Es el mismo problema que describir cualquier procesamiento paralelo en C / C ++, el lenguaje no tiene construcciones para ello. Tengo un proyecto de código abierto para arreglar eso.

http://parallel.cc

Intentos realmente malos de usar C / C ++ estándar (como SystemC), se interponen en el camino de hacerlo correctamente.

El problema se solucionará cuando los programadores y los diseñadores de hardware lleguen a la misma página con una metodología FSM asíncrona que funcione tanto para el diseño de hardware como para la programación heterogénea de muchos núcleos (no SMP).