CPPL: Nuevo lenguaje simplifica diseño de circuitos con IA

Fuentes: CPPL: A Circuit Prompt Programming Language
CPPL: Nuevo lenguaje simplifica diseño de circuitos con IA
Imagen generada con IA

El diseño de hardware está experimentando una revolución impulsada por la inteligencia artificial, específicamente por los modelos de lenguaje grandes (LLMs). Sin embargo, generar directamente código RTL (Register-Transfer Level), el lenguaje de bajo nivel para describir circuitos digitales, con LLMs es un desafío: el código resultante es difícil de validar, optimizar e integrar con las herramientas de diseño de hardware tradicionales. Aquí es donde entra CPPL (Circuit Prompt Programming Language).

CPPL es un nuevo marco de trabajo que actúa como un puente entre los LLMs y los procesos de compilación de hardware. En lugar de pedirle a un LLM que genere directamente código RTL complejo (que es propenso a errores y difícil de depurar), CPPL utiliza un enfoque más estructurado. El sistema funciona en dos etapas principales: primero, se define una interfaz de módulo en un lenguaje DSL (Domain Specific Language) basado en Python, que describe la funcionalidad y las conexiones de los bloques de hardware. Luego, el LLM genera código en un nuevo lenguaje intermedio llamado CPPL IR (CPPL Intermediate Representation). Este IR es un formato JSON diseñado para ser legible tanto para los LLMs como para los compiladores.

La clave de CPPL es que este IR está diseñado para ser estáticamente verificable. Esto significa que el compilador puede analizar el código generado por el LLM para asegurar que sea correcto y consistente antes de convertirlo a Verilog, el lenguaje de descripción de hardware estándar. El compilador verifica aspectos como la compatibilidad de los puertos, la jerarquía de los módulos y el cumplimiento de las restricciones de ancho de bits. Finalmente, el compilador traduce el CPPL IR a CIRCT, una representación intermedia utilizada en la infraestructura de compilación de hardware, que luego se convierte a Verilog para la síntesis.

CPPL ofrece varias ventajas: mejora la corrección funcional del código generado por LLMs, facilita la optimización del diseño (CIRCT permite aplicar optimizaciones avanzadas), y hace que el proceso de diseño sea más analizable y reproducible. En pruebas con el benchmark RTLLM, CPPL superó a los enfoques que generaban Verilog o CIRCT directamente. El código fuente de CPPL está disponible públicamente, lo que facilita su adopción y contribución por parte de la comunidad de diseño de hardware. En resumen, CPPL es una solución innovadora que permite aprovechar el potencial de los LLMs en el diseño de hardware de una manera más fiable y eficiente.