Gate Delays
Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 68번째.
이전 수업에서는 #10 a = b;와 같이 사용되는 일반적인 지연을 다루었습니다. 이는 문을 실행하기 전에 기다립니다.
이 레슨에서는 gate delays를 다룹니다. 이는 and, or, not과 같은 내장 gate primitive에 해당합니다. gate delay는 입력이 변경된 후 하드웨어 gate가 output을 생성하는 데 걸리는 시간을 모델링합니다.
실제 하드웨어에서 gate는 즉시 반응하지 않습니다. 짧은 지연이 있습니다. 기본 제공 gate 프리미티브를 사용할 때 delay를 추가하여 gate의 전파 시간을 시뮬레이션할 수 있습니다. output은 지정된 delay 후에만 변경됩니다.
일반 delay와 게이트 delay의 차이
| 일반 Delay | 게이트 Delay | |
|---|---|---|
| 구문 | #10 a = b; | and #5 (out, a, b); |
| 위치 | 문 앞의 # | 게이트 프리미티브 내부의 # |
| 목적 | 실행하기 전에 대기 | 게이트 전파 시간 모델링 |
구문:
gate_type #(delay) (output, input1, input2, ...);#(delay)는 gate가 응답하는 데 걸리는 시간 단위 수를 지정합니다.
간단한 예제
and #5 (out, a, b);이 AND 게이트는 a 또는 b가 변경된 후 출력이 변경되기까지 5개의 시간 단위가 걸립니다.
다중 input이 있는 게이트 delay
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는 시뮬레이션 전용입니다 |
챌린지
Add 누락된 gate 지연을 이 module에 추가하세요. 각 gate에 서로 다른 지연을 사용하세요.
수행할 작업:
- AND gate: 5 time unit 지연
- OR gate: 3 time unit 지연
- NOT gate: 2 time unit 지연
직접 해보기
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 컴파일러