Saat Üretimi
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 71 / 90.
Saat, düzenli aralıklarla sürekli olarak 0 ile 1 arasında geçiş yapan bir sinyaldir. Saatler, flip-flop'lar ve sayaçlar gibi ardışıl mantık için gereklidir.
Neden Saat Sinyali Üretilir
Testbench'lerde sıralı devreleri test etmek için bir saat sinyaline ihtiyacın vardır. Saat sinyali, flip-flop'ların, yazmaçların ve durum makinelerinin davranışını yönlendirir.
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 çevrim için |
Yöntem 1: Gecikmeli Always Bloğu
reg clk;
initial begin
clk = 0;
end
always #5 clk = ~clk;clk = 00. zamanda- Her 5 zaman biriminde
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ı sonuç.
Yöntem 3: Sabit Döngü Sayısı Kadar Tekrarla
reg clk;
initial begin
clk = 0;
repeat (10) begin
#5 clk = ~clk;
end
endTam olarak 10 saat kenarı (5 tam döngü) üretir ve ardından durur.
Görev
Her 4 zaman biriminde bir geçiş yapan (periyot = 8 zaman birimi) bir saat oluşturmak için eksik kodu ekleyin.
Yapılacaklar:
initialbloğunu kullanarakclkdeğerini 0. zamanda 0 olarak başlatın- Her 4 zaman biriminde bir
clkgeçişi yapmak için gecikmeli biralwaysbloğu kullanın
Kendin dene
module clock_challenge;
reg clk;
// TODO: Adım 1 - clk = 0 ayarlamak için initial bloğu ekle
// TODO: Adım 2 - clk'yi her 4 zaman biriminde toggle etmek için always bloğu ekle
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