【问答】FPGA 配置 – DONE 变为高电平后我应给 CCLK 应用多少个时钟周期?

描述
DONE 变为高电平后应给 CCLK 应用多少个时钟周期以确保我的 FPGA 器件完全工作。

解决方案
DONE 由 Startup 序列释放,表明配置已经完成。

此状态是使用 BitGen "-g DONE_cycle" 选项定义的。默认情况下,DONE 在周期 4 中变高。

DONE 说明配置已经完成,且所有数据都已载入,但应应用一些额外的时钟周期,以确保启动序列正确完成。

启动过程是由一个 7 状态机控制机控制的。 DONE 之后所需时钟周期的保守为 64个周期;这能满足大多数使用案例的需求,这里 DONE 使用理想时钟和默认选项。

一些 BitGen 选项会延迟整个startup的过程。

这些包括:

  • LCK_cycle – 延迟启动,直到所有 DCM/MMCM 都被锁定,因此添加的时钟周期数量是未定义的。
  • Match_cycle – 延迟启动,直到 DCI 匹配,因此添加的时钟周期数量是未定义的。
  • DONE_PIPE – 添加时钟周期到 DONE_CYCLE 指定的状态。
  • 如果在启动过程中不提供足够的时钟数量,会出现以下症状:

  • I/O 保持三态。
  • 双模式引脚在 LVCMOS 中工作,而不是指定的 I/O 标准。 在双模式引脚上使用DCI时,DCI 是针对 LVCMOS 校准的,而不是针对选定的I / O校准的。 为避免这种情况,请参阅(Xilinx Answer 14887)
  • ICAP 接口不能从 FPGA 架构访问,因为配置逻辑被锁定。
  • 除某些双端口引脚外,还有占空比或幅度失真。 伪差分信号(例如DIFF_SSTL_15和LVDS)可能会发生这种情况。
  • 当设备尚未到达启动状态机的末尾时,会发生这种情况。 在达到启动状态结束之前,设备可能已完全运行。 这可能会导致 ICAP 读写错误,并阻止双模式引脚使用正确的 I / O 标准。

    可以通过将 EOS 信号驱动为高电平来确认此事件。用 STARTUP 原语可在 STAT 寄存器中观察或在 FPGA 架构中检测到。

    对访问 ICAP 的设计方案而言,较好的设计实践是实例化 STARTUP 原语。

    该原语有一个 EOS 引脚,表示配置过程已完成,并且 ICAP 具有读写访问权限。

    使用 JTAG 配置时例外。 对于 JTAG,访问配置逻辑具有最高优先级。

    当 JTAG 访问配置逻辑时,ICAP 读取和写入失败。该 EOS 引脚上的值并不表示 JTAG 有访问权限。

    最新文章

    最新文章