CN101277109A - 可配置的时间借用触发器 - Google Patents
可配置的时间借用触发器 Download PDFInfo
- Publication number
- CN101277109A CN101277109A CNA2008100858642A CN200810085864A CN101277109A CN 101277109 A CN101277109 A CN 101277109A CN A2008100858642 A CNA2008100858642 A CN A2008100858642A CN 200810085864 A CN200810085864 A CN 200810085864A CN 101277109 A CN101277109 A CN 101277109A
- Authority
- CN
- China
- Prior art keywords
- input
- output
- configurable
- clock
- clock signal
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
为电路(如可编程逻辑器件)提供可配置的时间借用触发器。触发器可以基于可配置的延迟电路和两个锁存器,或者可以基于可配置的脉冲发生电路和单个锁存器。在基于两个锁存器的设计中,第一锁存器和第二锁存器是串联排列的。时钟信号是使用可配置的延迟电路延迟的。已经加载有配置数据的可配置存储元件可用来调节由可配置的延迟电路产生的延迟量。延迟形式的时钟信号被提供给与第一锁存器关联的时钟输入。第二锁存器的时钟输入无延迟地接收时钟信号。在基于单个锁存器的设计中,可配置的脉冲发生电路为触发器接收时钟信号,并为锁存器生成相应的时钟脉冲。
Description
技术领域
本发明涉及集成电路如可编程逻辑器件集成电路中的触发器,且更具体地涉及有助于逻辑设计者改善电路性能的可配置的时间借用触发器(time borrowing flip-flop)。
背景技术
集成电路一般包含组合逻辑和时序逻辑。组合逻辑不包括存储元件。给定组合逻辑电路的输出因此只由其当前输入确定。时序逻辑电路包含存储元件,其输出反映它们输入值的过去时序。结果,时序电路的输出由其当前输入和存储在其存储元件中的数据两者确定。
常用时序电路存储元件包括电平敏感(level-sensitive)锁存器和触发器。
在电平敏感锁存器中,锁存器输出是由时钟(使能)输入的电平控制的。当时钟为高时,锁存器输出跟踪输入的值。当时钟从高转换为低时,锁存器的输出状态被固定在正好在转换前存在的任何值。只要时钟为低,锁存器的输出将保持在其固定状态。
触发器是边沿触发器件,它在使能信号(如时钟)的上升沿或下降沿改变状态。在上升沿触发的触发器中,该触发器只在时钟的上升沿对其输入状态进行采样。该采样值然后被保持直到时钟的下一个上升沿。
基于触发器的逻辑电路通常优于基于锁存器的电路,原因是触发器的边沿触发性质强加的规则性使电路的时序行为的建模相对简单明了,因此简化设计。
然而,在传统的基于触发器的逻辑电路中,时钟频率通常必须降得足够低以适应与电路的最慢组合逻辑路径相关的延迟。即使快速逻辑路径中的电路在比慢速逻辑路径少的时间内产生有效信号,该信号也一直到下一个时钟脉冲的边沿到来时才被使用。尽管传统的触发器电路强加的规则性对减化电路设计是有益的,但它会在某些情形下限制性能。
时间借用方案已经被开发以尝试解决此问题。例如,时间借用方案已经被开发,在该方案中,在各时钟中各种延迟被提供以馈送到电路上的边沿触发的触发器。通过为时钟选择适当延迟,电路设计者可以配置逻辑电路使得较慢路径中的触发器的时钟边沿被延迟。这允许时间从快速逻辑路径中被借用,并被提供给慢速逻辑路径,以便整个电路的时钟速度不必被降低以适应最坏情况的延迟。
用这些传统的时间借用方案,可能难于获得最优性能,原因是从时钟网络可获得的延迟的数目受到限制。用于改善定时性能的其它这类方案可能在应用性方面受到限制,或要求不可接受的复杂分析。例如,时间借用触发器已经被开发,其提供固定且相对少的时间借用量。这些方案在许多电路中不能提供最优性能。
期望能够提供改进的时间借用触发器电路来优化集成电路如可编程逻辑器件上的电路性能。
发明内容
根据本发明,为集成电路,如可编程逻辑器件集成电路,提供可配置的时间借用触发器。所述触发器可以基于一个可配置的延迟电路及两个锁存器,或者可以基于一个可配置的脉冲发生电路和单个锁存器。
在基于两个锁存器的设计中,第一和第二锁存器是串联排列的。时钟信号是使用可配置的延迟电路延迟的。延迟电路可以具有接收时钟信号的延迟元件。延迟元件可以产生时钟信号的多个延迟形式,每个具有各自不同的相关延迟量。时钟信号的延迟形式可以提供给多路复用器的输入。多路复用器可以具有反相输出,该输出连接到与第一锁存器相关联的时钟输入。
已经加载有配置数据的可编程存储元件可以用来调节多路复用器的状态。通过调节多路复用器,施加在第一锁存器的时钟信号上的延迟量可得以控制。第二锁存器具有接收不通过延迟电路的时钟信号的时钟输入。
在基于单个锁存器的设计中,可配置的脉冲生成电路可为触发器接收时钟信号,并可以为该锁存器生成相应的时钟脉冲。可配置的脉冲生成电路可以包括逻辑门,如“与”(AND)门,其具有第一输入、第二输入和一输出。逻辑门的输出可以被连接至锁存器的输入。
触发器时钟信号可以并联提供给可配置的延迟电路、逻辑门的第一输入。可配置的延迟电路可以包含可编程元件,这些可编程元件已经加载有配置数据,并产生相应的静态控制信号。可配置的延迟电路也可以包括产生时钟信号的不同延迟量的延迟元件。由静态控制信号控制的多路复用器可用于从延迟元件中为时钟信号选择给定的延迟量。延迟的时钟信号可以以反相形式提供给逻辑门的第二输入。可配置的宽度脉冲在逻辑门的输出产生,并被施加到锁存器的时钟输入。
本发明进一步的特征、本发明的性质及各种优点从附图及对优选实施例的详细描述可以清楚看出。
附图说明
图1是根据本发明的一个实施例的说明性可编程逻辑器件集成电路的图。
图2是传统触发器的图。
图3是说明根据本发明一个实施例的可配置的时间借用触发器中时序约束定义的时序图。
图4是说明根据本发明一个实施例的可配置的时间借用触发器的时间变量定义的时序图。
图5是说明根据本发明的一个实施例的触发器时间变量之间的理想关系的曲线图。
图6是说明在传统电路中电路中的最坏情况路径是如何限制时钟频率的图。
图7是根据本发明的一个实施例的基于两个锁存器的可配置的时间借用触发器的图。
图8和9是说明根据本发明的一个实施例的带特定时间借用设置的可配置的时间借用触发器的时间变量之间关系的曲线图。
图10是说明根据本发明的一个实施例使用可配置的时间借用触发器如何改善图6所示类型电路的性能的图。
图11是说明根据本发明的一个实施例,图6所示类型的可配置的时间借用触发器如何工作的时序图。
图12和13是说明根据本发明的一个实施例,带各种不同时间借用设置的可配置的时间借用触发器的时间变量之间的关系的曲线图。
图14是根据本发明的一个实施例的一个示例性系统环境的图,在该示例性系统环境中,可使用包含可配置的时间借用触发器的可编程电路。
图15根据本发明的一个实施例设计和配置包含可配置的时间借用触发器的可编程电路所涉及的示例性步骤的流程图。
图16是根据本发明的一个实施例基于脉冲式锁存器的可配置的时间借用触发器的图。
图17是根据本发明的一个实施例、在图16所示类型的电路中可以生成的示例性可配置的宽度时钟脉冲的图。
图18、19和20是说明根据本发明的一个实施例,图16所示类型的可配置的时间借用触发器如何工作的时序图。
图21是说明根据本发明的一个实施例,当图16所示类型的可配置的时间借用触发器如图18、19和20所示那样工作时的时间变量之间的关系的曲线图。
图22是根据本发明的一个实施例的可编程电路(如可编程逻辑器件集成电路)上的逻辑元件中基于脉冲式锁存器的可配置的时间借用触发器的图。
图23和24根据本发明实施例的可配置的时间借用触发器电路的图,其中多个逻辑元件输出与给定的查询表相关。
具体实施方式
本发明涉及使用时间借用技术改善同步逻辑电路中电路的性能。逻辑电路可以是任何合适的集成电路的一部分。借助一个特别合适的布置,逻辑电路和本发明的时间借用电路在可编程逻辑器件集成电路上实现。如果需要,逻辑电路和时间借用电路可以在传统上并不称作可编程逻辑器件的可编程集成电路上实现,这些可编程逻辑器件如包含可编程逻辑的微处理器、包含可编程逻辑的数字信号处理器、包含可编程逻辑区的定制集成电路或包含可编程逻辑的其它可编程集成电路。一般将在以可编程逻辑器件集成电路为例的背景下描述本发明。
根据本发明的示例性可编程逻辑器件10示于图1。
可编程逻辑器件10具有通过输入/输出引脚14驱动器件10之外的信号以及从其它器件接收信号的输入/输出电路12。互连资源16,如全局和局部垂直和水平导线和总线,可以用来在器件10上路由信号。互连资源16包括各个导线之间的导线和可编程连接,因此有时也称作可编程互连16。
可编程逻辑18可以包括组合逻辑电路和时序逻辑电路。可编程逻辑18可以被配置为执行定制的逻辑功能。可编程互连16可以被认为是可编程逻辑18的一种类型。
可编程逻辑器件10包含可编程存储元件20。可以使用引脚14和输入/输出电路12对存储元件20加载配置数据(也称作编程数据)。一旦加载,每个存储元件提供控制可编程逻辑18中相关逻辑元件的工作的相应静态控制信号。在典型情况中,已加载的存储元件20的输出被施加到可编程逻辑18中的金属氧化物半导体晶体管的栅极以接通或关断某些晶体管,并从而配置可编程逻辑18和路由选择路径中的逻辑。可以以这种方式被控制的可编程逻辑电路元件包括多路复用器(如,用于形成可编程互连16中的路由选择路径的多路复用器)的部件、查询表、逻辑阵列、AND(与)、OR(或)、NAND(与非)和NOR(或非)逻辑门、通行门等。
存储元件20可以使用任何合适的易失性和/或非易失性存储结构,如随机存取存储器(RAM)单元、熔丝、反熔丝(antifuse)、可编程只读存储器存储单元、掩模编程的结构及激光编程的结构、这些结构的组合等。因为在编程过程中,存储元件20被加载有配置数据,所以存储元件20有时也被称作配置存储器、配置RAM或可编程存储元件。
装置10的电路可以使用任何适当的构架来组织。举一个例子,可编程逻辑器件10的逻辑可以以一连串较大可编程逻辑区的行和列来组织,每个区包含多个较小的逻辑区。例如,较小的区可以是有时称作逻辑元件的逻辑区,每个区包含一个4输入查询表、一个或多于一个寄存器以及可编程多路复用器电路。例如,较大的区可以是包含多个逻辑元件的逻辑阵列块。在图1的例子中,图1中可编程逻辑18的一个较大的区中示出多个示例性逻辑元件22。在典型的可编程逻辑器件10中,可以有上百或上千个逻辑元件22。图1所示的4个逻辑元件22只是示例性的。
在器件编程过程中,配置数据被加载到器件10中,其配置逻辑元件22,使得每个逻辑元件在其输入执行期望的逻辑功能,并在一个或多于一个的逻辑元件输出处产生相应的输出信号。
器件10的资源,比如可编程逻辑18,可以通过可编程互连16进行互连。互连16通常包括垂直导体和水平导体。这些导体可以包括基本横越整个器件10的全局导线、部分线/支线(fractional line),如横越部分器件10的半线或四分之一线、特定长度(如,足以互连几个逻辑阵列块或其它这类逻辑区的长度)的错列线、较小的局部线或任何其它合适的互连资源布置。如果需要,器件10的逻辑可以以更多级或更多层排列,其中,多个大的区互连以形成更大的逻辑部分。还有其它器件布置可以使用不排列成行和列的逻辑。
除了图1中所示的相对大的可编程逻辑块之外,器件10一般还包括与器件10上的可编程互连相关的一些可编程逻辑、存储器及输入-输出电路。例如,输入-输出电路12可以包含可编程输入和输出缓冲器。互连16可以被编程以将信号路由到期望的目的地。
器件10上的许多逻辑电路包含被称作触发器的存储元件。触发器是边沿触发的器件,其可以存储数字数据(如,逻辑1或逻辑0)。
传统的触发器24示于图2。触发器24具有数据输入线30和数据输出线32。电平敏感的锁存器26和28用来存储数据。锁存器26和28用时钟输入线34处的时钟信号CLOCK进行计时。锁存器26具有反相时钟输入62。锁存器28具有非反相/同相时钟输入64。因为输入62相对于输入64是反相的,所以锁存器26和28有效地用相位相差180°的时钟信号计时。锁存器26响应反相时钟信号,而锁存器28响应非反相时钟信号CLOCK。
传统的触发器,如图2的触发器24的特征由建立时间Tsu、保持时间Th和时钟至输出的时间Tco表现。
触发器的建立时间Tsu表示时钟输入34上的信号CLOCK变高及其反信号在锁存器26的输入62处变低之前,输入线30上的数据D必须为有效的最小时间量。如果在比Tsu更接近时钟脉冲边沿的时刻,数据被传送给输入30,则不能保证触发器24的正常工作。
保持时间Th涉及锁存器26的特性,并表示在CLOCK边沿之后(即,在CLOCK的反信号下降之后)要求数据D为稳定的最小时间量。如果D在Th结束之前改变状态,则触发器的输出Q可能是不正确的。时钟至输出的时间Tco表示在时钟脉冲边沿之后触发器改变其输出所花费的时间量。这些关系在图3的曲线图中示出。
尽管传送给触发器输入的数据D必须至少在时钟脉冲边沿之前的Tsu时间段内是稳定的,但并不禁止数据在较早时刻到来。时钟脉冲边沿之前、在触发器的输入处存在稳定数据的时间量可被称作Td,如图4的图所示。图4中变量Tcq表示时钟信号CLK的边沿之后输出数据D对于给定的Td值是稳定的时间量。在一些情形中,数据可以在时间上非常接近时钟脉冲边沿时(如,接近或处于由建立时间Tsu确立的最小值)给出。在这类情形中,Td将等于Tsu(或非常接近Tsu)。在其它情形中,数据可以在离时钟脉冲边沿较远时给出。在这类情形中,Td将大于Tsu。
Td和Tcq的值是互相关联的。变量Td可以被调节,而变量Tcq是Td的函数。说明图2所示类型的理想化传统触发器的Td和Tcq之间关系的曲线图示于图5中。在图5的曲线图中,水平轴表示变量Td(即,数据边沿和上升的时钟脉冲边沿之间的实际时间差)。图5的曲线图中的垂直轴表示变量Tcq(即,上升的时钟脉冲边沿和数据在触发器输出处变成有效的时刻之间的实际时间)。
如图5的曲线图所示,在大于或等于Tsu的Td值处,预期触发器工作正常,Tcq值为Tco(即,Tcq将等于在时钟脉冲边沿之后输出变成有效所需的最小时间量——Tco)。然而,在低于Tsu的Td值处,触发器的建立时间要求被违反,因为数据的到来时间太接近时钟脉冲边沿。在此情况中,不会给触发器的输入提供有效数据,而触发器也不会正常运行。
对于图2所示的传统的触发器类型(具有图5所示类型的Tcq相对Td的特征),时间借用是不可行的,这限制了电路性能。考虑将图6的示例性电路作为一个例子。在电路74中,数据是在由触发器76、逻辑电路78、触发器80和逻辑电路82形成的环路中被处理的。
在图6的例子中,触发器76和80是没有借用能力的传统触发器,如关于图2和5描述的。因此,触发器76和80具有固定的Tsu和Tco值。在图6的例子中,触发器76和80的Tsu值是200ps(皮秒),触发器76和80的Tco值是100ps。如图6所示,逻辑电路78(在此例子中)具有的相关处理延迟是1000ps。逻辑电路82具有的相关延迟为800ps。逻辑82的输出信号通过反馈路径84被馈送回逻辑电路78。
在诸如电路74的电路中,可以使用的最大时钟频率由最坏情况路径延迟指定。在电路74中考虑两种相关路径延迟。第一路径的延迟与从点66到点68的路径相关。注意尽管Tsu和Tco与触发器的内部逻辑相关,但在此讨论中认为它们是路径的一部分,并图示为在触发器的外部。第一路径的延迟等于1300ps(100ps+1000ps+200ps)。第二路径的延迟与从点70到点72的路径相关。该延迟等于1100ps(100ps+800ps+200ps)。因为与最慢路径相关的延迟是确定最大时钟速度时的限制因素,所以在时钟电路74中可以使用的最大时钟速度由1300ps的路径延迟决定,该路径延迟与从点66到点68的路径相关。即使与从点70到点72的路径相关的延迟较低(1100ps),但使用传统的触发器不能利用这个较小的延迟。因此,有必要将电路74的时钟速率设置为约1/(1300ps)或769MHz的频率。
根据本发明的一个实施例的可配置的时间借用触发器示于图7中。如图7所示,触发器86具有接收输入数据D的数据输入线88,并具有提供输出数据Q的相应数据输出线90。触发器86具有两个锁存器96和98,它们有时被称作锁存器L1和L2。在中点节点100上的数据信号有时被称作信号X。
时钟信号CLK是在时钟输入线92上接收的。没有被取反的一种形式的CLK被提供给锁存器L2的时钟输入102,并可以作为触发器86的参考时钟。该时钟信号有时被称作PHI2。
锁存器L1是使用已经插入可控延迟量的信号CLK的一种形式计时的。(这种时钟信号形式有时被称为PHI1)。任何合适的电路都可以用来为时钟信号PHI1产生可配置的时间延迟。在图7的例子中,可配置的延迟是使用可配置的延迟电路94产生的。
电路94具有多路复用器108。多路复用器108的输出是取反的,所以时钟信号PHI1的相位相对于时钟信号PHI2的相位在标称上移位180°(即,PHI1名义上是PHI2的反相)。
多路复用器108的设置是由可编程元件20控制的。在图7的例子中,对可配置的延迟电路94有两种相关的可编程元件20,所以电路94有4(22)个可能的延迟设置。这只是示例性的。通常,任何适当数目的可编程元件20均可以用于电路94中。使用更多的可编程元件20使电路94可以更精确地被调节,但会增加额外开销。
延迟元件106在其输入112处接收时钟信号CLK,并在每个其输出110处产生CLK的4个不同的相应延迟形式。举例来说,延迟元件106可以包含具有多个输出抽头(tap point)的延迟链,以生成100ps、200ps、300ps和400ps(作为例子)的延迟。由可配置的延迟电路94产生的延迟量有时被称作Tsk。通过加载适当的配置数据到其相关的可编程元件20中来调节多路复用器108的设置,可以产生100ps、200ps、300ps或400ps的期望延迟值Tsk。通常,延迟元件106可以产生任意合适增量的延迟。使用100ps延迟增量只是示例性的。
触发器86支持时间借用。举例来说,考虑这样一种情形,其中电路94的延迟时间Tsk被设置成100ps。在这种情况下,触发器86表现出图8的线条114所示类型的Tcq对Td的特征。如线114所示,触发器86支持一系列不同的Tcq及Td值。
在图8的示例中,Tsu(a)的值是100ps,Tsu(b)的值是200ps,Tco(a)的值是100ps,Tco(b)的值是200ps。触发器86可用于数据D出现在时钟脉冲边沿之前大于Tsu(b)的时间的电路中(即,Td>Tsu(b))。在此情形下(由图8的点E代表),触发器86的特征可以由等于Tco(b)(即,可能的最小Tco)的Tcq值表示。当数据D出现而使Td=Tsu(b)时,该电路在点B工作。数据也可能出现在更靠近时钟脉冲边沿处。例如,如果Td处于Tsu(a)和Tsu(b)之间,则触发器86在点C工作,且Tcq值处于最小值Tco(b)和最大值Tco(a)之间。使触发器86在Td=Tsu(a)的电路环境中工作产生的Tcq值为Tco(a)。
图9包括一曲线图,其中图8的触发器86的总延迟(Td+Tcq)被绘制为Td的函数。如图9所示,存在100ps的范围116,在该范围中,在触发器86的输入处出现稳定的D的时间和在触发器86的输出处出现有效值Q的时间之间的总延迟是恒定的。当使触发器86在范围116中工作时,触发器86产生其最小延迟特征,同时支持时间借用。
触发器86的时间借用特征允许图6的示例电路74的时钟速度提高。举例来说,考虑图10的配置。在图10中,电路74正在使用可配置的时间借用触发器86-1和86-2来代替图6的传统触发器76和80。图6中,每个触发器具有200ps的固定Tsu值,100ps的固定Tco值,与图6的配置不同,图10的触发器86-1和86-2可以在范围116中的任何位置(图9)工作,同时仍产生相同的整体延迟总量Tdq。
在图10的例子中,触发器86-1在对应于图8和9的点B处工作,此时Tsu值为200ps、Tco值为100ps(和图6的触发器76一样)。图10的触发器86-2在对应于图8和9的点A处工作,此时Tsu值为100ps、Tco值为200ps。如图9中的范围116所示,两个触发器时序环境产生相同的Tdq值(300ps)。不过,使触发器86-2工作在图8和9的工作点A产生与电路74中的各路径相关的各延迟的增强平衡。
具体讲,对于图6的配置,与点66和68之间的路径相关的延迟从1300ps降低到1200ps,而与点70和72之间的路径相关的延迟从1100ps增加到1200ps。尽管一个路径比以前慢了,但另一个路径变快了,总体上整个电路74可以更快速地工作。这是因为电路74的时钟的最大时钟速度是由最坏情况延迟决定的。在图6的例子中,电路74的最大时钟频率是1/(1300ps)。在图10的例子中,电路74的最大时钟频率已经提高至1/(1200ps)或833MHz。电路性能的这个提高是触发器86-2的时间借用的结果。
图11示出时间借用触发器86工作在图8和9的工作点A和C(Tsk设置为100ps)时对应的时序图。图11的上部分118对应于100ps的Td值和工作点A。图11的下部分120对应于130ps的Td值和工作点C。
显示于部分118中的D轨迹的Tsu值(PHI1)代表在时钟信号PHI1变低并锁存锁存器L1之前D必须为有效的时间量。当PHI1变低时,锁存器L1的输出变成固定的,且不再跟踪数据D。
参数Tsk代表由可配置的延迟电路94产生的延迟量。Tsk的非零值确保时钟信号PHI1相对于参考时钟信号PHI2延迟Tsk,如部分118的PHI1和PHI2的轨迹所示。由于PHI1和PHI2之间的延迟,锁存器L1在比没有延迟的情况稍晚的时刻将其输入数据Tsk(100ps)锁存,为锁存器L1提供更多的工作时间。
因为现在允许数据D在晚于先前情况多达Tsk之后跳变,所以锁存器L2的建立时间(即,在PHI2变高并使能锁存器L2之前数据D必须为有效的时间)缩短了。Tsu(PHI2)的值等于Tsu(PHI1)的值减去Tsk的值。
因为Tsu(PHI2)减小了,所以锁存器L1的输出X在比以前晚Tsk的时刻变成有效的,如部分118中的X轨迹所示。在PHI2变高之后,X的值由锁存器L2传递到触发器输出线90,作为输出数据Q。如部分118中的Q轨迹所示,输出信号Q在比无延迟的配置情况下晚Tsk的时刻变为有效的。结果,触发器86的时钟至输出时间增加了Tsk。同时,触发器的建立时间减少了Tsk。如图8和9所示,点A表示的情况是:触发器86在减小的Tsu为100ps、增加的Tco为200ps的情况下工作。
当在点A工作时,数据D相对于时钟脉冲边沿尽可能早地到达。当在对应于图11的部分120中的轨迹的图8和9的点C工作时,数据D比示于图11的部分118中更早的一个时刻T到达。Q是有效的时间是由Tdq(L1)+Tdq(L2)计算的。这个总时间固定在300ps,并且对于工作点A(部分118)和工作点C(部分120)都是相同的。
如果数据D在时间上相对于时钟脉冲边沿更早的时间到达,则触发器86在点B工作,如结合图8和9描述的。
在图11的部分118中,触发器86工作在Td值为Tsu(a)的位置(点A),这代表数据边沿可以定位到最接近时钟信号PHI1的下降沿处。然而,如果数据到来得更早,则触发器86仍能正常工作,如部分120所示。如果数据信号D的边沿在早了Tsk的时间到来,则中间数据信号X将在早了Tsk的一个时刻跳变,且输出数据Q也会在早了Tsk的一个时刻跳变(点B)。如果D在早了Tsk几分之一的时间改变,则信号X和Q也将在同样早了Tsk的几分之一的时间改变,导致在点C工作。如果与时钟脉冲边沿相比,数据D到来早了Tsk的时间,则Tcq的值将固定在Tco(b)(在点E工作),如图8所示。
因为锁存器L1的时钟延迟是使用可配置的延迟电路94可配置的,所以通过为可编程元件20适当选择配置数据可以调节Tsk的值,可编程元件20与可配置的延迟电路94相关。如果Tsk的值往高调节,则支持更加晚到的数据D(即,具有更靠近PHI2的边沿的数据边沿,并且因此具有更小的Tsu(PHI2)值的数据信号D)。
在正常工作的电路中,数据D必须满足触发器86关于时钟PHI1的保持时间(Th)约束(即,数据D在PHI1跳变之后的Th时间必须是有效的)。由于存在可配置的延迟电路94,所以锁存器L1的时钟信号PHI1相对于时钟PHI2被延迟Tsk。结果,保持时间Th增加了Tsk,如图11所示。为了避免过长的保持时间(这很可能导致锁存来自下一个周期的不正确数据),使用计算机辅助设计(CAD)工具对正在被设计的电路执行时序分析。时序分析为每个触发器86中的可配置的延迟电路94确定适当的设置。
由于时序分析,所以可以为各种触发器86选择Tsk的值从而在有相对大量保持时间可用的电路环境中发生相对更多的时间借用,而不选择可能导致电路某些部分中不正确数据锁存的过大的Tsk值。通常,当数据信号D晚到并有充足的保持时间可用时需要采用相对大的Tsk值。CAD软件可以设置在某些非关键路径中插入额外延迟以确保有足够的保持时间可用于各触发器,这些触发器具有可从时间借用中受益的关键路径。
与图8和图9相关的一系列曲线反映触发器86在不同的Tsk设置下的特征。图12示出各种Tsk设置下图8所示类型曲线图的一系列示例性曲线。图13示出各种Tsk设置下图9所示类型曲线图的一系列示例性曲线。如图13的曲线图所示,可用的时间借用的范围随着Tsk的增加而增加。只要保持时间允许,可能希望增加Tsk以最大化时间借用的潜力。
采用计算机辅助设计(CAD)电路设计工具,可以提供对哪部分电路可以忍受较大的Tsk值,哪部分电路要求相对低的Tsk值的详细了解。
包含可配置的时间借用触发器86的可编程集成电路的一个示例性系统环境示于图14中。可编程逻辑器件10(或任何其它包括触发器86的合适集成电路)可以安装在系统38中的板36上。可编程逻辑器件10可以从编程设备接收配置数据,或者可以从任何其它合适设备或装置接收配置数据。
在图14的例子中,可编程逻辑器件10是从相关集成电路40接收配置数据的可编程逻辑器件类型。对于这种类型的配置,如果需要,电路40可以与可编程逻辑器件10安装在同一板36上。电路40可以是可擦除可编程只读存储器(EPROM)芯片、具有内置存储器的可编程逻辑器件配置数据加载芯片(有时称作配置器件)或任何其它合适器件。当系统38启动时(或在另外的适当时间),用于配置可编程逻辑器件的配置数据可以从器件40提供给可编程逻辑器件,如路径42示意性示出的。提供给可编程逻辑器件的配置数据可以存储在它的配置随机存取存储器元件20中的可编程逻辑器件内。
系统38可以包括处理电路44、存储器46及与器件10通信的其它系统元件48。系统38的各元件可以位于一个或多于一个板上(如板36)或其它合适的安装结构体或外壳上。
通信路径可用来将器件10互联到其它元件上。例如,通信路径37可用来在安装于板36上的集成电路39和可编程逻辑器件10之间传递数据。通信路径35和50可用来在可编程逻辑器件10和元件44、46和48之间传递信号。
通过路径(如路径52),可为配置器件40提供器件10的配置数据。例如,配置器件40可以从配置数据加载设备54或从将数据存储在配置器件40中的其它合适设备接收配置数据。器件40可以在安装到板36上之前或之后加载数据。
在可编程逻辑器件中设计和实现需要的逻辑电路可能是一项重要任务。逻辑设计者因此通常使用基于计算机辅助设计(CAD)工具的逻辑设计系统来帮助他们设计电路。逻辑设计系统可以帮助逻辑设计者设计并测试系统的复杂电路。当一项设计完成时,逻辑设计系统可用于生成配置数据来对适当可编程逻辑器件进行电编程。
如图14所示,由逻辑设计系统56生成的配置数据可以通过路径(如路径58)提供给设备54。设备54给器件40提供配置数据,使得器件40稍后将此配置数据通过路径42提供给可编程逻辑器件10。系统56可以基于一台或更多台计算机以及一个或更多个软件程序。通常,软件和数据可以存储在系统56中的任何计算机可读介质(存储器)上,其在图14中示意性地表示为存储器60。
在一般情况下,逻辑设计者使用逻辑设计系统56创建定制的电路设计。系统56产生相应的配置数据,该数据被提供给配置器件40。加电后,配置器件40和可编程逻辑器件10上的数据加载电路被用来将配置数据加载到器件10的可编程存储元件20中。然后,器件10可用在系统38的正常工作中。
配置和使用可编程逻辑器件10包括的示例步骤示于图15中,可编程逻辑器件10包括可配置的时间借用触发器86。
在步骤122中,用户(例如,逻辑设计者)使用逻辑设计系统56(图14)为可编程逻辑器件10创建定制逻辑设计。用户给逻辑设计系统56(图14)上的计算机辅助设计(CAD)工具提供关于定制逻辑设计的信息。输入数据可以是设计数据(如,对逻辑电路或其它电路的规定)、约束数据(如,设置可接受的电路性能限度的设置,控制计算机辅助设计工具12如何处理设计者输入的设置)的形式。举例来说,步骤122可能包括构建和输入要在具有特定尺寸和时序约束的特定类型的可编程逻辑器件上实现的逻辑电路设计。用来输入逻辑电路输入数据的工具包括诸如文本编辑器、平面布置图编辑器、约束编辑器、基于库和基于向导的设计以及约束输入助手等工具。举另一个例子,在步骤122输入的设计和约束数据可以涉及要实现为专用集成电路(ASIC)的电路设计。在此背景下,接收设计和约束数据的典型计算机辅助设计工具12是布局布线工具。通常,任何适用的格式均可用于设计和约束数据。约束数据可以包括关于任何合适约束的信息(如,设计目标布局约束、时序约束、面积约束、噪声水平约束、功耗约束、热约束等)。设计及约束数据可以存储在系统56上的数据库中(存储器60)。
在步骤124中,可运行系统56上的计算机辅助设计工具以实现电路设计。如果,例如设计是用于特定类型可编程逻辑器件集成电路的逻辑设计,则CAD工具可以用于以目标技术实现逻辑设计。CAD工具可以包括逻辑编译器和一般作为一套逻辑设计和分析工具提供的其它类型的程序。编程数据(如,在.pof形式的文件中)或表示所实现设计的其它适当输出数据可以被生成。如果该设计是对专用集成电路的电路设计,则专用集成电路布局布线工具和/或其它适当工具可用来生成将电路加工成硅芯片的一系列光刻掩模规范。
在步骤124过程中,分析操作是使用分析工具如时序分析工具执行的。在步骤124过程中执行的时序分析使逻辑设计系统56可以识别出每个触发器86及其可配置的延迟电路94的最优时间借用设置(即,最优Tsk值)。借助一个适当布置,所有触发器被首先初始化为最小时间借用设置。然后时序分析工具可以基于该触发器的最大值(Tco,Tdq-Td)给每个触发器86分配输出时间。该过程可以重复直到其收敛。在验证操作过程中,时序分析工具可以检查是否已经满足建立时间约束,并检查最少的期望数据到来时间(对数据信号D)不违反任何触发器的保持时间要求(Th)。一旦完成验证,CAD工具可以增加不能满足建立时间约束的每个触发器的时间借用设置(Tsk)。在步骤124生成的配置数据包括将每个触发器86的配置延迟电路94调节到适当延迟设置Tsk的配置数据。
一旦在步骤124中已经识别定制电路设计的最优实现并生成该设计的配置数据,则配置数据可以被加载到可编程逻辑器件10中(步骤126),如关于图14描述的。加载的数据对时间借用触发器86进行配置以便使时钟速度比可能的速度更快。
如果需要,时间借用触发器86可以采用可配置的脉冲式锁存器实现。如同图7的可配置的时间借用触发器装置一样,可配置的脉冲式锁存器装置采用对可配置时间量Tsk透明的(即,输出跟踪输入)锁存电路以用作可配置的时间借用触发器。
基于脉冲式锁存器的可配置的时间借用触发器86的一个示例性实施例示于图16中。触发器86具有可配置的脉冲发生电路87,该电路基于可配置的延迟电路94。时钟信号CLK在时钟输入线92上提供,并通过输入112被分配到延迟元件106。延迟元件106产生4个不同的延迟(在该示例性例子中)。输入112上的时钟信号因此在延迟元件106的输出110处被延迟4个相应量。由可编程元件20的状态调节的多路复用器108通过反相输出在线134上提供选择的一个延迟形式的时钟信号。逻辑AND门130在线134上接收延迟的时钟信号,并在线92上接收原始时钟信号CLK,在其输出132上产生可调节宽度Tpw的脉冲CP。线134上的延迟的时钟信号被多路复用器108的反相输出反转,这可以认为是相位延迟180°。一个示例性时钟脉冲CP示于图17中。宽度Tpw是由多路复用器108选择的延迟量确定的。
时钟脉冲CP被提供至电平敏感锁存器128的时钟输入CL。锁存器128从触发器输入线88接收数据D,并在触发器输出线90上产生相应的输出数据Q。采用可配置的脉冲发生电路87,脉冲宽度Tpw可以被设置为一个值,该值在一段适于执行所需时间借用量的时间内将锁存器128保持在其透明状态。
说明图16的基于脉冲锁存的可配置的时间借用触发器86的功能的时序图示于图18、19和20中。基于脉冲锁存的可配置的时间借用触发器86的Tcq被绘制成Td的函数的曲线图示于图21中。
图18对应于在图21的工作点B的工作过程中的图16所示类型的基于脉冲锁存的可配置的时间借用触发器86。如图18所示,数据D在脉冲CP持续期间的一时间点到来,所以锁存器128被使能,而输出数据Q在Tdq时间后改变。
图19对应于在图21的工作点A的工作过程中的图16所示类型的基于脉冲锁存的可配置的时间借用触发器86。如图19所示,数据D正好在时钟脉冲边沿前的Tsu之前到达,所以触发器的时序是由该脉冲的Tco控制的。
图20对应于在图21的工作点C(是无效的)的图16所示类型的基于脉冲锁存的可配置的时间借用触发器86。如图20所示,数据D在晚于关于时钟脉冲CP下降沿的Tsu的时间到达。结果,锁存器128(并因此使触发器86)不能捕获有效数据。
在逻辑元件22(图1)中使用可配置的时间借用触发器86可能是有利的。已经在逻辑元件22中实现的基于脉冲锁存的可配置的时间借用触发器86的一个示例性实施例示于图22中。图22的示例性逻辑元件22具有查询表136。查询表136可以是(举例来说)四输入查询表。查询表136是可以配置为对许多输入信号执行所需逻辑功能的可编程逻辑的一个例子。如果需要,其它可编程逻辑(如,在非查询表配置中的可编程逻辑门)可用来实现可配置的逻辑功能。通常,任何适当的可配置的逻辑功能电路可用在逻辑元件22中。使用查询表形成逻辑元件的可配置的逻辑功能电路只是示例性的。
互补金属氧化物半导体(CMOS)通行门138和输出缓冲器140构成查询表316的输出级。查询表136的输出信号LUTOUT在输出线142上提供。CMOS通行门144和152用于加载由CMOS通行门146和154及反相器162和164形成的基于锁存器的存储元件(触发器86的锁存器128)。来自逻辑元件22的输出数据LEOUT在输出线166上提供。
来自逻辑元件22中逻辑电路的信号SD在线158上提供。在工作过程中,来自可配置的脉冲发生电路87的脉冲式时钟信号CP(以及使用连接到线150的反相器生成的反相形式的CP,称作/CP)分别在控制输入处148和150被施加到通行门144和146。只有高态有效形式的控制信号在图22中做了标示,以避免图中出现混乱。图22的CMOS通行门也接收相应的低态有效信号。CMOS传输晶体管152和154由控制信号HOLD和其反信号/HOLD控制,它们分别被施加到控制端160和156。当通行门146和154被使能时,反相器164抽取LEOUT信号并将它反馈回节点168。
图22的电路可以在三种模式下工作。
在第一模式,来自可配置的脉冲发生电路87(图16)的脉冲CP为高。当CP为高时,通行门144被使能,而通行门146被禁能。这使得数据信号LUTOUT被传递到LEOUT,并加载由交叉耦合的反相器162和164形成的锁存器元件。在正在以组合模式使用逻辑元件的情况下,CP将持续为高。
在第二模式,信号CP为低,信号/CP为高,信号HOLD为高,信号/HOLD为低。在此状态下,由反相器162和164、通行门150和154形成的锁存器处于锁存模式,并保持其当前状态。
在第三模式,信号HOLD为低,而信号/HOLD为高。这将通行门152使能,并允许锁存器加载数据信号SD。数据信号SD可用于迫使锁存器到期望状态,如“加载另一数据源”或“将锁存器设置为0”。对于期望从替代的数据源加载锁存器的状态的控制和时钟信号的任何组合,通过将CP设置为低、hold设置为低,CP信号和hold信号能够从SD加载锁存器。
图22的装置只是示例性的。如果需要,其它适当电路可用于组合基于脉冲的锁存器元件和逻辑元件电路。例如,其它辅助信号,如时钟使能、同步加载、同步清零、异步清零和异步加载可并入到触发器86中。图22的装置作为例子提供。
在图22的实施例中,电平敏感锁存器128是使用反相器162形成的,反相器162驱动逻辑元件输出LEOUT。如果需要,其它反相逻辑可用于提供反相器162的反相功能。例如,可使用与驱动LEOUT的输出逻辑分离的反相逻辑。这可提高转换速度。而且,可使用提供增强功能性的反相逻辑。一个例子示于图23中。在图23的例子中,图22的反相器162的反相功能是使用NAND门170提供的。反相器172驱动LEOUT0,并可能经历由于电路加载造成的延迟。因为NAND门170与反相器172是分离的,且只驱动指定的反相器174,所以转换速度被提高。此外,用作至NAND门170的一个输入的/clr线可用于为锁存器128提供清零功能。
如图23所示,可能有多个输出LEOUT0、LEOUT1、LOCALOUT等与给定的查询表相关联。可以为每个如图23所示的输出构建一个锁存器,或者单个锁存器可以为图24所示的多个逻辑元件输出所共用。
前面描述只是对本发明原理的说明,并且本领域技术人员可以做出各种修改,而不偏离本发明的范围和精神。
Claims (20)
1.一种可编程逻辑器件集成电路,包括:
执行定制逻辑功能的多个逻辑元件;和
可配置的时间借用触发器,其具有一个触发器数据输入、一个触发器数据输出和一个接收时钟信号的触发器时钟输入,其中所述可配置的时间借用触发器包括:
第一锁存器,其具有连接到所述触发器数据输入的一个数据输入,并具有一个数据输出和一个时钟输入;
第二锁存器,其具有连接到所述第一锁存器的所述数据输出的一个数据输入、连接到所述触发器数据输出的一个数据输出和连接到所述触发器时钟输入的一个时钟输入;以及
一个可配置的延迟电路,其具有连接到所述触发器时钟输入的一个输入,并具有连接到所述第一锁存器的所述时钟输入的一个输出,在所述第一锁存器的所述时钟输入处所述可配置的延迟电路提供可调节的所述时钟信号的延迟形式。
2.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括可编程的多路复用器。
3.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括一个可编程的多路复用器,该多路复用器具有一反相输出,该反相输出连接到所述第一锁存器的所述时钟输入。
4.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括至少一个加载有配置数据的可编程存储元件。
5.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括:
多个可编程存储元件,每个可编程存储元件根据加载的配置数据生成一个静态输出信号;和
由所述静态输出信号控制以便为所述时钟信号的所述延迟形式提供可调节延迟量的电路。
6.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括:
多个可编程存储元件,每个可编程存储元件根据加载的配置数据生成一个静态输出信号;
延迟元件,其具有一个输入和多个输出,所述输入连接到所述触发器时钟输入,并接收所述时钟信号,每个输出提供已被延迟不同量的所接收时钟信号的延迟形式;和
一个多路复用器,其具有多个输入,每个输入接收所述时钟信号的相应一个延迟形式,并且其具有至少一个控制输入,在该控制输入处来自所述可编程存储元件的所述静态输出信号被接收以调节哪个延迟形式的时钟信号由所述多路复用器提供给所述第一锁存器的所述时钟输入。
7.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括:
多个可编程存储元件,每个可编程存储元件根据加载的配置数据生成一个静态输出信号;
一个延迟元件,其具有一个输入,该输入连接到所述触发器时钟输入并接收所述时钟信号;并且其具有至少三个输出,每个输出提供已被延迟不同量的一个延迟形式的所接收时钟信号;和
一个多路复用器,其具有至少三个输入,每个输入接收所述时钟信号的相应一个延迟形式;并且其具有控制输入,在这些控制输入处,来自所述可编程存储元件的所述静态输出信号被接收以调节哪个延迟形式的时钟信号由所述多路复用器提供给所述第一锁存器的所述时钟输入。
8.根据权利要求1所述的可编程逻辑器件集成电路,其中所述可配置的延迟电路包括:
多个可编程存储元件,每个可编程存储元件根据加载的配置数据生成一个静态输出信号;
一个延迟元件,其具有一个输入,该输入连接到所述触发器时钟输入并接收所述时钟信号;并且其具有多个输出,每个输出提供已被延迟不同量的一个延迟形式的所接收时钟信号;和
一个多路复用器,其具有多个输入,每个输入接收所述时钟信号的相应一个延迟形式;并且其具有一个反相输出,该输出连接到所述第一锁存器的所述时钟输入;并且其还具有控制输入,在这些控制输入处来自所述可编程存储元件的所述静态输出信号被接收以调节哪个延迟形式的时钟信号由所述多路复用器提供给具有所述反相输出的所述第一锁存器的所述时钟输入。
9.一种可编程逻辑器件集成电路,包括:
执行定制逻辑功能的多个逻辑元件;和
一个可配置的时间借用触发器,其具有一个触发器数据输入、一个触发器数据输出和一个接收时钟信号的触发器时钟输入,其中所述可配置的时间借用触发器包括:
锁存器,其具有一个连接到所述触发器数据输入的数据输入、连接到所述触发器数据输出的一个数据输出和一个时钟输入;和
可配置的脉冲发生电路,其具有一个输入,该输入连接到所述触发器时钟输入,并接收所述时钟信号,给所述锁存器的所述时钟输入提供具有可配置宽度的相应时钟脉冲。
10.根据权利要求9所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑电路,其具有第一输入、第二输入和一个输出;其中所述第一输入从所述触发器时钟输入接收所述时钟信号;和
可配置的延迟电路,其从所述触发器时钟输入接收所述时钟信号,并提供相应的延迟形式的时钟信号给所述逻辑电路的所述第二输入,其中所述逻辑电路的所述输出连接到所述锁存器的所述时钟输入。
11.根据权利要求9所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑门,其具有第一输入、第二输入和一个输出,其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;和
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号,并提供相应延迟形式的时钟信号给所述逻辑门的第二输入,其中所述逻辑门的输出连接到所述锁存器的所述时钟输入,并且其中所述可配置的延迟电路包括可编程的多路复用器。
12.根据权利要求9所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑门,其具有第一输入、第二输入和一个输出,其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;和
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号并提供相应延迟形式的时钟信号给所述逻辑门的第二输入,其中所述逻辑门的所述输出连接到所述锁存器的所述时钟输入,并且其中所述可配置的延迟电路包括可编程的多路复用器和至少一个加载有配置数据的可编程存储元件。
13.根据权利要求9所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑门,其具有第一输入、第二输入和一个输出;其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号,并提供相应延迟形式的时钟信号给所述逻辑门的第二输入,其中所述逻辑门的所述输出连接到所述锁存器的所述时钟输入,其中所述可配置的延迟电路包括多个可编程存储元件,每个可编程存储元件根据加载的配置数据生成一个静态输出信号,并且其中所述可编程延迟电路包括一电路,该电路由所述静态输出信号控制以对来自所述触发器时钟输入的所述时钟信号提供可调延迟量来产生相应延迟形式的时钟信号,该延迟形式的时钟信号被提供给所述逻辑门的所述第二输入。
14.根据权利要求9所述的可编程逻辑器件集成电路,其中所述锁存器包括:
至少一个通行门,其接收来自可配置的逻辑功能电路的一个输出信号;和
至少一个反相器,其具有一个输入,该输入接收来自所述通行门的信号;并且其具有一个输出,该输出提供逻辑元件输出信号。
15.根据权利要求9所述的可编程逻辑器件集成电路,其中所述锁存器包括:
一个通行门,其接收可配置的逻辑功能输出信号;
第一反相器,其具有一个输入,该输入接收来自所述通行门的信号;并且其具有一个输出,该输出提供逻辑元件输出信号;
第二反相器,其具有一个输入和一个输出,该输入接收所述逻辑元件输出信号;和
一电路,其连接在所述第二反相器的所述输出和所述第一反相器的所述输入之间。
16.根据权利要求9所述的可编程逻辑器件集成电路,其中所述锁存器包括:
第一通行门,其接收可配置的逻辑功能输出信号;
第一反相器,其具有一个输入,该输入接收来自所述第一通行门的信号;并且其具有一个输出,该输出提供逻辑元件输出信号;
第二反相器,其具有一个输入和一个输出,该输入接收所述逻辑元件输出信号;和
包括第二通行门的一电路,其中所述电路连接在所述第二反相器的所述输出和所述第一反相器的所述输入之间。
17.一种可编程逻辑器件集成电路,包括:
加载有配置数据的多个可编程存储元件;
由所述可编程存储元件中的至少一些控制的可编程逻辑,其中所述可编程逻辑包含多个可编程逻辑元件,其中每个可编程逻辑元件具有多个输入和至少一个输出,并且其中每个可编程逻辑元件在其多个输入上执行一个逻辑功能,并在其输出产生一个相应的逻辑输出信号;和
多个可配置的时间借用触发器,每个可配置的时间借用触发器具有一个触发器数据输入、一个触发器数据输出和一个接收时钟信号的触发器时钟输入,每个可配置的时间借用触发器包括:
锁存器,其具有一个数据输入、一个数据输出和一个时钟输入,该数据输入连接到所述触发器数据输入,该数据输出连接到所述触发器数据输出;和
可配置的脉冲发生电路,其具有一个输入,该输入连接到所述触发器时钟输入以接收所述时钟信号并提供具有可配置宽度的相应时钟脉冲给所述锁存器的所述时钟输入。
18.根据权利要求17所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑电路,其具有第一输入、第二输入和一个输出,其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;和
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号,并提供相应延迟形式的时钟信号到所述逻辑电路的所述第二输入,其中所述逻辑门的所述输出连接到所述锁存器的所述时钟输入。
19.根据权利要求17所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑门,其具有第一输入、第二输入和一个输出,其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;和
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号,并提供相应延迟形式的时钟信号到所述逻辑门的所述第二输入,其中所述逻辑门的所述输出连接到所述锁存器的所述时钟输入;并且其中所述可配置的延迟电路包括一个可编程的多路复用器。
20.根据权利要求17所述的可编程逻辑器件集成电路,其中所述可配置的脉冲发生电路包括:
逻辑门,其具有第一输入、第二输入和一个输出,其中所述第一输入接收来自所述触发器时钟输入的所述时钟信号;和
可配置的延迟电路,其接收来自所述触发器时钟输入的所述时钟信号,并提供相应延迟形式的时钟信号到所述逻辑门的所述第二输入,其中所述逻辑门的所述输出连接到所述锁存器的所述时钟输入;并且其中所述可配置的延迟电路包括一个可编程的多路复用器和至少一个加载有配置数据的可编程存储元件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210566918.3A CN103095285B (zh) | 2007-03-30 | 2008-03-21 | 可配置的时间借用触发器 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/731,125 US7583103B2 (en) | 2007-03-30 | 2007-03-30 | Configurable time borrowing flip-flops |
US11/731,125 | 2007-03-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210566918.3A Division CN103095285B (zh) | 2007-03-30 | 2008-03-21 | 可配置的时间借用触发器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101277109A true CN101277109A (zh) | 2008-10-01 |
CN101277109B CN101277109B (zh) | 2013-01-23 |
Family
ID=39793194
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210566918.3A Active CN103095285B (zh) | 2007-03-30 | 2008-03-21 | 可配置的时间借用触发器 |
CN2008100858642A Active CN101277109B (zh) | 2007-03-30 | 2008-03-21 | 可配置的时间借用触发器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210566918.3A Active CN103095285B (zh) | 2007-03-30 | 2008-03-21 | 可配置的时间借用触发器 |
Country Status (2)
Country | Link |
---|---|
US (3) | US7583103B2 (zh) |
CN (2) | CN103095285B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618748A (zh) * | 2018-06-04 | 2019-12-27 | 中芯国际集成电路制造(上海)有限公司 | 一种逻辑电路及可穿戴电子设备 |
CN110892643A (zh) * | 2017-04-13 | 2020-03-17 | 德州仪器公司 | 用于满足控制信号的建立时间和保持时间的电路 |
CN110895413A (zh) * | 2018-08-24 | 2020-03-20 | 百度(美国)有限责任公司 | 触发自动驾驶车辆的用于捕获数据的传感器的触发逻辑 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7589555B1 (en) * | 2007-01-08 | 2009-09-15 | Altera Corporation | Variable sized soft memory macros in structured cell arrays, and related methods |
US7583103B2 (en) * | 2007-03-30 | 2009-09-01 | Altera Corporation | Configurable time borrowing flip-flops |
US7772889B2 (en) * | 2008-04-09 | 2010-08-10 | Globalfoundries Inc. | Programmable sample clock for empirical setup time selection |
US7787314B2 (en) * | 2008-09-11 | 2010-08-31 | Altera Corporation | Dynamic real-time delay characterization and configuration |
US9189014B2 (en) | 2008-09-26 | 2015-11-17 | Intel Corporation | Sequential circuit with error detection |
US8219844B1 (en) | 2009-08-03 | 2012-07-10 | Altera Corporation | Methods and systems for emulating a synchronous clear port |
US8640525B2 (en) * | 2009-12-30 | 2014-02-04 | Monsanto Technology Llc | Methods and systems for differentiating soybeans |
US8253463B1 (en) | 2010-03-10 | 2012-08-28 | Altera Corporation | Pulse width control circuitry |
US8519763B2 (en) | 2010-06-11 | 2013-08-27 | Altera Corporation | Integrated circuits with dual-edge clocking |
US8358148B1 (en) * | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US8913601B1 (en) | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
US8536919B1 (en) | 2010-10-21 | 2013-09-17 | Altera Corporation | Integrated circuits with delay matching circuitry |
US8339166B2 (en) * | 2010-11-17 | 2012-12-25 | Advanced Micro Devices, Inc. | Clock gater with programmable delay |
US8212585B1 (en) * | 2011-03-30 | 2012-07-03 | Panasonic Corporation | Programmable logic device |
US8860458B2 (en) | 2012-07-20 | 2014-10-14 | Altera Corporation | Integrated circuits with logic regions having input and output bypass paths for accessing registers |
US9231569B2 (en) | 2013-01-24 | 2016-01-05 | Freescale Semiconductor, Inc. | Variable delay and setup time flip-flop |
US8952740B2 (en) | 2013-02-01 | 2015-02-10 | Industrial Technology Research Institute | Pulsed latching apparatus and method for generating pulse signal of pulsed latch thereof |
US8947124B2 (en) * | 2013-02-15 | 2015-02-03 | Advanced Micro Devices, Inc. | Clock gater with independently programmable delay |
US9653186B2 (en) * | 2014-02-12 | 2017-05-16 | Mediatek Inc. | Memory-testing device and memory-testing method |
US9558309B2 (en) * | 2014-05-09 | 2017-01-31 | University Of Southern California | Timing violation resilient asynchronous template |
US9311438B1 (en) | 2014-10-07 | 2016-04-12 | Freescale Semiconductor, Inc. | Signal delay flip-flop cell for fixing hold time violation |
US9455691B2 (en) | 2014-10-17 | 2016-09-27 | Freescale Semiconductor, Inc. | Flip-flop cell with configurable delay |
US9602106B1 (en) | 2015-03-05 | 2017-03-21 | Altera Corporation | Methods for optimizing circuit performance via configurable clock skews |
US9564881B2 (en) | 2015-05-22 | 2017-02-07 | Qualcomm Incorporated | Area-efficient metal-programmable pulse latch design |
US9979394B2 (en) | 2016-02-16 | 2018-05-22 | Qualcomm Incorporated | Pulse-generator |
EP3217548B1 (en) * | 2016-03-11 | 2021-05-05 | Socionext Inc. | Multiplexers |
US10628625B2 (en) * | 2016-04-08 | 2020-04-21 | Synopsys, Inc. | Incrementally distributing logical wires onto physical sockets by reducing critical path delay |
US9985612B2 (en) | 2016-08-24 | 2018-05-29 | Intel Corporation | Time borrowing flip-flop with clock gating scan multiplexer |
US10340898B1 (en) * | 2017-06-23 | 2019-07-02 | Xilinx, Inc. | Configurable latch circuit |
US10320386B1 (en) * | 2017-12-08 | 2019-06-11 | Xilinx, Inc. | Programmable pipeline interface circuit |
CN112597739B (zh) * | 2020-12-30 | 2023-04-07 | 瓴盛科技有限公司 | 修复电路中的保持时间违例的方法和装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5557225A (en) * | 1994-12-30 | 1996-09-17 | Intel Corporation | Pulsed flip-flop circuit |
KR0147619B1 (ko) * | 1995-01-27 | 1998-12-01 | 김광호 | 플립플롭 제어기 |
JP2914267B2 (ja) * | 1996-01-30 | 1999-06-28 | 日本電気株式会社 | 集積回路のデータ転送方法およびその装置 |
US6201415B1 (en) | 1999-08-05 | 2001-03-13 | Intel Corporation | Latched time borrowing domino circuit |
US6690221B1 (en) * | 1999-12-03 | 2004-02-10 | Intel Corporation | Method and apparatus to delay signal latching |
US6748565B1 (en) * | 2000-10-02 | 2004-06-08 | International Business Machines Corporation | System and method for adjusting timing paths |
US6608513B2 (en) | 2001-03-28 | 2003-08-19 | Intel Corporation | Flip-flop circuit having dual-edge triggered pulse generator |
JP3613396B2 (ja) * | 2001-06-25 | 2005-01-26 | 日本電気株式会社 | 機能ブロック |
US6873187B1 (en) * | 2002-10-29 | 2005-03-29 | Lattice Semiconductor Corporation | Method and apparatus for controlling signal distribution in an electronic circuit |
US6806739B2 (en) | 2002-12-30 | 2004-10-19 | Intel Corporation | Time-borrowing N-only clocked cycle latch |
US7107477B1 (en) * | 2003-01-31 | 2006-09-12 | Altera Corporation | Programmable logic devices with skewed clocking signals |
JP4274457B2 (ja) * | 2003-06-27 | 2009-06-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランスペアレントラッチ回路 |
US6911856B2 (en) * | 2003-07-31 | 2005-06-28 | Qualcomm Inc. | Delay matching for clock distribution in a logic circuit |
US7088136B1 (en) | 2003-11-06 | 2006-08-08 | Altera Corporation | Programmable logic device latch circuits |
US7583103B2 (en) * | 2007-03-30 | 2009-09-01 | Altera Corporation | Configurable time borrowing flip-flops |
US7724058B2 (en) * | 2007-10-31 | 2010-05-25 | Qualcomm Incorporated | Latch structure and self-adjusting pulse generator using the latch |
-
2007
- 2007-03-30 US US11/731,125 patent/US7583103B2/en not_active Expired - Fee Related
-
2008
- 2008-03-21 CN CN201210566918.3A patent/CN103095285B/zh active Active
- 2008-03-21 CN CN2008100858642A patent/CN101277109B/zh active Active
-
2009
- 2009-07-17 US US12/505,451 patent/US7868655B2/en not_active Expired - Fee Related
-
2011
- 2011-01-10 US US12/987,977 patent/US8222921B2/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110892643A (zh) * | 2017-04-13 | 2020-03-17 | 德州仪器公司 | 用于满足控制信号的建立时间和保持时间的电路 |
CN110892643B (zh) * | 2017-04-13 | 2024-03-29 | 德州仪器公司 | 用于满足控制信号的建立时间和保持时间的电路 |
CN110618748A (zh) * | 2018-06-04 | 2019-12-27 | 中芯国际集成电路制造(上海)有限公司 | 一种逻辑电路及可穿戴电子设备 |
CN110618748B (zh) * | 2018-06-04 | 2021-02-09 | 中芯国际集成电路制造(上海)有限公司 | 一种逻辑电路及可穿戴电子设备 |
CN110895413A (zh) * | 2018-08-24 | 2020-03-20 | 百度(美国)有限责任公司 | 触发自动驾驶车辆的用于捕获数据的传感器的触发逻辑 |
CN110895413B (zh) * | 2018-08-24 | 2023-10-20 | 百度(美国)有限责任公司 | 触发自动驾驶车辆的用于捕获数据的传感器的触发逻辑 |
Also Published As
Publication number | Publication date |
---|---|
US20110102017A1 (en) | 2011-05-05 |
US20080238476A1 (en) | 2008-10-02 |
US8222921B2 (en) | 2012-07-17 |
US7583103B2 (en) | 2009-09-01 |
US7868655B2 (en) | 2011-01-11 |
CN101277109B (zh) | 2013-01-23 |
CN103095285A (zh) | 2013-05-08 |
US20090278566A1 (en) | 2009-11-12 |
CN103095285B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101277109A (zh) | 可配置的时间借用触发器 | |
US5570045A (en) | Hierarchical clock distribution system and method | |
JP3331968B2 (ja) | グリッチ分析と低減に重点をおいたレジスタトランスファレベルの電力消費最適化回路、方法、及び記録媒体 | |
US7039891B2 (en) | Method of clock driven cell placement and clock tree synthesis for integrated circuit design | |
US7624368B2 (en) | Optimization of digital designs | |
US7872512B2 (en) | Robust time borrowing pulse latches | |
US6711724B2 (en) | Semiconductor integrated circuit device having pipeline stage and designing method therefor | |
KR20080077231A (ko) | 멀티-사이클 클록 게이팅 방법 | |
US7042269B2 (en) | Method for dynamic balancing of a clock tree | |
Vishnu et al. | Clock tree synthesis techniques for optimal power and timing convergence in soc partitions | |
Elboim et al. | A clock-tuning circuit for system-on-chip | |
Lee et al. | Pulse width allocation and clock skew scheduling: Optimizing sequential circuits based on pulsed latches | |
Saito et al. | What is the cost of delay insensitivity? | |
Albrecht et al. | On the skew-bounded minimum-buffer routing tree problem | |
Lee et al. | Pulse width allocation with clock skew scheduling for optimizing pulsed latch-based sequential circuits | |
Chi et al. | A reliable clock tree design methodology for ASIC designs | |
US6831482B2 (en) | Control of guard-flops | |
Jackson et al. | Implementing asynchronous embryonic circuits using AARDVArc | |
Tadros et al. | A theoretical foundation for timing synchronous systems using asynchronous structures | |
Blair | Skew-free clock distribution for standard-cell VLSI designs | |
US6976232B2 (en) | Method of designing and making an integrated circuit | |
Baig et al. | Designing on FPGA for Improved Performance | |
You et al. | Performance-driven layout through device sizing | |
Mahapatra et al. | Gate triggering: A new framework for minimizing glitch power dissipation in static CMOS ICs and its ILP-based optimization | |
Sapatnekar | Retiming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |