// ===【火星無人車狀態機模組】=== module mars_rover_fsm ( input wire clk, // 時脈信號 input wire reset, // 重置信號 input wire wake_signal, // 遙控「醒來」信號(從太空人手錶發來) output reg [4:0] state // 火星無人車狀態 ); // ===【狀態定義】=== parameter S0 = 5'b00001; // 停止 parameter S1 = 5'b00010; // 啟動熱機 parameter S2 = 5'b00100; // 前進 parameter S3 = 5'b01000; // 右轉 parameter S4 = 5'b10000; // 左轉 always @(posedge clk or posedge reset) begin if (reset) begin state <= S0; // 初始狀態為停止 end else if (wake_signal) begin state <= S1; // 收到「醒來」信號後,進入啟動熱機狀態 end else begin // 如果已經啟動,執行其他操作 case (state) S0: state <= S0; // 停止狀態 S1: state <= S2; // 熱機後前進 S2: state <= S2; // 繼續前進 S3: state <= S3; // 右轉 S4: state <= S4; // 左轉 default: state <= S0; endcase end end endmodule
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up