制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 1/ 38
第五讲状态机设计及其指导原则
1 状态机是一种设计思想方法
2 状态机结构
3 状态机设计的其他技巧
4 状态机设计步骤
制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 2/ 38
状态机是一种设计思想方法
第五讲状态机设计及其指导原则 3/ 38
制作人:梁瑞宇 单位:河海大学
原语描述
module noconditional (clk,nrst,state,event);
input clk,nrst
input state;
output event;
reg event;
reg [2:0] CS; //CurrentState
reg [2:0] NS; //NextState
parameter [2:0] //one hot with zero idle
= 3’b000,
idle
= 3'b001,
dorm
diningroom = 3'b010,
classroom = 3'b100;
制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 4/ 38
//sequential state transition
always @ (posedge clk or negedge nrst)
if (!nrst)
CS <= idle;
else
CS <= NS;
//combinational condition judgment
always @ (CS)
begin
case (CS)
idle_task;NS = dorm;
idle:
dorm: dorm_task;NS = diningroom;
diningroom:diningroom_task;NS = classroom;
classroom:
default:
classroom_task;NS = dorm;
idle_task;NS = dorm;
endcase
end
endmodule
制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 5/ 38
制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 6/ 38
状态机的本质--对具有逻辑顺序或
时序规律事件的一种描述方法
状态机的两个应用思路:
- 从状态变量入手
- 明确电路的输出的关系
制作人:梁瑞宇 单位:河海大学
总结:
第五讲状态机设计及其指导原则 7/ 38
对于逻辑电路而言,小到一个简单的时
序逻辑,大到复杂的微处理器,都适合用状
态机方法进行描述。不要仅仅局限于时序逻
辑,发现电路的内在规律,确认电路的“状
态变量”,大胆使用状态机描述电路模型。
由于状态机不仅仅是一种电路描述工具,它
更是一种思想方法,而且状态机的HDL语言
表达方式比较规范,有章可循,所以很多有
经验的设计者习惯用状态机思想进行逻辑设
计,对各种复杂设计都套用状态机的设计理
念,从而提高设计的效率和稳定性。
制作人:梁瑞宇 单位:河海大学
第五讲状态机设计及其指导原则 8/ 38
状态机结构
摩尔(MOORE)状态机
- 输出只是当前状态值的函数,并且仅在时钟边沿到
来时才发生变化
米立(MEALY)状态机
- 输出则是当前状态值、当前输出值和当前输入值的
函数
注:这两种状态机都是同步的时序电路