




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章有限状态机设计 EDA技术与应用 1 2020 3 20 教学重点 MOORE状态机MEALY状态机有限状态机的几种描述方式有限状态机的状态编码 2 2020 3 20 8 1有限状态机 构成组合逻辑状态译码 产生输出时序逻辑存储状态分类Moore输出是现态的函数Mealy输出是现态和输入的函数 3 2020 3 20 摩尔型 Moore 状态机 米里型 Mealy 状态机 4 2020 3 20 Moore型状态图 现态 次态 输入 输出 5 2020 3 20 modulefsm clk clr z qout 模5计数器inputclk clr outputregz outputreg 2 0 qout always posedgeclkorposedgeclr 此过程定义状态转换beginif clr qout 0 异步复位elsecase qout 3 b000 qout 3 b001 3 b001 qout 3 b010 3 b010 qout 3 b011 3 b011 qout 3 b100 3 b100 qout 3 b000 default qout 3 b000 default语句 endcaseendalways qout 此过程产生输出逻辑 begincase qout 3 b100 z 1 b1 default z 1 b0 endcaseendendmodule 6 2020 3 20 Mealy型状态图 start 0 step3 0 State2out 100 step3 1 step2 0 7 2020 3 20 例10 7 状态机设计举例moduleFSM clk clr out start step2 step3 inputclk clr start step2 step3 output 2 0 out reg 2 0 out reg 1 0 state next state parameterstate0 2 b00 state1 2 b01 状态编码state2 2 b11 state3 2 b10 格雷码always posedgeclkorposedgeclr beginif clr state state0 定义初态elsestate next state end 8 2020 3 20 always stateorstartorstep2orstep3 状态转换begincase state state0 beginif start next state state1 elsenext state state0 endstate1 beginnext state state2 end 9 2020 3 20 state2 beginif step2 next state state3 elsenext state state0 endstate3 beginif step3 next state state0 elsenext state state3 enddefault next state state0 endcaseend 10 2020 3 20 always state 状态译码及输出begincase state state0 out 3 b001 state1 out 3 b010 state2 out 3 b100 state3 out 3 b111 default out 3 b001 endcaseendendmodule 11 2020 3 20 1 用三个过程描述 即现态 CS 次态 NS 输出逻辑 OL 各用一个always过程描述 2 双过程描述 CS NS OL双过程描述 使用两个always过程来描述有限状态机 一个过程描述现态和次态时序逻辑 CS NS 另一个过程描述输出逻辑 OL 3 双过程描述 CS NS OL双过程描述 一个过程用来描述现态 CS 另一个过程描述次态和输出逻辑 NS OL 4 单过程描述 在单过程描述方式中 将状态机的现态 次态和输出逻辑 CS NS OL 放在一个always过程中进行描述 8 2有限状态机的Verilog描述 12 2020 3 20 101 序列检测器的Verilog描述 三个过程 modulefsm1 seq101 clk clr x z inputclk clr x outputregz reg 1 0 state next state parameterS0 2 b00 S1 2 b01 S2 2 b11 S3 2 b10 状态编码 采用格雷 Gray 编码方式 always posedgeclkorposedgeclr 该过程定义当前状态 beginif clr state S0 异步复位 s0为起始状态elsestate next state end 13 2020 3 20 101 序列检测器的Verilog描述 三个过程 always stateorx 该过程定义次态 begincase state S0 beginif x next state S1 elsenext state S0 endS1 beginif x next state S1 elsenext state S2 end 14 2020 3 20 S2 beginif x next state S3 elsenext state S0 endS3 beginif x next state S1 elsenext state S2 enddefault next state S0 default语句 endcaseend always state 该过程产生输出逻辑 begincase state S3 z 1 b1 default z 1 b0 endcaseendendmodule 101 序列检测器的Verilog描述 三个过程 15 2020 3 20 101 序列检测器 单过程描述 modulefsm4 seq101 clk clr x z inputclk clr x outputregz reg 1 0 state parameterS0 2 b00 S1 2 b01 S2 2 b11 S3 2 b10 状态编码 采用格雷 Gray 编码方式 16 2020 3 20 101 序列检测器 单过程描述 always posedgeclkorposedgeclr Beginif clr state S0 异步复位 s0为起始状态elsecase state S0 beginif x beginstate S1 z 1 b0 endelsebeginstate S0 z 1 b0 endendS1 beginif x beginstate S1 z 1 b0 endelsebeginstate S2 z 1 b0 endendS2 beginif x beginstate S3 z 1 b0 endelsebeginstate S0 z 1 b0 endendS3 beginif x beginstate S1 z 1 b1 endelsebeginstate S2 z 1 b1 endenddefault beginstate S0 z 1 b0 end default语句 endcaseendendmodule 17 2020 3 20 8 3状态编码 顺序编码 格雷编码 约翰逊编码 一位热码 常用的编码方式 18 2020 3 20 一位热码编码选择对话框 Quartus 19 2020 3 20 状态编码的定义 在Verilog语言中 有两种方式可用于定义状态编码 分别用parameter和 define语句实现 比如要为state0 state1 state2 state3四个状态定义码字为 00 01 11 10 可采用下面两种方式 方式1 用parameter参数定义parameterstate1 2 b00 state2 2 b01 state3 2 b11 state4 2 b10 case state state1 调用state2 20 2020 3 20 要注意两种方式定义与调用时的区别 一般情况下 更倾向于采用方式1来定义状态编码 一般使用case casez和casex语句来描述状态之间的转换 用case语句表述比用if else语句更清晰明了 状态编码的定义方式2 用 define语句定义 definestate12 b00 不要加分号 definestate22 b01 definestate32 b11 definestate42 b10case state state1 调用 不要漏掉符号 state2 状态编码的定义 21 2020 3 20 8 4有限状态机设计要点 1 起始状态的选择 起始状态是指电路复位后所处的状态 选择一个合理的起始状态将使整个系统简洁 高效 多数EDA软件会自动为基于状态机的设计选择一个最佳的起始状态 2 有限状态机的同步复位3 有限状态机的异步复位 22 2020 3 20 多余状态的处理 一般有如下两种处理多余状态的方法 1 在case语句中用default分支决定如果进入无效状态所采取的措施 2 编写必要的Verilog源代码明确定义进入无效状态所采取的行为 23 2020 3 20 频率计控制器设计举例 设计一个自动转换量程的频率计控制器 用Mealy状态机实现 24 2020 3 20 进入100K量程 状态A reset 1 std f sel 00 100K量程测量 状态B reset 0 std f sel 00 进入100K量程 状态C reset 1 std f sel 01 100K量程测量 状态D reset 0 std f sel 01 进入100K量程 状态E reset 1 std f sel 11 1K量程测量 状态D reset 0 std f sel 11 cntlow 1 cntlow 1 cntlow 1 cntlow 1 cntover 1 cntover 1 25 2020 3 20 例10 8 自动转换量程频率计控制器 信号定义clk 时钟输入reset 系统复位信号half dollar 投入5角硬币one dollar 投入1元硬币half out 找零信号dispense 机器售出饮料collect 提示取走饮料 26 2020 3 20 moduleFSM clk clr out start step2 step3 inputclk clr start step2 step3 output 2 0 out reg 2 0 out reg 1 0 state next state parameterstate0 2 b00 state1 2 b01 状态编码state2 2 b11 state3 2 b10 格雷码always posedgeclkorposedgeclr beginif clr state state0 定义初态elsestate next state end 27 2020 3 20 always stateorstartorstep2orstep3 状态转换begincase state state0 beginif start next state state1 elsenext state state0 endstate1 beginnext state state2 end 28 2020 3 20 state2 beginif step2 next state state3 elsenext state state0 endstate3 beginif step3 next state state0 elsenext state state3 enddefault next state state0 endcaseend 29 2020 3 20 always state 状态译码及输出begincase state state0 out 3 b001 state1 out 3 b010 state2 out 3 b100 state3 out 3 b111 default out 3 b001 endcaseendendmodule 30 2020 3 20 对A D器件进行采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全优化填空题集
- 2025年国际工程师资格证书综合能力考试试题及答案解析
- 2025年安全员考试安全生产安全应急预案题库及答案
- 2025年地铁安全员应急处理模拟题及答案
- 2025年建筑施工三类人员C证考试重点题库
- 2025年气象观测员中级面试模拟题及答案解析选
- 课件《关雎》教学课件
- 2025年政府会计准则制度预测题及解析资料
- 2025年土耳其国家电投招聘笔试全真模拟题及答案
- 2025年宠物训导师笔试重点复习题
- 2025江苏南京农业大学新校区建设指挥部、基本建设处人员招聘10人笔试备考试题及答案解析
- 2025-2026学年第一学期九年级开学第一课:收心班会课件
- VTE的预防及护理
- 2025年济南市中考英语试题含答案
- Unit1单元复习课件人教版八年级英语上册
- 2025年青海省中考英语试卷真题(含答案及解析)
- 民事起诉状要素式(民间借贷纠纷)
- 肺孢子菌肺炎护理查房
- 法官培训人民调解员讲稿
- 茶叶施肥技术课件
- 2025年湖南省长沙市中考物理试卷(含答案)
评论
0/150
提交评论