SPARTAN-6 BUFIO2的设计咨询,鸿沟=2期

描述

在SPARTAN-6 FPGA中,使用分界(2)应用的BuFiO2有时会进入卡滞状态。因此,不支持它,并且需要使用另一种实现。

解决方案

DIVCK和SerDelStube的输出将不再运行时,在卡住状态。BuFiO2仍处于粘着状态,直到重新配置。IOCLK不依赖于状态机,并将继续运行。

在某些配置中,BuFiO2可能由于BuFiO2的时钟输入上的毛刺而进入卡滞状态。这些故障可以由多个源引起,包括不稳定时钟、浮动输入或FPGA配置启动条件。即使在SpTNAN-6器件的输入端有一个已知的干净时钟,BuFiO2仍然会由于FPGA配置/启动条件的内部故障而进入卡滞状态。

刚果民主共和国信息

如果使用除法=2,(从ISE设计套件14.6开始),你会看到一个DRC错误:元件BuFiO2OXY的除法设置无效2。不支持此设置。有关更多信息,请参见(赛灵思解答56113).
再次,上述DRC将在ISE设计套件14.6中实施。

替代方案

为了避免使用BuFiO2,除法(2)设置,这里列出了一些减少时钟频率的标准方法。这并不是一个完整的列表,而是被提供来强调一些更常见的解决方案。在图1A中:用BuFiO2失败的时钟生成,除法(2),BuFiO2被用来将鳍除以2。


通常使用DCMS和PLL来划分FPGA内部的时钟,这些技术仍然适用,并且可以用于避免失败的BuFiO2条件。请考虑到DCM/PLL的要求仍然必须满足。如果相位对准是设计要求,则BUFIO2FB反馈缓冲器应额外使用,如DCM时钟分频器中所示。PLL也可以类似地使用。


对于使用分频时钟来创建外部时钟输出的客户,可以使用安全的OSDES解决方案,因为使用BIFIO2、分频(4)的替代时钟生成所示的除法(4)被使用。请注意,从BuFiO2的IOLK只能路由到同一个半Bank内的I/OS。路由限制可能适用。


当使用SDR时,数据在OILCK(SDR)的每个上升沿上被驱动,如OsDES2 SDR时钟生成的时序波形所示。因此,驱动1010的数据模式将意味着每个时钟边缘(IOCLK(SDR))数据极性翻转。这意味着时钟模式数据速率将与IOCLK频率匹配。但是,因为目标是生成2位(1和0)的时钟数据模式,这意味着PIN上的时钟模式将出现为鳍/ 2。


数据酸盐SDRY1010=鳍

数据模式1/1 / 0/0产生具有数据速率的时钟脉冲,因为时钟模式重复每两个数据位(1,0)。

fSDRY1010= DATARATESDRY1010/ 2=鳍/ 2

另外,对于想要使用DDR数据速率的客户,第二OsSerD2选项可以为OSDES2添加加倍模式,如图1C所示。应用相同的BuFiO2路由限制,但由于使用USEXUBLUBER(TRUE),请注意附加路由限制。具体地,第二个BuFiO2(IO-RIFT)的要求,它具有UG38中所概述的专用位置。此外,USEL倍增器(TRUE)需要第二个路由(对于BUFIO 2LCK),这对于GTP时钟来说是不可用的。因此,当从全局时钟引脚进行路由时,该解决方案才是可行的。


当使用OSEDRES2与DATAXRATE(DDR)时,请注意数据模式是不同的(1100)。这是时钟产生的结果。两个时钟现在被驱动,CLK0,CLK1,如OSEDES2 DDR时钟产生的时序波形所示。在这种情况下,CLK0将所有其他数据位(例如D0、D2用于分频(4))进行驱动。但是,由于DDR模式正在被使用,现在有第二个时钟源由第二个BuFiO2驱动,II-反相(TRUE)驱动到CLK1。如图所示,IOCLK1是IOCLK0(或相位偏移180度,假设完美的50/50占空比)的反转版本,以创建第二时钟。IOCK1也将驱动其他数据位,D1,D3为分部(4)示例所示。

数据酸盐DDRY1100=鳍* 2

数据模式1/1 / 0/0产生具有数据速率的时钟脉冲,因为它需要4个数据位(1,1,0,0)来创建单个时钟脉冲。

fDDRY1100= DATARATEDDRY1100/ 4=鳍* 2/4=鳍/ 2


修订历史
05 / 22/13 -初始释放

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 17:59:16 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它