fzwwj95 发表于 2018-9-30 09:22:40

关于FPGA的复位

复位管脚
      理论上来说,FPGA器件是没有专用的复位脚的,任何一个通用IO都可以作为FPGA逻辑功能的复位输入。这一点与单片机不同。对于常见的FPGA开发板,可以使用按键来作为复位输入。例如在AC6102开发板上,有5个按键,任意一个都可以作为复位输入,而我们为了使用时的方便,使用右上角的按键作为复位按键比较方便,因为其离另外4个按键距离较远,设计功能时不易与其他按键混淆。用户也可以自行尝试将复位功能设计在另外4个按键上,也都是可以正常工作的。


上电复位实现
      既然上文已经说了FPGA上没有那个管教是专用复位脚,那么当使用某按键作为复位脚时,是否需要加入常见的RC复位元件,以支持上电复位呢?
      实际上没有必要,其一是因为FPGA在完成配置之后有一个初始化过程,这个过程能对我们设置的reset管脚实现上电复位的类似功能。另外从严格意义上来说,FPGA逻辑代码是不能采用这样的常规上电复位思路的。原因在于fpga上电之后要首先进行配置流程,只有配置流程结束后,设计的逻辑功能才会开始运行。我们所说的复位脚,是针对正常运行时的逻辑来说的。然而,从上电到完成配置,最起码要0.5秒,一些大一点的FPGA器件,配置所需时间更长,可能长达几秒钟。一般的RC上电复位电路,时间也都在0.5秒以内,因此使用RC复位电路对于FPGA器件来说,实际上可能没有任何意义。即FPGA不能用外部延时复位电路,因为时间不够,FPGA逻辑还没就绪,上电复位状态就结束了。
      对于fpga来说,要想实现上电复位非常简单,在内部设计一个计数器,计数满就释放复位信号并停止计时即可。


那为啥 一般复位引脚会接在全局时钟引脚上?
         altera的寄存器有自动清零输入端口,用全局时钟可以让寄存器能够“同步”复位,这里的同步是大概同时到达的意思。因为全局时钟信号延迟低,抖动小,信号质量高。


大家有其他的看法,欢迎提出。

页: [1]
查看完整版本: 关于FPGA的复位