- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
高级逻辑设计
基本逻辑结构
Control Unit
• Control Unit根据外部输入以及Datapath当前的工作状态对
于Datapath进行控制,是整个算法的调度者。
• Control Unit在大部分实现中以FSM的形式出现。
Datapath
• Datapath通常称为数据通路
• Datapath指用于进行数据处理的逻辑资源以及相应的寄存
器组成的电路。
基于ASM 图的FSM设计
有限状态机概述
• 有限状态机——Finite State Machine (FSM)
• 状态机在整个时序电路中扮演着至关重要
的角色。
• 这里提到的状态机都是有限状态机,顾名
思义就是整个时序逻辑电路只能存在有限
个状态。他们所处的状态和对应的输出都
是确定的。
有限状态机概述(续)
• 状态机的要素
– 状态变量:用于划分逻辑顺序和时序规律
– 输出:某一个状态时特定发生的事件
– 输入:进入某个状态的条件
• 稳定的状态机
– 时钟同步的输入
– 时钟同步的输出
有限状态机概述(续)
• 通常来讲,FSM的输出以及状态的更迭是由
当前状态以及输入形成的组合逻辑确定的。
• 有限状态机在实现数字系统中的控制和决
策电路中非常有用。
为何要设计好状态机
• 状态机几乎出现在每一个较为复杂的时序
逻辑电路中,他可以控制事件发生的顺序,
调整数据通路的时序等等。比如CPU总线仲
裁、通讯握手协议的实现等等。
• 优秀的状态机能够稳定地控制电路的状态
转移,使整个系统稳定有效地运作着。相
反,劣质的状态机则会过多产生错误状态
的迁移,glitch 的输出,大大影响了系统稳
定性。
为何要设计好状态机(续)
• 一个优秀的状态机应该具有以下特点
– 安全、稳定性高
– 速度快、满足设计时钟要求
– 面积小、满足设计面积要求
– 设计清晰易懂、易维护
状态机的分类
• 从状态机的逻辑形式划分
– Moore状态机
– Mealy状态机
• 从状态机的描述方式
– 2段式
– 3段式
• 这里只做概念上的介绍,之后会给出详细
的对比。
Moore状态机介绍
• 摩尔状态机的输出仅仅依赖于当前状态,
而与输入条件无关
Mealy状态机
• 米勒型状态机的输出不仅依赖于当前状态,
而且取决于该状态的输入条件。
状态机的分类(续)
• 摩尔状态机的输出是由时钟同步的,而米
利状态机的输出是异步的,他的输出会随
着输入的随时改变而改变。
• 因此在时序设计上,摩尔状态机更有优势;
当然,也可以通过同步化设计来克服米利
状态机的缺陷。
状态机同步问题
• 输入同步:状态机中各个状态的迁移是由
当前状态和当前输入决定的。当前状态的
迁移是由时钟同步的而状态机输入通常来
说是异步的,因此需要同步化输入来避免
状态的错误跳转。
状态机同步问题(续)
• 我们这样控制状态跳转
• always@(posedge clk) state = next_state;
• 这里next_state是根据clk采样之前状态机所
在状态和采样之前已经稳定输入而产生的。
也就是说,这个输入作用于状态的跳转已
经是经过时钟采样的了(时钟同步化)。
状态机同步问题(续)
• 电路示意图如下
状态机同步问题(续)
• 依然存在的问题(亚稳态)
状态机同步问题(续)
• 输出同步
– Moore状态机的输出本身就是同步的
– Mealy状态机可以使用同步
文档评论(0)