FPGA之面试基础知识

一、同步电路与异步电路的区别

同步电路:存储电路状态的转换是在同一时钟脉冲源的同一边沿下同步动作的,同步时序电路的存储电路一般用触发器实现,所有触发器的时钟输入端应接在同一个时钟脉冲源上,而且他们的时钟脉冲触发沿也都应一致。

异步电路:电路中触发器的时钟输入端没有连接在统一的时钟脉冲上,或电路中没有时钟脉冲(如SR锁存器构成的时序电路),从而电路中个存储单元的状态更新不是同时发生的。

二、Moore与Mealy型状态机的特征

  • Moore 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化
  • Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关。

在现代高速时序电路设计中,一般尽量采用Moore型时序电路结构,以利于后续高速电路的同步。

三、同步逻辑与异步逻辑

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

        同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入 x 有无变化,状态表中的每个状态都是稳定的。  

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

        异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起。

四、寄存器

寄存器是数字系统中用来存储二进制数据的逻辑器件。存储N位二进制数据的寄存器需要用N个触发器组成。

锁存器属于电平敏感电路,而寄存器是脉冲边沿敏感电路。它们的应用场合不同,主要取决于控制信号与数据信号之间的定时关系,以及控制存储数据的方式。

  • 如果数据状态的更新可能出现在控制信号(锁存器的LE)开始有效之后,则只能使用锁存器,不能保证各个锁存器输出同时更新状态;
  • 如果能确保输入数据的更新在控制信号(寄存器的CP)触发沿出现之前稳定,并要求输出同时更新状态,可选择寄存器。
  • 一般寄存器比锁存器有更好的同步性能和抗干扰能力;

五、什么是亚稳态?为什么两级触发器可以防止亚稳态传播?

亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态,一个触发器一旦进入亚稳态状态,则无法预测触发器的输出电平,也无法预测什么时候可以稳定在某个确定的电平上,此时触发器的输出端Q在较长时间内处于振荡状态,不等于输入端D。

亚稳态出现的主要原因是因为触发器无法满足setup time或者hold time。

使用两级触发器来使异步电路同步化的电路其实叫做“一位同步器”,他只能用来对一位异步信号进行同步。

两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。

同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期

更确切地说,输入脉冲宽度必须大于同步时钟周期与第一级触发器所需的保持时间之和。最保险的脉冲宽度是两倍同步时钟周期。所以,这样的同步电路对于从较慢的时钟域来的异步信号进入较快的时钟域比较有效,对于进入一个较慢的时钟域,则没有作用。

六、如何防止亚稳态?

亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

  • 降低系统时钟频率
  • 用反应更快的FF(触发器)
  • 引入同步机制,比如加两级触发器
  • 改善时钟质量,用边沿变化快速的时钟信号

七、查找表的原理和结构

查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有 4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,CPLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

八、多时域设计中,如何处理信号跨时域?

 不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响

信号跨时钟域同步:

  • 当单个信号跨时钟域时,可以采用两级触发器来同步;
  • 数据或地址总线跨时钟域时可以采用异步FIFO来实现时钟同步;
  • 第三种方法就是采用握手信号 

猜你喜欢

转载自blog.csdn.net/qq_32164245/article/details/81110513
今日推荐