CN104635564B - 用于流水线式路由的钟控 - Google Patents
用于流水线式路由的钟控 Download PDFInfo
- Publication number
- CN104635564B CN104635564B CN201410602379.3A CN201410602379A CN104635564B CN 104635564 B CN104635564 B CN 104635564B CN 201410602379 A CN201410602379 A CN 201410602379A CN 104635564 B CN104635564 B CN 104635564B
- Authority
- CN
- China
- Prior art keywords
- circuit
- clock
- pipeline system
- clock signal
- interconnection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及用于流水线式路由的钟控。集成电路可以具有流水线式可编程互连,其被配置为在寄存器中所存储的路由信号和绕过该寄存器的同一路由信号之间进行选择。流水线式可编程互连可以将选定的路由信号经由线路发送到下一个流水线式可编程互连电路。该集成电路还可以具有时钟路由电路,其用于为不同的流水线式可编程互连中的寄存器选择相应的时钟信号。时钟路由电路可以包括传送区域时钟的第一互连、传送路由时钟的第二互连、在区域时钟中选择路由时钟的第一选择器电路以及为相应的寄存器选择路由时钟的第二选择器电路。
Description
本申请要求2013年11月8日提交的美国专利申请14/075,802的优先权,该美国专利申请通过引用整体合并于此。
技术领域
本发明涉及集成电路,并且特别涉及集成电路上的流水线式互连电路以及流水线互连电路的钟控/时钟设计(clocking)。
背景技术
从一个技术节点到下一个技术节点的每个转变已经使晶体管尺寸更小,并且因此潜在地使每单位的集成电路面积实现的功能更多。由于互连和单元延迟减小,同步集成电路已经进一步受益于这种发展,这已经使得性能提高。然而,最近的技术节点已经观察到延迟减小显著放缓(即,性能提高放缓)。
为了进一步提高性能,已经提出了诸如寄存器流水线的解决方案,其中附加的寄存器被插入在同步元件之间,由此为提高的时钟频率和吞吐量的受益增加时延。然而,执行寄存器流水线常常涉及花费大量时间和精力,因为通常需要迭代若干次以下步骤:定位性能瓶颈、插入和移除寄存器、以及编译修改后的集成电路设计。
经常出现此类情况:在插入和移除寄存器的多次迭代之后,寄存器流水线式集成电路设计仍然显示出不令人满意的性能,因为同步元件被放置得相互距离较远,并且现有的路由结构不支持以有效方式跨集成电路的高速连接。
发明内容
根据本发明的某些方面,集成电路可以具有可编程路由资源,其包括耦合在一条线路和多条线路之间的流水线式可编程互连。流水线式可编程互连可以被配置为选择多条线路中的一条线路并且将其路由到寄存器以及从该寄存器到该线路。该集成电路还可以具有时钟路由电路,其包括传送第一时钟信号的第一组互连、传送第二时钟信号的第二组互连、耦合在第一和第二组互连之间的选择器电路以及耦合在第二组互连和寄存器之间的多路复用器。选择器电路可以接收第一时钟信号,并且在接收到的第一组时钟信号中进行选择,以产生第二时钟信号。多路复用器可以接收第二时钟信号,在第二时钟信号中选择信号,并且向寄存器提供选定的信号。
应当理解,本发明能够以多种方式实现,例如过程、装置、系统、器件或者在计算机可读介质上的方法。以下描述了本发明的若干创造性实施例。
在某些实施例中,以上提到的选择器电路可以具有多个多路复用器,并且这些多路复用器中的每一个可以产生多个第二时钟信号中相应的一个。
如果期望,流水线式可编程互连可以包括附加的寄存器以及耦合在第二组互连和附加的寄存器之间的附加的多路复用器。附加的多路复用器可以接收第二时钟信号,在第二时钟信号中选择信号,并且将选定的信号提供给附加的寄存器。
根据附图和以下对优选实施例的详细描述,本发明的进一步特征、其实质以及各种优势将更加明显。
附图说明
图1是根据本发明的实施例的具有示范性路由拓扑结构的说明性集成电路的图。
图2是根据本发明的实施例的线路交错的说明性直接驱动路由通道的图。
图3A是根据本发明的实施例的使用寄存器来使路由信号流水线化的说明性流水线式路由资源的图。
图3B是根据本发明的实施例的使用寄存器池来使路由信号流水线化的说明性流水线式路由资源的图。
图4是根据本发明的实施例的带有时钟选择电路的说明性时钟树的图,时钟选择电路用于选择时钟信号并且将其路由到钟控区域。
图5是根据本发明的实施例示出用于流水线式路由资源的说明性时钟选择电路的图,在其中每个流水线式路由资源可以选自于所有路由时钟。
图6是根据本发明的实施例示出用于流水线式路由资源的说明性时钟选择电路的图,在其中两个不同路由时钟承载相同的区域时钟,并且在其中每个流水线式路由资源选自于路由时钟的子集。
图7是根据本发明的实施例示出用于流水线式路由资源的说明性时钟选择电路的图,在其中两个不同的流水线式路由资源选自于路由时钟的两个不同子集。
图8是根据本发明的实施例示出用于流水线式路由资源的说明性时钟选择电路的图,在其中流水线式路由资源的两个不同子集选自于路由时钟的两个不同子集。
图9是根据本发明的实施例示出带有流水线式路由资源和图8中所示类型的时钟选择电路的说明性路由通道的图。
图10是根据本发明的实施例示出图9的说明性路由通道的图,其中在每个路由轨道中的流水线式路由资源访问每四条线路中的至少一些时钟信号。
图11是根据本发明的实施例示出图9的说明性路由通道的图,路由通道具有到流水线式路由资源的附加输入以允许路由通道内的两条线路之间的线路切换。
图12是根据本发明的实施例示出图9的说明性路由通道的图,路由通道具有到流水线式路由资源的附加输入以允许路由通道内的任何四条线路之间的线路切换。
图13是根据本发明的实施例示出在具有流水线式路由资源和用于流水线式路由资源的时钟选择电路的集成电路上实现电路描述的说明性步骤的流程图。
具体实施方式
本发明涉及集成电路,并且特别涉及集成电路中的流水线式互连电路以及流水线式互连电路的钟控。
随着每个管芯面积单元所实现的功能不断增加,支持管芯上的高速连接对于现有路由/布线(routing)架构来说变得越来越有挑战性。因此,时序元件之间的关键路径跨越芯片上的较大距离的情况经常出现。
因此,期望通过使寄存器流水线技术的使用变得容易(例如,通过将流水线式寄存器包括到互连电路中,并且提供对应的时钟选择电路)来改善路由架构。
本领域技术人员将认识到,本示例性实施例可以在缺少这些具体细节中的某些或者全部具体细节的情况下被实现。在其他实例中,没有详细描述公知的操作,以免不必要地使本实施例模糊。
图1示出具有示例性路由拓扑结构的集成电路(例如,可编程逻辑器件(PLD)100)的说明性实施例。如图1所示,可编程逻辑器件(PLD)可以包括二维阵列的功能块,其包括逻辑阵列块(LAB)和其他功能块,例如,随机存取存储器(RAM)块130和数字信号处理(DSP)块120。PLD还可以包括以垂直路由通道140和水平路由通道150的形式的可编程互连,每个路由通道包括一个或多个路由线路。
另外,可编程逻辑器件可以具有用于驱动信号离开PLD和接收来自其他器件的信号的输入/输出元件(IOE)102。输入/输出元件102可以包括并行输入/输出电路、串行数据收发器电路、差分接收器和发射器电路或者被用于将一个集成电路连接到另一集成电路的其他电路。如所示,输入/输出元件102可以位于芯片的外围。如果期望,可编程逻辑器件可以具有以不同方式布置的输入/输出元件102。例如,输入/输出元件102可以形成可位于可编程逻辑器件上的任何位置的一列或多列输入/输出元件(例如,跨越PLD的宽度均匀地分布)。如果期望,输入/输出元件102可以形成一行或多行输入/输出元件(例如,跨越PLD的高度分布)。替换地,输入/输出元件102可以形成输入/输出元件的岛,这些岛可以分布在PLD的表面上,或者被聚集于选定区域。
路由线路可以比路由通道的总长度短。长度为n的线路可以跨越n个功能块。例如,长度为4的线路可以跨越4个块。在水平路由通道中长度为4的线路可以被称作“H4”线路,而在垂直路由通道中长度为4的线路可以被称作“V4”线路。
不同的路由架构可以具有连接到不同数目的路由通道的功能块。图1描绘了三边路由架构,在其中输入和输出连接出现在每个功能块至路由通道的三边。其他的路由架构也意在被包含在本发明的范围内。其他路由架构的示例包括1边、11/2边、2边以及4边路由架构。
在直接驱动的路由架构中,每条线路由驱动器在单个逻辑点处驱动。驱动器可以与多路复用器相关联,该多路复用器选择在线路上进行驱动的信号。在通道沿其长度具有固定数目的线路的情况下,驱动器可以位于线路的每个起点处。
注意到,除了图1中所描绘的拓扑结构之外,其他路由线路拓扑结构意在被包括在本发明的范围内。例如,路由拓扑结构可以包括对角行进的线路,或者沿其范围(extent)的不同部分水平和垂直行进的线路,以及在三维集成电路的情况下垂直于器件平面的线路,并且线路的驱动器可以位于除了线路的一端外的不同点处。路由拓扑结构可以包括基本上跨越全部PLD100的全局线路、部分的全局线路(例如,跨越PLD100的一部分的线路)、特定长度的交错线路、较小的本地线路或者任何其他适合的互连资源布置。
此外,应当理解,本发明的实施例可以以实现在任何集成电路中。如果期望,这种集成电路的功能块可以被布置在更多级(level)或者层中,在其中多个功能块被互连以形成更大块。其他器件布置可以使用没有布置成行和列的功能块。
图2示出跨功能块160的这种直接驱动的水平路由通道180。每个功能块160可以具有驱动器(未示出),以在起始于相应的功能块的线路(例如,线路186)上驱动信号。每个驱动器可以与多路复用器(例如,多路复用器170)关联。例如,多路复用器170A可以被配置为选择在线路186上进行驱动的信号,并且多路复用器170A可以被配置为选择终止于相应的功能块的线路(例如,线路184)。将终止于一个功能块的线路连接到起始于同一功能块的线路有时也被称作“线路缝合(stitch)”或者缝合。如果期望,多路复用器170A可以被配置为选择来自不同线路的信号。例如,多路复用器170A可以选择来自由功能块160A内的块所驱动的线路的信号。多路复用器170A也可以选择来自另一路由通道中的线路的信号,例如,来自终止于相应的功能块的垂直路由通道中的线路的信号(未示出)。
如所示,路由通道180的每条线路是从左到右单向的,并且具有长度4。也就是说,起始于功能块160A的线路将终止于功能块160E。所示的路由通道180还具有如下不同的线路,它们起始以及终止于不同的功能块160,并且因此可以在相应的功能块中被缝合。例如,最上面的线路可以在功能块160B中被缝合,次上面的线路可以在功能块160C中被缝合等。来自同一路由通道的不同线路可以在不同功能块中被缝合在一起的布置有时也被称作交错走线(wiring)或者具有交错线路的路由通道。
图3A根据本发明的实施例描绘了使用寄存器的流水线式路由资源200。如所示,流水线式路由资源200包括第一多路复用器202、驱动器204、寄存器206以及第二多路复用器208。
多路复用器202可以是驱动器输入多路复用器(DIM)或者功能块输入多路复用器(FBIM)。DIM驱动路由线路,并且可以从能够驱动该线路的多个源中进行选择。多个源可以包括来自功能块的输出的信号以及来自在与该线路同一方向或者正交方向上行进的其他路由线路的信号。FBIM将信号输出到功能模块,并且可以从多个路由线路选择该信号。
如图3A所示,根据本发明的实施例,可以通过将多路复用器202的输出提供给寄存器206的数据输入而使多路复用器202流水线化。流水线式路由资源200中的多路复用器208可以直接接收多路复用器202的输出,并且还可以接收来自寄存器206的数据输出。多路复用器208可以使流水线式路由资源能够以非流水线模式或者流水线寄存器模式被使用。在非流水线模式中,多路复用器208的输出选择多路复用器202的直接输出。在流水线模式中,多路复用器208可以选择寄存器206的输出。多路复用器208可以将其输出提供给驱动器电路204,并且驱动器电路204的输出可以被用于驱动路由线路。该路由线路可以跨越多个功能块(例如,针对具有DIM的流水线式路由资源)。替换地,该路由线路可以在功能块的内部(例如,针对具有FBIM的流水线式路由资源)。
每个DIM/FBIM可以包括寄存器,例如寄存器206,使得所有路由多路复用器被流水线化。然而,在某些实施例中,这可能是没有必要的,因为所提供的能力可能超出设计要求。因此,在某些实施例中仅一部分(例如一半或者四分之一)路由多路复用器可以被流水线化。例如,信号可能花费150皮秒(ps)穿过给定长度的线路,但是时钟信号可能被限制到以650ps的时钟周期操作。因此,在这个示例中,每第四条线路上提供流水线寄存器(例如,寄存器206)可以是足够的。替换地,寄存器可以被设置得比每第四条线路更频繁,例如每第二条线路,从而在选择使用哪一些寄存器时提供更高的自由度。
在一个实施例中,流水线式线路可以以周期方式设置。例如,流水线式DIM(PDIM)可以以周期方式跟在某些固定数目的常规DIM之后。例如,考虑如下路由架构,其具有320条水平(H)线路和160条垂直(V)线路,每条线路长度4,并且每个功能块具有总共80个驱动器。为了寄存1/4的线路,需要在每个功能块中,为H线路提供320/4/4PDIM=20PDIM,并且为V线路提供160/4/4PDIM=10PDIM。注意到,对于不同的线路类型,该部分流水线式线路可能会变化。例如,如果花费300ps穿过V线路,则将期望使V线路的至少一半流水线化,以满足650p的时序预算。
虽然图3A示出将寄存器(例如,寄存器206)与独立的多路复用器202集成的实施例,但是图3B描绘了独立的多路复用器202可以使用来自流水线寄存器306的公共池的寄存器的流水线式路由资源300的实施例。根据这个实施例,流水线寄存器的公共池可以由某组DIM/FBIM以选择性方式共享。也就是说,能够进行流水线化的每个多路复用器202被布置为向流水线寄存器池306提供输出,并且从流水线寄存器池306的输出到多路复用器208。流水线寄存器池306可以包括输入选择器电路和输出选择器电路。输入选择器电路可以接收来自多个多路复用器202的输出,并且选择性地将独立的多路复用器202耦合到寄存器以便流水线化。输出选择器电路可以接收来自多个寄存器的信号,并且选择性地将存储来自相应的多路复用器202的信号的寄存器与对应的多路复用器208耦合。
流水线式路由资源中的每个寄存器和流水线寄存器池中的每个寄存器可以被同步于给定的时钟信号。图4示出说明性时钟分布网络400。这种时钟分布网络有时也被称作时钟树,虽然其他拓扑结构(例如,网状)也是可能的。时钟树400将一个或多个时钟信号从相应的时钟信号被产生或者进入集成电路(例如,来自锁相环电路或者输入引脚)的集成电路中的公共点分配到集成电路中的所有时序元件,这些时序元件由相应的时钟信号同步。因此,时钟树可以被用于满足如下要求,例如最小偏差(即,时钟信号的上升沿到达同步电路中的不同时序元件的时间差)或者最小时延(即,在集成电路中给定的时钟信号从该公共点到任何时序元件的时间),从而避免集成电路失效。
时钟树400可以具有时钟分配通道410,时钟分配通道410可以将多个时钟信号传送到一组多路复用器420。每个多路复用器420可以从多个时钟信号中选择不同子集的时钟信号,并且经由时钟区域线430将选定子集的时钟信号提供给不同的钟控区域440。
考虑具有多个时钟域的电路设计被实现在集成电路中的情形。进一步考虑电路设计实现具有如下路径,该路径使用流水线式路由资源来连接由来自给定时钟域的特定时钟信号同步的时序元件。在这种情形中,流水线式路由资源中连接以上所提到的时序元件的寄存器可以通过使由该路径链接的时序元件同步的同一时钟信号来同步。然而,时序元件可能被实现得相距较远,并且该路径可能跨过使用来自不同时钟域的时钟信号的区域。作为示例,在图4中,路径的源头可以位于钟控区域11中,而路径的终点位于钟控区域4中。因此,期望使用流水线式路由资源仔细地设计时钟树。可能需要进一步的时钟选择电路来将给定的时钟信号提供给可能需要通过该给定的时钟信号对流水线寄存器(例如,图3A中的寄存器206)进行钟控的流水线式路由资源。
图5示出说明性时钟选择电路,其用于流水线寄存器池(例如,图3B的流水线寄存器池306)中的寄存器,或者用于流水线式路由资源中的各寄存器(例如,图3A的流水线寄存器206),在其中每个寄存器可以从所有路由时钟中进行选择。考虑给定的钟控区域具有M个区域时钟430的情形。在这种情形下,第一时钟选择级540可以具有N个M:1多路复用器,其中N小于或等于M。N个M:1多路复用器中的每一个都可以接收所有M个区域时钟(例如,通过连接530),并且产生N个路由时钟520中的仅一个。在N小于M的情况下,N个路由时钟520承载M个区域时钟的严格子集。
如图5所示,流水线寄存器池或者流水线式路由资源中的每个寄存器510可以接收来自相应的第二时钟选择级550的一个时钟信号。对于每个寄存器510,时钟选择级550可以具有一个N:1多路复用器。因此,每个寄存器510可以接收N个路由时钟520中的任何一个。
在路由时钟520中,给定的时钟信号可能使用得比其他时钟信号更频繁。例如,连接到集成电路中的大部分时序元件的时钟信号还可能需要许多流水线式路由资源。相比之下,其他时钟信号,例如与被设置在给定区域之外且由跨过该区域的路径连接的时序元件有关的时钟信号,可能被该给定区域内的流水线式路由资源使用的少得多。
图6示出时钟选择电路的实施例,在其中,流水线寄存器池或者流水线式路由资源中的寄存器可以访问数目增加的区域时钟,同时限制每个流水线式路由资源访问的路由时钟的数目。
如图6所示,给定的时钟区域具有M个区域时钟430。第一时钟选择级640可以具有N个M:1多路复用器,其中M小于或等于N。这N个M:1多路复用器中的每一个都可以接收所有M个区域时钟(例如,通过连接530),并且产生N个路由时钟620中的仅一个。在M小于N的情况下,N个路由时钟中的至少两个可以承载同一时钟信号。每个寄存器510可以接收来自第二时钟选择级650的一个时钟信号。对于每个寄存器510,时钟选择级650可以具有一个K:1多路复用器,其中K小于或者等于N。因此,如果K小于N,则每个寄存器510可以仅接收N个路由时钟620的子集。
在这种配置下,可以由第一时钟选择级640选择与流水线式路由资源510对区域时钟430的使用有关的区域时钟430,使得由许多流水线式路由资源使用的时钟信号被提供在更多的路由时钟620上。因此,可以在第二时钟选择级650中提供K:1多路复用器(K<N),同时根据每个时钟信号的相关需求,仍然提供对总体上大量的不同的时钟信号的访问。
图7所示的时钟选择电路的实施例可以进一步利用集成电路中所使用的时钟信号可能被偏斜的观察结果。如图7所示,给定的时钟区域具有M个区域时钟430。第一时钟选择级740可以具有P个M:1多路复用器。P个M:1多路复用器中的每一个都可以接收所有M个区域时钟(例如,通过连接530),并且产生P个路由时钟720中的仅一个。寄存器510中的至少一些可以接收来自第二时钟选择级的一个时钟信号。第二时钟选择级可以具有异构(heterogeneous)选择电路。例如,一些流水线式路由资源可以连接到路由时钟720中的仅一个,而没有选择的能力。其他流水线式路由资源可以通过K:1多路复用器650、L:1多路复用器760或者P:1多路复用器750(其中,K<L<P)访问K个、L个或者P个路由时钟。
在这种配置下,可以由第一时钟选择级740选择与流水线式路由资源510对区域时钟430的使用有关的区域时钟430。例如,由大部分流水线式路由资源使用的时钟信号被提供在直接连接到流水线式路由资源510的那些路由时钟720上。类似地,K:1多路复用器可以访问K个最常用的时钟信号,而L:1多路复用器访问L个最常用的时钟信号,并且P:1多路复用器访问在路由时钟720上传送的所有时钟信号。
在第二时钟选择级中的具有直接连接的流水线式路由资源、K:1多路复用器650、L:1多路复用器760以及P:1多路复用器的数目可以随着对路由时钟的访问的增加而减少。例如,直接连接可能比K:1多路复用器更多,K:1多路复用器可能比L:1多路复用器更多,L:1多路复用器可能比P:1多路复用器更多。
其他配置也是可能的。例如,K:1多路复用器650和L:1多路复用器760可以对路由时钟的不相交的子集进行访问。可以增加对路由时钟的访问不同的多路复用器的数目。例如,第二时钟选择级可以另外地具有S:1多路复用器以及T:1多路复用器,其中K<S<L<T<P。替换地,可以减少对路由时钟的访问不同的多路复用器的数目。例如,第二时钟选择级可以仅具有K:1多路复用器和P:1多路复用器。图8示出这种电路选择电路的实施例。
如图8所示,给定的时钟区域具有M个区域时钟430。第一时钟选择级840可以具有P个M:1多路复用器。P个M:1多路复用器中的每一个都可以接收所有M个区域时钟(例如,通过连接530)并且产生P个路由时钟820的仅一个。
如图5、图6、图7以及图8所示,在相应的第一时钟选择级(即,第一时钟选择级540、640、740以及840)中的每个多路复用器通过连接530和M:1多路复用器访问所有区域时钟。其他配置可以具有仅可从区域时钟的子集进行选择的D:1多路复用器(D<M)(未示出)。如果期望,第一时钟选择级可以包括对区域时钟430的不同子集进行访问的不同的多路复用器的任何配置(例如,除了D:1和M:1多路复用器之外,还包括F:1多路复用器)。区域时钟430的这些不同子集可以是不相交的。替换地,第一时钟选择级中的不同的多路复用器所访问的区域时钟的不同子集可以是重叠的或者互为子集。一些区域时钟可以具有到路由时钟的有线直接连接。
图8中的每个寄存器510可以接收来自第二时钟选择级的一个时钟信号。第二时钟选择级可以具有异构选择电路。流水线式路由资源可以通过K:1多路复用器650或者P:1多路复用器750(其中K<P)对K个或者P个路由时钟进行访问。
第二时钟选择级可以被折叠到相应的流水线寄存器池或者流水线式路由资源中,如方框870和860所示,其可以分别包括寄存器510和K:1多路复用器650或者P:1多路复用器750。
可以结合时钟选择电路设计路由架构,以努力减少与向流水线式路由资源提供时钟信号相关的成本,同时实现提高的性能。作为示例,可能期望仅在流水线式路由资源的某些部分中提供寄存器。例如,借助在每隔一个或者每第四个流水线式路由资源中具有一个寄存器,集成电路可以展示足够的性能。在这种情形下,仅那些实际包括寄存器的流水线式路由资源还需要第二时钟选择级。
考虑集成电路具有不同长度的线路的水平路由通道和垂直路由通道的情形。在这种情形下,流水线式路由资源可以被划分成组,使得某些特定类型的所有路由资源共享同一组路由时钟。例如,集成电路可以包含线路长度为3(H3)、6(H6)和20(H20)的水平路由通道,以及线路长度为4(V4)和12(V12)的垂直路由通道。在一个示例中,具有短线路(即,H3、H6以及V4)的所有路由通道可以共享一组路由时钟,而具有长线路(即,H20和V12)的所有路由通道可以共享不同的一组路由时钟。在另一示例中,具有短线路(即,H3和H6)的水平路由通道可以共享一组路由时钟,而具有短线路(即,V4)的垂直路由通道可以共享另一组路由时钟。类似地,左行的水平路由通道与右行的水平路由通道相比可以访问不同的一组路由时钟,而上行的垂直路由通道与下行的垂直路由通道相比可以访问不同的一组路由时钟。
集成电路中时钟信号的使用可以是不成比例的。一些时钟信号可能被非常频繁地使用,而其他时钟信号仅被偶尔使用。时钟信号的使用也可能按区域而变化。例如,第一时钟信号可能主要被用于集成电路的左下象限,而第二时钟信号主要被用于集成电路的所有其他区域。在穿过一个区域的路径上的流水线式路由资源可能主要需要访问在该特定区域内不经常被使用的时钟信号,并且因此可能需要访问更多的路由时钟。类似地,在一个区域内的路径上的流水线式路由资源可能主要需要访问在该特定区域内非常频繁地被使用的时钟信号,并且因此可能需要访问较少的路由时钟。
图9示出具有流水线式路由资源的说明性水平路由通道920。如所示,水平路由通道920包括长度为4的16个交错的路由轨道(track)921-936。每个功能块910可以具有4个流水线式路由资源,每个流水线式路由资源驱动到16个水平轨道中的一个。也就是说,水平路由通道920中的12条线路穿过给定的功能块(例如,轨道921、922、923、925、926、927、929、930、931、933、934以及935中的线路穿过功能块910A),4条线路终止并且起始于给定的功能块中(例如,轨道924、928、932以及936中的线路终止于功能块910A,并且在这些相同轨道中的其他线路由功能块910A中的流水线式路由资源860和870驱动)。
功能块910B中的流水线式路由资源驱动轨道921、925、929以及933中的线路,功能块910C中的流水线式路由资源驱动轨道922、926、930以及934中的线路,功能块910D中的流水线式路由资源驱动轨道923、927、931以及935中的线路,以及功能块910A和910E中的流水线式路由资源驱动轨道924、928、932以及936中的线路。
每个流水线式路由资源可以接收来自终止于当前功能块的水平线路的信号以及由该功能块所产生的信号。另外地,流水线式路由资源也可以接收来自其他资源的信号。例如,流水线式路由资源可以接收来自垂直路由通道或者对角路由通道的信号。
在图9的示例中,每个功能块可以具有一个流水线式路由资源860和三个流水线式路由资源870。流水线式路由资源860通过在第二时钟选择级中具有P:1多路复用器可以访问所有P个路由时钟,而流水线路由资源870通过在第二时钟选择级中具有K:1多路复用器仅访问子集K个路由时钟(其中K<P)。借助这种特定的配置,1/4的水平轨道可以在每条线路处访问所有P个路由时钟,一半的水平轨道可以每第二条线路访问所有P个路由时钟,或者所有的水平轨道可以每第四条线路访问所有P个路由时钟,或者某些水平轨道根本不能访问所有P个时钟的任何组合。因此,行进通过其他区域的长距离连接可以访问大量的时钟,而区域中的本地连接访问在该区域中使用的较小的一组时钟。
选择每个功能块具有一个流水线式路由资源860和三个流水线式路由资源870以及得到的对时钟信号的访问限制仅是说明性的。如果期望,每个功能块可以具有两个流水线式路由资源860和两个流水线式路由资源870、三个流水线式路由资源860和一个流水线式路由资源870、或者仅流水线式路由资源860,仅举几个替换的例子。
如图9所示,所有水平轨道921-936可以每四条线路访问所有P个路由时钟。例如,水平道936可以访问功能块910A中的所有P个路由时钟,而水平轨道929、926、923以及932可以分别访问功能块910B、910C、910D以及910E中的所有P个路由时钟。图10进一步示出了水平轨道可以每四条线路访问所有P个路由时钟的配置,其示出与图9所示的具有流水线式路由资源的水平路由通道920相同的配置。水平路由通道920包括16个长度为4的交错路由轨道。每个功能块910A-910Z可以具有四个流水线式路由资源,每个流水线式路由资源驱动这16个水平轨道的线路中的一个。也就是说,12条线路穿过给定的功能块(例如,线路1022),四条线路终止于给定的功能块(例如,线路1028),并且四条线路起始于给定的功能块(例如,线1024)。
字母P和K分别表示在第二时钟选择级中访问P个和K个时钟信号的流水线式路由资源。如图10所示,水平轨道936(即,图9中的路由通道920的底部的轨道)可以访问功能块910A和910R中的所有P个路由时钟,而在功能块910E、910I、910M和910V中仅K个路由时钟是可访问的。类似地,水平轨道935可以访问功能块910B和910S中的所有P个路由时钟,而在功能块910F、910J、910N以及910X中仅K个路由时钟是可访问的。
图11所示的路由架构的实施例示出了水平轨道之间的附加的连接。图11示出具有流水线式路由资源的水平路由通道920。与图9类似,水平路由通道920可以包括具有长度为4的交错路由线路的16个水平轨道921-936。每个功能块910可以具有4个流水线式路由资源,每个流水线式路由资源驱动16个水平轨道中的一个。
功能块910A和910E中的流水线式路由资源驱动水平路由轨道924、928、932以及936中的线路。每个功能块可以具有一个流水线式路由资源860和三个流水线式路由资源870。流水线式路由资源860通过在第二时钟选择级中具有P:1多路复用器可以访问所有P个路由时钟,而流水线式路由资源870通过在第二时钟选择级中具有K:1多路复用器仅访问子集K个路由时钟。
另外,访问P个路由时钟的每个流水线式路由资源可以具有额外的输入。这个输入可以连接到由同样访问P个路由时钟的流水线式路由资源驱动的线路。例如,驱动功能块910E中的水平轨道932中的线路的流水线式路由资源860可以连接到由功能块910A中的流水线式路由资源870驱动的水平轨道932中的线路。此外,流水线式路由资源860可以连接到由功能块910中的流水线式路由资源860驱动的来自水平路由轨道936的线路。类似地,功能块910E中连接到水平轨道936中的线路的流水线式路由资源870也可以具有从其进行选择的附加输入。这个附加输入可以连接到水平轨道932中的线路。
图11所示的配置可以使信号能够在每个路由线路之后的水平路由轨道之间进行切换,由此能够在长度为4的每条线路之后对路由信号进行寄存器流水线化,即使寄存器需要来自流水线式路由资源870中没有提供的路由时钟的时钟信号。也就是说,在这种配置中可以实现如下路径,其需要在长度为4的每条线路之后进行寄存器流水线化,由此寄存器被同步到在P个路由时钟中提供的但不能被任何流水线式路由资源870访问的时钟信号。为此,该信号可以进入水平路由轨道924上的块910A,到达流水线式路由资源860,并且经由水平路由轨道936被发送到功能块910E。该信号可以进入水平路由轨道936上的功能块910E,到达流水线式路由资源860,并且经由水平路由轨道932被发送到下一个功能块。
图12示出图11所示的配置的变形。如图12所示,每个流水线式路由资源860和870可以连接到终止于给定的功能块的每个水平路由轨道,由此为在水平路由轨道之间切换信号提供了增加的灵活性。例如,在水平路由轨道924、928、932或者936上进入功能块910A的信号可以在任一水平路由轨道924、928、932或者936上离开功能块910A。
可以选择具有不同程度的灵活性的图11和图12所示的配置的替换变形。例如,每个流水线式路由资源860和870可以连接到终止于给定的功能块的每隔一个水平路由轨道。
图13是示出了在具有流水线式路由资源(例如,在图3A或者图3B中的流水线式路由资源200或者300)和用于流水线式路由资源的时钟选择电路(例如,图5-8所描绘的时钟选择电路)的集成电路上实现电路描述的方法的说明性步骤的流程图。
在步骤1310期间,可以接收电路描述,例如要在集成电路中实现的电路的门级描述。电路描述的若干元件可以在可选的聚集(cluster)步骤中被成组在一起。例如,门级描述的若干门可以被聚集以形成宏块。在步骤1320期间,可以布局/放置电路描述,并且可以使用流水线式路由资源对已布局的电路描述进行布线/路由。布局和布线步骤可以分别取决于路由时钟(例如,路由时钟520、620、720或者820)和图5、图6、图7及图8中的第二时钟选择级的可用性。例如,布局可以通过基于时序元件是否需要将附加的时钟路由到边界盒(boundingbox)内来赋予将该时序元件布局在该边界盒内的成本,由此限制进入集成电路的给定区域的时钟信号的数目。
在步骤1330期间,可以生成时钟选择电路中的多个时钟信号的排序(ranking)。该排序可以基于每个时钟信号同步的时序元件的数目,由此该排序可以从最大数目到最小数目或者从最小数目到最大数目。该排序也可以基于在流水线式路由资源中每个时钟信号的使用次数。替换地,该排序可以基于时钟信号的频率要求或者与时钟信号有关的关键度(例如,在连接由给定的时钟信号同步的时序元件的路径上的时序松弛或者相对时序松弛,或者某些其他关键度或者加权关键度)。
在步骤1370期间,第一时钟选择级可以被配置为将区域时钟(例如,区域时钟430)分别连接到路由时钟(例如,图5、图6、图7及图8中的路由时钟520、620、720和820)。此配置可以基于在步骤1330期间所确定的多个时钟信号的排序。例如,第一时钟选择级可以按流水线式路由资源中时钟信号的使用次数的降序选择区域时钟。
在步骤1380期间,可以将成本值赋予第二时钟选择级的每个多路复用器,第二时钟选择级耦合在路由时钟和流水线式路由资源(例如,图5、图6、图7及图8中的流水线式路由资源)之间。该成本可以基于每个相应的多路复用器可以进行选择的路由时钟的数目。例如,与能够访问较少路由时钟的多路复用器相比,能够访问更多路由时钟的多路复用器可以被赋予更高的成本值。
在步骤1390期间,第二时钟选择级的多路复用器可以被配置为将流水线式路由资源中的每个寄存器连接到路由时钟中的一个时钟信号。可以首先赋予第二时钟选择级中成本值较低的多路复用器的配置,之后赋予成本值较高的多路复用器。
在已经确定了时钟选择电路的初始配置之前或者之后,可以执行附加的优化步骤。为此,可以在步骤1340期间针对已布局布线的电路描述测量性能结果。基于这些性能结果,可以在步骤1350期间对已布局布线的电路描述进行重新布线。重新布线还可以考虑现有的路由时钟。例如,重新布线可以避免使用还未使给定的时钟信号作为路由时钟的流水线式路由资源。重新布线还可以考虑性能结果以估计每个流水线式路由资源实际使用流水线寄存器的可能性。可以迭代地执行步骤1340和1350,直到测量到令人满意的性能结果。
在步骤1360期间,流水线路由资源可以被重新定时(retime)。例如,之前绕过流水线寄存器的给定路径中的流水线式路由资源可以被配置为使用寄存器,而之前已经使用流水线寄存器的另一流水线式路由资源可以被配置为绕过寄存器,由此有效地对流水线式路由资源重新定时。步骤1340、1350以及1360也可以被迭代地执行。
重新布线和重新定时可能需要对时钟选择电路进行重新配置,这可以由上述的步骤1370、1380和1390执行。
在此所描述的方法和装置可以被合并到任何合适的电子器件或者电子器件的系统中。例如,该方法和装置可以被合并到多种类型的器件中,例如微处理器或者其他IC。示例性IC包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC),仅举几例。
在此所描述的集成电路可以是包括以下部件中的一个或多个的数据处理系统的一部分:处理器、存储器、I/O电路以及外围器件。集成电路可以被使用多种应用中,例如,计算机联网、数据联网、仪表化、视频处理、数字信号处理或者期望使用高速串行接口电路的优势的任何合适的其他应用。
虽然以特定的顺序描述了方法操作,但是应当理解,其他操作可以在所描述的操作之间被执行,所描述的操作可以被调整,使得这些操作在稍微不同的时间处发生,或者所描述的操作可以被分发到允许处理操作在与处理相关的各种间隔处发生的系统中,只要重叠操作的处理以期望的方式被执行。
附加实施例:
附加实施例1.一种集成电路上的路由电路,其包括:多个流水线式可编程路由资源;传送第一多个时钟信号的第一多个互连;传送第二多个时钟信号的第二多个互连;耦合在所述第一和第二多个互连之间的第一选择器电路,其中所述第一选择器电路接收所述第一多个时钟信号,并且在接收到的第一多个时钟信号中进行选择,以产生所述第二多个时钟信号;以及第二选择器电路,其耦合到所述第二多个互连,其中所述第二选择器电路从所述第二多个互连接收所述第二多个时钟信号中的至少一部分,从所述第二多个时钟信号中接收到的部分中选择信号,并且向所述流水线式可编程路由资源中的至少一个提供选定的信号。
附加实施例2.根据附加实施例1的路由电路,其中在所述第二多个互连中的至少两个互连传送同一信号。
附加实施例3.根据附加实施例1的路由电路,其中所述第一选择器电路包括多个多路复用器,并且其中所述多个多路复用器中的每个多路复用器产生所述第二多个时钟信号中相应的一个。
附加实施例4.根据附加实施例1的路由电路,进一步包括:在所述第二多个互连中的一个和所述多个流水线式可编程路由资源中的至少另一个流水线式可编程路由资源之间的连接,其中该连接绕过所述第二选择器电路。
附加实施例5.根据附加实施例1的路由电路,进一步包括:耦合到所述第二多个互连的附加的多路复用器,其中所述附加的多路复用器从所述第二多个互连接收所述第二多个时钟信号中的至少一部分,从所述第二多个时钟信号中接收到的一部分中选择信号,并且向所述流水线式可编程路由资源中的至少另一个流水线式可编程路由资源提供选定的信号。
附加实施例6.根据附加实施例5的路由电路,其中所述多路复用器耦合到所述第二多个互连中的第一子集的互连,并且其中所述附加的多路复用器耦合到所述第二多个互连中的第二子集的互连。
附加实施例7.根据附加实施例6的路由电路,其中所述第一子集与所述第二子集不相交。
附加实施例8.根据附加实施例6的路由电路,其中所述第一子集包括所述第二子集。
附加实施例9.一种可配置的流水线式互连电路,其包括:具有多条线路的路由通道;传送时钟信号的多个互连;耦合到所述多个互连的时钟选择电路,其中所述时钟选择电路选择时钟信号的第一和第二子集;具有第一数据输入、第一时钟输入以及第一输出的第一流水线式路由电路,其中第一数据输入中的一个耦合到所述多条线路中的第一线路,其中所述第一时钟输入耦合到所述时钟选择电路并且接收所述第一子集的时钟信号,并且其中所述第一输出耦合到所述多条线路中的第二线路;以及具有第二数据输入、第二时钟输入和第二输出的第二流水线式路由电路,其中所述第二数据输入中的一个耦合到所述多条线路中的第三线路,其中所述第二时钟输入耦合到所述时钟选择电路并且接收所述第二子集的时钟信号,并且其中所述第二输出耦合到所述多条线路中的第四线路。
附加实施例10.根据附加实施例9的电路,其中所述第一流水线式路由电路包括:具有多个输入和一个输出的第一多路复用器,其中所述多个输入中的每个输入耦合到所述第一数据输入中的一个;具有输入、时钟端口以及输出的寄存器,其中所述第一多路复用器的输出耦合到所述寄存器的输入;具有第一和第二输入和一个输出的第二多路复用器,其中所述第二多路复用器的第一输入耦合到所述第一多路复用器的输出,并且所述第二多路复用器的第二输入耦合到所述寄存器的输出;以及耦合在所述第一时钟输入和所述寄存器的时钟端口之间的附加的时钟选择电路,其中所述附加的时钟选择电路将信号从所述第一时钟输入中选定的一个路由到所述寄存器的时钟端口。
附加实施例11.根据附加实施例9的电路,进一步包括:具有第三输入的第三流水线式路由电路,其中所述第三输入中的一个输入耦合到所述第二线路;以及具有第四输入的第四流水线式路由电路,其中所述第四输入中的一个输入耦合到所述第四线路。
附加实施例12.根据附加实施例11的电路,其中所述第四流水线式路由电路具有附加的输入,并且其中所述附加的输入耦合到所述第二线路。
附加实施例13.根据附加实施例12的电路,其中所述第三流水线式路由电路具有另一输入,并且其中所述另一输入耦合到所述第四线路。
附加实施例14.根据附加实施例11的电路,其中所述第一子集的时钟信号是所述第二子集的时钟信号的子集。
附加实施例15.根据附加实施例14的电路,其中所述第三和第四流水线式路由电路进一步包括第三和第四时钟输入,其中所述第三时钟输入接收所述第二子集的时钟信号,并且其中所述第四时钟信号接收所述第一子集的时钟信号。
附加实施例16.一种使用在计算设备上实现的设计自动化工具来配置具有流水线式路由资源的集成电路的方法,其中所述集成电路上的每个流水线式路由资源包括寄存器和多路复用器,其中所述多路复用器可配置为在第一和第二信号之间进行选择,并且其中通过在所述寄存器中存储所述第一信号来产生所述第二信号,所述方法包括:接收具有多个时钟信号和多个时钟选择电路的电路描述,其中所述多个时钟选择电路中的每个时钟选择电路可配置为提供所述多个时钟信号中的一个;执行接收到的电路描述的布局;使用所述流水线式路由资源执行已布局的电路描述的布线;将所述流水线式路由资源的第一子集配置为选择所述第一信号;将所述流水线式路由资源的第二子集配置为选择所述第二信号;以及针对所述第二子集的流水线式路由资源中的每个流水线式路由资源,将所述多个时钟选择电路中的一个配置为向所述寄存器提供所述多个时钟信号中的一个。
附加实施例17.根据附加实施例16的方法,其中配置所述多个时钟选择电路中的一个进一步包括:为所述多个时钟信号定义成本函数;基于所述成本函数生成所述多个时钟信号的排序;以及基于所述排序向所述寄存器提供所述多个时钟信号中的一个。
附加实施例18.根据附加实施例17的方法,进一步包括:获得已布局布线的电路描述的性能结果。
附加实施例19.根据附加实施例18的方法,其中所述成本函数基于已布局布线的电路描述的性能结果。
附加实施例20.根据附加实施例18的方法,进一步包括:基于所述性能结果,使用所述流水线式路由资源对已布局布线的电路描述进行重新布线;将所述流水线式路由资源的第三子集配置为选择所述第一信号;将所述流水线式路由资源的第四子集配置为选择所述第二信号;以及针对所述第四子集的流水线路由资源中的每个流水线式路由资源,将所述多个时钟选择电路中的一个时钟选择电路配置为向所述寄存器提供所述多个时钟信号中的一个。
附加实施例21.根据附加实施例18的方法,进一步包括:基于已布局布线的电路描述和所述性能结果,通过将所述第一子集的流水线式路由资源中的一个路由资源配置为选择所述第二信号,以此对所述流水线式路由资源进行重新定时;以及基于重新定时的电路描述,向所述路由资源中的寄存器提供所述多个时钟信号中的一个。
附加实施例22.根据附加实施例18的方法,进一步包括:基于已布局布线的电路描述和所述性能结果,通过将所述第二子集的流水线式路由资源中的一个路由资源配置为选择所述第一信号,以此对所述流水线式路由资源进行重新定时。
附加实施例23.根据附加实施例16的方法,其中所述多个时钟选择电路中的所述一个时钟选择电路包括第一和第二多个时钟互连以及耦合在所述第一和第二多个时钟互连之间的选择电路,其中所述多个时钟信号被赋予到所述第一多个时钟互连,并且其中配置所述多个时钟选择电路中的所述一个时钟选择电路进一步包括:基于所述时钟信号的使用次数来生成所述多个时钟信号的排序;以及借助所述选择电路,基于所述排序将所述第一多个时钟互连中的互连连接到所述第二多个时钟互连中的互连。
附加实施例24.根据附加实施例23的方法,其中所述多个时钟选择电路中的所述一个时钟选择电路进一步包括具有数个输入和一个输出的附加的多路复用器,其中所述附加的多路复用器耦合在所述第二多个时钟互连和所述流水线式路由资源中的一个中的寄存器之间,并且其中配置所述多个时钟选择电路中的所述一个时钟选择电路进一步包括:基于所述输入的数目,将成本赋予到所述多路复用器;以及基于所赋予的成本,将所述多路复用器配置为将所述流水线式路由资源中的一个中的寄存器与所述第二多个时钟互连中的一个连接。
前述仅是对本发明的原理的说明,并且本领域技术人员在不背离本发明的范围和精神的情况下可以进行各种修改。
Claims (20)
1.一种集成电路上的路由电路,其包括:
多个流水线式可编程路由资源;
传送第一多个时钟信号的第一多个互连;
传送第二多个时钟信号的第二多个互连;
耦合在所述第一多个互连和第二多个互连之间的第一选择器电路,其中所述第一选择器电路接收所述第一多个时钟信号,并且在所接收到的所述第一多个时钟信号中进行选择,以产生所述第二多个时钟信号;以及
耦合到所述第二多个互连的第二选择器电路,其中所述第二选择器电路从所述第二多个互连接收所述第二多个时钟信号中的至少一部分,从所述第二多个时钟信号中接收到的部分选择时钟信号,并且将选定的时钟信号提供给所述流水线式可编程路由资源中的至少一个中的寄存器。
2.根据权利要求1所述的路由电路,其中所述第二多个互连中的至少两个互连传送同一时钟信号。
3.根据权利要求1所述的路由电路,其中所述第一选择器电路包括多个多路复用器,并且其中所述多个多路复用器中的每个多路复用器产生所述第二多个时钟信号中相应的一个。
4.根据权利要求1所述的路由电路,其进一步包括:
在所述第二多个互连中的一个互连和所述多个流水线式可编程路由资源中的至少另一个流水线式可编程路由资源之间的连接,其中所述连接绕过所述第二选择器电路。
5.根据权利要求1所述的路由电路,其进一步包括:
耦合到所述第二多个互连的附加的多路复用器,其中所述附加的多路复用器从所述第二多个互连接收所述第二多个时钟信号中的至少一部分,从所述第二多个时钟信号中接收到的部分选择附加的时钟信号,并且将选定的附加的时钟信号提供给所述流水线式可编程路由资源中的至少另一个流水线式可编程路由资源,其中所述多路复用器耦合到所述第二多个互连中的第一子集的互连,并且其中所述附加的多路复用器耦合到所述第二多个互连中的第二子集的互连。
6.根据权利要求5所述的路由电路,其中所述第一子集与所述第二子集不相交。
7.根据权利要求5所述的路由电路,其中所述第一子集包括所述第二子集。
8.一种可配置的流水线式互连电路,其包括:
具有多条线路的路由通道;
传送时钟信号的多个互连;
耦合到所述多个互连的选择器电路,其中所述选择器电路选择时钟信号中的第一子集和第二子集;
具有第一数据输入、第一时钟输入以及第一输出的第一流水线式路由资源,其中所述第一数据输入中的一个耦合到所述多条线路中的第一线路,其中所述第一时钟输入耦合到所述选择器电路并且接收所述第一子集的时钟信号,并且其中所述第一输出耦合到所述多条线路中的第二线路;以及
具有第二数据输入、第二时钟输入以及第二输出的第二流水线式路由资源,其中所述第二数据输入中的一个耦合到所述多条线路中的第三线路,其中所述第二时钟输入耦合到所述选择器电路并且接收所述第二子集的时钟信号,并且其中所述第二输出耦合到所述多条线路中的第四线路。
9.根据权利要求8所述的电路,其中所述第一流水线式路由资源包括:
具有多个输入和一个输出的第一多路复用器,其中所述多个输入中的每个输入耦合到所述第一数据输入中的一个;
具有输入、时钟端口以及输出的寄存器,其中所述第一多路复用器的输出耦合到所述寄存器的输入;
具有第一和第二输入以及输出的第二多路复用器,其中所述第二多路复用器的第一输入耦合到所述第一多路复用器的输出,并且所述第二多路复用器的第二输入耦合到所述寄存器的输出;以及
耦合在所述第一时钟输入和所述寄存器的时钟端口之间的附加的选择器电路,其中所述附加的选择器电路将信号从所述第一时钟输入中选定的一个路由到所述寄存器的时钟端口。
10.根据权利要求8所述的电路,其进一步包括:
具有第三输入的第三流水线式路由资源,其中所述第三输入中的一个输入耦合到所述第二线路;以及
具有第四输入的第四流水线式路由资源,其中所述第四输入中的一个输入耦合到所述第四线路。
11.根据权利要求10所述的电路,其中所述第四流水线式路由资源具有附加的输入,其中所述附加的输入耦合到所述第二线路,其中所述第三流水线式路由资源具有另一输入,并且其中所述另一输入耦合到所述第四线路。
12.根据权利要求10所述的电路,其中所述第一子集的时钟信号是所述第二子集的时钟信号的子集,其中所述第三和第四流水线式路由资源进一步包括第三和第四时钟输入,其中所述第三时钟输入接收所述第二子集的时钟信号,并且其中所述第四时钟输入接收所述第一子集的时钟信号。
13.一种使用在计算设备上实现的设计自动化工具来配置具有流水线式路由资源的集成电路的方法,其中所述集成电路上的每个流水线式路由资源包括寄存器和多路复用器,其中所述多路复用器可配置为在第一和第二信号之间进行选择,并且其中通过在所述寄存器中存储所述第一信号来产生所述第二信号,所述方法包括:
接收具有多个时钟信号和多个选择器电路的电路描述,其中所述多个选择器电路中的每个选择器电路可配置为提供所述多个时钟信号中的一个,并且其中所述第一信号和所述第二信号不同于所述多个时钟信号;
执行接收到的电路描述的布局;
使用所述流水线式路由资源执行已布局的电路描述的布线;
将所述流水线式路由资源的第一子集配置为选择所述第一信号;
将所述流水线式路由资源的第二子集配置为选择所述第二信号;以及
针对所述第二子集的流水线式路由资源中的每个流水线式路由资源,将所述多个选择器电路中的一个选择器电路配置为向所述寄存器提供所述多个时钟信号中的一个。
14.根据权利要求13所述的方法,其中配置所述多个选择器电路中的一个进一步包括:
为所述多个时钟信号定义成本函数;
基于所述成本函数生成所述多个时钟信号的排序;以及
基于所述排序向所述寄存器提供所述多个时钟信号中的一个。
15.根据权利要求14所述的方法,进一步包括:
获得已布局布线的电路描述的性能结果。
16.根据权利要求15所述的方法,其中所述成本函数基于已布局布线的电路描述的性能结果。
17.根据权利要求15所述的方法,进一步包括:
基于所述性能结果,使用所述流水线式路由资源对已布局布线的电路描述进行重新布线;
将第三子集的流水线式路由资源配置为选择所述第一信号;
将第四子集的流水线式路由资源配置为选择所述第二信号;以及
针对所述第四子集的流水线式路由资源中的每个流水线式路由资源,将所述多个选择器电路中的一个配置为向所述寄存器提供所述多个时钟信号中的一个。
18.根据权利要求15所述的方法,进一步包括:
基于已布局布线的电路描述和所述性能结果,通过将所述第一子集的流水线式路由资源中的一个路由资源配置为选择所述第二信号,以此对所述流水线式路由资源进行重新定时;以及
基于已重新定时的电路描述,向所述路由资源中的所述寄存器提供所述多个时钟信号中的一个。
19.根据权利要求15所述的方法,进一步包括:
基于已布局布线的电路描述和所述性能结果,通过将所述第二子集的流水线式路由资源中的一个路由资源配置为选择所述第一信号,以此对所述流水线式路由资源进行重新定时。
20.根据权利要求13所述的方法,其中所述多个选择器电路中的所述一个选择器电路包括第一和第二多个时钟互连以及耦合在所述第一和第二多个时钟互连之间的选择电路,其中所述多个时钟信号被赋予到所述第一多个时钟互连,并且其中配置所述多个选择器电路中的所述一个选择器电路进一步包括:
基于所述时钟信号的使用次数,生成所述多个时钟信号的排序;以及
借助所述选择电路,基于所述排序将所述第一多个时钟互连中的互连连接到所述第二多个时钟互连中的互连。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/075,802 US9360884B2 (en) | 2013-11-08 | 2013-11-08 | Clocking for pipelined routing |
US14/075,802 | 2013-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104635564A CN104635564A (zh) | 2015-05-20 |
CN104635564B true CN104635564B (zh) | 2017-10-24 |
Family
ID=51687802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602379.3A Active CN104635564B (zh) | 2013-11-08 | 2014-10-31 | 用于流水线式路由的钟控 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9360884B2 (zh) |
EP (1) | EP2871550B1 (zh) |
CN (1) | CN104635564B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042211B2 (en) | 2009-08-07 | 2021-06-22 | Advanced Processor Architectures, Llc | Serially connected computing nodes in a distributed computing system |
US9429983B1 (en) | 2013-09-12 | 2016-08-30 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US9645603B1 (en) | 2013-09-12 | 2017-05-09 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US8555096B2 (en) | 2009-08-07 | 2013-10-08 | Advanced Processor Architectures, Llc | Method and apparatus for selectively placing components into a sleep mode in response to loss of one or more clock signals or receiving a command to enter sleep mode |
US9747110B2 (en) * | 2015-05-20 | 2017-08-29 | Altera Corporation | Pipelined cascaded digital signal processing structures and methods |
US9552456B2 (en) | 2015-05-29 | 2017-01-24 | Altera Corporation | Methods and apparatus for probing signals from a circuit after register retiming |
US9941867B1 (en) | 2016-09-20 | 2018-04-10 | Altera Corporation | Circuit and method for universal pulse latch |
CN106960087B (zh) * | 2017-03-13 | 2020-05-19 | 上海华力微电子有限公司 | 一种时钟分布网络结构及其生成方法 |
US10642951B1 (en) * | 2018-03-07 | 2020-05-05 | Xilinx, Inc. | Register pull-out for sequential circuit blocks in circuit designs |
KR102508309B1 (ko) * | 2018-04-23 | 2023-03-10 | 에스케이하이닉스 주식회사 | 파이프 래치, 이를 이용하는 반도체 장치 및 반도체 시스템 |
CN109725574B (zh) * | 2018-12-26 | 2021-12-24 | 广州贝晓德智能科技有限公司 | 一种自动化设备省电系统控制方法 |
US11256657B2 (en) * | 2019-03-26 | 2022-02-22 | Intel Corporation | System, apparatus and method for adaptive interconnect routing |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5911063A (en) * | 1996-07-10 | 1999-06-08 | International Business Machines Corporation | Method and apparatus for single phase clock distribution with minimal clock skew |
TW406219B (en) * | 1998-08-26 | 2000-09-21 | Via Tech Inc | PLL clock generation circuit that is capable of programming frequency and skew |
CN1501477A (zh) * | 2002-11-18 | 2004-06-02 | 株式会社瑞萨科技 | 时钟信号传输电路 |
US7627003B1 (en) * | 2005-09-30 | 2009-12-01 | The United States Of America As Represented By The Secretary Of The Navy | Automatic clock synchronization and distribution circuit for counter clock flow pipelined systems |
CN101963945A (zh) * | 2009-07-23 | 2011-02-02 | 赛普拉斯半导体公司 | 信号连接设备及方法 |
US7911240B1 (en) * | 2007-05-17 | 2011-03-22 | Altera Corporation | Clock switch-over circuits and methods |
US7975197B2 (en) * | 2003-03-31 | 2011-07-05 | Lsi Corporation | On-chip scan clock generator for ASIC testing |
CN102680881A (zh) * | 2011-03-11 | 2012-09-19 | 阿尔特拉公司 | 测试技术和电路的设计 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19950360B8 (de) | 1999-10-19 | 2006-03-30 | VIA Technologies, Inc., Hsien-Tien | Phasenregelkreis (PLL)-Taktgeber mit programmierbarem Laufzeitunterschied und programmierbarer Frequenz |
US6452435B1 (en) * | 1999-11-08 | 2002-09-17 | International Business Machines Corporation | Method and apparatus for scanning and clocking chips with a high-speed free running clock in a manufacturing test environment |
US6630842B1 (en) | 2001-05-06 | 2003-10-07 | Altera Corporation | Routing architecture for a programmable logic device |
US6965249B2 (en) | 2001-10-15 | 2005-11-15 | Altera Corporation | Programmable logic device with redundant circuitry |
US7065665B2 (en) * | 2002-10-02 | 2006-06-20 | International Business Machines Corporation | Interlocked synchronous pipeline clock gating |
EP2057568A2 (en) * | 2006-08-18 | 2009-05-13 | Advanced Micro Devices, Inc. | Integrated circuit chip with repeater flops and method for automated design of same |
US8358148B1 (en) * | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US9030253B1 (en) * | 2012-05-30 | 2015-05-12 | Altera Corporation | Integrated circuit package with distributed clock network |
US9594395B2 (en) * | 2014-01-21 | 2017-03-14 | Apple Inc. | Clock routing techniques |
-
2013
- 2013-11-08 US US14/075,802 patent/US9360884B2/en active Active
-
2014
- 2014-09-26 EP EP14186552.7A patent/EP2871550B1/en active Active
- 2014-10-31 CN CN201410602379.3A patent/CN104635564B/zh active Active
-
2016
- 2016-04-28 US US15/141,201 patent/US20160239043A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5911063A (en) * | 1996-07-10 | 1999-06-08 | International Business Machines Corporation | Method and apparatus for single phase clock distribution with minimal clock skew |
TW406219B (en) * | 1998-08-26 | 2000-09-21 | Via Tech Inc | PLL clock generation circuit that is capable of programming frequency and skew |
CN1501477A (zh) * | 2002-11-18 | 2004-06-02 | 株式会社瑞萨科技 | 时钟信号传输电路 |
US7975197B2 (en) * | 2003-03-31 | 2011-07-05 | Lsi Corporation | On-chip scan clock generator for ASIC testing |
US7627003B1 (en) * | 2005-09-30 | 2009-12-01 | The United States Of America As Represented By The Secretary Of The Navy | Automatic clock synchronization and distribution circuit for counter clock flow pipelined systems |
US7911240B1 (en) * | 2007-05-17 | 2011-03-22 | Altera Corporation | Clock switch-over circuits and methods |
CN101963945A (zh) * | 2009-07-23 | 2011-02-02 | 赛普拉斯半导体公司 | 信号连接设备及方法 |
CN102680881A (zh) * | 2011-03-11 | 2012-09-19 | 阿尔特拉公司 | 测试技术和电路的设计 |
Also Published As
Publication number | Publication date |
---|---|
US20150134870A1 (en) | 2015-05-14 |
US20160239043A1 (en) | 2016-08-18 |
US9360884B2 (en) | 2016-06-07 |
EP2871550B1 (en) | 2019-11-13 |
EP2871550A1 (en) | 2015-05-13 |
CN104635564A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104635564B (zh) | 用于流水线式路由的钟控 | |
US6772406B1 (en) | Method for making large-scale ASIC using pre-engineered long distance routing structure | |
US8265070B2 (en) | System and method for implementing a multistage network using a two-dimensional array of tiles | |
US7801033B2 (en) | System of virtual data channels in an integrated circuit | |
KR101917916B1 (ko) | 집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처 | |
US6064225A (en) | Global signal distribution with reduced routing tracks in an FPGA | |
CN105765557B (zh) | 用于混合式电路交换和分组交换路由器的架构和方法 | |
US9529958B2 (en) | VLSI layouts of fully connected generalized and pyramid networks with locality exploitation | |
GB2280293A (en) | Wafer scale architecture for programmable logic | |
US9628083B1 (en) | Local routing network with selective fast paths for programmable logic device | |
US7276937B2 (en) | Modular interconnect circuitry for multi-channel transceiver clock signals | |
US9118325B1 (en) | Routing network for programmable logic device | |
CN105487994B (zh) | 可扩展的2.5d接口架构 | |
JP3496661B2 (ja) | データパスに適したプログラマブル相互接続網を有する再構成可能デバイス | |
WO2018004932A1 (en) | Integrated circuits with hybrid fixed/configurable clock networks | |
US9564394B1 (en) | Methods and apparatus for reducing spatial overlap between routing wires | |
CN101272141A (zh) | 交错逻辑阵列块结构 | |
EP4106201A1 (en) | Circuit systems and methods for reducing power supply voltage droop | |
US7579869B2 (en) | Repeatable block producing a non-uniform routing architecture in a field programmable gate array having segmented tracks | |
Choudhari et al. | Design and verification of five port router for network on chip | |
US7432733B1 (en) | Multi-level routing architecture in a field programmable gate array having transmitters and receivers | |
US6819138B2 (en) | Dividing and distributing the drive strength of a single clock buffer | |
US8341585B2 (en) | Skewed placement grid for very large scale integrated circuits | |
KR100275489B1 (ko) | 대칭형 현장 가공형 반도체의 배선을 위하여다중 핀 네트를 이중 핀 네트로 분할하는 방법 | |
Gilabert et al. | Topology Exploration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |