stringtranslate.com

Simulación lógica

La simulación lógica es el uso de software de simulación para predecir el comportamiento de circuitos digitales y lenguajes de descripción de hardware . [1] [2] La simulación se puede realizar en diversos grados de abstracción física , como a nivel de transistor , nivel de puerta , nivel de transferencia de registros (RTL), nivel de sistema electrónico (ESL) o nivel de comportamiento.

Uso en verificación

La simulación lógica se puede utilizar como parte del proceso de verificación en el diseño de hardware. [3]

Las simulaciones tienen la ventaja de proporcionar una apariencia familiar al usuario, ya que están construidas a partir del mismo lenguaje y símbolos utilizados en el diseño. Al permitir que el usuario interactúe directamente con el diseño, la simulación es una forma natural para que el diseñador obtenga comentarios sobre su diseño.

Duración de la simulación

El nivel de esfuerzo requerido para depurar y luego verificar el diseño es proporcional a la madurez del diseño. Es decir, al principio de la vida del diseño, los errores y el comportamiento incorrecto generalmente se encuentran rápidamente. A medida que el diseño madure, la simulación requerirá más tiempo y recursos para ejecutarse, y los errores tardarán progresivamente más en detectarse. Esto es particularmente problemático cuando se simulan componentes de sistemas modernos; cada componente que cambia de estado en un solo ciclo de reloj en la simulación requerirá varios ciclos de reloj para simularse.

Un enfoque sencillo para este problema puede ser emular el circuito en un conjunto de puertas programables en campo . La verificación formal también puede explorarse como alternativa a la simulación, aunque una prueba formal no siempre es posible o conveniente.

Una posible forma de acelerar la simulación lógica es utilizar cálculos distribuidos y paralelos . [4]

Para ayudar a medir la minuciosidad de una simulación, existen herramientas para evaluar la cobertura del código , [5] la cobertura funcional, la cobertura de la máquina de estados finitos (FSM) y muchas otras métricas. [6]

Simulación de eventos versus simulación de ciclos

La simulación de eventos permite que el diseño contenga información temporal simple: el retraso necesario para que una señal viaje de un lugar a otro. Durante la simulación, los cambios de señal se rastrean en forma de eventos. Un cambio en un momento determinado desencadena un evento después de un cierto retraso. Los eventos se clasifican según la hora en que ocurrirán y cuando se han manejado todos los eventos para un momento en particular, el tiempo simulado avanza hasta la hora del siguiente evento programado. La velocidad a la que se ejecuta una simulación de eventos depende de la cantidad de eventos que se procesarán (la cantidad de actividad en el modelo). [7]

Si bien la simulación de eventos puede proporcionar cierta información sobre la sincronización de la señal, no reemplaza el análisis de sincronización estática .

En la simulación de ciclos no es posible especificar retrasos. Se utiliza un modelo con precisión de ciclo y cada puerta se evalúa en cada ciclo. Por lo tanto, la simulación del ciclo se ejecuta a una velocidad constante, independientemente de la actividad en el modelo. Las implementaciones optimizadas pueden aprovechar la baja actividad del modelo para acelerar la simulación al omitir la evaluación de puertas cuyas entradas no cambiaron. En comparación con la simulación de eventos, la simulación de ciclos tiende a ser más rápida, escalar mejor y ser más adecuada para la aceleración/emulación de hardware.

Sin embargo, las tendencias en el diseño de chips apuntan a que la simulación de eventos gana en rendimiento relativo debido a la reducción del factor de actividad en el circuito (debido a técnicas como la activación del reloj y la activación de potencia , que se están utilizando mucho más comúnmente en un esfuerzo por reducir la disipación de energía). En estos casos, dado que la simulación de eventos solo simula los eventos necesarios, es posible que el rendimiento ya no sea una desventaja con respecto a la simulación de ciclos. La simulación de eventos también tiene la ventaja de una mayor flexibilidad, manejando características de diseño difíciles de manejar con la simulación de ciclos, como la lógica asíncrona y los relojes inconmensurables. Debido a estas consideraciones, casi todos los simuladores lógicos comerciales tienen una capacidad basada en eventos, incluso si se basan principalmente en técnicas basadas en ciclos. [8]

Ver también

Referencias

  1. ^ Laung-Terng Wang; Yao-Wen Chang; Kwang-Ting (Tim) Cheng (11 de marzo de 2009). Automatización de diseños electrónicos: síntesis, verificación y prueba. Morgan Kaufman. ISBN 978-0-08-092200-3.
  2. ^ V. Litovski; Mark Zwolinski (31 de diciembre de 1996). Simulación y optimización de circuitos VLSI. Medios de ciencia y negocios de Springer. ISBN 978-0-412-63860-2.
  3. ^ Bombieri, Nicola; Fummí, Franco; Pravadelli, Graziano (mayo de 2006). Diseño y Simulación de Hardware para Verificación. Apuntes de conferencias sobre informática. págs. 1–29.
  4. ^ Sistema de software para simulación lógica distribuida basada en eventos . Ladyzhensky YV, Popoff YV Actas del taller de pruebas y diseño Este-Oeste de IEEE (EWDTW'05). IEEE EWDTW, 2005, páginas 119-122 ISBN 966-659-113-8 
  5. ^ Wang, Tsu-Hua y Tan, Chong Guan (1995). Cobertura de código práctica para Verilog. 1995 Conferencia internacional Verilog HDL del IEEE. IEEE. págs. 99-104.{{cite conference}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  6. ^ Jou, Jing-Yang y Liu, Chien-Nan Jimmy (1999). Técnicas de análisis de cobertura para la validación del diseño HDL. Lenguajes de diseño de chips de Asia Pacífico. págs. 48–55.{{cite conference}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  7. ^ "Entorno de simulación y modelado de redes" (PDF) . Centro de Información Técnica de Defensa . Consultado el 1 de enero de 2023 .
  8. ^ Manual de automatización de diseño electrónico para circuitos integrados, de Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3 , un estudio del campo de EDA. El resumen anterior se obtuvo, con autorización, del Volumen I, Capítulo 16, Simulación digital, de John Sanguinetti.