本文主要讲解关于Xilinx 7系列FPGA局部时钟资源相关内容,让我们来一起学习下吧!
局部时钟网络是玩去哪独立于全局时钟网络的。与全局时钟不同,局部时钟信号(BUFR)的覆盖范围仅限于一个时钟区域。一个I/O时钟信号驱动单个时钟区域。这些网络对于源同步接口设计特别有用。在7系列器件中,I/O bank与局部时钟域的大小相同。 在7系列器件中,局部时钟资源和网络由以下路径和组件构成:
1、具有时钟功能的I/O
在每个I/O列中的每一个I/O bank中,每个局部时钟域有四个具有时钟功能的I/O引脚对。 具有时钟功能的I/O对是在特定位置选择的专用I/O对,它们通过特殊的硬件连接与附近的区域时钟资源和其他时钟资源相连。 此外,具有时钟功能的I/O对也可以用作常规的I/O对。当用作时钟输入时,具有时钟功能的引脚可以驱动BUFIO、BUFMR和BUFR。每个I/O列支持局部时钟缓冲器(BUFR)。每个器件中有两个I/O列。 当用作单端时钟引脚时,如全局时钟缓冲器中所述,必须使用引脚对的P侧,因为只有该引脚存在直接连接。 一个CCIO(具有时钟功能的I/O)可以驱动该局部时钟域中的任何BUFR,但只有专用的CC(时钟连接)才能驱动特定的BUFIO,而MRCC可以一对一地驱动BUFMR。即一个CCIO只能与特定的BUFIO或BUFMR建立单一连接。
2、I/O时钟缓冲器—BUFIO
在7系列器件中,BUFIO是一个可用的时钟缓冲器。BUFIO在I/O bank内驱动专用的时钟网络,独立于全局时钟资源。因此,BUFIO非常适合用于源同步数据捕获(转发/接收器时钟分配)。BUFIO是由位于同一bank的具有时钟功能的I/O、来自MMCM的HPC或相同及相邻区域的BUFMR驱动。在一个局部时钟域中,每个bank有四个BUFIO。在每个bank/局部时钟域内每个BUFIO可以驱动一个单独的I/O时钟网络。BUFIO不能驱动CLB、块RAM、DSP等逻辑资源,因为I/O时钟网络只能到达同一bank/局部时钟域中的I/O列。 BUFIO可以由以下方式驱动: • 在同一时钟域内的SRCC和MRCC • 在相邻时钟域的使用BUFMR的MRCC • MMCM的HPC(CLKOUT0至CLKOUT3)
3、BUFIO基本元件
BUFIO是一个时钟输入、一个时钟输出的缓冲器。输入和输出之间存在相位延迟。图2-19展示了BUFIO。表2-6列出了BUFIO的端口。 BUFIO通过具有时钟功能的I/O来驱动I/O逻辑。这种实现在源同步应用中非常理想,其中使用转发时钟来捕获传入数据。 在源同步通信系统中,数据发送方和接收方共享同一个时钟信号,以确保数据的正确传输。BUFIO的使用正是为了在这个系统中提供一个稳定和准确的时钟信号,以便接收方能够正确地捕获数据。 具体来说,BUFIO接收来自具有时钟功能的I/O引脚的时钟信号,并将其传递到I/O逻辑中。这个时钟信号可以用于同步接收到的数据,确保数据在正确的时刻被采样和处理。
4、局部时钟缓冲器—BUFR
BUFR是7系列器件中另一个可用的时钟缓冲器。BUFR将时钟信号驱动到局部时钟域内的专用时钟网络中。每个BUFR可以驱动其所在时钟域内的四个局部时钟网络。与BUFIO不同,BUFR可以驱动I/O逻辑和CLB、块RAM等逻辑资源。BUFR具有生成相对于输入时钟的分频时钟能力。分频值是一个介于1和8之间的整数。BUFR非常适用于需要跨时钟域或串行到并行转换的源同步应用。 BUFR由以下驱动: • 同一局部时钟域的SRCC和MRCC • 使用BUFMR的相邻时钟域的MRCC • MMCM的HPC(CLKOUT0至CLKOUT3) • MMCM的CLKOUT0至CLKOUT3 • 一般互连 每个I/O列支持局部时钟缓冲器。每个器件中有两个I/O列。BUFR还可以直接驱动MMCM的时钟输入和BUFG。 BUFR(如图2-21)是一个具有分频能力的时钟输入/时钟输出缓冲器。7系列FPGA中的BUFR还可以直接驱动MMCM的时钟输入和BUFG。 BUFR的端口和定义如下表: 当CE被激活(asserted)或取消激活(deasserted)时,输出时钟信号会开启或关闭。当全局设置/复位(GSR)信号为高电平时,即使CE保持高电平,BUFR的输出也会被保持在复位状态。只有当GSR信号被取消激活,且BUFR的输入端口上有时钟信号时,BUFR的输出才会切换。 在使用BUFR时,需要特别注意CE和GSR信号的作用。CE信号用于控制BUFR输出的开启和关闭,而GSR信号则用于全局复位操作。由于CE信号并不参与时序分析,因此在使用时应当避免将其视为一个可以精确控制时序的信号。同时,也要确保在全局复位期间,BUFR的输出能够正确地保持在复位状态,以避免可能出现的时序错误或系统不稳定。 BUFR中的时钟分频是通过软件控制的BUFR_DIVIDE属性来实现的。通过配置这个属性,可以控制BUFR对输入时钟进行分频的比例,从而得到所需频率的输出时钟 在FPGA设计中,BUFR因其独特的时钟管理能力而备受青睐。它可以在不同的时钟域之间传递时钟信号,实现时钟的同步和转换,确保数据在传输过程中的稳定性和准确性。此外,BUFR还能够支持串并转换,这在处理串行数据流时非常有用,可以将串行数据转换为并行数据,提高数据处理速度和效率。
5、多局部时钟缓冲器—BUFMR/BUFMRCE
每个bank中有两个BUFMR,每个缓冲器可以由同一bank中的一个特定MRCC驱动。MRCC引脚在引脚名称中用MRCC标记,以表示引脚对的P和N引脚(例如:IO_L12P_T1_MRCC_12或IO_L12N_T1_MRCC_12)。BUFMR驱动BUFIOs和/或BUFRs,这些BUFIOs和BUFRs可以位于同一局部时钟域/bank中,或者是上方和下方局部时钟域/bank中。BUFR和BUFIO基本单元需要单独实例化。 当使用BUFR分频器(不是在旁路模式下)时,必须通过取消断言CE引脚来禁用BUFMR,BUFR必须复位(通过断言CLR清除),然后应断言CE信号。这个序列确保所有BUFR输出时钟相位对齐。如果BUFR内部的分频器不被使用,则电路拓扑只需要使用BUFMR。 BUFMR输入包括: • 同一个bank中的MRCCs • 同一局部时钟域中的GT时钟 BUFMR是具有时钟使能(CE)的时钟输入/时钟输出缓冲器。取消断言CE会停止输出时钟。BUFMR必须驱动BUFRs和BUFIOs以布线到同一局部时钟域/bank以及相邻的局部时钟域/bank。BUFMR由同一区域中的MRCCs或GT时钟驱动。 在使用BUFMR或BUFMRCE与BUFIOs时,接口引脚必须位于三个bank之内。 类似地,如果与BUFRs一起使用,逻辑必须适合最多三个局部时钟域(如果使用三个BUFRs)。如果将内存接口放置在BUFRs/BUFIOs所在的同一局部时钟域或bank中,那么从BUFMR到该局部时钟域或bank中的BUFHs/BUFIOs的连接可能会受到限制。图2-25展示了BUFMRCE的拓扑结构。 为确保时钟输出无干扰,CE_TYPE属性应始终设置为SYNC。如果BUFMRCE的时钟输出被停止(例如,通过取消断言CE),则当BUFMRCE再次启用后,BUFR必须被复位(CLR)。BUFMRCE上的CE的主要目的是为BUFRs和BUFIOs提供同步且相位对齐的时钟。 当BUFMRCE的时钟输出被停止时,例如通过取消断言CE信号,BUFMRCE将不再向BUFRs和BUFIOs提供时钟信号。在这种情况下,为了确保BUFRs的正确操作,当BUFMRCE再次启用时,需要对BUFR进行复位操作(CLR)。这是因为BUFRs可能会记住之前的状态,如果不进行复位,可能会导致时钟信号的相位不同步或引入不必要的干扰。 最后,CE在BUFMRCE中的主要作用是提供同步且相位对齐的时钟信号给BUFRs和BUFIOs。这意味着BUFMRCE能够确保从BUFMRCE输出的时钟信号与BUFRs和BUFIOs所需的时钟信号在相位上保持一致,从而避免了由于时钟信号的相位差异而可能导致的时序问题。
6、水平时钟缓冲器—BUFH,BUFHCE
水平时钟缓冲器(BUFH)用于在单个局部时钟域内驱动水平全局时钟树主干(如图2-26所示)。每个局部时钟域有12个可用的BUFH。每个BUFH都有一个时钟使能引脚(CE),允许动态关闭时钟。BUFH可以由以下方式驱动: • 在同一个局部时钟域内的MMCM/PLL输出 • BUFG输出 • 在同一个或水平相邻的局部时钟域内的的GT输出时钟 • 本地互联 • 来同一个水平相邻的局部时钟域/bank的左侧或右侧I/O bank的有时钟功能的输入 BUFHCE是BUFH的增强版本,它提供了更多的控制和灵活性。BUFHCE的主要特点包括: • 同步时钟使能(CE_TYPE属性设置为SYNC):确保时钟输出无抖动。 • 相位对齐功能:通过BUFHCE,可以确保时钟信号在多个BUFH之间保持相位对齐。 • 多种驱动源:除了MMCM/PLL、BUFG和GT输出时钟外,BUFHCE还可以接受其他类型的时钟源,如本地互联或I/O bank的时钟功能输入。 时钟使能引脚可以完全关闭时钟,从而实现潜在的节省功耗的效果。与BUFG驱动两个相邻区域相比,BUFH的功耗和抖动更低。 BUFH的主要优势在于它能够有效地在水平相邻的区域之间传播时钟信号,同时保持较低的功耗和抖动。通过利用BUFH,可以构建出更为高效和稳定的时钟网络,减少因时钟信号问题而引发的时序错误或性能下降。
以上就是关于Xilinx 7系列FPGA局部时钟资源相关的全部内容,希望对你有帮助。欢迎持续关注程序员导航网,学习愉快哦!