以下是一个米利型状机
module fsm
(input clk,acc,brake,reset,
output [1:0] speed );
reg [1:0] state;
reg [1:0] next_state;
localparam STOP=2'b00;
localparam LOW=2'b01;
localparam MEDIUM=2'b10;
localparam HIGH =2'b11;
//状态转换
always@(posedge clk or posedeg reset)
if(reset) state=STOP;
elsestate=next_state;
//次态计算
always@(*)
case(state)
STOP:
if (acc && !brake) next_state=LOW;
else next_state=STOP;
LOW:
if (brake) next_state=STOP;
else if (acc) next_state=MEDIUM;
else next_state=LOW;
MEDIUM:
if (brake) next_state=LOW;
else if (acc) next_state=HIGH;
else next_state=MEDIUM;
HIGH:
if (brake) next_state=MEDIUM;
else next_state=HIGH;
endcase
//输出逻辑
assign speed=state;
endmodule
选项:
A:正确;
B:错误
发布时间:2024-04-21 21:06:49