• 已绑定课时
  • 工程师可点评
  • 教务优秀

【作业要求】 1、简述状态机的含义,有限状态机的简称是什么? 状态寄存器+组合逻辑电路 FSM 2、简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码主要有哪三种?FSM的三段式描述中,三段分别描述什么? ①米利型②摩尔型 ①米利型FSM的输出由当前状态和输入信号共同决定,响应速度更快 ②摩尔型FSM的输出仅由当前状态决定,与输入无关,输出更稳定 ①二进制编码②格雷码③独热码 ①第一段…

杜叙颉
93 0
教务优秀
教务优秀
教务评价

教务优秀

3342599708 · 2026-10-05

教务已盖章,暂无文字评语。

1、简述状态机的含义,有限状态机的简称是什么?

状态寄存器+组合逻辑电路

FSM

2、简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码主要有哪三种?FSM的三段式描述中,三段分别描述什么?

①米利型②摩尔型

①米利型FSM的输出由当前状态和输入信号共同决定,响应速度更快 ②摩尔型FSM的输出仅由当前状态决定,与输入无关,输出更稳定

①二进制编码②格雷码③独热码

①第一段:描述总状态的跳转(现态和次态) ②第二段:描述各个状态之间的跳转(现态、次态、条件) ③第三段:描述各个状态下的动作

3、状态机四要素主要包含 ____现态____ 、___条件____ 、_____动作___ 、___次态_____ 。

代码下载

module ZTJ_season(
input sysclk,
input rst_n,
output reg XX
);
//声明状态(独热码)
parameter IDLE=0000_1,//空闲态(不工作)
s1 =0001_0,//次态,春
s2 =0010_0,//夏
s3 =0100_0,//秋
s4 =1000_0;//冬
//声明现态次态
reg [4:0] cur_state,next_state;//现态次态的位宽根据选用的编码方式来
reg [3:0] month;
//三段式状态机第一段---->描述总状态(现态次态)的跳转----时序逻辑
always@(posedge sysclk)//同步复位(异步复位也可以)
if(!rst_n)//如果复位的时候
cur_state<=IDLE;//现态为初始状态IDLE
else
cur_state<=next_state;//
//三段式状态机第二段---->描述各个状态之间的跳转(现态,次态,条件),
//组合逻辑,(*)下出现的所有敏感信号,如果不用(*)代替去写(一个一个),(现态,次态,条件)都要写满,丢失一个会出现锁存器,(电平(高低)触发,阻塞赋值)
always@(*)
if(!rst_n)
//给现态复值,多驱动(现象)
next_state=IDLE;//次态赋值IDLE
else
case(cur_state)//判断现态
IDLE:next_state=s1;//现态为IDLE
s1:begin
if(month==5)//如果月份为5
next_state=s2;//次态跳转到s2状态
else
next_state=s1;//次态保持s1状态
end
s2:begin
if(month==8)//如果月份为8
next_state=s3;//次态跳转到s3状态
else
next_state=s2;//次态保持s2状态
end
s3:begin
if(month==11)//如果月份为5
next_state=s4;//次态跳转到s4状态
else
next_state=s3;//次态保持s3状态
end
s4:begin
if(month==2)//如果月份为5
next_state=s1;//次态跳转到s1状态
else
next_state=s4;//次态保持s4状态
end
default:next_state=IDLE;// 未定义条件时强制跳转至IDLE
endcase
//三段式状态机第三段---->描述各个状态下的动作(时序逻辑)
always@(posedge sysclk)
if(!rst_n)//如果复位
XX<=0;//XX赋值无(0)
else
case(cur_state)
IDLE:XX<=0;//初始值为0
s1:XX<=1;//现象:开花
s2:XX<=2;//现象:禅明
s3:XX<=3;//现象:落叶
s4:XX<=1;//现象:下雪
default:XX<=0;//未定义条件时为0;
endcase
endmodule

学习上下文

产出状态

工程师已阅93 位工程师
教务教务优秀