stringtranslate.com

Comprobación de equivalencia formal

El proceso de verificación de equivalencia formal es parte de la automatización del diseño electrónico (EDA), comúnmente utilizada durante el desarrollo de circuitos integrados digitales , para demostrar formalmente que dos representaciones de un diseño de circuito exhiben exactamente el mismo comportamiento.

Comprobación de equivalencia y niveles de abstracción.

En general, existe una amplia gama de definiciones posibles de equivalencia funcional que cubren comparaciones entre diferentes niveles de abstracción y granularidad variable de los detalles temporales.

Equivalencia de máquina síncrona

El comportamiento del nivel de transferencia de registros (RTL) de un chip digital generalmente se describe con un lenguaje de descripción de hardware , como Verilog o VHDL . Esta descripción es el modelo de referencia de oro que describe en detalle qué operaciones se ejecutarán durante qué ciclo de reloj y mediante qué piezas de hardware. Una vez que los diseñadores lógicos, mediante simulaciones y otros métodos de verificación, han verificado la descripción de la transferencia de registros, el diseño generalmente se convierte en una lista de conexiones mediante una herramienta de síntesis lógica . La equivalencia no debe confundirse con la corrección funcional, que debe determinarse mediante verificación funcional .

La lista de red inicial generalmente sufrirá una serie de transformaciones, como optimización, adición de estructuras de Diseño para prueba (DFT), etc., antes de usarse como base para la ubicación de los elementos lógicos en un diseño físico . El software de diseño físico contemporáneo ocasionalmente también realizará modificaciones significativas (como reemplazar elementos lógicos con elementos similares equivalentes que tengan una fuerza y/o área de accionamiento mayor o menor) en la lista de redes. A lo largo de cada paso de un procedimiento muy complejo de varios pasos, se deben mantener la funcionalidad original y el comportamiento descrito en el código original. Cuando la cinta final esté hecha de un chip digital, muchos programas EDA diferentes y posiblemente algunas ediciones manuales habrán alterado la lista de redes.

En teoría, una herramienta de síntesis lógica garantiza que la primera lista de red sea lógicamente equivalente al código fuente RTL. Todos los programas posteriores en el proceso que realizan cambios en la lista de red también, en teoría, garantizan que estos cambios sean lógicamente equivalentes a una versión anterior.

En la práctica, los programas tienen errores y sería un gran riesgo asumir que todos los pasos desde RTL hasta la lista de salida final se han realizado sin errores. Además, en la vida real, es común que los diseñadores realicen cambios manuales en una lista de conexiones, comúnmente conocidos como Órdenes de cambio de ingeniería o ECO, introduciendo así un importante factor de error adicional. Por lo tanto, en lugar de asumir ciegamente que no se cometieron errores, se necesita un paso de verificación para comprobar la equivalencia lógica de la versión final de la netlist con la descripción original del diseño (modelo de referencia dorado).

Históricamente, una forma de comprobar la equivalencia era volver a simular, utilizando la lista de red final, los casos de prueba que se desarrollaron para verificar la exactitud del RTL. Este proceso se llama simulación lógica a nivel de puerta . Sin embargo, el problema con esto es que la calidad de la verificación es tan buena como la calidad de los casos de prueba. Además, las simulaciones a nivel de puerta son notoriamente lentas de ejecutar, lo cual es un problema importante ya que el tamaño de los diseños digitales continúa creciendo exponencialmente .

Una forma alternativa de resolver esto es demostrar formalmente que el código RTL y la lista de red sintetizada a partir de él tienen exactamente el mismo comportamiento en todos los casos (relevantes). Este proceso se llama verificación de equivalencia formal y es un problema que se estudia en el área más amplia de verificación formal .

Se puede realizar una verificación de equivalencia formal entre dos representaciones cualesquiera de un diseño: RTL <> netlist, netlist <> netlist o RTL <> RTL, aunque esta última es rara en comparación con las dos primeras. Normalmente, una herramienta formal de verificación de equivalencia también indicará con gran precisión en qué punto existe una diferencia entre dos representaciones.

Métodos

Hay dos tecnologías básicas utilizadas para el razonamiento booleano en programas de verificación de equivalencia:

Solicitudes comerciales de verificación de equivalencia

Los principales productos del área de verificación de equivalencia lógica ( LEC ) de EDA son:

Generalizaciones

Ver también

Referencias

enlaces externos