【发明授权】发送器的通道到通道的偏斜校正_赛灵思公司_201580049682.8 

申请/专利权人:赛灵思公司

申请日:2015-04-27

发明/设计人:P·诺威利尼;G·古亚斯提

公开(公告)日:2020-11-24

代理机构:北京市君合律师事务所

公开(公告)号:CN107077445B

代理人:顾云峰;吴龙瑛

主分类号:G06F13/40(20060101)

地址:美国加利福尼亚州

分类号:G06F13/40(20060101);G06F13/42(20060101)

优先权:["20140915 US 14/486,820"]

专利状态码:有效-授权

法律状态:2020.11.24#授权;2017.09.12#实质审查的生效;2017.08.18#公开

摘要:在一种大体涉及启动多个发送器190的方法中,为具有相应数据缓冲器121的多个发送器190中的每一个启动一个序列。响应于执行所述序列,为每个数据缓冲器121设置延迟。所述序列包括:获取与读时钟信号106相关联的读地址108501;获取与写时钟信号105相关联的写地址109502;确定读地址108和写地址109之间的差值503;设置与所述差值111相关联的标志信号113有效504;以及调整读时钟信号106以改变差值111来定位标志信号113的状态位置的改变,以设置多个数据缓冲器121的数据缓冲器121的延迟505。

主权项:1.一种用于启动多个发送器的方法,包括:为具有相应多个数据缓冲器的多个发送器中的每个发送器启动启动或复位序列;以及响应于每个所述发送器执行所述启动或复位序列,均衡跨越所述多个数据缓冲器的延迟;其中所述序列包括:响应于读时钟信号获取读地址值,所述读时钟信号被与所述多个数据缓冲器中的一个数据缓冲器的深度相关联的除数所除;响应于写时钟信号获取写地址值,所述写时钟信号被所述除数所除;用减法器电路确定所述读地址值和所述写地址值之间的差值;响应于所述差值与所述多个数据缓冲器中的一个数据缓冲器的深度的中点的比较指示所述差值小于或等于所述深度的中点,用比较器电路设置标志信号为第一逻辑状态;响应于所述差值与所述深度的中点的比较指示所述差值大于所述深度的中点,用所述比较器电路设置所述标志信号为第二逻辑状态;以及用相位插值器电路调整所述读时钟信号直到所述标志信号发生状态变化。

全文数据:发送器的通道到通道的偏斜校正技术领域[0001]以下描述涉及集成电路装置。更具体地,以下描述涉及集成电路的发送器的通道到通道的偏斜校正(lane-to-lanede-skew。背景技术[0002]通常,在发送器启动或复位时,比如像串行器-解串器(SERDES,Serializer-deserializer中使用的发送器,会使用缓冲器旁路模式。缓冲器旁路模式用于避免例如由发送器的缓冲器所引起的偏斜。由于数据可在多个通道上串行化,多个发送器可能会因为通过并行使用它们各自的缓冲器比如先入先出缓冲器FIFO而引起通道到通道的偏斜。但是,缓冲器旁路模式具有明显的电路开销以及其他限制。[0003]此外,诸如H时钟树或其他类型的时钟网络可用于向对应于多个发送器的FIFO提供写时钟。时钟网络可能会随着温度变化具有显著的变化。为了补偿这种变化,延迟对准器可用于将写时钟可调地设置进这样的时钟网络中。延迟对准器可能是个复杂的模拟电路,因此延迟对准器的使用可能会增加缓冲器旁路操作模式的电路开销。另外,写时钟和读时钟间的相位变化可降低定时裕量timingmargin,并且随着集成电路变得越密集和越大,电路也会越容易受到信号传播延迟的差异的影响,即越容易受到通道到通道的偏斜的影响。[0004]因此,期望提供不包含上述一个或多个上述限制的多个发送器间的偏斜均衡。发明内容[0005]一种大体涉及启动多个发送器的方法。在这种方法中,对具有相应数据缓冲器的多个发送器中的每一个启动(initiate序列。响应于执行所述序列,为每个数据缓冲器设置延迟。所述序列包括:获取与读时钟信号相关联的读地址;获取与写时钟信号相关联的写地址;确定读地址和写地址之间的差异;设置与所述差异相关联的标志信号有效;并调整所述读时钟信号去改变所述差异以定位所述标志信号的状态位置的变化,从而置所述数据缓冲器的一个数据缓冲器的延迟。[0006]可选地,多个发送器的每个数据缓冲器可至少被设置为大致相同的延迟值。[0007]可选地,所述多个发送器可与多个通道相关联,并且所述多个通道可具有用于并行数据的最大的通道到通道的偏斜,所述并行数据分布于多个发送器,以准备进行串行化。[0008]可选地,在所述序列之后,每个数据缓冲器可被设置为中点。[0009]可选地,数据缓冲器可是具有用于存储数据的寄存器的FIFO。[0010]可选地,数据缓冲器可是具有用于存储数据的存储单元的FIFO。[0011]可选地,多个发送器可有相应的多个收发器。[0012]另一种大体涉及启动多个发送器的方法。在这种方法中,对具有相应数据缓冲器的多个发送器中的每一个启动序列,响应于执行所述序列,给每个数据缓冲器设置延迟。所述序列包括:获取与读时钟信号相关联的读地址;获取与写时钟信号相关联的写地址;确定读地址和写地址之间的差异;设置与所述差异相关联的标志信号有欢;调整所还铁盯评1目号以改变所述差异;并重复所述序列的步骤以定位所述标志信号的状态位置的改变。状态位置的改变是针对读时钟信号的读时间域与写时钟信号的写时间域之间的域交叉。所述数据缓冲器的一个数据缓冲器的延迟被设置为状态位置的改变。_[0013]可选地,对应于数据缓冲器的标志信号的重复设置有效可用于触发标志信号。[0014]可选地,如果差值小于或等于所述多个数据缓冲器的一个数据缓冲器的缓冲器深度的一部分,则标志信号可被设置有效为逻辑〇,并且如果所述差值大于所述数据缓冲器的深度的所述部分,则标志信号可被设置有效为逻辑1。[0015]可选地,如果标志信号是逻辑1,则数据缓冲器的填充水平可大于一半;如果标志信号是逻辑0,则数据缓冲器的填充水平可小于或等于一半。[0016]可选地,所述序列可在多个发送器的启动或复位时启动,并且为所述序列设置有效的所述标志信号可对应于数据缓冲器并对于所述序列的初始周期包括逻辑〇和逻辑1。[0017]可选地,读地址的获取可包括用读时钟信号除以一个与数据缓冲器的缓冲器深度相关联的除数来获得读地址。[0018]可选地,写地址的获取可包括用写时钟信号除以那个与数据缓冲器的缓冲器深度相关联的除数来获得写地址。[0019]可选地,差值的确定可包括格雷编码;Graycoding。[0020]可选地,所述方法还可包括为与第一标志信号的状态位置的第一改变相关联的数据缓冲器的第一FIFO设置第一延迟,为与第二标志信号的状态位置的第二改变相关联的数据缓冲器的第二FIFO设置第二延迟,通过数据缓冲器的第一Firo缓冲器接收第一数据,通过数据缓冲器的第二FIFO缓冲器接收第二数据。通过第一FIFO缓冲器的第一数据的第一延迟可至少足够接近于第二数据通过第二FIFO缓冲器的第二延迟,以使通道到通道的偏斜可被接受。[0021]—种大体涉及具有多个发送器的集成电路装置。在所述集成电路装置中,多个发送器中的第一发送器包括第一数据缓冲器和耦接到所述第一数据缓冲器的第一输入输出控制模块。多个发送器中的第二发送器包括第二数据缓冲器和耦接至所述第二数据缓冲器的第二输入输出控制模块。第一数据缓冲器具有第一延迟。第二数据缓冲器具有第二延迟。第一输入输出控制模块被耦接为接收写时钟信号和第一读时钟信号,并且被配置为分别为其生成第一写地址和第一读地址。第一输入输出控制模块被配置为确定第一写地址和第一读地址之间的第一差值,并设置与所述第一差值相关联的第一标志信号有效。第一输入输出控制模块被耦接为反馈第一标志信号以调整第一读时钟信号,从而调整第一差值以达到与第一数据缓冲器中的第一位置相关联的第一标志信号的状态位置的第一改变。第二输入输出控制模块被耦接为接收写时钟信号和第二读时钟信号,并且被配置为分别为其生成第二写地址和第二读地址。第二输入输出控制模块被配置为确定第二写地址和弟一k地址之间的弟一差值,并设置与桌一差值相关联的第二标志信号有效。第二输入输出控制模块被稱接为反馈第二标志信号以调整第二读时钟信号,从而调整第二差值以达到与第二数据缓冲器中的第二位置相关联的第二标志信号的状态位置的第二改变。[0022]可选地,第一发送器和第二发送器都是被耦接为接收并行数据的SERDES发送器,并且分别在第一通道和第二通道中提供并行数据以用于转换为串行数据。隣3」可选地,第一输入输出控制模块和第二输入输出控制模块分别包括第—相位插值器和第二相位插值器。第一相位插值器可被耦接为接收第一标志信号作为反馈以调整第一读时钟信号,而第二相位插值器可被耦接为接收第二标志信号作为反馈以调整第二读时钟信号。[0024]可选地,第一位置和第二位置对应于第一相位插值器的单位间隔中的第一个点和第二相位插值器的单位间隔中的第二个点。第一个点可与第一延迟相关联。第二个点可与第二延迟相关联。第一相位插值器可响应于第一标志信号而被调整,以定位第一读时钟信号的第一读时间域与写时钟信号的第一写时间域之间的第一域交叉。第二相位插值器可响应于第二标志信号而被调整,以定位第二读时钟信号的第二读时间域和写时钟信号的第二写时间域。第一相位插值器和第二相位插值器可是可调整的,以使分别与第一域交叉和第二域交叉相关联的第一延迟和第二延迟均衡化。[0025]其它特征将从对下面的详细描述和权利要求的考虑中被认识。附图说明[0026]附图示出了示例性装置和或方法。然而,附图仅是用于解释和理解,而不应被视为限制权利要求的范围。[0027]图1示出了具有发送器的示例性集成电路装置的框图;[0028]图2和图3示出了图1的集成电路装置的示例性发送器的框图;[0029]图4示出了用于启动图1的发送器的示例性延迟调整流程的流程图;[0030]图5示出了示例性设置序列的流程图,其可用于图4的延迟调整流程的操作;[0031]图6示出了示例性列式现场可编程门阵列FPGA架构的简化框图。具体实施方式[0032]在下面的描述中,阐述了许多具体细节以提供对本文所述的具体示例的更全面的描述。然而,对于本领域技术人员应当显而易见的是,可在没有以下给出的所有具体细节的情况下实践一个或多个其他示例和或这些示例的变型。在其他情况下,众所周知的特征没有被详细描述,以免使本文中实施例的描述不够突出。为便于说明,在不同的图表中相同的部件会使用相同的数字标记;然而,在不同示例中,部件可不同。[0033]在描述所述几个附图中的示例之前,提供概括介绍以进一步理解。[0034]由于数据可在多个通道上串行化,多个发送器可通过并行使用它们各自的缓冲器例如FIFO会引起通道到通道的偏斜。如下面所更详细地描述的,每个发送器的相位插值器可被用于调整从该相位插值器提供的读时钟信号读时钟)的相位,以从发送器的FIFO读出数据。因此,尽管受到传播延迟中的一些差异,但是每个读时钟可与提供给发送器的每个nfo的公共源的写时钟信号写时钟相位对齐,即源自公共写时钟的写时钟。[0035]通常,FITO在数据串行化之前处于发送器数据路径中。一般地,可能来自FPGA架构或其他电路的数据响应于脉冲边沿、或者输入或写时钟信号的边沿而被输入或写入到FIFO。所述数据可具有N位宽度,N等于或大于1IF0可为存储器和或一组寄存器。FIFO可存储多组输入,即多个字。相应地,FFO可被描述为具有深度M,用于存储多达M个字,所述M个字中的每个字可是N位宽。因此,高达M个N位宽的字的实例可一次存储在FIFO中。[0036]发送器中的FIR可至少部分地用于通过吸收偏斜来缓冲数据,所述偏斜与经由时钟网络提供的输入或写时钟信号的传播延迟的差异相关联。用于将输入或写时钟信号分配到多个发送器的时钟网络可由于传播延迟而具有显著的FIFO到FIFO的偏斜,其传播延迟可能对电压和或温度敏感。相反,输出或读时钟信号可从相位插值器、或发送器或收发器内部的其它电路提供,并且因此可由于这种邻近而不具有显著的FIFO到HF0的偏斜。因此,例如,提供给延迟对准器和发送器的相位插值器的相同参考时钟具有实质上不同的传播延迟,其中延迟对准器用于将读时钟信号驱动到用于对FIFO的输入侧或写入侧进行时钟控制的时钟网络上,而发送器的相位插值器用于对该FIFO的输出侧或读取侧进行时钟控制。相应地,FIFO的深度通常是为了适应最大的传播延迟,即为了启动或复位集成电路装置,fifo通常根据输入或写时钟信号的传播延迟来定大小。[0037]另外,发送器FIFO可在未知状态下复位或启动。例如,发送器FIFO复位可是用于SERDES的复位过程中的最后一个操作。在发送器FIFO复位之后,所述FIFO可“大致”半满。然而,要在SERDES发送器的多个FIFO中传输的数据通常没有通过“大致”半满状态被对准或至少不足够对准。换言之,信道可处于三个状态中的任何一个,S卩比全空要满,或者比全满要空,或者在中点,并且信道之间的这种变化可不足以用于一些应用。[0038]在过去,读时钟信号和公共源写时钟信号之间的相位均衡与FIFO的“旁路”一起使用以形成SERDES。在“缓冲旁路模式”中,使用复杂的模拟相位检测器电路有时称为延迟对准器来保持相位对准。每个发送器延迟对准器用于,使每个发送器相位插值器将相应的读时钟信号带入与公共源写时钟信号的己知相位关系,其中每个FIFO仅以一个字的深度操作。然而,在操作期间,会调整公共写时钟信号的相位以保持其与每个读时钟信号同相,因为在操作期间使用发送器的相位插值器会引入不希望的抖动。在操作期间,由于时钟网络有时被称为时钟树,H树或其他类型的时钟网络)的问题,写时钟信号可相对于读时钟信号异相。例如,时钟网络可对温度敏感,并且因此温度变化可导致提供给不同发送器的公共源写时钟信号的传播延迟的差异。再者,各个发送器延迟对准器用于补偿这种差异,以将来自公共写时钟信号的对应发送器写时钟信号调整为与这种发送器的相应读时钟信号同相。因此,通道到通道的偏斜可在相位对准窗口内,如在具有被减少到每次只存储一个向量的FIFO的发送器之间一样。然而,除了使用复杂的模拟延迟对准器所涉及的实质开销外,使用更大的时钟网络、更宽的数据总线和或更窄的相位对准窗口,已使使用缓冲器旁路模式变得更加成问题。[0039]如下面补充细节所描述的,SERDES的所有发送器数据缓冲器可精确地设置为,以PI粒度为准,半满和不是“大致地”半满。此设置可用于有效地均衡SERDES发送器的所有数据缓冲器中的延迟,因此实质上减少了通道到通道的偏斜。相应地,生成标志信号以指示数据缓冲器的状态。所述标志信号被反馈用于提供给所述数据缓冲器的输出时钟信号的相位调整。所述调整可被迭代地增加或减少,以在这种数据缓冲器中找到这样的标志信号的状态转换的位置,例如从逻辑1到逻辑0,或者逻辑0到逻辑1。SERDES发送器的所有数据缓冲器可类似地设置至此位置以均衡跨越这些数据缓冲器的延迟。[0040]考虑到上述一般理解,下面总体地描述用于具有多个发送器的集成电路装置的各种配置。[0041]图1示出了具有多个发送器190的示例性集成电路装置100的框图。在该示例中,仅示例性地描绘了两个发送器190-1和19〇-2;然而,在其他情况下,可使用多于两个的发送器。此外,发送器19〇可具有相应的收发器或者可是单独的发送器。发送器丨⑽-丨和丨⑽^可以对应于通道191-1和191-2。通道191-1和191-2可具有分布于发送器190-1和190-2的并行数据的最大的通道到通道的偏斜,以准备进行串行化。[0042]发送器190的第一发送器190-1包括第一数据缓冲器121_0P耦接至第一数据缓冲器121-1的第一输入输出控制模块161-1。发送器190的第二发送器190—2包括第二数据缓冲器121-2和耦接至第二数据缓冲器121-2的第二输入输出控制模块161-2。[0043]第一数据缓冲器m-i具有第一延迟,第二数据缓冲器121-2具有第二延迟。所述第一和第二延迟可彼此不同,包括但不限于在集成电路器件100的启动或复位时。相应地,输入数据120-1可被提供给第一数据缓冲器121—丨的定时输入,输入数据uo-2可被提供给第二数据缓冲器121_2的定时输入。输出数据122-1可响应于来自第一数据缓冲器121-1的定时输出而输tB,输出数据122-2可响应于来自第二数据缓冲器121-2的定时输出而输出。[0044]在该示例中,如边界15〇大体示意的,第一输入数据120-1和第二输入数据120-2从集成电路可编程结构(fabric提供给SERDES18〇。特别地,集成电路可编程结构是现场可编程门阵列。然而,第一输入数据120-1和第二输入数据120-2可来自任何集成电路可编程结构和或专用资源,或者甚至通过数据,传给集成电路1〇〇的由两个或更多个发送器形成的SERDES180。[0045]相应地,第一输出数据122-1和第二输出数据122-2可被输入到并行输入-串行输出数据转换器(“PIS0”,Parallei-Input-to-Serial-Output192,以获得从HS0输出的串行数据193。由于数据缓冲器121-1和121-2各自的第一和第二延迟之间的差异,可能存在相对于第一输出数据122-1和第二输出数据122_2的通道到通道的偏斜,所述差异可以如下所述来解决。换言之,第一发送器19〇-1和第二发送器19〇-2都可以是被耦接以经由输入数据120-1和12〇_2接收作为N位宽字的并行数据或字的部分的SERDES发送器180JERDES发送器180可被耦接以分别在用于输出数据122-1的第一通道和用于输出数据122-2的第二通道中提供所述并行数据,用于由PIS0转换为串行数据。[0046]^2示出了集成电路装置1〇〇的示例性发送器⑽-丨的框图,图3示出了集成电路装置100的示例性发送器190-2的框图。同时考虑图1_3的内容,进一步描述集成电路装置1〇〇。[0047]发送器19〇的写时钟信号105可共同源自参考时钟信号1〇1。参考时钟信号101可分别被提供给发送器19〇的相位插值器1〇2以及集成电路装置100的时钟网络。为了清楚而非限制的目的,时钟网络通常被描述为缓冲器103。因此,参考时钟信号1〇1可被输入到缓冲器103,用于将本地写时钟信号105分别分配给发送器190。因此,本地写时钟信号105可具有不同的传播延迟,并且因此可能不是全部在相同时间到达它们各自的发送器目的地,即所述本地写时钟信号1〇5可能相对于彼此异相并且相对于所述发送器190的相应的本地读时钟信号106异相out-of-phase。另外,可以通过在输入输出控制模块161的寄存器中嵌入不平衡数目来名义上补偿在不同SERDES处不平衡的时钟树,例如诸如用于在由除法器107输出的写地址109中加上减去的偏移地址。最后,本地生成与相应的发送器19〇相关联的读时钟信号106,因此发送器19〇之间的读时钟信号1〇6通常相对于彼此异相。[0048]第一输入输出控制模块161-1可用于控制输入数据l2〇-1到第一数据缓冲器121—1的输入例如写入或加载),并且用于控制输出数据122_1从第一数据缓冲器m-l的输出酬如f或卸载)。同样地,第二输入输出控制模块lei_2可用于控制输入数据120_2到第一数据缓冲器121-2的输入例如写入或加载),以及用于控制输出数据122_2从第二数据缓冲器121-2的输出例如读取或卸载。[0049]由于第一和第二发送器ig〇具有相同的配置,为了清楚起见,下面通常仅就一个发送器190进行更详细地描述。另外,为了清楚而非限制的目的,数据缓冲器121被假定为先入先出数据缓冲器(“FIFO”)。所述FIFO1M可由存储器单元和或寄存器组所形成。为了清楚而非限制的目的,写时钟和读时钟被假定为可用于产生矢量集,即为了清楚起见,FIF〇121被假定为由按顺序访问的存储器形成。[0050]第一输入输出控制模块161-1被耦接以分别向除法器1〇7和1〇4接收写时钟信号105和第一读时钟信号1〇6,以分别为其生成第一写地址109和第一读地址1〇8。第一输入输出控制模块161-1可被配置为确定每个第一写地址109和每个第一读地址1〇8之间的第一差值ill。第一输入输出控制模块lew可被配置为设置与每个第一差值ln相关的第一标志信号113有效。第一输入输出控制模块w可被耦接以反馈每个这样的第一标志信号丄丄3以调整第一读时钟信号106,从而调整第一差值111以为与第一数据缓冲器121-1中的一个位置相关联的第一标志信号113达到状态位置的第一变化。[0051]第二输入输出控制模块161_2可接收写时钟信号1〇5和第二读时钟信号106,并且被配置为分别为其生成第二写地址109和第二读地址108。第二输入输出控制模块161-2可被配置为确定每个第二写地址1〇9和每个第二读地址10S之间的第二差值111第二输入输出控制模块161-2可被配置为设置与每个这样的第二差值m相关联的第二标志信号113有效。第二输入输出控制模块161_2可被耦接以反馈每个这样的第二标志信号113以调整这样的第二读时钟信号1〇6,从而调整这样的第二差值111以为与第二数据缓冲器121-2中的一个位置相关联的第二标志信号113达到状态位置的第二变化。[0052]第一输入输出控制模块161-1可包括第一相位插值器(“PI”,phaseinterpolator102。同样地,第二输入输出控制模块Ml-2可包括第二相位插值器1〇2。[0053]第一相位插值器102可被耦接以接收第一标志信号113作为反馈以调整第一读时钟信号106。更具体地,第一增量减量控制模块114其通常包括在相位插值器102中,但是为了清楚起见,这里被单独示出),可接收第一标志信号113以确定是否增加、减少或维持由调整信号115选择的第一位置,此第一位置与从第一相位插值器1〇2输出的第一读时钟信号106的延迟相关联。[00M]类似地,第二输入输出控制模块161-2的第二相位插值器102可被耦接以接收第二标志信号113作为反馈,以调整第二读时钟信号106。第二相位插值器102的第二增量减量控制模块114可接收第二标志信号113以确定是否增加、减少或维持由调整信号115选择的第二位置,其中第二位置与从第二相位插值器102输出的第二读时钟信号106的延迟相关联。[0055]第一位置和第二位置对应于第一相位插值器102的单位间隔(“UI”)中的第一位置或第一点和第二相位插值器102的单位间隔中的第二位置或第二点。例如,在启动时,所述第一点最初可与FIFO121-1的第一延迟相关联,所述第一延迟是可调节的,并且所述第二点可最初与FIFO121-2的第二延迟相关联,所述第二延迟是可调节的。[0056]第一相位插值器102可响应于第一标志信号II3而被调整,以定位第一读时钟信号106的第一读时间域与写时钟信号1〇5的第一写时间域之间的第一域交叉。同样地,第二相位插值器102可响应于第二标志信号113而被调整,以定位第二读时钟信号1〇6的第二读时间域和所述写时钟信号1〇5的第二写时间域。[0057]因为只有Firo1W直接在数据流的数据路径内,所以每个nro121的深度M123可导致这些FIFO之间的不同延迟,包括但不限于在发送器190的启动或重置时,导致两个或更多个FIFO121之间的不同延迟。在所述示例中,每个Firo121都能够保持M个字,其中每个字有N位,M是大于1的整数。[0058]第一相位插值器102和第二相位插值器102可被调整用于分别与第一域交叉和第二域交叉相关联的、与FIFO121-1相关联的第一延迟和与FIFO121-2相关联的第二延迟的均衡。因此,分别来自FIFO121-1和121-2的输出数据122-1和122-2可为被有效地数据相位对准。简而言之,FIFO121可是相对于彼此数据相位对准,而不使每个读时钟信号相位与公共源写时钟信号对准。因此,可避免使用发送器的复杂的模拟延迟对准器电路来保持本地写时钟信号与本地读时钟信号的相位对准。另外,输入输出控制模块161的组件可以是数字电路,并且在一些发送器中的这些数字电路中的一些通常可用于提供对应FIFO的下溢underflow和或上溢overflow的指示。因此,通过对这些组件分配任务以提供如上所述的反馈标志信号113,可独立地调整SERDES的每个发送器,并且这种SERDES的所有发送器在对每个发送器的这种独立调整后可具有至少基本相同的数据延迟,g卩,通道到通道的偏斜被显著减小。[0059]考虑到上述描述,图4示出了用于启动多个发送器190的示例性延迟调整流程400的流程图。同时考虑图1-4中的内容,对图4进行进一步描述。[0060]在401,集成电路装置100的发送器190作为启动或复位序列的一部分而被启动。在402,发送器190-1被设置或调整为具有用于FIFO121的FIFO121-1的延迟。所述延迟可与发送器190-1的标志信号113的状态位置的改变相关联,这种调整可以是响应于所述标志信号113的反馈的迭代调整,以增加或减少发送器190-1的PI102。t〇〇61]与402的操作并行地,在403,发送器190-2被设置或调整为具有用于FIFO121的FIFO121-2的延迟。所述延迟可与发送器的标志信号113的状态位置的改变相关联,这种调整可是响应于所述标记信号113的反馈的迭代调整以增加或减少发送器190-2的PI102。[0062]在404,输入数据120-1可由FIFO121-1接收,所述输入数据120-1可作为输出数据1M-1从FIFOm-l输出。与404的操作并行地,在405,输入数据120-2可由FIFO121-2接收,所述输入数据120-2可作为输出数据122-2从FIFO121-2输出。由于FIFO121-1和121-2可被调整为具有至少近似相同的延迟,所以相对于输出数据122-1和122-2的通道到通道的偏斜可以足够小(如果有的话),以使所述并行输出数据122-1和122-2在406串行化。换言之,通过FIFO1W-1的输入数据120-1的延迟至少足够接近通过FIFO121-2的输入数据12〇-2的延迟,以使用于串行化时通道到通道的偏斜可接受。[0063]为简述要旨,为了启动或重置发送器190,在401,可以为具有相应数据缓冲器诸如FIFO121的每个所述发送器190启动序列。响应于执行被启动的序列,所述序列可用于并行地为每个所述数据缓冲器设置延迟,例如在操作402和403处。然后,可从这样的数据缓冲器输入并输出并行数据,以用于随后的串行化。[0064]图5示出了示例性设置序列500的流程图,其可用于图4的402和403处的操作。同时考虑图2-5中的内容,对图5进行进一步描述。[0065]在501,可获得与读时钟信号106相关联的读地址108。每个读地址108可通过将读时钟信号106输入到输入输出控制模块例如输入输出控制模块161-1的除法器104来获得。为清楚起见,通过示例而非限制的方式,仅参考设置序列500来描述发送器190-1的操作;然而,应当理解,诸如SERDES的每个发送器190可被类似地设置。通常,在读时钟信号106被提供给除法器104的同时,所述读时钟信号106可被提供给诸如FIFO121-1的FIFO,以从该FIFO读出输出数据122-1。[0066]与在501获得读地址的同时,在502可获得与写时钟信号105相关联的写地址109。501和502的操作可并行执行。每个写地址1〇9可通过将写时钟信号105输入到输入输出控制模块161-1的除法器107来获得。通常,在写时钟信号105被提供给除法器107的同时,所述写时钟信号105可被提供给FIFO121-1,以将输入数据120-1写入到该HF0中。[0067]读地址108的获得可包括用读时钟信号106除以一个与缓冲器深度相关联的除数,以获得该读地址108。同样地,获得写地址109可包括用写时钟信号105除以一个与获得读地址相同的除数,即一个与所述缓冲器深度相关联的除数以获得这样的写地址109。[0068]除法器104和107均可被配置为除以除数M,所述M是先前描述的FIFO121-1的深度。除法器104和107可以是可编程的,且除法器104和107中的任一个可被预设为除以M作为复位reset的一部分。然而,更一般地,对于复位,由于读地址和写时钟通常具有相同的频率,因此在写地址109和读地址108之间的最大相位差通常被预设为读时钟或写时钟的一个时钟周期的至少一半的除法器107和104间的差值。所述差值可用于确保在由于时钟信号105的传播延迟而导致的对HF0121-1的相应写入之前不发生从FIFO121-1的读取。在这种情况下,时钟周期可是PI102的UI的多倍,并且所述PI可具有UI的116,132,164等的分辨率。因此,可以获得写时钟和读时钟信号的相位的精确对准。[0069]分别从除法器104和107输出的每个读地址108和每个写地址109可被输入到减法器110以确定差值111。相应地,在503,可确定读地址108和写地址109之间的差值111,其可彼此相关联。从减法器110输出的每个所述差值111可被提供给比较器112。每个所述差值111可指示读时钟信号106和相应的写时钟信号105之间的相位差。差值111可用于确定域交叉。所述域交叉可使用格雷编码来识别。因此,减法器110比仅确定两个地址之间的差异更复杂,因为这样的写地址109和读地址108是从可彼此异相的两个分离的时钟信号产生的。换言之,延迟测量可以是粗略的,因为读地址和写地址可在频率比线路速率低得多的时钟上演变。因为读地址和写地址可在具有未知相对相位关系的时钟上演变,所以可通过参考公共时钟而移动读地址和写地址来获得差别111,地址值用格雷编码。因此,差异可与在特定方向上的交叉域相关联,因此格雷编码是通过在与被耦接使用格雷编码的减法器110中具有计数器(例如,并未示出的读地址计数器和写地址计数器来产生这种差异的一个示例。然而,也可使用其他类型的编码。[0070]比较器112检查差值111以确定所述差值是否小于或等于发送器数据缓冲器例如发送器190-1的相应FIFO121-1的一个数据缓冲器的深度的一部分。在本示例中,如果差值小于或等于FIFO121-1的深度的这部分,则标志信号113被设置有效为逻辑〇。然而,如果所述差值111大于FIFO121-1的深度的这部分,则标志信号113被设置有效asserted为逻辑1。所述部分可以是FIFO的下溢条件,上溢条件,半满条件或一些其他填充水平。[0071]在本示例中,比较器112检查被指示为编码的每个差值111,以确定所述差值是否小于或等于M2,即FIFO121-1的深度的一半。比较器112可以是可编程的,并且可以被预设为与M2进行比较。换言之,比较器112可用于确定差值111是否小于或处于FIFO121-1的中点。在504,比较器112可设置与每个这样的差值111相关联的标志信号113有效,即差值111是否小于或等于FIFO121-1的中点。在本示例中,如果标志信号113是逻辑1,则FIFO121-1的填充水平大于一半;如果所述标志信号是逻辑〇,则FIFO121-1的填充水平小于或等于一半。[0072]换言之,通过使用PI102使FIFO121-1逐渐变得更空,直至达到PI102中的一个点或一个抽头位置,其中在每个相关通道中从其发送在其中发送的一些并行数据的相位可在时间上向前移位,其中标志信号113对所有这样的信道从逻辑0转换到逻辑1,并且从每个相关通道中发送在每个相关通道中发送的其它并行数据的相位可通过使用PI102在时间上向后移位,以使FIFO121-1逐渐变得更加充满,直至PI102中的一个点或一个抽头位置,其中标志信号113对所有这样的信道从逻辑1转换为逻辑0。这两个转换位置都可使用;然而,为了在所有这样的信道中更大地均衡延迟,可设置逻辑0转换位置或逻辑1转换位置。换言之,在延迟均衡之后,标志信号113可以对所有通道是逻辑1或逻辑KFIF0121的任何剩余通道到通道的偏斜可受到PI102分辨率的限制,例如在一些PI中的UI的164。[0073]在本示例中,在启动或复位序列之后,发送器190的每个数据缓冲器(例如FIF0121可被调整为设置成中点。然而,除了中点设置之外,可使用数据缓冲器内的其它设置位置。此外,数据缓冲器可被设置为相对于彼此不同的位置。简言之,可针对应用和或集成电路装置定制这样的设置以最小化或以其它方式减少通道到通道的偏斜。[0074]在505,标志信号113可被提供给增量减量控制模块114以提供调节信号115。调节信号115可被提供给PI102以调节读时钟信号106,从而改变差值111以定位标志信号113的状态位置的改变,以设置数据缓冲器中的一个数据缓冲器的延迟,诸如相应的发送器190的FIFO121的FIFO121-1。如连接线506所示,可重复操作501至505以定位标志信号113的状态位置的改变。[0075]一旦PI102接收到指示状态位置的改变的调整信号115大体如507处确定的指示),则状态位置的这种改变可用于读时钟信号106的读时间域和与读时钟信号106相对应的写时钟信号105的写时间域的域交叉。因为FIFO121-1的延迟被有效地设定为状态位置的所述改变,所以PI102可忽略此电流调整信号115。因此,PI102可在508处有效地退出设置序列500。如果还没有发现状态位置的改变,则PI102可继续设置序列500,大体如连接线510所示。一般来说,一旦SERDES发送器190的所有数据缓冲器都被设置为相同的延迟,诸如每个FIFO121的中点,则所述延迟调整可不必在发送器190的启动序列或复位之后重新调整。换言之,为了均衡发送器SERDES的多个信道中的延迟,不是使用在电压和或温度变化上施加恒定延迟的电路,而是如此处所述地调整FITO的延迟随着电压和或温度简单地改变,保持至少彼此充分地相等。换言之,在操作期间,由于温度和或电源电压变化,FIFO延迟可以改变,甚至显著地改变,但是所有这些FIFO延迟通常保持彼此相等。[0076]如在507所述的,一旦标志信号113从逻辑1切换到逻辑0或从逻辑0切换到逻辑1状态,则在每个发送器190中的PI102停止。逻辑状态中的这种转换标记调整阶段的结束,其可用于以非常高的精度均衡所有发送器190的延迟,这可仅由相应的PI102的分辨率限制。因此,在完成设置序列500的执行之后,可退出这样的序列以避免使PI102连续操作。由于这种连续操作的PI引入的抖动,具有连续操作的PI将降低输出质量。[0077]相应的发送器190的数据缓冲器121的每个数据缓冲器可被设置为至少近似相同的延迟值。更具体地,相应的发送器190的数据缓冲器121的每个数据缓冲器可被设置为具有以PI102的粒度为准的相同的延迟值。[0078]重复设置发送器190的相应FIFO121的标志信号113有效可导致该标志信号的触发。PI102因此可被控制以引起相关联的标志信号113切换,即处于转换位置的“边沿”。相应地,对于对应于数据缓冲器的序列而设置有效的标志信号113可包括用于在启动或复位时的该序列的初始周期的逻辑0和逻辑1。这意味着两个或更多个相同的发送器可能以不同的延迟从复位中出现,因为它们可处于不同的填充水平。在发送器中,这可能是由外部FIFO复位信号和内部读时钟信号106之间的未知相位关系引起的。如果FIFO121是N位宽,则多个发送器190可呈现最多N位的通道到通道的偏斜。如果N等于16左右,则常规的SERDES将具有大于N的并行输入位宽度。然而,诸如XAUI,PCIExpress和SFI-5的协议具有远小于16的通道到通道的偏斜规范。这些协议可涉及具有最小的通道到通道的偏斜,而对所有通道可能必须相等的延迟可以在操作期间改变。[0079]如上所述,通道到通道的偏斜可在不使用延迟对准器并且在数据传输操作期间保持PI关闭的情况下产生。此外,除了如上所述反馈标志信号113之外,输入输出控制模块是数字电路,该电路可存在于现有的发送器中。[0080]PI102允许独立地在每个SERDES发送器上移动要发送的数据的相位。可选地,可以使用高速发送除法器中的位跳跃bitskip;然而,PI102可用于在减少剩余通道到通道的偏斜时获得更高的精度。然而,不需要进行实际的延迟测量,而是可使用由指定的FIFO填充等级触发的标志。这样的标志生成是比用于测量延迟的电路简单得多的电路。此外,可相对于相位差以高分辨率执行标志的生成。这里使用了术语“标志flag”,然而,上溢下溢电平信号也可用于这样的标志信号。[0081]以上描述是针对发送器SERDES的操作。然而,上述描述可用于当锁定在参考模式中并由相同的信号驱动时的接收器。相应地,当锁定在参考模式中时,可通过向具有串f回送发送器的所述接收器馈送均衡的通道到通道的发送器偏移,以提供给对输入数据过采样的接收器。[0082]因为本文描述的一个或多个示例可在FPGA中实现,所以提供了对这样的1C的详细描述。然而,应当理解,其他类型的1C可从本文所描述的技术中受益。[0083]可编程逻辑器件(“PLD”)是公知类型的可被编程以执行指定的逻辑功能的集成电路。一种类型的PLD,现场可编程门阵列(“FPGA”),通常包括可编程片tile阵列。这些可编程片可包括例如输入输出模块(“I0B”),可配置逻辑模块(“CLB”),专用随机存取存储器模块(“BRAM”),乘法器,数字信号处理模块(“DSP”),处理器,时钟管理器,延迟锁定环(“DLL”)等等。本文所用的“包括”指包括但不限于。[0084]每个可编程片通常包括可编程互连和可编程逻辑。可编程互连通常包括通过可编程互连点(“PIP”)互连的不同长度的大量互连线。可编程逻辑使用可编程元件实现用户设计的逻辑,可编程元件可以包括例如函数发生器,寄存器,算术逻辑等等。[0085]可编程互连和可编程逻辑通常通过将配置数据流加载到定义可编程元件如何配置的内部配置存储器单元中来编程。配置数据可以从存储器例如,从外部PROM读取或通过外部设备写入FPGA。然后,各个存储器单元的集体状态确定FPGA的功能。[0086]另一种类型的PLD是复杂可编程逻辑器件,或叫CPLDXPLD包括通过互连开关矩阵连接在一起和输入输出(“IO”)资源的两个或更多个“功能模块”。CPLD的每个功能模块包括类似于在可编程逻辑阵列(“PLA”)和可编程阵列逻辑(“PAL”)装置中使用的两级ANDOR结构。在CPLD中,配置数据通常存储在片上的on-chiP非易失性存储器中。在一些CPLD中,配置数据存储在片上的非易失性存储器中,然后作为初始配置编程序列的一部分下载到易失性存储器。[0087]对于所有这些可编程逻辑器件(“PLD”),器件的功能由为此目的提供给器件的数据位控制。数据位可以存储在易失性存储器中(例如,静态存储单元,如在FPGA和一些CPLD中),或在非易失性存储器中(例如,FLASH存储器,如在一些CPLD中),或任何其它类型的存储单元中。[0088]其他PLD通过应用可编程地互连器件上的各种元件的处理层(例如金属层)来编程。这些PLD称为掩模可编程器件。PLD也可以以其它方式实现,例如使用熔丝或反熔丝技术。术语“PLD”和“可编程逻辑器件”包括但不限于这些示例性器件,以及包括仅部分可编程的器件。例如,一种类型的PLD包括硬编码晶体管逻辑和与硬编码晶体管逻辑可编程互连的可编程开关结构的组合。[0089]如上所述,高级FPGA可以在阵列中包括几种不同类型的可编程逻辑模块。例如,图6示出了包括大量不同的可编程片的FPGA架构600,其包括多吉比特(gigabit收发器“MGT”)601,可配置逻辑模块(“CLB”)602,随机存取存储器模块(“BRAM”)603,输入输出模块模块(“I0B”)604,配置和时钟逻辑(“C0NFIGCL0CKS”)605,数字信号处理模块(“DSP”)606,专用输入输出模块(“IO”)607例如,配置端口和时钟端口)以及诸如数字时钟管理器,模数转换器,系统监视逻辑等的其它可编程逻辑608。一些FPGA还包括专用处理器模块“PROC”)610。[0090]在一些FPGA中,每个可编程片包括具有去到和来自每个相邻片中的对应互连元件的标准化连接的可编程互连元件(“INT”)611。因此,可编程互连元件一起实现用于所示FPGA的可编程互连结构。可编程互连元件611还包括去到和来自同一片内的可编程逻辑元件的连接,如图6的顶部的示例所示。[0091]例如,CLB602可以包括可配置逻辑元件(“CLE”)612,其加上单个可编程互连元件“INT”)eil可被编程以实现用户逻辑。BRAM603可以包括除一个或多个可编程互连元件之外的BRAM逻辑元件(“BRL”)613。通常,片中包括的互连元件的数量取决于片的高度。在所示的实施例中,BRAM片具有与五个CLB相同的高度,但是也可以使用其它数量例如四个)。除了适当数量的可编程互连元件之外,DSP片606可以包括DSP逻辑元件(“DSPL”)614。除了可编程互连元件611的一个实例之外,I〇B604可以包括例如输入输出逻辑元件(“I〇L”)6l5的两个实例。如本领域技术人员所清楚的,实际的比如连接到IO逻辑元件615的IO衬垫pad通常不限于输入输出逻辑元件615的区域。[0092]在图示的实施例中,靠近管芯中心的水平区域如图6所示)用于配置、时钟和其他控制逻辑。从所述水平区域或列延伸的垂直列609用于在穿过FPGA的宽度上分配时钟和配置信号。[0093]利用图6所示的架构的一些FPGA包括附加逻辑模块,其中断构成FPGA的大部分的常规柱状结构。附加逻辑模块可以是可编程模块和或专用逻辑。例如,处理器模块610横跨几列CLB和BRAM。[0094]注意图6仅旨在示出示例性的FPGA架构。例如,行中的逻辑模块的数量,行的相对宽度,行的数量和顺序,包括在行中的逻辑模块的类型,逻辑模块的相对大小以及包括在图6的顶部的互连逻辑的实现,是纯示例性的。例如,在实际的FPGA中,CLB通常在出现的任何地方都包括多于一个的相邻CLB行,以便于用户逻辑的有效实现,但是相邻CLB行的数量随着FPGA的总体尺寸而变化。[0095]尽管上述描述了示例性的装置和或方法,但是在不脱离由所附权利要求所确定的及其等同的本发明的范围的情况下,可以根据本文的—个或多个方面的描述设计出其他和进一步的示例。权利要求所列的步骤不暗含步骤的任何顺序。商标是其各自所有者的产权。

权利要求:1.一种用于启动多个发送器的方法,包括:为具有相应数据缓冲器的多个发送器中的每个发送器启动一个序列;并且响应于执行所述序列,为所述数据缓冲器中的每个数据缓冲器设置延迟;其中所述序列包括:获取与读时钟信号相关联的读地址;获取与写时钟信号相关联的写地址;确定所述读地址和所述写地址之间的差值;设置与所述差值相关联的标志信号有效;以及调整所述读时钟信号去改变所述差值,以定位所述标志信号的状态位置变化,从而给所述数据缓冲器中的一个数据缓冲器设置所述延迟。2.根据权利要求1所述的方法,其中,所述多个发送器的所述数据缓冲器中的每个数据缓冲器至少被设置为近似相同的延迟值。3.根据权利要求2所述的方法,其中:所述多个发送器与多个通道相关联;以及所述多个通道有一最大的通道到通道的偏斜,用于分布于所述多个发送器的并行数据,以准备进行串行化。4.根据权利要求2或3所述的方法,其中在所述序列之后,所述数据缓冲器中的每一个都被设置为中点。5.根据权利要求4所述的方法,其中所述数据缓冲器是具有用于存储数据的寄存器的先入先出缓冲器。6.根据权利要求4或5所述的方法,其中所述数据缓冲器是具有用于存储数据的存储单元的先入先出缓冲器。7.根据权利要求4-6中任一项所述的方法,其中所述多个发送器具有相应的多个收发器。8.根据权利要求1所述的方法,其中所述序列进一步包括重复所述序列的步骤以定位所述标志信号的状态位置的变化,并且其中所述状态位置的变化是针对读时钟信号的读时间域与写时钟信号的写时间域之间的域交叉,并且所述数据缓冲器中的一个数据缓冲器的延迟被设置为状态位置的变化。9.根据权利要求8所述的方法,其中对应于所述数据缓冲器的标志信号的重复设置有效是用于触发所述标志信号。10.根据权利要求8或9所述的方法,其中:如果所述差值小于或等于所述多个数据缓冲器中的数据缓冲器的缓冲器深度的一部分,则所述标志信号被设置有效为逻辑〇;并且如果所述差值大于所述的数据缓冲器的所述深度的所述部分,则所述标志信号被设置有效为逻辑1。11.根据权利要求10所述的方法,其中:如果所述标志信号为逻辑1,则所述的数据缓冲器的填充水平大于一半;并且如果所述标志信号为逻辑0,则所述的数据缓冲器的所述填充水平小于或等于一半。12.根据权利要求1〇或11所述的方法,其中:在所述多个发送器的启动或复位时启动所述序列;并且为所述序列设置有效的标志信号对应于所述数据缓冲器并且包括用于所述序列的初始周期的逻辑0和逻辑1。13.根据权利要求8-12中任一项所述的方法,其中,所述读地址的获取包括:用所述读时钟信号除以一个与所述的数据缓冲器的缓冲器深度相关联的除数来获得所述读地址。14.根据权利要求11所述的方法,其中,所述写地址的获取包括:用所述写时钟信号除以与所述的数据缓冲器的所述缓冲器深度相关联的所述除数来获得所述写地址。15.根据权利要求8-:L2中任一项所述的方法,其中,所述差值的确定包含格雷编码。

百度查询: 赛灵思公司 发送器的通道到通道的偏斜校正