Clock Generation
جزء من قسم الأساسيات في رحلة Verilog على Coddy. الدرس 71 من 90.
الساعة هي إشارة تتبدّل باستمرار بين 0 و1 على فترات منتظمة. وتُعدّ الساعات ضرورية للمنطق التسلسلي، مثل القلابات والعدادات.
لماذا نولّد Clock
في بيئات الاختبار، تحتاج إلى Clock لاختبار الدوائر التتابعية. يتحكم Clock في سلوك القلابات والسجلات وآلات الحالات.
طرق توليد Clock
| الطريقة | الوصف |
|---|---|
always مع تأخير # | الطريقة الأكثر شيوعًا |
حلقة forever | طريقة بديلة |
حلقة repeat | لعدد ثابت من cycles |
الطريقة 1: الكتلة always مع تأخير
reg clk;
initial begin
clk = 0;
end
always #5 clk = ~clk;clk = 0عند الزمن 0- كل 5 من وحدات الزمن، تتبدّل
clk
- Period = 10 من وحدات time
- التردد = 1/10 = 0.1 لكل وحدة time
الطريقة 2: حلقة forever
reg clk;
initial begin
clk = 0;
forever begin
#5 clk = ~clk;
end
endالنتيجة نفسها لطريقة always.
الطريقة 3: التكرار لعدد ثابت من الدورات
reg clk;
initial begin
clk = 0;
repeat (10) begin
#5 clk = ~clk;
end
endينشئ بالضبط 10 حواف للساعة (5 دورات كاملة)، ثم يتوقف.
التحدي
Add the missing code to generate a clock that toggles every 4 time units (period = 8 time units).
What to do:
- Initialize
clkto 0 at time 0 using aninitialblock - Use an
alwaysblock with a delay to toggleclkevery 4 time units
جرّب بنفسك
module clock_challenge;
reg clk;
// TODO: الخطوة 1 - أضف كتلة initial لتعيين clk = 0
// TODO: الخطوة 2 - أضف كتلة always لتبديل clk كل 4 وحدات زمنية
initial begin
$monitor("Time %0t: clk = %b", $time, clk);
#20;
$display("Clock generated for 20 time units");
$finish;
end
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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 Logicتدرّب بنفسك: مترجم Verilog عبر الإنترنت