CN112148655B - 多位数据跨时钟域的处理方法及装置 - Google Patents
多位数据跨时钟域的处理方法及装置 Download PDFInfo
- Publication number
- CN112148655B CN112148655B CN201910578841.3A CN201910578841A CN112148655B CN 112148655 B CN112148655 B CN 112148655B CN 201910578841 A CN201910578841 A CN 201910578841A CN 112148655 B CN112148655 B CN 112148655B
- Authority
- CN
- China
- Prior art keywords
- data
- clock domain
- receiving
- domain side
- output
- 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
- 238000003672 processing method Methods 0.000 title abstract description 5
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims description 48
- 238000001514 detection method Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 28
- 230000003993 interaction Effects 0.000 abstract description 6
- 230000002457 bidirectional effect Effects 0.000 abstract description 5
- 230000000630 rising effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000005070 sampling Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供了一种多位数据跨时钟域的处理方法及装置;其中,该方法包括:获取由发送时钟域侧输出到接收时钟域侧的数据,其中,所述发送时钟域与所述接收时钟域是不同的时钟域;检测所述数据是否发生变化;在所述数据发生变化的情况下,对所述数据进行更新后输出;在所述数据未发生变化的情况下,保持原输出数据。通过本发明,解决了相关技术中跨时钟域传输的处理方式中发送时钟域和接收时钟域需要双向交互导致硬件开销大,传输延迟高的问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种多位数据跨时钟域的处理方法及装置。
背景技术
在现代电子***中,数字集成电路***的规模越来越大,包含的模块越来越多,支持的功能越来越复杂,功耗的要求也越来越高。因此,现在SoC(System on Chip,片上***)通常包括多个时钟域,而时钟架构设计采用GALS形式,即全局异步(Global Asynchronous)处理和局部同步(Local Synchronous)处理。
GALS时钟架构具有很多优点,例如(1)在满足性能需求的前提下,各个模块可以分别运行在尽可能低的时钟频率下,动态功耗更小;(2)时钟实现相对容易,时钟树小,时序容易收敛,面积更小。
在GALS SoC中,不可避免会存在跨时钟域的数据传输。由于异步时钟之间的相位关系不确定,所以数据在由一个时钟域传输到另一个异步时钟域时,很容易出现寄存器的建立时间(setup time)或保持时间(hold time)不满足的情况,从而导致亚稳态(meta-stability)出现。亚稳态问题可能会导致传输数据被错误的采样,如果没有正确的处理,更严重的可能导致SoC***出现错误状态,从而无法正常工作,并且难以被定位。
对于单bit位信号,在跨时钟域传输时,通常采用两级寄存器同步的方式,以有效降低亚稳态出现的概率。即使出现亚稳态,单bit位信号采用两级同步处理后,不会出现错误的数据采样,仅仅只是改变了数据传输的延时。
对于多bit位信号,在跨时钟域传输时,不能仅仅只采用两级寄存器同步的方式。因为多bit位信号之间存在数据相关性(data coherency),即如果某一bit或多bit信号出现亚稳态时,则可能会采样到错误的中间数据,从而导致SoC***出现错误状态。
相关技术中,多bit位信号跨时钟域传输的处理方式有以下三种:1)使能信号同步方式;2)握手(Handshaking)交互方式;3)异步FIFO方式。相关技术中的上述方式,均需要发送时钟域和接收时钟域的控制信号双向交互,实现复杂,硬件开销大,传输延迟高。
针对相关技术中的上述问题,目前尚未存在有效的技术方案。
发明内容
本发明实施例提供了一种多位数据跨时钟域的处理方法及装置,以至少解决相关技术中跨时钟域传输的处理方式中发送时钟域和接收时钟域需要双向交互导致硬件开销大,传输延迟高的问题。
根据本发明的一个实施例,提供了一种多位数据跨时钟域的处理方法,包括:获取由发送时钟域侧输出到接收时钟域侧的数据,其中,所述发送时钟域与所述接收时钟域是不同的时钟域;检测所述数据是否发生变化;在所述数据发生变化的情况下,对所述数据进行更新后输出;在所述数据未发生变化的情况下,保持原输出数据。
根据本发明的另一个实施例,提供了一种多位数据跨时钟域的处理装置,包括:获取模块,用于获取由发送时钟域侧输出到接收时钟域侧的数据,其中,所述发送时钟域与所述接收时钟域是不同的时钟域;检测模块,用于检测所述数据是否发生变化;处理模块,用于在检测到所述数据发生变化的情况下,对所述数据进行更新后输出;在检测到所述数据未发生变化的情况下,保持原输出数据。
通过本申请,获取由发送时钟域侧输出到接收时钟域侧的数据,其中,发送时钟域与接收时钟域是不同的时钟域,进而检测数据是否发生变化在数据发生变化的情况下,对数据进行更新后输出;在数据未发生变化的情况下,保持原输出数据;可见,通过本申请的上述方式实现了发送时钟域与接收时钟域的相对独立的情况下对多位数据跨时钟域的数据进行处理,解决了相关技术中跨时钟域传输的处理方式中发送时钟域和接收时钟域需要双向交互导致硬件开销大,传输延迟高的问题,能够使用更多应用场景且整个实现方式高效简洁。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的多位数据跨时钟域的处理方法的流程图;
图2是根据本发明实施例的多位数据跨时钟域传输装置结构示意图;
图3是根据本发明实施例的多位数据跨时钟域传输的示意图;
图4是根据本发明实施例的各个关键处的信号波形示意图;
图5是根据本发明可选实施例的多位数据跨时钟域的处理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
在本实施例中提供了一种多位数据跨时钟域的处理方法,图1是根据本发明实施例的多位数据跨时钟域的处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取由发送时钟域侧输出到接收时钟域侧的数据,其中,发送时钟域与接收时钟域是不同的时钟域;
步骤S104,检测数据是否发生变化;
步骤S106,在数据发生变化的情况下,对数据进行更新后输出;在数据未发生变化的情况下,保持原输出数据。
通过上述步骤S102至步骤S106,获取由发送时钟域侧输出到接收时钟域侧的数据,其中,发送时钟域与接收时钟域是不同的时钟域,进而检测数据是否发生变化在数据发生变化的情况下,对数据进行更新后输出;在数据未发生变化的情况下,保持原输出数据;可见,通过本申请的上述方式实现了发送时钟域与接收时钟域的相对独立的情况下对多位数据跨时钟域的数据进行处理,解决了相关技术中跨时钟域传输的处理方式中发送时钟域和接收时钟域需要双向交互导致硬件开销大,传输延迟高的问题,能够使用更多应用场景且整个实现方式高效简洁。
需要说明的是,上述步骤S102至步骤S106的方法步骤均是在接收时钟域侧执行,即由接收时钟域侧的装置或设备执行,并未涉及发送时钟域侧。如在本实施例的可选实施方式中,对于本申请步骤S102中涉及到的获取由发送时钟域侧输出到接收时钟域侧的数据的方式,可以通过如方式来实现:
步骤S102-11,接收由发送时钟域侧的寄存器输出到接收时钟域侧的数据;
步骤S102-12,通过接收时钟域侧的N级数据同步器对数据进行同步处理,其中,N的取值由平均出现故障间隔时间决定。
可见,是在接收到发送时钟域侧输出的数据后,由接收时钟域侧数据同步器进行同步处理,即是在接收时钟域侧执行该步骤S102-11和步骤S102-12。
其中,该同步器的级数N由平均出现故障间隔时间(Mean Time Between Failure,MTBF)的要求而决定。
在公式(1)中,S为数据同步器预留给寄存器的决断时间。决断时间(resolutiontime)即寄存器因为建立或保持时间不满足进入亚稳态后,随机恢复到稳定值0或1的时间。数据同步器的级数N与S之间的关系如下式所示。
S=T·(N-1)
N≥2 公式(2)
在公式(2)中,T表示接收时钟域的时钟周期。例如,当N=2时,则S等于1个接收时钟的时钟周期;当N=3时,则S等于2个接收时钟的时钟周期。τ是与制程工艺相关的常数。W是寄存器建立时间和保持时间的和,与制程工艺相关。FC是接收时钟的频率。FD是发送数据的频率。综上,根据MTBF的要求,确定S值,从而确定数据同步器的级数N。
此外,在本实施例的另一个可选实施方式中,对于本申请步骤S104中涉及掉的检测数据是否发生变化的方式可以是:通过接收时钟域侧的变化检测器检测当前周期的数据与上一周期的数据比较是否发生变化,以确定接收到的数据是否发生变化。可见,也是通过接收时钟域侧的变化检测器进行检测的。
在本申请的另一个可选实施方式中,在数据发生变化的情况下,对数据进行更新后输出,包括:在数据发生变化的情况下,由接收时钟域侧的边沿检测器输出有效值,并触发接收时钟域侧的数据选择器输出更新后的数据;在数据未发生变化的情况下,保持原输出数据,包括:在数据发生变化的情况下,由接收时钟域侧的边沿检测器输出无效值,并触发数据选择器,保持原输出数据。可见,是通过接收时钟域侧边沿检测器进行数据的输出(包括更新后输出和保持原输出数据)。
需要说明的是,本申请的方法步骤还包括:在检测数据是否发生变化之后,通过接收时钟域侧的M级缓冲器对变化检测器输出的数据进行缓冲处理,其中,M≥N-1。
为了能够更加清楚的了解本案,下面将结合本案的可选实施方式对本申请进行举例说明;
本可选实施方式提供了一种新多位数据跨时钟域传输数字集成电路设计方法和装置,以实现数字集成电路中多位数据跨时钟域传输的需求。
图2是根据本发明实施例的多位数据跨时钟域传输装置结构示意图,如图2所示:发送时钟域(clock domain1)和接收时钟域(clock domain2)是不同的时钟域,时钟之间是异步关系。同时,发送时钟域和接收时钟域也可能是不同的电源域(power domain1和powerdomain2),或者是不同的电压域(voltage domain1和voltage domain2)。
从发送时钟域寄存器输出的发送数据进入到接收时钟域,被本发明专利所述的一种多位数据跨时钟域传输装置接收,并正确处理后,再提供于接收时钟域的功能逻辑电路使用。
其中,多位数据跨时钟域装置包括以下5个功能模块:数据同步器、变化检测器、缓冲器、边沿检测器和数据选择器。
该装置的整体工作流程(即信号处理流程)包括:
步骤S11,接收到的数据通过数据同步器进行同步处理;
步骤S12,利用变化检测器检测数据是否有变化;
步骤S13,如果接收数据有变化,变化检测器输出变化指示信号,经过缓冲器的缓冲,待多位数据稳定;
步骤S14,变化指示信号经过边沿检测器的处理,以指示数据选择器更新输出数据;
步骤S15,如果接收数据没有变化,则数据选择器保持原输出。
需啊哟说明的是,上述整个流程全部在接收时钟域进行,不涉及发送时钟域。
其中,装置中各个功能模块的说明如下。
数据同步器是一个与传输数据同位宽的两级或多级寄存器同步器,用于降低跨时钟域出现亚稳态的概率。该同步器的级数N由平均出现故障间隔时间(Mean Time BetweenFailure,MTBF)的要求而决定。
其中,S为数据同步器预留给寄存器的决断时间。决断时间(resolution time)即寄存器因为建立或保持时间不满足进入亚稳态后,随机恢复到稳定值0或1的时间。数据同步器的级数N与S之间的关系为:
S=T·(N-1)
N≥2
其中,T表示接收时钟域的时钟周期。例如,当N=2时,则S等于1个接收时钟的时钟周期;当N=3时,则S等于2个接收时钟的时钟周期。此外,τ是与制程工艺相关的常数。W是寄存器建立时间和保持时间的和,与制程工艺相关。FC是接收时钟的频率。FD是发送数据的频率。
因此,根据MTBF的要求,通过确定S值,从而确定数据同步器的级数N。需要注意的是,每一个发送数据需要至少保持N个接收时钟域的时钟周期后才能变化,以保证发送数据可以被正确采样,而不会丢失。
变化检测器是用于检测同步后的数据是否发生变化;如果当前周期的数据与上一个周期的数据相比存在变化,则变化检测器输出为有效值。如果当前周期的数据与上一个周期的数据相比没有变化,则变化检测器输出无效值。
缓冲器是用于对变化检测器的输出值进行寄存器缓冲处理,用于等待多位数据稳定,保持多位数据内各个bit之间的相关性,避免多位数据的中间态被错误采样。该缓冲器的缓冲级数M与数据同步器的级数N之间的关系为:M≥N-1
可选地,数据传输延迟(latency)为:latency=(N+M)·T
其中,Latency表示数据从输入到输出之间的时间间隔。当缓冲器的级数M等于数据同步器的级数N-1时,即可以保证在满足MTBF要求前提下,正确采样数据,并且传输延迟最优。
边沿检测器是用于检测缓冲器的输出是否发生变化;如果当前周期的信号与上一个周期的信号相比发生变化,则边沿检测器输出为有效值,并保持一个采样时钟周期。如果当前周期的信号与上一个周期的信号相比没有变化,则边沿检测器输出为无效值。
数据选择器是用于将边沿检测器的输出作为选择信号,对当前输入的多位数据和上一个有效的多位数据进行二选一的选择输出。当边沿检测器输出的选择信号为无效值时,保持输出上一个有效的多位数据。当选择信号为有效值时,选择更新输出当前输入的多位数据。
本可选实施方式是针对多位数据跨时钟域的应用场景,单向控制数据传输,传输延迟可配置,高效巧妙,并且不需要发送时钟参与跨时钟域的处理,提高了发送时钟域和接收时钟域的独立性。
因此,本可选实施方式不但适用于通常情况的多位数据跨时钟域应用场景,更适合于发送时钟域和接收时钟域相对独立的应用场景,例如发送时钟域和接收时钟域处于不同电源域或不同电压域。基于此,不需要在发送时钟域的设计电路装置;另一方面,除了发送数据,没有其他控制信号跨时钟域(或电源域或跨电压域),实现高效简洁。此外,根据平均出现故障间隔时间(MTBF)的要求,设置数据同步器级数和缓冲器级数,配置灵活。
图3是根据本发明实施例的多位数据跨时钟域传输的示意图,如图3所示,本实施用例均在时钟上升沿采样数据,5个功能模块分别是数据同步器(20)、变化检测器(21)、缓冲器(22)、上升沿检测器(23)和数据选择器(24)。
数据同步器(20)是一个与传输数据同位宽的两级或多级寄存器同步器,用于接收并同步从发送时钟域发送的数据data0,以降低跨时钟域出现亚稳态的概率。通常而言,两级数据同步器可以满足MTBF要求。在本实施用例中,数据同步器由D触发器(DFF)组成,级数N=2,数据位宽为3bit。
变化检测器(21)的功能是检测同步后的数据是否发生变化,输出信号经过变化检测器(21)、缓冲器(22)、上升沿检测器(23)处理后,用于控制数据选择器(24)。如果当前周期的数据data2与上一个周期的数据data3相比,某一位或几位发生变化,则变化检测器(21)输出signal1为1’b1。如果当前周期的数据data2与上一个周期的数据data3相比没有变化,则变化检测器(21)输出signal1为1’b0。在本实施用例中,变化检测器(21)由D触发器和异或门(XOR)组成。
缓冲器(22)的功能是对变化检测器(21)的输出signal1进行缓冲处理,待data2稳定后被正确选择采样,避免采到中间态数据。在本实施用例中,缓冲器(22)由D触发器组成,缓冲级数M与数据同步器(20)级数N相同,即M=2。signal2是第一级缓冲输出信号,signa3是第二级缓冲输出信号。
上升沿检测器(23)的功能是检测缓冲器(22)的输出signal3是否发生上升沿变化。如果当前周期的信号signal3与上一个周期的信号signal4相比从1’b0变为1’b1,则上升沿检测器输出signal5为1’b1,并保持一个采样时钟周期,用于数据选择器(24)选通并更新输出数据。除此之外,边沿检测器输出signal5为1’b0。在本实施用例中,上升沿检测器(23)由D触发器、非门、与门(AND)等组成。
数据选择器(24)的功能是对当前输入的多位数据data2和上一个有效的多位数据data4进行二选一选择输出。当选择信号signal5为1’b0时,保持输出上一个有效的数据data4。当选择信号signal5为1’b1时,选择更新输出当前输入的数据data2。在本实施用例中,数据选择器(24)由D触发器和二选一选择器(MUX)组成。
需要说明的是,输入信号为发送时钟域发送的数据和接收时钟域的时钟,输出信号为接收时钟域接收的数据,整个传输延迟为N+M=4个接收时钟的时钟周期。
图4是根据本发明实施例的各个关键处的信号波形示意图,图4种的信号名称与图3所示的各个信号对应。如图4所示,在第2时刻和第3时刻之间的某一个时刻,发送时钟域发送的数据data0发生变化,从3’b000变为3’b111。发送时钟在图3中未表示,由于本申请的实施方式不需要关注发送时钟信息,与发送时钟域相对独立。Data0被接收时钟域的时钟clock在各个上升沿采样。数据同步器对data0进行两级同步。第一级输出数据为data1,第二级输出数据为data2。
在第3时刻时,由于亚稳态原因,data1的每一位可能是0也可能是1,所以data1整体可能是从3’b000变为3’b111的任意中间态。在图4中仅以中间态3’b101为例。
在第4时刻时,data1在MTBF时间间隔内大概率的被正确采样为3’b111。同时,变化检测器检测到data2与data3之间的变化,输出信号signal1从1’b0变为1’b1。
需要注意的是,此时data2处于中间态(3’b101),应该避免被错误的采样输出到data4。因此,signal1经过缓冲器的两级缓冲后输出指示信号signal3。由signal3控制data4的数据更新。
第5时刻是信号缓冲时刻,待data2恢复到稳定状态,保持各个bit位的数据相关性。
在第6时刻时,上升沿检测器检测到signal3的上升沿后,输出信号signal5从1’b0变为1’b1,并保持1个时钟周期。同时,signal5选通数据选择器,data4被更新,输出data2,即输出跨时钟域后的多位数据,整个传输延迟为4个收时钟的时钟周期。
通过上述实施方式可知,本申请是主要针对多位数据跨时钟域应用场景,单向控制数据传输,传输延迟可配置,高效巧妙,并且不需要发送时钟参与跨时钟域的处理,提高了发送时钟域和接收时钟域的独立性。但本申请不但适用于通常情况的多位数据跨时钟域应用场景,更适合于发送时钟域和接收时钟域相对独立的应用场景,例如发送时钟域和接收时钟域处于不同电源域或不同电压域。因此,不需要在发送时钟域的设计电路装置;而且除了发送数据,没有其他控制信号跨时钟域(或电源域或跨电压域),实现高效简洁。此外,本申请支持根据平均出现故障间隔时间(MTBF)的要求设置数据同步器级数和缓冲器级数,以使配置灵活。
实施例2
在本实施例中还提供了一种多位数据跨时钟域的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的多位数据跨时钟域的处理装置的结构框图,如图5所示,该装置包括:获取模块52,用于获取由发送时钟域侧输出到接收时钟域侧的数据,其中,发送时钟域与接收时钟域是不同的时钟域;检测模块54,与获取模块52耦合链接,用于检测数据是否发生变化;处理模块56,与检测模块54耦合连接,用于在检测到数据发生变化的情况下,对数据进行更新后输出;在检测到数据未发生变化的情况下,保持原输出数据。
可选地,本申请中的获取模块52进一步包括:数据同步器,用于接收由发送时钟域侧的寄存器输出到接收时钟域侧的数据;并对数据进行同步处理,其中,数据同步器为N级同步器,N的取值由平均出现故障间隔时间决定。
可选地,本申请中的检测模块54进一步可以包括:变化检测器,用于检测当前周期的数据与上一周期的数据比较是否发生变化,以确定接收到的数据是否发生变化。
可选地,本申请中的处理模块56进一步可以包括:边沿检测器,用于在数据发生变化的情况下,输出有效值,并触发接收时钟域侧的数据选择器输出更新后的数据;在数据发生变化的情况下,输出无效值,并触发数据选择器保持原输出数据。
可选地,本申请中的装置还可以包括:缓冲器,用于在检测数据是否发生变化之后,对变化检测器输出的数据进行缓冲处理,其中,缓冲器为M级缓冲器,M≥N-1。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种多位数据跨时钟域的处理方法,其特征在于,包括:
获取由发送时钟域侧输出到接收时钟域侧的数据,其中,所述发送时钟域与所述接收时钟域是不同的时钟域;
检测所述数据是否发生变化;
在所述数据发生变化的情况下,对所述数据进行更新后输出;在所述数据未发生变化的情况下,保持原输出数据;
其中,所述获取由发送时钟域侧输出到接收时钟域侧的数据,包括:接收所述发送时钟域侧输出到所述接收时钟域侧的数据;由接收时钟域侧数据同步器对所述数据进行同步处理;
其中,所述检测所述数据是否发生变化,包括:通过所述接收时钟域侧的变化检测器检测当前周期的数据与上一周期的数据比较是否发生变化,以确定接收到的数据是否发生变化。
2.根据权利要求1所述的方法,其特征在于,所述接收所述发送时钟域侧输出到所述接收时钟域侧的数据;由接收时钟域侧数据同步器对所述数据进行同步处理,包括:
接收由发送时钟域侧的寄存器输出到所述接收时钟域侧的数据;
通过所述接收时钟域侧的N级数据同步器对所述数据进行同步处理,其中,所述N的取值由平均出现故障间隔时间决定。
3.根据权利要求1所述的方法,其特征在于,包括:
在所述数据发生变化的情况下,对所述数据进行更新后输出,包括:在所述数据发生变化的情况下,由所述接收时钟域侧的边沿检测器输出有效值,并触发所述接收时钟域侧的数据选择器输出更新后的数据;
在所述数据未发生变化的情况下,保持原输出数据,包括:在所述数据未发生变化的情况下,由所述接收时钟域侧的边沿检测器输出无效值,并触发所述数据选择器保持原输出数据。
4.根据权利要求3所述的方法,其特征在于,在检测所述数据是否发生变化之后,所述方法还包括:
通过所述接收时钟域侧的M级缓冲器对所述变化检测器输出的数据进行缓冲处理,其中,M≥N-1。
5.一种多位数据跨时钟域的处理装置,其特征在于,包括:
获取模块,用于获取由发送时钟域侧输出到接收时钟域侧的数据,其中,所述发送时钟域与所述接收时钟域是不同的时钟域;
检测模块,用于检测所述数据是否发生变化;
处理模块,用于在检测到所述数据发生变化的情况下,对所述数据进行更新后输出;在检测到所述数据未发生变化的情况下,保持原输出数据;
其中,所述获取模块包括:接收所述发送时钟域侧输出到所述接收时钟域侧的数据;由接收时钟域侧数据同步器对所述数据进行同步处理;
其中,所述检测模块包括:变化检测器,用于通过所述接收时钟域侧的变化检测器检测当前周期的数据与上一周期的数据比较是否发生变化,以确定接收到的数据是否发生变化。
6.根据权利要求5所述的装置,其特征在于,所述获取模块包括:
数据同步器,用于接收由发送时钟域侧的寄存器输出到所述接收时钟域侧的数据;并对所述数据进行同步处理,其中,所述数据同步器为N级同步器,所述N的取值由平均出现故障间隔时间决定。
7.根据权利要求5所述的装置,其特征在于,所述处理模块包括:
边沿检测器,用于在所述数据发生变化的情况下,输出有效值,并触发所述接收时钟域侧的数据选择器输出更新后的数据;在所述数据未发生变化的情况下,输出无效值,并触发所述数据选择器保持原输出数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
缓冲器,用于在检测所述数据是否发生变化之后,对所述变化检测器输出的数据进行缓冲处理,其中,所述缓冲器为M级缓冲器,M≥N-1。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578841.3A CN112148655B (zh) | 2019-06-28 | 2019-06-28 | 多位数据跨时钟域的处理方法及装置 |
PCT/CN2020/088019 WO2020259080A1 (zh) | 2019-06-28 | 2020-04-30 | 多位数据跨时钟域的处理方法及装置 |
JP2021558008A JP7360472B2 (ja) | 2019-06-28 | 2020-04-30 | マルチビットデータのクロスクロックドメインの処理方法と装置 |
KR1020217035272A KR20210141739A (ko) | 2019-06-28 | 2020-04-30 | 크로스 클록 도메인의 멀티 디지트 데이터 처리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578841.3A CN112148655B (zh) | 2019-06-28 | 2019-06-28 | 多位数据跨时钟域的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148655A CN112148655A (zh) | 2020-12-29 |
CN112148655B true CN112148655B (zh) | 2023-11-17 |
Family
ID=73892042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910578841.3A Active CN112148655B (zh) | 2019-06-28 | 2019-06-28 | 多位数据跨时钟域的处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP7360472B2 (zh) |
KR (1) | KR20210141739A (zh) |
CN (1) | CN112148655B (zh) |
WO (1) | WO2020259080A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112953475B (zh) * | 2021-02-04 | 2022-08-02 | 中国电子科技集团公司第五十八研究所 | 一种多位数据跨时钟域同步电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929808A (zh) * | 2012-11-02 | 2013-02-13 | 长沙景嘉微电子股份有限公司 | 一种高可靠性的跨时钟域数据传输电路 |
CN105610532A (zh) * | 2014-11-11 | 2016-05-25 | 中兴通讯股份有限公司 | 信号的传输处理方法及装置、设备 |
CN105808476A (zh) * | 2016-04-12 | 2016-07-27 | 珠海格力电器股份有限公司 | 跨时钟域数据的传输方法及装置 |
CN106897238A (zh) * | 2015-12-18 | 2017-06-27 | 浙江大华技术股份有限公司 | 一种数据处理装置及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519301B1 (en) * | 1999-09-28 | 2003-02-11 | Anthony S. Rowell | Circuits, systems, and methods for passing request information across differing clock domains |
US7250797B1 (en) * | 2001-03-30 | 2007-07-31 | Agere Systems Inc. | Event edge synchronization system and method of operation thereof |
US6900665B2 (en) * | 2003-06-10 | 2005-05-31 | James Ma | Transfer of digital data across asynchronous clock domains |
US20060198479A1 (en) | 2005-03-01 | 2006-09-07 | Hung-Yuan Hsu | Data synchronizer system |
US8363766B2 (en) | 2008-06-06 | 2013-01-29 | Freescale Semiconductor, Inc. | Device and method of synchronizing signals |
US20120033772A1 (en) | 2010-08-08 | 2012-02-09 | Freescale Semiconductor, Inc | Synchroniser circuit and method |
CN103576738A (zh) * | 2012-08-01 | 2014-02-12 | 中兴通讯股份有限公司 | 一种异步信号跨时钟域处理方法及装置 |
US9722767B2 (en) * | 2015-06-25 | 2017-08-01 | Microsoft Technology Licensing, Llc | Clock domain bridge static timing analysis |
CN107577623A (zh) * | 2017-07-19 | 2018-01-12 | 成都华微电子科技有限公司 | 跨时钟域异步fifo及数据处理方法 |
CN109408427B (zh) * | 2017-08-18 | 2021-01-22 | 龙芯中科技术股份有限公司 | 一种跨时钟域数据处理方法及*** |
-
2019
- 2019-06-28 CN CN201910578841.3A patent/CN112148655B/zh active Active
-
2020
- 2020-04-30 JP JP2021558008A patent/JP7360472B2/ja active Active
- 2020-04-30 KR KR1020217035272A patent/KR20210141739A/ko not_active Application Discontinuation
- 2020-04-30 WO PCT/CN2020/088019 patent/WO2020259080A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929808A (zh) * | 2012-11-02 | 2013-02-13 | 长沙景嘉微电子股份有限公司 | 一种高可靠性的跨时钟域数据传输电路 |
CN105610532A (zh) * | 2014-11-11 | 2016-05-25 | 中兴通讯股份有限公司 | 信号的传输处理方法及装置、设备 |
CN106897238A (zh) * | 2015-12-18 | 2017-06-27 | 浙江大华技术股份有限公司 | 一种数据处理装置及方法 |
CN105808476A (zh) * | 2016-04-12 | 2016-07-27 | 珠海格力电器股份有限公司 | 跨时钟域数据的传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7360472B2 (ja) | 2023-10-12 |
KR20210141739A (ko) | 2021-11-23 |
WO2020259080A1 (zh) | 2020-12-30 |
JP2022539485A (ja) | 2022-09-12 |
CN112148655A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3580242B2 (ja) | シリアル/パラレル変換回路、データ転送制御装置及び電子機器 | |
US7689856B2 (en) | Mesochronous clock system and method to minimize latency and buffer requirements for data transfer in a large multi-processor computing system | |
US20100115322A1 (en) | Synchronous operation of a system with asynchronous clock domains | |
US5539739A (en) | Asynchronous interface between parallel processor nodes | |
JP4758311B2 (ja) | 非同期データ保持回路 | |
US6516420B1 (en) | Data synchronizer using a parallel handshaking pipeline wherein validity indicators generate and send acknowledgement signals to a different clock domain | |
CN112148655B (zh) | 多位数据跨时钟域的处理方法及装置 | |
US7194057B2 (en) | System and method of oversampling high speed clock/data recovery | |
CN114201276A (zh) | 一种基于fifo中断管理的方法 | |
US20120151243A1 (en) | Synchronization circuit that facilitates multiple parallel reads and writes | |
KR20190135275A (ko) | 타이밍 조절이 가능한 고속 멀티 레벨 신호 수신기를 포함하는 반도체 장치 및 상기 수신기를 포함하는 반도체 테스트 장치 | |
JP2008172657A (ja) | 受信装置 | |
CN113491082B (zh) | 一种数据处理装置 | |
US8711018B2 (en) | Providing a feedback loop in a low latency serial interconnect architecture | |
US6952791B2 (en) | Method and circuit for initializing a de-skewing buffer in a clock forwarded system | |
CN114185397B (zh) | 跨时钟域数据传输电路及方法 | |
US20080109672A1 (en) | Large scale computing system with multi-lane mesochronous data transfers among computer nodes | |
CN116318601A (zh) | 用于高速信令互连的帧对齐恢复 | |
CN114115443A (zh) | 一种跨时钟域的数据信号同步方法、***、设备以及介质 | |
CN112712829B (zh) | 一种跨时钟域的寄存器读写电路及方法 | |
CN115202991B (zh) | 一种OpenLDI接口实时自监控***及方法 | |
US7116740B1 (en) | Method and system for providing clock signals | |
CN117971756A (zh) | 一种时钟相位的确定方法、装置、电子设备及存储介质 | |
JP3115756B2 (ja) | デマルチプレクサ回路 | |
Abasaheb et al. | Design of Mesochronous Dual Clock Fifo Buffer with Modified Synchronizer Circuit |
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 |