大部分的FPGA和ASIC设计都是基于大量flip-flop或者寄存器的同步系统设计,所以所有这些同步单元的起始状态或者将要返回的状态是一个已知状态(罗辑‘1’或者‘0’)就显得非常重要。这一个功能通常都是由一个“reset”电路来完成。一个设计或者一个FPGA器件通常都使用或输入有一个或者多个复位信号,同时伴随一些其它控制逻辑电路来共同完成此“复位”功能。笔者希望探讨各种复位电路,同步的、异步的以及同步化的异步复位,分析这些不同复位电路的优缺点。展现实现这些不同复位电路的技巧,并使用Altera的TimeQuest时序分析器来对它们进行正确的时序分析。
我们通常意义上的同步电路通常是由两种复位方式来进行电路的复位,即同步复位和异步复位。同步复位的复位频率同步与寄存器的时钟域,而异步复位按性质,它影响或者说作用于寄存器的时刻和寄存器的时钟之间没有确定的时序关系。正因为如此,获取异步复位信号的时序关系是非常困难的。如前所述,我们还将讨论第三种复位,无法更好的为其命名,大家更多的时候叫其同步化的异步复位,就是一个异步复位被同步到系统时钟域,有时候大家也称这种过程为异步复位同步释放。这种同步化的异步复位,具有同步复位的好处,但是却没有同步复位的缺点;同时他们还避免了纯粹异步复位的缺陷。当我们详细地了解了这种复位结构后,我们将看到,这种同步化的异步复位应该是FPGA电路设计时复位电路的首选。
文章评论(0条评论)
登录后参与讨论