当前位置:文档之家› 组合与时序逻辑及竞争冒险

组合与时序逻辑及竞争冒险

组合逻辑与时序逻辑
数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。

组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。

具有一组输出和一组输入的非记忆性逻辑门电路结构。

组合电路不包含存储信号的记忆单元,输出与输入间无反馈通路,信号是单向传输,且存在传输延迟时间。

组合逻辑由与或非门组成的网络,用于完成简单的逻辑功能,如多路器,与或非逻辑运算,加法器乘法器等。

数据在寄存器中保存
由于逻辑门和布线都有延迟,因此没有办法使实际电路的输出与理想的布尔方程计算完全一致,可以说,实际组合逻辑电路的瞬间不确定性是无法避免的。

如果能使组合逻辑电路的输入稳定一段时间,也就是说,所有的输入信号在一段相对较长的时间段里不再发生变化。

虽然在稳定时间片段的刚一开始由于冒险竞争现象会产生于理想情况不一致的毛刺或输出不确定的情况,但只要稳定时间片段大于最长的路径延迟,就可以取得组合逻辑电路的理想输出。

如果能躲开输出不确定片段,在理想值稳定输出的片刻把该输出值存入寄存器组,则寄存器组中保存的就是该组合逻辑电路的理想输出。

如果不是有意的改变寄存器组的值,那么该值可以一直保留下去,知道改变寄存器组中保留的数值。

可以把寄存器组中保留的数值作为下一集电路的输入,根据维持一定长度的时间片段,在做改变,以保证下一集组合电路有稳定的输入。

数据流动的控制
加减乘除比较等运算都可以用组合逻辑来实现,但运算的输入必须有一段稳定的时间才可能得到稳定的输出,而输出要被下一阶段的运算作为输入,也必须要有一段时间的稳定,因而输出结果必须保存在寄存器中。

在计算电路中有很多寄存器组,他们是用来暂存运算的中间数据。

对寄存器组之间数据路东进行精确的控制,在算法的实现过程中有着极其重要的作用。

这种控制由同步状态机实现的。

重要概念:生成与时钟精确配合的开关时序是计算逻辑的核心。

由于门级电路和布线的延迟,输出必须经过一段时间才能稳定。

所以需要设计出一个状态机,在这个状态机的控制下生成一系列的开关信号,严格按照时钟的节拍来开启或者关闭数据通道,就能用硬件来构成复杂的计算逻辑。

时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

因而时序逻辑电路必然包含存储记忆单元电路。

时序逻辑由多个触发器和多个组合逻辑块组成的网络。

时序逻辑则可以用来产生于运算过程有关的(按时间节拍)多个控制信号序列,包括存储运算的结果和取出存储器中的数据。

在可综合的硬件描述语言设计的复杂运算逻辑系统中,往往采用同步状态机来产生于时钟节拍密切相关(同步)的多个控制信号,用它来控制多路器或数据通道的开启与关闭,来使有限的组合逻辑运算器资源得到充分的运行,并寄存有意义的运算结果,或把他们传送到指定的地方。

同步时序逻辑是指表示状态的寄存器组的值只可能在唯一确定的触发条件发生改变。

异步时序逻辑是指触发条件由多个控制因素组成,任何一个因素的跳变都可以引起触发。

记录状态的寄存器不是连接在同一个时钟信号上。

避免使用异步时序:
1)许多综合器不支持异步时序逻辑的综合
2)已不是虚很难控制由组合电路产生的竞争和冒险
3)电路复杂时,异步时序无法调试
4)工艺差别会导致异步时序电路失效
5)异步时序逻辑中触发条件很随意,所以记录状态的寄存器组的输出任何时候都有可能变化。

所以,同步时序逻辑比异步时序逻辑具有更可靠更简单的逻辑关系。

同步有限状态机是同步时序逻辑的基础。

所谓同步有限状态机就是电路状态的变化只能在同一时钟跳变沿时刻发生的逻辑电路,而状态是否发生变化还要看输入条件,若输入条件满足,当时钟跳变沿到来时刻,进入下一状态,否则即使时钟不断跳变,电路系统仍旧停留在原来的状态。

同步逻辑电路中,触发信号是时钟的正跳沿(负跳沿),触发器的输入与输出时由两个时钟来完成的。

第一个时钟跳沿为输入做准备,在第一个时钟跳沿起到第二个时钟跳沿到来,有足够的时间使输入稳定。

第二个时钟跳沿到来时,由前一个时钟沿创造的条件已经稳定,所以能够使下一个状态正确的输出。

前提:确定下一个状态所使用的组合电路的延迟与时钟到各触发器的差值必须小于一个时钟周期的宽度。

措施:
1)全局时钟网络布线时尽量使个分支的时钟一致
2)采用平衡树结构,在每一级加入缓冲器,使到达每个触发器是终端的时钟同步
后仿真时,如果逻辑与预设的不一样,可降低时钟频率,或修改状态机,再增加一个时钟周期产生数据使能信号,这就有可能消除由于时钟过快引起的触发器输入端由延迟和冒险竞争造成的不稳定,从而使逻辑正确。

组合逻辑电路always@(敏感信号)或者always @ (*),组合逻辑相当于与或非门组成的电路,其输出至于当前状态有关,与其他输入状态的函数无关,不涉及信号调变处理(组合逻辑竞争冒险:只要输入信号同时变化,组合逻辑就必然产生毛刺)。

时序逻辑:always @(跳变时钟)是时序电路,其输出不仅仅与当前状态有关,只有在时钟跳变的时候才会变化,其最简单的模型相当于DFF,D触发器。

相关主题