CN106688182B - 可编程延迟电路块 - Google Patents

可编程延迟电路块 Download PDF

Info

Publication number
CN106688182B
CN106688182B CN201580048957.6A CN201580048957A CN106688182B CN 106688182 B CN106688182 B CN 106688182B CN 201580048957 A CN201580048957 A CN 201580048957A CN 106688182 B CN106688182 B CN 106688182B
Authority
CN
China
Prior art keywords
signal
output
clock
delay
input
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
Application number
CN201580048957.6A
Other languages
English (en)
Other versions
CN106688182A (zh
Inventor
I·K·噶奴索夫
B·S·德夫林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of CN106688182A publication Critical patent/CN106688182A/zh
Application granted granted Critical
Publication of CN106688182B publication Critical patent/CN106688182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/14Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of delay lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/15Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
    • H03K5/15006Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with two programmable outputs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/156Arrangements in which a continuous pulse train is transformed into a train having a desired pattern

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

可编程延迟电路块100包括具有输入级102,所述输入级102具有级联输入112和时钟输入114,其中输入级102传递在级联输入112处接收的信号或在时钟输入114处接收的信号。可编程延迟电路块100还可以包括延迟块104,所述延迟块104被配置为通过对传递自输入级102的信号施加选定的延迟量来生成延迟信号,以及脉冲发生器106,所述脉冲发生器106被配置为生成具有取决于所述延迟量的脉冲宽度的脉冲信号。可编程延迟电路块100还包括具有输出级108,所述输出级108具有级联输出148和时钟输出152。输出级108被配置为从级联输出148传递脉冲信号的反相版本或延迟信号,并且从时钟输出152传递在时钟输入114处接收的信号、脉冲信号的反相版本或者延迟信号。

Description

可编程延迟电路块
技术领域
本公开涉及集成电路(IC),更具体地,涉及在IC内使用的可编程延迟电路块。
背景技术
集成电路(IC)使用越来越小的特征尺寸制造。使用更小特征尺寸的一个结果是布线资源具有更大的电阻和电容。增加的电阻和电容产生了更大的信号延迟,这反过来又可能导致电路中时序的建立和保持违规。建立和保持违规妨碍正确的电路操作,并且通常是提高电路性能的限制因素。
许多IC的时钟架构相对不灵活,并且可能不能满足现代电路设计中严格的时序要求。在许多情况下,可用的时钟架构不能对在其中传播的时钟信号提供足够的控制水平。
发明内容
在一些方面,本公开描述了可编程延迟电路块。可编程延迟电路块包括具有级联输入和时钟输入的输入级,其中输入级传递在级联输入处接收的信号或在时钟输入处接收的信号。可编程延迟电路块还可以包括:延迟块,被配置为通过对从输入级传递的信号施加选定的延迟量来生成延迟信号;以及脉冲发生器,被配置为生成脉冲信号,所述脉冲信号具有取决于延迟量的脉冲宽度。可编程延迟还包括具有级联输出和时钟输出的输出级。输出级被配置为传递来自级联输出的脉冲信号或延迟信号,并且传递时钟输入处接收的信号、脉冲信号或者来自时钟输出的延迟信号。
可选地,输入级可以包括存储器单元,并且根据存储在存储器单元中的值传递级联输入处的信号或者时钟输入处接收的信号。
可选地,输入级可以根据存储在存储器单元中的值选择性地开关时钟输入处接收的信号。
可选地,脉冲发生器可以包括与非(NAND)电路,所述NAND电路由延迟信号的反相版本和时钟输入处接收的信号生成脉冲信号。
可选地,延迟块可以包括具有多个抽头并生成多个候选延迟信号的延迟线,以及将多个候选延迟信号中的一个作为延迟信号传递的延迟选择器块。
可选地,延迟线可以是二进制加权的。
可选地,延迟选择器块可以包括存储器单元和反相多路选择器,并且反相多路选择器根据存储在存储器单元中的值从所述多个候选延迟信号中选择延迟信号。
可选地,输出级还可以包括多个存储器单元、多路选择器和反相多路选择器。多路选择器根据存储在多个存储器单元中的第一存储器单元中的值将脉冲信号或延迟信号的反相版本传递到级联输出,并且反相多路选择器根据存储在第一存储器单元中的值和存储在所述多个存储器单元中的第二存储器单元中的值,将在时钟输入处接收的信号的反相版本、脉冲信号或延迟信号的反相版本传递到时钟输出。
在一些其它方面,本公开描述了时钟电路。时钟电路包括第一可编程延迟电路块,包括第一级联输入、第一时钟输入、具有多个抽头的第一延迟线、第一脉冲发生器、第一级联输出和第一时钟输出;以及第二可编程延迟电路块,包括第二级联输入、第二时钟输入、具有多个抽头的第二延迟线、第二脉冲发生器、第二级联输出和第二时钟输出。第一级联输出被耦接到第二级联输入。
可选地,第一级联输出可以传递由第一脉冲发生器生成的第一脉冲信号的反相版本或由第一延迟线生成的第一延迟信号。第二级联输出可以传递由第二脉冲发生器生成的第二脉冲信号的反相版本或由第二延迟线生成的第二延迟信号。第一时钟输出可以传递第一时钟输入处接收的信号、第一脉冲信号的反相版本或第一延迟信号,并且第二时钟输出传递第二时钟输入处接收的第二信号、第二脉冲信号的反相版本或第二延迟信号。
可选地,第一脉冲发生器可以生成具有取决于由第一延迟线施加到信号的延迟量的脉冲宽度的第一脉冲信号,并且第二脉冲发生器可以生成具有取决于由第二延迟线施加到信号的延迟量的脉冲宽度的第二脉冲信号。
可选地,第一可编程延迟可以延迟第一时钟信号并通过第一级联输出输出延迟的第一时钟信号,并且第二可编程延迟可以通过第二级联输入接收延迟的第一时钟信号,并且可以进一步延迟延迟的第一时钟信号。
可选地,第一可编程延迟还可以从第一时钟输出输出第一时钟信号而不施加延迟。
可选地,第一时钟信号可以在第一可编程延迟中的第一级联输入处被接收,并且第一可编程延迟可以在第一时钟输入处接收独立于第一时钟信号的第二时钟信号,并且从第一时钟输出输出第二时钟信号而不施加延迟。
可选地,第一可编程延迟延迟第一时钟信号并通过第一级联输出输出延迟的第一时钟信号,并且第二可编程延迟在第二级联输入处接收延迟的第一时钟信号,进一步延迟延迟的第一时钟信号,使用进一步延迟的第一时钟信号生成脉冲信号,并输出脉冲信号的反相版本。
可选地,第一可编程延迟还通过第一时钟输出第一时钟信号而没有延迟。
可选地,第二可编程延迟在第二时钟输入处接收独立于第一时钟信号的第二时钟信号,并且在脉冲发生器内使用第二时钟信号和进一步延迟的第一时钟信号来生成脉冲信号。
可选地,第一可编程延迟根据接收到的时钟信号生成脉冲信号,并通过第一级联输出输出脉冲信号的反相版本;第二可编程延迟在第二级联输入处接收脉冲信号的反相版本,延迟脉冲信号的反相版本,并输出脉冲信号的延迟反相版本。
可选地,第一可编程延迟还从第一时钟输出输出脉冲信号的反相版本。
可选地,使用固定电路将第一级联输出耦接到第二级联输入。
提供本发明内容部分仅仅是为了介绍某些概念,而不是标识所要求保护的主题的任何关键或必要特征。从附图和下面的详细描述中,本公开的方案(inventivearrangement)的其它特征将会显而易见。
附图说明
在附图中通过示例的方式示出了本公开的方案(inventive arrangement)。然而,附图不应被解释为将本公开的方案限制为仅是示出的特定实施方式。通过阅读以下详细描述并参考附图,各种方面和优点将变得显而易见。
图1是示出示例性可编程延迟电路块(可编程延迟)的电路图;
图2是示出使用参考图1描述的一个或多个可编程延迟实现的示例性延迟的表格;
图3是示出使用可编程延迟的示例性级联架构的电路图;
图4是示出使用可编程延迟的另一示例性级联架构的电路图;
图5是示出使用可编程延迟的另一示例性级联架构的电路图;
图6是示出使用可编程延迟的另一示例性级联架构的电路图;
图7是示出使用可编程延迟的另一示例性级联架构的电路图;
图8是示出使用可编程延迟的另一示例性级联架构的电路图;
图9是示出使用可编程延迟的另一示例性级联架构的电路图;
图10是示出使用可编程延迟的另一示例性级联架构的框图;
图11是示出使用可编程延迟的另一示例性级联架构的框图;
图12是示出在集成电路(IC)内实现时钟架构的方法的流程图;
图13是示出了用于IC的示例性架构的框图。
具体实施方式
虽然本公开以限定新颖特征的权利要求结束,但是可以相信,通过考虑结合附图的描述将更好地理解本公开内容中描述的各种特征。本文所述的方法、机器、制造和其任何变体是为了说明的目的而提供的。本公开内描述的具体结构和功能细节不应被解释为限制,而是仅仅作为权利要求的基础,并且作为教导本领域技术人员以各种方式采用实际上任何适当的具体结构中描述的特征的代表性基础。此外,本公开内使用的术语和短语并不旨在限制,而是提供所描述的特征的可理解的描述。
本公开涉及集成电路(IC),更具体地,涉及在IC内使用的可编程延迟电路块。根据本文公开的方案,描述了可编程延迟电路块,其增强了灵活性以及对时钟信号和时钟信号的生成的控制。在一个方面,可以控制时钟信号的偏移。在另一方面,可以生成具有可编程脉冲宽度的脉冲信号。
可编程延迟电路块包括级联输入和级联输出,从而允许多个可编程延迟电路块串行连成菊花链(daisy chained),用于增强对可应用于时钟信号的延迟增量的控制,以及增强对时钟信号施加比单个可编程延迟电路块可能的更多延迟的能力。下面将参考附图描述进一步的细节。
这里描述的本公开的方案可以实现为IC、IC内的电路、一个或多个可重用电路块等。在一个方面,本公开的方案可以被实施为可编程IC内的电路的形式,例如现场可编程门阵列(FPGA)或包括至少一些可编程电路的其它类型的IC。在另一方面,本公开的方案可以实施为存储电路的数字化描述的非瞬态性计算机可读存储介质,所述电路的数字化描述在被电子设计自动化(EDA)系统使用时可以被并入电路设计中并被制造为IC的一部分。其它方面可以被实施为使用一个或多个可编程延迟电路块执行的处理信号的方法和/或在IC内实施时钟架构的方法。
为了说明的简单和清楚的目的,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可以相对于其他元件被放大。此外,在适当的情况下,在附图间重复附图标记以指示对应的、类似的或相似的特征。
图1是示出示例性可编程延迟电路块(可编程延迟)100的电路图。可编程延迟100包括输入级102、延迟块104、脉冲发生器106和输出级108。延迟块104由延迟线124和延迟选择器126组成。此外,可编程延迟100包括多个存储器单元110。在一个方面,存储器单元110是加载有配置数据的配置存储器单元。配置数据可以被加载到包括一个或多个电路块100的IC中,以在每个存储器单元110中存储值“一”或值“零”,从而配置可编程延迟100用于操作。
输入级102包括两个输入。第一输入是级联输入112,在图1中被示为“Csc In”。第二输入是时钟输入114,在图1中被示为“Clk In”。级联输入112被提供到反相器115的输入。反相器115的输出被提供到多路选择器116的第一输入。多路选择器116是反相多路选择器。时钟输入114被提供到与非(NAND)电路118的第一输入。NAND电路118的输出被提供到多路选择器116的第二输入。存储在存储器单元MC[4]中的值确定多路选择器116是将级联输入112处接收的信号还是将从NAND电路118输出的信号传递到延迟块104的延迟线124。由多路选择器116传递的信号在进入延迟线124之前被反相。
NAND电路118的第二输入接收来自NAND电路120或NAND电路122的输出。如图所示,NAND电路120对从存储器单元MC[2]和MC[3]获得的值执行逻辑NAND操作。NAND电路120可以开关(gate)在时钟输入114处接收的信号或将在时钟输入114处接收的信号传递到多路选择器116。NAND电路122对存储在存储器单元MC[2],MC[3]和MC[4]的值执行逻辑NAND操作。NAND电路122可以开关时钟输入114处接收的信号或将时钟输入114处接收的信号传递到多路选择器116。
参考使用NAND电路120开关在时钟输入114处接收的信号,存储器单元110可以被配置为使得当MC[2]和MC[3]被设置为值1时,NAND电路120的输出是逻辑0。在使用NAND电路122开关时钟输入114处接收的信号的情况下,存储器单元110可以被配置为使得当MC[2]、MC[3]和MC[4]被设置为值1时,来自NAND电路122的输出是逻辑0。对于将逻辑0提供给NAND电路118的第二输入,不管时钟输入114处接收的信号的值,NAND电路118的输出将总是逻辑1。因此,时钟输入114被开关。多路选择器116的输出将是逻辑0,从而在不需要和/或不使用延迟线124时,防止延迟线124切换以减少动态功率。
NAND电路120和NAND电路122被提供作为可供选择的替代。在一个方面,延迟线124可使用2输入NAND电路120开关,而NAND电路122从可编程延迟100中被排除。使用NAND电路120并开关延迟线124将延迟线124开关至地。2输入NAND电路120比3输入NAND电路122需要更少的面积,但因为使用的存储器单元110更少,它提供的可编程延迟100的配置更少。例如,图9中所示的时钟架构不可以使用NAND电路120来实施。
在另一方面,可使用3输入NAND电路122开关延迟线124,而NAND电路120从可编程延迟100中被排除。如前面指出的,使用3输入NAND电路122比使用NAND电路120需要更大的面积,但提供更多数量的可编程延迟100的配置。例如,图9中所述的时钟架构可以使用NAND电路122来实施。
如上所述,延迟块104包括延迟线124和延迟选择器126。延迟线124可以被实施为多抽头(multi-tap)延迟线。延迟线124进一步被二进制加权。在图1的示例中,延迟线124由缓冲器125组成。来自延迟线124的输出抽头被标记为Y1,Y2,Y4和Y8。在一个方面,输出抽头延迟Y1可以对进入延迟线124的任何信号施加50皮秒(picosecond)的延迟。输出抽头Y2可以向进入延迟线124的任何信号提供100皮秒的延迟。输出抽头Y4可以向进入延迟线124的任何信号施加200皮秒的延迟。输出抽头Y8可以向进入延迟线124的任何信号提供400皮秒的延迟。其它延迟量也可以被提供。本公开提供的延迟量是示例性的,并不意在作为限制。
在一个方面,在延迟线124内包括缓冲器125,这允许使用缓冲器125替换时钟架构中的现有缓冲器。更具体地,由于使用延迟线124内的缓冲器125,可以省略时钟架构的一个或多个缓冲器,从而减少IC内的时钟架构所需的面积。
延迟选择器126接收输出抽头Y1、Y2、Y4和Y8中的每一个。通过在存储器单元110内,特别是存储器单元MC[0]和MC[1]中加载适当的值,选择输出抽头Y1、Y2、Y4或Y8中的特定输出抽头作为信号134传递。存储器单元MC[0]控制多路选择器128和130。多路选择器128根据存储在存储器单元MC[0]中的值选择传递输出抽头Y1或Y2。多路选择器130根据存储在存储器单元MC[0]中的值选择传递输出抽头Y4或Y8。多路选择器132根据存储在存储器单元MC[1]中的值将选定的输出抽头作为信号134传递。多路选择器132是反相多路选择器。因此,信号134是通过多路选择器132传递的信号的反相版本。如本文所定义,关于信号的术语“传递”意味着“输出”和/或“生成”。例如,反相多路选择器传递信号是指反相多路选择器选择信号,反相所选信号,并输出所选择和反相的信号。
脉冲发生器106包括NAND电路136。如图所示,NAND电路136从延迟选择器126接收信号134作为第一输入。NAND电路136还接收时钟输入114作为第二输入。NAND电路136通过对信号134(即输出抽头Y1、Y2、Y4或Y8)和时钟输入114执行逻辑NAND运算,生成具有所选脉冲宽度的脉冲信号138。脉冲宽度是可编程的,并且取决于特定的输出抽头,即施加到通过延迟线124处理的信号的延迟量,该特定的输出抽头被选择并作为信号134传递到脉冲发生器106。
在一个方面,级联输入112处接收的信号可以被传递到延迟线124并作为信号134继续传送到脉冲发生器106。在级联输入112处接收的信号可以是来自另一先前可编程延迟的延迟信号。通过使用延迟线124进一步延迟在级联输入112处接收的信号并将该信号的进一步延迟的版本作为信号134从选定的输出抽头传递到脉冲发生器106,可以创建具有比以其它方式可获得的更大宽度的脉冲的脉冲信号。脉冲发生器106可以使用通过延迟线124处理的信号的上升沿作为脉冲信号138的上升沿。由于脉冲信号138被反相,脉冲信号138被反相器146或多路选择器148反相回正确的功能(sense)。如图所示,多路选择器148是反相多路选择器。例如,NAND电路136使用信号134的上升沿来生成从多路选择器148输出的脉冲的下降沿,例如在功能校正之后。通过提供脉冲信号138作为被来自可编程延迟100的被功能校正的输出,可以选择性地将一个或多个下游同步电路元件(例如触发器)转换为锁存器,以允许在功能校正的脉冲信号138作为时钟时的时间借用操作。在本说明书中,对作为可编程延迟100的输出的生成的脉冲信号的引用意味着脉冲信号138的反相版本,即,从多路选择器148输出的功能校正的脉冲信号。
输出级108提供各种不同的输出选项。输出级108在反相器140处接收时钟输入114。输出级108在多路选择器142的输入处接收脉冲信号138。输出级108在多路选择器142的另一输入处从多路选择器132接收信号134。多路选择器142传递脉冲信号138或信号134(其为Y1、Y2、Y4或Y8中的一个)作为信号144的输出。多路选择器142基于存储在存储器单元MC[2]中的值来传递脉冲信号138或信号134。
信号144被提供给反相器146的输入和多路选择器148的第一输入。反相器146的输出提供级联输出148,其被图示为“Csc Out”。多路选择器148在第二输入处接收信号150,所述信号150是时钟信号114的反相版本。多路选择器148传递信号144或信号150,并且基于存储在存储器单元MC[3]中的值将所传递的信号反转为时钟输出152。当未被延迟时,通过时钟输入114到反相器140处理并被输出到多路选择器148的时钟信号的路径可以利用路径中的低阈值晶体管来最小化抖动。
可编程延迟100可以被用于IC时钟架构内以偏移时钟信号和/或生成具有可编程长度的脉冲宽度的脉冲信号。当多个可编程延迟100被包含到IC时钟架构中时,可以使用级联输入和级联输出来级联可编程延迟,该可编程延迟在其它情况下未被使用并且相邻于另一可编程延迟。多路选择器被使用以允许延迟线124耦接到时钟输入114或级联输入112,其可被耦接到另一不同的可编程延迟的级联输出。级联可编程延迟可以具有各种可能的连接,这有助于以其它情况下可能的更精细的粒度(granularity)级别创建更大的延迟。
此外,因为可编程延迟100处理用于偏移调整的时钟信号并生成脉冲信号,其中任一者可在级联的另一可编程延迟中进一步被延迟,所以可以通过在整个IC中分布可编程延迟100作为叶节点处的时钟架构的一部分,而不需要在IC内使用额外的时钟轨道,在时钟架构的叶处生成相移时钟和相移脉冲信号。这种安排为利用相同时钟信号的多个相移版本的电路节省了功率和面积。
图2是示出使用参考图1描述的一个或多个可编程延迟实现的示例性延迟的表200。左列标题为“可编程延迟数”表示必须使用的串行(例如级联或菊花链)的可编程延迟的数量,以实现标题为“实现的延迟”的右列中的总延迟量。标题为“延迟贡献”的中间列示出了由每个串行连接的单独可编程延迟所贡献的延迟量。
由于延迟线124中的二进制加权,因此每个可编程电路可以贡献最小50皮秒的延迟和最大400皮秒的延迟。如表200所示,通过将4个可编程延迟级联在一起可以实现大于1050皮秒的延迟。由使用级联架构的一个或多个可编程延迟所施加的延迟量以50皮秒的增量增加,这是可编程延迟100中的单个可编程延迟可施加的最小延迟量。
图3-9示出了可以通过在存储器单元内存储适当的值来实施的示例性级联架构。在图3-9中,穿过图示的可编程延迟的有效(active)信号路径通过对导线(信号)和端子使用粗体来示出。为了便于说明,图3-9中所示的可编程延迟被简化了。为了清楚起见,省略了例如反相器、存储器单元等的各种电路元件。
应当理解,在图3-9所示的每个示例中,可编程延迟A和可编程延迟B是可独立配置的。每个可编程延迟具有其自己的用于配置的存储器单元组。因此,由可编程延迟A的延迟线施加的延迟量可以与由可编程延迟B的延迟线施加的延迟量不同。此外,由可编程延迟A生成的脉冲信号可以与由可编程延迟B产生的脉冲信号不同,例如具有不同的脉冲宽度和/或不同的延迟。此外,从可编程延迟A和/或B中的一个或两个的Clk Out输出的任何信号可用于驱动用于相应的可编程延迟的本地时钟负载。
图3是示出使用可编程延迟的示例性级联架构300的电路图。图3示出了一个示例,其中可编程延迟A处理第一时钟信号,而可编程延迟B处理独立的第二时钟信号。例如,如图3所示,时钟信号在每个可编程延迟A和B的Clk In(时钟输入114)被接收,通过每个可编程延迟的延迟线被传递,然后被传递到可编程延迟A和B的Clk Out(时钟输出152)。尽管CscOut(级联输出148)和Csc In(级联输入112)被耦接在一起,但级联输入和级联输出不用于级联架构300中。
图4是示出使用可编程延迟的另一示例性级联架构400的电路图。图4示出了一个示例,其中可编程延迟B没有被使用,并且因此可用于进一步处理使用可编程延迟A初始处理的时钟信号。例如,时钟信号在可编程延迟A的Clk In处被接收,通过延迟线被延迟,并且在可编程延迟A的Csc Out处被输出。此外,在可编程延迟A的Clk In处接收的原始时钟信号从Clk Out输出以供一个或多个时钟负载使用。如图所示,可编程延迟A的Csc Out被耦接到可编程延迟B的Csc In。级联架构400示出了一个示例,其中用于从可编程延迟B的Clk Out输出的信号生成的延迟量可以是单个可编程延迟的延迟量的两倍。
图5是示出使用可编程延迟的另一示例性级联架构500的电路图。在级联架构500中,第一时钟信号在可编程延迟A的Csc In处被接收,通过延迟线被处理,并且从可编程延迟A的Csc Out被输出。如图所示,可编程延迟A的Csc Out被耦接到可编程延迟B的Csc In,并且在可编程延迟B的Clk Out处输出之前,通过可编程延迟B的延迟线进一步地被延迟。通过可编程延迟B的Clk Out输出的第一时钟信号可以具有三倍于单个可编程延迟可提供的延迟的总延迟,因为可编程延迟A的Csc In是由未示出的在先可编程延迟的Csc Out供应的。
然而,可编程延迟A还在Clk In处接收独立的第二时钟信号。第二时钟信号通过可编程延迟A传递而不增加任何额外的延迟,并且通过Clk Out输出。
图6是示出使用可编程延迟的另一示例性级联架构600的电路图。在级联架构600中,两个分离且独立的时钟信号被处理以生成两个分离且独立的脉冲信号。可编程延迟A和B中的每一个在Clk In处接收时钟信号。时钟信号在可编程延迟A和B中每一个的延迟线中被延迟,然后通过对延迟的时钟信号和无延迟的原始时钟信号执行NAND操作被用来创建脉冲信号。所得到的脉冲信号从每个可编程延迟A和B的Clk Out中输出。
图7是示出使用可编程延迟的另一示例性级联架构700的电路图。在级联架构700的示例中,可编程延迟A和B被级联以实现两倍于单个可编程延迟的延迟。然后,延迟的信号被用于在可编程延迟B中产生脉冲信号,该脉冲信号具有两倍于使用单个可编程延迟生成的脉冲信号的脉冲宽度。
如图所示,时钟信号在可编程延迟A的Clk In处被接收。该时钟信号使用可编程延迟A中的延迟线来延迟,并从Csc Out输出。延迟的时钟信号在可编程延迟B的Csc In处被接收,使用可编程延迟B的延迟线被进一步延迟,并被提供给可编程延迟B中的脉冲发生器。
在可编程延迟A的Clk In处接收的原始时钟信号也被传递到可编程延迟A中的ClkOut,而没有增加任何延迟,并且可被可编程延迟A本地的时钟负载使用。如图所示,原始时钟信号可以使用可编程延迟A外部的附加线路资源被传递到可编程延迟B的Clk In,并被用于可编程延迟B中的脉冲发生器生成脉冲信号。或者,可以将独立的第二时钟信号提供给可编程延迟B中的Clk In(以虚线示出)。所得到的脉冲信号从可编程延迟B的Clk Out输出。
图8是示出使用可编程延迟的另一示例性级联架构800的电路图。在架构800的示例中,可编程延迟A在Cl In处接收时钟信号。时钟信号使用可编程延迟A的延迟线来延迟。延迟的时钟信号然后与原始时钟信号一起被提供给脉冲发生器,以使用可编程延迟A的脉冲发生器生成脉冲信号。脉冲信号通过可编程延迟A的Csc Out和Clk Out两者被输出。来自Clk Out的脉冲信号可被用于驱动可编程延迟A的Clk Out中和周围的时钟负载。来自CscOut的脉冲信号被提供给可编程延迟B的Csc In。脉冲信号使用可编程延迟B的延迟线被延迟,并通过可编程延迟B的Clk Out被输出。
图9是示出使用可编程延迟的另一示例性级联架构900的电路图。级联架构900的示例基本上类似于级联架构800的示例。一个不同是可编程延迟A没有从Csc Out和Clk Out两者输出脉冲信号。相反,在从Clk Out输出原始时钟信号而没有任何额外延迟的同时,可编程延迟A从Csc Out输出脉冲信号。从Csc Out输出的脉冲信号被提供给可编程延迟B的Csc In,通过可编程延迟B的延迟线被延迟,并通过Clk Out输出。
图10是示出使用可编程延迟的另一示例性级联架构1000的框图。级联架构1000包括级联在一起的4个可编程延迟A,B,C和D。如图所示,可编程延迟A的级联输出148被耦接到可编程延迟B的级联输入112。可编程延迟B的级联输出148被耦接到可编程延迟C的级联输入112。可编程延迟C的级联输出148被耦接到可编程延迟D的级联输入112。最后,可编程延迟D的级联输出148被耦接到可编程延迟A的级联输入112。
级联架构1000允许高达4倍于单个可编程延迟要施加到接收的时钟信号的延迟的总延迟。此外,可以生成脉冲信号,具有高达4倍于单个可编程延迟可以生成的脉冲信号的脉冲宽度的脉冲宽度。在这种情况下,可编程延迟A被用作信号入口点(signal entrypoint),而所得到的输出信号从可编程延迟D的时钟输出152输出。
然而,应当理解,可以根据延迟量、需要的脉冲宽度和/或时钟信号需要的IC中的位置从可编程延迟A,B,C和/或D中的任一个的时钟输出152获取输出信号。类似地,信号入口点可以变化,并且可以是可编程延迟A,B,C和/或D中的任何一个的时钟输入114。例如,使用图10中所示的回环配置(loop back configuration),可以创建时钟架构,其中信号通过时钟输入114进入可编程延迟B,使用级联输出148被级联通过可编程延迟C和D,并使用回环连接(loop back connection)被级联到可编程延迟A。得到的信号可以从可编程延迟A的时钟输出152输出。尽管参考图10所述的示例使用了所有四个所示的可编程延迟,但是也可以创建具有少于所示所有延迟的时钟架构。在以IC内所示的回环配置(例如,无论用于回环配置的2,3,4或更多可编程延迟)中布置的给定组的可编程延迟内,用于时钟信号的入口点和出口点可彼此独立选择。
图11是示出使用可编程延迟的另一示例性级联架构1100的框图。级联架构1100包括四个可编程延迟A,B,C和D。在图11的示例中,可编程延迟作为两个分离的对被级联在一起。
在第一对可编程延迟中,可编程延迟A的级联输出148被耦接到可编程延迟B的级联输入112。可编程延迟B的级联输出148被耦接到可编程延迟A的级联输入112。
在第二对可编程延迟中,可编程延迟C的级联输出148被耦接到可编程延迟D的级联输入112。可编程延迟D的级联输出148被耦接到可编程延迟C的级联输入112。
每对级联可编程延迟可以提供高达2倍于单个可编程延迟的延迟和具有高达单个可编程延迟的2倍的脉冲宽度的脉冲信号。一个得到的输出信号从可编程延迟B的时钟输出152被输出。另一个得到的输出信号从可编程延迟D的时钟输出152被输出。
在图10和11的每一个中,可编程延迟的级联输出和级联输入之间的连接可以是固定的,即作为IC一部分的硬连线连接被创建,可编程延迟在该IC中实施。
图12是示出在IC内实施时钟架构的一种方法1200的流程图。在框1205中,在IC内提供第一可编程延迟作为在其中实现的时钟架构(例如,时钟树)的一部分。在框1210中,在IC中提供第二或更多可编程延迟作为时钟架构的一部分。在整个时钟架构中都可以增加可编程延迟。在一个方面,在时钟架构的每个叶添加可编程延迟。时钟架构或时钟树的叶是一个节点,在该节点时钟信号离开将时钟信号从时钟源递送到IC的特定区域或部分的路由轨迹(线路),在该处时钟信号切换到分配轨迹(线路)以分配到叶节点本地的一个或多个时钟负载。
在框1215中,所选择的可编程延迟被耦接在一起以形成如本说明书中所示的一个或多个级联架构。两个或更多的可编程延迟通过将一个可编程延迟的级联输出与另一可编程延迟的级联输入连接,从而耦接在一起。
在框1220中,可编程延迟可以通过加载在相应的可编程延迟的存储器单元内的适当的值来配置,用于生成正在实施的电路设计所需要或要求的时钟信号。
在一个方面,可以使用硬连线电路来实现级联架构的形成。例如,每个可编程延迟可以是可配置的硬连线或固定电路块。将级联输出连接到级联输入的两个或更多级联可编程延迟之间的布线可以是IC内的硬连线或固定连接。
图13是说明用于IC的一个示范性架构1300的框图。在一个方面,架构1300在现场可编程门阵列(FPGA)类型的IC内实现。架构1300也代表了SOC类型的IC。如上所述,SOC是包括执行程序代码的处理器和一个或多个其他电路和/或电路系统的IC。电路和/或电路系统可以彼此协作并与处理器协同操作。在任何情况下,本公开中描述的可编程延迟可以在图13所示的整个时钟区域中实施。
如图所示,架构1300包括若干不同类型的可编程电路(例如,逻辑)块。例如,架构1300可以包括大量不同的可编程片(tile),包括多吉比特收发器(MGT)1301、可配置逻辑块(CLB)1302、随机存取存储器块(BRAM)1303、输入/输出块(IOB)1304、配置和时钟逻辑(CONFIG/CLOCKS)1305、数字信号处理块(DSP)1306、专用I/O块1307(例如配置端口和时钟端口)以及其它可编程逻辑1308,例如数字时钟管理器、模数转换器、系统监视逻辑等。
在一些IC中,每个可编程片包括可编程互连元件(INT)1311,其具有去到和来自每个相邻片中的对应INT 1311的标准化连接。因此,INT 1311合在一起实施用于所示IC的可编程互连结构。每个INT 1311还包括去到和来自同一片内的可编程逻辑元件的连接,如由图13的顶部的示例所示。
例如,CLB 1302可以包括可编程以配合单个INT 1311实现用户逻辑的可配置逻辑元件(CLE)1312。BRAM 1303除一个或多个INT之外还可以包括BRAM逻辑元件(BRL)1313。通常,片中包括的INT 1311的数量取决于片的高度。如图所示,一个BRAM片具有与五个CLB相同的高度,但是也可以使用其它数量(例如四个)。DSP片1306除了适当数量的INT 1311外,还可以包括DSP逻辑元件(DSPL)1314。IOB 1304除了INT 1311的一个实例外,还可以包括例如I/O逻辑元件(IOL)1315的两个实例。本领域技术人员将清楚,连接到例如IOL 1315的实际的I/O片(pad)通常不限制在IOL 1315的区域。
在图13所示的示例中,裸片中心附近的柱状区域(例如由区域1305,1307和1308组成)可以用于配置、时钟和其它控制逻辑。从该柱延伸的水平区域1309用于在可编程IC的宽度上分配时钟和配置信号。可以在分布在区域1305、1307、1308和/或1309的时钟线上实现一个或多个可编程延迟。
在一个方面,时钟电路或叶时钟电路可以在架构300内的各种位置中实现。这样的时钟电路可以包括如本公开中所述的可编程延迟。例如,包括可编程延迟的时钟电路可以被包括或定位在区域1309与包括CLB 1302、BRAM 1303和/或DSP 1306的一个或多个或每一个柱中的交叉处。然而应当理解,可编程延迟可以被包括在或位于架构300内的别处,并且本文提供的示例并不旨在限制。
使用图13所示的架构的一些IC包括打乱构成IC的大部分的常规柱状结构的附加逻辑块。附加逻辑块可以是可编程块和/或专用电路。例如,被描述为PROC 1310的处理器块跨越了多个CLB和BRAM柱。
在一个方面,PROC 1310被实现为专用电路,例如作为硬连线处理器,其被制造为实施IC的可编程电路的裸片的一部分。PROC 1310可以表示各种不同处理器类型和/或系统中的任何一种,其复杂度范围包括从单个处理器(例如,能够执行程序代码的单个核)到具有一个或多个核、模块、协处理器、接口等的整个处理器系统。
在另一方面,架构1300中省略了PROC 1310,并且其用所描述的可编程块的一个或多个其它变体来代替。此外,这样的块可以被用来形成“软处理器”,其中可编程电路的各个块可以用于形成执行程序代码的处理器,如PROC 1310的情况一样。
短语“可编程电路”是指IC内的可编程电路元件,例如,本文所描述的各种可编程或可配置电路块或片,以及根据加载入IC的配置数据选择性地耦接各种电路块、片和/或元件的互连电路。例如,图13中所示在PROC 1310外部的部分(例如CLB 1302和BRAM 1303)被认为是IC的可编程电路。可编程电路可以被配置或编程以在其中实现不同的物理电路。
通常,直到配置数据被加载到IC中,可编程电路的功能才被建立。一组配置比特(bit)可以被用于对例如FPGA的IC的可编程电路编程。配置比特通常被称为“配置比特流”。一般来说,可编程电路在没有先将配置比特流加载到IC中的情况下不可操作或没有功能。配置比特流有效地实施或实例化可编程电路系统内的特定物理电路。配置比特流或电路设计指定例如可编程电路块的功能方面以及在其它情况下不存在的各种可编程电路块之间的物理连接性。配置比特流还指定可以被加载到存储器单元中,用于控制本文所描述的可编程延迟的操作的值。
“硬连线”或“硬化”的(即不可编程的)电路,被制造为IC的一部分。与可编程电路不同,硬连线电路或电路块并非在IC被制造后通过加载配置比特流实施的。硬连线电路具有专用电路块和互连,例如在没有先将配置比特流加载到IC中的情况下就起作用的专用电路块和互连。硬连线电路的一个示例是PROC 1310。
在一些情况下,硬连线电路(例如,可编程延迟)可以具有可根据寄存器设置或存储在IC内一个或多个存储器单元中的值来设置或选择的一个或多个操作模式。这些操作模式可以通过例如将配置比特流加载到IC中来设置。尽管具有这种能力,但是硬连线电路不被认为是可编程电路,因为硬连线电路在被制造为IC的一部分时,就是可操作的并具有特定功能。
图13旨在说明可用于实施包括可编程电路(例如,可编程组构)的IC的一个示例性架构。例如,图13顶部所示的柱中的逻辑块的数量、柱的相对宽度、柱的数量和顺序、柱中包括的逻辑块的类型、逻辑块的相对大小以及互连/逻辑的实施仅是示例性的。在实际IC中,例如,可以在CLB出现的任何地方都存在不止一个CLB柱,以便于用户电路设计的有效实施。然而,相邻CLB柱的数量可以随着IC的总体尺寸而变化。此外,IC内块(例如PROC 1310)的大小和/或定位仅仅是为了说明的目的,而不旨在作为限制。
根据本公开的发明方案,描述了由两个或更多个可编程延迟组成的可编程延迟电路块和级联架构。当被结合到IC的时钟架构中时,本公开的方案对时钟信号以及时钟信号产生提供更大的灵活性和更好的控制。可以以更高的精度控制时钟信号的偏移。此外,可以生成具有可编程脉冲宽度的脉冲信号,从而有助于将所选择的时钟电路元件转换为锁存器,以在使用脉冲信号对所选择的时钟元件进行时钟控制时实施时间借位操作(timeborrowing operation)。
为了解释的目的,阐述了具体的术语以提供对本文公开的各种创造性概念的透彻理解。然而,本文中使用的术语仅是为了描述本公开安排的具体方面的目的,而不旨在进行限制。
如本公开中所定义的,术语“一个”和“一种”是指一个或多于一个。如本文所定义的术语“多个”是指两个或多于两个。如本文所定义的术语“另一个”是指至少第二个或更多个。除非另有说明,否则如本文所定义的术语“耦接”是指连接,无论是没有中间元件而直接地连接还是具有一个或多个中间元件而间接地连接。两个元件还可以通过通信信道、通路、网络或系统机械地、电气地或通信地耦接。
如本公开中所定义的,术语“和/或”是指一个或多个相关所列项目的任何及所有可能的组合。当在本公开中使用时,术语“包括”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组。尽管术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不应受这些术语限制,因为这些术语仅用于将一个元件与另一元件区分开,除非上下文另有指示。
如本文所定义的,根据上下文,术语“如果”表示“当”、“在……时”、“响应于确定”或“响应于检测”。类似地,根据上下文,如本文所定义的短语“如果确定”或短语“如果检测到[所述条件或事件]”指“在确定时”、“响应于确定”、“当检测到[所述条件或事件]”、“响应于检测到[所述条件或事件]”。
在本公开内容中,相同的附图标记用于指代端子、信号线、导线及其对应的信号。在这方面,在本公开内容中,术语“信号”、“导线”、“连接”、“端子”和“引脚”可以不时地互换使用。还应当理解,术语“信号”、“导线”等可以表示一个或多个信号,例如,通过单个导线对单个位的传送或通过多个平行导线对多个并行位的传送。此外,每个导线或信号还可以表示在由信号或线连接的两个或更多个组件之间的双向通信,视具体情况而定。
一个或多个方面还可以结合在计算机程序产品中,计算机程序产品包括使本文所描述的方法和/或电路能够实现的所有特征。该计算机程序产品包括计算机可读数据存储介质。如本文所定义的,短语“计算机可读存储介质”是指包含或存储被指令执行系统、装置或设备所使用或与指令执行系统、装置或设备相关的的程序代码的存储介质。如本文所定义的,“计算机可读存储介质”是非瞬态的,并且因此其本身不是短暂的传播信号。计算机可读存储介质的示例可以包括但不限于光学介质、磁性介质、磁光介质、计算机存储器(例如随机存取存储器)、大容量存储设备(例如硬盘)等。
附图中的流程图和框图示出了根据本文公开的方案的各个方面的系统、方法和计算机程序产品的架构、功能和操作的可能的实施例。在这方面,流程图或框图中的每个框可以表示代码的模块、段或部分,其包括用于实施指定功能的一个或多个可执行指令。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以通过执行指定功能或动作的基于专用硬件的系统,或专用硬件和计算机指令的组合来实现。
在一个方面中,可以以对应于各框中数字的递增顺序来执行流程图图示中的框。在其他方面,可以以与框中的数字不同或变化的顺序来执行框。例如,连续示出的两个或更多个框可以基本上同时执行。在其它情况下,取决于所涉及的功能,有时可以以相反的顺序执行两个或更多个框。在其它情况下,可以以变化的顺序执行一个或多个框,其中结果被存储在和用于随后的框或不紧随其后的其它框中。
权利要求书中的所有装置或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与其它具体要求保护的元件组合地执行功能的任何结构、材料或动作。
可编程延迟电路块包括具有级联输入和时钟输入的输入级,其中输入级传递在级联输入处接收的信号或在时钟输入处接收的信号;延迟块,被配置为通过对从所述输入级传递的信号应用选定的延迟量生成延时信号;以及脉冲发生器,被配置为生成具有取决于所述延迟量的脉冲宽度的脉冲信号。可编程延迟电路块还包括具有级联输出和时钟输出的输出级。输出级被配置为从级联输出传递脉冲信号的反相版本或延迟信号,并且从时钟输出传递在时钟输入处接收的信号、脉冲信号的反相版本或者延迟信号。
输入级可以包括存储器单元,并且可以根据存储在存储器单元中的值传递级联输入处的信号或者在时钟输入处接收的信号。此外,输入级可以根据存储在存储器单元中的值选择性地开关在时钟输入处接收的信号。
脉冲发生器可以包括NAND电路,其根据延迟信号的反相版本和在时钟输入处接收的信号生成脉冲信号。
延迟块可以包括具有多个抽头并且生成多个候选延迟信号的延迟线。延迟块还可以包括延迟选择器块,其将多个候选延迟信号中的一个作为延迟信号。延迟线可以是二进制加权的。
延迟选择器块可以包括存储器单元和反相多路选择器。反相多路选择器可根据存储在存储器单元中的值从多个候选延迟信号中选择延迟信号。
输出级可以包括多个存储器单元、多路选择器和反相多路选择器。多路选择器可根据存储在多个存储器单元中的第一存储器单元中的值将脉冲信号或延迟信号的反相版本传递到级联输出。反相多路选择器可以根据存储在第一存储器单元中的值以及存储在所述多个存储器单元中的第二存储器单元中的值将在时钟输入处接收的信号的反相版本、脉冲信号或延迟信号的反相版本传递到时钟输出。
时钟电路包括具有第一级联输入、第一时钟输入、具有多个抽头的第一延迟线、第一脉冲发生器、第一级联输出和第一时钟输出的第一可编程延迟电路块。时钟电路还包括具有第二级联输入、第二时钟输入、具有多个抽头的第二延迟线、第二脉冲发生器、第二级联输出和第二时钟输出的第二可编程延迟电路块。第一级联输出被耦接到第二级联输入。
第一级联输出可以传递由第一脉冲发生器生成的第一脉冲信号的反相版本或由第一延迟线生成的第一延迟信号。第二级联输出可以传递由第二脉冲发生器生成的第二脉冲信号的反相版本或由第二延迟线生成的第二延迟信号。第一时钟输出可以传递在第一时钟输入处接收的信号、第一脉冲信号的反相版本或第一延迟信号。第二时钟输出可以传递在第二时钟输入处接收的第二信号、第二脉冲信号的反相版本或第二延迟信号。
第一脉冲发生器可以生成具有取决于由第一延迟线施加到信号的延迟量的脉冲宽度的第一脉冲信号。第二脉冲发生器可以生成具有取决于由第二延迟线施加到信号的延迟量的脉冲宽度的第二脉冲信号。
在一个方面,第一可编程延迟可以延迟第一时钟信号并通过第一级联输出输出延迟的第一时钟信号。第二可编程延迟可以通过第二级联输入接收延迟的第一时钟信号,并且进一步延迟延迟的第一时钟信号。例如,第一可编程延迟可以在不施加延迟的情况下从第一时钟输出输出第一时钟信号。在另一示例中,可以在第一可编程延迟中的第一级联输入处接收第一时钟信号。在这种情况下,第一可编程延迟可以在第一时钟输入处接收独立于第一时钟信号的第二时钟信号,并且在不施加延迟的情况下从第一时钟输出输出第二时钟信号。
在另一方面,第一可编程延迟可以延迟第一时钟信号并通过第一级联输出输出延迟的第一时钟信号。第二可编程延迟可以在第二级联输入处接收延迟的第一时钟信号,进一步延迟延迟的第一时钟信号,使用进一步延迟的第一时钟信号生成脉冲信号,并输出脉冲信号的反相版本。在一个示例中,第一可编程延迟可以进一步通过第一时钟输出没有延迟地输出第一时钟信号。在又一示例中,第二可编程延迟可以在第二时钟输入处接收独立于第一时钟信号的第二时钟信号,并且在脉冲发生器内使用第二时钟信号和进一步延迟的第一时钟信号来生成脉冲信号。
在另一方面,第一可编程延迟可以根据接收的时钟信号生成脉冲信号,并通过第一级联输出输出脉冲信号的反相版本。第二可编程延迟可以在第二级联输入处接收脉冲信号的反相版本,延迟脉冲信号的反相版本,并输出脉冲信号的延迟反相版本。在这种情况下,第一可编程延迟可以进一步从第一时钟输出输出脉冲信号的反相版本。
第一级联输出可以使用固定电路被耦接到第二级联输入。
在不脱离本公开的精神或本质属性的情况下,本公开内容中描述的特征可以以其它形式实施。因此,应当参考所附权利要求书而不是前述公开,以指示这些特征和实施例的范围。

Claims (14)

1.一种可编程延迟电路块,其特征在于,所述可编程延迟电路块包括:
输入级,所述输入级包括级联输入和时钟输入;
其中所述输入级包括存储器单元并根据存储在所述存储器单元中的值传递在所述级联输入处接收的信号或在所述时钟输入处接收的信号;
延迟块,所述延迟块被耦接到所述输入级的输出并且被配置为通过对从所述输入级传递的信号施加选定的延迟量来生成延迟信号;
脉冲发生器,所述脉冲发生器被耦接到所述延迟块的输出并被配置为使用所述延迟信号生成脉冲信号,其中所述脉冲信号具有取决于所述延迟块施加的所述延迟量的脉冲宽度;和
输出级,所述输出级被耦接到所述脉冲发生器的输出,所述输出级包括用于所述可编程延迟电路块的级联输出和时钟输出,其中所述级联输出和所述时钟输出可配置为并行操作;
其中所述级联输出能够被配置为传递所述脉冲信号的反相版本或所述延迟信号到所述级联输出,并且所述时钟输出能够被配置为传递在所述时钟输入处接收的信号、所述脉冲信号的反相版本或所述延迟信号到所述时钟输出。
2.根据权利要求1所述的可编程延迟电路块,其特征在于,所述输入级根据存储在存储器单元中的值选择性地开关所述时钟输入处接收的信号。
3.根据权利要求1所述的可编程延迟电路块,其特征在于,所述脉冲发生器包括NAND电路,所述NAND电路由所述延迟信号的反相版本和所述时钟输入处接收的信号生成所述脉冲信号。
4.根据权利要求1所述的可编程延迟电路块,其特征在于,所述延迟块包括:
延迟线,所述延迟线具有多个抽头并生成多个候选延迟信号;和
延迟选择器块,所述延迟选择器块将所述多个候选延迟信号中的一个作为所述延迟信号传递。
5.根据权利要求4所述的可编程延迟电路块,其特征在于:
所述延迟选择器块包括存储器单元和反相多路选择器;以及
所述反相多路选择器根据存储在所述存储器单元中的值从所述多个候选延迟信号中选择所述延迟信号。
6.根据权利要求1中所述的可编程延迟电路块,其特征在于:
所述输出级还包括多个输出存储器单元、多路选择器和反相多路选择器;
所述多路选择器根据存储在所述多个输出存储器单元中的第一输出存储器单元中的值将所述脉冲信号或所述延迟信号的反相版本传递到所述级联输出;以及
所述反相多路选择器根据存储在所述第一输出存储器单元中的值以及存储在所述多个输出存储器单元中的第二输出存储器单元中的值,将所述时钟输入处接收的所述信号的反相版本、所述脉冲信号或所述延迟信号的所述反相版本传递到所述时钟输出。
7.一种时钟电路,包括:
第一可编程延迟电路块,所述第一可编程延迟电路块包括:第一输入级,所述第一输入级包括第一级联输入和第一时钟输入,其中所述第一输入级包括第一存储器单元并且被配置为根据存储在所述第一存储器单元中的值传递在所述第一级联输入或所述第一时钟输入处接收的信号;第一延迟块,所述第一延迟块被耦接到所述第一输入级的输出,其中所述第一延迟块对从所述第一输入级传递的信号施加选定量的延迟,以生成第一延迟信号;第一脉冲发生器,所述第一脉冲发生器被耦接到所述第一延迟块的输出,所述第一延迟块被配置为使用所述第一延迟信号生成具有选定脉冲宽度的第一脉冲信号;以及第一输出级,所述第一输出级被耦接到所述第一脉冲发生器的输出,其中所述第一输出级包括能够配置为输出来自所述第一可编程延迟电路块的第一输出信号的第一级联输出和能够配置为输出来自所述第一可编程延迟电路块的第二输出信号的第一时钟输出,并且其中所述第一级联输出和所述第一时钟输出可配置为并行操作;和
第二可编程延迟电路块,所述第二可编程延迟电路块包括第二输入级,所述第二输入级包括第二级联输入和第二时钟输入,其中所述第二输入级包括第二存储器单元并且被配置为根据存储在所述第二存储器单元中的值传递在所述第二级联输入或所述第二时钟输入处接收的信号;第二延迟块,所述第二延迟块被耦接到所述第二输入级的输出,其中所述第二延迟块将选定的延迟量施加到从所述第二输入级传递的所述信号,以生成第二延迟信号,第二脉冲发生器,所述第二脉冲发生器被耦接到所述第二延迟块的输出,所述第二脉冲发生器被配置以使用所述第二延迟信号生成具有选定脉冲宽度的第二脉冲信号;以及第二输出级,所述第二输出级被耦接到所述第二脉冲发生器的输出,其中所述第二输出级包括能够配置为从所述第二可编程延迟电路块输出第一输出信号的第二级联输出和能够配置为从所述第二可编程延迟电路块输出第二输出信号的第二时钟输出,并且其中所述第二级联输出和所述第二时钟输出可配置为并行操作;以及
其中所述第一级联输出被耦接到所述第二级联输入。
8.根据权利要求7所述的时钟电路,其特征在于:
所述第一级联输出传递所述第一脉冲发生器生成的第一脉冲信号的反相版本或所述第一延迟块生成的第一延迟信号;
所述第二级联输出传递所述第二脉冲发生器生成的第二脉冲信号的反相版本或所述第二延迟块生成的所述第二延迟信号;
所述第一时钟输出传递所述第一时钟输入处接收的信号、所述第一脉冲信号的所述反相版本或所述第一延迟信号;以及
所述第二时钟输出传递所述第二时钟输入处接收的第二信号、所述第二脉冲信号的所述反相版本或所述第二延迟信号。
9.根据权利要求7所述的时钟电路,其特征在于:
所述第一脉冲信号的所述选定的脉冲宽度取决于所述第一延迟块施加到从所述第一输入级传递的信号的所述选定的延迟量;和
所述第二脉冲信号的所述选定的脉冲宽度取决于所述第二延迟块施加到从所述第二输入级传递的信号的所述选定的延迟量。
10.根据权利要求7所述的时钟电路,其特征在于:
所述第一可编程延迟电路块延迟第一时钟信号,并通过所述第一级联输出输出所述延迟的第一时钟信号;以及
所述第二可编程延迟电路块通过所述第二级联输入接收所述延迟的第一时钟信号,并且进一步延迟所述延迟的第一时钟信号。
11.根据权利要求10所述的时钟电路,其特征在于:
所述第一时钟信号在所述第一可编程延迟电路块中的所述第一级联输入处被接收;
所述第一可编程延迟电路块在所述第一时钟输入处接收独立于所述第一时钟信号的第二时钟信号,并且在不施加延迟的情况下从所述第一时钟输出输出所述第二时钟信号。
12.根据权利要求7所述的时钟电路,其特征在于:
所述第一可编程延迟电路块延迟第一时钟信号,并通过所述第一级联输出输出所述延迟的第一时钟信号;和
所述第二可编程延迟电路块在所述第二级联输入处接收所述延迟的第一时钟信号,进一步延迟所述延迟的第一时钟信号,使用所述进一步延迟的第一时钟信号生成脉冲信号,并输出所述脉冲信号的反相版本。
13.根据权利要求12所述的时钟电路,其特征在于,所述第二可编程延迟电路块在所述第二时钟输入处接收独立于所述第一时钟信号的第二时钟信号,并且在所述脉冲发生器内使用所述第二时钟信号和所述进一步延迟的第一时钟信号以生成所述脉冲信号。
14.根据权利要求7所述的时钟电路,其特征在于:
所述第一可编程延迟电路块由接收的时钟信号生成第一脉冲信号,并通过所述第一级联输出输出所述第一脉冲信号的反相版本;和
所述第二可编程延迟电路块在所述第二级联输入处接收所述第一脉冲信号的所述反相版本,延迟所述第一脉冲信号的所述反相版本,并输出所述第一脉冲信号的所述反相版本的延迟版本。
CN201580048957.6A 2014-09-10 2015-04-01 可编程延迟电路块 Active CN106688182B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/482,832 US9118310B1 (en) 2014-09-10 2014-09-10 Programmable delay circuit block
US14/482,832 2014-09-10
PCT/US2015/023790 WO2016039814A1 (en) 2014-09-10 2015-04-01 Programmable delay circuit block

Publications (2)

Publication Number Publication Date
CN106688182A CN106688182A (zh) 2017-05-17
CN106688182B true CN106688182B (zh) 2020-09-08

Family

ID=52875315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580048957.6A Active CN106688182B (zh) 2014-09-10 2015-04-01 可编程延迟电路块

Country Status (6)

Country Link
US (1) US9118310B1 (zh)
EP (1) EP3192171B1 (zh)
JP (1) JP6602849B2 (zh)
KR (1) KR102263674B1 (zh)
CN (1) CN106688182B (zh)
WO (1) WO2016039814A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537491B1 (en) 2015-03-24 2017-01-03 Xilinx, Inc. Leaf-level generation of phase-shifted clocks using programmable clock delays
US10284185B1 (en) * 2017-12-18 2019-05-07 Xilinx, Inc. Selectively providing clock signals using a programmable control circuit
US11803668B2 (en) * 2021-07-30 2023-10-31 Nvidia Corporation Isolating a region of a system on a chip for safety critical operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0703663A1 (en) * 1994-09-21 1996-03-27 STMicroelectronics S.r.l. Programmable digital delay unit
CN102684651A (zh) * 2012-05-25 2012-09-19 华为技术有限公司 用于数字电路的信号延迟方法、装置及数字电路系统
CN103092255A (zh) * 2011-11-03 2013-05-08 辉达公司 无毛刺可编程时钟整形器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3319340B2 (ja) * 1997-05-30 2002-08-26 日本電気株式会社 半導体回路装置
US5923197A (en) * 1997-07-31 1999-07-13 Credence Systems Corporation Pulse stuffing circuit for programmable delay line
US6043677A (en) * 1997-10-15 2000-03-28 Lucent Technologies Inc. Programmable clock manager for a programmable logic device that can implement delay-locked loop functions
KR100266679B1 (ko) * 1998-04-16 2000-09-15 김영환 디램용 펄스발생회로
US20030053574A1 (en) * 1999-12-28 2003-03-20 Shai Cohen Adaptive sampling
JP4986318B2 (ja) * 2000-08-28 2012-07-25 ルネサスエレクトロニクス株式会社 半導体装置
US7250800B2 (en) * 2005-07-12 2007-07-31 Hewlett-Packard Development Company, L.P. Clock pulse width control circuit
CN201113942Y (zh) * 2007-08-03 2008-09-10 核工业理化工程研究院 脉冲延迟信号发生器
CN102771049A (zh) * 2010-03-26 2012-11-07 古河电气工业株式会社 延迟控制装置
WO2013076524A1 (en) * 2011-11-21 2013-05-30 Freescale Semiconductor, Inc. Clock signal generator module, integrated circuit, electronic device and method therefore

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0703663A1 (en) * 1994-09-21 1996-03-27 STMicroelectronics S.r.l. Programmable digital delay unit
CN103092255A (zh) * 2011-11-03 2013-05-08 辉达公司 无毛刺可编程时钟整形器
CN102684651A (zh) * 2012-05-25 2012-09-19 华为技术有限公司 用于数字电路的信号延迟方法、装置及数字电路系统

Also Published As

Publication number Publication date
EP3192171B1 (en) 2020-03-11
EP3192171A1 (en) 2017-07-19
CN106688182A (zh) 2017-05-17
KR102263674B1 (ko) 2021-06-09
US9118310B1 (en) 2015-08-25
JP6602849B2 (ja) 2019-11-06
WO2016039814A1 (en) 2016-03-17
JP2017532850A (ja) 2017-11-02
KR20170051490A (ko) 2017-05-11

Similar Documents

Publication Publication Date Title
US7583103B2 (en) Configurable time borrowing flip-flops
US7548089B1 (en) Structures and methods to avoiding hold time violations in a programmable logic device
US7872512B2 (en) Robust time borrowing pulse latches
KR102400967B1 (ko) 집적 회로 내에서 파워를 제어하기 위한 회로들 및 방법들
US20150295579A1 (en) System Reset Controller Replacing Individual Asynchronous Resets
CN111512552B (zh) 使用可编程控制电路选择性地提供时钟信号
US20170373692A1 (en) Circuit for and method of implementing a scan chain in programmable resources of an integrated circuit
US7724028B1 (en) Clocking for a hardwired core embedded in a host integrated circuit device
CN106688182B (zh) 可编程延迟电路块
US7239173B1 (en) Programmable memory element with power save mode in a programmable logic device
US9007110B1 (en) Register circuits and methods of storing data in a register circuit
US9577615B1 (en) Circuits for and methods of reducing duty-cycle distortion in an integrated circuit implementing dual-edge clocking
US8988125B1 (en) Circuits for and methods of routing signals in an integrated circuit
US10049177B1 (en) Circuits for and methods of reducing power consumed by routing clock signals in an integrated
US10541686B1 (en) Circuit and method for ensuring a stable IO interface during partial reconfiguration of a reprogrammable integrated circuit device
US10979034B1 (en) Method and apparatus for multi-voltage domain sequential elements
US9729153B1 (en) Multimode multiplexer-based circuit
US7535789B1 (en) Circuits and methods of concatenating FIFOs
US10069486B1 (en) Multimode registers with pulse latches
US20150162918A1 (en) Digital output clock generation
US7683666B1 (en) Circuit component with programmable characteristics and method of operating same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant