FPGA面试题
1. 什么是Setup ,Holdup,建立时间裕量,保持时间裕量和亚稳态?
答:首先明确一点,setup 建立时间和holdup 保持时间 都是对于触发器而言的。
建立时间是指,时钟边沿前,数据信号保持不变的时间,如果你的触发器建立时间不够,那么数据将不能稳定的打入进来,如果建立时间足够,那么数据就可以稳定的打入进来;
保持时间是指,时钟边沿后,数据信号保持不变的时间,如果你的触发器保持时间不够,那么数据将不能稳定的打入进来,如果保持时间足够,那么数据就可以稳定的打入进来。
不满足建立时间和保持时间,将得不到正确的采样数据, D触发器将会出现亚稳态的情况。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
2 .什么是竞争和冒险现象?怎样判断?如何消除?
在组合逻辑中,同一信号经不同的路径传输后,到达电路中某一会合点的时间有先有后,这种现象称为逻辑竞争,而因此产生输出干扰脉冲(毛刺)的现象称为冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。
例如:L =A && (~A),理论上L应恒为0
由于A与 ~A走的路径不同,非门会有延时,因此A 与 ~A进入与门的时间不完全一样。
输出端L有毛刺。不要试图去消除竞争和冒险,有组合逻辑就必定有毛刺,解决办法:
1、 输出时寄存一次再输出
2、 利用可靠性编码;
3、 硬件上:输出端接入滤波电容;