← 2022 · MPS芯源 笔试

推荐答案 测试一下

What's the difference between a LATCH anda DFF?

问答题 中等 经典问答问答题

参考答案

LATCH(锁存器)和DFF(D触发器)是数字电路中两种基本的存储单元,主要区别如下: 1. **触发方式不同**:LATCH是电平敏感器件,当使能信号(如CLK或EN)有效时,输出跟随输入变化(透明模式),使能无效时保持原值。DFF是边沿敏感器件,仅在时钟信号的上升沿或下降沿时刻采样输入并更新输出,其余时间输出保持不变。 2. **时序约束**:LATCH对输入信号的要求较宽松,但容易产生毛刺和竞争冒险,且静态时序分析(STA)中需考虑透明窗口。DFF具有严格的建立时间和保持时间约束,抗干扰能力强,时序闭合更容易。 3. **敏感列表**:在Verilog中,LATCH通常由不完全的组合逻辑生成(如缺少else分支),但综合工具会推断;DFF则通过always @(posedge clk)等边沿敏感列表明确描述。 4. **资源消耗**:LATCH通常比DFF占用更少的门级资源(约一半晶体管数),但不利于时序分析和可测试性设计(DFT)。因此ASIC设计中推荐使用DFF,而FPGA中LATCH使用受限(部分器件不支持或需特殊约束)。 5. **应用场景**:LATCH常用于速度要求高、功耗敏感的场景(如处理器流水线中的暂存),或作为地址锁存器;DFF是同步时序电路的标准存储单元,适用于大部分寄存器、计数器、状态机等。 6. **可综合性与风险**:LATCH在综合时可能产生不可预期的行为,尤其在不同综合工具下,且扫描链插入困难。DFF综合结果稳定,易于实现测试。 总结:LATCH和DFF的根本区别在于触发方式,由此衍生出时序、功耗、设计复杂度等多方面差异。在IC设计中,除非有明确低功耗或特殊速度要求,通常优先使用DFF以保证设计可靠性和可测试性。

涉及知识点

  • 电平触发 vs 边沿触发
  • 建立时间与保持时间约束
  • 透明模式与非透明模式
  • LATCH的毛刺与竞争冒险
  • DFT与扫描链兼容性
  • Verilog敏感列表写法
← 上一题
登录后反馈错题
下一题 →