FSM(Finite State Machine:有限状態機械)は、入力に応じて状態を遷移しながら、出力を生成する制御回路のモデルです。
特に、順序回路の設計やプロトコル処理、制御信号の生成など、あらゆるデジタル回路に応用されています。
FSMは主に以下の要素で構成されます:
状態
(State):回路の内部状態(記憶)入力
(Input):外部から与えられる信号出力
(Output):状態と入力に基づく制御信号状態遷移
(Transition):入力に応じて状態が変化FSMは、出力の定義方法により大きく2つに分類されます。
traffic light controller
, simple sequence generator
always @(posedge clk) begin
case (state)
S0: begin
output_signal <= 1'b0;
state <= S1;
end
S1: begin
output_signal <= 1'b1;
state <= S0;
end
endcase
end
serial data detector
, protocol handshake
always @(posedge clk) begin
case (state)
S0: begin
if (input_bit) begin
output_signal <= 1'b1;
state <= S1;
end else begin
output_signal <= 1'b0;
state <= S0;
end
end
endcase
end
状態の最小化
が重要状態図
や状態遷移表
により可視化順序回路
の基礎として、記憶・遷移・出力の構造的理解が得られるFSM分類(Moore/Mealy)
の使い分けを通して、設計上のトレードオフを学べる次は fsm_state_transition.md
:状態遷移図と状態表 に進みます。