第八次课-8章状态机_第1页
第八次课-8章状态机_第2页
第八次课-8章状态机_第3页
第八次课-8章状态机_第4页
第八次课-8章状态机_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章

有限状态机(FSM)设计有限状态机(FSM,FiniteStateMachine)是时序电路设计中经常采用的一种方式,尤其适于设计数字系统的控制模块。具有速度快、结构简单、可靠性高等优点。在FPGA电路中实现状态机,用Verilog的case、if-else等语句能很好地描述基于状态机的设计。使其在运行时间、速度和占用资源方面优于由CPU实现的方案。有限状态机类型有限状态机的Verilog描述有限状态机的设计要点一、两种有限状态机二、有限状态机的Verilog描述描述对象:

当前状态、下一状态、输出逻辑描述方式:单过程、双过程、三过程单过程描述方式:

放在一个过程中描述,相当于采用时钟信号同步,克服输出产生毛刺。但输出逻辑相对于双过程,要延迟一个时钟周期。双过程描述方式:一个过程由时钟信号触发的时序过程(当时钟发生跳变时,状态机状态发生变化。一般用case语句检查状态机的当前状态;另一过程是组合过程,对于摩尔型,输出只与当前状态有关,因此只需用case语句即可,对米里型,因与当前状态和输入都有关,因此可用case语句和if组合进行描述。用状态机设计一个二进制序列检测器,其功能是检测一个4位二进制序列“1111”,即输入序列中如果有4个或4个以上连续的“1”出现,输出为1,其它情况下,输出为0。有限状态机(FSM)设计输入x:000101010110111101111110101输出z:000000000000000100001110000其输入输出如下所示:有限状态机(FSM)设计“1111”序列检测器状态转换图“1111”序列检测器的Verilog描述modulefsm_seq(x,z,clk,reset,state);inputx,clk,reset;outputz;output[2:0]state;reg[2:0]state;regz;parameters0='d0,s1='d1,s2='d2,s3='d3,s4='d4;always@(posedgeclk)begin

if(reset)

begin

state<=s0;z<=0;

endelse

casex(state)s0:

begin

if(x==0)begin

state<=s0;z<=0;end

elsebegin

state<=s1;

z<=0;end

end

s1: beginif(x==0)

begin

state<=s0;z<=0;

endelse

begin

state<=s2;z<=0;

endends2: beginif(x==0)

begin

state<=s0;z<=0;

endelse

begin

state<=s3;z<=0;

endend

s3: beginif(x==0)

begin

state<=s0;z<=0;

endelse begin

state<=s4;z<=1;endends4: beginif(x==0) beginstate<=s0;

z<=0;

endelse

begin

state<=s4;z<=1;

endenddefault: state<=s0;

endcaseendendmodule三、基于状态机的设计要点1.起始状态的选择

起始状态是指电路复位后所处的状态,选择一个合理的起始状态将使整个系统简洁高效。有的EDA软件会自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论