用于集成电路的逻辑模块的时钟分配架构及其操作方法与流程

文档序号:11814542阅读:367来源:国知局
用于集成电路的逻辑模块的时钟分配架构及其操作方法与流程

本非临时申请要求2014年5月19日提交的、名称为“Method and Circuitry of a Clock Distribution Architecture for Logic Tiles of an Integrated Circuit”的美国临时申请No.62/000361和2015年2月10日提交的名称为“Method and Circuitry of a Clock Distribution Architecture for Logic Tiles of an Integrated Circuit”的美国临时申请No.62/114558(下文中被统称为“临时申请”)的优先权。所述临时申请的全部内容通过引用并入本文中。

引言

本发明涉及用于集成电路(例如,处理器、控制器、状态机、门阵列、可编程门阵列(PGA)、现场可编程门阵列(FPGA)和片上系统(SOC))的逻辑模块(logic tile)之间的时钟信号分配和传输的电路和技术。虽然以下常常在FPGA的背景下描述本发明和/或本发明的实施例,但这些讨论、发明和/或实施例也可应用于处理器、控制器、状态机、门阵列、PGA和SOC中采用的可编程或可配置的逻辑块、逻辑阵列块、或逻辑模块电路。出于简明的目的,没有为各个和每个集成电路提供单独的讨论;然而,本领域的普通技术人员基于下面的公开将清楚例如处理器、控制器、状态机、门阵列、PGA、FPGA和SOC的可应用性。

简言之,FPGA是一种可在制造之前和/或之后由用户、顾客和/或设计者进行配置和/或重新配置(下文中,除非另外声明,否则统称为“配置”等(例如,“配置”、“构成”和“可配置”))的集成电路。FPGA除其它部件以外还包括具有可编程逻辑组件(常常被称为“可配置逻辑块”(CLB)、“逻辑阵列块”(LAB)、或“逻辑模块”——下文中统称为“逻辑模块”)的多个模块和允许逻辑模块彼此通信的可配置相互连接的网络。每个逻辑模块具有多个输入和输出。采用可编程相互连接将逻辑模块的输入和输出连接到其他逻辑模块以及还连接到FPGA的外部输入和输出。

各逻辑模块通常包括上千至上百万个晶体管,这些晶体管可被配置成执行组合功能(简单和/或复杂)。逻辑模块还包括存储器元件,例如,触发器、寄存器、存储器等的块/阵列和/或任何种类或类型的较小的逻辑模块。逻辑模块常常包括用于同步时钟信号的电路,这些时钟信号有助于有序(例如,同步地)实现逻辑模块的功能或操作和/或与其他逻辑模块和FPGA的外部输入和输出的通信。

附图说明

本发明可结合附图中示出的实施例来实现。这些图示出本发明的不同方面,并且适当地,类似地标记示出不同图中的类似结构、组件、材料和/或元件的附图标记。要理解,除了具体示出的结构、组件、材料和/或元件之外的结构、组件、材料和/或元件的组合都是料想到的并且在本发明的范围内。

此外,这里描述和示出了许多发明。本发明既不限于任何单个方面,也不限于其实施例,也不限于这些方面和/或实施例的任何组合和/或排列。此外,本发明的方面和/或实施例中的每个可单独采用或与本发明的其他方面和/或实施例中的一个或多个结合使用。出于简明的目的,本文中不讨论和/或单独示出一些排列和组合。要注意的是,这里描述为“示例性的”的实施例或实现方式将被不理解为例如相对于其他实施例或实现方式是优选的或有优势的;确切地,描述为“示例性的”的实施例或实现方式旨在反映或指示实施例是“示例”实施例。

图1A示出例如包括控制电路、时钟电路和可编程/可配置逻辑电路(可包括一个或多个逻辑模块,各逻辑模块包括(i)逻辑晶体管和(ii)时钟分配和传输电路)的集成电路的框图表示;在例示性实施例中,时钟电路被设置成是“片上的”,例如,集成在集成电路管芯中/上的时钟电路生成时钟信号,可编程/可配置逻辑电路的一个或多个逻辑模块可采用该时钟信号来生成逻辑模块时钟信号,该逻辑模块时钟信号相对于可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的偏斜(skew)(例如,基本上没有偏斜或零偏斜)和/或相位(例如,0度或180度);

图1B示出可编程/可配置逻辑电路(例如,FPGA)的多个相互连接的逻辑模块的框图表示,其中,逻辑模块的输入/输出可有助于逻辑模块和/或可编程/可配置逻辑电路外部的电路之间进行通信;要注意,可编程/可配置逻辑电路可包括经由一个或多个可配置相互连接的多个逻辑模块;此外,逻辑模块中的一个或多个(或全部)包括时钟分配和传输电路,以(i)使用模块的时钟树(clock tree)来生成逻辑模块时钟(参见例如图2A至图2C中的“模块时钟”)和(ii)将逻辑模块时钟或相关时钟信号分配或传输到一个或多个相邻逻辑模块;在一个实施例中,采用逻辑模块信号来生成供相关联的逻辑模块的逻辑电路(和/或存储器)使用的模块时钟(参见例如图2A至图2C);

图1C示出当从时钟源行进至时钟目的地时反映其间偏斜(延迟)的时钟信号的波形;例如,当时钟信号从一个时钟缓冲器行进至另一个时钟缓冲器或者从一个时钟缓冲器行进到逻辑元件(诸如,触发器、CLB或模块)时,该信号可能偏斜;

图2A至图2C示出逻辑模块的时钟分配和传输电路的示例性实施例的框图表示,其中,在这些示例性实施例中,时钟分配和传输电路包括多个输入和输出路径(在这个图示的实施例中为四个路径——被标记为“北时钟路径”、“东时钟路径”、“南时钟路径”和“西时钟路径”),用于生成具有期望或可编程的偏斜的逻辑模块时钟信号,并且在一些情形下,将一个或多个逻辑模块时钟或相关时钟信号分配或传输到可编程/可配置逻辑电路的一个或多个相邻逻辑模块;输入和输出路径中的每个可包括一个输入/输出和U弯(u-turn)电路(图2A)、或多个输入/输出和U弯电路(图2B和图2C)、或其组合;要注意,在这个示例性实施例中,U弯电路包括具有相关联的导线/导体布线的一个或多个缓冲器,可在时钟信号分配路径中全部地或部分地采用所述导线/导体布线来生成模块时钟信号(相对于其他逻辑模块的模块时钟信号具有期望的、适宜的或可编程的偏斜—参见例如图3A),在一个实施例中,采用所述模块时钟信号来生成模块时钟(例如,用于该逻辑模块的本地时钟);如以上所述的,例如逻辑电路(和/或存储器)可采用模块时钟来实现相关联的逻辑模块的功能或操作和/或同步与其他逻辑模块和/或可编程/可配置逻辑电路的外部输入和输出的通信;

图3A和图3B示出多个相互连接的逻辑模块(例如图2A中示出的逻辑模块的类型)的示例性框图表示,其中,模块时钟信号是经由相关联的逻辑模块的示例性时钟分配和传输电路在各逻辑模块中生成的;用粗线(图3A中的实线和图3B中的虚线)和箭头指示示例性的时钟分配和分配路径及其方向,其中,各逻辑模块的时钟分配和传输电路被配置或编程成提供用于提供各逻辑模块所采用的模块时钟信号的编程关系(例如,基本上没有偏斜或零偏斜)的时钟分配和分配路径;在图3A的示例性实施例中,由逻辑模块1接收时钟1信号输入,除了将时钟信号分配并且发送到逻辑模块2之外,时钟1信号输入还将提供逻辑模块1所采用的时钟信号的预定关系的延迟并入到逻辑模块2-5(以及在一些实施例中的可编程/可配置逻辑电路的其他逻辑模块中的一个、一些或全部)的时钟信号;在图3B的示例性实施例中,由逻辑模块2接收时钟2信号输入,除了将时钟信号分配并且发送到逻辑模块1、3和4之外,时钟2信号输入还将提供逻辑模块2所采用的时钟信号的预定关系的延迟并入到逻辑模块1和3-5(以及在一些实施例中的可编程/可配置逻辑电路的其他逻辑模块中的一个、一些或全部)的时钟信号;要注意,时钟信号输入中的一个或多个可直接或间接地源自“片上”设置的时钟电路(例如,集成在集成电路管芯中/上的时钟电路,参见例如图1A)或者部分或完全在集成电路管芯外部的时钟电路,例如,时钟1和/或时钟2可源自部分或完全在片上或片外的另一个逻辑模块和/或时钟对准电路(例如,DLL或PLL);

图4A和图4B分别示出例如图3A和图3B的示例性架构的逻辑模块4的时钟分配和传输电路的示例性实施例的框图表示,其中,在这些示例性实施例中,时钟分配和传输电路可采用与西时钟路径相关联的零个、一个或多个U弯电路以生成模块时钟信号4(相对于其他逻辑模块的模块时钟信号具有适宜的或可编程的偏斜(这里,基本上没有偏斜或零偏斜)—参见例如图3A和图3B);在这个实施例中,模块时钟信号4生成例如逻辑电路(和存储器)所采用的一个或多个模块时钟来实现逻辑模块的功能或操作和/或同步与其他逻辑模块和/或可编程/可配置逻辑电路的外部输入和输出的通信;

图5示出例如FPGA的多个相互连接的逻辑模块(图2B中示出的类型)的示例性框图表示,其中,各逻辑模块包括在各输入/输出路径处的多个输入/输出(这里,两个);在这个示例性实施例中,逻辑模块1-5接收并且分配/输出两个时钟信号(即,时钟1信号和时钟2信号),这些时钟信号被分配到逻辑模块,并且经由各逻辑模块的示例性时钟分配和传输电路,生成与用于逻辑模块的时钟信号中的每个相关联的模块时钟信号;用粗线或虚线和箭头指示示例性的时钟分配和分配路径及其方向,其中,各逻辑模块的时钟分配和传输电路被配置或编程成提供用于提供各逻辑模块所采用的模块时钟信号的编程关系(例如,基本上没有偏斜或零偏斜)的时钟分配和分配路径;在示例性实施例中,时钟1被输入逻辑模块1以及时钟2被输入逻辑模块2;在这两种情形下,时钟信号被分配/路由,以将提供逻辑模块1至5(潜在地以及可编程/可配置逻辑电路的其他逻辑模块中的一个、一些或全部)在内部采用的时钟信号的预定关系的延迟;

图6示出图5的示例性架构的逻辑模块4的示例性时钟分配和传输电路的框图表示,其中,在这个示例性实施例中,时钟分配和传输电路可采用与西时钟路径相关联的零个、一个或多个U弯电路以生成模块时钟信号4(相对于其他逻辑模块的模块时钟信号具有适宜的或可编程的偏斜(这里,基本上没有偏斜或零偏斜));逻辑模块4的时钟分配和传输电路包括各输入/输出路径处的多个输入/输出(在这个示例性实施例中为2个),采用这些输入/输出以生成与时钟1或时钟2中的一个相关联的一个或多个模块时钟;基于时钟1和时钟2是同步的还是异步的,这些模块时钟可以例如是同步的或异步的;例如逻辑电路(和存储器)可采用各模块时钟来实现逻辑模块的功能或操作和/或与其他逻辑模块和/或可编程/可配置逻辑电路的外部输入和输出的通信;

图7示出例如FPGA的多个相互连接的逻辑模块(图2B中示出的类型)的框图表示,其中,各逻辑模块包括在各输入/输出路径处的多个输入/输出(在这个示例性实施例中为2个);在这个示例性实施例中,逻辑模块1-3各接收被分配到逻辑模块中的一些而并非全部的两个时钟信号(例如,时钟1信号和时钟2信号);经由各逻辑模块的示例性时钟分配和传输电路,逻辑模块生成与所述时钟信号中的一者或二者相关联的模块时钟信号;用粗线或虚线以及箭头指示示例性的时钟分配和分配路径及其方向,其中,各逻辑模块的时钟分配和传输电路被配置或编程成提供用于提供逻辑模块采用的模块时钟信号的编程关系(例如,基本上没有偏斜或零偏斜)的时钟分配和分配路径;在示例性实施例中,时钟1被输入逻辑模块1以及时钟2被输入逻辑模块2;在这两种情形下,时钟信号被分配/路由以并入或形成提供或产生逻辑模块1至5中的一个或一些在内部采用的时钟信号的预定关系的延迟;

图8示出矩形形状的逻辑模块的示例性时钟分配和传输电路的框图表示,其中,在这个示例性实施例中,时钟分配和传输电路包括多个输入和输出路径(在这个图示的实施例中为四个路径——被标记为“北时钟路径”、“东时钟路径”、“南时钟路径”和“西时钟路径”),用于生成具有期望或可编程的偏斜的逻辑模块时钟信号,并且在一些情形下,将一个或多个逻辑模块时钟或相关时钟信号分配或传输到可编程/可配置逻辑电路的一个或多个相邻逻辑模块;输入和输出路径中的每个可包括一个输入/输出和U弯电路,用于引入时钟信号路径的另外的垂直和水平传播延迟分量(其中,垂直路径的长度与水平路径不同);要注意,在这个示例性实施例中,U弯电路包括一个或多个具有相关联的导线/导体布线的缓冲器,可在时钟信号分配路径中全部地或部分地采用导线/导体布线来生成模块时钟信号(相对于其他逻辑模块的模块时钟信号具有适宜的或可编程的偏斜—参见例如图9),在一个实施例中,采用此电路来生成模块时钟(例如,用于该逻辑模块的本地时钟);如以上所述的,例如逻辑电路(和/或存储器)可采用模块时钟来实现相关联的逻辑模块的功能或操作和/或同步与其他逻辑模块和/或可编程/可配置逻辑电路的外部输入和输出的通信;以及

图9示出多个相互连接的逻辑模块(例如图8中示出的逻辑模块的类型)的示例性框图表示,其中,经由相关联的逻辑模块的示例性时钟分配和传输电路在各逻辑模块中生成模块时钟信号;用粗线和箭头指示示例性时钟分配和分配路径及其方向,其中,各逻辑模块的时钟分配和传输电路被配置或编程成提供用于提供各逻辑模块所采用的模块时钟信号的编程关系(这里,基本上没有偏斜或零偏斜)的时钟分配和分配路径(每个时钟分配和分配路径都具有相同的垂直和水平传播延迟分量——例如,在这个示例性实施例中,5个水平分量,2个垂直分量);在这个示例性实施例中,由逻辑模块1接收时钟1信号输入,除了将时钟信号分配并且发送到逻辑模块2之外,逻辑模块1还将提供逻辑模块1所采用的时钟信号的预定关系的延迟(包括传播延迟的垂直分量和水平分量)并入到逻辑模块2-5(以及在一些实施例中的可编程/可配置逻辑电路的其他逻辑模块中的一个、一些或全部)的时钟信号;要注意,尽管在图9中未示出,但如本文中描述和示出的可由一个或多个时钟模块接收多个时钟信号;时钟信号输入中的一个或多个可直接或间接地源自“片上”设置的时钟电路(例如,集成在集成电路管芯中/上的时钟电路(参见例如图1A))或者部分或完全在集成电路管芯外部的时钟电路,例如,时钟信号输入可源自部分或完全在片上或片外的另一个逻辑模块和/或时钟对准电路(例如,DLL或PLL)。

另外,本文描述和示出了许多发明。本发明既不限于任何单个方面,也不限于其实施例,也不限于这些方面和/或实施例的任何组合和/或排列。本发明的方面和/或其实施例中的每个可单独采用或与本发明的其他方面和/或其实施例中的一个或多个结合使用。出于简明的目的,本文中不单独讨论这些组合和排列中的许多组合和排列。

具体实施方式

在一个方面,本发明涉及在集成电路(例如,处理器、控制器、状态机、门阵列、PGA、FPGA和SOC)中的逻辑模块中和/或之间的时钟信号的分配、生成和/或传输的电路和方法。在一个实施例中,本发明的电路和技术在集成电路的逻辑模块中和/或之间进行时钟信号分配、生成和/或传输,使得逻辑模块采用相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的偏斜的时钟信号。例如,在一个实施例中,各逻辑模块中的时钟分配和传输电路生成同步的并且相对于可编程/可配置逻辑电路的其他逻辑模块中采用或由所述其他逻辑模块采用的模块时钟信号具有基本上没有偏斜或零偏斜和/或零相位差的本地时钟信号。

在一个实施例中,集成电路包括控制电路、时钟电路和可包括一个或多个逻辑模块的可编程/可配置逻辑电路(参见,图1A和图1B)。逻辑模块可包括逻辑和/或存储器晶体管(未示出)和时钟分配和传输电路,用于除了其他之外还生成相对于可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的偏斜(例如,基本上没有偏斜或零偏斜)和/或相位(例如,0度或180度)的逻辑模块时钟信号。在一个实施例中,示例性的时钟分配和传输电路为相关联的逻辑模块的逻辑电路(和/或存储器)生成模块时钟(参见例如图2A),并且另外将逻辑模块时钟或相关时钟信号分配或发送到可编程/可配置逻辑电路的一个或多个相邻或并置的逻辑模块。

简言之,“时钟偏斜”是指当时钟信号从时钟源行进至时钟目的地时时钟信号发生的延迟(参见图1C)。这可以是例如当从一个时钟缓冲器行进至另一个时钟缓冲器或者从一个时钟缓冲器行进至逻辑或存储器元件(诸如,触发器、CLB或模块)时出现的。在本申请中,时钟偏斜是指当时钟信号从一个逻辑模块行进至另一个逻辑模块时时钟信号中的延迟。

要注意,在图示的示例性实施例中,时钟电路位于“片上”,例如,时钟电路集成在集成电路管芯中/上。此时钟电路(例如,锁相环(PLL)电路和/或延迟锁定环(DLL)电路)可部分或完全地在可编程/可配置逻辑电路的内部或外部(例如,一个或多个逻辑模块中)产生。可替代地,时钟电路可部分或完全地在片外,从而在集成电路管芯的外部。无论如何,时钟电路生成被可编程/可配置逻辑电路的一个或多个逻辑模块采用的时钟信号来为相关联的逻辑模块生成逻辑模块时钟信号。电路可使用逻辑模块时钟,以有助于有序实现逻辑模块的功能或操作和/或与其他逻辑模块和外部输入和输出的通信。

参照图2A至图2C,在一个实施例中,逻辑模块的时钟分配和传输电路包括多个输出路径(在这个图示的实施例中为四个路径——被标记为“北时钟路径”、“东时钟路径”、“南时钟路径”和“西时钟路径”),用于生成具有期望或可编程的偏斜的逻辑模块时钟信号,并且在一些情形下,将一个或多个逻辑模块时钟或相关时钟信号分配或传输到可编程/可配置逻辑电路的一个或多个相邻逻辑模块。要注意,在图2A的示例性实施例中,四个时钟路径中的每个具有一个模块输出时钟、一个模块输入时钟和一个模块U弯电路;而在图2B和图2C的示例性实施例中,四个时钟路径中的每个具有两个或更多模块输出时钟、两个或更多模块输入时钟以及两个或更多模块U弯电路。

在一个实施例中,各时钟路径包括多个晶体管(在图2A至图2C的示例性实施例中,被配置和图示为多个缓冲器)。这里,时钟分配和传输电路包括一个或多个U弯电路,这些U弯电路可被选择性地并入逻辑模块的时钟信号分配路径中,用于生成相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的偏斜(例如,基本上没有偏斜或零偏斜)和/或相位(例如,0度或180度)的模块时钟信号。在这个示例性实施例中,U弯电路设置在每个输出路径处,以提供可编程/可配置逻辑电路的一个、一些或全部逻辑模块的时钟生成的架构的设计和布局的灵活性。逻辑模块中的U弯电路可由相同或不同类型的电路或元件组成—例如,第一输出路径的U弯电路可由一个缓冲器组成,而第二输出路径的U弯电路可由两个或更多缓冲器组成。然而,用相同类型的电路(例如,缓冲器和相关联的导体)和/或以相同或类似的电子特性来构建U弯电路作为输入和输出路径可以是有利的。以这种方式,可以有助于不同逻辑模块之间的时钟信号的延迟匹配。例如,可有利的是,设计具有相同电阻和电容负载、相同导线长度和屏蔽、相同类型的时钟缓冲器和这些时钟缓冲器的相同晶体管的路径,以更充分地匹配不同逻辑模块之间的时钟信号的延迟。要注意,尽管在图示的示例中,U弯电路位于逻辑模块的所有输出路径处,但一个或多个逻辑模块可包括在一个、一些或全部输出路径处不包括U弯电路的输出路径。

如以上提到的,可编程/可配置逻辑电路的一个、一些或全部逻辑模块的时钟分配和传输的布局可提供与集成电路的可编程/可配置逻辑电路的逻辑模块相关联的时钟信号的期望或可编程的偏斜。在一个实施例中,各逻辑模块中的时钟分配和传输电路生成同步的并且相对于可编程/可配置逻辑电路的其他逻辑模块中采用或由所述其他逻辑模块采用的模块时钟信号具有基本上没有偏斜或零偏斜的本地时钟信号。例如,参照图3A、图3B、图4A和图4B,在一个实施例中,逻辑模块1-5的时钟分配和传输路径使模块1-5时钟信号和/或逻辑模块1-5的模块时钟之间基本上没有偏斜或零偏斜。用粗线和箭头指示时钟信号分配路径及其方向。各逻辑模块1-5的时钟分配和传输电路被编程成分别提供相对于其他模块时钟信号和/或模块时钟基本上没有偏斜或零偏斜的模块时钟信号和/或模块时钟。

特别地,图3A的示例性实施例,由逻辑模块1接收时钟信号输入(“时钟1信号”)。各逻辑模块引入的总延迟是7个单位。用于以下信号的时钟信号分配路径:(i)与逻辑模块1相关联的模块1时钟信号,逻辑模块1并入三个U弯电路(从而提供7个单位的总延迟),(ii)与逻辑模块2相关联的模块2时钟信号,逻辑模块2并入两个U弯电路(从而提供7个单位的总延迟),(iii)与逻辑模块3相关联的模块3时钟信号,逻辑模块3并入一个U弯电路(从而提供7个单位的总延迟),(iv)与逻辑模块4相关联的模块4时钟信号,逻辑模块4并入一个U弯电路(从而提供7个单位的总延迟)和(v)与逻辑模块5相关联的模块5时钟信号,逻辑模块5不并入U弯电路(从而提供7个单位的总延迟)。以这种方式,图3A的逻辑模块1-5的模块时钟信号其间基本上没有偏斜(在这个示例性实施例中,在时钟分配路径中每个逻辑模块包括7个单位的延迟,其中,每个单位代表1个时钟分支的等效延迟,在这个示例性实施例中,等效延迟是一个时钟缓冲器加上其相关联的导线布线的延迟)。

在图3B的示例性实施例中,由逻辑模块2接收时钟信号输入(“时钟2信号”),逻辑模块2并入两个U弯电路以生成模块2时钟信号。逻辑模块2引入的总延迟是5个单位。另外,与模块1相关联的时钟生成路径并入一个U弯电路以生成模块1时钟信号(从而提供5个单位的总延迟—逻辑模块2提供2个单位的延迟,逻辑模块1提供3个单位的延迟)。逻辑模块3-5的模块时钟信号也包括5个单位的总延迟。以这种方式,图3B的逻辑模块的模块时钟信号其间基本上没有偏斜(在这个示例性实施例中,在时钟生成路径中每个逻辑模块包括5个单位的延迟,其中,每个单位代表1个时钟分支的等效延迟,在这个示例性实施例中,等效延迟是一个时钟缓冲器加上其相关联的导线/导体布线的延迟)。

在另一个实施例中,可编程/可配置逻辑电路的一个、一些或全部逻辑模块的时钟分布和传输的布局可提供多个时钟信号输入的期望的或可编程的偏斜。在一个实施例中,一个或多个逻辑模块中的时钟分配和传输电路可生成与多个输入时钟相关联的本地时钟信号,其中,与各输入时钟相关联的本地时钟信号是同步的并且相对于可编程/可配置逻辑电路的一个或多个其他逻辑模块中采用的模块时钟信号基本上没有偏斜或零偏斜。在另一个实施例中,一个或多个逻辑模块中的时钟分配和传输电路可生成异步本地时钟信号,该异步本地时钟信号相对于可编程/可配置逻辑电路的一个或多个其他逻辑模块中采用的模块时钟信号具有固定或可编程的偏斜。要注意,相对于各逻辑模块,基于输入时钟生成的模块时钟相对于基于另一个不同的输入时钟生成的模块时钟可以是同步或异步的。

特别地,参照图5和图6,在一个实施例中,关于时钟1的逻辑模块1-5(图2B或2C的类型)的时钟分配和传输路径使逻辑模块1-5的模块时钟(与时钟1相关联)之间基本上没有偏斜或零偏斜。类似地,关于时钟2的逻辑模块1-5的时钟分配和传输路径使逻辑模块1-5的模块时钟(与时钟2相关联)之间基本上没有偏斜或零偏斜。用粗线和箭头指示时钟1的时钟信号分配路径及其方向。用虚线和箭头指示时钟2的时钟信号分配路径及其方向。在这个实施例中,各逻辑模块1-5的时钟分配和传输电路被编程成结合时钟1分别提供相对于与时钟1关联的其他模块时钟信号和/或模块时钟基本上没有偏斜或零偏斜的模块时钟信号和/或模块时钟。类似地,各逻辑模块1-5的时钟分配和传输电路被编程成结合时钟2分别提供相对于与时钟2关联的其他模块时钟信号和/或模块时钟基本上没有偏斜或零偏斜的模块时钟信号和/或模块时钟。

因此,在一个或多个逻辑模块基于不同的输入时钟接收、发送、分配和生成多个时钟信号的一些实施例中,各逻辑模块的时钟分配和传输电路可采用各路径的多个输入和输出时钟缓冲器来生成并且分配这些时钟。在这个示例性实施例中,每个模块为每个时钟路径生成、分配并且支持两个模块输出时钟、两个模块输入时钟和两个模块U弯电路,如此,各逻辑模块将两个独立时钟信号传递到这些有关模块并且生成两个本地时钟(对应于时钟1信号输入和时钟2信号输入的模块时钟信号——时钟1信号输入和时钟2信号输入每个都被用于为相关联的逻辑模块生成独立的“模块时钟”)。

要注意,参照图4A、图4B和图6,可采用与时钟1和时钟2相关联的模块时钟信号来生成多个同步或异步的模块时钟(基于时钟1和/或时钟2),逻辑电路(和存储器)例如采用这些模块时钟来实现逻辑模块的同步或异步功能或操作或逻辑模块中的同步或异步功能或操作和/或与其他逻辑模块和/或可编程/可配置逻辑电路的外部输入和输出的同步或异步通信。这些同步或异步时钟可以是相对于时钟1或者或时钟1和时钟2的。

要注意,本发明的技术可使用一个或多个处理器(所述处理器被合适地编程)来实现以执行、履行和/或存取可编程/可配置逻辑电路的一个、一些或全部逻辑块的时钟分配的架构。时钟分配架构可选择性将一个或多个U弯电路并入(如果合适的话则不并入U弯电路)一个或多个逻辑模块的时钟信号路径中以生成相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的偏斜的模块时钟信号。

尽管图3A、图3B和图5的逻辑模块的模块时钟信号已经被配置或设计成其间基本上没有偏斜(每个逻辑模块在时钟分配路径中都包括7个缓冲器),但模块时钟信号可被配置或设计(之后构建)成相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块中的一个或多个模块时钟信号包括预定或编程的时钟偏斜。可编程/可配置逻辑电路的一个、一些或全部逻辑模块的时钟分配的架构可被设计成相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号具有期望或可编程的非零偏斜。注意的是,可编程偏斜在例如使用(原位)期间和/或基于一个或多个操作条件可以是固定的或可编程/可变的(不论一次还是多次)。此外,可编程偏斜在制造、调配(deployment)之后和/或在操作(例如,由与控制电路相关联的电子装置的用户和/或操作者原位地操作)期间可以是固定的和/或可编程的。

这里描述和示出了许多发明。尽管已经描述和示出了本发明的一些实施例、特征、属性和优点,但应该理解,根据描述和图示,许多其他以及不同和/或类似的实施例、特征、属性和优点是清楚的。如此,这里描述和示出的本发明的实施例、特征、属性和优点不是穷尽性的,并且应该理解,本发明的这种其他的、类似的以及不同的实施例、特征、属性和优点都在本发明的范围内。

事实上,本发明既不限于任何单个方面,又不限于其实施例,又不限于这些方面和/或实施例的任何组合和/或排列。此外,本发明的方面和/或其实施例中的每个可单独采用或与本发明的其他方面和/或其实施例中的一个或多个结合使用。

例如,尽管U弯电路已经被描述和示出为位于相关联的输出路径处/中,但U弯电路不需要位于输出路径处/中并且与输出路径关联—而是仅仅与逻辑模块的时钟分配和传输电路相关联。

另外,如以上提示的,尽管图2A至图2C的逻辑模块的各时钟路径包括至少一个U弯电路,但一个或多个逻辑模块可包括不包括U弯电路的时钟路径。此外,如以上指示的,设置在各输出路径处的U弯电路可以是相同或不同类型的电路—例如,在第一输出路径处,U弯电路可由一个缓冲器组成,而在第二输出路径处,U弯电路可由两个或更多缓冲器组成。

事实上,逻辑模块中的U弯电路可被并入时钟路径中,以编程或平衡逻辑模块的时钟信号之间的时钟偏斜和/或相位(例如,保持基本上没有偏斜或零偏斜)。可采用除了U弯电路外的电路或电路配置以通过并入、匹配或提供逻辑模块的时钟信号的可编程延迟来编程或平衡时钟偏斜和/或相位。

此外,尽管一个或多个可编程/可配置逻辑电路的逻辑模块的时钟分配和传输可生成独立的模块时钟(使用独立的例如异步输入时钟),但可编程/可配置逻辑电路中并非所有逻辑模块都可以生成和/或分配这些独立的时钟。例如,参照图7,逻辑模块3不生成对应于时钟1的一个或多个模块时钟,以及逻辑模块4不生成对应于时钟2的一个或多个模块时钟。类似地,逻辑模块2不生成对应时钟2的一个或多个模块时钟——然而,时钟2的时钟分配路径包括逻辑模块2。

另外,可以有利的是禁用时钟路径的未选择的部分中或者未并入时钟分配、生成和/或传输路径的逻辑模块的时钟分配和传输电路(下文中被统称为“未选择电路”)的部分中的那些缓冲器、晶体管(和其他有源或无源元件)。例如,参照图6,可禁用整个南时钟路径和/或U弯电路以及北时钟路径的输出缓冲器(例如,永久禁用或者如果例如原位地或在测试期间重配置或重编程时钟路径及在此之前)。在一个实施例中,可以通过不向这些未选择的部分传播或提供电力(例如,在设计和/或制造期间)来禁用电路。在另一个实施例中,经由来自例如控制电路的一个或多个控制信号来禁用电路。

本发明可结合任何“形状”的模块采用,所述形状包括例如正方形、矩形、三角形、梯形、五边形和/或六边形。在一个方向上的时钟输入和输出路径的传播延迟与另一个方向(例如,垂直方向上引入的延迟不同于水平方向上引入的延迟)不同的情况下,控制电路可将时钟分布路径编程,以提供在模块之间的水平和垂直传播延迟分量的关系。例如,参照图8,矩形形状的逻辑模块的示例性时钟分配和传输电路包括在不同于水平方向的垂直方向上的输入和输出时钟信号路径长度,而同样地,逻辑模块的输入和输出路径可包括一个输入/输出和U弯电路,以引入时钟信号路径的另外的垂直和水平传播延迟分量(其中,垂直路径的长度不同于水平路径)。在这些情形下,在确定逻辑模块之间的预定或期望的偏斜(例如,没有偏斜或零偏斜)时,由控制电路(和/或时钟分配和传输电路)可以分开地确定、计算和/或补偿垂直时钟信号线传播延迟和水平时钟信号线传播延迟的关系。

参照图9,用粗线和箭头指示示例性的时钟分配和分配路径及其方向,其中,各逻辑模块的时钟分配和传输电路被配置或编程成提供用于提供各逻辑模块所采用的模块时钟信号的示例性编程关系(这里,基本上没有偏斜或零偏斜)的时钟分配和分配路径(每个时钟分配和分配路径都具有相同的垂直传播延迟分量和水平传播延迟分量——例如,在这个示例性实施例中,5个水平分量,2个垂直分量)。在这个示例性实施例中,由逻辑模块1接收时钟信号输入,除了将时钟信号分配并且发送到逻辑模块2之外,时钟信号输入还将提供逻辑模块1采用的时钟信号的预定关系的延迟(包括传播延迟的垂直和水平分量)并入到逻辑模块2-5(以及在一些实施例中的可编程/可配置逻辑电路的其他逻辑模块中的一个、一些或全部)的时钟信号。在这个示例性实施例中,各逻辑模块已经在一些情形下使用U弯电路并入相同的时钟延迟(5个水平分量、2个垂直分量)以平衡逻辑模块之间的时钟偏斜。

因此,尽管在正方形形状模块的背景下描述了许多实施例(其中,传播延迟的垂直和水平分量相等或基本上相等),但本发明可以在垂直和水平时钟信号线的长度不相等的情形下实现。在这些情形下,时钟信号线延迟与垂直和水平延迟的关系可由控制电路来分开地确定和/或计算,此后被适合地配置成提供预定的时钟偏斜(在图9中是零偏斜)。本文中描述和示出的所有发明全部可应用于非正方形逻辑模块形状或逻辑模块,其中,传播延迟的垂直分量不同于传播延迟的水平分量。为了简明的目的,结合非正方形形状的模块(或具有在与逻辑模块上的第二方向上的传播延迟量不同的逻辑模块上的第一方向上的传播延迟量)对本文中阐述的发明的讨论将不再重复。如此,没有提供对各个和每个逻辑模块形状的单独讨论;然而,本领域的普通技术人员基于本公开将清楚可应用于例如正方形、矩形、梯形、五边形和/或六边形和/或具有例如基于时钟路径的方向而不同的传播延迟内的传播延迟的分量的逻辑模块。

要注意,本发明可应用于超出x-y维度或平面的时钟电路和架构。例如,模块存在于不同硅层上或者时钟架构在集成电路内垂直穿过的3D集成电路芯片的背景下,时钟路径将在z维度或平面上匹配。确实地,本领域的普通技术人员依据本申请将清楚本文中描述和/或示出的本发明的可应用性超出x-y维度或平面。

术语“电路”意指电路(无论集成电路还是其他电路)、一组这样的电路、一个或多个处理器、一个或多个状态机、实现软件的一个或多个处理器、一个或多个门阵列、可编程门阵列和/或现场可编程门阵列或者一个或多个电路(无论集成电路还是其他电路)、一个或多个状态机、一个或多个处理器、实现软件的一个或多个处理器、一个或多个门阵列、可编程门阵列和/或现场可编程门阵列的组合以及其它。术语“数据”意指电流或电压信号(多个或单个),无论是模拟形式还是可以是单个位(等)或多个位(等)的数字形式以及其他。

存储数据、等式、关系和/或查询表的存储器可以是分立地位于或者驻留在(例如,集成在)例如控制电路上的永久的、半永久的或暂时(例如,在重编程之前)的存储器。结合本发明,存储器可存储模块时钟信号与可编程/可配置逻辑电路的逻辑模块的模块时钟之间的可编程偏斜关系(无论是零还是非零)。如此,在一个实施例中,存储器可以是可一次编程的,或者控制电路采用的数据、等式、关系和/或查询表可以是可一次编程的(例如,在测试期间或在制造时进行编程)。在另一个实施例中,存储器是可多次编程的,如此,可在测试和/或制造之后修改控制电路所采用的预定值和/或带限制。

要注意,U弯电路已经被描述为由缓冲器组成。然而,U弯电路可包括现在已知的或之后开发的任何有源或无源元件,可采用U弯电路生成相对于集成电路的可编程/可配置逻辑电路的其他逻辑模块的模块时钟信号的期望的或可编程的偏斜和/或相位。例如,在一个实施例中,可采用一个或多个常规类型的缓冲器。

如以上提到的,可使用一个或多个处理器(被合适地编程)以执行、履行和/或存取本文中描述的功能或操作中的一个或多个以生成本发明的时钟信号分布和传输网络或架构的来实现本文中描述的技术。

此外,本发明可结合PCT申请序列号PCT/US 2014/029404和PCT/US2014/029407中描述和示出的任一个发明来采用。为了简明的目的,本文中将不再详细地讨论这些组合。

要注意,本文中公开的各种电路和线路可使用计算机辅助设计工具来描述并且依据其行为、寄存器传递、逻辑组件、晶体管、布局几何形状和/或其他特性被表现(或表示)为在各种计算机可读介质中实施的数据和/或指令。可实现这些电路表现的文件和其他目标的格式包括但不限于支持行为型语言(诸如,C、Verilog和HLDL)的格式、支持注册级描述语言(如RTL)的格式和支持几何描述语言(诸如,GDSII、GDSIII、GDSIV、CIF、MEBES)的格式以及现在已知或之后开发的任何其他格式和/或语言。可以实施这种格式化的数据和/或指令的计算机可读介质包括(但不限于)各种形式的非易失性存储介质(例如,光学存储介质、磁性存储介质或半导体存储介质)和可用于通过无线、光学或有线信令介质或其任何组合传递此格式化的数据和/或指令的载波。通过载波传递此格式化的数据和/或指令的示例包括(但不限于)经由一个或多个数据传递协议(例如,HTTP、FTP、SMTP等)通过互联网和/或其他计算机网络进行的传递(上传、下载、电子邮件等)。

事实上,当经由一个或多个计算机可读介质被接收在计算机系统内时,可由计算机系统内的处理实体(例如,一个或多个处理器)结合一个或多个其他计算机程序的执行来处理上述电路的基于此数据和/或指令的表现以生成这些电路的物理表现形式的表示或图像,所述其他计算机程序包括而不限于网表(net-list)生成程序、布置和路由程序等。例如,通过可以生成用于在装置制造处理中形成电路的各种组件的一个或多个掩模,此后可以在装置制造中使用此表示或图像。

此外,可使用计算机辅助设计和/或测试工具,经由模拟来表示本文中公开的各种电路和线路以及技术。充电电路、控制电路和/或监测电路和/或由其实现的技术的模拟可由计算机系统来实现,其中,经由计算机系统来模拟、复制和/或预测此电路的特性和操作和由其实现的技术。本发明还涉及发明性的充电电路、控制电路和/或监测电路和/或由其实现的技术的模拟,并且这些旨在落入本发明的范围内。对应于这些模拟和/或测试工具的计算机可读介质也旨在落入本发明的范围内。

要注意,本文中参照“一个实施例”或“实施例”(等)意指结合实施例描述的特定特征、结构或特性可被包括、采用和/或并入本发明的实施例中的一个、一些或全部实施例中。说明书中使用或出现的短语“在一个实施例”或“在另一个实施例”(等)不是指同一实施例,也不是必须与一个或多个其他实施例相互排斥的单独或替代的实施例,也不限制为单个排他实施例。对于术语“实现方式”同样如此。本发明既不限于任何单个方面,也不限于其实施例,也不限于这些方面和/或实施例的任何组合和/或排列。此外,可单独地或与本发明的其他方面和/或其实施例中的一个或多个结合地采用本发明的每个方面和/或实施例。为了简明的目的,本文中没有单独讨论和/或示出一些排列和组合。

另外,本文中被描述为“示例性的”的实施例或实现方式将不被解释为例如相对于其他实施例或实现方式是优选的或有利的;确切地,其旨在传达或指示这个或这些实施例是示例实施例。

最后,尽管已经在一些特定方面描述了本发明,但本领域的技术人员将清楚许多额外的修改形式和变形形式。因此,要理解,可在不脱离本发明的范围和精神的情况下,与具体描述不同地实践本发明。因此,本发明的实施例应该被视为在所有方面是示例性的,而非限制性的。

在权利要求书和其他地方,本文中的术语“第一”、“第二”等不表示任何次序、数量或重要性,而是用于将一个元件与另一个元件区分开。此外,本文中的术语“一”和“一个”没有表示数量的限制,而是表示存在至少一个所引用的项。另外,术语“数据”可意指模拟形式或数字形式(可以是单个位(等)或多个位(等))的电流或电压信号(多个)以及其他。另外,术语“逻辑模块”意指多个晶体管(通常,数千至数百万个)的设计单元或设计块,在此应用中,所述设计单元或设计块能够连接或被连接到多个相邻的“模块”、“芯”或“块”(例如,在操作中或在操作期间)。

如在权利要求书中使用的,术语“包括”“包含”“具有”“拥有”“含有”及“囊括”或其任何其他变形旨在涵盖非排他性的包括,使得包括一系列元件的处理、方法、电路、制品或设备不只包括这些元件,而是可包括此处理、方法、制品或设备没有明确列出的或固有的其他元件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1