Saat Üretimi
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 71 / 90.
Saat sinyali, düzenli aralıklarla sürekli olarak 0 ile 1 arasında geçiş yapan bir sinyaldir. Saat sinyalleri, flip-floplar ve sayaçlar gibi ardışıl mantık devreleri için gereklidir.
Neden Saat Sinyali Üretilir
Test tezgâhlarında, sıralı devreleri test etmek için bir saat sinyaline ihtiyaç duyarsın. Saat sinyali, flip-flop'ların, yazmaçların ve durum makinelerinin davranışını belirler.
Saat Üretme Yöntemleri
| Yöntem | Açıklama |
|---|---|
always ile # gecikmesi | En yaygın yöntem |
forever döngüsü | Alternatif yöntem |
repeat döngüsü | Sabit sayıda döngü için |
Yöntem 1: Gecikmeli Sürekli Blok
reg clk;
initial begin
clk = 0;
end
always #5 clk = ~clk;clk = 0zaman 0'da- Her 5 zaman biriminde bir
clkdeğişir
- Periyot = 10 zaman birimi
- Frekans = 1/10 = zaman birimi başına 0.1
Yöntem 2: Sonsuz Döngü
reg clk;
initial begin
clk = 0;
forever begin
#5 clk = ~clk;
end
endalways yöntemiyle aynı sonucu verir.
Yöntem 3: Sabit Döngüler Boyunca Tekrarla
reg clk;
initial begin
clk = 0;
repeat (10) begin
#5 clk = ~clk;
end
endTam olarak 10 saat darbesi (5 tam döngü) üretir, ardından durur.
Görev
Her 4 zaman biriminde bir durum değiştiren (periyot = 8 zaman birimi) bir saat oluşturmak için eksik kodu ekle.
Yapman gerekenler:
- Bir
initialbloğu kullanarakclkdeğerini 0. zamanda 0 olarak başlat - Her 4 zaman biriminde bir
clkdeğerini değiştirmek için gecikmeli biralwaysbloğu kullan
Kendin dene
module clock_challenge;
reg clk;
// TODO: Adım 1 - clk = 0 olacak şekilde bir initial bloğu ekleyin
// TODO: Adım 2 - clk değerini her 4 zaman biriminde bir değiştirmek için bir always bloğu ekleyin
initial begin
$monitor("Time %0t: clk = %b", $time, clk);
#20;
$display("Clock generated for 20 time units");
$finish;
end
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı13Zamanlama ve Gecikmeler
Gecikmeler NedirKapı GecikmeleriAtama GecikmeleriTimescale YönergesiSaat ÜretimiTekrar - Zamanlama Denetimi2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi