Gate Delays
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 68/90。
前のレッスンでは、#10 a = b;のように使用する一般的な遅延について学びました。これらは文を実行する前に待機します。
このレッスンでは、gate delaysについて扱います。これは、and、or、notのような組み込みゲートプリミティブに固有のものです。gate delayは、inputが変化した後、ハードウェアゲートがoutputを生成するまでにかかる時間をモデル化します。
実際のハードウェアでは、gate は瞬時には応答しません。わずかな遅延があります。組み込みの gate プリミティブを使用すると、gate の伝播時間をシミュレートするために遅延を追加できます。output は、指定した遅延の後にのみ変化します。
一般的な遅延とgate 遅延の違い
| 一般的な遅延 | gate 遅延 | |
|---|---|---|
| 構文 | #10 a = b; | and #5 (out, a, b); |
| 位置 | 文の前にある# | gateプリミティブ内の# |
| 目的 | 実行前に待機する | gateの伝搬時間をモデル化する |
構文:
gate_type #(delay) (output, input1, input2, ...);#(delay) は、gate が応答するまでにかかる time の単位数を指定します。
簡単な例
and #5 (out, a, b);この AND ゲートは、a または b が変化した後、出力が変化するまでに 5 time units かかります。
複数の入力によるゲート遅延
nand #8 (out, a, b, c, d); // 8時間単位の遅延を持つ4入力NAND重要なルール
| ルール | 説明 |
|---|---|
| delay は gate 名の後に置く | and #5 (out, a, b) |
| delay の値は time 単位 | timescale ディレクティブに基づく |
| すべての input が output に影響する | いずれかの input の変更によって delay が発生する |
| 合成できない | gate の delay はシミュレーション専用 |
チャレンジ
このモジュールに不足しているゲート遅延を追加してください。各ゲートには異なる遅延を使用します。
実行すること:
- AND gate: 5 time unit delay
- OR gate: 3 time unit delay
- NOT gate: 2 time unit delay
自分で試してみよう
module gate_delay_challenge;
reg a, b;
wire and_out, or_out, not_out;
// TODO: 5時間単位の遅延を持つANDゲートを追加(入力 a, b)
// TODO: 3時間単位の遅延を持つORゲートを追加(入力 a, b)
// TODO: 2時間単位の遅延を持つNOTゲートを追加(入力 a)
initial begin
$monitor("Time %0t: a=%b, b=%b | and=%b, or=%b, not=%b",
$time, a, b, and_out, or_out, not_out);
a = 1; b = 1;
#10 $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オンラインコンパイラ