Menu
Coddy logo textTech

Timescale Yönergesi

Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 70 / 90.

timescale yönergesi simülasyon için zaman birimini ve zaman hassasiyetini ayarlar. Simülatöre #10 gibi gecikme değerlerini nasıl yorumlayacağını bildirir.

Önceki derslerde, “10”un ne anlama geldiğini belirtmeden #10 gibi gecikmeler kullandık. Bu 10 nanosaniye mi? 10 pikosaniye mi? timescale yönergesi bu soruyu yanıtlar.

Sözdizimi:

`timescale time_unit / time_precision
BölümAnlamıÖrnek
time_unitGecikmeler için temel birim1ns
time_precisionSimülasyonun ne kadar hassas olması gerektiği1ps

timescale öncesindeki ters tırnak `, bunun bir derleyici yönergesi olduğu anlamına gelir.

Örnek

`timescale 1ns / 1ps
  • time_unit = 1ns → #10 10 nanosaniye anlamına gelir
  • time_precision = 1ps → Simülasyon en yakın pikosaniyeye yuvarlar

Yaygın Zaman Ölçeği Değerleri

Zaman BirimiHassasiyetKullanım Alanı
1ns / 1nsNanosaniyeBasit simülasyonlar
1ns / 1psPikosaniyeDaha hassas
1ps / 1psPikosaniyeYüksek hızlı tasarımlar
1us / 1nsMikrosaniyeYavaş simülasyonlar

Gecikmeleri Nasıl Etkiler?

`timescale 1ns / 1ps

initial begin
  #10 a = 1;   // 10 nanosaniye bekler
end

timescale olmadan bazı simülatörler varsayılan bir değer (çoğunlukla 1ns) varsayar. Bunu her zaman belirtmek en iyisidir.

Önemli Kurallar

KuralAçıklama
Modüllerin dışında olmalıdırHerhangi bir modül tanımından önce yerleştirilmelidir
Backtick sembolü`timescale, 'timescale değil 
Zaman birimi ≥ zaman kesinliği1ns / 1ps uygundur, 1ps / 1ns uygun değildir
Dosyadaki tüm gecikmeleri etkilerGenel gecikmeler, kapı gecikmeleri, atama gecikmeleri
challenge icon

Görev

Yapılacaklar:

Gecikmelerin 10ns, 20ns ve 30ns değerlerini temsil etmesi için eksik timescale yönergesini ekle.

Kendin dene

// TODO: timescale direktifi ekle (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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi