State Machine Logic
Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 80번째.
챌린지
이 레슨에서는 교통 신호등 컨트롤러에 state 전이 로직을 추가합니다. state machine은 한 state에서 다음 state로 언제 이동할지 결정합니다.
state machine 로직은 교통 신호등이 언제, 어떻게 state를 변경할지 제어합니다.
State Sequence
Green → Yellow → Red → Green → …
여러분의 과제는 state machine 로직을 module에 추가하는 것입니다.
수행할 작업:
always @(posedge clk or posedge reset)블록을 Add합니다- reset 시
state를 Red (2)로 설정합니다 next가 1이면 다음 state로 이동합니다:- state가 Green (0)이면 Yellow로 change합니다
- state가 Yellow (1)이면 Red로 change합니다
- state가 Red (2)이면 Green으로 change합니다
직접 해보기
module traffic_light (
input clk,
input reset,
input next, // 상태를 변경하는 트리거
output reg red,
output reg yellow,
output reg green
);
reg [1:0] state;
// 출력 할당
always @(*) begin
case (state)
0: begin green = 1; yellow = 0; red = 0; end
1: begin green = 0; yellow = 1; red = 0; end
2: begin green = 0; yellow = 0; red = 1; end
default: begin green = 0; yellow = 0; red = 1; end
endcase
end
// TODO: 상태 머신 로직 추가 (타이밍 없이)
// always @(posedge clk or posedge reset) begin
// if (reset) begin
// state <= 2;
// end else if (next) begin
// case (state)
// 0: state <= 1;
// 1: state <= 2;
// 2: state <= 0;
// endcase
// end
// 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 Design5Operators 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 컴파일러