FPGA数字IC笔试面试020—锁存器latch和触发器FF
大家好,我是探索者,今天是刷题之——Latch 和 Flip-Flop(锁存器和触发器,timing borrow时钟借用,STA静态时序分析),作者:IC探索者 + FPGA探索者文章加入合集:【收藏!】FPGA数字IC求职必备知识点目录——持续更新https://www.nowcoder.com/discuss/959891
1. 真题
【英伟达】【复旦微】latch与flip-flop的区别,什么时候会综合出Latch,如何避免;
2. 什么是FF和Latch
Flip-Flop是触发器(简写为FF),边沿触发,可以用作寄存器register存储数据;Latch是锁存器,电平触发,也可以存储数据。3. FF和Latch的优缺点
触发器比锁存器占的面积大,但是一般在应避免产生Latch,原因如下: (1)Latch是电平触发,对毛刺敏感;Flip-Flop是边沿触发,稳定性高;
(2)Flip-Flop可以设计成均在同一个时钟的同一个边沿的驱动下触发,是同步电路设计,而如果这其中有Latch的产生,则数据的寄存不止发生在某一边沿,打破了同步设计(异步设计),这样不利于STA静态时序分析(STA只能分析同步电路,插Latch以后属于异步)。
Latch的优点:
(1)面积比FF小,在ASIC设计中可以做出来Latch去实现一定的逻辑,能够节省资源;但是在FPGA设计中,是没有单独的Latch的,一般是LUT查找表实现组合逻辑,Flip-Flop实现时序逻辑,FPGA中的Latch实际上也是消耗FF来实现的;注意此处所说的Flip-Flop实现时序逻辑,并且用Flip-Flop实现的Latch锁存器,这暗示着Latch实际上也是时序逻辑。曾经有笔试题考过:Latch是不是时序逻辑。答案:Latch是时序逻辑,有数据存储功能。
(2)Latch可以在某些场合用于解决一定的时序问题,利用其电平触发特性,相比边沿触发能够多出来半个时钟周期的缓冲时间,专有名词timing borrow(时钟借用),这部分可以自行查阅。
(2)Latch可以在某些场合用于解决一定的时序问题,利用其电平触发特性,相比边沿触发能够多出来半个时钟周期的缓冲时间,专有名词timing borrow(时钟借用),这部分可以自行查阅。
4. 什么情况下会产生Latch?如何避免?
产生情况: (1)在组合逻辑中,if...else条件不完备;
(2)在组合逻辑中,case 语句不完备;
一定注意是在组合逻辑中,如果是在时序逻辑中,即使if...else或者case不完备,默认会用FF来实现数据的存储。
就是因为在组合逻辑中想实现的是组合逻辑,却因为条件不完备没有给出else...条件下要执行的赋值,所以此时默认保持输出不变,这样就隐含了数据暂存在里面,所以产生了Latch来暂存数据。
代码:
`timescale 1ns / 1ns /////////////////////////////////////// // Engineer: IC探索者 // Module Name: latch_ff // Description: latch 和 flip-flop测试 // Tool Versions: vivado 2018.2 /////////////////////////////////////// module latch_ff( input clk, input enable, input data_in, output reg data_out1, output reg data_out2 ); always @ (data_in, enable) begin if(enable == 1'b1) begin data_out1 <= data_in; end end always @ (posedge clk) begin if(enable == 1'b1) begin data_out2 <= data_in; end end endmodule
综合以后:
FPGA数字IC笔试面试019—CDC跨时钟域处理 https://www.nowcoder.com/discuss/966108?source_id=profile_create_nctrack&channel=-1
华为不同地区和部门的提前批把我搞乱了 https://www.nowcoder.com/discuss/964733?source_id=profile_create_nctrack&channel=-1
TP-Link提前批面试经验和注意要点,能线下一定参加线下面 https://www.nowcoder.com/discuss/962867?source_id=profile_create_nctrack&channel=-1
秋招提前批开始,不懂这些可能会错过满意offer! https://www.nowcoder.com/discuss/958964?source_id=profile_create_nctrack&channel=-1
FPGA数字IC笔试100道题 文章被收录于专栏
笔试刷题及解析,FPGA和数字IC类的笔试题汇总、解析,助力实习、提前批、秋招