数字电路锁存器
- 格式:ppt
- 大小:1.80 MB
- 文档页数:69


锁存器、触发器、寄存器和缓冲器一、锁存器锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态。
锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。
(简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程)。
锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。
锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的。
应用场合:数据有效迟后于时钟信号有效。
这意味着时钟信号先到,数据信号后到。
在某些运算器电路中有时采用锁存器作为数据暂存器。
缺点:时序分析较困难。
不要锁存器的原因有二:1、锁存器容易产生毛刺,2、锁存器在ASIC(专用集成电路)设计中应该说比ff(触发器)要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器,这样就浪费了资源。
(用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一)优点:面积小。
锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源的质量,锁存器在CPU设计中很常见,正是由于它的应用使得CPU的速度比外部IO部件逻辑快许多。
latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。
二、触发器触发器(Flip-Flop,简写为FF),也叫双稳态门,又称双稳态触发器。
是一种可以在两种状态下运行的数字逻辑电路。
触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。
当收到输入脉冲时,触发器输出就会根据规则改变状态,然后保持这种状态直到收到另一个触发。
数字ic三模冗余
好的,三模冗余(Triple Modular Redundancy,TMR)是一种在数字电路中常用的容错技术,通过复制主要电路并进行投票来检测和纠正错误。
该技术的主要特点是可靠性高,但需要额外的开销。
TMR锁存器是基于冗余及表决器实现SNU容忍的经典锁存器。
它由一个由逻辑门组成的表决器和三个标准静态锁存器构成,其中,三个标准静态锁存器形成了三个反馈环。
在TMR中,主要电路采用完全相同的设计提供并行三冗余,由“票决”电路比较这些相同路径的输出,按少数服从多数的原则决定输出。
如果其中一条电路遭遇影响输出的事件,其输出将不同于其余两条电路的输出。
彻底理解锁存器,让你不再为锁存器头疼!彻底理解锁存器,让你不再为锁存器头疼!锁存器(latch):是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,尽当锁存器处于使能状态时,输出才会随着数据输入发生变化。
触发器(flipflop)是边沿敏感的存储单元,数据存储的动作由某一信号的上升或者下降沿进行同步的。
(钟控D触发器其实就是D锁存器,边沿D触发器才是真正的D触发器)寄存器(register):用来暂时存放参与运算的数据和运算结果。
在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器.区别与联系:由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。
由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储n位二进制码的寄存器。
从寄存数据的角度来讲,寄存器和锁存器的功能是相同的;它们的区别在于寄存器是同步时钟控制,而锁存器是电位信号控制。
一般的设计规则是:在绝大多数设计中避免产生锁存器。
它会让您设计的时序完蛋,并且它的隐蔽性很强,非老手不能查出。
锁存器最大的危害在于不能过滤毛刺。
这对于下一级电路是极其危险的。
所以,只要能用D触发器的地方,就不用锁存器。
附件里是更详细的分析。
让锁存器不再让人头痛.pdf基本概念:触发器是指有时钟边沿触发的存储单元。
锁存器指一个由信号而不是时钟控制的电平敏感的设备。
锁存器的工作原理:锁存器不同于触发器,锁存器在不锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓存器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。
因此锁存器也称为透明锁存器,值得是不锁存是输出对输入是透明的。
锁存器出现的地点:两个最明显的地方:1:if语句的使用中缺少else语句(前提是不是始终边沿触发);2:case语句中没有给出全部的情况。
1:if语句中缺少else的情况:process(en,d)beginif(en = '1')then //注意这里是边沿触发q <= d;end if; //注意没有else语句end process;综合出来的RTL图如下:从上图可以看出综合出来的是锁存器。