Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165928
  • 博文数量: 173
  • 博客积分: 4048
  • 博客等级:
  • 技术积分: 2679
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 18:53
文章分类

全部博文(173)

文章存档

2018年(1)

2016年(1)

2013年(1)

2012年(118)

2011年(52)

分类: 嵌入式

2011-11-23 10:32:02

锁存器和触发器是具有记忆功能的二进制存贮器件,是组成各种时序逻辑电路的基
本器件之一。区别为:latch同其所有的输入信号相关,当输入信号变化时latch就
变化,没有时钟端;flip-flop受时钟控制,只有在时钟触发时才采样当前的输
入,产生输出。当然因为latch和flip-flop二者都是时序逻辑,所以输出不但同当
前的输入相关还同上一时间的输出相关。

1、latch由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能
信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。

2、latch对输入电平敏感,受布线延迟影响较大,很难保证输出没有毛刺产
生;DFF则不易产生毛刺。

3、如果使用门电路来搭建latch和DFF,则latch消耗的门资源比DFF要少,这是
latch比DFF优越的地方。所以,在ASIC中使用latch的集成度比DFF高,但在FPGA中
正好相反,因为FPGA中没有标准的latch单元,但有DFF单元,一个LATCH需要多个
LE才能实现。latch是电平触发,相当于有一个使能端,且在激活之后(在使能电
平的时候)相当于导线了,随输出而变化。在非使能状态下是保持原来的信号,这
就可以看出和flip-flop的差别,其实很多时候latch是不能代替ff的。

4、latch将静态时序分析变得极为复杂。

5、目前latch只在极高端的电路中使用,如intel 的P4等CPU。FPGA中有latch单
元,寄存器单元就可以配置成latch单元,在xilinx v2p的手册将该单元配置成为
register/latch单元,附件是xilinx半个slice的结构图。其它型号和厂家的FPGA
没有去查证。——个人认为xilinx是能直接配的而altera或许比较麻烦,要几个LE才
行,然而也非xilinx的器件每个slice都可以这样配置,altera的只有DDR接口中有
专门的latch单元,一般也只有高速电路中会采用latch的设计。altera的LE是没有
latch的结构的,又查了sp3和sp2e,别的不查了,手册上说支持这种配置。有关
altera的表述wangdian说的对,altera的ff不能配置成latch,它使用查找表来实
现latch。

    一般的设计规则是:在绝大多数设计中避免产生latch。它会让您设计的时序
完蛋,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛
刺。这对于下一级电路是极其危险的。所以,只要能用D触发器的地方,就不用latch。


有些地方没有时钟,也只能用latch了。比如现在用一个clk接到latch的使能端(假
设是高电平使能),这样需要的setup时间,就是数据在时钟的下降沿之前需要的时
间,但是如果是一个DFF,那么setup时间就是在时钟的上升沿需要的时间。这就说
明如果数据晚于控制信号的情况下,只能用latch,这种情况就是,前面所提到的
latch timing borrow。基本上相当于借了一个高电平时间。也就是说,latch借的
时间也是有限的。

在if语句和case不全很容易产生latch,需要特别注意。
阅读(2375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~