使用非同步缓冲器的时钟域边界跨越的制作方法_2

文档序号:8367798阅读:来源:国知局
存储器(例如,快闪存储器,如在一些CPLD中)或任何其它类型的存储单元。
[0027]通过应用以可编程的方式互连所述装置上的多种元件的处理层,如金属层,对其它PLD进行编程。这些PLD被称为掩模可编程装置。PLD还可以其它方式来实施,例如使用熔丝或反熔丝技术。术语“PLD”与“可编程逻辑装置”包含但不限于这些示范性装置,以及涵盖仅仅部分可编程的装置。举例来说,一种类型的PLD包含经硬编码的晶体管逻辑与以可编程的方式互连所述经硬编码的晶体管逻辑的可编程开关构造的组合。
[0028]如上文所指明,高级的FPGA可在阵列中包含几个不同类型的可编程逻辑块。举例来说,图1说明包含大量不同可编程单元片的FPGA架构100,所述可编程单元片包含数千兆位收发器(“MGT”)101、可配置逻辑块(“CLB”)102、随机存取存储器块(“BRAM”)103、输入/输出块(“1B”)104、配置和定时逻辑(“CONFIG/CLOCKS”)105、数字信号处理块(“05?”)106、专用输入/输出块(“I/O”)107(例如,配置端口和时钟端口)以及其它可编程逻辑108,例如,数字时钟管理器、模数转换器、系统监控逻辑等。一些FPGA也包含专用处理器块(“PR0C”)110。
[0029]在一些FPGA中,每个可编程单元片包含规范化地连接到并连接自每个相邻单元片中的对应互连元件的可编程互连元件(“INT”)111。因此,可编程互连元件结合在一起实施用于所示出的FPGA的可编程互连结构。可编程互连元件111还包含连接到并连接自同一单元片内的可编程逻辑元件的连接,如图1的顶部处所包含的实例所示。
[0030]举例来说,CLB 102可包含可经编程以实施用户逻辑的可配置逻辑元件(“CLE”)112,外加单个可编程互连元件(“INT”)111。除一个或一个以上可编程互连元件之外,BRAM 103还可包含BRAM逻辑元件(“BRL”)113。通常,包含在单元片中的互连元件的数目取决于所述单元片的高度。在描绘的实例中,BRAM单元片具有与五个CLB相同的高度,但也可使用其他数目(例如,四个)。除适当数目的可编程互连元件之外,DSP单元片106还可包含DSP逻辑元件(“DSPL”)114。除可编程互连元件111的一个实例之外,1B104还可包含,例如,输入/输出逻辑元件(“1L”) 115的两个实例。如所属领域的技术人员将清楚的,连接到例如I/O逻辑元件115的实际I/O衬垫通常不限制于输入/输出逻辑元件115的区域。
[0031]在所描绘的实例中,(图1中所示的)裸片的中心附近的水平区域用于配置、时钟以及其它控制逻辑。由此水平区域或列延伸的垂直列109用于横跨FPGA的宽度来分配时钟和配置信号。
[0032]一些利用图1中所说明的架构的FPGA包含额外的逻辑块,所述逻辑块中断组成FPGA较大部分的普通的柱状结构。所述额外的逻辑块可以是可编程块和/或专用逻辑。举例来说,处理器块110跨越了若干列CLB和BRAM。
[0033]应注意,图1仅意图说明示范性FPGA架构。举例来说,行中的逻辑块的数目、行的相对宽度、行的数目与顺序、包含在行中的逻辑块的类型、所述逻辑块的相对尺寸,以及包含在图1顶部的互连/逻辑实施方案纯粹是示范性的。举例来说,在实际的FPGA中,CLB的一个以上相邻行通常包含在CLB出现处,以促进用户逻辑的有效实施,但相邻CLB行的数目随FPGA总体尺寸的变化而变化。
[0034]图2-1至2-4为描绘相应示范性时钟域边界跨越200的方块图。出于明确性的目的,应假定每一时钟域边界跨越200为非同步边界。然而,在其它设备中,写入时钟信号和读取时钟信号针对使数据进入和离开信道FIFO可具有相同频率,其中此读取时钟信号和写入时钟信号并非相同的信号并且相对于彼此可为异相的。然而,在此设备中,最多可存在一个周期相位差。
[0035]来自高速通信链路的数据可在IC(例如图1的FPGA 100)内部细分为多个平行路径。每一此数据路径可遭遇略不同的延时,如下文更详细描述。尽管使用通信信道的实例,但应理解,不论是否关于联网,可使用通过信道或通道发送的任何数据组。
[0036]每一非同步边界200包含多个信道250-1至250_N(N为大于一的正整数)(“信道250”)。信道250-1至250-N分别包含非同步缓冲器210-1至210_N(“非同步缓冲器210”)、延时确定块211-1至211-N( “延时确定块211”)、分接头选择电路220-1至220_N( “分接头选择电路220”)及可变延迟202-1至202-N( “可变延迟202”)。换句话说,信道250中的每一者包含非同步缓冲器210、延时确定块211、分接头选择电路220及可变延迟202。
[0037]尽管存在N个非同步缓冲器210,数据组可为不同的或相对于此类非同步缓冲器的输入侧和输出侧为不对称的。举例来说,在输入侧上,N个信道250各自可用于5个32位的数据组,并且因此N等于160。继续所述实例,在输出侧上,N个信道250可用于单个160位的数据组。这仅为不对称非同步边界200的一个实例,并且可在其它设备中使用数据组的这些或其它尺寸。通常,读取时钟将比写入时钟更慢,因为通常数据写入FIFO的多个数据组比此类数据从FIFO读取的数据组小。然而,在其它设备中,数据写入的频率可比此类数据从FIFO读取的频率更慢。
[0038]延时定位器212经耦合至信道250中的每一者。更具体地说,延时定位器212经耦合至延时确定块211及至信道250中的每一者的分接头选择电路220。
[0039]非同步缓冲器210可为非同步先进先出存储器。非同步缓冲器可为可编程资源的专用存储块或可配置存储器。通常,通过非同步缓冲器,意指输入数据侧由输入时钟信号计时并且输出数据侧由输出时钟信号计时之处,其中此类输入时钟信号与输出时钟信号不相关。然而,出于明确性且不加限制的目的,应假定非同步缓冲器为输入侧以及输出侧中的一或两者分别接收独立输入时钟或输出时钟之处的所述缓冲器,其中此类时钟都未边缘对准至共同复位信号,如下文更详细描述,并且其中此类输入时钟与此类输出时钟并不相关。时钟可与另一时钟相关,其假如两个时钟都来源于同一时钟源下,并且因此可预先确定边缘关联。此外,非同步缓冲器可在一侧由输入时钟信号计时并且在输出数据侧由独立于此类输入时钟信号的输出时钟信号计时之处,其中此类输入时钟信号与输出时钟信号明显具有不同频率。因此,举例来说,数据可与写入时钟信号同步地写入非同步缓冲器210并且可与读取时钟信号同步地从此非同步缓冲器210读取,其中此类写入时钟信号与读取时钟信号处于具有明显不同频率的不同时钟域中。此可能在于相对于非同步缓冲器210的输入侧和输出侧处理不对称的数据组。
[0040]可变延迟202可为移位寄存器。延时确定块211可经配置以确定非同步缓冲器210的相对侧上两个指针(例如读取指针或读取地址及写入指针或写入地址)到达之间的时间差。应理解,这些指针可在FIFO的整个操作中继续。可使用的延时确定块211的实例在美国专利第7,594,048号中描述,所述美国专利出于所有目的全部以引用的方式并入本文中。在美国专利第7,594,048号中,相对于时钟信号213和214的谐波在不相关时钟信号(未展示)下用于连续地测量写入指针与读取指针之间的差值并且取所述差值的平均值。用于此测量的此类时钟信号(未展示)可能比时钟信号213和214中任一者或两者更快,并且因此可判定在时钟信号213和214中任一者或两者的时钟周期的小部分内的精确FIFO容量测量为准确的。针对使用累加的平均值的设备,延时值可随时间得到更多改进,即更准确。因此,尽管实际延时可为相对静态的,此类延时的测量可随时间改进。沿着所述线路,在初始数据对准之后使用更准确延时执行的数据对准可导致进一步调整。然而,不管初始调整是否足够,非同步边界200为自动监测的。沿着所述线路,一旦在初始数据对准之后引入时钟偏斜或数据偏斜,非同步边界200在无用户输入下可确定此类时钟偏斜及/或数据偏斜已出现并且可针对所述偏斜自我调整。
[0041]分接头选择电路220可经配置以比较由延时确定块211确定或测量的延迟。此类延迟可为非同步缓冲器210的输入时钟信号或输出时钟信号的时钟周期的部分,如下文更详细描述。延时定位器212可经配置以从由信道250的延时确定块211确定的延时中识别最长延时并且经耦合以将最长延时提供至信道250中的每一者的分接头选择电路220。
[0042]针对通道250-1,延时确定块211-1经耦合至非同步缓冲器210_1以确定延时值,从而为此非同步缓冲器210-1提供延时值信号(“延时值”)218-1。分接头选择电路220-1经耦合以接收此延时值218-1。分接头选择电路220-1进一步经耦合以从延时定位器212接收最长延时值信号(“最长延
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1