Verilog-有限状态机设计说明课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Verilog-有限状态机设计说明课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog 有限状态机 设计 说明 课件
- 资源描述:
-
1、第八章 有限状态机设计l MOORE状态机l MEALY状态机l 有限状态机的几种描述方式l 有限状态机的状态编码8.1 有限状态机n 构成l 组合逻辑 状态译码、产生输出l 时序逻辑 存储状态n 分类lMoore 输出是现态的函数lMealy 输出是现态和输入的函数摩尔型(摩尔型(Moore)状态机)状态机 米里型(米里型(Mealy)状态机)状态机 Moore型状态图现态次态输入/输出module fsm(clk,clr,z,qout);/模模5计数器计数器input clk,clr;output reg z;output reg2:0 qout;always(posedge clk or
2、 posedge clr)/此过程定义状态转换 begin if(clr)qout=0;/异步复位 else case(qout)3b000:qout=3b001;3b001:qout=3b010;3b010:qout=3b011;3b011:qout=3b100;3b100:qout=3b000;default:qout=3b000;/*default语句*/endcase endalways(qout)/*此过程产生输出逻辑*/begin case(qout)3b100:z=1b1;default:z=1b0;endcase endendmoduleMealy型状态图start=0Stat
3、e0out=001clr=1step3=0State2out=100State1out=010start=1step3=1State3out=111step2=1step2=0【例10.7】状态机设计举例module FSM(clk,clr,out,start,step2,step3);input clk,clr,start,step2,step3;output2:0 out;reg2:0 out;reg1:0 state,next_state;parameter state0=2b00,state1=2b01,/状态编码 state2=2b11,state3=2b10;/格雷码always(
4、posedge clk or posedge clr)beginif(clr)state=state0;/定义初态else state=next_state;endalways(state or start or step2 or step3)/状态转换begin case(state)state0:beginif(start)next_state=state1;else next_state=state0;endstate1:beginnext_state=state2;endstate2:beginif(step2)next_state=state3;else next_state=sta
5、te0;endstate3:beginif(step3)next_state=state0;else next_state=state3;enddefault:next_state=state0;endcaseendalways(state)/状态译码及输出begincase(state)state0:out=3b001;state1:out=3b010;state2:out=3b100;state3:out=3b111;default:out=3b001;endcaseendendmodule(1)用三个过程描述:即现态(CS)、次态(NS)、输出逻辑(OL)各用一个always过程描述。(
6、2)双过程描述(CS+NS、OL双过程描述):使用两个always过程来描述有限状态机,一个过程描述现态和次态时序逻辑(CS+NS);另一个过程描述输出逻辑(OL)。(3)双过程描述(CS、NS+OL双过程描述):一个过程用来描述现态(CS);另一个过程描述次态和输出逻辑(NS+OL)。(4)单过程描述:在单过程描述方式中,将状态机的现态、次态和输出逻辑(CS+NS+OL)放在一个always过程中进行描述。8.2 有限状态机的Verilog描述“101”序列检测器的Verilog描述(三个过程)module fsm1_seq101(clk,clr,x,z);input clk,clr,x;o
7、utput reg z;reg1:0 state,next_state;parameter S0=2b00,S1=2b01,S2=2b11,S3=2b10;/*状态编码,采用格雷(Gray)编码方式*/always(posedge clk or posedge clr)/*该过程定义当前状态*/beginif(clr)state=S0;/异步复位,s0为起始状态else state=next_state;end“101”序列检测器的Verilog描述(三个过程)always(state or x)/*该过程定义次态*/begincase(state)S0:begin if(x)next_sta
8、te=S1;else next_state=S0;endS1:beginif(x)next_state=S1;else next_state=S2;endS2:beginif(x)next_state=S3;else next_state=S0;endS3:beginif(x)next_state=S1;else next_state=S2;enddefault:next_state=S0;/*default语句*/endcaseendalways(state)/*该过程产生输出逻辑*/begin case(state)S3:z=1b1;default:z=1b0;endcase endend
展开阅读全文