Menu
Coddy logo textTech

Recap - Timing Control

Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 72 de 90.

challenge icon

Desafio

Este desafio testa sua compreensão sobre atrasos, atrasos de portas, atrasos de assignment, timescale e geração de clock.

O que fazer:

  1. Add uma diretiva timescale com 1ns / 1ps
  2. Generate um clock que toggles every 5 time units
  3. Add uma porta AND com um atraso de gate de 3 time units
  4. Use um atraso de assignment para atribuir a a b after 2 time units (Read a imediatamente)

Experimente você mesmo

// TODO: Adicione a diretiva timescale (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: Gere um clock que alterna a cada 5 unidades de tempo
  
  
  // TODO: Adicione uma porta AND com atraso de 3 unidades de tempo (entradas a, b, saída out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: Use atraso de atribuição para atribuir a a b após 2 unidades de tempo
    // Leia a agora, atribua a b após 2 unidades de tempo
    
    
    #20;
    $finish;
  end
endmodule

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Verilog online