Logotipo de Zephyrnet

Se requiere una nueva generación de EDA

Fecha:

Cuando cambia la declaración del problema, a veces vale la pena usar un enfoque completamente diferente.

popularidad

Mientras investigaba para una de mis historias este mes, un par de personas básicamente dijeron que aplicar metodologías del pasado a los diseños de hoy puede ser problemático porque existen diferencias fundamentales en las arquitecturas y las cargas de trabajo. Si bien estoy completamente de acuerdo, no creo que estas declaraciones vayan lo suficientemente lejos.

Los diseños de hoy en día generalmente tienen uno de todo: una CPU, un acelerador, un subsistema de memoria, una interfaz USB, etc. Sí, puede haber varios aceleradores, pero cada uno es diferente. Cada bloque es un bloque único dentro del diseño, y eso significa que todo el chip es un chip personalizado, aunque la mayoría de la industria está creando un diseño que tiene un 90 % en común con los diseños de la competencia y probablemente un 95 % en común con el último diseño que crearon.

La industria IP ha estado respondiendo mediante la creación de bloques o subsistemas multifunción cada vez más grandes y esto continúa funcionando para diseños únicos. Pero nunca diseñarías un recuerdo considerándolo único. Las celdas se diseñan una vez, la lógica que las rodea se diseña en un sentido genérico y luego los compiladores o generadores proporcionan las configuraciones exactas que necesita.

IP-XACT surgió del desarrollo dentro de Mentor Graphics, donde el diseño se realizó de una manera más modular. Los bloques se definían con “interfaces” y luego solo había que conectarlos entre sí. El sistema sabía cómo conectar las interfaces, siempre que fueran compatibles, e insertar la lógica necesaria si se requería. Fue diseñado para diseños únicos y se convirtió en una forma útil de describir bloques de IP.

Pero estamos llegando al punto en que los diseños no contienen uno de todo. Los procesadores para gráficos son conjuntos de bloques informáticos, y lo mismo ocurre con el aprendizaje automático y los procesadores de inteligencia artificial, los procesadores de audio y video, y estoy seguro de que hay otros bloques en los que no entiendo completamente el funcionamiento interno. ¿Dónde están los compiladores para este tipo de sistemas? ¿Por qué todos tienen que diseñar su propio bloque MAC en lugar de que unas pocas empresas, o incluso las fundiciones, produzcan celdas altamente optimizadas que luego se pueden replicar, conectar, interconectar con la memoria y la E/S de manera programática? ¿Dónde están las herramientas que pueden analizar estructuras regulares para averiguar para qué tipos de flujos de datos funcionarían bien y cuáles producirían cuellos de botella?

La industria ha estado buscando el siguiente nivel de abstracción para diseños únicos, pero tal vez ese sea el enfoque equivocado. Deberían buscar un nivel de abstracción en el que se definan los flujos de datos y se creen estructuras apropiadas que incluyan la replicación masiva. Junto con eso, se pueden crear metodologías de verificación mucho mejores que podrían utilizar la jerarquía de manera efectiva.

Quizás el ejemplo más cercano de esto que existe hoy en día son las estructuras de interconexión de red en chip (NOC), donde se puede definir la cantidad de solicitantes y proveedores y establecer las relaciones entre ellos, como qué solicitante necesita hablar con qué proveedores. , si son conexiones de uno a muchos o de muchos a uno, los requisitos de rendimiento, etc. A partir de eso, la interconexión se genera por completo.

Si ese proceso de generación es lo más cercano posible a la corrección por construcción, entonces solo existe la necesidad de verificar la implementación en el momento de la aprobación. Todo lo anterior se puede hacer con modelos abstractos de la misma manera que una CPU entregada como IP desde una fuente confiable rara vez se verifica a nivel de puerta.

Es quizás este cambio en el carácter de los diseños lo que creará la oportunidad de herramientas más eficientes que se centren en los atributos del diseño. Supongo que esta mentalidad también fluiría hacia el lugar y la ruta, el análisis térmico y muchos otros aspectos del flujo de back-end porque cada una de las celdas puede analizarse más a fondo individualmente y luego replicarse.

Por supuesto, siempre habrá esa pequeña parte de cada diseño que es una lógica digital totalmente personalizada y que puede continuar utilizando el flujo de herramientas existente. Pero parece que eso ahora es una parte bastante pequeña del problema.

brian bailey

brian bailey

  (todos los mensajes)

Brian Bailey es editor de tecnología / EDA para ingeniería de semiconductores.

punto_img

Información más reciente

punto_img