【问题标题】:does FPGA reset automatically after programmed?FPGA编程后会自动复位吗?
【发布时间】:2018-08-13 01:54:05
【问题描述】:

我正在从事 FPGA 项目,现在只有一个问题。

更新 FPGA 板上的比特流时,是否会自动重置 FPGA 内的所有触发器?使用 Vivado 设计 FPGA 时,有一个外部复位端口,用户必须切换该端口才能复位 FPGA。

如果初始 FPGA 编程过程自动重置所有触发器,为什么我们需要外部重置端口?

【问题讨论】:

  • 全局设置/重置 (GSR) 信号在配置期间置位以重置和重新初始化所有 BRAM 和触发器。这是reset external port 在哪里?如果它在您的设计中,它可以用于重置设计而无需重新配置..!!你是这个意思吗?查看link了解更多详情。
  • 在使用 vivado 设计工具时,我使用了 clocing 向导,它给了我一个重置外部端口和默认 sysclk 300mhz。
  • 是否可以假设 FPGA 在使用比特流对设备进行编程后初始化 FPGA BRAM 和内部的所有单元?那么FPGA系统就不需要使用reset信号了。

标签: fpga reset xilinx vivado


【解决方案1】:

FPGA 中的所有寄存器和 BRAM 单元都在配置过程中进行了初始化,因此如果您在 FPGA 中只使用这些信号,您可能不需要额外的复位信号。

FPGA 中的某些硬逻辑组件可能需要复位,尤其是在您有多个时钟的情况下。

Zynq 等 FPGA 包含一个处理器/IO 复合体,在重新配置附加的可编程逻辑时不会复位。

诸如 PCIE 之类的协议实现可能需要重置以与它们的对等方同步。在这些情况下,使用复位信号而不是重新编程 FPGA 很方便,有时甚至是必要的。

【讨论】:

  • 我很确定,在将比特流发送到 fpga 之后,至少在 zynq 架构上不会重置所有寄存器。当我在 Zynq 上启动 Linux 时,寄存器(例如时钟)在 fsbl 中设置并且可以手动更改(小心)。但是读取寄存器时,有些会被重置为零(DMA,...),但不是全部,这取决于它们的物理位置以及它们是如何启动的。
  • 我的陈述涉及可编程逻辑中的所有寄存器。在 Zynq 上,源时钟由处理器复合体中的寄存器控制,并且在配置可编程逻辑时不会复位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多