El diseño y verificación a nivel de sistema electrónico (ESL) es una metodología de diseño electrónico, centrada en preocupaciones de nivel de abstracción superior. El término Nivel de Sistema Electrónico o Diseño ESL fue definido por primera vez por Gartner Dataquest , una firma de análisis de la industria EDA, el 1 de febrero de 2001. [1] Se define en Diseño y Verificación ESL [2] como: "la utilización de abstracciones para aumentar la comprensión sobre un sistema y mejorar la probabilidad de una implementación exitosa de la funcionalidad de una manera rentable ".
La premisa básica es modelar el comportamiento de todo el sistema utilizando un lenguaje de bajo nivel como C , C++ o utilizando herramientas de diseño gráfico "basadas en modelos". Están surgiendo lenguajes más nuevos que permiten la creación de un modelo en un nivel más alto de abstracción, incluidos lenguajes de diseño de sistemas de propósito general como SysML , así como aquellos que son específicos del diseño de sistemas integrados como SMDL y SSDL. La implementación rápida y correcta del sistema se puede automatizar utilizando herramientas EDA , como síntesis de alto nivel y herramientas de software integradas , aunque hoy en día gran parte de esto se realiza manualmente. ESL también se puede lograr mediante el uso de SystemC como lenguaje de modelado abstracto .
ESL es un enfoque establecido en muchas de las principales empresas de diseño de sistemas en un chip (SoC) del mundo y se utiliza cada vez más en el diseño de sistemas . [3] Desde su génesis como una metodología de modelado de algoritmos "sin vínculos con la implementación", ESL está evolucionando hacia un conjunto de metodologías complementarias que permiten el diseño, la verificación y la depuración de sistemas integrados hasta la implementación de hardware y software de sistemas SoC personalizados . -en- FPGA , sistema en placa y sistemas completos de múltiples placas.
El diseño y la verificación son dos disciplinas distintas dentro de esta metodología. Algunas prácticas buscan mantener los dos elementos separados, mientras que otras abogan por una integración más estrecha entre el diseño y la verificación. [4]
Ya sea ESL u otros sistemas, el diseño se refiere al "diseño concurrente de las partes de hardware y software de un producto electrónico". [5]
Existen varios tipos de herramientas EDA que se utilizan para el diseño de ESL. El componente clave es la Plataforma Virtual, que es esencialmente un simulador. La Plataforma Virtual comúnmente admite el modelado a nivel de transacción (TLM), donde las operaciones de un componente sobre otro se modelan con una simple llamada a un método entre los objetos que modelan cada componente. Esta abstracción proporciona una velocidad considerable con respecto al modelado con precisión de ciclo, ya que miles de eventos a nivel de red en el sistema real se pueden representar simplemente pasando un puntero; por ejemplo, para modelar que se ha recibido un paquete Ethernet, a menudo se usa SystemC.
Otras herramientas admiten la importación y exportación o la intercomunicación con componentes modelados en otros niveles de abstracción. Por ejemplo, un componente RTL se puede convertir en un modelo SystemC utilizando VtoC [6] o Verilator. Y la síntesis de alto nivel se puede utilizar para convertir modelos C de un componente en una implementación RTL.
En el diseño y verificación de ESL, las pruebas de verificación se utilizan para demostrar la integridad del diseño del sistema o dispositivo. Se pueden aplicar numerosas técnicas de verificación; Estos métodos de prueba generalmente se modifican o personalizan para adaptarse mejor al sistema o dispositivo bajo prueba. Los métodos comunes de verificación de ESL incluyen, entre otros: [7]
La verificación suele ser proporcionada por el diseñador del sistema/dispositivo, pero en muchos casos se requiere una verificación independiente adicional.
Se han planteado algunas críticas al diseño y verificación de ESL. Estos incluyen demasiado enfoque en lenguajes basados en C y desafíos a la hora de representar procesos paralelos. [8] También se puede argumentar que el diseño y la verificación de ESL son un subconjunto de la verificación y la validación .