确保SRL和触发器在配置后正确初始化方法
FPGA 架构中的 SRL16 和触发器是通过 GWE(全局写使能)信号来释放的,该信号允许这些同步元件在配置完成后改变状态。GWE 是紧接配置后启动过程的一部分。
GWE 会为配置时钟同步释放 SRL16 和 触发器,并且会在该部分产生巨大的歪斜。因此,在同步设计中会产生两种类型的行为:
由于 GWE 释放的同步元件与配置时钟有关,而与用户的系统时钟无关, 因此,触发器和 SRL16 会产生时序违规。
传递 GWE 信号表明 SRL16 和触发器的释放时间可能稍有不同,从而导致设计的某些部分在 其他部分之前启动。
此问题将不会影响大多数设计。如果该设计符合下列标准之一,则应该在设计中实现此答复记录底部的解决方案,以防止此问题的发生:
此设计依赖于 对初始化序列元件的同步启动,并使用 触发器和 SRL (这包括使用初始值的推导 SRL,检查映射报告以确定是否在设计中使用 SRL)。
此设计依赖于对初始化序列元件的同步启动,该设计不会在同步元件启动后对其进行复位断言。无法进行 SRL 复位。
下列 解决方案详细探讨了此问题,并提供了相应的解决方法,您应该使用这些方法来确保设计中的同步元件与用户系统时钟保持同步启动,从而防止上述两种行为的发生。 此答复记录适用于所有 Xilinx FPGA。
解决方案
您可以使用两种不同的方法来确保设计与用户系统时钟保持同步启动。 您应该在设计中使用下列两种方法之一:
1) 第一种方法是控制时钟来驱动设计。
在启动后的最初时间里,应停止时钟运行。
当从 STARTUP 原语中断言 EOS 信号后,此时钟可以与用户的系统时钟同步重新 启动。
控制此时钟的最佳方法是使用 BUFGCE、BUFR 复位或 BUFHCE。 请注意,此方法不能用于为 DCM 提供反馈的时钟。对 DCM 的反馈时钟执行门控管理,可能会造成 DCM 的不可靠操作。
2) 替代的方法是使用可控的单个同步元件的 CE 端口,而不是停止时钟的运行。
在启动后的最初时间里,不应 启用 CE 端口。
在从 STARTUP 原语中断言 EOS 信号后,可以使 CE 引脚与用户系统时钟保持同步。
请注意,此技术更易于受时序和传送问题的影响。 如果在您的设计中不能使用时钟停止运行的方法,则仅应使用在启动后同步设计的方法。同时,请记住,此方法不能与推导逻辑在一起使用,因为无法直接控制推导逻辑的 CE 引脚。
适用于器件
Virtex-4 FX
Virtex-4 LX
Virtex-4 QPro/R
Virtex-4 SX
Virtex-4Q
Virtex-4QV
Virtex-5 FXT
Virtex-5 LX
Virtex-5 LXT
Virtex-5 SXT
Virtex-5 TXT
Virtex-5Q
Virtex-5QV
Virtex-6 CXT
Virtex-6 HXT
Virtex-6 LX
Virtex-6 LXT
Virtex-6 SXT
Virtex-7
Virtex-7 HT
Spartan-6 LX
Spartan-6 LXT
Kintex-7
Artix-7
Spartan-3
Spartan-3 XA
Spartan-3A
Spartan-3A DSP
Spartan-3AN
Spartan-3E
Spartan-II
Spartan-IIE
Virtex
Virtex QPro/R
Virtex-E
Virtex-E QPro
Virtex-II
Virtex-II Pro
Virtex-II Pro X
Virtex-II QPro/R
评论