CN116541333A - 慢时钟域到快时钟域数据同步方法及数据同步系统 - Google Patents

慢时钟域到快时钟域数据同步方法及数据同步系统 Download PDF

Info

Publication number
CN116541333A
CN116541333A CN202310402084.0A CN202310402084A CN116541333A CN 116541333 A CN116541333 A CN 116541333A CN 202310402084 A CN202310402084 A CN 202310402084A CN 116541333 A CN116541333 A CN 116541333A
Authority
CN
China
Prior art keywords
clock
signal
clock domain
slow
fast
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
Application number
CN202310402084.0A
Other languages
English (en)
Inventor
尹棋烽
梅平
徐金波
王吉
邓炯麟
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.)
Wuxi Linju Semiconductor Technology Co ltd
Original Assignee
Wuxi Linju Semiconductor Technology Co ltd
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 Wuxi Linju Semiconductor Technology Co ltd filed Critical Wuxi Linju Semiconductor Technology Co ltd
Priority to CN202310402084.0A priority Critical patent/CN116541333A/zh
Publication of CN116541333A publication Critical patent/CN116541333A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明提供一种慢时钟域到快时钟域数据同步方法及数据同步系统,包括:S1、依次在快时钟信号的第一时钟周期至第M个时钟周期采样慢时钟信号,并分别记为第一采样信号至第M采样信号;S2、判断慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;若均没有触发,则在第一时钟周期至第M时钟周期中任一时钟周期下,将慢时钟域数据同步到快时钟域若发生触发,则进一步判断跳变沿触发对应的快时钟周期,并在后一个快时钟周期,将慢时钟域数据同步到快时钟域。本发明无需使用数据缓存器FIFO进行跨时钟域数据信号同步,大大缩短了慢时钟域到快时钟域数据同步的时间,节省了资源,提高了数据同步的效率并防止了亚稳态。

Description

慢时钟域到快时钟域数据同步方法及数据同步系统
技术领域
本发明涉及跨时钟域数据处理领域,特别是涉及一种慢时钟域到快时钟域数据同步方法及数据同步系统。
背景技术
随着芯片行业的迅猛发展,同一颗芯片中不同时钟域的模块越来越多,而不同时钟域之间的数据在进行交互时,如果不进行同步处理,数据将出现亚稳态,并在芯片内部传播,对芯片整体架构造成不可预期的危害。
为了解决不同时钟域数据同步的问题,常用数据缓存器10(First Input FirstOutput,FIFO)对跨时钟域的数据进行读取和存储。数据缓存器10的工作方式如图1所示,第一模块11输出写入指令W_REQ到数据缓冲器10并输出在第一时钟CLK_A下的第一数据信号DATA_A,数据缓存器10接收到写入指令W_REQ写入第一数据信号DATA_A;第二模块12输出读取指令R_REQ,数据缓存器10接收到第二模块12的读取指令,将存储在内部的第一数据信号DATA_A作为第二数据信号DATA_B输出到第二模块12。以上过程执行完毕,就实现了第一模块11的数据传输到第二模块12,且不会因为直接交换出现跨时钟的亚稳态问题。
但是当慢时钟域和快时钟域之间相差较大,如10倍以上,使用数据缓存器10对不同模块进行数据同步时会有很大的延迟,使得数据同步效率变低。除此之外,数据缓存器10的占用资源也较多,不利于功耗、资源进一步的减少。
基于以上原因,本发明提供了一种慢时钟域到快时钟域数据同步方法,用以解决慢时钟域到快时钟域使用数据缓存器延迟大、同步效率低等问题。
应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种慢时钟域到快时钟域数据同步方法及数据同步系统,用于解决现有技术中慢时钟域到快时钟域使用数据缓存器延迟大、同步效率低等问题。
为实现上述目的及其他相关目的,本发明提供一种慢时钟域到快时钟域数据同步方法,包括:
S1、依次在快时钟信号的第一时钟周期至第M个时钟周期采样慢时钟信号,并分别记为第一采样信号至第M采样信号;M为大于等于2的自然数且M小于等于所述慢时钟信号的周期与所述快时钟信号的周期的比值;其中,所述第一时钟周期至所述第M个时钟周期中最多只有一个慢时钟信号的跳变沿;
S2、基于所述第一采样信号至所述第M采样信号,判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;若均没有触发,则在第一时钟周期至第M时钟周期中任一时钟周期下,将慢时钟域数据同步到快时钟域若发生触发,则进一步判断跳变沿触发对应的快时钟周期,并在后一个快时钟周期,将慢时钟域数据同步到快时钟域。
可选地,所述快时钟信号为上升沿触发或下降沿触发。
可选地,在步骤S2前还设置有预同步步骤,包括:当M=2时,在第一时钟周期下,将慢时钟域数据同步到快时钟域作为快时钟域数据;当M=3时,在第二时钟周期下,将慢时钟域数据同步到快时钟域作为快时钟域数据。
可选地,当M=2且所述慢时钟信号为上升沿触发时,若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿,则将第三时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,保留预同步步骤中的所述快时钟域数据。
可选地,S20a、在第一时钟周期,将慢时钟域数据同步到快时钟域;S21a、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当所述第一采样信号为高电平时,则将第二时钟周期的慢时钟域数据同步到快时钟域;当所述第一采样信号为低电平时,则保留步骤S20a的快时钟域数据;S22a、在第三时钟周期,判断采样得到的所述第一采样信号及所述第二采样信号的电平;若采样得到的所述第一采样信号为低电平且所述第二采样信号为高电平,则将慢时钟域数据同步到快时钟域;若采样得到的所述第一采样信号为低电平且所述第二采样信号为低电平,则保留步骤S20a的快时钟域数据。
可选地,当M等于2且所述慢时钟信号为下降沿触发时,若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第三时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,保留预同步步骤中的快时钟域数据。
可选地,S20b、在第一时钟周期,将慢时钟域数据同步到快时钟域;S21b、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当所述第一采样信号为低电平时,则将第二时钟周期的慢时钟域数据同步到快时钟域;当所述第一采样信号为高电平时,则保留步骤S20b的快时钟域数据;S22b、在第三时钟周期,判断是否采样得到的所述第一采样信号及所述第二采样信号的电平;若采样得到的所述第一采样信号为高电平且所述第二采样信号为低电平,则将慢时钟域数据同步到快时钟域;若采样得到的所述第一采样信号为高电平且所述第二采样信号为高电平,则保留步骤S20b的快时钟域数据。
可选地,S20c,在第一时钟周期,采样慢时钟信号作为第一采样信号;S21c、在第二时钟周期,采样慢时钟信号作为第二采样信号;将慢时钟域数据同步到快时钟域;S22c、在第三时钟周期,判断采样得到的所述第一采样信号及所述第二采样信号的电平;若所述第一采样信号的电平和所述第二采样信号的电平不相等,则将第三时钟周期下的慢时钟域数据同步到快时钟域;若所述第一采样信号的电平和所述第二采样信号的电平相等,则保留步骤S21c中的快时钟域数据;S23c、在第四时钟周期,判断采样得到的所述第一采样信号、所述第二采样信号及所述第三采样信号的电平;若所述第一采样信号的电平和所述第二采样信号的电平相等且所述第二采样信号的电平和所述第三采样信号的电平不相等,则将第四时钟周期下的慢时钟域数据同步到快时钟域;若所述第一采样信号的电平、所述第二采样信号的电平以及所述第三采样信号的电平均相等,则保留步骤S21c中的快时钟域数据。
可选地,所述慢时钟信号的周期大于等于10倍的所述快时钟信号的周期。
为实现上述目的及其他相关目的,本发明提供一种慢时钟域到快时钟域数据同步系统,用于实现所述的慢时钟域到快时钟域数据同步方法包括:快时钟域模块、慢时钟域模块、时钟信号采样模块以及数据同步模块;
快时钟域模块、慢时钟域模块、时钟信号采样模块以及数据同步模块;
所述时钟信号采样模块接收所述快时钟域模块的快时钟信号及所述慢时钟域模块的慢时钟信号,基于所述快时钟信号的第一时钟周期至第M时钟周期依次采样慢时钟信号;
所述数据同步模块的输入端连接所述时钟信号采样模块的输出信号,用于判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发并基于判断结果控制所述慢时钟域模块的数据同步到所述快时钟域模块。
可选地,所述时钟信号采样模块包括计数器和采样单元;所述计数器接收所述快时钟域模块的快时钟信号,输出端连接所述采样单元的控制端,用于控制所述采样单元的采样次数;其中所述计数器的计数周期大小等于所述快时钟域模块的时钟信号的周期大小;所述采样单元的输入端连接所述慢时钟域模块的时钟信号输出端,基于所述计数器的输出信号对所述慢时钟域模块的时钟信号依次采样并将结果输出到所述判定单元的输入端。
可选地,所述时钟信号采样模块还包括计数触发器;所述计数触发器的输入端连接所述快时钟域模块,输出端连接所述计数器的控制端,用于为所述计数器提供计数的触发信号。
可选地,所述数据同步模块设置为状态机。
可选地,所述数据同步模块包括判定单元以及同步单元;所述判定单元的输入端连接所述时钟信号采样模块的输出信号,用于判定所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;所述同步单元的控制端连接所述判定单元的输出信号,输入端连接所述慢时钟域模块的数据输出端,输出端连接所述快时钟域模块的数据输入端,基于所述判定单元的判定结果控制所述慢时钟域模块的数据同步到所述快时钟域模块。
如上所述,本发明的慢时钟域到快时钟域数据同步方法及数据同步系统,具有以下有益效果:
1、本发明的慢时钟域到快时钟域数据同步方法及数据同步系统无需使用数据缓存器FIFO进行跨时钟域数据信号同步,大大缩短了慢时钟域到快时钟域数据同步的时间,节省了资源,提高了数据同步的效率并防止了亚稳态。
2、本发明的慢时钟域到快时钟域数据同步方法及数据同步系统结构简单、方法简便,最快能在三个快时钟周期内实现跨时钟域的数据同步,能在跨时钟域应用领域进行大规模的推广应用。
附图说明
图1显示为数据缓存器的工作方式示意图。
图2显示为本发明的慢时钟域到快时钟域数据同步方法的步骤示意图。
图3显示为本发明的一种慢时钟域到快时钟域数据同步方法的算法整体框图。
图4显示为图3的采样采样信号的示意图。
图5显示为图3的数据同步状态机的示意图。
图6显示为本发明的一种慢时钟域到快时钟域数据同步系统的结构示意图。
图7显示为图3的工作过程的波形图。
图8显示为本发明的另一种慢时钟域到快时钟域数据同步方法的算法整体框图。
图9显示为图8的采样采样信号的示意图。
图10显示为图8的数据同步状态机的示意图。
图11显示为图8的工作过程的波形图。
元件标号说明
10 数据缓存器
11 第一模块
12 第二模块
2 慢时钟域到快时钟域数据同步系统
21 快时钟域模块
22 慢时钟域模块
23 时钟信号采样模块
231 计数器
232 采样单元
233 计数触发器
24 数据同步模块
241 判定单元
242 同步单元
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅2~图11。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
实施例一
如图2所示,本实施例提供了一种慢时钟域到快时钟域数据同步方法,包括:
S1、依次在快时钟信号clk_a的第一时钟周期至第M个时钟周期采样慢时钟信号clk_b,并分别记为第一采样信号至第M采样信号;其中,M为大于等于2的自然数,也就是至少要采样两个周期的慢时钟信号clk_b便于后续判断慢时钟信号clk_b的跳变沿发生的时钟周期。为了实现在快时钟域的几个周期内就能实现慢时钟域信号同步的操作,M小于等于所述慢时钟信号clk_b的周期与所述快时钟信号clk_a的周期之间的比值,举例而言,如果慢时钟信号clk_b的周期是快时钟信号周期clk_a的10倍,则M可以选择包括但不限于2、3、4、5、6、7、8、9、10。
具体地,所述第一时钟周期至所述第M个时钟周期中最多只有一个慢时钟信号的跳变沿(上升沿或者下降沿),避免因为在第一时钟周期至第M个时钟周期采集到两个跳变沿之后进行数据同步时采集到慢时钟域的亚稳态。在本实施例中,M取2且慢时钟信号为上升沿(单边沿)触发时,所述慢时钟信号的周期要大于4个快时钟信号周期,避免在第一时钟周期、第二时钟周期中出现两次上升沿,导致最终所述慢时钟域数据同步到快时钟域时不准确。优选地,所述慢时钟信号的周期大于等于10倍的所述快时钟信号的周期。慢时钟信号的周期和快时钟信号之间的倍数可以选取包括但不限于15倍、20倍、50倍。实际上,慢时钟信号的周期和所述快时钟信号的周期差异越大,本实施例的数据同步方法的所用时间相对于数据同步器FIFO的所用时间就越短,数据同步的效率也就越高。
具体地,快时钟信号clk_a设置为上升沿触发或下降沿触发。在本实施例中,快时钟信号clk_a设置为上升沿触发,即在快时钟信号的各周期的上升沿发生的时刻采集慢时钟信号。同时,在本实施例中,慢时钟信号clk_b设置为上升沿触发,也就是慢时钟域的数据在上升沿发生触发。
更具体地,如图3和图4所示,在本实施例中,M取值2,在快时钟信号clk_a的第一时钟周期(即:cnt为1)的上升沿开始采样慢时钟信号clk_b的第一采样信号first以及在快时钟信号clk_a的第二时钟周期(即:cnt为2)的上升沿开始采样慢时钟信号clk_b的第二采样信号second。通过快时钟信号clk_a的上升沿采样的慢时钟信号clk_b,若采样到第一采样信号first为低电平,第二采样信号second为低电平,表示慢时钟信号在第一时钟周期和第二时钟周期内一直维持低电平状态;若采样到第一采样信号first为高电平,第二采样信号second为高电平,表示慢时钟信号在第一时钟周期和第二时钟周期内一直维持高电平状态;若第一采样信号first为高电平,第二采样信号second为低电平,表示慢时钟信号在第一时钟周期和第二时钟周期内为下降沿状态;若第一采样信号first为低电平,第二采样信号second为高电平,表示慢时钟信号在第一时钟周期和第二时钟周期内为上升沿状态。
S2、基于所述第一采样信号至所述第M采样信号,判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;若均没有触发,则在第一时钟周期至第M时钟周期中任一时钟周期下,将慢时钟域数据同步到快时钟域若发生触发,则进一步判断跳变沿触发对应的快时钟周期,并在后一个快时钟周期,将慢时钟域数据同步到快时钟域。
具体地,在步骤S2前还设置有预同步步骤,在本实施例中(M=2),包括:在第一时钟周期下,将慢时钟域数据同步到快时钟域数据。在实际使用中,直接通过预同步步骤将慢时钟域数据暂时同步到快时钟域下,进而再通过后续判断确定是否舍弃暂存的慢时钟域数据。通过设置预同步步骤,能实现在慢时钟域同步到快时钟域数据时,直接通过快时钟域对应的存储位存储,不再引入其他存储模块。与此同时,由于直接存储到快时钟域中,而没有经过其他的存储模块,能进一步提高数据同步的效率。需要说明的是,作为另一种实现方式,可设置单独的同步存储模块(图中未示出),在第一时钟周期至第M时钟周期下采集多次慢时钟域数据值,通过判断采集的时钟信号,排除慢时钟信号的跳变沿时刻对应的周期后,留下其他的周期采集到的数据。在本实施例中,M取2,基于第一采样信号first以及第二采样信号second判断慢时钟信号clk_b是否在这两个时钟周期中发生了跳变,便于后续在将慢时钟域数据同步到快时钟域时不会采集到亚稳态时间段的数据(即:不会采集到慢时钟信号的跳变沿时刻的数据信号)。
具体地,在本实施例中,M=2且所述慢时钟信号为上升沿触发(即:亚稳态发生在慢时钟信号的上升沿),若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿(也就是出现亚稳态的周期),则将第三时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,保留预同步步骤中的所述快时钟域数据。需要说明的是,实际上在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿、一直维持高电平和一直维持低电平这三种情况的时候由于不涉及慢时钟信号上升沿,在这三种情况下可以存储第一时钟周期和第二时钟周期中任一时钟周期,不以本实施例为限。
作为示例,如图5所示,步骤S2包括:
步骤S20a、在第一时钟周期,将慢时钟域数据同步到快时钟域,即:执行预同步步骤。
步骤S21a、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当采样得到的所述第一采样信号为高电平(在本实施例中以1表示)时,将慢时钟域数据同步到快时钟域。在本实施例中,通过D触发器实现慢时钟域到快时钟域数据的同步,因此同步第二时钟周期下的慢时钟域数据到快时钟域时,并不是直接在第二时钟周期完成,而是在快时钟信号的第三时钟周期才得以完成同步的步骤,即:在后一个时钟周期才能将前一个时钟周期的慢时钟域数据同步到快时钟域。也就是本实施例的状态机状态S1时,若采样得到的所述第一采样信号first为高电平,则判定所述慢时钟信号的上升沿触发不会发生在第一时钟周期和第二时钟周期内,将第二时钟周期下的慢时钟域数据同步到快时钟域(此时同步的是第二时钟周期对应的慢时钟域数据,在第三时钟周期执行同步的过程),避免了出现采集到处于亚稳态状态的慢时钟域数据。当所述第一采样信号为低电平时,则保留步骤S20a的快时钟域数据。
步骤S22a、在第三时钟周期,判断是否采样得到的所述第一采样信号为低电平且所述第二采样信号为高电平。当采样得到的所述第一采样信号为低电平(在本实施例中以0表示)且所述第二采样信号为高电平时,将慢时钟域数据同步到快时钟域。也就是本实施例的状态机状态S2时,若所述第一采样信号first采样为低电平且所述第二采样信号second采样为高电平,则判定所述慢时钟信号的上升沿在第一时钟周期和第二时钟周期中触发,将第三时钟周期下的慢时钟域数据同步到快时钟域(同样地,在第四时钟周期执行完毕同步的过程)。若采样得到的所述第一采样信号为低电平且所述第二采样信号为低电平,则保留步骤S20a的快时钟域数据。
需要说明的是,本实施例中若采样得到的所述第一采样信号first为高电平(用1表示),则判定所述慢时钟信号的上升沿触发时刻在第一时钟周期内。也可以对采集的时钟信号取反后再进行判断跳变沿发生的位置。举例而言,也就是第一采样信号first采样为高电平取反后为“0”,则判定所述慢时钟信号的上升沿触发时刻在第一时钟周期内。
如图6所示,本实施例还提供一种慢时钟域到快时钟域数据同步系统2,包括:快时钟域模块21、慢时钟域模块22、时钟信号采样模块23以及数据同步模块24;
具体地,所述时钟信号采样模块23的控制端连接所述快时钟域模块21的时钟信号输出端,输入端连接所述慢时钟域模块22的时钟信号输出端,基于所述快时钟域模块21中的快时钟信号的第一时钟周期至第M时钟周期依次采样慢时钟信号,并分别记为第一采样信号至第M采样信号;其中,M为大于等于2的自然数。
作为示例,时钟信号采样模块23包括计数器231和采样单元232;所述计数器231的输入端连接所述快时钟域模块21的时钟信号输出端,输出端连接所述采样单元232的控制端,用于控制所述采样单元232的采样次数;其中所述计数器231的计数周期大小等于所述快时钟域模块21的时钟信号的周期大小。快时钟域模块21通过计数器231控制采样单元232在快时钟信号的各周期下采样慢时钟域模块22的时钟信号。在本实施例中,快时钟域模块21通过计数器231控制采样单元232在快时钟信号的第一时钟周期的上升沿以及第二时钟周期的上升沿采样慢时钟域模块22的时钟信号并分别记为第一采样信号first、第二采样信号second。
作为示例,所述采样单元232的输入端连接所述慢时钟域模块22的时钟信号输出端,基于所述计数器231的输出信号对所述慢时钟域模块22的时钟信号采样并将结果输出到所述判定单元241的输入端。所述采样单元232采样到第一采样信号first、第二采样信号second后将其传输到所述判定单元241,便于后续判定慢时钟信号的跳变沿是否发生在第一时钟周期、第二时钟周期内。
在另一示例中,所述时钟信号采样模块还包括计数触发器233;所述计数触发器233的输入端连接所述快时钟域模块21,输出端连接所述计数器231的控制端,用于为所述计数器231提供计数的触发信号。所述触发信号start可由计数触发器提供,在触发信号start结束后,计数器从0开始计数,每个快时钟信号clk_a的时钟周期,计数器233的计数加1,也就是cnt的数值加1。在本实施例中,计数值为4后停止计数,直到下一个触发信号start结束再开始从0计数。如图4所示,在计数器233计数值cnt=1、2、3时,对应采集cnt=1时的慢时钟域的时钟信号记为第一采样信号first以及cnt=2时的慢时钟域的时钟信号记为第二采样信号second。
需要说明的是,在本实施例中,所述触发信号start设置为高电平信号。所述计数器231可内置触发信号start;所述触发信号start的周期大下与所述快时钟域模块21的时钟周期大小一致,在触发信号start结束后开始计数。所述触发信号start还可以连接计数器231的控制端,直接通过外部输入(如:手动控制),使得计数器触发,从而计数器231开始计数。只要能使得采样单元232能在触发信号start结束后开始按照预设的方式采集采样信号的触发信号设置,均属于本实施例的保护范围。
具体地,所述数据同步模块24的输入端连接所述时钟信号采样模块23的输出信号,用于判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发并基于判断结果控制所述慢时钟域模块22的数据同步到所述快时钟域模块21。
更具体地,所述数据同步模块24包括判定单元241以及同步单元242;所述判定单元241的输入端连接所述时钟信号采样模块23的输出信号,用于判定所述慢时钟信号的跳变沿(上升沿或者下降沿)是否在第一时钟周期至第M时钟周期的任一时钟周期内触发。所述同步单元242的控制端连接所述判定单元241的输出信号,输入端连接所述慢时钟域模块22的数据输出端,输出端连接所述快时钟域模块21的数据输入端,基于所述判定单元241的判定结果控制所述慢时钟域模块22的数据同步到所述快时钟域模块21。
作为示例,所述数据同步模块24设置为状态机,具体的状态机原理如图5所示。在计数值cnt为1时,状态机状态由IDLE转为S0,计数值cnt为2时状态机状态由S0转为S1,计数值cnt为3时状态机状态由S1转为S2,cnt为4时状态机状态由S2转为IDLE。
作为示例,在S0状态下,所述同步单元242将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中。之后进一步判断存储的慢时钟域模块22的数据应该被保留还是舍弃。在S1状态下若第一采样信号first为1则所述同步单元242再将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中以覆盖上一次的值,之后在S2状态下若第一采样信号first为0而且第二采样信号second为1,所述同步单元242则再将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中以覆盖上一次的值,当计数值cnt变为4时状态由S2转为IDLE,且会生成快时钟信号clk_a时钟域下的一个脉冲信号done,done为此次同步完成标志,在done为高电平时读取快时钟域模块21的数据data_a的值即为同步后的正确值。
下面结合图7对本实施例的工作过程进行说明,其中,M=2且快时钟信号为上升沿触发,慢时钟信号为下降沿触发。以快时钟信号的每一个上升沿时刻作为标记的时刻,则第一个上升沿时刻为时刻t1,第二个上升沿时刻为时刻t2,以此类推,此处不一一赘述。
时刻t1,触发信号start为0,不对慢时钟信号采样。时刻t2,触发信号start置为1,触发信号在快时钟域触发。
时刻t3,触发信号start结束,计数器231开始计数,计数值由0随着快时钟信号的上升沿逐次增加1。
时刻t4,计数值cnt等于1的时候,也就是第一时钟周期。在这个时钟周期采样得到慢时钟域模块22的第一采样信号记为first。与此同时,状态机状态为S0,在这个时候预先同步一次,也就是将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中(第一时钟周期下的慢时钟域数据同步到快时钟域,在第二时钟周期执行完毕同步的过程)。在本实施例中,由于慢时钟信号的上升沿不发生在第一时钟周期内,此时采样到第一采样信号first=0。
时刻t5,计数值cnt等于2的时候,也就是第二时钟周期。在这个时钟周期采样得到时钟域模块22的第二采样信号记为second。此时状态机状态为S1。通过判定单元241判定第一采样信号first是否等于1:如果第一采样信号first=1,则表示在上一个时钟周期(即:第一时钟周期)到本时钟周期(即:第二时钟周期)不可能为上升沿,则缓存本次时钟周期(第二时钟周期)下的慢时钟域模块22的数据data_b;如果第一采样信号first=0,慢时钟信号可能在上一个时钟周期(即:第一时钟周期)到本时钟周期(即:第二时钟周期)跳变,需要进一步判断本时钟周期的电平状态,确定是否慢时钟周期的跳变沿发生在本时钟周期(第二时钟周期)内,需在后一个时钟周期进行判定。在本实施例,由于慢时钟信号的上升沿发生在第二时钟周期内,此时采样到第二采样信号second=1。
时刻t6,计数值cnt等于3的时候,也就是第三时钟周期。此时状态机状态为S2。通过判定单元241判定慢时钟信号是否在上一个时钟周期内进行了跳变,也就是在第一采样信号first等于0的前提下,判定第二采样信号second是否等于1:如果第二采样信号second=1,则表示在第一时钟周期和第二时钟周期发生了跳变,则缓存本次时钟周期(第三时钟周期)的慢时钟域模块22的数据data_b;如果第二采样信号second=0,则表示第一时钟周期到第二时钟周期均维持低电平状态,则第一时钟周期和第二时钟周期下的慢时钟域模块22的数据data_b均不是亚稳态的,任取第一时钟周期或第二时钟周期中任一时钟周期可以暂存,但是而由于已经存储了第一时钟周期慢时钟域的数据,则可以直接使用该数据。在本实施例中,由于采样得到第二采样信号second=1,在第三时钟周期可以判定出来慢时钟信号的跳变沿发生在第一时钟周期以及第二时钟周期内,此时缓存本次时钟周期(第三时钟周期)的慢时钟域模块22的数据data_b(第三时钟周期的慢时钟域数据同步到快时钟域,在第四时钟周期执行)。
时刻t7,计数值等于4的时候,也就是第四时钟周期。状态机状态返回到IDLE,同时生成脉冲信号done,表示同步完成。
时刻t8,脉冲信号done结束,读取存储在快时钟域模块21的数据。
通过以上工作过程可知,在三个快时钟周期内就可以实现慢时钟域到快时钟域的数据信号同步。
实施例二
本实施例提供了一种慢时钟域到快时钟域数据同步方法与实施例一的方法、原理基本相同,与本实施例一相比不同之处在于:慢时钟信号为下降沿触发(慢时钟域数据在慢时钟信号的下降沿时出现亚稳态)。
具体地,若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第三时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,保留预同步步骤中的所述快时钟域数据。
作为示例,在步骤S1中,依次在所述快时钟信号的第一时钟周期以及第二时钟周期采样所述慢时钟信号的下降沿触发时刻对应的时钟信号,并分别记为第一采样信号first、第二采样信号second。
步骤S20b、在第一时钟周期,将慢时钟域数据同步到快时钟域,执行预同步步骤。
步骤S21b、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当采样得到的所述第一采样信号为低电平时,将慢时钟域数据同步到快时钟域(同样地,此时同步的是第二时钟周期对应的慢时钟域数据,在第三时钟周期执行同步的过程)。当所述第一采样信号为高电平时,则保留步骤S20b的快时钟域数据(也就是第一时钟周期对应的慢时钟域数据)。
步骤S22b、在第三时钟周期,判断采样得到的所述第一采样信号及所述第二采样信号的电平。若采样得到的所述第一采样信号为高电平且所述第二采样信号为低电平,则判定所述慢时钟信号的下降沿触发在第一时钟周期以及第二时钟周期中任一个周期之内,将第三时钟周期的慢时钟域数据同步到快时钟域(同样地,在第四时钟周期执行完毕同步的过程)。若采样得到的所述第一采样信号为高电平且所述第二采样信号为低电平,则将慢时钟域数据同步到快时钟域;若采样得到的所述第一采样信号为高电平且所述第二采样信号为高电平,则保留步骤S20b的快时钟域数据。
需要说明的是,当M等于2且所述慢时钟信号为下降沿触发时,也可以直接将本实施例采集的时钟信号取反之后,通过实施例一的逻辑判定标准进行判断,最终得到慢时钟信号的触发状态。
本实施例提供的慢时钟域到快时钟域数据同步系统与实施例一的结构、原理基本相同,此处不再一一赘述。
实施例三
如图8所示,本实施例提供了一种慢时钟域到快时钟域数据同步方法,与实施例一基本相同,与本实施例一相比不同之处在于:慢时钟信号可以设置为双沿触发或者单沿触发,在本实施例中以双边沿触发为例。实际上由于本实施例仅仅是判定慢时钟信号的跳变沿信号并不区分具体是上升沿发生跳变还是下降沿发生跳变,因此,本实施例也可用于慢时钟信号单边沿触发的情况,也就是利用本实施例既可以对单边沿触发的慢时钟域同步又可以对双边沿触发的慢时钟域同步。此时至少需要快时钟信号的三个时钟周期,即当M等于3。
具体地,如图9所示,当M等于3时,在步骤S1中,依次在所述快时钟信号的第一时钟周期、第二时钟周期、第三时钟周期采样所述慢时钟信号的跳变沿触发时刻对应的时钟信号,并分别记为第一采样信号first、第二采样信号second、第三采样信号third。
需要说明的是,所述第一时钟周期至所述第M个时钟周期中最多只有一个慢时钟信号的跳变沿(上升沿或者下降沿),避免因为在第一时钟周期至第M个时钟周期采集到两个跳变沿之后进行数据同步时采集到慢时钟域的亚稳态。在本实施例中,M取3且慢时钟信号为双边沿触发,所述慢时钟信号的周期要大于6个快时钟信号周期,避免在第一时钟周期、第二时钟周期、第三时钟周期中出现两次跳变沿,导致最终所述慢时钟域数据同步到快时钟域时不准确。
具体地,步骤S2包括:
步骤S20c,在第一时钟周期,采样慢时钟信号作为第一采样信号并记为第一采样信号first;
步骤S21c、在第二时钟周期,将慢时钟域数据同步到快时钟域,也就是执行预同步步骤,在步骤S2前还设置有预同步步骤:当M=3时,在第二时钟周期下,将慢时钟域数据同步到快时钟域(同样地,由于后一个时钟周期才能将前一个时钟周期的慢时钟域数据同步到快时钟域,此时保存第二时钟周期对应的慢时钟域数据,在第三时钟周期执行同步步骤)。
步骤S22c、在第三时钟周期,判断采样得到的所述第一采样信号的电平和所述第二采样信号的电平是否相等;当采样得到的第一采样信号的电平和第二采样信号的电平不相等,则判定所述慢时钟信号的跳变沿触发在第一时钟周期或第二时钟周期的任一时钟周期内,将慢时钟域数据同步到快时钟域。若采样得到的第一采样信号first的电平和第二采样信号second的电平不相等(在本实施例中,也就是当第一采样信号first为低电平,第二采样信号为高电平时或者第一采样信号first为高电平,第二采样信号为低电平时),则判定所述慢时钟信号的跳变沿触发在第一时钟周期或第二时钟周期的任一时钟周期内,将第三时钟周期下的慢时钟域数据同步到快时钟域(同样地,在第四时钟周期执行同步的过程)。若所述第一采样信号的电平和所述第二采样信号的电平相等,则保留步骤S21c中的快时钟域数据;
步骤S23c、在第四时钟周期,判断采样得到的第一采样信号、第二采样信号、第三采样信号的电平。若采样得到的第一采样信号first的电平和第二采样信号second的电平相等(也就是当第一采样信号first、第二采样信号同时为高电平或者同时为低电平时)且第二采样信号second的电平和第三采样信号third的电平不相等(也就是第二采样信号为低电平,第三采样信号third为高电平时或第二采样信号为高电平,第三采样信号third为低电平时),则判定所述慢时钟信号的跳变沿触发在第三时钟周期内,将第四时钟周期下的慢时钟域数据同步到快时钟域(保存第四时钟周期的慢时钟域数据,在第五时钟周期执行这一同步步骤)。若第一采样信号的电平、第二采样信号的电平以及第三采样信号的电平均相等,则保留步骤S21c中的快时钟域数据。
本实施例还提供了一种慢时钟域到快时钟域数据同步系统2与实施例一基本相同,不同之处在于数据同步模块24的设定不同。
具体地,所述数据同步模块24设置为状态机,具体的状态机设置如图10所示。在计数值cnt为2时,状态机状态由IDLE转为S0;计数值cnt为3时,状态机状态由S0转为S1;计数值cnt为4时,状态机状态由S1转为S2;计数值cnt为5时状态机状态由S2转为IDLE。
作为示例,在S0状态下,所述同步单元242将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中。之后进一步判断存储的慢时钟域模块22的数据应该被保留还是舍弃。在S1状态下若第一采样信号first和第二采样信号second不相等,则所述同步单元242再将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中以覆盖上一次的值。之后在S2状态下,在第一采样信号first和第二采样信号second相等的前提下,若第二采样信号second和第三采样信号不相等,所述同步单元242则再将慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中以覆盖上一次的值,当计数值cnt变为5时状态由S2转为IDLE,且会生成快时钟信号clk_a时钟域下的一个脉冲信号done,done为此次同步完成标志,在done为高电平时读取快时钟域模块21的数据data_a的值即为同步后的正确值。
下面结合图11对本实施例的工作过程进行说明,在本实施例中M=3且慢时钟信号为双边沿触发,以快时钟信号的每一个上升沿时刻作为标记的时刻,则第一个上升沿时刻为时刻t1’,第二个上升沿时刻为时刻t2’,以此类推,此处不一一赘述。
时刻t1’,触发信号start为0,不对慢时钟信号采样。时刻t2’,触发信号start为1,触发信号在快时钟域触发。
时刻t3’,触发信号start结束,计数器231开始计数,计数值由0随着快时钟信号的上升沿逐次增加1。
时刻t4’,计数值cnt等于1的时候,也就是第一时钟周期。在这个时钟周期采样得到慢时钟域模块22的第一采样信号记为first。在本实施例中,由于慢时钟信号的上升沿不发生在第一时钟周期内,此时采样到第一采样信号first=0。
时刻t5’,计数值cnt等于2的时候,也就是第二时钟周期。在这个时钟周期采样得到时钟域模块22的第三采样信号记为second。与此同时,状态机状态为S0,在这个时候预先同步一次也就是,在这个时刻,将第二时钟周期对应的慢时钟域模块22的数据data_b的值缓存一次到快时钟域模块21的存储数据data_a中(同样地,该步骤在第三时钟周期中完成同步)。在本实施例中,由于慢时钟信号的上升沿发生在第二时钟周期内,此时采样到第二采样信号second=1。
时刻t6’,计数值cnt等于3的时候,也就是第三时钟周期。在这个时钟周期采样得到时钟域模块22的第三采样信号记为third。此时状态机状态为S1,通过判定单元241判定慢时钟信号是否在第一时钟周期和第二时钟周期的任一时钟周期发生了跳变,也就是判定第一采样信号first是否等于第二采样信号second:如果第一采样信号first不等于第二采样信号second,则表示慢时钟域的跳变沿发生在第一时钟周期和第二时钟周期的任一时钟周期内,则在第二时钟周期下缓存的慢时钟域模块22的数据data_b可能为亚稳态的,需要舍弃,此时缓存本次时钟周期(第三时钟周期)下的慢时钟域模块22的数据data_b覆盖上次暂存的数据(同样地,在第四时钟周期执行同步步骤用以保留第三时钟周期对应的慢时钟域数据);如果第一采样信号first等于第二采样信号second,则表示慢时钟域的跳变沿不发生在第一时钟周期和第二时钟周期的任一时钟周期内,则上一时钟周期的慢时钟域模块22的数据data_b不是亚稳态的,可暂存。在本实施例中,由于第一采样信号first=0,第二采样信号second=1,判定两者不相等,则舍弃上一时钟周期存储的数据,缓存本次时钟周期(即:第三时钟周期)对应的慢时钟域模块22的数据data_b。此时,第三采样信号third=0。
时刻t7’,计数值cnt等于4的时候,也就是第四时钟周期。此时状态机状态为S2,判定单元241判定在慢时钟信号未在第一时钟周期和第二时钟周期中任一时钟周期发生跳变的前提下,是否在第三时钟周期发生了跳变,也就是判定前两个采样信号first和second是否等于第三采样信号third。本实施例中,在第一采样信号first和第二采样信号second相等的前提下,可以判定第二采样信号second是否等于第三采样信号third,从而判定是否在第三时钟周期内发生变化:如果在第一采样信号first和第二采样信号second相等的前提下,第二采样信号second不等于第三采样信号third,则第三时钟周期内慢时钟信号发生了跳变,此时缓存本次时钟周期(第四时钟周期)下的慢时钟域模块22的数据data_b覆盖上次暂存的数据(保存第四时钟周期对应的慢时钟域数据,在第五时钟周期执行这一保存步骤);如果在第一采样信号first和第二采样信号second相等的前提下,第二采样信号second等于第三采样信号third,则第一时钟周期、第二时钟周期、第三时钟周期下的慢时钟域模块22的数据data_b均不是亚稳态的,任取第一时钟周期、第二时钟周期、第三时钟周期任一时钟周期可以暂存,但是而由于已经存储了一次第二时钟周期对应的慢时钟域的数据,则可以直接使用该数据。
时刻t8’,计数值等于5的时候,也就是第五时钟周期。状态机状态返回到IDLE,同时生成脉冲信号done,表示同步完成。
时刻t9’,脉冲信号done结束,读取存储在快时钟域模块21的数据。
通过以上工作过程可知,在四个快时钟周期内就可以实现慢时钟域到快时钟域的数据信号同步
综上所述,本发明提供一种慢时钟域到快时钟域数据同步方法及数据同步系统,包括:S1、依次在快时钟信号的第一时钟周期至第M个时钟周期采样慢时钟信号,并分别记为第一采样信号至第M采样信号;S2、判断慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;若均没有触发,则在第一时钟周期至第M时钟周期中任一时钟周期下,将慢时钟域数据同步到快时钟域若发生触发,则进一步判断跳变沿触发对应的快时钟周期,并在后一个快时钟周期,将慢时钟域数据同步到快时钟域。本发明无需使用数据缓存器FIFO进行跨时钟域数据信号同步,大大缩短了慢时钟域到快时钟域数据同步的时间,节省了资源,提高了数据同步的效率并防止了亚稳态。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (14)

1.一种慢时钟域到快时钟域数据同步方法,其特征在于,所述慢时钟域到快时钟域数据同步方法至少包括:
S1、依次在快时钟信号的第一时钟周期至第M个时钟周期采样慢时钟信号,并分别记为第一采样信号至第M采样信号;M为大于等于2的自然数且M小于等于所述慢时钟信号的周期与所述快时钟信号的周期的比值;其中,所述第一时钟周期至所述第M个时钟周期中最多只有一个慢时钟信号的跳变沿;
S2、基于所述第一采样信号至所述第M采样信号,判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;若均没有触发,则在第一时钟周期至第M时钟周期中任一时钟周期下,将慢时钟域数据同步到快时钟域若发生触发,则进一步判断跳变沿触发对应的快时钟周期,并在后一个快时钟周期,将慢时钟域数据同步到快时钟域。
2.根据权利要求1所述的慢时钟域到快时钟域数据同步方法,其特征在于:所述快时钟信号为上升沿触发或下降沿触发。
3.根据权利要求1所述的慢时钟域到快时钟域数据同步方法,其特征在于:在步骤S2前还设置有预同步步骤,包括:当M=2时,在第一时钟周期下,将慢时钟域数据同步到快时钟域作为快时钟域数据;当M=3时,在第二时钟周期下,将慢时钟域数据同步到快时钟域作为快时钟域数据。
4.根据权利要求3所述的慢时钟域到快时钟域数据同步方法,其特征在于:当M=2且所述慢时钟信号为上升沿触发时,
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿,则将第三时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,保留预同步步骤中的所述快时钟域数据。
5.根据权利要求4所述的慢时钟域到快时钟域数据同步方法,其特征在于:
S20a、在第一时钟周期,将慢时钟域数据同步到快时钟域;
S21a、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当所述第一采样信号为高电平时,则将第二时钟周期的慢时钟域数据同步到快时钟域;当所述第一采样信号为低电平时,则保留步骤S20a的快时钟域数据;
S22a、在第三时钟周期,判断采样得到的所述第一采样信号及所述第二采样信号的电平;若采样得到的所述第一采样信号为低电平且所述第二采样信号为高电平,则将慢时钟域数据同步到快时钟域;若采样得到的所述第一采样信号为低电平且所述第二采样信号为低电平,则保留步骤S20a的快时钟域数据。
6.根据权利要求3所述的慢时钟域到快时钟域数据同步方法,其特征在于:当M等于2且所述慢时钟信号为下降沿触发时,
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的上升沿,则将第二时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号的下降沿,则将第三时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续低电平状态,则将第二时钟周期下的慢时钟域数据同步到快时钟域;
若在快时钟信号的第一时钟周期和第二时钟周期采集到慢时钟信号持续高电平状态,保留预同步步骤中的快时钟域数据。
7.根据权利要求6所述的慢时钟域到快时钟域数据同步方法,其特征在于:
S20b、在第一时钟周期,将慢时钟域数据同步到快时钟域;
S21b、在第二时钟周期,判断采样得到的所述第一采样信号的电平;当所述第一采样信号为低电平时,则将第二时钟周期的慢时钟域数据同步到快时钟域;当所述第一采样信号为高电平时,则保留步骤S20b的快时钟域数据;
S22b、在第三时钟周期,判断是否采样得到的所述第一采样信号及所述第二采样信号的电平;若采样得到的所述第一采样信号为高电平且所述第二采样信号为低电平,则将慢时钟域数据同步到快时钟域;若采样得到的所述第一采样信号为高电平且所述第二采样信号为高电平,则保留步骤S20b的快时钟域数据。
8.根据权利要求3所述的慢时钟域到快时钟域数据同步方法,其特征在于:当M等于3时,
S20c,在第一时钟周期,采样慢时钟信号作为第一采样信号;
S21c、在第二时钟周期,采样慢时钟信号作为第二采样信号;将慢时钟域数据同步到快时钟域;
S22c、在第三时钟周期,判断采样得到的所述第一采样信号及所述第二采样信号的电平;若所述第一采样信号的电平和所述第二采样信号的电平不相等,则将第三时钟周期下的慢时钟域数据同步到快时钟域;若所述第一采样信号的电平和所述第二采样信号的电平相等,则保留步骤S21c中的快时钟域数据;
S23c、在第四时钟周期,判断采样得到的所述第一采样信号、所述第二采样信号及所述第三采样信号的电平;若所述第一采样信号的电平和所述第二采样信号的电平相等且所述第二采样信号的电平和所述第三采样信号的电平不相等,则将第四时钟周期下的慢时钟域数据同步到快时钟域;若所述第一采样信号的电平、所述第二采样信号的电平以及所述第三采样信号的电平均相等,则保留步骤S21c中的快时钟域数据。
9.根据权利要求1~8任一项所述的慢时钟域到快时钟域数据同步方法,其特征在于:所述慢时钟信号的周期大于等于10倍的所述快时钟信号的周期。
10.一种慢时钟域到快时钟域数据同步系统,用于实现如权利要求1~9任一项所述的慢时钟域到快时钟域数据同步方法,其特征在于,所述慢时钟域到快时钟域数据同步系统至少包括:快时钟域模块、慢时钟域模块、时钟信号采样模块以及数据同步模块;
所述时钟信号采样模块接收所述快时钟域模块的快时钟信号及所述慢时钟域模块的慢时钟信号,基于所述快时钟信号的第一时钟周期至第M时钟周期依次采样慢时钟信号;
所述数据同步模块的输入端连接所述时钟信号采样模块的输出信号,用于判断所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发并基于判断结果控制所述慢时钟域模块的数据同步到所述快时钟域模块。
11.根据权利要求10所述的慢时钟域到快时钟域数据同步系统,其特征在于:所述时钟信号采样模块包括计数器和采样单元;
所述计数器接收所述快时钟域模块的快时钟信号,输出端连接所述采样单元的控制端,用于控制所述采样单元的采样次数;其中所述计数器的计数周期大小等于所述快时钟域模块的时钟信号的周期大小;
所述采样单元的输入端连接所述慢时钟域模块的时钟信号输出端,基于所述计数器的输出信号对所述述慢时钟域模块的时钟信号依次采样并将结果输出到所述判定单元的输入端。
12.根据权利要求11所述的慢时钟域到快时钟域数据同步系系统,其特征在于:所述时钟信号采样模块还包括计数触发器;
所述计数触发器的输入端连接所述快时钟域模块,输出端连接所述计数器的控制端,用于为所述计数器提供计数的触发信号。
13.根据权利要求10所述的慢时钟域到快时钟域数据同步系统,其特征在于:所述数据同步模块设置为状态机。
14.根据权利要求10或13所述的慢时钟域到快时钟域数据同步系统,其特征在于:所述数据同步模块包括判定单元以及同步单元;
所述判定单元的输入端连接所述时钟信号采样模块的输出信号,用于判定所述慢时钟信号的跳变沿是否在第一时钟周期至第M时钟周期的任一时钟周期内触发;
所述同步单元的控制端连接所述判定单元的输出信号,输入端连接所述慢时钟域模块的数据输出端,输出端连接所述快时钟域模块的数据输入端,基于所述判定单元的判定结果控制所述慢时钟域模块的数据同步到所述快时钟域模块。
CN202310402084.0A 2023-04-14 2023-04-14 慢时钟域到快时钟域数据同步方法及数据同步系统 Pending CN116541333A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310402084.0A CN116541333A (zh) 2023-04-14 2023-04-14 慢时钟域到快时钟域数据同步方法及数据同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310402084.0A CN116541333A (zh) 2023-04-14 2023-04-14 慢时钟域到快时钟域数据同步方法及数据同步系统

Publications (1)

Publication Number Publication Date
CN116541333A true CN116541333A (zh) 2023-08-04

Family

ID=87448010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310402084.0A Pending CN116541333A (zh) 2023-04-14 2023-04-14 慢时钟域到快时钟域数据同步方法及数据同步系统

Country Status (1)

Country Link
CN (1) CN116541333A (zh)

Similar Documents

Publication Publication Date Title
US8260982B2 (en) Method for reducing latency
US6081478A (en) Separate byte control on fully synchronous pipelined SRAM
CN101692346B (zh) 一种存储器数据采样装置及一种采样控制器
US10725950B2 (en) Peripheral interface circuit for serial memory
CN101124553A (zh) 去耦存储器访问系统和方法
JPS61148692A (ja) 記憶装置
CN116521604B (zh) 一种同步数据的方法及相关装置
CN103177133A (zh) 一种数据采集和存储的系统及方法
KR101666590B1 (ko) 글리치 프리 및 파워 세이빙 기능을 갖는 시프트 레지스터 회로
CN112712829A (zh) 一种跨时钟域的寄存器读写电路及方法
US5864252A (en) Synchronous circuit with improved clock to data output access time
JP2551493B2 (ja) キー信号遅延装置
CN116541333A (zh) 慢时钟域到快时钟域数据同步方法及数据同步系统
CN111723541A (zh) 一种跨时钟域数据接口的实现方法
JPS6323581B2 (zh)
US10742216B1 (en) Clock domain crossing for an interface between logic circuits
CN100449513C (zh) 一种cpu的读写方法及其实现电路
CN101667448A (zh) 存储器存取控制装置及其相关控制方法
JPS6226743B2 (zh)
KR100224992B1 (ko) 에이티엠 셀 경계 식별장치
EP1122733A1 (en) Internal regeneration of the address latch enable (ALE) signal of a protocol of management of a burst interleaved memory and relative circuit
JP3345501B2 (ja) 遅延回路
SU824191A1 (ru) Устройство дл задержки сигналов
JP2976991B2 (ja) 画像データの高速抽出装置
JP2552388B2 (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