Menu
Coddy logo textTech

Timescale Directive

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

A diretiva timescale define a unidade de tempo e a precisão de tempo da simulação. Ela informa ao simulador como interpretar valores de atraso, como #10.

Em lições anteriores, usamos atrasos como #10 sem especificar o que significa "10". São 10 nanoseconds? 10 picossegundos? A diretiva timescale responde a essa pergunta.

Sintaxe:

`timescale time_unit / time_precision
ParteSignificadoExemplo
time_unitA unidade básica para atrasos1ns
time_precisionO nível de precisão da simulação1ps

A crase ` antes de timescale significa que se trata de uma diretiva do compilador.

Exemplo

`timescale 1ns / 1ps
  • time_unit = 1ns#10 significa 10 nanossegundos
  • time_precision = 1ps → A simulação arredonda para o picosegundo mais próximo

Valores Comuns de Timescale

Time UnitPrecisãoCaso de uso
1ns / 1nsNanossegundoSimulações simples
1ns / 1psPicosegundoMais preciso
1ps / 1psPicosegundoProjetos de alta velocidade
1us / 1nsSimulações lentas

Como Isso Afeta os Atrasos

`timescale 1ns / 1ps

initial begin
  #10 a = 1;   // Espera 10 nanossegundos
end

Sem timescale, alguns simuladores assumem um valor padrão (geralmente 1ns). É melhor sempre especificá-lo.

Regras importantes

RegraExplicação
Deve estar fora dos módulosColocado antes de qualquer definição de módulo
Símbolo de crase`timescale, não 'timescale 
Unidade de tempo ≥ precisão de tempo1ns / 1ps está correto, 1ps / 1ns não está
Atrasos gerais, atrasos de portas, atrasos de atribuição
challenge icon

Desafio

O que fazer:

Adicione a diretiva timescale ausente para fazer com que os atrasos representem 10ns, 20ns e 30ns.

Experimente você mesmo

// TODO: Adicionar diretiva timescale (1ns / 1ps)

module timescale_challenge;
  
  initial begin
    $display("Time %0t", $time);
    #10 $display("Time %0t (10ns = 10000ps)", $time);
    #10 $display("Time %0t (20ns = 20000ps)", $time);
    #10 $display("Time %0t (30ns = 30000ps)", $time);
    $finish;
  end
endmodule
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Verilog online