latch 与 DFF

最近看 RISC CPU 设计,发现里面的设计有 Latch ,以前记得总是说最好不要用 Latch ,所以就有点怀疑,于是查了一些资料,发现虽然 Latch 有一定的缺点,但是既然它存在,就肯定就有优点,原来它占用面积更小,运行速度更快,所以有时会用在 CPU 设计,但是在普通设计中,还是不提倡的,既然提到了 Latch ,那就不能不说说和它相关的几个其它概念:触发器、寄存器。
 
锁存器( latch :我听过的最多的就是它是电平触发的,呵呵。锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别是一个有效信号 EN, 一个输入数据信号 DATA_IN ,它有一个输出 Q ,它的功能就是在 EN 有效的时候把 DATA_IN 的值传给 Q ,也就是锁存的过程)。
 
应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用 锁存器 作为数据暂存器。
 
缺点:时序分析较困难。不要锁存器的原因有二: 1 、锁存器容易产生毛刺, 2 、锁存器在 ASIC 设计中应该说比 ff 要简单,但是在 FPGA 的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和 ff 来组成锁存器,这样就浪费了资源。
 
优点:面积小。锁存器比 FF 快,所以用在地址锁存是很合适的,不过一定要保证所有的 latch 信号源的质量,锁存器在 CPU 设计中很常见,正是由于它的应用使得 CPU 的速度比外部 IO 部件逻辑快许多。 latch 完成同一个功能所需要的门较触发器要少,所以在 asic 中用的较多
 
触发器( flipflop :呵呵,当然最基本的就是边沿触发,也是我平时用的最多的了。记得刚接触IC时,死活就不明白ff到底是什么东西,呵呵
 
应用场合:时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在 CP 上升沿时刻打入到寄存器。
 
锁存器与触发器的区别:
锁存器电平触发会把输入端的毛刺带入输出;而触发器由于边沿作用可以有效抑制输入端干扰;
 
寄存器( register :用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储 1 位二进制数,所以由 N 个锁存器或触发器可以构成 N 位寄存器。
 
至于寄存器,是 processor 里面的东西,比如 ARM 核里面的 R0 R15 CPSR SPSR MIPS 核里面的 $0 $31 ,这些都是寄存器。而寄存器既可以由触发器设计,也可以由锁存器设计( register file 设计是 processor design 里面非常核心的技术问题之一)。
 
Buffer: 缓冲区,一个用于促初速度不同步的设备或者优先级不同的设备之间传输数据的区域,通过缓冲区,可以使进程之间的相互等待变少,从而是从速度慢的设备读入数据是,速度快的设备的操作进程不发生间断

你可能感兴趣的:(职场,latch,休闲,dff)