Clock Generation
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 71 / 90.
Bir Clock, düzenli aralıklarla 0 ve 1 arasında sürekli olarak toggle yapan bir sinyaldir. Clock'lar, flip-flop'lar ve sayaçlar gibi ardışık mantık devreleri için gereklidir.
Neden bir Clock Oluşturulur
Testbench'lerde sıralı devreleri test etmek için bir Clock'a ihtiyacın vardır. Clock, flip-flop'ların, register'ların ve durum makinelerinin davranışını yönlendirir.
Clock Ü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 cycles için |
Yöntem 1: Gecikmeli always bloğu
reg clk;
initial begin
clk = 0;
end
always #5 clk = ~clk;clk = 0zaman 0'da- Her 5 time units'te,
clkdeğişir
- Period = 10 time units
- 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 time units'te geçiş yapan bir saat oluşturmak için eksik kodu ekleyin (period = 8 time units).
Yapılacaklar:
- Zaman 0'da bir
initialbloğu kullanarakclkdeğerini 0 olarak başlatın - Her 4 time units'te
clkdeğerini değiştirmek 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.
Temeller bölümündeki tüm dersler
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design13Timing And Delays
What Are DelaysGate DelaysAssignment DelaysTimescale DirectiveClock GenerationRecap - Timing Control5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicKendi başına pratik yap: Online Verilog derleyicisi