FPGA笔试题解析(三)

版权声明:本博客内容来自于个人学习过程中的总结,参考了互联网、数据手册、帮助文档、书本以及论文等上的内容,仅供学习交流使用,如有侵权,请联系,我会重写!转载请注明地址! https://blog.csdn.net/Reborn_Lee/article/details/87924105

1、简述建立时间和保持时间,画图表示?

建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。

保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。

image


2、简述触发器和锁存器之间的差别?

锁存器对电平信号敏感,在输入脉冲的电平作用下改变状态。

D触发器对时钟边沿敏感,检测到上升沿或下降沿触发瞬间改变状态。


3、计算最小周期?

image

Tco:寄存器更新延迟,clock output delay,时钟触发到数据输出的最大延迟时间

最小时钟周期:Tmin = Tco + Tdata + Tsu - Tskew。最快频率Fmax = 1/Tmin

Tskew = Tclkd – Tclks。


4、什么是Clock Jitter和Clock Skew,这两者有什么区别?

时钟抖动(Clock Jitter):指芯片的某一个给定点上时钟周期发生暂时性变化,使得时钟周期在不同的周期上可能加长或缩短。

如下图:

时钟偏移(Clock Skew):是由于布线长度及负载不同引起的,导致同一个时钟信号到达相邻两个时序单元的时间不一致。

如下图:

区别:Jitter是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。Skew是由不同布线长度导致的不同路径的时钟上升沿到来的延时不同。

时钟抖动和时钟偏斜的差别


5、什么是亚稳态,产生的原因,如何消除?

这个问题的详细介绍在博文:亚稳态专题

篇幅过大,给出简洁解释:

如果触发器的输入电压采样时间过短,即时序不够,则触发器需要花很长时间来实现输出逻辑达到标准电平,也就是说,电路处于中间态的时间变长,使得电路“反应”迟钝,这就是“亚稳态”。(例如输入信号在时钟有效沿的建立时间和保持时间之间改变了,导致不满足触发器的建立时间或保持时间,导致输出有一段时间的不稳定态,就是亚稳态。)
 

消除:两级或多级寄存器同步。理论上亚稳态不能完全消除,只能降低,一般采用两级触发器同步就可以大大降低亚稳态发生的概率,再加多级触发器改善不大。

è¿éåå¾çæè¿°

但注意双触发器作为同步器只能用在单比特数据的传递中。原因很简单,因为同步器输出只能保证是一个稳态不能不能保证是一个确定的值。故多比特数据使用同步器还是会出现乱码的情况。对于多比特数据的操作一般使用异步FiFO。 

参考代码:

reg data_mid;

reg data_out;

always @(posedge clk or negedge rst_n)begin

    if(!rst_n)begin

        data_mid <= 1'b0;

        data_out <= 1'b0;

    end

    else begin

        data_mid <= data_in;

        data_out <= data_mid;

    end

end

6、同步与异步?

同步复位和异步复位的区别

同步复位是复位信号随时钟边沿触发有效。异步复位是复位信号有效和时钟无关。

如异步复位:

同步复位:

同步逻辑和异步逻辑的区别

同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系

同步电路和异步电路区别

同步电路有统一的时钟源,经过PLL分频后的时钟驱动的模块,因为是一个统一的时钟源驱动,所以还是同步电路。异步电路没有统一的时钟源。


7、谈谈对Retiming技术的理解

Retiming就是重新调整时序,例如电路中遇到复杂的组合逻辑,延迟过大,电路时序不满足,这个时候采用流水线技术,在组合逻辑中插入寄存器加流水线,进行操作,面积换速度思想。

猜你喜欢

转载自blog.csdn.net/Reborn_Lee/article/details/87924105