Menu
Coddy logo textTech

Dyrektywa timescale

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 70 z 90.

Dyrektywa timescale ustawia jednostkę czasu i precyzję czasu na potrzeby symulacji. Informuje symulator, jak interpretować wartości opóźnienia, takie jak #10.

W poprzednich lekcjach używaliśmy opóźnień, takich jak #10, bez określania, co oznacza „10”. Czy to 10 nanosekund? 10 pikosekund? Dyrektywa timescale odpowiada na to pytanie.

Składnia:

`timescale time_unit / time_precision
CzęśćZnaczeniePrzykład
time_unitPodstawowa jednostka opóźnień1ns
time_precisionPrecyzja symulacji1ps

Odwrócony apostrof ` przed timescale oznacza, że jest to dyrektywa kompilatora.

Przykład

`timescale 1ns / 1ps
  • time_unit = 1ns → #10 oznacza 10 nanosekund
  • time_precision = 1ps → Symulacja zaokrągla do najbliższej pikosekundy

Typowe wartości skali czasu

Jednostka czasuPrecyzjaZastosowanie
1ns / 1nsNanosekundaProste symulacje
1ns / 1psPikosekundaWiększa precyzja
1ps / 1psPikosekundaProjekty o dużej szybkości
1us / 1nsMikrosekundaWolne symulacje

Jak wpływa na opóźnienia

`timescale 1ns / 1ps

initial begin
  #10 a = 1;   // Czeka 10 nanosekund
end

Bez timescale niektóre symulatory zakładają domyślną wartość (często 1 ns). Najlepiej zawsze ją określać.

Ważne zasady

ZasadaWyjaśnienie
Musi znajdować się poza modułamiUmieszczona przed definicją dowolnego modułu
Symbol backtick`timescale, a nie 'timescale 
Jednostka czasu ≥ precyzja czasu1ns / 1ps jest poprawne, 1ps / 1ns nie
Wpływa na wszystkie opóźnienia w plikuOpóźnienia ogólne, opóźnienia bramek, opóźnienia przypisań
challenge icon

Wyzwanie

Co zrobić:

Dodaj brakującą dyrektywę timescale, aby opóźnienia odpowiadały 10ns, 20ns i 30ns.

Spróbuj swoich sił

// TODO: Dodaj dyrektywę 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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online