**
状态机finite-state machine学习笔记1
**
例子来自于<Verilog数字系统设计教程>第12章,书中的例子错误较多,代码已经经过改写。
状态转移图
1.Gray编码
module fsm(
Clock,
Reset,
A,
K2,
K1,
state
);
input Clock,Reset,A;
output reg K1,K2;
output reg [1:0]state;
parameter Idle = 2'b00,
Start = 2'b01,
Stop = 2'b10,
Clear = 2'b11;
always@(posedge Clock)
if(!Reset)
begin
state <= Idle;
K2 = 0;
K1 = 0;
end
else
case(state)
Idle:if(A)begin
state <= Start;
K1 <= 0;
end
else begin
state <= Idle;
K2 = 0;
K1 = 0;
end
Start:if(!A)begin
state <= Stop;
end
else begin
state <= Start;
end
Stop:if(A)begin
state <=Clear;
K2 <= 1;
end
else begin
state <=Stop;
K2 = 0;
K1 = 0;
end
Clear:if(!A