Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

8 votos

Relación entre el delta del ciclo y programación de eventos en verilog de la simulación?

Entiendo que en Verilog/SystemVerilog los estándares son diferentes regiones para la programación de eventos, imitando así el comportamiento simultáneo de hardware. Pero, ¿cómo se relaciona esto con el delta ciclos veo en los simuladores(como ampliando en un punto de tiempo específico para ver las señales de la actualización en los diferentes ciclos)?

Sólo puedo encontrar delta del ciclo de los conceptos definidos en VHDL, simulaciones, no Verilog. ¿Alguien puede explicar estos dos conceptos?

9voto

MegaMind Puntos 116

"Delta ciclos son de un nivel de HDL de concepto que se utiliza para ordenar los eventos que se producen en cero física en el tiempo." sigasi.com

Tomando la definición de Sigasi, lo VHDL llamadas retraso ciclos, Verilog llama a un programador. Cómo VHDL y Verilog determinar el orden de cero eventos de tiempo es muy diferente.

VHDL es un determinado simulador donde las órdenes de cero tiempo de los eventos mediante la actualización de todo (los valores del ciclo anterior) antes de evaluar cualquier cosa en cada paso de tiempo.

Verilog es un indeterminado simulador donde las órdenes de cero eventos de tiempo mediante el uso de prioridad programador con cinco regiones (Nota: SystemVerilog tiene 17 regiones). Cada región se ejecuta en un orden de prioridad. Los eventos dentro de cada región se pueden ejecutar en cualquier orden. Evento puede programar (no ejecutar) nuevos eventos para cualquier región. Cuando una región de finalizar la ejecución de sus eventos, el programador se mueve con la prioridad más alta de la región que tiene los eventos programados. La región final no programar eventos en el ciclo actual, los horarios de los eventos futuros pasos de tiempo. Las regiones son:

  1. La Región activa (antes de cualquier #0):
    • Evaluar y asignar todos los procedimientos de bloqueo(=) tareas (always bloque)
    • Evaluar y asignar todas continua de asignaciones (assign declaraciones)
    • Evaluar no-bloqueo de las asignaciones de
    • Evaluar las entradas y de cambio de salida de todas las primitivas de
    • Evaluar y salida $display y $write llamadas
  2. Inactivo Región :
    • Agregar otros eventos a los que el programador de cada procedimiento de bloque hasta la próxima #0
    • Procedimientos de devolución de llamada programada con PLI rutinas tales como tf_synchronize()(en desuso en IEEE 1364-2005) y vpi_register_cb(cbReadWriteSynch)
  3. NBA Región :
    • Asignar el no-bloqueo(<=) asignaciones
  4. El Monitor de la región
    • Evaluar y escribir $monitor y $strobe llamadas
    • Llame PLI con reason_rosynchronize(en desuso en IEEE 1364-2005)
  5. El Futuro De La Región :
    • Calendario de eventos a suceder #N (donde N>0) en los pasos de tiempo en el futuro

En Verilog, un "delta del ciclo" puede seguir el orden:

Activo⇒Inactivo⇒Activa⇒NBA⇒Activa⇒NBA⇒Inactivo⇒NBA⇒Activa⇒Monitor⇒Futuro
O
Activo⇒Inactivo⇒NBA⇒Activa⇒Monitor⇒Futuro

Puede parecer muy confuso y es posible entrar en un bucle infinito. Es algo que varias VHDL blogs y papel declarar una falla importante en Verilog. En realidad, cuando siguiendo las básicas de estilo de codificación de sólo mediante el bloqueo de las asignaciones de bloques combinacionales y sólo el uso de no-bloqueo de tareas en bloques secuenciales, un típico Verilog RTL simulación del "delta" ciclo de aspecto:

Activo(init & clk)⇒NBA(flop actualización)⇒Activa(peine lógica)⇒Futuro(horario de clk)

La primera región Activa es para la inicialización y actualización del reloj. La mayoría de los diseño de la NBA(actualización), a continuación, Active(evaluar), la ejecución de la misma como VHDL. El resto de las regiones (incluyendo SystemVerilog adicionales de las regiones) existe la intención de no synthesizable comportamiento de modelado, los enlaces externos idiomas (ex. C/C++), y la verificación de los bancos de pruebas.

Voy a añadir que, históricamente, los Inactivos región fue creado el diseño. Fue un fallido intento de determinar lo que el valor de un flop debe ser asignado. La NBA fue creado después y ha sido la recomiendo solución ya. Cualquier diseño que sigue utilizando el Inactivos región (#0 retrasos) está siguiendo una práctica que ha sido obsoleto para aproximadamente 20 años o más.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X