//有限状态机分割设计,其实质就是一个状态机分割成多个状态机,或者说多个
//状态机的协同设计来实现一个较为复杂的状态跳转设计,例如说玩游戏的一个
//状态跳转,玩家 A 操作的时候是一种状态,玩家 B 操作的时候又是另外的一
//种状态。
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2018/11/02 10:14:11
// Design Name:
// Module Name: FSM_div
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module FSM_div(
clk, X, rst, Z,state1,state2
);
input clk, X, rst;
output Z;
parameter S0 = 2'b00, S1= 2'b01,
S2 = 2'b10,SA = 2'b11, S3 = 2'b00, S4 = 2'b01,
S5 = 2'b10,SB = 2'b11;
output reg [1:0] state1,state2;
reg [1:0] next_state1,next_state2;
always @( posedge clk )begin
if(rst) begin
state1 <= S0;state2<=SB;end
else begin
state1 <= next_state1;
state2 <= next_state2;end
end
always @(state1 or X) begin
case(state1)
S0:begin if(X) next_state1<=S1;
else next_state1<=S0;end
S1:begin if(X) next_state1<=S1;
else next_state1<=S2;end
S2:begin if(X) next_state1<=S1;
else next_state1<=SA;end
SA:begin if(X)
begin
if(state2==S4 || state2==S5)
next_state1<=S1;
else next_state1<=SA;
end
else if(state2==S3)
next_state1<=S0;
else next_state1<=SA;
end
endcase
end
always @(state1 or state2 or X) begin
case(state2)
S3:begin if(X) next_state2<=S4;
else next_state2<=SB;end
S4:begin if(X) next_state2<=SB;
else next_state2<=S5;end
S5:begin if(X) next_state2<=SB;
else next_state2<=S3;end
SB:begin if(!X)
begin
if(state1==S2)
next_state2<=S3;
else next_state2<=SB;end
else next_state2<=SB;
end
endcase
end
assign Z = (state2 == S5)?1:0;
endmodule
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
有限状态机
+关注
关注
0文章
52浏览量
10380 -
状态机
+关注
关注
2文章
492浏览量
27690 -
fsm
+关注
关注
0文章
35浏览量
12847 -
CLK
+关注
关注
0文章
127浏览量
17247
发布评论请先 登录
相关推荐
什么是有限状态机呢
在嵌入式,机器人领域,由于多的复杂逻辑状态,我们编写程序的时候不得不考虑很多种情况,容易造成功能间的冲突。有限状态机(finite-state machine),简称状态机,是一种表示有限
发表于 12-20 06:51
有限状态机的建模与优化设计
本文提出一种优秀 、高效的 Verilog HDL 描述方式来进行有限状态机设计 介绍了 有限状态机的建模原则 并通过一个可综合的实例 验证了 该方法设计的有限状态机在面积和功耗上的优势。
发表于 03-22 15:19
•1次下载
VHDL有限状态机设计-ST
EDA的有限状态机,广义而言是指只要涉及触发器的电路,无论电路大小都可以归结为状态机。有限状态机设计在学习EDA时是很重要的一章。
发表于 06-08 16:46
•3次下载
初学者对有限状态机(FSM)的设计的认识
有限状态机(FSM)是一种常见的电路,由时序电路和组合电路组成。设计有限状态机的第一步是确定采用Moore状态机还是采用Mealy状态机。
发表于 02-11 13:51
•4390次阅读
![初学者对<b class='flag-5'>有限状态机</b>(FSM)的设计的认识](https://file1.elecfans.com//web2/M00/A6/AC/wKgZomUMP4mAKw7AAAAL1QCR0t4720.jpg)
如何使用FPGA实现序列检测有限状态机
有限状态机是绝大部分控制电路的核心结构, 是表示有限个状态以及在这些状态之间转移和动作等行为的数学模型。有限状态机是指输出取决于过去输入部分
发表于 11-04 17:17
•12次下载
![如何使用FPGA实现序列检测<b class='flag-5'>有限状态机</b>](https://file.elecfans.com/web1/M00/CE/97/pIYBAF-ic4OAP6p8AAEW9P3Y8qI608.png)
基于事件驱动的有限状态机介绍
一、介绍 EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单
基于事件驱动的有限状态机介绍
EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。
一个基于事件驱动的有限状态机
EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单!EFSM的使用者只需要关心:
![一个基于事件驱动的<b class='flag-5'>有限状态机</b>](https://file1.elecfans.com/web2/M00/A2/20/wKgaomTum7uAPnl3AAAriIBKoxw948.png)
评论