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 diferentes 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 puede utilizarse como parte del proceso de verificación en el diseño de hardware. [ 3 ]
Las simulaciones tienen la ventaja de ofrecer al usuario una apariencia y una sensación familiares, ya que se construyen con el mismo lenguaje y los mismos símbolos que se utilizan en el diseño. Al permitir que el usuario interactúe directamente con el diseño, la simulación se convierte en una forma natural para que el diseñador obtenga retroalimentación sobre su trabajo.
Duración de la simulación
El esfuerzo necesario para depurar y verificar el diseño es proporcional a su nivel de madurez. Es decir, en las primeras etapas del desarrollo, los errores y el comportamiento incorrecto suelen detectarse rápidamente. A medida que el diseño madura, la simulación requiere más tiempo y recursos, y la detección de errores se prolonga progresivamente. Esto resulta especialmente problemático al simular componentes para sistemas modernos; cada componente que cambia de estado en un solo ciclo de reloj durante la simulación requiere varios ciclos para su simulación completa.
Una solución sencilla a este problema podría ser emular el circuito en una matriz de puertas programables en campo ( FPGA). También se puede explorar la verificación formal como alternativa a la simulación, aunque una demostración formal no siempre es posible ni conveniente.
Una forma prometedora de acelerar la simulación lógica es mediante el uso de cálculos distribuidos y paralelos . [ 4 ]
Para ayudar a medir la exhaustividad de una simulación, existen herramientas para evaluar la cobertura de 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 frente a simulación de ciclos
La simulación de eventos permite que el diseño contenga información de temporización simple: el retardo necesario para que una señal viaje de un lugar a otro. Durante la simulación, los cambios de señal se registran en forma de eventos. Un cambio en un momento determinado desencadena un evento tras un cierto retardo. Los eventos se ordenan según el momento en que ocurrirán, y cuando se han procesado todos los eventos para un momento específico, el tiempo simulado avanza hasta el momento del siguiente evento programado. La velocidad de ejecución de una simulación de eventos depende del número de eventos que se deben procesar (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 las señales, no sustituye al análisis de sincronización estática .
En la simulación de ciclos, no es posible especificar retardos. Se utiliza un modelo con precisión de ciclo, y cada puerta lógica se evalúa en cada ciclo. Por lo tanto, la simulación de ciclos se ejecuta a una velocidad constante, independientemente de la actividad del modelo. Las implementaciones optimizadas pueden aprovechar la baja actividad del modelo para acelerar la simulación omitiendo la evaluación de las puertas lógicas cuyas entradas no han cambiado. En comparación con la simulación de eventos, la simulación de ciclos tiende a ser más rápida, a escalar mejor y a ser más adecuada para la aceleración/emulación por hardware.
Sin embargo, las tendencias en el diseño de chips indican que la simulación de eventos está ganando en rendimiento relativo debido a la reducción del factor de actividad en el circuito (gracias a técnicas como el control de reloj y el control de potencia , que se utilizan cada vez más para reducir la disipación de potencia). En estos casos, dado que la simulación de eventos solo simula los eventos necesarios, el rendimiento puede dejar de ser una desventaja frente a la simulación de ciclos. La simulación de eventos también ofrece la ventaja de una mayor flexibilidad, ya que permite manejar 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 cuentan con una capacidad basada en eventos, incluso si se basan principalmente en técnicas basadas en ciclos. [ 8 ]
Véase también
Referencias
- ↑ Laung-Terng Wang; Yao-Wen Chang; Kwang-Ting (Tim) Cheng (11 de marzo de 2009). Automatización del diseño electrónico: síntesis, verificación y prueba . Morgan Kaufmann. ISBN 978-0-08-092200-3.
- ↑ V. Litovski; Mark Zwolinski (31 de diciembre de 1996). Simulación y optimización de circuitos VLSI . Springer Science & Business Media. ISBN 978-0-412-63860-2.
- ↑ Bombieri, Nicola; Fummi, Franco; Pravadelli, Graziano (mayo de 2006). Diseño y simulación de hardware para verificación . Lecture Notes in Computer Science. págs. 1–29 .
- ↑ Sistema de software para simulación lógica distribuida basada en eventos . Ladyzhensky YV, Popoff YV. Actas del Taller de Diseño y Pruebas Este-Oeste de la IEEE (EWDTW'05). IEEE EWDTW, 2005, págs. 119-122. ISBN 966-659-113-8
- ↑ Wang, Tsu-Hua y Tan, Chong Guan (1995). Cobertura práctica de código para Verilog . Conferencia Internacional IEEE de Verilog HDL de 1995. IEEE. págs. 99–104 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ 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}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ "Entorno de modelado y simulación de redes" (PDF) . Centro de Información Técnica de Defensa . Consultado el 1 de enero de 2023 .
- ↑ Manual de automatización del diseño electrónico para circuitos integrados, por Lavagno, Martin y Scheffer, ISBN 0-8493-3096-3, un estudio del campo de EDA. El resumen anterior se extrajo, con permiso, del Volumen I, Capítulo 16, Simulación Digital, de John Sanguinetti.
- Verificación de circuitos electrónicos
- Diseño lógico
- Automatización del diseño electrónico