Verilog探究:有限同步状态机的设计

本文深入探讨了有限状态机的基本概念,包括同步和异步状态机的区别,重点介绍了同步状态机。文章详细讲解了Mealy型和Moore型状态机的特性,并通过设计检测连续“1111”的状态机实例,阐述了状态转移图的绘制、Verilog代码编写以及仿真验证的过程,展示了两者输出波形的差异。
摘要由CSDN通过智能技术生成

有限状态机的设计

1、有限状态机的基本概念

有限状态机是时序电路的通用模型,任何时序电路都可以表示为有限状态机。在由时序电路表示的有限状态机中,各个状态之间的转移总是在时钟的触发下进行的,状态信息存储在寄存器中。因为状态的个数是有限的,所以称为有限状态机。

有限状态机是由两部分组成:存储电路和组合逻辑电路。存储电路用来生成状态机的状态,组合逻辑电路用来提供输出以及状态机跳转的条件。

其电路结构如图所示:

在这里插入图片描述
有限状态机可以分为同步和异步两种,

  • 状态机的同步置位与复位:
always@(posedge clk )
    if!rst)
    …
  • 状态机的异步置位与复位:
always@(posedge clk or negedge rst)
	…

当然,我们主要学习的是有限同步状态机。

2、有限状态机的分类

根据输出信号的产生方式,有限状态机可以分为:Mealy型和Moore型两类。

  • Mealy型状态机的输出信号不仅与当前状态有关,而且还与输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和输入信号的函数。结构如图所示:

在这里插入图片描述

  • Moore型状态机的输出仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。

在这里插入图片描述

##/3、举个栗子
完成检测连续接收“1111”的Moore型和Mealy型有限状态机设计。

解题思路:
(1)画出相应状态机类型的状态转移图;
(2)编写Verilog代码
(3)开始仿真,观察波形图是否和测试代码一致

  • Moore型

(1)状态转移图:
在这里插入图片描述

(2)实验代码:

module machine_moore(input wire clk,input wire clr,input wire din,output reg dout);
	reg[2:0] c_state,n_state;
	parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100;
	always @(posedge clk or posedge clr)
	begin 
		if(clr==1)	c_state<=s0;
		else	c_state<=n_state;
	end

	always@(*)
		begin
			case(c_state)
				s0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值