Catapult C Synthesis, un producto comercial de automatización del diseño electrónico de Mentor Graphics , es una herramienta de síntesis de alto nivel , a veces llamada síntesis algorítmica o síntesis ESL. Catapult C toma entradas ANSI C / C++ y SystemC [ 1 ] y genera código RTL ( nivel de transferencia de registros ) dirigido a FPGA y ASIC [ 2 ] .
Historia
En 2004, Mentor Graphics anunció formalmente su producto de síntesis de alto nivel Catapult C, que ofrecía soporte de diseño jerárquico para sintetizar subsistemas multibloque segmentados a partir de descripciones ANSI C/C++ sin temporización. La funcionalidad principal de Catapult C era la generación de RTL ( VHDL y Verilog ) dirigido a ASIC y FPGA. Los usuarios especificaban restricciones de temporización y área, y proporcionaban un período de reloj y la tecnología de destino. Mentor también anunció un generador de bibliotecas Catapult C para que los diseñadores de ASIC recopilaran datos de caracterización detallados. [ 3 ]
En 2005, Mentor anunció extensiones para Catapult C que permitían crear automáticamente modelos y envoltorios a nivel de transacción de SystemC, para la simulación del diseño en entornos de verificación compatibles con SystemC. Mentor también introdujo la síntesis de interfaces para mapear la transferencia de datos implícita al pasar argumentos de funciones de C++ a interfaces de hardware como cables, registros, registros de protocolos de enlace, memorias, buses o interfaces definidas por el usuario más complejas. [ 4 ]
En 2006, Mentor anunció Catapult SL (System Level) para la creación automática de subsistemas de procesamiento de señales. Catapult SL podía coordinar la partición de operaciones C secuenciales en múltiples bloques dentro del subsistema, incluyendo la partición en múltiples dominios de reloj. Catapult SL inserta automáticamente los canales entre bloques y los búferes de memoria apropiados para ensamblar el subsistema. [ 5 ]
En enero de 2009, Mentor anunció una integración entre Catapult C y su entorno de diseño y simulación Vista SystemC para generar automáticamente modelos a nivel de transacción (TLM). En este proceso, la entrada ANSI C++ sin temporización a Catapult se encapsula en un contenedor TLM; la información de temporización se extrae de los resultados de la síntesis y se anota en el modelo resultante. El flujo es compatible con el estándar TLM-2.0 de la Open SystemC Initiative (OSCI). [ 6 ]
En junio de 2009, Mentor anunció que mejoró Catapult C con la capacidad de sintetizar lógica de control, crear listas de conexiones RTL optimizadas para el consumo de energía, con control automático de reloj multinivel y un flujo de verificación automatizado para permitir la depuración del RTL comparándolo con la entrada C++ original. [ 7 ]
En enero de 2010, Mentor anunció la capacidad de Catapult C para aceptar entrada directa de SystemC, incluyendo soporte tanto a nivel de ciclo como de transacción (TLM). [ 8 ]
En mayo de 2011, Mentor anunció que Catapult C admitía la síntesis TLM. Los modelos TLM abstractos se convierten en modelos SystemC específicos del protocolo y con precisión de pines, y a partir de ahí, se sintetizan a código RTL. Las descripciones sintetizables existentes se pueden convertir a TLM. [ 9 ]
En agosto de 2011, Catapult C fue adquirida por Calypto Design Systems. [ 10 ]
En septiembre de 2015, Mentor Graphics adquirió Calypto Design Systems, [ 11 ] readquiriendo así Catapult C.
Características
CatapultC sintetiza ANSI C/C++ sin extensiones propietarias. La compatibilidad con el lenguaje C/C++ incluye punteros, clases, plantillas, especialización de plantillas y sobrecarga de operadores , lo que facilita la metodología de reutilización de diseño sobre el código RTL. [ 12 ]
Catapult C admite la síntesis de lógica algorítmica y de control . [ 13 ]
Los diseñadores realizan iteraciones con CatC para seleccionar su microarquitectura preferida según las restricciones de rendimiento y área especificadas. [ 14 ] Catapult cuenta con una interfaz gráfica de usuario que muestra visualmente el circuito de hardware que está programando, así como la referencia de reloj entre el código C y el código RTL de Verilog. Catapult C ofrece tres tipos de simulación utilizando el banco de pruebas original de C/C++: basada en ciclos, basada en RTL y basada en nivel de compuertas. [ 15 ]
Catapult C admite la generación de modelos SystemC destinados a plataformas virtuales, y un entorno de prueba SystemC para verificar el RTL generado comparándolo con el C++ original mediante el banco de pruebas de C++ original.
Catapult C admite la síntesis de modelos de nivel de transacción (TLM), incluidas interfaces de bus estándar disponibles comercialmente y protocolos personalizados. [ 16 ]
Productos HLS de la competencia
- Stratus HLS de Cadence Design Systems
- Vivado HLS de Xilinx (anteriormente, AutoPilot de AutoESL )
- Intel HLS de Intel (anteriormente a++ de Altera)
- Compilador BlueSpec de BlueSpec
- Codesarrollador de Impulse C de Impulse Accelerated Technologies
- Compilador C Synphony de Synopsys
- LegUp de la Universidad de Toronto Archivado el 24/07/2020 en Wayback Machine
- CyberWorkBench de NEC
- Conversión de C a Verilog desde C-to-Verilog.com
- eXCite de Y Explorations Archivado el 17/09/2019 en Wayback Machine
- ParC C++ extendido para procesamiento paralelo y descripción de hardware
- Programador HDL de MathWorks
- PandA-Bambu HLS del Politécnico de Milán
Referencias
- ↑ Diseño de chips que conecta ESL y síntesis de alto nivel
- ↑ Universidad de Oulu Planificación rápida de arquitecturas VLSI eficientes para sistemas inalámbricos HSDPA de próxima generación mediante síntesis en C
- ↑ EETimes: Los despliegues de síntesis de alto nivel permiten ESL
- ↑ SOCCentral Mentor Graphics amplía el producto de síntesis Catapult C. Archivado el 5 de febrero de 2006 en Wayback Machine.
- ↑ SOCCentral Mentor introduce la síntesis de alto nivel para crear subsistemas de alto rendimiento a partir de ANSI C++ puro. Enlace obsoleto archivado el 13/09/2012 en archive.today .
- ↑ Flujo de diseño de EETimes Mentor TLM 2.0
- ↑ SCDsource Mentor Catapult C sintetiza el control y la gestión de energía. Archivado el 9 de octubre de 2011 en Wayback Machine.
- ↑ Diseño de chips que conecta ESL y síntesis de alto nivel
- ↑ La síntesis TLM de EETimes
- ↑ EETimes Calypto adquiere Catapult C de Mentor
- ↑ PR Newswire Mentor Graphics adquiere Calypto Design Systems
- ↑ Universidad de Oulu Planificación rápida de arquitecturas VLSI eficientes para sistemas inalámbricos HSDPA de próxima generación mediante síntesis en C
- ↑ SCDsource Mentor Catapult C sintetiza el control y la gestión de energía. Archivado el 9 de octubre de 2011 en Wayback Machine.
- ↑ Diseño arquitectónico e implementación del algoritmo detector de esferas de lista de radio creciente de ICASSP
- ↑ Diseño de chips Deepchip C/C++ mediante síntesis de alto nivel
- ↑ La síntesis TLM de EETimes
Enlaces externos
- Página del producto Catapult C Synthesis de Calypto Design Systems
- Página del producto Catapult C Synthesis de Mentor Graphics
- Comunidades de ESL y síntesis de alto nivel
- Transformación de un código ANSI C con directivas OpenMP en una descripción SystemC.
- Síntesis y verificación automatizadas de sistemas embebidos: ¿ilusión o realidad?
- Software de automatización del diseño electrónico