什么是建立时间与保持时间?
建立时间(Setup Time)是指触发器的时钟信号上升沿到来以前,数据能够保持稳定不变的时间。输入数据信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个 T 就是建立时间通常所说的 SetupTime。如不满足 Setup Time,这个数据就不能被这一时钟打入触发器。保持时间(Hold Time)是指触发器的时钟信号上升沿到来以后,数据保持稳定不变的时间。如果 Hold Time 不够,数据同样不能被打入触发器。
芯片正常工作时的Tsetup和Thold应该满足以下要求
{
T
c
l
k
>
T
c
q
+
T
c
o
m
b
+
T
s
e
t
u
p
+
T
s
k
e
w
T
h
o
l
d
+
T
s
k
e
w
<
T
c
q
+
T
c
o
m
b
\left\{ \begin{array}{c}Tclk>Tcq+Tcomb+Tsetup+Tskew\\Thold+Tskew<Tcq+Tcomb\end{array}\right.
{Tclk>Tcq+Tcomb+Tsetup+TskewThold+Tskew<Tcq+Tcomb
针对建立时间,我们可以采用:
- 是增大 Tclk,就是降低系统的工作频率此时就可以令式子满足条件,
但是往往这个是不科学的,一般都是最后才想到要降低系统时钟频率来来满足 setup time - 减小 Tcomb,具体就像什么 pipeline(采用流水线切割组合逻辑,减小路径延时)或
者是在不改变逻辑功能的前提下,改变成其他样式的组合逻辑,进行组合逻辑的优化,或者
是改变扇出系数使得延时减小,或者是增大 cell 的尺寸来使得延时减小都是可以施行的措施。 - 减小 Tskew
针对保持时间: - 增大 Tcomb,那么能做的就是在 data path 上面插入 buffer 来增加组合逻辑延时,但
是相对的,当你插入 buffer 增大延时的时候,相应的 setup time 就会变差,相当于是一个
tradeoff - 减小 Tskew
什么是竞争和冒险
在组合逻辑中,由于门的输入信号通路中经过了不同的路径延时,导致到达该门的时间
不一致叫竞争。由于竞争的存在,在逻辑门的输出端产生毛刺叫冒险。如果布尔式中有相反
方向变化的信号,即出现 A+(-A)或者 A*(-A)这种情况则可能产生竞争和冒险现象。
解决方法:
- 添加冗余项,将卡诺图中相切的两项圈起来;
- 增加滤波电容
- 采用格雷码计数 ,因为格雷码每次只有一位变化,缺点是额外开销的二进制与格雷码转换电路。
- 利用D触发器多打一拍
什么是亚稳态
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入
亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平
上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用
的输出电平可以沿信号通道上的各个触发器级联式传播下去,以及导致逻辑判断错误
解决方法:
- 对单个信号,可以采用两级触发器。
- 采用 FIFO 来作为中间缓冲
- .降低工作频率
- 使用更好的工艺
- 使用格雷编码法,采用握手信号
摩尔状态机和米勒状态机的区别
Moore(摩尔)状态机的输出,只与当前状态有关。Meeley(米勒)状态机的输出不仅与当前
状态有关,还与输入有关。
状态机主要分为两部分:组合逻辑部分和寄存器逻辑部分。其中组合逻辑部分实现状态
机的条件判断并产生输出信号,寄存器逻辑部分主要是存储寄存器状态。
状态机常用的三种编码:
- 顺序编码;顺序编码,优点:编码简单,使用触发器少;缺点:状
态转移时存在毛刺,不稳定,速度慢。 - 格雷码;格雷码,优点:使用触发器少,防止毛刺的产生;缺
点:速度慢。独热码,优点:速度快,简化逻辑组合;缺点:使用触发器多。 - 独热码。
三段式写法,就是将组合逻辑和状态寄存器逻辑分开写,在此基础上再对输出信号进,同步采集缓存后输出,有效减少组合逻辑带来的毛刺现象。