CN114691583A - 用于将源同步数据路径与未知时钟相位对接的数据桥 - Google Patents
用于将源同步数据路径与未知时钟相位对接的数据桥 Download PDFInfo
- Publication number
- CN114691583A CN114691583A CN202111638418.1A CN202111638418A CN114691583A CN 114691583 A CN114691583 A CN 114691583A CN 202111638418 A CN202111638418 A CN 202111638418A CN 114691583 A CN114691583 A CN 114691583A
- Authority
- CN
- China
- Prior art keywords
- clock signal
- subsystem
- clock
- signal
- rising edge
- 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.)
- Pending
Links
- 230000001360 synchronised effect Effects 0.000 title abstract description 3
- 230000000630 rising effect Effects 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims description 35
- 230000000295 complement effect Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 4
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 58
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 58
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 38
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 29
- 101100328957 Caenorhabditis elegans clk-1 gene Proteins 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 13
- 238000004891 communication Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/135—Arrangements 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
Abstract
本公开的实施例涉及用于将源同步数据路径与未知时钟相位对接的数据桥。集成电路包括第一子系统,第一子系统包括被配置为生成第一时钟信号的第一时钟发生器。集成电路还包括第二子系统,第二子系统包括被配置为生成第二时钟信号的第二时钟发生器。第一子系统包括时钟边沿选择器,时钟边沿选择器被配置为确定在第一时钟信号和第二时钟信号之间的相位差并且基于相位差,选择第二时钟信号的上升边沿或下降边沿来控制从第一子系统输出到第二子系统的数据。
Description
技术领域
本公开涉及集成电路,并且更具体地涉及在集成电路的子系统之间的通信。
背景技术
片上系统(SoC)包括在单个集成电路中实现的多个子系统。在某些情况下,SoC的一个子系统被配置为向SoC的第二子系统提供数据。有效地管理此类通信可能很困难。
图1图示了集成电路100的一个示例。集成电路100是SoC。集成电路100包括第一子系统102和第二子系统104。第一子系统102被配置为向第二子系统104输出数据。第一子系统102对第一时钟信号CLK1进行操作。第二子系统104对第二时钟信号CLK2进行操作。
存在影响在第一子系统102和第二子系统104之间的通信时序的各种复杂情况。例如,在处理和传输来自第一子系统104的数据时可能存在某些延迟,而在第二子系统104中处理和接收数据时可能存在某些其他延迟。附加地,第一时钟信号和第二时钟信号可能彼此异相到未知程度。这些因素使得难以根据第一时钟信号CLK1来从第一子系统102可靠地传输数据并且难以用第二时钟信号的期望周期在第二子系统处接收数据。如果这没有得到适当的管理,则第二子系统104的数据接收可能会出现延迟甚至故障。
确保从第一子系统102到第二子系统104的数据安全传输的一个可能解决方案是在第一子系统102和第二子系统104之间耦合先进先出(FIFO)缓冲器106。FIFO缓冲器106接收来自第一子系统102的第一时钟信号CLK1和来自第二子系统104的第二时钟信号CLK2。FIFO缓冲器106利用第一时钟信号CLK1来管理来自第一子系统102的数据接收。FIFO 106利用第二时钟信号CLK2来管理输出到第二子系统104的数据。
虽然该解决方案确保第一子系统102和第二子系统104之间数据的安全传输,但是存在一些缺点。例如,FIFO106在集成电路上占用较大的面积。此外,FIFO 106消耗大量功率。
在背景部分中讨论的所有主题不一定是现有技术,并且不应仅仅因为其在背景部分中的讨论而被假定为现有技术。按照这些思路,除非明确声明为现有技术,否则对背景部分中讨论的或与此类主题相关的现有技术中的问题的任何认识不应被视为现有技术。相反,背景部分中任何主题的讨论都应被视为发明人解决特定问题的方法的一部分,其本身也可能具有创造性。
发明内容
本公开的实施例提供了具有子系统的片上系统,除了信号线、导电插头和其他无源电连接器之外,子系统可以在无需中介电路的情况下彼此通信。这通过检测在发送子系统和接收子系统的时钟信号之间的相位差来实现。本公开的实施例基于所检测的两个通信子系统的时钟信号之间的相位差来选择在时钟信号的上升边沿还是下降边沿从发送子系统发送数据。
在一个实施例中,第一子系统向第二子系统传输数据。第一子系统生成第一时钟信号。第二子系统生成第二时钟信号。第一子系统从第二子系统接收第二时钟信号。第一子系统确定第一和第二时钟信号之间的相位差。第一子系统根据所检测的第一和第二时钟信号之间的相位差,在第二时钟信号的上升边沿或第二时钟信号的下降边沿上将数据选择性地传输到第二子系统。
在一个实施例中,第一子系统从第一时钟信号生成第一相位信号和第二相位信号。第一和第二相位信号具有与第一时钟信号相同的频率,但是每个相位信号与第一时钟信号异相到选定程度。第一相位信号的上升边沿出现在第一时钟信号的上升边沿之前的选定时间量。第二相位信号的上升边沿出现在第一时钟信号的上升边沿之后的选定时间量。第一和第二相位信号的上升边沿限定了边沿检测窗口。第一子系统检测第二时钟信号的边沿是否出现在检测窗口内。第一子系统基于第二时钟信号的边沿是否出现在由第一相位信号和第二相位信号限定的检测窗口内来选择第二时钟信号的上升边沿或下降边沿进行数据传输。
附图说明
现在将仅以示例的方式参考附图。在附图中,相同的附图标记标识相似的元素或动作。然而,在一些附图中,可以使用不同的附图标记来指示相同或相似的元素。图中元素的尺寸和相对位置不一定按比例绘制。例如,各种元素的形状和角度不一定按比例绘制,其中一些元素可能会被放大和定位为改进附图的易读性。
图1是包括第一子系统和第二子系统的集成电路的示意图。
图2A是根据一个实施例的包括第一子系统和第二子系统的集成电路的示意图。
图2B和图2C是根据一个实施例的与第一和第二子系统相关联的信号的时序图。
图3是根据一个实施例的集成电路的第一子系统的示意图。
图4是根据一个实施例的集成电路的第一子系统的示意图。
图5是根据一个实施例的操作集成电路的方法的流程图。
图6是根据一个实施例的操作集成电路的方法的流程图。
具体实施方式
在以下描述中,阐述了某些特定细节来提供对各种公开实施例的透彻理解。然而,相关领域的技术人员将认识到,实施例可以在没有这些具体细节中的一个或多个的情况下,或者利用其他方法、组件、材料等来实践。在一些情况下,与集成电路相关联的众所周知的系统、组件和电路未详细示出或描述,以避免不必要地模糊实施例的描述。
除非上下文另有要求,否则在整个说明书和所附权利要求书中,词语“包括(comprise)”及其变型,诸如“包括了”和“包括有”应被解释为开放的、包容的意义,即“包括,但不限于。”此外,除非上下文另有明确规定,否则术语“第一”、“第二”和类似的顺序指示符将被解释为可互换的。
在整个说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
除非内容另有明确规定,否则在本说明书和所附权利要求书中使用的单数形式“一(a)”、“一个(an)”和“所述(the)”包括复数形式。还应注意,除非内容另有明确规定,否则术语“或者”通常以其最广泛的含义使用,即,表示“和/或”。
图2A是根据一个实施例的集成电路110的示意图。集成电路110包括第一子系统112和第二子系统114。第一子系统112向第二子系统114传输数据。如下文将更详细地阐述的,第一子系统112基于与第一子系统112和第二子系统114相关联的时钟信号之间的相位差,选择时钟信号的上升边沿或下降边沿来将数据传输到第二子系统114。
集成电路110是片上系统(SoC)。因此,集成电路110可以包括各种子系统,诸如:模数转换器(ADC)、数模转换器(DAC)、微处理器、存储器、存储器控制器、总线控制器、数字信号处理器、低压差分信号(LVDS)、无线接收器、无线发射器和其他类型的子系统。一些子系统向其他子系统提供数据。本公开的实施例有助于确保数据可以从一个子系统有效且高效地传输到另一子系统。虽然图2A仅图示了第一子系统112和第二子系统114,但是实际上,集成电路110可以包括大量子系统,诸如上述子系统或其他子系统。
第一子系统112包括第一时钟发生器116。第一时钟发生器116生成第一时钟信号CLK1。第一时钟发生器116可以包括压控振荡器、电流控制振荡器、环形振荡器或可以生成时钟信号的其他类型的振荡器。第一时钟发生器116可以从集成电路110的全局时钟信号生成第一时钟信号CLK1。在该情况下,集成电路110可以包括全局时钟发生器,诸如晶体振荡器或其他类型的时钟发生器,全局时钟发生器生成时钟信号的频率是各种子系统的时钟信号所基于的频率。因此,第一时钟发生器116可以接收全局时钟信号并且基于全局时钟信号而生成CLK1。第一时钟信号CLK1可以具有与全局时钟信号相同的频率。第一时钟信号CLK1可以是全局时钟信号。
第一时钟信号CLK1是执行第一子系统112的基本功能的时钟信号。图2A的框图仅图示了与向第二子系统114传输数据有关的第一子系统的各方面。实际上,第一子系统112包括与第一子系统的主功能相关联的其他电路装置。在第一子系统112是ADC的示例中,第一子系统112将包括在第一时钟信号的控制下,将模拟信号转换为数字信号的电路装置。为简单起见,图2A中未示出这样的电路装置。
第二子系统114包括第二时钟发生器124。第二时钟发生器124生成第二时钟信号CLK2。第二时钟发生器124可以包括压控振荡器、电流控制振荡器、环形振荡器或可以生成时钟信号的其他类型的振荡器。如关于第一时钟信号CLK1的生成所描述的,第二时钟发生器124可以从集成电路110的全局时钟信号生成第二时钟信号CLK2。第二时钟发生器124可以接收全局时钟信号并且基于全局时钟信号而生成CLK2。第二时钟信号CLK2可以具有与全局时钟信号相同的频率。第二时钟信号CLK2可以是全局时钟信号。
在一个实施例中,第一时钟信号CLK1和第二时钟信号CLK2具有相同的频率。然而,第一时钟信号CLK1和第二时钟信号CLK2彼此异相。最初,在第一时钟信号CLK1和第二时钟信号CLK2之间的相位差可能是未知的。相位差的幅度影响数据如何从第一子系统112发送并且被第二子系统114接收。如果没有基于相位差采取动作,则由于与传输和接收数据相关联的延迟,在传输和接收数据之间可能会浪费时钟周期。如下文将更详细地阐述的,第一子系统112检测CLK1和CLK2之间的相位差并且基于相位差来调整数据传输。
第一子系统112包括相位发生器118。相位发生器118从第一时钟发生器116接收第一时钟信号CLK1。相位发生器118根据第一时钟信号CLK1生成第一相位信号P1和第二相位信号P2。第一相位信号P1和第二相位信号P2也是与第一时钟信号CLK1具有相同频率的时钟信号。
相位发生器118生成第一时钟信号P1,第一时钟信号P1相对于第一时钟信号CLK1具有第一选定相位差。相位发生器118生成第二时钟信号P2,第二时钟信号P2相对于第一时钟信号CLK1具有第二选定相位差。第一选定相位差和第二选定相位差限定了相对于第一时钟信号CLK1的上升边沿的时序窗口。时序窗口对应于第一相位信号P1的上升边沿与第二相位信号P2的上升边沿之间的时间。第一时钟信号的上升边沿发生在第一相位信号P1的上升边沿之后并且在第二相位信号P2的上升边沿之前。在第一子系统112的其他组件的基本描述之后,如下更详细地描述选择第一选定相位差和第二选定相位差的基础。
相位发生器118可以包括一个或多个锁相环(PLL),用于从第一时钟信号CLK1生成第一相位信号P1和第二相位信号P2。虽然相位发生器118的第一时钟发生器116被示为不同的组件,但是实际上,第一时钟发生器116和相位发生器118可以是单个组件。例如,生成第一时钟信号CLK1的电路也可以生成相位信号P1和P2。第一时钟发生器116可以是接收全局时钟信号、使用全局时钟信号作为第一时钟信号CLK1、以及从第一时钟信号CLK1生成第一和第二相位信号P1和P2的电路。
第一子系统112包括数据输出电路装置122。数据输出电路装置122向第二子系统114输出数据。在第一子系统是ADC的示例中,数据输出电路装置122接收从模拟信号转换的数字数据并且将数字数据提供给第二子系统114。
数据输出电路装置122包括多个逻辑电路,多个逻辑电路接收第一子系统112的数据并且将数据输出到第二子系统114。存在与数据输出电路装置122的逻辑电路相关联的延迟。
在一个示例中,数据输出电路装置122包括触发器,触发器各自包括时钟端子、数据输入端子和数据输出端子。在输入端子处接收的数据通常在输入端子处接收的时钟信号的下一上升边沿时被提供给输出端子。但是,存在与触发器相关联的建立延迟。存在当数据到达触发器的输入端子时由输入端子完全接收数据的小建立时间。如果时钟信号的上升边沿发生在数据到达输入端子之后,但在建立时间消逝之前,则该数据将不会被传递到触发器的输出端子,直到时钟信号的下一上升边沿为止。因此,与数据输入端子相关联的建立时间是信号传输延迟的来源。此外,存在与在时钟信号的上升边沿之后,将数据从输入端子传递到输出端子相关联的附加延迟。
第二子系统114包括数据输入电路装置126。数据输入电路装置126从第一子系统112的数据输出电路装置122接收数据。数据输入电路装置126还包括从第一子系统112的数据输出电路装置122接收和处理数据的逻辑电路。存在与数据输入电路装置126的逻辑电路相关联的延迟。
在一个示例中,数据输入电路装置126的逻辑电路包括多个触发器。如先前关于数据输出电路装置122的触发器所描述的,存在与在数据输入电路装置的触发器的输入端子处接收数据相关联的延迟。具体地,先前描述的建立延迟也是数据输出电路装置126的触发器中的一个因素。如果在数据到达触发器的输入端子之后、但是在与数据输入端子相关联的设置时间已消逝之前,第二时钟信号的上升边沿在触发器的时钟端子处被接收,则数据值将不会被传递到触发器,直到时钟信号的下一上升边沿为止。因此,如果控制数据输出电路装置122和数据输入电路装置126两者的触发器的时钟信号未被仔细管理,则整个时钟信号可能丢失。
返回到第一子系统112的数据输出电路装置122,根据第一时钟信号CLK1,数据被提供给数据输出电路装置122。在第一子系统112是ADC的示例中,模数转换根据第一时钟信号CLK1发生。因此,数字数据根据第一时钟信号被传递到数据输出电路装置122。这意味着数据将根据第一时钟信号的上升边沿而到达数据输出电路装置122的触发器的输入端子。
然而,提供给数据输出电路装置122的触发器的时钟信号是第二时钟信号CLK2(或者如下文将更详细解释的,CLK2的逻辑补码)。因此,数据基于第一时钟信号CLK1的上升边沿而到达数据输出电路装置122的触发器的输入端子,但是数据基于第二时钟信号CLK2从触发器的输入端子被传递到触发器的输出端子。由于如上所述与数据输出电路装置122和数据输入电路装置126相关联的延迟,如果第二时钟信号CLK2的上升边沿发生得太靠近第一时钟信号CLK1的上升边沿,假设数据输入电路装置122的触发器由第二时钟信号的上升边沿管理,则数据将不在第二时钟信号的相同周期内在数据输入电路装置126处被接收并处理。
有利地,第一子系统112利用时钟边沿选择器120来确定第二时钟信号的上升边沿是否太靠近第一时钟信号的上升边沿。如果第二时钟信号的上升边沿太靠近第一时钟信号的上升边沿,则时钟边沿选择器120选择第二时钟信号的下降边沿来控制数据输出电路装置122的触发器。时钟边沿选择器120从第二子系统114接收第二时钟信号CLK2。时钟边沿选择器120还从相位发生器118接收第一时钟信号CLK1、第一相位信号P1和第二相位信号P2。如上所述,P1的上升边沿和P2的上升边沿之间的时间限定了时序窗口,其中CLK1的上升边沿发生在时序窗口期间。如果CLK2的上升边沿发生在时序窗口内,则时钟边沿选择器120选择CLK2的下降边沿来管理数据输出电路装置122的触发器。如果CLK2的上升边沿发生在时序窗口外,则时钟边沿选择器120选择CLK2的上升边沿来控制数据输出电路装置122的触发器。在不脱离本公开的范围的情况下,可以使用其他指标来选择第二时钟信号CLK2的上升边沿或下降边沿。
在一个实施例中,时钟边沿选择器120接收第二时钟信号CLK2并且生成互补第二时钟信号CLK2N。CLK2N是CLK2的逻辑补码。CLK2N与CLK2具有相同的频率。当CLK2为高时,CLK2N为低。当CLK2为低时,CLK2N为高。当时钟边沿选择器120确定CLK2的上升边沿应管理数据输出电路装置122时,时钟边沿选择器120将CLK2提供给数据输出电路装置122。当时钟边沿选择器120确定CLK2的下降边沿应管理数据输出电路装置122时,时钟边沿选择器120将CLK2N提供给数据输出电路。因为CLK2N的上升边沿发生在CLK2的下降边沿处,所以向数据输出电路装置122提供CLK2N对应于利用CLK2的下降边沿来管理数据输出电路装置122。如前所述,数据输出电路装置122的触发器基于触发器接收的时钟信号的上升边沿使得数据从输入端子传送到输出端子。因此,如果触发器接收CLK2N作为时钟信号,则CLK2N的上升边沿控制触发器。因为CLK2N是CLK的逻辑补码,这对应于控制数据输出电路装置122的触发器的CLK2的下降边沿。
图2B是图示了根据一个实施例的时钟边沿选择器的原理的时序图。图2B图示了CLK1、P1、P2和CLK2。这些时钟信号中的每一个具有相同的频率。图2B还图示了感兴趣的时间点t1、t2、t3和t4。在时间t1处,相位信号P1的上升边沿204出现。在时间t3处,时钟信号202的上升边沿出现。在时间t4处,相位信号P2的上升边沿206出现。P1的上升边沿204和P2的上升边沿206之间的时间段对应于用于确定是否CLK2的上升边沿还是下降边沿将控制数据输出电路装置122的时序窗口。
P1的上升边沿204在CLK 1的上升边沿202之前的时间长度t3-t1出现。该时间长度基于与数据输出电路装置122和数据输入电路装置126相关联的各种延迟来选择。P2的上升边沿206在CLK1的上升边沿202之后的时间长度t4-t3内出现。该时间长度基于与数据输出电路装置122和数据输入电路装置126相关联的各种延迟来选择。如前所述,如果CLK2的上升边沿发生得太靠近CLK1的上升边沿202,则如果数据输入电路装置122由CLK2的上升边沿管理,数据将不会在数据输入电路装置126内被处理,直到CLK2的下一周期之后。时序窗口t4-t1限定了如果CLK2的上升边沿出现,则CLK2的下降边沿应被用于控制数据输出电路装置122的时间段。
在图2B中,CLK2的上升边沿208出现在时间t2处。这是在时间窗口t4-t1内。因此,在该情况下,时钟边沿选择器120将选择CLK2的下降边沿来控制数据输出电路装置122。这意味着时钟边沿选择器120将向数据输出电路装置122输出CLK2N。
图2C是根据一个实施例的与时钟边沿选择器120相关联的信号的时序图。在图2C中,信号CLK1、P1和P2与图2B中的信号相同。然而,在图2C中,CLK2的相位与图2B中的不同,以提供附加示例。在图2C中,时间t1对应于P1的上升边沿204,t2对应于CLK1的上升边沿202,t3对应于P2的上升边沿206。t4对应于CLK2的上升边沿208。在图2C中,时序窗口对应于t1-t3,与图2B中的t1-t4具有相同时间长度。
在图2C中,CLK2的上升边沿208出现在由P1和P2的上升边沿204和208限定的时序窗口之外。这意味着CLK2的上升边沿距离CLK1的上升边沿202足够远,因此CLK2的上升边沿可以被用来控制数据输出电路装置122。因此,时钟边沿选择器120将提供CLK2作为时钟信号来控制数据输出电路装置122。在一个示例中,这意味着时钟边沿选择器120将向数据输出电路装置122的触发器的时钟端子提供CLK2。
在一个实施例中,如果时钟边沿选择器120在由P1和P2限定的时序窗口内检测到CLK2的上升边沿或下降边沿,则时钟边沿选择器120将向数据输出电路装置122提供CLK2N。
图3是根据一个实施例的集成电路的第一子系统112的示意图。图3的第一子系统112是图2的第一子系统112的一个示例。第一子系统112包括时钟发生器116、相位发生器118、时钟边沿选择器120和数据输出电路120。时钟发生器116生成如前所述的第一时钟信号CLK1。如前所述,相位发生器118从第一时钟信号CLK1生成相位信号P1和P2。
时钟边沿选择器120包括比较电路130。比较电路130接收第一时钟信号CLK1、相位信号P1以及相位信号P2。比较电路130还从第二子系统114接收第二时钟信号CLK2N。比较电路130执行比较来确定CLK2的上升边沿是否出现在由P1和P2的上升边沿所限定的时序窗口内,其中CLK1的上升边沿发生在P1之后和P2之前。比较电路130输出指示CLK2的上升边沿是否出现在时序窗口内的一个或多个数据信号。
在一个实施例中,比较电路130为信号P1、P2、CLK1和CLK2中的每个信号输出二进制数据值。如果值为1对应于高信号且值为0对应于低信号,则时序窗口对应于P1值为1且P0值为0的时间段。如果CLK2的值在这时间段期间的任一点处从0转变为1,则选择发生器132输出选择信号SEL,选择信号SEL指示CLK2的下降边沿应控制数据输出电路120。如果CLK2的值针对时序窗口整体为0或针对时序窗口整体为1,则选择发生器132输出指示CLK2应被提供给数据输出电路120的选择信号SEL。在不脱离本公开的范围的情况下,可利用许多方案来检测CLK2的上升边沿是否发生在时序窗口内。此外,如前所述,在一些实施例中,如果CLK2的上升边沿或下降边沿发生在时序窗口内,则CLK2N可以被提供给数据输出电路装置122。
时钟边沿选择器120还包括反相器134和多路复用器136。反相器134的输入是第二时钟信号CLK2。反相器134的输出被提供给多路复用器136的输入之一。反相器134的输出是互补的第二时钟信号CLK2N。多路复用器136的另一输入接收第二时钟信号CLK2。多路复用器136还包括确定两个输入中的哪一个输入将被提供给输出的控制端子。控制端子接收来自选择发生器132的选择信号SEL。来自比较电路130的选择信号SEL的值确定多路复用器是否输出CLK2或CLK2N。
数据输出电路装置122包括多个触发器138。触发器各自包括数据输入端子D、数据输出端子Q和时钟输入端子CLK。数据输入端子D从子系统112的初级电路(未示出)接收数据。在子系统112是模数转换器的示例中,数据输入端子D从模数转换电路接收数据,模数转换电路由第一时钟信号CLK1控制。
每个触发器的时钟输入端子CLK被连接到多路复用器136的输出。因此,根据选择信号SEL的值,触发器138在时钟输入端子CLK上接收CLK2或CLK2N。对于每个触发器138,当时钟端子CLK变高时,D处存在的任何数据值都将被提供给输出端子Q,经受如前所述的设置延迟。如果多路复用器136输出CLK2,则CLK2的上升边沿控制触发器138。如果多路复用器136输出CLK2N,则CLK2的下降边沿控制触发器138。这是因为CLK2N的上升边沿控制触发器138。CLK2N的上升边沿对应于CLK2的下降边沿,因为CLK2N是基于反相器134的功能的CLK2的逻辑补码。数据输出端子Q被连接到第二子系统114的数据输入电路装置126的触发器的数据输入端子。
图4是根据一个实施例的第一子系统112的示意图。图4的第一子系统112基本上类似于图3的第一子系统112,不同之处在于图4的子系统112包括触发器140。触发器140可以被称为影子触发器。每个触发器140的数据输入端子D从对应触发器138的数据输出端子Q接收数据。触发器140各自在时钟输入端子CLK上接收第二时钟信号CLK2。
在图4中,触发器138由CLK2的上升边沿或下降边沿来选择性地控制并且将数据输出到触发器140。触发器140由CLK2的上升边沿控制。触发器140将数据输出到第二子系统114的数据输入电路装置126的对应触发器。
图5是根据一个实施例的用于操作集成电路的方法500的流程图。在502处,方法500包括利用集成电路的第一子系统来生成第一时钟信号。在504处,方法500包括利用集成电路的第二子系统来生成第二时钟信号。在506处,方法500包括确定第一时钟信号和第二时钟信号之间的相位差。在508处,方法500包括基于相位差,利用第二时钟信号的上升边沿或第二时钟信号的下降边沿来控制从第一子系统到第二子系统的数据传输。
图6是根据一个实施例的用于控制集成电路的方法600的流程图。在602处,方法600包括利用集成电路的第一子系统来生成第一时钟信号。在604处,方法600包括利用集成电路的第二子系统来生成第二时钟信号。在606处,方法600包括利用第一子系统来生成互补第二时钟信号,互补第二时钟信号是第二时钟信号的逻辑补码。在608处,方法600包括检测第二时钟信号和第一时钟信号之间的相位差。在610处,方法600包括基于相位差,利用第二时钟信号或互补第二时钟信号来选择性地控制第一子系统的数据输出电路。
在一个实施例中,方法包括:利用集成电路的第一子系统来生成第一时钟信号并且利用集成电路的第二子系统来生成第二时钟信号。方法包括:确定第一时钟信号和第二时钟信号之间的相位差,并且基于相位差,利用第二时钟信号的上升边沿或第二时钟信号的下降边沿来控制数据从第一子系统到第二子系统的传输。
在一个实施例中,集成电路包括第一子系统,第一子系统包括被配置为生成第一时钟信号的第一时钟发生器以及与第一时钟发生器耦合的时钟边沿选择器。集成电路包括第二子系统,第二子系统包括被配置为生成第二时钟信号的第二时钟发生器。时钟边沿选择器被配置为确定第一时钟信号和第二时钟信号之间的相位差,并且基于相位差,选择第二时钟信号的上升边沿或下降边沿来控制从第一子系统到第二子系统的数据输出。
在一个实施例中,方法包括利用集成电路的第一子系统来生成第一时钟信号、利用集成电路的第二子系统来生成第二时钟信号以及利用第一子系统来生成互补第二时钟信号,互补第二时钟信号是第二时钟信号的逻辑补码。方法包括检测第二时钟信号和第一时钟信号之间的相位差并且基于相位差,利用第二时钟信号或第二互补时钟信号来选择性地控制第一子系统的数据输出电路。
上述各种实施例可以被组合来提供进一步的实施例。根据以上详细描述,可以对实施例进行这些和其他改变。一般而言,在所附权利要求中,所使用的术语不应被解释为将权利要求限于说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这样的权利要求所要求保护的等同物的全部范围。因此,权利要求不受本公开内容的限制。
Claims (20)
1.一种方法,包括:
利用集成电路的第一子系统来生成第一时钟信号;
利用所述集成电路的第二子系统来生成第二时钟信号;
确定在所述第一时钟信号与所述第二时钟信号之间的相位差;以及
基于所述相位差来选择所述第二时钟信号的边沿;以及
利用所述第二时钟信号的选定边沿来控制从所述第一子系统到所述第二子系统的数据传输。
2.根据权利要求1所述的方法,还包括:
利用所述第一子系统来生成第一相位信号,所述第一相位信号具有与所述第一时钟信号相同的频率以及相对于所述第一时钟信号的第一选定相位差;以及
利用所述第一子系统来生成第二相位信号,所述第二相位信号具有与所述第一时钟信号相同的所述频率以及相对于所述第一时钟信号的第二选定相位差。
3.根据权利要求2所述的方法,还包括通过标识所述第二时钟信号的上升边沿是否出现在所述第一相位信号的上升边沿与所述第二相位信号的上升边沿之间来确定所述相位差。
4.根据权利要求3所述的方法,还包括通过标识所述第二时钟信号的上升边沿和所述第一时钟信号的上升边沿是否出现在所述第一相位信号的上升边沿与所述第二相位信号的上升边沿之间来确定所述相位差。
5.根据权利要求4所述的方法,还包括如果所述第二时钟信号的上升边沿没有出现在所述第一相位信号的上升边沿与所述第二相位信号的上升边沿之间,则利用所述第二时钟信号的上升边沿来控制传输。
6.根据权利要求5所述的方法,其中利用所述第二时钟信号的上升边沿来控制数据传输包括将所述第二时钟信号提供给所述第一子系统的触发器的时钟输入端子。
7.根据权利要求5所述的方法,还包括如果所述第二时钟信号的上升边沿出现在所述第一相位信号的上升边沿与所述第二相位信号的上升边沿之间,则利用所述第二时钟信号的下降边沿来控制传输。
8.根据权利要求7所述的方法,其中利用所述第二时钟信号的上升边沿来控制数据传输包括向所述第一子系统的触发器的时钟输入端子提供互补第二时钟信号,其中所述互补第二时钟信号是所述第二时钟信号的逻辑补码。
9.根据权利要求8所述的方法,其中生成所述互补第二时钟信号包括将所述第二时钟信号提供给反相器。
10.根据权利要求8所述的方法,还包括将所述第二时钟信号和所述互补第二时钟信号提供给多路复用器。
11.根据权利要求10所述的方法,其中选择性地控制数据传输包括从所述多路复用器输出所述第二时钟信号或所述互补第二时钟信号。
12.一种集成电路,包括:
第一子系统,包括:
第一时钟发生器,被配置为生成第一时钟信号;以及
时钟边沿选择器,被耦合到所述第一时钟发生器;以及第二子系统,包括:
第二时钟发生器,被配置为生成第二时钟信号,所述时钟边沿选择器被配置为确定在所述第一时钟信号与所述第二时钟信号之间的相位差,并且基于所述相位差,选择所述第二时钟信号的上升边沿或下降边沿来控制从所述第一子系统到所述第二子系统的数据输出。
13.根据权利要求12所述的集成电路,其中所述第一子系统还包括相位发生器,所述相位发生器被配置为从所述第一时钟信号生成与所述第一时钟信号具有第一选定相位差的第一相位信号以及与所述第一时钟信号具有第二选定相位差的第二相位信号。
14.根据权利要求13所述的集成电路,其中所述时钟边沿选择器通过将所述第二时钟信号与所述第一相位信号以及所述第二相位信号进行比较来确定所述相位差。
15.根据权利要求12所述的集成电路,还包括多个触发器,所述多个触发器与所述时钟边沿选择器耦合,其中所述时钟边沿选择器被配置为将所述第二时钟信号反相来生成互补第二时钟信号,其中所述时钟边沿选择器被配置为基于所述相位差,向所述触发器提供所述第二时钟信号或所述互补第二时钟信号。
16.一种方法,包括:
利用集成电路的第一子系统来生成第一时钟信号;
利用所述集成电路的第二子系统来生成第二时钟信号;
利用所述第一子系统来生成互补第二时钟信号,所述互补第二时钟信号是所述第二时钟信号的逻辑补码;
检测在所述第二时钟信号与所述第一时钟信号之间的相位差;以及
基于所述相位差,利用所述第二时钟信号或所述互补第二时钟信号来选择性地控制所述第一子系统的数据输出电路装置。
17.根据权利要求16所述的方法,其中选择性地控制数据输出电路装置包括:基于所述相位差,向所述第一子系统的第一触发器的时钟端子选择性地提供所述第二时钟信号或所述互补第二时钟信号。
18.根据权利要求17所述的方法,还包括:
将数据从所述第一触发器传递到所述第一子系统的第二触发器;以及
将所述第二时钟信号提供给所述第二触发器的时钟端子。
19.根据权利要求18所述的方法,还包括将所述数据从所述第二触发器传递到所述第二子系统。
20.根据权利要求19所述的方法,还包括:
利用所述第二子系统的所述数据输入电路装置来接收所述数据;以及
利用所述第二时钟信号来控制所述数据输入电路装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063132297P | 2020-12-30 | 2020-12-30 | |
US63/132,297 | 2020-12-30 | ||
US17/548,101 | 2021-12-10 | ||
US17/548,101 US20220206987A1 (en) | 2020-12-30 | 2021-12-10 | Data bridge for interfacing source synchronous datapaths with unknown clock phases |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691583A true CN114691583A (zh) | 2022-07-01 |
Family
ID=82118317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111638418.1A Pending CN114691583A (zh) | 2020-12-30 | 2021-12-29 | 用于将源同步数据路径与未知时钟相位对接的数据桥 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220206987A1 (zh) |
CN (1) | CN114691583A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030174003A1 (en) * | 2001-05-30 | 2003-09-18 | Kazutaka Nogami | Semiconductor integrated circuit |
US7119582B2 (en) * | 2004-07-23 | 2006-10-10 | Hewlett-Packard Development Company, Lp. | Phase detection in a sync pulse generator |
CN104639118A (zh) * | 2013-11-08 | 2015-05-20 | 瑞士优北罗股份有限公司 | 时钟信号之间的相位对齐 |
US9479182B1 (en) * | 2015-07-02 | 2016-10-25 | Integrated Device Technology, Inc. | Methods and apparatus for synchronizing operations using separate asynchronous signals |
CN107733428A (zh) * | 2016-08-12 | 2018-02-23 | 三星电子株式会社 | 延迟锁定环电路、集成电路和用于控制它的方法 |
CN108292923A (zh) * | 2015-11-30 | 2018-07-17 | 索尼半导体解决方案公司 | 相位检测器、相位同步电路以及控制相位同步电路的方法 |
CN109217951A (zh) * | 2018-09-07 | 2019-01-15 | 深圳市紫光同创电子有限公司 | 一种基于fpga的传输延时测试方法及装置 |
CN110661525A (zh) * | 2018-06-29 | 2020-01-07 | 英特尔公司 | 通过互连桥对可配置集成电路管芯的时钟进行同步的设备 |
-
2021
- 2021-12-10 US US17/548,101 patent/US20220206987A1/en active Pending
- 2021-12-29 CN CN202111638418.1A patent/CN114691583A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030174003A1 (en) * | 2001-05-30 | 2003-09-18 | Kazutaka Nogami | Semiconductor integrated circuit |
US7119582B2 (en) * | 2004-07-23 | 2006-10-10 | Hewlett-Packard Development Company, Lp. | Phase detection in a sync pulse generator |
CN104639118A (zh) * | 2013-11-08 | 2015-05-20 | 瑞士优北罗股份有限公司 | 时钟信号之间的相位对齐 |
US9479182B1 (en) * | 2015-07-02 | 2016-10-25 | Integrated Device Technology, Inc. | Methods and apparatus for synchronizing operations using separate asynchronous signals |
CN108292923A (zh) * | 2015-11-30 | 2018-07-17 | 索尼半导体解决方案公司 | 相位检测器、相位同步电路以及控制相位同步电路的方法 |
CN107733428A (zh) * | 2016-08-12 | 2018-02-23 | 三星电子株式会社 | 延迟锁定环电路、集成电路和用于控制它的方法 |
CN110661525A (zh) * | 2018-06-29 | 2020-01-07 | 英特尔公司 | 通过互连桥对可配置集成电路管芯的时钟进行同步的设备 |
CN109217951A (zh) * | 2018-09-07 | 2019-01-15 | 深圳市紫光同创电子有限公司 | 一种基于fpga的传输延时测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220206987A1 (en) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10133692B2 (en) | Device including a single wire interface and a data processing system having the same | |
US8994425B2 (en) | Techniques for aligning and reducing skew in serial data signals | |
US8837639B2 (en) | Parallel synchronizing cell with improved mean time between failures | |
US6320436B1 (en) | Clock skew removal apparatus | |
JPH07253947A (ja) | データ通信装置 | |
WO2005013546A1 (ja) | クロック乗換装置、及び試験装置 | |
CN110311659B (zh) | 一种触发器及集成电路 | |
US6949955B2 (en) | Synchronizing signals between clock domains | |
US8644439B2 (en) | Circuits and methods for signal transfer between different clock domains | |
US8593313B2 (en) | Parallel-to-serial conversion circuit, information processing apparatus, information processing system, and parallel-to-serial conversion method | |
US20090271651A1 (en) | Method and System for Reducing Latency in Data Transfer Between Asynchronous Clock Domains | |
US20040250180A1 (en) | Input/output circuit and semiconductor integrated circuit | |
US7500132B1 (en) | Method of asynchronously transmitting data between clock domains | |
US8975921B1 (en) | Synchronous clock multiplexer | |
US20230367361A1 (en) | Asynchronous asic | |
CN113258904A (zh) | 具有减小的回路延迟的串行数据接口 | |
CN114691583A (zh) | 用于将源同步数据路径与未知时钟相位对接的数据桥 | |
US11921537B2 (en) | Method and circuit for calibration of high-speed data interface | |
US20190007056A1 (en) | Frequency divider circuit, demultiplexer circuit, and semiconductor integrated circuit | |
US20120033772A1 (en) | Synchroniser circuit and method | |
US20230259158A1 (en) | Low overhead mesochronous digital interface | |
CN116594468A (zh) | 低开销均步数字接口 | |
US8204166B2 (en) | Clock circuit with clock transfer capability and method | |
US10346331B2 (en) | Method and apparatus for data detection and event capture | |
EP3739463B1 (en) | Circuit for asynchronous data transfer |
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 |