¿Cuál es el efecto de esta declaración retrasada en el siguiente proceso?

Hola chicos, en el siguiente proceso, ¿cómo se debe interpretar la asignación retrasada?

clk_process : process
begin
        clk <= '0','1' after 5 ns;
        wait for 10 ns;
end process;

¿Se interpreta como...

clk se establece en '0' durante 5 ns, luego cambia a '1' y después de 10 ns se establece nuevamente en '0'. o es simplemente '0' para 5 ns y '1' para 5 ns?

Estoy un poco confundido...

Puedes acortarlo a clk <= not clk after 5 ns;:).
tienes razón xdd

Respuestas (1)

El proceso no tiene una lista de confidencialidad y una declaración de espera. Por lo tanto, se ejecutará repetidamente. Se pueden observar las siguientes etapas:

  • Tiempo = 0; establecido clken '0', con una asignación retrasada '1'después de 5 ns.
  • Iniciar 10 ns de espera.
  • Tiempo = 5 ns. realizar una asignación retrasada a '1'.
  • Tiempo = 10 ns, la declaración de espera se ha completado.
  • Volver al inicio del proceso

El resultado final es un reloj, que comienza en '0', con un período de 10 ns.

¿Entonces es (0,0 ns), (1, 5 ns), (0, 10 ns), (1, 15 ns), ... y así sucesivamente?
Un "sí" de 15 caracteres