一种数据同步的方法及装置制造方法

文档序号:7980130阅读:113来源:国知局
一种数据同步的方法及装置制造方法
【专利摘要】本发明实施例提供了一种数据同步的方法及装置,其中方法包括:利用设定的异步时钟对输入的数据进行1:N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号;利用设定的同步时钟对第一同步信号进行延迟得到第二同步信号和第三同步信号;在同步时钟的每个采样沿,判断第二同步信号和第三同步信号是否相等,生成沿触发信号进行计数操作;利用同步时钟和输出的各计数的数值,依次对N路数据进行采样,得到N:1复用的输出数据。本发明解决了对RAM的资源要求较高且延时时间较长的问题。
【专利说明】一种数据同步的方法及装置
【技术领域】
[0001]本发明涉及数字信号传输领域,尤其涉及一种数据同步的方法及装置。
【背景技术】
[0002]随着数字系统的规模越来越大、复杂程度越来越高,两个或多个时钟域在逻辑设计中的应用越来越多。在不同的时钟域中,不可避免地会遇到数据的互相传递。由于两个不同的时钟之间会存在一定的相位差和短时的频率抖动,为了使数据能够可靠传输,在进行设计时,必须充分考虑时序对功能的影响,否则会照成两个时钟域之间的数据同步失败。
[0003]目前,将数据由异步时钟域转换到同步时钟域通常采用双口RAM缓存数据的方法来实现:用异步时钟作为双口 RAM的写时钟,写时钟产生双口 RAM的写地址,由写时钟在一个端口写入数据;再用同步时钟作为读时钟,并产生双口 RAM的读地址,读时钟在另一个端口读出数据;该双口 RAM深度是根据需要容忍的短时频差范围来确定。分别将读写地址用同步时钟采样并进行比较,以判断读写地址之间的距离是否小于可能发生读、写冲突的最小距离,即“危险距离”,如果是,则将读地址跳转,转到离当前位置最远的地址后,再执行读操作;否则不必调整读地址,直接执行读操作。
[0004]经过上述方法读出来的数据,虽然能达到既稳定又正确,还可以屏蔽异步时钟和本地同步时钟之间的相位差以及短时的频率抖动问题,能够实现异步时钟域的数据同步,但是利用此方法,需要依赖可编程逻辑器件的RAM资源,此外,同步数据的延时时间较长,需要由双口 RAM的设计深度决定。

【发明内容】

[0005]本发明实施例提供了一种数据同步的方法及装置,用以解决现有数据同步技术中对RAM的深度要求较高且延时时间较长的问题。
[0006]基于上述问题,本发明实施例提供的一种数据同步的方法,包括:
[0007]利用设定的异步时钟对输入的数据进行1:N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数;
[0008]利用设定的同步时钟对所述第一同步信号进行延迟得到第二同步信号和第三同步信号,所述第二同步信号与所述第三同步信号相差至少一个同步时钟周期;
[0009]在所述同步时钟的每个采样沿,判断所述第二同步信号和所述第三同步信号是否相等,且在第一次判断出不相等时,生成沿触发信号并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,在生成下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数;若否,计数为所述设定的第一数值;依次输出每次计数的数值;
[0010]利用所述同步时钟和输出的各计数的数值,依次对所述N路数据进行采样,得到N:1复用的输出数据。[0011]本发明实施例提供的一种数据同步的装置,包括:
[0012]解复用模块,用于利用设定的异步时钟对输入的数据进行1:N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数;
[0013]同步模块,用于利用设定的同步时钟对经所述解复用模块得到的所述第一同步信号进行延迟得到第二同步信号和第三同步信号,所述第二同步信号与所述第三同步信号相差一个同步时钟周期,和用于在所述同步时钟的每个采样沿,判断所述第二同步信号和所述第三同步信号是否相等,且在不相等时生成沿触发信号;
[0014]计数模块,用于接收所述同步模块在第一次判断出不相等时生成沿触发信号,并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,所述计数模块在接收到所述同步模块生成的下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数;若否,计数为所述设定的第一数值;所述计数模块依次输出每次计数的数值;
[0015]复用模块,用于利用所述同步时钟和所述计数模块输出的各计数的数值,依次对所述N路数据进行采样,得到N:1复用的输出数据。
[0016]本发明实施例的有益效果包括:本发明实施例提供的数据同步的方法及装置,利用设定的异步时钟对输入的数据进行1:N解复用得到N路数据和第一同步信号后,再利用设定的同步时钟对第一同步信号进行延迟得到第二同步信号和第三同步信号,然后根据同步时钟采样沿判断第二同步信号和第三同步信号是否相等,生成沿触发信号进行计数操作,最后利用同步时钟和输出的各计数的数值,依次对N路数据进行采样即可得到同步数据。本发明实施例可使得输入的数据在解复用生成多路数据后,根据对两路同步信号进行比较,触发计数器进行计数,,根据计数器的数值对多路数据采样并复用输出,减少了数据传输的延时,避免了现有数据同步技术中,需要依赖可编程逻辑器件的RAM资源解决数据同步的问题,同时,数据的同步延时也可以得到较好的控制,不需要由双口 RAM的设计深度来决定。
【专利附图】

【附图说明】
[0017]图1为本发明实施例提供的数据同步的方法的流程图;
[0018]图2为本发明实施例提供的数据同步过程的时序图之一;
[0019]图3为本发明实施例提供的数据同步过程的时序图之二 ;
[0020]图4为本发明实施例提供的数据同步的装置的结构示意图;
[0021]图5为本发明实施例提供的同步模块与计数模块交互示意图。
【具体实施方式】
[0022]下面结合说明书附图,对本发明实施例提供的一种数据同步的方法及装置的【具体实施方式】进行说明。
[0023]本发明实施例提供的一种数据同步的方法,如图1所示,具体包括以下步骤:
[0024]SlOl:利用设定的异步时钟对输入的数据进行1:N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数。
[0025]较佳地,上述第一同步信号可以通过下述方式得到:
[0026]以解复用后的任意一路数据的帧头位置作为第一同步信号的上升沿或下降沿,以至少大于2个异步时钟周期作为第一同步信号的脉冲宽度,得到第一同步信号。
[0027]具体地,在本发明实施例中,可以采用设定的异步时钟的上升沿或下降沿对输入的数据进行1:N解复用,在解复用的过程中使得输入的数据的速率下降到原来的1/N。
[0028]如图2所示,以同源的、但有传输延时变化的异步时钟为例,假设N = 3,利用异步时钟的上升沿对输入的I路数据(数据A+数据B+数据C)进行解复用,解复用后在tl时亥lj、t2时刻和t3时刻分别输出3路数据,即数据Dtl(对应速率降低后的数据A)、数据D1 (对应速率降低后的数据B)和数据D2 (对应速率降低后的数据C);以tl时刻的数据Dtl为例,输出数据Dtl时的速率是原来输入的I路数据中数据A的1/3 ;
[0029]在此过程中,还以数据Dtl的帧头位置作为上升沿,以至少大于2个异步时钟周期作为脉冲宽度得到的周期为6个异步时钟周期的第一同步信号(sync)。在本发明实施例中,为了保证后续设定的同步时钟能够可靠采样到数据,sync的脉冲宽度需要至少大于2个异步时钟周期。
[0030]S102:利用设定的同步时钟对第一同步信号进行延迟得到第二同步信号和第三同步信号,第二同步信号与第三同步信号相差一个同步时钟周期。
[0031]较佳地,第二同步信号和第三同步信号通过下述方式得到:
[0032]按照同步时钟的上升沿或下降沿对第一同步信号进行延迟,得到第二同步信号;
[0033]对第二同步信号延迟一个同步时钟周期得到第三同步信号。
[0034]如图2所示,采用同步时钟的下降沿对得到的sync进行延迟,在k0时刻得到第二同步信号(syncl),对syncl延迟I个同步周期在kl时刻得到第三同步信号(sync2)。
[0035]S103:在同步时钟的每个采样沿,判断第二同步信号和第三同步信号是否相等,且在第一次判断出不相等时,生成沿触发信号并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,在生成下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数;若否,计数为设定的第一设定数值;依次输出每次计数的数值。
[0036]较佳地,上述可以利用M位计数器进行计数,其中M= r1g2I^,即M的取值为
1g2N的上取整。
[0037]在上述步骤S103中,采用同步时钟的每个采样沿在第一次判断出syncl和sync2不相等时,生成沿触发信号,在这一时刻,计数器开始计数,计数为设定的第一数值,即第一数值是指计数器开始计数的数值。在本发明实施例中,计数器可以从O到N-1进行累加计数,也可以从N-1到O进行递减计数,还可以从2或3等开始进行计数,即设定的第一数值可以为0、2、3或N-1等。
[0038]具体地,在实际应用时,为了避免时钟丢失或者毛刺会引起输出数据的滑码,在下一次生成沿触发信号的时刻,可以对上一次的计数数值进行判断,如果判断出上一次的计数数值为设定的第二数值,则计数器不用调整,继续按照计数周期(同步时钟同期)累加(或递减)进行计数,如果不是设定的第二数值,则计数器计数为设定的第一数值。在本明实施例中,设定的第二数值是用于在后续生成沿触发信号的时刻对上一次计数器的计数数值进行判断的数值,第二数值的取值可以灵活选择,例如,设定的第二数值可以是2,也可以是5、6或O。在本发明实施例中,设定的第一数值和设定的第二数值可以相同,也可以不同。
[0039]如图2所示,假设N = 3,则M = 2,即采用2位计数器进行计数,在图2中,假设设定的第一数值为0,即计数器从O开始计数,设定的第二数值为2,在产生沿触发信号的yO时刻,判断出上一次的计数结果为2,即为设定的第二数值,此时计数器继续进行计数,计数为0,后续在yl、y2和y3时刻分别输出1、2和O。
[0040]S104:利用同步时钟和输出的各计数的数值,依次对N路数据进行采样,得到N:1复用的输出数据。
[0041]较佳地,本发明实施例可以利用同步时钟从任一计数数值开始,依次对N路数据进行采样,得到N:1复用的输出数据。
[0042]如图2所示,在yO时刻触发计数器输出为0,同步时钟在yl时刻对计数器采样为0,根据计数数值O对数据Dtl采样输出(一段数据A);在y2时刻,根据计数数值I对数据D1采样输出(一段数据B);在y3时刻根据计数数值2对数据D2采样输出(一段数据C)。具体采样过程属于现有技术,在此不再赘述。
[0043]上述图2是以N = 3为例对本发明实施例进行的说明,针对包含D(O)、D⑴……D(N-1)多段数据利用异步时钟对输入的数据进行1:N解复用的情况,如图3所示,异步时钟采用上升沿处理,在to时刻对输入数据开始解复用,解复用后分别在接下来的tl时刻到t(N)时刻的N个时钟周期,分别输出Dc^DpD2'....Dim共N路解复用后的数据,每路数据的速率是原来输入数据的1/N,同步信号sync以2N个异步时钟宽度为周期,在t0时刻跳变,和Dtl帧头位置对齐。通过sync和同步时钟,得到延迟后的同步信号syncl和sync2,将两
者比较后,计数器计数为0、1、2……N-1,根据计数器计数的值分别对%、D1, D2.....Dn^1进
行采样,复用输出数据。D(0)`,、D⑴,…的数据与队為為、.…Dim数据的同步方法类似。
[0044]基于同一发明构思,本发明实施例还提供了一种数据同步的装置,由于该装置所解决问题的原理与前述数据同步的方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
[0045]如图4所示,本发明实施例提供数据同步的装置,包括:
[0046]解复用模块401,用于利用设定的异步时钟对输入的数据进行1:N解复用,得到每个宽度为N个异步时钟周期的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数。
[0047]较佳地,解复用模块401具体用于以解复用后的任意一路数据的帧头位置作为第一同步信号的上升沿或下降沿,以至少大于2个异步时钟周期作为第一同步信号的脉冲宽度,得到第一同步信号。
[0048]同步模块402,用于利用设定的同步时钟对经解复用模块401得到的第一同步信号进行延迟得到第二同步信号和第三同步信号,第二同步信号与第三同步信号相差至少一个同步时钟周期,和用于在同步时钟的每个采样沿,判断第二同步信号和第三同步信号是否相等,且在不相等时生成沿触发信号。
[0049]较佳地,同步模块402具体用于按照同步时钟的上升沿或下降沿对第一同步信号进行延迟,得到第二同步信号;对第二同步信号延迟一个同步时钟周期得到第三同步信号。
[0050]计数模块403,用于接收同步模块402在第一次判断出不相等时生成沿触发信号,并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,计数模块403在接收到同步模块402生成的下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数;若否,计数为设定的第一数值;计数模块403依次输出每次计数的数值。
[0051 ] 较佳地,计数模块403为Qog2Nn的计数器。
[0052]在本发明实施例中,同步模块402在具体实施时,可以通过如图5所示的信号同步单元501 (生成两路同步信号syncl和sync2)、判断单元502 (对两路同步信号判断是否相等)以及M位计数器403实现,当然,本发明实施例也不限于此种具体的结构划分形式。
[0053]复用模块404,用于利用同步时钟和计数模块输出的各计数的数值,依次对N路数据进行采样,得到N:1复用的输出数据。
[0054]较佳地,复用模块404可以利用同步时钟从任一计数数值开始,依次对N路数据进行采样,得到N:1复用的输出数据。
[0055]本发明实施例提供的数据同步的方法及装置,利用设定的异步时钟对输入的数据进行1:N解复用得到N路数据和第一同步信号后,再利用设定的同步时钟对第一同步信号进行延迟得到第二同步信号和第三同步信号,然后根据同步时钟采样沿判断第二同步信号和第三同步信号是否相等,生成沿触发信号进行计数操作,最后利用同步时钟和输出的各计数的数值,依次对N路数据进行采样即可得到同步数据。本发明实施例可使得输入的数据在解复用生成多路数据后,根据对两路同步信号进行比较生成的计数数值,对多路数据采样并同步输出,减少了数据传输的延时,避免了现有数据同步技术中,需要依赖可编程逻辑器件的RAM资源解决数据同步的问题,同时,数据的同步延时也可以得到较好的控制,不需要由双口 RAM的设计深度来决定。
[0056]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种数据同步的方法,其特征在于,包括: 利用设定的异步时钟对输入的数据进行1:N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数; 利用设定的同步时钟对所述第一同步信号进行延迟得到第二同步信号和第三同步信号,所述第二同步信号与所述第三同步信号相差一个同步时钟周期; 在所述同步时钟的每个采样沿,判断所述第二同步信号和所述第三同步信号是否相等,且在第一次判断出不相等时,生成沿触发信号并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,在生成下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数,若否,计数为所述设定的第一数值;依次输出每次计数的数值; 利用所述同步时钟和输出的各计数的数值,依次对所述N路数据进行采样,得到N:1复用的输出数据。
2.如权利要求1所述的方法,其特征在于,第一同步信号通过下述方式得到: 以解复用后的任意一路数据的帧头位置作为第一同步信号的上升沿或下降沿,以至少 大于2个异步时钟周期作为第一同步信号的脉冲宽度,得到所述第一同步信号。
3.如权利要求1所述的方法,其特征在于,利用设定的同步时钟对所述第一同步信号进行延迟得到第二同步信号和第三同步信号,包括: 按照所述同步时钟的上升沿或下降沿对所述第一同步信号进行延迟,得到所述第二同步信号; 对所述第二同步信号延迟一个同步时钟周期得到所述第三同步信号。
4.如权利要求1所述的方法,其特征在于,利用M位计数器进行计数,其中M= r1g2N1。
5.一种数据同步的装置,其特征在于,包括: 解复用模块,用于利用设定的异步时钟对输入的数据进行I =N解复用,得到每路传输速率是输入的数据的1/N的N路数据和周期为2N个异步时钟周期的第一同步信号,其中N为大于I的整数; 同步模块,用于利用设定的同步时钟对经所述解复用模块得到的所述第一同步信号进行延迟得到第二同步信号和第三同步信号,所述第二同步信号与所述第三同步信号相差一个同步时钟周期,和用于在所述同步时钟的每个采样沿,判断所述第二同步信号和所述第三同步信号是否相等,且在不相等时生成沿触发信号; 计数模块,用于接收所述同步模块在第一次判断出不相等时生成沿触发信号,并且计数为设定的第一数值,并在计数为设定的第一数值后按照同步时钟的周期继续进行计数,所述计数模块在接收到所述同步模块生成的下一次沿触发信号的时刻判断上一个计数的数值是否为设定的第二数值,若是,继续进行计数;若否,计数为所述设定的第一数值;所述计数模块依次输出每次计数的数值; 复用模块,用于利用所述同步时钟和所述计数模块输出的各计数的数值,依次对所述N路数据进行采样,得到N:1复用的输出数据。
6.如权利要求5所述的数据同步的装置,其特征在于,所述复用模块,具体用于以解复用后的任意一路数据的帧头位置作为第一同步信号的上升沿或下降沿,以至少大于2个异步时钟周期作为第一同步信号的脉冲宽度,得到所述第一同步信号。
7.如权利要求5所述的数据同步的装置,其特征在于,所述同步模块,具体用于按照所述同步时钟的上升沿或下降沿对所述第一同步信号进行延迟,得到所述第二同步信号;对所述第二同步信号延迟一个同步时钟周期得到所述第三同步信号。
8.如权利要求5所述的数据同步的装置,其特征在于,所述计数模块为位数为[log2N]的计数器。
【文档编号】H04J3/06GK103516455SQ201210207815
【公开日】2014年1月15日 申请日期:2012年6月21日 优先权日:2012年6月21日
【发明者】周恒箴, 高凤玲, 王艳 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1