数字电路设计中需要考虑的问题
a.FPGA内部资源要比较清楚 b.FPGA型号
1)竞争与冒险
在组合逻辑电路中,某个输入变量通过两条或两条以上的途径传到输出端,由于每条途径延迟时间不同,
到达输出门的时间就有先有后,这种现象称为竞争。
同一信号经过不同路径所需时间不同正是竞争产生的原因,
如果没有传输及门延时,就没有逻辑冒险了,那么(~A)A = 0就没有毛刺了 但是 F = AB 完全按照真值表,A与B几乎同时变化的话,还是会有毛刺的
表达式出现L = (~A)A (偏0冒险) 或者 L = (~A) + A , (偏1冒险)则称出现A冒险,其他信号取特定稳定值时(比如B=1,C=0) 解决办法:a.消除互补项,(通过增加冗余)或者根据卡诺图,出现相切的圈,增加圈使其相交即可
b.输出端加滤波电容
c.加选通控制,使得输出在输入稳定后才有效
F = AB + (~A)C,当B = C = 1时,可改写为 F = (~A) + A,为1冒险,可以加上1电平,故可以加BC项,且不会影响逻辑 F = AB + (~A)C + BC
F = (A + B)((~A) + C),当B = C = 0时, F = (~A)A ,为0冒险,可以乘上(B + C),不会改变其逻辑
F = (A + B)((~A) + C)(B + C)
L = A(~C) + (~A)B + (~A)C
上述L,不会出现B冒险和C冒险
功能冒险的判断: 功能冒险是当多个输入信号同时变化的瞬间,由于变化快慢不同而引起的冒险。
F=AC+(~B)C中, 当ABC:000 -> 001 -> 011 则F:0 -> 1 -> 0 (偏0冒险)
F = A + B 当AB 01 ->00 ->10
竞争冒险的危害:使对脉冲敏感的系统出现误动作,如时钟端口、清零和置位端口对毛
刺信号十分敏感,
任何一点毛刺都可能会使系统出错
但是D触发器对毛刺不敏感,除非毛刺出现在时钟上升沿,且满足建立时间和保持时间才会影响系统
通常毛刺都比较短几ns,一般不满足建立时间和保持时间才会影响系统
故用D触发器读取组合逻辑的输出信号,可以大大减少毛刺,类似于将异步电路转化为同步电路
2)TTL(Transistor-Transistor Logic)
TTL电路是电流控制器件,TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大; TTL 电路额定高电平和低电平分别是2.4v和0.4v,最小可识别电平(即临界可识别电平)是2v和0.8v。
即系统本身高电平识别是2.4v,但若一个信号受噪声叠加后呈现是2v的电压,此时也可识别为高电平;
低电平额定识别是0.4v,若一个信号受噪声叠加后呈现0.8v的电压时,也可以识别出是低电平。
噪声容限是 0.4v,就是说可以容许信号电平上有叠加上小于0.4v裕度的噪声 CMOS芯片的噪声容限比TTL通常大,因为VOH是离电源电压较近,并且最小值是
离零较近。(VOH可以认为是额定高电平,类似于TTL的2.4V)
数字电路中,由TTL电子元器件组成电路使用的电平。电平是个电压范围,规定输出高电平>2.4V,输出低电平<0.4V。在室温下,
一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。
CMOS电路:1逻辑电平电压接近于电源电压,0 逻辑电平接近于 0V。而且具有很宽的噪声容限。
通常TTL与CMOS都是指Vcc = 5V时的情况,
对于Vcc = 3.3V时的情况,是LVTTL 和LVCMOS ,其实还有Vcc = 2.5V时的LVCMOS CMOS : Vcc:5V;VOH>=4.45V;VOL<=0.5V;VIH>=3.5V;VIL<=1.5V。噪声容限接近1V
LVCMOS : Vcc:3.3V;VOH>=3.2V;VOL<=0.1V;VIH>=2.0V;VIL<=0.7V。 LVCMOS : Vcc:2.5V;VOH>=2V;VOL<=0.1V;VIH>=1.7V;VIL<=0.7V。
TTL : Vcc:5V;VOH>=2.4V;VOL<=0.5V;VIH>=2V;VIL<=0.8V。 LVTTL: Vcc:3.3V;VOH>=2.4V;VOL<=0.4V;VIH>=2V;VIL<=0.8V。 LVTTL: Vcc:2.5V;VOH>=2.0V;VOL<=0.2V;VIH>=1.7V;VIL<=0.7V。
从以上数据可以看出LVTTL与LVCMOS是可以相互驱动的,是兼容的,但是: TTL不能驱动CMOS,虽然CMOS可以驱动TTL
Vcc= 5V时,TTL电路驱动COMS电路时加上拉电阻1.5K - 4.7K,这样就没有问题了(只要拉高原先的2.4V到3.5V就可以啦!)
另外3.3V LVCMOS 可以直接驱动5V的TTL电路
1)TTL电路是电流控制器件,而CMOS电路是电压控制器件。 2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。 CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。 CMOS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现
象。
3)单片机I/O电路结构:
51单片机P1.0 -- P1.7为准双向端口(内置了上拉电阻)
作为输出口时,如果内部没有上拉,且外部悬空,则该管脚悬空,电平未定,如果内部未上拉,外部下拉,则改端口始终输出低电平
作为输入时,应先在P1口写入1,使得端口内部与地间的开关管断开(因为写0时,P1输出就为0,就是输入为高也会被拉低的) OC门电路
集电极开路,输出(通常)接电源Vcc'及上拉电阻,这样可以实现线与逻辑,而且可以实现电平转换,输出的电平由Vcc'决定,输入端电源VCC
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现,由于不用 oc门可能使灌电流过大,而烧坏逻辑门 对与IC的驱动管脚,从该脚流出的是source current(拉电流),流入的是sink current (灌电流) 4)同
步电路与异步电路: 同步电路是由时序电路(寄存器和各种触发器
)和组合逻辑电路构成的电路,所有操作都是在严格的时钟控制下完成的, 这些时序电路共享同一个时钟clk,所有状态的变化都是在时钟的上升沿完成的; 异步电路主要是组合逻辑电路,其逻辑输出与任何时钟信号都没有关系;
异步电路也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,一个时刻允许一个输入发生变化,以避免
输入信号之间造成竞争冒险(似乎异步逻辑更合适),电路的稳定需要可靠的建立时间和保持时间;
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。