CN111512552B - 使用可编程控制电路选择性地提供时钟信号 - Google Patents
使用可编程控制电路选择性地提供时钟信号 Download PDFInfo
- Publication number
- CN111512552B CN111512552B CN201880081645.9A CN201880081645A CN111512552B CN 111512552 B CN111512552 B CN 111512552B CN 201880081645 A CN201880081645 A CN 201880081645A CN 111512552 B CN111512552 B CN 111512552B
- Authority
- CN
- China
- Prior art keywords
- clock signal
- circuit
- logic
- input
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/15—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
- H03K5/15013—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs
- H03K5/1506—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with parallel driven output stages; with synchronously driven series connected output stages
- H03K5/15066—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with parallel driven output stages; with synchronously driven series connected output stages using bistable devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- 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/08—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
- H03K19/094—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
- H03K19/096—Synchronous circuits, i.e. using clock signals
-
- 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/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/15—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
- H03K5/15013—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs
- H03K5/1506—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with parallel driven output stages; with synchronously driven series connected output stages
- H03K5/15093—Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with parallel driven output stages; with synchronously driven series connected output stages using devices arranged in a shift register
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pulse Circuits (AREA)
- Logic Circuits (AREA)
- Manipulation Of Pulses (AREA)
Abstract
公开的电路布置包括逻辑电路(105)、耦接至逻辑电路并包括第一多个双稳态电路(202)的输入寄存器逻辑(104)以及耦接至输入寄存器逻辑的控制电路(102)。控制电路被配置为根据输入时钟信号(150)生成多个延迟的时钟信号(142、148、306、308、320、326、414、416)。多个延迟的时钟信号包括第一延迟的时钟信号(142、148、306、308、320、326、414、416)和第二延迟的时钟信号(142、148、306、308、320、326、414、416)。控制电路选择性地将输入时钟信号或多个延迟的时钟信号中的一个或多个信号提供给第一多个双稳态电路的时钟输入,并选择性地将输入时钟信号或多个延迟的时钟信号中的一个或多个信号提供给逻辑电路。控制电路包括可变时钟延迟逻辑电路(302),其被配置为以逻辑电路的时钟延迟对输入寄存器逻辑的时钟延迟进行均衡。
Description
技术领域
本申请大致涉及修复保持时间违规和提高同步电路性能。
背景技术
“建立时间”(setup time)和“保持时间”(hold time)描述了时序逻辑元件(如触发器或寄存器)的数据输入相对于时钟输入的时序要求。建立时间和保持时间定义了一个时间窗口,在该时间窗口内,数据必须保持稳定以在操作条件和制造公差的整个范围上保证可预测的性能。建立时间是,为了可靠地捕获数据信号的状态,输入数据信号在时钟事件(例如,时钟信号的上升沿或下降沿)之前必须保持稳定的最短时间。保持时间是,为了可靠地捕获数据信号的状态,输入数据信号在时钟事件之后必须保持稳定的最短时间。建立时间违规(setup time violation,有时被称为长路径问题)可以通过减少路径长度或降低时钟速度来解决。保持时间违规(hold time violation,有时被称为短路径问题)可以通过增加路径长度或向信号路径添加延迟电路来解决。
发明内容
公开的电路电路布置包括:逻辑电路;输入寄存器逻辑,所述输入寄存器逻辑耦接至所述逻辑电路并包括第一多个双稳态电路;以及控制电路,所述控制电路耦接至所述输入寄存器逻辑。所述控制电路被配置为根据输入时钟信号生成多个延迟的时钟信号。所述多个延迟的时钟信号包括第一延迟的时钟信号和第二延迟的时钟信号。所述控制电路选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第一多个双稳态电路的时钟输入,并选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述逻辑电路。所述控制电路包括可变时钟延迟逻辑电路,所述可变时钟延迟逻辑电路被配置为以所述逻辑电路的时钟延迟对所述输入寄存器逻辑的时钟延迟进行均衡。
在一些实施例中,所述可变时钟延迟逻辑电路可以被配置为将所述第一延迟的时钟信号生成为所述输入时钟信号的第一延迟的版本,将所述第二延迟的时钟信号生成为所述输入时钟信号的第二延迟的版本。所述第一延迟的时钟信号和所述输入时钟信号之间的延迟小于所述第二延迟的时钟信号和所述输入时钟信号之间的延迟。所述可变时钟延迟逻辑电路还可以被配置为将所述第一延迟的时钟信号提供给所述逻辑电路,以及将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述可变时钟延迟逻辑电路可以包括:第一时钟路径,所述第一时钟路径包括第一延迟电路,所述第一延迟电路被耦接以接收所述输入时钟信号并被配置为输出所述第一延迟的时钟信号;以及第二时钟路径,所述第二时钟路径包括第二延迟电路,所述第二延迟电路被耦接以接收所述第一延迟电路的输出并被配置为输出所述第二延迟的时钟信号。所述控制电路可以被进一步编程以选择性地将所述第一延迟的时钟信号提供给所述逻辑电路,以及选择性地将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述可变时钟延迟逻辑电路可以包括第三时钟路径,所述第三时钟路径包括第一双边沿脉冲生成器,所述第一双边沿脉冲生成器被耦接以接收所述输入时钟信号并从所述可变时钟延迟逻辑电路的第一多路复用器接收所述第一延迟的时钟信号。所述第一双边沿脉冲生成器可以被配置为生成第一双边沿时钟信号。所述可变时钟延迟逻辑电路还可以包括第四时钟路径,所述第四时钟路径包括第二双边沿脉冲生成器,所述第二双边沿脉冲生成器被耦接以从所述第二延迟电路接收所述第二延迟的时钟信号以及从所述可变时钟延迟逻辑电路的第二多路复用器接收所述第一延迟的时钟信号。所述第二双边沿脉冲生成器被配置为生成第二双边沿时钟信号。所述控制电路可以被进一步编程以选择性地将所述第一双边沿时钟信号提供给所述逻辑电路,以及选择性地将所述第二双边沿时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述控制电路可以包括第一脉冲生成器,所述第一脉冲生成器被耦接以从所述控制电路的第一多路复用器接收所述第一延迟的时钟信号或所述第二延迟的时钟信号。所述第一脉冲生成器可以被配置为减小所述第一延迟的时钟信号或所述第二延迟的时钟信号的脉冲宽度,以及向所述输入寄存器逻辑输出第一窄时钟信号。第二脉冲生成器被耦接以从所述控制电路的第二多路复用器接收所述第一延迟的时钟信号、反相的时钟信号或所述第二双边沿时钟信号。所述第二脉冲生成器可以被配置为减小所述第一延迟的时钟信号、所述反相的时钟信号或所述第二双边沿时钟信号的脉冲宽度,以及向所述输入寄存器逻辑输出第二窄时钟信号。
在一些实施例中,所述控制电路可以被进一步配置为在第一初始化模式和第二初始化模式运行。在所述第一初始化模式,所述控制电路将第一全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路透明的状态;以及在初始值传播到所述第一多个双稳态电路之后,将所述第一全局信号置于无效,从而使所述第一多个双稳态电路继承来自前一级的上游数据值。在第二初始化模式,所述控制电路将第二全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路不透明的状态;将第三全局信号应用至所述输入寄存器逻辑和所述逻辑电路,从而强制所述第一多个双稳态电路进入一个特定状态;以及将所述第二全局信号置于无效。
在一些实施例中,所述第三全局信号可以是全局重置信号,所述全局重置信号强制使所述第一多个双稳态电路的状态为低。
在一些实施例中,所述控制电路可以被进一步编程,以选择性地将所述第一多个双稳态电路的输出或在所述第一多个双稳态电路的数据输入处的信号连接至所述逻辑电路的输入。
在一些实施例中,所述控制电路可以包括第二多个双稳态电路。所述控制电路可以被进一步编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第二多个双稳态电路的时钟输入。
在一些实施例中,所述输入寄存器逻辑可以包括针对每个至所述逻辑电路的输入的各自的数据选择电路,所述数据选择电路能够独立于其他每个各自的数据选择电路被编程,以选择性地将所述第一多个双稳态电路中的一个双稳态电路的输出或在所述双稳态电路的数据输入处的信号连接至所述逻辑电路的输入。所述输入寄存器逻辑可以包括针对所述第一多个双稳态电路中的每个双稳态电路的各自的时钟选择电路,所述时钟选择电路能够独立于其他每个各自的时钟选择电路被编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述双稳态电路的时钟输入。
另一个公开的电路布置包括可编程逻辑电路的多个块以及可编程互连电路。可编程逻辑电路的每个块能够被配置为执行逻辑功能,所述可编程互联电路能够被配置为选择性地在所述可编程逻辑电路的多个块之间路由信号。输入寄存器逻辑能够被配置为选择性地在所述可编程逻辑电路的多个块之间路由信号,其被耦接至所述可编程逻辑电路的多个块并包括第一多个双稳态电路。控制电路被耦接至所述输入寄存器逻辑。所述控制电路被配置为根据输入时钟信号生成多个延迟的时钟信号。所述多个延迟的时钟信号包括第一延迟的时钟信号和第二延迟的时钟信号。所述控制电路选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第一多个双稳态电路的时钟输入,以及选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述逻辑电路。所述控制电路包括可变时钟延迟逻辑电路,所述可变时钟延迟逻辑电路被配置为以所述逻辑电路的时钟延迟对所述输入寄存器逻辑的时钟延迟进行均衡。
在一些实施例中,所述可变时钟延迟逻辑电路可以被配置为将所述第一延迟的时钟信号生成为所述输入时钟信号的第一延迟的版本,将所述第二延迟的时钟信号生成为所述输入时钟信号的第二延迟的版本。所述第一延迟的时钟信号和所述输入时钟信号之间的延迟小于所述第二延迟的时钟信号和所述输入时钟信号之间的延迟。所述可变时钟延迟逻辑电路还可以被配置为将所述第一延迟的时钟信号提供给所述可编程逻辑电路,以及将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述可变时钟延迟逻辑电路可以包括:第一时钟路径,所述第一时钟路径包括第一延迟电路,所述第一延迟电路被耦接以接收所述输入时钟信号并被配置为输出所述第一延迟的时钟信号;以及第二时钟路径,所述第二时钟路径包括第二延迟电路,所述第二延迟电路被耦接以接收所述第一延迟电路的输出并被配置为输出所述第二延迟的时钟信号。所述控制电路能够被进一步编程以:选择性地将所述第一延迟的时钟信号提供给所述可编程逻辑电路,以及选择性地将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述可变时钟延迟逻辑电路可以包括第三时钟路径,所述第三时钟路径包括第一双边沿脉冲生成器,所述第一双边沿脉冲生成器被耦接以接收所述输入时钟信号并从所述可变时钟延迟逻辑电路的第一多路复用器接收所述第一延迟的时钟信号。所述第一双边沿脉冲生成器可以被配置为生成第一双边沿时钟信号。所述可变时钟延迟逻辑电路还可以包括第四时钟路径,所述第四时钟路径包括第二双边沿脉冲生成器,所述第二双边沿脉冲生成器被耦接以从所述第二延迟电路接收所述第二延迟的时钟信号以及从所述可变时钟延迟逻辑电路的第二多路复用器接收所述第一延迟的时钟信号。所述第二双边沿脉冲生成器可以被配置为生成第二双边沿时钟信号。所述控制电路能够被进一步编程以选择性地将所述第一双边沿时钟信号提供给所述可编程逻辑电路,以及选择性地将所述第二双边沿时钟信号提供给所述输入寄存器逻辑。
在一些实施例中,所述控制电路可以包括第一脉冲生成器,所述第一脉冲生成器被耦接以从所述控制电路的第一多路复用器接收所述第一延迟的时钟信号或所述第二延迟的时钟信号。所述第一脉冲生成器可以被配置为减小所述第一延迟的时钟信号或所述第二延迟的时钟信号的脉冲宽度,以及向所述输入寄存器逻辑输出第一窄时钟信号。第二脉冲生成器被耦接以从所述控制电路的第二多路复用器接收所述第一延迟的时钟信号、反相的时钟信号或所述第二双边沿时钟信号。所述第二脉冲生成器可以被配置为减小所述第一延迟的时钟信号、所述反相的时钟信号或所述第二双边沿时钟信号的脉冲宽度,以及向所述输入寄存器逻辑输出第二窄时钟信号。
在一些实施例中,所述控制电路可以被进一步配置为在第一初始化模式和第二初始化模式运行。在所述第一初始化模式,所述控制电路可以将第一全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路透明的状态;以及在初始值传播到所述第一多个双稳态电路之后,将所述第一全局信号置于无效,从而使所述第一多个双稳态电路继承来自前一级的上游数据值。在第二初始化模式,所述控制电路可以将第二全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路不透明的状态;将第三全局信号应用至所述输入寄存器逻辑和所述逻辑电路,从而强制所述第一多个双稳态电路进入一个特定状态;以及将所述第二全局信号置于无效。
在一些实施例中,所述第三全局信号可以是全局重置信号,所述全局重置信号强制使所述第一多个双稳态电路的状态为低。
在一些实施例中,所述控制电路能够被进一步编程,以选择性地将所述第一多个双稳态电路的输出或在所述第一多个双稳态电路的数据输入处的信号连接至所述可编程逻辑电路的输入。
在一些实施例中,所述控制电路可以包括第二多个双稳态电路。所述控制电路能够被进一步编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第二多个双稳态电路的时钟输入。
在一些实施例中,所述输入寄存器逻辑可以包括针对每个至所述逻辑电路的输入的各自的数据选择电路,所述数据选择电路能够独立于其他每个各自的数据选择电路被编程,以选择性地将所述第一多个双稳态电路中的一个双稳态电路的输出或在所述双稳态电路的数据输入处的信号连接至所述可编程逻辑电路的输入。所述输入寄存器逻辑还可以包括针对所述第一多个双稳态电路中的每个双稳态电路的各自的时钟选择电路,所述时钟选择电路可独立于其他每个各自的时钟选择电路被编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述双稳态电路的时钟输入。
在参考以下具体实施方式和权利要求后将理解其他特征。
附图说明
通过阅读以下具体实施方式并参考附图,所公开的电路的各个方面和特征将变得明显,附图包括:
图1示出了具有耦接到控制电路和输入寄存器逻辑以增强性能的逻辑电路的系统;
图2示出了图1的输入寄存器逻辑的示例性实施方式;
图3示出了图1的控制电路的时钟调制逻辑的示例性实施方式;
图4示出了图3的时钟调制逻辑的可变时钟延迟逻辑的示例性实施方式;
图5示出了由控制电路产生并选择性地提供的时钟信号的波形;以及
图6示出了可编程集成电路(IC),在其上可以实现所公开的电路和流程。
具体实施方式
在以下描述中,阐述了许多具体细节以描述本文中提出的具体示例。然而,对于本领域的技术人员显而易见的是,可以在没有下面的所有具体细节的情况下实施一个或多个其他示例和/或这些示例的变型。在其他情况下,未详细描述众所周知的特征,以免模糊本文中示例的描述。为了便于说明,在不同的图中可以使用相同的附图标记指代相同的元件或相同元件的其他实例。
所公开的电路和方法包括位于逻辑电路的块的输入处的接口电路。对于到逻辑电路的块的输入,每个接口电路选择性地启用流水线化(pipelining)、选择性地时间借用(time borrows)和/或选择性地增加最小延迟路径上的延迟。逻辑电路的每个块可以具有相关联的接口电路,该相关联的接口电路单独地控制到该块的每个比特输入。接口电路可以选择性地允许输入数据信号绕过接口而输入到块,选择性地在输入到块之前流水线化输入数据信号,选择性地为了时间借用而用延迟的时钟信号流水线化输入数据信号,以及选择性地拖延(stall)快速路径从而在其他路径上启用时间借用。
通过将接口电路中的寄存器集中在逻辑电路的块的输入附近并将寄存器耦接至时钟延迟元件以借用时间,可以通过强制使靠近输入的寄存器表现得好像这些寄存器被布置得更靠近给定路径上的源触发器,而实现在几乎所有地方都具有流水线化寄存器的大部分优点的同时无需付出高成本。接口电路还可用于通过拖延更快的数据路径来促进全局性的激进的时间借用,并且可以更广泛地修复保持违规。由于接口寄存器的位置集中在逻辑电路的块的输入附近,接口寄存器更可能与逻辑电路的块共享相同的控制集(时钟、时钟使能和重置),从而减少启用寄存器的成本,因为不需要多路复用器从控制集中选择信号。
为了提高集成电路的性能,在逻辑电路的块附近提供有各自的接口电路。每个接口电路包括输入寄存器逻辑和控制电路。输入寄存器逻辑是可编程的,以向逻辑电路的块提供输入信号的选择性流水线化。输入寄存器逻辑包括多个双稳态电路。每个双稳态电路都被耦接以接收输入数据信号,并且被耦接以将数据信号输出到逻辑电路的块的输入。控制电路控制到双稳态电路的时钟信号。控制电路是可编程的,以选择性地将延迟的时钟信号(delayed clock signal)或没有延迟的时钟信号提供给每个双稳态电路的时钟输入。控制电路还是可编程的,以选择性地将双稳态电路的输出或双稳态电路的数据输入处的信号连接到逻辑电路的块的输入。
图1示出了具有耦接到控制电路102和输入寄存器逻辑104以提高系统性能的逻辑电路105的系统。该系统包括耦接到输入寄存器逻辑104-1、……、104-P的控制电路102,其中输入寄存器逻辑104-1、……、104-P可以被共同地称为输入寄存器逻辑104。输入寄存器逻辑104-1、……、104-P中的每个输入寄存器逻辑都包括双稳态电路,其中每个输入寄存器逻辑的双稳态电路可以与每个其他输入寄存器逻辑的双稳态电路分开计时,这将结合图2在下面进一步讨论。控制电路102包括时钟调制逻辑106,时钟调制逻辑106生成并选择性地向输入寄存器逻辑104提供时钟信号140、延迟的时钟信号142和重置信号138。输入寄存器逻辑104接收数据信号136-1、……、136-P并向逻辑电路105输出数据信号144-1、……、144-P,其中逻辑电路105包括一个或多个双稳态电路(如触发器),例如107-1、……、107-N。时钟调制逻辑106还生成并选择性地向逻辑电路105的触发器107-1、……、107-N提供时钟信号130。
向输入寄存器逻辑104-1、……、104-P中的每个输入寄存器逻辑提供时钟信号和延迟的时钟信号允许所有的输入数据信号136-1、……、136-P能够通过输入寄存器逻辑被流水线化,还可以选择性地确定选择哪些输入将使用时间借用。这使具有最大延迟的路径能够满足时序要求同时不会在其他更快的输入路径上引入保持违规。可替代地,到逻辑电路105的一些输入路径可以被流水线化,并且可以在其他路径上修复保持时间违规。
控制电路102和输入寄存器逻辑104的一个或多个实例被布置成靠近逻辑电路105的输入。即,输入寄存器逻辑104在IC裸片(die)上与逻辑电路105相邻放置。在输入寄存器逻辑和相关的逻辑块之间不放置其他的逻辑块、触发器、存储器等。由于输入寄存器逻辑104被布置在逻辑电路105的输入附近,因此输入寄存器逻辑104的双稳态电路更可能与逻辑电路105共享控制集(时钟、时钟使能和重置),从而消除将控制集从远程寄存器路由到逻辑电路105所需的资源。可编程IC(例如现场可编程门阵列FPGA)可以具有多个逻辑105的实例,并且每个逻辑105的实例都是可配置的以实现所需的逻辑功能。具有多个逻辑电路实例的实施方式可以具有各自的控制电路102和输入寄存器逻辑104的实例。
时钟调制逻辑106提供时钟信号146和延迟的时钟信号148,多路复用器116和124选择时钟信号146或延迟的时钟信号148来为双稳态电路118和126计时。控制电路102包括多路复用器120,多路复用器120接收全局重置信号110以及双稳态电路118的输出以向逻辑电路105提供重置信号132。控制电路102还包括多路复用器128,多路复用器128接收全局时钟使能信号(global clock enable signal)112和双稳态电路126的输出以向逻辑电路105提供时钟使能信号134。控制电路102包括多路复用器114,多路复用器114在全局时钟信号108和全局时钟信号108的反相版本(inverted version)之间进行选择,从而向时钟调制逻辑106提供输入时钟信号150。
在至少一种实施方式中,全局信号145被提供给时钟调制逻辑106以确定系统的初始化模式。初始化模式的选择是基于对时钟调制逻辑106的存储单元的编程。第一初始化模式与修复逻辑电路105的保持违规相关联。如图1所示,在系统的配置期间,通过将全局信号145置于有效(assert),提供给输入寄存器逻辑104的时钟信号被强制进入一个状态,该状态使输入寄存器逻辑104的双稳态电路(例如,图2所示的双稳态电路202)初始时透明(transparent)。在初始值已经传播到双稳态电路之后,全局信号145被置于无效(deasserted)。提供给双稳态电路的时钟信号的控制被返回到本地电路。双稳态电路从前一级继承上游数据值,从而使其表现得像异步路径,以便在第一个周期正确运行。
系统的第二初始化模式与通过输入寄存器逻辑104的双稳态电路流水线化到逻辑电路105的数据信号有关。在系统的配置期间,通过将全局信号145置于有效,提供给双稳态电路的本地时钟信号被强制进入一个特定状态,该特定状态使双稳态电路不透明。例如,全局信号145可以是强制使双稳态电路的状态为低的全局重置信号,或者是强制使双稳态电路的状态为高的全局设置信号。全局信号145被置于无效,并且提供给双稳态电路的时钟信号的控制被返回到本地电路。第二初始化模式使输入逻辑104的双稳态电路能够被初始化而无需为每个双稳态电路提供另外的电路。
尽管未在图1中示出,但是逻辑电路105可以耦接到另外的双稳态电路。时钟调制逻辑106可以生成时钟信号130、重置信号132和/或时钟使能信号134并可以选择性地将这些信号提供给这些另外的双稳态电路。
图2示出了图1的输入寄存器逻辑104的示例性实施方式。输入寄存器逻辑104包括双稳态电路202以及一个或多个未示出的其他双稳态电路。图2示出了输入寄存器逻辑104的每一比特的电路布置。双稳态电路202接收数据信号136和重置信号138。双稳态电路202的时钟输入接收多路复用器208的输出,其中多路复用器208在时钟信号140和延迟的时钟信号142之间进行选择。输入寄存器逻辑104包括旁路路径137,使得数据信号136不被流水线化并绕过双稳态电路202。配置存储单元210可以被编程以选择提供给双稳态电路202的时钟信号。例如,当非关键路径的数据信号136被流水线化时,时钟信号140可以被选择性地提供给双稳态电路202。当关键路径的数据信号136被流水线化时,延迟的时钟信号142可以被选择性地提供给双稳态电路202。如本文所使用的,“关键路径”是指具有最大延迟时序违规的路径。可以对耦接至多路复用器204的配置存储单元206进行编程,以在非关键路径的数据信号136未被流水线化时选择旁路路径137,或者在关键路径的数据信号136被流水线化时选择双稳态电路202的输出。
图3示出了图1的控制电路102的时钟调制逻辑106的示例性实施方式。时钟调制逻辑106是一种电路,其可用于对到输入寄存器逻辑104和下游逻辑电路105的时钟信号的时间借用、使时钟信号加倍的宽脉冲生成、以及延迟,以避免和/或防止保持违规(如下面结合图4所讨论的)。由时钟调制逻辑106生成的时钟信号被独立地发送到输入寄存器逻辑104和下游逻辑电路105,因此逻辑电路105可以使用与输入寄存器逻辑104使用的时钟信号不同的时钟信号。时钟调制逻辑106接收输入时钟信号150,其被提供给多路复用器312和可变时钟延迟逻辑电路302。可变时钟延迟逻辑电路302将在下文结合图4进一步讨论。可变时钟延迟逻辑电路302基于输入时钟信号150生成并输出以下时钟信号:双边沿时钟信号(dualedge clock signal)304,其被提供给多路复用器312;第一延迟的时钟信号306,其被提供给多路复用器312、多路复用器316和多路复用器322;第二延迟的时钟信号308(基于第一延迟的时钟信号306),其被提供给多路复用器316;以及延迟的双边沿时钟信号310(基于第一延迟的时钟信号306),其被提供给多路复用器322。
时钟信号130从多路复用器312输出到逻辑电路105。耦接到多路复用器312的控制端的配置存储单元314可以被编程以选择输入时钟信号150、双边沿时钟信号304或第一延迟的时钟信号306。
从多路复用器316输出的延迟的时钟信号320被提供至窄脉冲生成器332以及重置和时钟控制逻辑328。窄脉冲生成器输出的信号的脉冲宽度小于输入信号的脉冲宽度。配置存储单元318耦接到多路复用器316,并且可以被编程以选择第一延迟的时钟信号306或第二延迟的时钟信号308。窄脉冲生成器332的输出耦接到“与”门340(AND gate)的一个输入,并且配置存储单元348耦接到“与”门340的另一个输入。配置存储单元348的状态启用或禁用窄脉冲生成器332的输出作为延迟的时钟信号148到双稳态电路118和126的传播(propagation)。
延迟的时钟信号306、延迟的时钟信号306的反相版本(也称为“负边沿时钟信号”)和延迟的双边沿时钟信号310被提供作为多路复用器322的输入。自多路复用器322输出的延迟的时钟信号326被提供至窄脉冲生成器334以及重置和时钟控制逻辑328。负边沿时钟信号有利于将到来的数据拖延半个时钟周期以修复到来的保持违规。配置存储单元324耦接到多路复用器316,并且可以被编程以选择第一延迟的时钟信号306、反相的第一延迟的时钟信号或延迟的双边沿时钟信号310。窄脉冲生成器334耦接到“与”门342的一个输入,配置存储单元350耦接到“与”门342的另一个输入。配置存储单元350的状态启用或禁用窄脉冲生成器的输出作为时钟信号146至双稳态电路118和126的传播。
重置和时钟控制逻辑328接收基本时钟信号(base clock signal)320、延迟的时钟信号326、时钟使能信号(clock enable signal)134、重置信号331和使能信号356。如果重置信号331或时钟使能信号134未启用或未被置于有效,则基本时钟信号320和延迟的时钟信号326通过重置和时钟控制逻辑328。如果重置信号331被置于有效以及使能重置信号357被置于有效,并且如果使能同步信号355未被置于有效,则为了重置双稳态电路,基本时钟和延迟时钟输出被立即强制为低以切断至双稳态电路的输入路径。如果重置信号331被置于有效以及使能重置信号357被置于有效,并且如果使能同步信号355被置于有效,则输出的基本时钟在输入的基本时钟的上升沿被强制为低,并且输出的延迟时钟在输入的延迟时钟的上升沿被强制为低。如果时钟使能信号134被置于无效并且使能信号356被置于有效,则基本时钟信号和延迟的时钟信号被同步地强制为低提供至它们各自的时钟。
窄脉冲生成器336和338被耦接以从重置和时钟控制逻辑328接收各自的输出信号。窄脉冲生成器336的输出耦接到“与”门344的一个输入,窄脉冲生成器338的输出耦接到“与”门346的一个输入。配置存储单元352的输出耦接到“与”门344的另一输入,配置存储单元354的输出耦接到“与”门346的另一输入。配置存储单元352和354的状态分别启用或禁用时钟信号140和延迟的时钟信号142到输入寄存器逻辑104的双稳态电路的传播。
重置逻辑330接收使能同步信号355、重置信号331、使能重置信号357和信号326。重置逻辑330将重置信号138输出到输入寄存器逻辑104的双稳态电路。如果使能重置信号357和使能同步信号355被置于有效,则重置逻辑330仅在信号326的上升沿对重置信号331进行采样。如果使能重置信号357被置于有效同时使能同步信号355未被置于有效,则重置逻辑330连续地对重置信号331进行采样。
图4示出了图3的时钟调制逻辑106的可变时钟延迟逻辑电路302的示例性实施方式。可变时钟延迟逻辑电路302是接收输入时钟信号150并基于输入时钟信号生成和输出不同时钟信号的电路。可变时钟延迟逻辑电路302包括多个时钟路径。第一时钟路径包括接收输入时钟信号150的第一延迟电路402。第一延迟电路402包括连接到多路复用器406的输入的多个抽头(tap)。配置存储单元(未示出)可以连接到多路复用器406的控制端,并且可以被编程以从该多个抽头中的一个抽头选择时钟信号150的延迟的版本。被选择的延迟的时钟信号是延迟的时钟信号306。
第二时钟路径包括第二延迟电路404,其接收延迟的时钟信号414。延迟的时钟信号414是来自延迟电路402的最后的抽头的输出时钟信号。第二延迟电路404包括连接到多路复用器408的输入的多个抽头。来自延迟电路402的抽头的输出信号也连接到多路复用器408的输入。配置存储单元(未示出)可以连接到多路复用器408的控制端,并可以被编程以从该多个抽头中的一个抽头选择时钟信号150的延迟的版本。所选择的延迟的时钟信号是第二延迟的时钟信号308。第一延迟的时钟信号306和第二延迟的时钟信号308可有利于使输入寄存器逻辑104和/或逻辑电路105能够从后续时钟周期借用时间。
第三时钟路径包括第一双边沿脉冲生成器,第一双边沿脉冲生成器可以由“异或”(exclusive OR,XOR)门412实现,其接收输入时钟信号150并从多路复用器406接收第一延迟的时钟信号306。对输入时钟信号150与第一延迟的时钟信号306进行“异或”运算生成第一延迟的时钟信号306的双边沿版本作为双边沿时钟信号304。该过程对于节省上游时钟树(clock tree)中的功率可能是有益的。双边沿时钟信号304被选择性地提供给逻辑电路105。
第四时钟路径包括第二双边沿脉冲生成器,例如“异或”门410,其从第二延迟电路404接收第二延迟的时钟信号308以及接收从延迟电路404的最后抽头输出的延迟的时钟信号416。对第一延迟的时钟信号308与延迟的时钟信号416进行“异或”运算生成第二延迟的时钟信号308的双边沿版本作为延迟的双边沿时钟信号310,其被选择性地提供给控制电路102和/或输入寄存器逻辑104的双稳态电路。第五时钟路径输出输入时钟信号150,其中输入时钟信号150未被可变时钟延迟逻辑电路302修改。
在逻辑电路的双稳态电路处(例如逻辑电路105的双稳态电路107)的保持违规可能长于位于逻辑电路旁边的输入寄存器逻辑的双稳态电路处(例如输入寄存器逻辑104的双稳态电路202)的保持违规。为了使输入寄存器逻辑105的块能够同时用于双稳态电路202和107,可变时钟延迟逻辑电路302包括两个延迟电路402和404。延迟电路402根据输入时钟信号150生成第一延迟的时钟信号306,而延迟电路404根据第一延迟电路402的输出生成第二延迟的时钟信号308。也就是说,第二延迟的时钟信号308可以是时钟信号306的进一步延迟的版本。耦接到输入寄存器逻辑104和逻辑电路105的可变时钟延迟逻辑电路302可以被编程,从而以逻辑电路105的双稳态电路的时钟延迟对输入寄存器逻辑104的双稳态电路的时钟延迟进行均衡。例如,控制电路102可以被编程,以选择性地将第一延迟的时钟信号306提供给逻辑电路105的双稳态电路107以及选择性地将第二延迟的时钟信号308提供到输入寄存器逻辑104的双稳态电路202。
如果不进行均衡,则输入寄存器逻辑104的双稳态电路的时钟延迟可能比输入逻辑电路105的双稳态电路107的时钟延迟短。结果是,一个或多个数据路径需要添加到逻辑电路105以避免输入寄存器逻辑104的双稳态电路和逻辑电路105的双稳态电路之间的输入保持违规。相反,本申请的实施方式可以在不改变逻辑电路105的时序的情况下使输入寄存器逻辑104的块能够与具有多种尺寸的、以及到逻辑电路105的双稳态电路107具有不同的时钟延迟的逻辑电路105的块一起使用。
图5示出了由图1的控制电路102生成并选择性地提供的时钟信号的波形。如图5所示,输入时钟信号150可以被称为基本时钟信号,并且第一延迟的时钟信号306可以被称为延迟的基本时钟信号。第一延迟的时钟信号306可以是输入时钟信号150的相移版本。双边沿时钟信号304在输入时钟信号150的上升沿和下降沿具有上升沿。波形146-1、146-2、148-1以及148-2分别表示输入时钟信号150、第一延迟的时钟信号306、输入时钟信号150的反相(负边沿)版本、以及双边沿时钟信号304各自的窄版本。
图6示出了可编程集成电路(IC)600,在其上可以实现所公开的电路和流程。可编程IC也可以被称为片上系统(SOC),其包括现场可编程门阵列逻辑(FPGA)以及其他可编程资源。FPGA逻辑可以在阵列中包括几种不同类型的可编程逻辑块。例如,图6示出了可编程IC 600,其包括大量不同的可编程片(tile),包括多千兆位收发器(MGT)601、可配置逻辑块(CLB)602、随机存取存储器块(BRAM)603、输入/输出块(IOB)604、配置和时钟逻辑(CONFIG/CLOCKS)605、数字信号处理模块(DSP)606、专用输入/输出模块(I/O)607(例如时钟端口)以及其他可编程逻辑608(例如数字时钟管理器、模数转换器、系统监视逻辑等)。具有FPGA逻辑的一些可编程IC还包括专用处理器块(PROC)610以及输入和外部重配置端口(未示出)。
在一些FPGA逻辑中,每个可编程片包括可编程互连元件(INT)611,可编程互连元件611具有到每个相邻片中的对应互连元件和来自每个相邻片的对应互连元件的标准化连接。因此,可编程互连元件一起实现了用于所示FPGA逻辑的可编程互连结构。可编程互连元件INT 611还包括到相同片中的可编程逻辑元件和来自相同片中的可编程逻辑元件的连接,如图6顶部包括的示例所示。
例如,CLB 602可以包括可以被编程以实现用户逻辑的可配置逻辑元件("CLE")612加上单个INT 611。BRAM 603除一个或多个可编程互连元件外还可以包括BRAM逻辑元件("BRL")613。通常,一块片中包括的互连元件的数量取决于片的高度。图示的BRAM片具有五个CLB的高度,但也可以是其他数量(例如四个)。DSP片606除了适当数量的可编程互连元件之外还可以包括DSP逻辑元件("DSPL")614。除了可编程互连元件611的一个实例之外,IOB604可以包括例如输入/输出逻辑元件("IOL")615的两个实例。如本领域技术人员清楚的,实际上连接到例如IOL 615的输入/输出焊盘是使用层叠在各种所示逻辑块上方的金属制造的,并且通常不限于在输入/输出逻辑元件615的区域。
靠近裸片中心的列状区域(在图6中以阴影显示)用于配置、时钟和其他控制逻辑。从该列状区域延伸的水平区域609用于在可编程IC的整个宽度上分配时钟和配置信号。需要注意的是,对“列状”和“水平”区域的引用是相对于以纵向方向查看附图。
一些利用图6中所示的架构的可编程IC包括额外的逻辑块,这些额外的逻辑块会打乱构成可编程IC的大部分的常规列状结构。额外的逻辑块可以是可编程块和/或专用逻辑。例如,图6示出的处理器块PROC 610跨越几个CLB和BRAM的列。
需要注意的是,图6仅是示出一个示例性的可编程IC架构。在图6顶部包括的一列中逻辑块的数量、列的相对宽度、列的数量和顺序、列中包括的逻辑块的类型、逻辑块的相对尺寸以及互连/逻辑实施方式都纯粹是示例性的。例如,在实际的可编程IC中,在CLB出现的地方通常包括多于一个的相邻的CLB列,以便于用户逻辑的有效实现。
尽管在某些情况下可能在单个附图中描述了多个方面和特征,但是应当理解,即使未明确示出组合或明确描述为组合,也可以将一个附图中的特征与另一附图中的特征进行组合。
所公开的电路和方法被认为可应用于各种系统以优化集成电路的时序。通过考虑说明书,其他方面和特征对于本领域技术人员将是显而易见的。所述电路和方法可以被实现为专用集成电路(ASIC)或可编程逻辑。说明书和附图仅被认为是示例,本发明的真实范围由所附权利要求确定。
Claims (15)
1.一种电路,其特征在于,所述电路包括:
逻辑电路;
输入寄存器逻辑,所述输入寄存器逻辑耦接至所述逻辑电路并包括第一多个双稳态电路,其中所述第一多个双稳态电路接收多个输入数据信号,所述输入寄存器逻辑包括多个旁路路径和多个多路复用器电路,所述多个多路复用器电路中的每个多路复用器电路被配置为在所述多个旁路路径中的一个旁路路径上的所述多个输入数据信号中的一个输入数据信号与来自所述第一多个双稳态电路中的一个双稳态电路的输出信号之间进行选择,以作为来自所述输入寄存器逻辑的多个输出数据信号中的一个输出数据信号而提供,并且所述逻辑电路被耦接以从所述输入寄存器逻辑接收所述多个输出数据信号;以及
控制电路,所述控制电路耦接至所述输入寄存器逻辑并被配置为:
根据输入时钟信号生成多个延迟的时钟信号,所述多个延迟的时钟信号包括第一延迟的时钟信号和第二延迟的时钟信号,
选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第一多个双稳态电路的时钟输入,以及
选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述逻辑电路;
其中所述控制电路包括可变时钟延迟逻辑电路,所述可变时钟延迟逻辑电路被配置为使所述输入寄存器逻辑的时钟延迟和所述逻辑电路的时钟延迟相等。
2.根据权利要求1所述的电路,其特征在于,所述可变时钟延迟逻辑电路被配置为:
将所述第一延迟的时钟信号生成为所述输入时钟信号的第一延迟的版本,将所述第二延迟的时钟信号生成为所述输入时钟信号的第二延迟的版本,其中所述第一延迟的时钟信号和所述输入时钟信号之间的延迟小于所述第二延迟的时钟信号和所述输入时钟信号之间的延迟;
将所述第一延迟的时钟信号提供给所述逻辑电路;以及
将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
3.根据权利要求1或权利要求2所述的电路,其特征在于,
所述可变时钟延迟逻辑电路包括:
第一时钟路径,所述第一时钟路径包括第一延迟电路,所述第一延迟电路被耦接以接收所述输入时钟信号并被配置为输出所述第一延迟的时钟信号,以及
第二时钟路径,所述第二时钟路径包括第二延迟电路,所述第二延迟电路被耦接以接收所述第一延迟电路的输出并被配置为输出所述第二延迟的时钟信号;并且
所述控制电路能够被进一步编程以:
选择性地将所述第一延迟的时钟信号提供给所述逻辑电路,以及
选择性地将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
4.根据权利要求3所述的电路,其特征在于,
所述可变时钟延迟逻辑电路包括:
第三时钟路径,所述第三时钟路径包括第一双边沿脉冲生成器,所述第一双边沿脉冲生成器被耦接以接收所述输入时钟信号并从所述可变时钟延迟逻辑电路的第一多路复用器接收所述第一延迟的时钟信号,所述第一双边沿脉冲生成器被配置为生成第一双边沿时钟信号,以及
第四时钟路径,所述第四时钟路径包括第二双边沿脉冲生成器,所述第二双边沿脉冲生成器被耦接以从所述第二延迟电路接收所述第二延迟的时钟信号以及从所述可变时钟延迟逻辑电路的第二多路复用器接收所述第一延迟的时钟信号,所述第二双边沿脉冲生成器被配置为生成第二双边沿时钟信号;并且
所述控制电路能够被进一步编程以:
选择性地将所述第一双边沿时钟信号提供给所述逻辑电路,以及
选择性地将所述第二双边沿时钟信号提供给所述输入寄存器逻辑。
5.根据权利要求4所述的电路,其特征在于,所述控制电路包括:
第一脉冲生成器,所述第一脉冲生成器被耦接以从所述控制电路的第一多路复用器接收所述第一延迟的时钟信号或所述第二延迟的时钟信号,其中所述第一脉冲生成器被配置为:
减小所述第一延迟的时钟信号或所述第二延迟的时钟信号的脉冲宽度;以及
向所述输入寄存器逻辑输出第一窄时钟信号;以及
第二脉冲生成器,所述第二脉冲生成器被耦接以从所述控制电路的第二多路复用器接收所述第一延迟的时钟信号、反相的时钟信号或所述第二双边沿时钟信号,其中所述第二脉冲生成器被配置为:
减小所述第一延迟的时钟信号、所述反相的时钟信号或所述第二双边沿时钟信号的脉冲宽度;以及
向所述输入寄存器逻辑输出第二窄时钟信号。
6.根据权利要求1所述的电路,其特征在于,所述控制电路被进一步配置为:
在第一初始化模式:
将第一全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路透明的状态;
在初始值传播到所述第一多个双稳态电路之后,将所述第一全局信号置于无效,从而使所述第一多个双稳态电路继承来自前一级的上游数据值;以及
在第二初始化模式:
将第二全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路不透明的状态;
将第三全局信号应用至所述输入寄存器逻辑和所述逻辑电路,从而强制所述第一多个双稳态电路进入一个特定状态;以及
将所述第二全局信号置于无效。
7.根据权利要求6所述的电路,其特征在于,所述第三全局信号是全局重置信号,所述全局重置信号强制使所述第一多个双稳态电路的状态为低。
8.根据权利要求1所述的电路,其特征在于,所述控制电路能够被进一步编程,以选择性地将所述第一多个双稳态电路的输出或在所述第一多个双稳态电路的数据输入处的信号连接至所述逻辑电路的输入。
9.根据权利要求1所述的电路,其特征在于:
所述控制电路包括第二多个双稳态电路;以及
所述控制电路能够被进一步编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第二多个双稳态电路的时钟输入。
10.根据权利要求1所述的电路,其特征在于:
所述输入寄存器逻辑包括针对每个至所述逻辑电路的输入的各自的数据选择电路,所述数据选择电路能够独立于其他每个各自的数据选择电路被编程,以选择性地将所述第一多个双稳态电路中的一个双稳态电路的输出或在所述双稳态电路的数据输入处的信号连接至所述逻辑电路的输入;并且
所述输入寄存器逻辑包括针对所述第一多个双稳态电路中的每个双稳态电路的各自的时钟选择电路,所述时钟选择电路能够独立于其他每个各自的时钟选择电路被编程,以选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述双稳态电路的时钟输入。
11.一种电路,其特征在于,所述电路包括:
可编程逻辑电路的多个块,其中可编程逻辑电路的每个块能够被配置为执行逻辑功能;
可编程互连电路,所述可编程互连电路能够被配置为选择性地在所述可编程逻辑电路的多个块之间路由信号;
输入寄存器逻辑,所述输入寄存器逻辑被耦接至所述可编程逻辑电路的多个块并包括第一多个双稳态电路,其中所述第一多个双稳态电路接收多个输入数据信号,所述输入寄存器逻辑包括多个旁路路径和多个多路复用器电路,所述多个多路复用器电路中的每个多路复用器电路被配置为在所述多个旁路路径中的一个旁路路径上的所述多个输入数据信号中的一个输入数据信号与来自所述第一多个双稳态电路中的一个双稳态电路的输出信号之间进行选择,以作为来自所述输入寄存器逻辑的多个输出数据信号中的一个输出数据信号而提供,并且所述可编程逻辑电路的多个块被耦接以从所述输入寄存器逻辑接收所述多个输出数据信号;以及
控制电路,所述控制电路被耦接至所述输入寄存器逻辑并被配置为:
根据输入时钟信号生成多个延迟的时钟信号,所述多个延迟的时钟信号包括第一延迟的时钟信号和第二延迟的时钟信号,
选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述第一多个双稳态电路的时钟输入,以及
选择性地将所述输入时钟信号或所述多个延迟的时钟信号中的一个或多个信号提供给所述可编程逻辑电路;
其中所述控制电路包括可变时钟延迟逻辑电路,所述可变时钟延迟逻辑电路被配置为使所述输入寄存器逻辑的时钟延迟和所述逻辑电路的时钟延迟相等。
12.根据权利要求11所述的电路,其特征在于,所述可变时钟延迟逻辑电路被配置为:
将所述第一延迟的时钟信号生成为所述输入时钟信号的第一延迟的版本,将所述第二延迟的时钟信号生成为所述输入时钟信号的第二延迟的版本,其中所述第一延迟的时钟信号和所述输入时钟信号之间的延迟小于所述第二延迟的时钟信号和所述输入时钟信号之间的延迟;
将所述第一延迟的时钟信号提供给所述可编程逻辑电路;以及
将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
13.根据权利要求11所述的电路,其特征在于,
所述可变时钟延迟逻辑电路包括:
第一时钟路径,所述第一时钟路径包括第一延迟电路,所述第一延迟电路被耦接以接收所述输入时钟信号并被配置为输出所述第一延迟的时钟信号;以及
第二时钟路径,所述第二时钟路径包括第二延迟电路,所述第二延迟电路被耦接以接收所述第一延迟电路的输出并被配置为输出所述第二延迟的时钟信号;并且
所述控制电路能够被进一步编程以:
选择性地将所述第一延迟的时钟信号提供给所述可编程逻辑电路;以及
选择性地将所述第二延迟的时钟信号提供给所述输入寄存器逻辑。
14.根据权利要求13所述的电路,其特征在于,
所述可变时钟延迟逻辑电路包括:
第三时钟路径,所述第三时钟路径包括第一双边沿脉冲生成器,所述第一双边沿脉冲生成器被耦接以接收所述输入时钟信号并从所述可变时钟延迟逻辑电路的第一多路复用器接收所述第一延迟的时钟信号,所述第一双边沿脉冲生成器被配置为生成第一双边沿时钟信号,以及
第四时钟路径,所述第四时钟路径包括第二双边沿脉冲生成器,所述第二双边沿脉冲生成器被耦接以从所述第二延迟电路接收所述第二延迟的时钟信号以及从所述可变时钟延迟逻辑电路的第二多路复用器接收所述第一延迟的时钟信号,所述第二双边沿脉冲生成器被配置为生成第二双边沿时钟信号;并且
所述控制电路能够被进一步编程以:
选择性地将所述第一双边沿时钟信号提供给所述可编程逻辑电路,以及
选择性地将所述第二双边沿时钟信号提供给所述输入寄存器逻辑。
15.根据权利要求11所述的电路,其特征在于,所述控制电路被进一步配置为:
在第一初始化模式:
将第一全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路透明的状态;
在初始值传播到所述第一多个双稳态电路之后,将所述第一全局信号置于无效,从而使所述第一多个双稳态电路继承来自前一级的上游数据值;以及
在第二初始化模式:
将第二全局信号置于有效,以强制使到所述输入寄存器逻辑的时钟信号进入使所述第一多个双稳态电路不透明的状态;
将第三全局信号应用至所述输入寄存器逻辑和所述可编程逻辑电路,从而强制所述第一多个双稳态电路进入一个特定状态;以及
将所述第二全局信号置于无效。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/845,957 | 2017-12-18 | ||
| US15/845,957 US10284185B1 (en) | 2017-12-18 | 2017-12-18 | Selectively providing clock signals using a programmable control circuit |
| PCT/US2018/064315 WO2019125781A1 (en) | 2017-12-18 | 2018-12-06 | Selectively providing clock signals using a programmable control circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111512552A CN111512552A (zh) | 2020-08-07 |
| CN111512552B true CN111512552B (zh) | 2023-09-26 |
Family
ID=64902446
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880081645.9A Active CN111512552B (zh) | 2017-12-18 | 2018-12-06 | 使用可编程控制电路选择性地提供时钟信号 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US10284185B1 (zh) |
| EP (1) | EP3729646B1 (zh) |
| JP (1) | JP7297784B2 (zh) |
| KR (1) | KR102571068B1 (zh) |
| CN (1) | CN111512552B (zh) |
| WO (1) | WO2019125781A1 (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12055989B2 (en) * | 2020-03-10 | 2024-08-06 | Stmicroelectronics International N.V. | Clock delay circuit for chip reset architecture |
| CN113381754B (zh) * | 2020-03-10 | 2024-08-06 | 意法半导体国际有限公司 | 用于芯片复位架构的时钟延迟电路 |
| US11216022B1 (en) * | 2020-09-16 | 2022-01-04 | Gowin Semiconductor Corporation | Methods and apparatus for providing a clock fabric for an FPGA organized in multiple clock regions |
| US12014129B2 (en) * | 2020-09-25 | 2024-06-18 | Intel Corporation | Circuit design visibility in integrated circuit devices |
| CN116047258A (zh) * | 2021-10-28 | 2023-05-02 | 瑞昱半导体股份有限公司 | 检测电路与检测方法 |
| US11689203B1 (en) * | 2022-03-21 | 2023-06-27 | Qualcomm Incorporated | Method and apparatus for symmetric aging of clock trees |
| US11934219B2 (en) * | 2022-03-29 | 2024-03-19 | Qualcomm Incorporated | Integrated functional and design for testability (DFT) clock delivery architecture |
| US11979153B2 (en) * | 2022-04-29 | 2024-05-07 | Stmicroelectronics (Rousset) Sas | Input signal shaping for a programmable logic array |
| CN119943110A (zh) * | 2023-11-06 | 2025-05-06 | 长江存储科技有限责任公司 | 存储器装置、控制逻辑电路及其操作方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5487163A (en) * | 1990-10-05 | 1996-01-23 | Bull Hn Information Systems Inc. | Fast synchronization of asynchronous signals with a synchronous system |
| CN1732621A (zh) * | 2002-12-27 | 2006-02-08 | 皇家飞利浦电子股份有限公司 | 电路装置 |
| US8130019B1 (en) * | 2008-10-15 | 2012-03-06 | Octasic Inc. | Clock signal propagation method for integrated circuits (ICs) and integrated circuit making use of same |
| CN103004089A (zh) * | 2010-06-11 | 2013-03-27 | 阿尔特拉公司 | 具有双边沿时钟的集成电路 |
| JP2015076711A (ja) * | 2013-10-08 | 2015-04-20 | マイクロン テクノロジー, インク. | 半導体装置 |
| CN106688182A (zh) * | 2014-09-10 | 2017-05-17 | 赛灵思公司 | 可编程延迟电路块 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0584910B1 (en) * | 1992-08-03 | 1996-09-04 | Advanced Micro Devices, Inc. | Programmable logic device |
| JPH10107599A (ja) * | 1996-10-02 | 1998-04-24 | Dainippon Printing Co Ltd | 論理回路 |
| JPH11272353A (ja) * | 1998-03-19 | 1999-10-08 | Toshiba Corp | クロック供給回路及びデータ転送回路 |
| KR100666320B1 (ko) * | 2000-07-18 | 2007-01-09 | 삼성전자주식회사 | 시프트 레지스터 및 그를 채용한 액정표시장치의 구동 회로 |
| US7197659B2 (en) * | 2001-09-28 | 2007-03-27 | Intel Corporation | Global I/O timing adjustment using calibrated delay elements |
| JP2003216271A (ja) * | 2002-01-25 | 2003-07-31 | Sharp Corp | 半導体集積回路 |
| US7114069B2 (en) * | 2003-04-22 | 2006-09-26 | Motorola, Inc. | Reconfigurable processing circuit including a delay locked loop multiple frequency generator for generating a plurality of clock signals which are configured in frequency by a control processor |
| JP3776895B2 (ja) * | 2003-05-14 | 2006-05-17 | 沖電気工業株式会社 | 位相調整回路 |
| JP2006287163A (ja) * | 2005-04-05 | 2006-10-19 | Renesas Technology Corp | 半導体集積回路 |
| JP2008177947A (ja) * | 2007-01-19 | 2008-07-31 | Toshiba Corp | 可変レイテンシ回路及び可変レイテンシ回路のレイテンシ制御方法 |
| US9075930B2 (en) * | 2012-11-09 | 2015-07-07 | Xilinx, Inc. | Configurable embedded memory system |
| US9602082B2 (en) | 2015-07-30 | 2017-03-21 | Xilinx, Inc. | Offset insensitive quadrature clock error correction and duty cycle calibration for high-speed clocking |
-
2017
- 2017-12-18 US US15/845,957 patent/US10284185B1/en active Active
-
2018
- 2018-12-06 CN CN201880081645.9A patent/CN111512552B/zh active Active
- 2018-12-06 WO PCT/US2018/064315 patent/WO2019125781A1/en not_active Ceased
- 2018-12-06 JP JP2020551767A patent/JP7297784B2/ja active Active
- 2018-12-06 KR KR1020207020325A patent/KR102571068B1/ko active Active
- 2018-12-06 EP EP18829610.7A patent/EP3729646B1/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5487163A (en) * | 1990-10-05 | 1996-01-23 | Bull Hn Information Systems Inc. | Fast synchronization of asynchronous signals with a synchronous system |
| CN1732621A (zh) * | 2002-12-27 | 2006-02-08 | 皇家飞利浦电子股份有限公司 | 电路装置 |
| US8130019B1 (en) * | 2008-10-15 | 2012-03-06 | Octasic Inc. | Clock signal propagation method for integrated circuits (ICs) and integrated circuit making use of same |
| CN103004089A (zh) * | 2010-06-11 | 2013-03-27 | 阿尔特拉公司 | 具有双边沿时钟的集成电路 |
| JP2015076711A (ja) * | 2013-10-08 | 2015-04-20 | マイクロン テクノロジー, インク. | 半導体装置 |
| CN106688182A (zh) * | 2014-09-10 | 2017-05-17 | 赛灵思公司 | 可编程延迟电路块 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111512552A (zh) | 2020-08-07 |
| US10284185B1 (en) | 2019-05-07 |
| EP3729646B1 (en) | 2022-08-10 |
| EP3729646A1 (en) | 2020-10-28 |
| KR102571068B1 (ko) | 2023-08-24 |
| KR20200098635A (ko) | 2020-08-20 |
| JP2021508131A (ja) | 2021-02-25 |
| JP7297784B2 (ja) | 2023-06-26 |
| WO2019125781A1 (en) | 2019-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111512552B (zh) | 使用可编程控制电路选择性地提供时钟信号 | |
| CN109905116B (zh) | 可编程流水线接口电路 | |
| US9875330B2 (en) | Folding duplicate instances of modules in a circuit design | |
| US20150295579A1 (en) | System Reset Controller Replacing Individual Asynchronous Resets | |
| US7876601B2 (en) | Variable sized soft memory macros in structured cell arrays, and related methods | |
| JP6602849B2 (ja) | プログラマブル遅延回路ブロック | |
| US7724028B1 (en) | Clocking for a hardwired core embedded in a host integrated circuit device | |
| US9355690B1 (en) | Time-multiplexed, asynchronous device | |
| US9018980B1 (en) | Bimodal clock generator | |
| KR20050099714A (ko) | 고집적 저전력 글리치리스 클럭 선택회로 및 이를구비하는 디지털 프로세싱 시스템 | |
| US10069486B1 (en) | Multimode registers with pulse latches | |
| CN106249805B (zh) | 具有嵌入式双倍时钟控制部件的集成电路 | |
| US9729153B1 (en) | Multimode multiplexer-based circuit | |
| CN103631754B (zh) | 可编程信号处理单元 | |
| US7382170B2 (en) | Programmable delay circuit having reduced insertion delay | |
| US10340898B1 (en) | Configurable latch circuit | |
| US9331701B1 (en) | Receivers and methods of enabling the calibration of circuits receiving input data | |
| KR20130073234A (ko) | 반도체 장치 | |
| US8219844B1 (en) | Methods and systems for emulating a synchronous clear port | |
| CN100507828C (zh) | 提高先入先出fifo性能的方法和先入先出fifo电路 | |
| JP2004127012A (ja) | 同期式回路およびその設計方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |