原创 latch与DFF的区别

2007-6-14 10:09 14602 10 13 分类: FPGA/CPLD

    收集了一下网上资源,总结如下:


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


2、latch容易产生毛刺(glitch),DFF则不易产生毛刺。


3、如果使用门电路来搭建latch和DFF,则latch消耗的门资源比DFF要少,这是latch比DFF优越的地方。所以,在ASIC中使用latch的集成度比DFF高,但在FPGA中正好相反,因为FPGA中没有标准的latch单元,但有DFF单元,一个LATCH需要多个LE才能实现。


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


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


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


 


在if语句和case不全很容易产生latch,需要注意。


VIA题目


这两个代码哪个综合更容易产生latch:
代码1
always @(enable or ina or inb)
  begin
   if(enable)
    begin
     data_out = ina;
    end
    else
    begin
      data_out = inb;
    end
  end
代码2
input [3:0] data_in;
always @(data_in)
   begin
     case(data_in)
       0 :         out1 = 1'b1;
       1,3 :       out2 = 1'b1;
       2,4,5,6,7 : out3 = 1'b1;
       default :   out4 = 1'b1;
      endcase
   end
答案是代码2在综合时更容易产生latch。

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2012-3-23 10:15

有时候这种锁存可能是必须的,一分为二的看待

用户1049668 2007-7-18 11:05

因为case下赋值不全呀!比如当data_in=0时,只是给out1=1'b1,那out2,out3,out4呢,没有赋值,所以out2,out3,out4就保持原值。这就是latch。

如果把每一个case值下都把out1,out2,out3,out4都做一遍赋值,那就不会产生latch了。

用户41355 2007-7-16 09:27

为什么是2呢
相关推荐阅读
用户1049668 2010-12-28 15:56
多时钟域设计和触发器的亚稳态
    目前正在做的东西必须跨时钟域(crossing clock domain),信号非同步的问题很让人头疼。在读资料的时候了解到触发器(flip-flopper)输出会出现亚稳态(meta-sta...
用户1049668 2010-12-17 16:09
为何DC综合后网表文件包含assign语句,如何去除assign语句。
Question:问题:I have a feedthrough in my circuit, and the netlist is showing an assign statement for t...
用户1049668 2010-12-17 14:55
group_path
synopsis DC命令使用group_path可以是DC在编译时使用不同的代价比重。如下命令可以使编译器在编译时对输入端口到寄存器,寄存器到输出端口,输入端口到输出端口三中情况分别做优化。grou...
用户1049668 2010-12-17 14:45
DC compile命令
2.  Synopsys Commands                                        Command Reference                      ...
用户1049668 2010-12-10 10:30
dia软件的逻辑图形库 Logic shapes for DIA
This package is the newly updated logic shapes used in DIA, a opensource diagram program. Unpack the...
用户1049668 2010-11-13 22:52
PLL jitter
Jitter Definitions and Specifications 时钟抖动的定义和规定Jitter is a random variation of the output clock. It...
EE直播间
更多
我要评论
3
10
关闭 站长推荐上一条 /3 下一条