Menu
Coddy logo textTech

Resumen - Control de temporización

Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 72 de 90.

challenge icon

Desafío

Este desafío pone a prueba tu comprensión de los retardos, retardos de compuerta, retardos de asignación, escala de tiempo (timescale) y generación de reloj.

Qué hacer:

  1. Añade una directiva timescale con 1ns / 1ps
  2. Genera un reloj que conmute cada 5 unidades de tiempo
  3. Añade una compuerta AND con un retardo de compuerta de 3 unidades de tiempo
  4. Usa un retardo de asignación para asignar a a b después de 2 unidades de tiempo (lee a inmediatamente)

Pruébalo tú mismo

// TODO: Agregar directiva de escala de tiempo (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: Generar reloj que cambie cada 5 unidades de tiempo
  
  
  // TODO: Agregar compuerta AND con un retraso de 3 unidades de tiempo (entradas a, b, salida out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: Usar retraso de asignación para asignar a a b después de 2 unidades de tiempo
    // Leer a ahora, asignar a b después de 2 unidades de tiempo
    
    
    #20;
    $finish;
  end
endmodule

Todas las lecciones de Fundamentos