CN103684698B - 数据信号的处理方法和装置 - Google Patents
- ️Tue Jun 06 2017
CN103684698B - 数据信号的处理方法和装置 - Google Patents
数据信号的处理方法和装置 Download PDFInfo
-
Publication number
- CN103684698B CN103684698B CN201310747048.4A CN201310747048A CN103684698B CN 103684698 B CN103684698 B CN 103684698B CN 201310747048 A CN201310747048 A CN 201310747048A CN 103684698 B CN103684698 B CN 103684698B Authority
- CN
- China Prior art keywords
- data signal
- clock
- signal
- data
- acquiring Prior art date
- 2013-12-30 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
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种数据信号的处理方法和装置。其中,该方法包括:获取第一数据信号、第一时钟信号和第二时钟信号,其中,第一数据信号与第一时钟信号对应,第一时钟信号的时钟周期与第二时钟信号的时钟周期相同;若第一时钟信号相对于第二时钟信号的相位差位于第一预设区间,则使用第二时钟信号的上升沿采集第一数据信号;若相位差位于第二预设区间,则使用第二时钟信号的下降沿采集第一数据信号;根据采集第一数据信号所得到的数据信号获得第二数据信号,其中,第二数据信号与第二时钟信号对应。本发明解决了现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的技术问题。
Description
技术领域
本发明涉及电子电路领域,具体而言,涉及一种数据信号的处理方法和装置。
背景技术
现有的数据信号的跨时钟域传输的方案中,通常会使用一个时钟信号的跳变沿去采集与另一个时钟信号对应的数据信号,以得到与前一时钟信号对应的数据信号。然而在这种方案中,数据信号在跨时钟域传输的传输路径上的时序裕度是无法控制且不确定的,其时序裕度可以在一种情形下较大,也可以在另一种情形下较小,而当时序裕度较小时,由于作为采集对象的数据信号更新后的值的持续时间较短,其数据状态相对并不稳定,因此采集得到的数据也并不准确,从而影响了数据信号的跨时钟域传输的可靠性。换而言之,现有方案无法保证满足对时序裕度的要求,而其原因则可以归结为现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据信号的处理方法和装置,以至少解决现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的技术问题。
根据本发明实施例的一个方面,提供了一种数据信号的处理方法,包括:获取第一数据信号、第一时钟信号和第二时钟信号,其中,上述第一数据信号与上述第一时钟信号对应,上述第一时钟信号的时钟周期与上述第二时钟信号的时钟周期相同;若上述第一时钟信号相对于上述第二时钟信号的相位差位于第一预设区间,则使用上述第二时钟信号的上升沿采集上述第一数据信号;若上述相位差位于第二预设区间,则使用上述第二时钟信号的下降沿采集上述第一数据信号;根据采集上述第一数据信号所得到的数据信号获得第二数据信号,其中,上述第二数据信号与上述第二时钟信号对应。
根据本发明实施例的另一方面,还提供了一种数据信号的处理装置,包括:获取单元,用于获取第一数据信号、第一时钟信号和第二时钟信号,其中,上述第一数据信号与上述第一时钟信号对应,上述第一时钟信号的时钟周期与上述第二时钟信号的时钟周期相同;选择单元,用于在上述第一时钟信号相对于上述第二时钟信号的相位差位于第一预设区间时,使用上述第二时钟信号的上升沿采集上述第一数据信号,在上述相位差位于第二预设区间时,使用上述第二时钟信号的下降沿采集上述第一数据信号;处理单元,用于根据采集上述第一数据信号所得到的数据信号获得第二数据信号,其中,上述第二数据信号与上述第二时钟信号对应。
在本发明实施例中,采用了根据第一时钟信号与第二时钟信号之间的相位差在使用第二时钟信号的上升沿还是下降沿之间对与第一时钟信号对应的第一数据信号进行采集之间进行选择的方式,以获得与第二时钟信号对应、且满足对时序裕度的要求的第二时钟信号,其中,对时序裕度的控制可以通过上述选择机制结合第一预设区间和第二预设区间来实现,进而解决了现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的技术问题。进一步地,可以通过对第一预设区间和第二预设区间的合理设置满足对数据信号的跨时钟域传输的设计要求,并提高数据信号的跨时钟域传输的可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种数据信号的处理方法的示意图;
图2是根据现有技术的一种数据信号的跨时钟域传输的示意图;
图3是根据现有技术的另一种数据信号的跨时钟域传输的示意图;
图4是根据本发明实施例的一种数据信号的跨时钟域传输的示意图;
图5是根据本发明实施例的另一种数据信号的跨时钟域传输的示意图;
图6是根据本发明实施例的一种数据信号的处理装置的示意图;
图7是根据本发明实施例的另一种数据信号的处理装置的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
根据本发明实施例,提供了一种数据信号的处理方法,如图1所示,该处理方法包括:
S102:获取第一数据信号、第一时钟信号和第二时钟信号,其中,第一数据信号与第一时钟信号对应,第一时钟信号的时钟周期与第二时钟信号的时钟周期相同;
S104:若第一时钟信号相对于第二时钟信号的相位差位于第一预设区间,则使用第二时钟信号的上升沿采集第一数据信号;若该相位差位于第二预设区间,则使用第二时钟信号的下降沿采集第一数据信号;
S106:根据采集第一数据信号所得到的数据信号获得第二数据信号,其中,第二数据信号与第二时钟信号对应。
应当明确的是,本发明技术方案所要解决的技术问题之一是提供一种对数据信号进行处理的方法,以实现对该数据信号的跨时钟域的传输,也即,将与一个时钟信号对应的数据信号转换为与另一个时钟信号对应的数据信号,且这两个数据信号的内容是相同的,其中,为便于表述,将上述“一个时钟信号”记为第一时钟信号,将上述“另一个时钟信号”记为第二时钟信号,并将与第一时钟信号对应的该数据信号记为第一数据信号,将于第二时钟信号对应的该数据信号记为第二数据信号。
在本发明实施例中,第一数据信号与第一时钟信号之间的对应关系通常可以表现为二者相互对齐,也即,第一数据信号的更新频率与第一时钟信号的时钟频率相一致,且二者相位相同,例如,在图2中,如第2行所示的第一数据信号与如第1行所示的第一时钟信号对应。然而本发明对此不作限定,例如,在本发明的一些实施例中,第一数据信号与第一时钟信号之间的对应关系也可以表现为同频信号之间的某种确定的相位关系,正交或者反相等,在这一场景下,虽然第一数据信号与第一时钟信号并不对齐,然而由于二者之间的相位关系确定且已知,因此仍然可以通过第一时钟信号准确地推知第一数据信号的时序,从而第一数据信号仍可以视为在第一时钟信号的时钟域内。
类似地,在本发明实施例中,第二数据信号与第二时钟信号之间的对应关系也可以表现为与上述第一数据信号与第一时钟信号之间的对应关系相似,然而值得注意的是,这两个对应关系之间并不必然完全一致,例如,在本发明实施例中,第一数据信号可以与第一时钟信号对齐,而第二数据信号可以与第二时钟信号反相,本发明对此不作限定。此外,在本发明实施例中,第二时钟信号与第一时钟信号的时钟周期可以是相同的。
基于以上描述,本发明所提出的实现对数据信号的跨时钟域传输的上述问题也可以表述为:将与第一时钟信号对应的第一数据信号转换为与第二时钟信号对应的第二数据信号,其中,第一数据信号与第二数据信号的内容相同,然而时序有异,分别对应于第一时钟信号与第二时钟信号。
为解决这一问题,在现有方案中,通常会使用第二时钟信号的跳变沿去采集第一数据信号,以获得第二数据信号,例如,在图2中,可以使用如第3行所示的第二时钟信号的上升沿采集如第2行所示的第一数据信号,并可以将采集得到的、如第4行所示的数据信号作为第二数据信号,其中,从图2可以看出,第一数据信号与第一时钟信号对应,第二数据信号与第二时钟信号对应,从而实现数据信号的跨时钟域的传输。
容易看出,在图2中,如第2行所示的第一数据信号向如第4行所示的第二数据信号的传输路径上的时序裕度t1大于半个时钟周期T/2,其中T表示第一时钟信号的时钟周期,也就是说,使用第二时钟信号的上升沿采集第一数据信号时,第一数据信号更新为数值a这一状态的持续时间超过了T/2,从而该数据状态相对而言更容易地从由数值更新所产生的毛刺等扰动中恢复过来、并过渡到较为稳定的状态,进而使用第二时钟信号的上升沿采集得到的数据也较为准确,这对于数据信号的跨时钟域传输是有利的。
然而,事实上,对上述的现有方案而言,数据信号在跨时钟域传输的传输路径上的时序裕度是不确定的,在一个场景下,例如图2所示的情形,其时序裕度较大,在另一个场景下,例如图3所示的情形,其时序裕度t2则相对较小,至少小于半个时钟周期,则在该场景下使用第二时钟信号的上升沿采集第一数据信号时,由于第一数据信号更新为数值a的持续时间较短,因此其数据状态可能并不稳定,由此采集得到的数据也并不准确,从而影响了数据信号的跨时钟域传输的可靠性。换而言之,使用第二时钟信号的上升沿采集第一数据信号以生成第二数据信号的方式无法保证满足对上述时序裕度的要求,与之对应地,使用第二时钟信号的下降沿采集第一数据信号以生成第二数据信号的方式也存在类似的问题,而其原因则可以归结为现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的问题。
为解决这一问题,在本发明实施例中,可以沿承利用第二时钟信号采集第一数据信号以生成第二数据信号的方式,并在步骤S102中获取该第一数据信号和该第二时钟信号,然而区别于现有技术,根据本发明实施例提供的处理方法,在步骤S104中,可以根据第一时钟信号与第二时钟信号之间的相位关系在使用第二时钟信号的上升沿还是下降沿之间进行选择,其中,若第一时钟信号相对于第二时钟信号的相位差位于第一预设区间,则可以使用第二时钟信号的上升沿采集第一数据信号,若相位差位于第二预设区间,则可以使用第二时钟信号的下降沿采集第一数据信号。换而言之,在本发明实施例中,并非静态地使用第二时钟信号的上升沿或者下降沿采集第一数据信号,而是可以相对动态地针对不同的情形选择上升沿与下降沿之一进行采集,从而实现对数据信号在跨时钟传输的传输路径上的时序裕度的控制,进而达到对该时序裕度的要求。
需要说明的是,上述“动态地”选择并不限于实时地选择,在本发明实施例中,在“上升沿采集”与“下降沿采集”之间进行选择的周期可以为一个较短的时间周期,也可以是一个较长的时间周期,此外,该选择的机制还可以与其他机制、例如判断机制相互耦合,其中,这一选择也可以根据判断机制所产生的结果来触发,等,本发明对此不作限定。此外,作为可选的实施方式,上述选择机制既可以通过硬件逻辑,例如逻辑电路来实现,并可以进一步地封装在物理接口中以提高集成度及处理速度,并降低处理器的处理压力,其也可以通过软件逻辑,例如对MCU、FPGA或者PLC等可编程平台的编程来实现,本发明对此不作限定。
下面将结合图4和图5对本发明实施例的方案的工作原理进行详细解释。在本发明实施例中,上述第一预设区间可以设置为(T/2,T),上述第二预设区间可以设置为(0,T/2)。需要说明的是,在本申请中,第一时钟信号相对于第二时钟信号的相位差表示第一时钟信号相对于第二时钟信号的提前量,例如,若第一时钟信号相对于第二时钟信号提前1/4个时钟周期,则第一时钟信号相对于第二时钟信号的相位差为1/4个时钟周期。
如图4所示,在本发明实施例的一个场景下,第一时钟信号可以为如第1行所示时钟信号,第一数据信号可以为如第2行所示的数据信号,第二时钟信号可以为如第3行所示的时钟信号。在上述场景下,第一时钟信号相对于第二时钟信号的相位差大于半个时钟周期,也即位于第一预设区间(T/2,T)内,从而根据步骤S104,可以选择使用第二时钟信号的上升沿采集第一数据信号,并得到如第4行所示的数据信号作为第二数据信号。容易看出,在上述场景下,第一数据信号与第一时钟信号对应,第二数据信号与第二时钟信号对应,且第二数据信号的数据内容与第一数据信号一致,也即实现了第一数据信号的跨时钟域传输,在另一方面,该跨时钟域传输的传输路径上的时序裕度等于上述相位差,而上述相位差位于第一预设区间内、大于半个时钟周期,因此该时序裕度大于半个时钟周期,也即,在本发明实施例中,对时序裕度的控制可以部分地由第一预设区间来实现,从而可以通过对第一预设区间的合理设置以满足对该时序裕度的要求,进而达到准确地采集数据、以及提高数据信号的跨时钟域传输的可靠性的效果。
作为对比,在上述场景下,若选择第二时钟信号的下降沿采集第一数据信号,则得到的数据信号可以为如图4第5行由斜划线表示的数据信号,容易看出,采集到的该数据信号相对于第一数据信号的时序裕度小于半个时钟周期,并不符合与第一预设区间对应的对上述时序裕度的要求,进而可能导致数据信号的跨时钟域传输的可靠性较低的问题。
如图5所示,在本发明实施例的另一个场景下,第一时钟信号可以为如第1行所示时钟信号,第一数据信号可以为如第2行所示的数据信号,第二时钟信号可以为如第3行所示的时钟信号。在上述场景下,第一时钟信号相对于第二时钟信号的相位差小于半个时钟周期,也即位于第二预设区间(0,T/2)内,从而根据步骤S104,可以选择使用第二时钟信号的下降沿采集第一数据信号,并得到如第5行所示的数据信号作为第二数据信号。容易看出,在上述场景下,在实现第一数据信号的跨时钟域传输的基础上,该跨时钟域传输的传输路径上的时序裕度等于上述相位差加上半个时钟周期,而上述相位差位于第二预设区间内、小于半个时钟周期,因此该时序裕度大于半个时钟周期,也即,在本发明实施例中,对时序裕度的控制可以部分地由第二预设区间来实现,从而可以通过对第二预设区间的合理设置以满足对该时序裕度的要求,进而达到准确地采集数据、以及提高数据信号的跨时钟域传输的可靠性的效果。
作为对比,在上述场景下,若选择第二时钟信号的上升沿采集第一数据信号,则得到的数据信号可以为如图5第4行由斜划线表示的数据信号,容易看出,采集到的该数据信号相对于第一数据信号的时序裕度小于半个时钟周期,并不符合与第二预设区间对应的对上述时序裕度的要求,进而可能导致数据信号的跨时钟域传输的可靠性较低的问题。
通过上述实施例,对本发明实施例的方案的工作原理进行了阐述。值得注意的是,在本发明实施例中,对于第一预设区间而言,其所限定的时序裕度通常即为第一预设区间本身,而对于第二预设区间而言,当第二预设区间中的部分区间被设置为位于(0,T/2)时,由该部分区间所限定的时序裕度为该部分区间加上半个时钟周期,当第二预设区间中的部分区间被设置为位于(T/2,T)时,则由该部分区间所限定的时序裕度将实际表现为该部分区间减去半个时钟周期。也就是说,若要求数据信号的跨时钟域传输在传输路径上的时序裕度较大,则可以将第一预设区间设置在(T/2,T)内,并将第二预设区间设置在(0,T/2)内,反之则可以将二者对调,将第一预设区间设置在(0,T/2)内,并将第二预设区间设置在(T/2,T)内。对于第一预设区间和第二预设区间的具体设置及其应用,本发明不作任何限定。
当然,上述结论主要是基于第一数据信号与第一时钟信号对齐、且第二数据信号与第二时钟信号对齐的对应关系所导出的,在本发明的其他一些实施例中,对于该对应关系的其他表现形式,可以结合第一数据信号与第一时钟信号之间的确定的相位关系以及第二数据信号与第二时钟信号之间的确定的相位关系,得出经过与这两个相位关系对应的两次偏移后的分别由第一预设区间和第二预设区间所限定的时序裕度的范围,本发明在此不作累述。
需要进一步说明的是,本发明对第一数据信号的来源和用途以及第二数据信号的用途不作任何限定,其中,第一数据信号与第一时钟信号的对应关系通常可以来源于第一数据信号的获取方式,例如,在本发明的一些实施例中,第一数据信号可以是使用第一时钟信号的上升沿或者下降沿采集相应的数据所得到的的数据信号,且该采集可以为一次,也可以为多次。然而这并不意味着对本发明构成了限定,在本发明实施例中,获取第一数据信号之前对该数据信号的预处理过程还可以包括其他处理方式,例如具有确定延时的延迟处理或者反相处理等。此外,本发明对第一数据信号和第二数据信号的数据内容不作任何限定,例如,在本发明的一些实施例中,该第一数据信号可以表示存储器中的存储地址,第二数据信号既可以表示存储地址,也可以表示根据采集第一数据信号得到的数据信号所表示的存储地址、从存储器中读出的存储数据,其中,由第一数据信号表示的存储地址在时序上可以与第一时钟信号对应,而由第二数据信号表示的存储地址或者存储数据在时序上可以与第二时钟信号对应,在这一场景下,可以将第一数据信号作为存储器的写地址输入,将另一个数据信号作为该存储器的写数据输入,而第二数据信号可以是该存储器的读地址输入、或者是将采集第一数据信号得到的数据信号作为该存储器的读地址输入所得到的该存储器的读数据输出,从而可以通过第一数据信号的跨时钟域传输来实现上述“另一个数据信号”的跨时钟域的传输。这一实施方式尤其适用于对该“另一个数据信号”的跨时钟域传输的延迟的要求不高、但对其准确性和可靠性要求较高的应用场景,然而本发明对此并不作限定。
还需要说明的是,在本发明实施例中,上述第一数据信号既可以为串行数据信号,也可以为并行数据信号,其中,对于串行数据信号而言,其数据宽度既可以为1位,也可以为多位,其具体处理方式可以如上述实施例中所述,对于并行数据信号而言,若其多路数据信号是同步传输的,则可以采用类似于多位串行数据信号的处理方式进行处理,若其多路数据信号不同步,则可以将其每一路信号作为第一数据信号分别进行处理。
在以上描述的基础上,根据本发明实施例提供的数据信号的处理方法,在步骤S106中,可以根据采集第一数据信号所得到的数据信号获得第二数据信号,换而言之,在本发明实施例中,在通过步骤S104对第一数据信号进行采集后,既可以如前述实施例所示,将采集得到的数据直接作为第二数据信号,也可以根据具体的设计需要对采集第一数据信号得到的数据信号进行后续可行的其他处理,例如延迟、反相、再次采集、寄存一拍或多拍等,并将处理后得到的数据信号作为第二数据信号,然而应当理解的是,在上述处理过程中,均应当属于在第二时钟信号的时钟域内的处理,也即,所获得的第二数据信号仍应当与第二时钟信号对应。
例如,可选地,在本发明实施例中,步骤S106可以包括:
S1:执行N次以下操作:使用第二时钟信号的上升沿或下降沿对前一次采集到的数据信号进行再次采集,其中,前一次采集到的数据信号的初始值为采集第一数据信号所得到的数据信号,N大于等于1;
S2:将N次操作后采集得到的数据信号作为第二数据信号。
在上述场景下,可以在通过步骤S104对第一数据信号进行采集后,在步骤S1中对采集第一数据信号所得到的的数据信号进行再次采集,且该“再次采集”的操作可以重复执行N次,N大于等于1,其中,需要说明的是,在本发明实施例中,N次操作并不限于均为“使用第二时钟信号的上升沿”或者“使用第二时钟信号的下降沿”,例如,在一个实施例中,N次操作中的某一次操作可以使用上升沿采集,该操作的下一次操作可以使用下降沿采集,本发明对此不作限定。
应当理解,在本发明实施例中,利用第二时钟信号的跳变沿进行的N次再次采集操作所得到的数据信号,也即第二数据信号仍将处于第二时钟信号的时钟域内,一般而言,对于包括步骤S104中所述的对第一数据信号的采集操作在内的上述“前一次采集”使用了第二时钟信号的上升沿的情形,对于该前一次采集之后进行的再次采集,若仍然使用第二时钟信号的上升沿,则相当于将前一次采集得到的数据信号延迟了一个时钟周期、或者说寄存一拍,若改为使用第二时钟信号的下降沿,则相当于将前一次采集得到的数据信号延迟了半个时钟周期、或者说寄存半拍,对应地,对于前一次采集使用了第二时钟信号的下降沿的情形,也可以得到类似的效果。其中,无论是寄存半拍、一拍还是多拍的情形,再次采集中的时序裕度至少有半个时钟周期,因此可以避免由于数据信号在传输路径上的时序裕度不足所导致的准确性和可靠性下降的问题。
具体地,在本发明实施例中,步骤S106可以包括:
S3:若上述相位差位于第一预设区间,则使用第二时钟信号的下降沿对采集第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为第二数据信号;和/或,
S4:若上述相位差位于第二预设区间,则使用第二时钟信号的上升沿对采集第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为第二数据信号。
在本发明实施例中,可以将步骤S3或者步骤S4与步骤S104结合,以获取保持与第二时钟信号的上升沿对齐的第二数据信号、或者保持与第二时钟信号的下降沿对齐的第二数据信号。例如,在一个实施例中,可以将步骤S3作为步骤S106,在这一场景下,若上述相位差位于第一预设区间,则可以通过步骤S104先使用第二时钟信号的上升沿采集第一数据信号,然后通过步骤S3使用第二时钟信号的下降沿对采集第一数据信号所得到的数据信号进行再次采集,以得到满足对时序裕度的要求、且与第二时钟信号的下降沿对齐的第二数据信号,若上述相位差位于第二预设区间,则可以通过步骤S104使用第二时钟信号的下降沿采集第一数据信号,并得到满足对时序裕度的要求、且与第二时钟信号的下降沿对齐的第二数据信号,采用上述方式得到的第二数据信号可以保证与第二时钟信号的下降沿对齐,而与上述相位差位于第一预设区间还是第二预设区间无关,从而可以方便对该第二数据信号的使用及后续处理。类似地,在本发明实施例中,还可以将步骤S4作为步骤S106,并得到满足对时序裕度的要求、且与第二时钟信号的上升沿对齐的第二数据信号,本发明在此不作累述。
进一步地,考虑到双倍率数据传输DDR(Double Data Rate)同时对上升沿数据和下降沿数据的需求,在本发明实施例中,第一数据信号可以包括第三数据信号和第四数据信号,第二数据信号可以包括第五数据信号和第六数据信号,其中,步骤S106可以包括:
S5:若相位差位于第一预设区间,则使用第二时钟信号的下降沿对采集第三数据信号所得到的数据信号进行再次采集,使用第二时钟信号的上升沿对采集第四数据信号所得到的数据信号进行再次采集,并将再次采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;若相位差位于第二预设区间,则使用第二时钟信号的上升沿对采集第四数据信号所得到的数据信号进行再次采集,并将采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;或者,
S6:若相位差位于第一预设区间,则使用第二时钟信号的下降沿对采集第四数据信号所得到的数据信号进行再次采集,并将采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;若相位差位于第二预设区间,则使用第二时钟信号的上升沿对采集第三数据信号所得到的数据信号进行再次采集,使用第二时钟信号的下降沿对采集第四数据信号所得到的数据信号进行再次采集,并将再次采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号。
在本发明实施例中,作为第一数据信号的第三数据信号和第四数据信号均与第一时钟信号对应,并且步骤S104中对第一数据信号的选择性采集也适用于对第三数据信号和第四数据信号的采集,进而可以根据采集得到的数据信号获得作为第二数据信号的第五数据信号和第六数据信号。
作为一种可选的方式,可以将步骤S5作为步骤S106,则当上述相位差位于第一预设区间时,上述采集过程可以表现为:
第三数据信号——上升沿(S104)——下降沿(S5)——第五数据信号;
第四数据信号——上升沿(S104)——上升沿(S5)——第六数据信号;
当上述相位差位于第二预设区间时,上述采集过程可以表现为:
第三数据信号——下降沿(S104)——第五数据信号;
第四数据信号——下降沿(S104)——上升沿(S5)——第六数据信号。
容易看出,作为这一实施方式的特点,首先,通过对第三数据信号的处理所得到的第五数据信号与第二时钟信号的下降沿对齐,通过对第四数据信号的处理所得到的第六数据信号与第二时钟信号的上升沿对齐,其次,第五数据信号相对于第六数据信号提前半个时钟周期、或者说提前半拍。在此基础上,在本发明实施例中,可以利用上述特点进一步地对第五数据信号和第六数据信号进行处理,以获得满足DDR的时序要求的数据信号,例如,可选地,在步骤S5之后,上述处理方法还可以包括:
S7:在第二时钟信号为1时,输出第五数据信号,在第二时钟信号为0时,输出第六数据信号;或者,
S8:在第二时钟信号为0时,输出第五数据信号,在第二时钟信号为1时,输出第六数据信号。
其中,由于第五数据信号与第二时钟信号的下降沿对齐,第六数据信号与第二时钟信号的上升沿对齐,且第五数据信号相对于第六数据信号提前半个时钟周期,因此通过步骤S7或步骤S8可以分别获得以第二时钟信号的上升沿或下降沿为起始的、在一个时钟周期内第五数据信号表示的数据在前、第六数据信号表示的数据在后的双倍频数据信号,从而达到了通过一路数据信号携带两路数据信号所携带的数据的目的,也即实现了DDR的数据传输机制。
优选地,在本发明实施例中,可以采用步骤S7所述的倍频方式,其中,由于第五数据信号与第二时钟信号的下降沿对齐,因此当第二时钟信号由0变为1、也即迎来上升沿时,第五数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为1时所输出的第五数据信号将较为稳定,对应地,由于第六数据信号与第二时钟信号的上升沿对齐,因此当第二时钟信号由1变为0、也即迎来下降沿时,第六数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为0时所输出的第六数据信号也将较为稳定。
作为另一种可选的方式,可以将步骤S6作为步骤S106,则当上述相位差位于第一预设区间时,上述采集过程可以表现为:
第三数据信号——上升沿(S104)——第五数据信号;
第四数据信号——上升沿(S104)——下降沿(S6)——第六数据信号;
当上述相位差位于第二预设区间时,上述采集过程可以表现为:
第三数据信号——下降沿(S104)——上升沿(S6)——第五数据信号;
第四数据信号——下降沿(S104)——下降沿(S6)——第六数据信号。
容易看出,这一实施方式与上述一种可选的实施方式所采取的采集策略是对称的,作为这一实施方式的特点,首先,通过对第三数据信号的处理所得到的第五数据信号与第二时钟信号的上升沿对齐,通过对第四数据信号的处理所得到的第六数据信号与第二时钟信号的下降沿对齐,其次,第五数据信号相对于第六数据信号提前半个时钟周期、或者说提前半拍。类似地,在此基础上,若进一步地执行上述步骤S7或步骤S8所述的操作,则同样可以获得以第二时钟信号的上升沿或下降沿为起始的、在一个时钟周期内第五数据信号表示的数据在前、第六数据信号表示的数据在后的双倍频数据信号,并实现DDR对应的数据传输机制。
优选地,在本发明实施例中,可以采用步骤S8所述的倍频方式,其中,由于第五数据信号与第二时钟信号的上升沿对齐,因此当第二时钟信号由1变为0、也即迎来下降沿时,第五数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为0时所输出的第五数据信号将较为稳定,对应地,由于第六数据信号与第二时钟信号的下降沿对齐,因此当第二时钟信号由0变为1、也即迎来上升沿时,第六数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为1时所输出的第六数据信号也将较为稳定。
通过上述实施例本发明给出了两种可选的具体实施方式,然而应当理解,上述实施例仅用于对本发明技术方案的理解,并不应视为对本发明的限定。在本发明实施例中,还可以有其他可行的实施方式,在此不一一累述,应当理解,这些实施方式均应视为在本发明的保护范围之内。
在以上描述的基础上,更具体地,在本发明实施例中,上述第一时钟信号可以为内存控制器的系统时钟,上述第二时钟信号可以为内存控制器的写数据时钟,上述第一数据信号可以为内存控制器的待传输数据,上述第二数据信号可以为内存控制器向内存芯片传输的写数据,其中,该写数据时钟与内存芯片的内存时钟的时钟周期可以相同,且写数据时钟与内存时钟之间可以满足预设时序要求。
在这一场景下,结合本发明实施例提供的数据信号的处理方法,可以实现待传输数据由内存控制器向内存芯片的有效传输,其中,该待传输数据可以是由内存控制器获取或生成的、与系统时钟对应的数据信号,而经过上述处理操作所得到的写数据可以是与写数据时钟对应的数据信号,以便于内存对写数据的接收和识别。其中,写数据时钟虽然也可以是由内存控制器获取或生成的,然而该写数据时钟与内存时钟之间应当满足预设时序要求。对该写数据时钟的调整操作将在后续实施例中给出。
一般而言,在本发明实施例中,上述预设时序要求通常可以表现为:根据写数据时钟生成的写数据在到达内存芯片时相对于内存时钟提前K个时钟周期,K为0至1之间的任意值。这种要求通常与DDR协议相关,例如,现行的DDR协议规定写数据到达内存芯片时,内存时钟的跳变沿应当位于由内存芯片获取的该写数据的中部,或者说该写数据到达内存芯片时相对于内存时钟应当提前大约1/4或3/4个时钟周期,从而K可以设置为1/4或3/4,然而本发明对此不作限定,在本发明的其他一些实施例中,针对不同内存数据传输协议,K的具体值也可以设置为0到1之间的其他数值。
进一步可选地,在本发明实施例中,在步骤S102之前,上述处理方法还可以包括:
S10:在满足与预设时序要求对应的终止执行条件前,重复执行M次以下操作:
S11、向前或向后调整写数据时钟或者相对于写数据时钟滞后K个时钟周期的第三时钟信号,并向内存芯片传输与调整后的写数据时钟或者调整后的第三时钟信号对应的第七数据信号;
S12、接收内存芯片根据第七数据信号返回的第八数据信号,并根据接收的第八数据信号判断是否满足终止执行条件;其中,M大于等于1。
由步骤S11和S12所形成的一个循环可以概括为:调整——输送——反馈的过程,其中,对内存芯片根据向其输送的第七数据信号所反馈的第八数据信号通常可以携带有与“是否满足终止执行条件”或者说“写数据时钟与内存时钟之间是否满足预设时序要求”相对应的信息,因此通过对第八数据信号的识别判断即可以判断出循环是否终止,并可以将上述M次操作后所得到的写数据时钟、或者根据M次操作后得到的第三时钟信号所确定的写数据时钟作为进行数据信号的跨时钟域传输之前确定的第二时钟信号,以作为步骤S104中根据相位差进行选择的基础。值得注意的是,上述循环还可以有其他的等效变型,例如,类同的一个循环也可以概括为:输送——反馈——根据反馈进行调整的过程,本发明对M次操作的单次操作或者说一次循环的划分并不作限定,基于以上描述的各具体实施方式均应视为在本发明的保护范围之内。
一般而言,在本发明实施例中,上述M次操作的终止执行条件可以对应于预设时序要求的达成,例如,在一个实施例中,第七数据信号可以设置为与第三时钟信号的上升沿或下降沿对齐的脉冲信号,第八数据信号可以表示内存芯片使用脉冲信号采集内存时钟所得到的数据信号,其中,若第七数据信号与第三时钟信号的上升沿对齐,则终止执行条件可以为:接收的第八数据信号由0变为1;若第七数据信号与第三时钟信号的下降沿对齐,则终止执行条件可以为:接收的第八数据信号由1变为0。
其中,由于第三时钟信号相对于写数据时钟滞后K个时钟周期,因此若要求根据写数据时钟生成的写数据在到达内存芯片时相对于内存时钟提前K个时钟周期,则应当要求根据第三时钟信号生成的第七数据信号在到达内存芯片时与内存时钟对齐。在另一方面,当内存芯片根据其接收到的第七数据信号采集内存时钟所得到的第八数据信号由0变为1时,可以视为作为第七数据信号的脉冲信号捕捉到了第八数据信号的上升沿,当第八数据信号由1变为0时,可以视为该脉冲信号捕捉到了第八数据信号的下降沿。因此,若第七数据信号与第三时钟信号的上升沿对齐,则与预设时序要求对应的终止执行条件可以设置为第七数据信号到达内存芯片时刚好捕捉到内存时钟的上升沿,也即第八数据信号由0变为1,若第七数据信号与第三时钟信号的下降沿对齐,则与预设时序要求对应的终止执行条件可以设置为第七数据信号到达内存芯片时刚好捕捉到内存时钟的下降沿,也即第八数据信号由1变为0。
特别地,对于DDR3而言,在本发明的一些实施例中,可以利用DDR3内存提供的write leveling功能,在这一场景下,可以先将DDR3内存置于write leveling模式,并将写数据选通信号(写DQS)作为第三时钟信号,进而执行上述M次操作。
进一步地,在本发明实施例中,由于在步骤S11中对写数据时钟和/或第三时钟信号的调整可以反映出作为第二时钟信号的写数据时钟的相移,因此也可以根据上述M次操作所完成的调整来得出步骤S104中作为选择依据的第一时钟信号与第二时钟信号的相位差。其中,可选地,
在执行M次操作前,上述处理方法还可以包括:S13、将与系统时钟对齐的时钟信号作为写数据时钟或者第三时钟信号的初始值;
在执行M次操作时,步骤S11中向前或向后调整写数据时钟和/或第三时钟信号可以包括:S14、延迟写数据时钟或者第三时钟信号1/L个时钟周期,作为调整后的写数据时钟或者第三时钟信号,L为正整数;以及,
在执行M次操作后,上述处理方法还可以包括:S15、若将与系统时钟对齐的时钟信号作为写数据时钟,则根据下式获取相位差:Δ=(M/L)*T;S16、若将与系统时钟对齐的时钟信号作为第三时钟信号,则根据下式获取相位差:Δ=(M/L-K)*T;其中,Δ表示相位差,T表示时钟周期。
在上述场景下,L的值越大,则单次操作中对写数据时钟或者第三时钟信号的调整量越小,对该写数据时钟或者第三时钟信号的校准则约精确,写数据时钟与内存时钟之间的时序则越为接近预设时序要求,在另一方面,据此得出的相位差Δ也越为准确,从而使得上述数据信号的处理方法对其跨时钟域传输的传输路径上的时序裕度的控制也越为准确。
本发明提供了一种优选的实施例来进一步对本发明进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据信号的处理方法的数据信号的处理装置,如图6所示,该处理装置包括:
1)获取单元602,用于获取第一数据信号、第一时钟信号和第二时钟信号,其中,第一数据信号与第一时钟信号对应,第一时钟信号的时钟周期与第二时钟信号的时钟周期相同;
2)选择单元604,用于在第一时钟信号相对于第二时钟信号的相位差位于第一预设区间时,使用第二时钟信号的上升沿采集第一数据信号,在相位差位于第二预设区间时,使用第二时钟信号的下降沿采集第一数据信号;
3)处理单元606,用于根据采集第一数据信号所得到的数据信号获得第二数据信号,其中,第二数据信号与第二时钟信号对应。
应当明确的是,本发明技术方案所要解决的技术问题之一是提供一种对数据信号进行处理的装置,以实现对该数据信号的跨时钟域的传输,也即,将与一个时钟信号对应的数据信号转换为与另一个时钟信号对应的数据信号,且这两个数据信号的内容是相同的,其中,为便于表述,将上述“一个时钟信号”记为第一时钟信号,将上述“另一个时钟信号”记为第二时钟信号,并将与第一时钟信号对应的该数据信号记为第一数据信号,将于第二时钟信号对应的该数据信号记为第二数据信号。
在本发明实施例中,第一数据信号与第一时钟信号之间的对应关系通常可以表现为二者相互对齐,也即,第一数据信号的更新频率与第一时钟信号的时钟频率相一致,且二者相位相同,例如,在图2中,如第2行所示的第一数据信号与如第1行所示的第一时钟信号对应。然而本发明对此不作限定,例如,在本发明的一些实施例中,第一数据信号与第一时钟信号之间的对应关系也可以表现为同频信号之间的某种确定的相位关系,正交或者反相等,在这一场景下,虽然第一数据信号与第一时钟信号并不对齐,然而由于二者之间的相位关系确定且已知,因此仍然可以通过第一时钟信号准确地推知第一数据信号的时序,从而第一数据信号仍可以视为在第一时钟信号的时钟域内。
类似地,在本发明实施例中,第二数据信号与第二时钟信号之间的对应关系也可以表现为与上述第一数据信号与第一时钟信号之间的对应关系相似,然而值得注意的是,这两个对应关系之间并不必然完全一致,例如,在本发明实施例中,第一数据信号可以与第一时钟信号对齐,而第二数据信号可以与第二时钟信号反相,本发明对此不作限定。此外,在本发明实施例中,第二时钟信号与第一时钟信号的时钟周期可以是相同的。
基于以上描述,本发明所提出的实现对数据信号的跨时钟域传输的上述问题也可以表述为:将与第一时钟信号对应的第一数据信号转换为与第二时钟信号对应的第二数据信号,其中,第一数据信号与第二数据信号的内容相同,然而时序有异,分别对应于第一时钟信号与第二时钟信号。
为解决这一问题,在现有方案中,通常会使用第二时钟信号的跳变沿去采集第一数据信号,以获得第二数据信号,例如,在图2中,可以使用如第3行所示的第二时钟信号的上升沿采集如第2行所示的第一数据信号,并可以将采集得到的、如第4行所示的数据信号作为第二数据信号,其中,从图2可以看出,第一数据信号与第一时钟信号对应,第二数据信号与第二时钟信号对应,从而实现数据信号的跨时钟域的传输。
容易看出,在图2中,如第2行所示的第一数据信号向如第4行所示的第二数据信号的传输路径上的时序裕度t1大于半个时钟周期T/2,其中T表示第一时钟信号的时钟周期,也就是说,使用第二时钟信号的上升沿采集第一数据信号时,第一数据信号更新为数值a这一状态的持续时间超过了T/2,从而该数据状态相对而言更容易地从由数值更新所产生的毛刺等扰动中恢复过来、并过渡到较为稳定的状态,进而使用第二时钟信号的上升沿采集得到的数据也较为准确,这对于数据信号的跨时钟域传输是有利的。
然而,事实上,对上述的现有方案而言,数据信号在跨时钟域传输的传输路径上的时序裕度是不确定的,在一个场景下,例如图2所示的情形,其时序裕度较大,在另一个场景下,例如图3所示的情形,其时序裕度t2则相对较小,至少小于半个时钟周期,则在该场景下使用第二时钟信号的上升沿采集第一数据信号时,由于第一数据信号更新为数值a的持续时间较短,因此其数据状态可能并不稳定,由此采集得到的数据也并不准确,从而影响了数据信号的跨时钟域传输的可靠性。换而言之,使用第二时钟信号的上升沿采集第一数据信号以生成第二数据信号的方式无法保证满足对上述时序裕度的要求,与之对应地,使用第二时钟信号的下降沿采集第一数据信号以生成第二数据信号的方式也存在类似的问题,而其原因则可以归结为现有技术中无法控制数据信号在跨时钟域传输的传输路径上的时序裕度的问题。
为解决这一问题,在本发明实施例中,可以沿承利用第二时钟信号采集第一数据信号以生成第二数据信号的方式,并在获取单元602中获取该第一数据信号和该第二时钟信号,然而区别于现有技术,根据本发明实施例提供的处理装置,在选择单元604中,可以根据第一时钟信号与第二时钟信号之间的相位关系在使用第二时钟信号的上升沿还是下降沿之间进行选择,其中,若第一时钟信号相对于第二时钟信号的相位差位于第一预设区间,则可以使用第二时钟信号的上升沿采集第一数据信号,若相位差位于第二预设区间,则可以使用第二时钟信号的下降沿采集第一数据信号。换而言之,在本发明实施例中,并非静态地使用第二时钟信号的上升沿或者下降沿采集第一数据信号,而是可以相对动态地针对不同的情形选择上升沿与下降沿之一进行采集,从而实现对数据信号在跨时钟传输的传输路径上的时序裕度的控制,进而达到对该时序裕度的要求。
需要说明的是,上述“动态地”选择并不限于实时地选择,在本发明实施例中,在“上升沿采集”与“下降沿采集”之间进行选择的周期可以为一个较短的时间周期,也可以是一个较长的时间周期,此外,该选择的机制还可以与其他机制、例如判断机制相互耦合,其中,这一选择也可以根据判断机制所产生的结果来触发,等,本发明对此不作限定。此外,作为可选的实施方式,上述选择机制既可以通过硬件逻辑,例如逻辑电路来实现,并可以进一步地封装在物理接口中以提高集成度及处理速度,并降低处理器的处理压力,其也可以通过软件逻辑,例如对MCU、FPGA或者PLC等可编程平台的编程来实现,本发明对此不作限定。
下面将结合图4和图5对本发明实施例的方案的工作原理进行详细解释。在本发明实施例中,上述第一预设区间可以设置为(T/2,T),上述第二预设区间可以设置为(0,T/2)。需要说明的是,在本申请中,第一时钟信号相对于第二时钟信号的相位差表示第一时钟信号相对于第二时钟信号的提前量,例如,若第一时钟信号相对于第二时钟信号提前1/4个时钟周期,则第一时钟信号相对于第二时钟信号的相位差为1/4个时钟周期。
如图4所示,在本发明实施例的一个场景下,第一时钟信号可以为如第1行所示时钟信号,第一数据信号可以为如第2行所示的数据信号,第二时钟信号可以为如第3行所示的时钟信号。在上述场景下,第一时钟信号相对于第二时钟信号的相位差大于半个时钟周期,也即位于第一预设区间(T/2,T)内,从而根据选择单元604,可以选择使用第二时钟信号的上升沿采集第一数据信号,并得到如第4行所示的数据信号作为第二数据信号。容易看出,在上述场景下,第一数据信号与第一时钟信号对应,第二数据信号与第二时钟信号对应,且第二数据信号的数据内容与第一数据信号一致,也即实现了第一数据信号的跨时钟域传输,在另一方面,该跨时钟域传输的传输路径上的时序裕度等于上述相位差,而上述相位差位于第一预设区间内、大于半个时钟周期,因此该时序裕度大于半个时钟周期,也即,在本发明实施例中,对时序裕度的控制可以部分地由第一预设区间来实现,从而可以通过对第一预设区间的合理设置以满足对该时序裕度的要求,进而达到准确地采集数据、以及提高数据信号的跨时钟域传输的可靠性的效果。
作为对比,在上述场景下,若选择第二时钟信号的下降沿采集第一数据信号,则得到的数据信号可以为如图4第5行由斜划线表示的数据信号,容易看出,采集到的该数据信号相对于第一数据信号的时序裕度小于半个时钟周期,并不符合与第一预设区间对应的对上述时序裕度的要求,进而可能导致数据信号的跨时钟域传输的可靠性较低的问题。
如图5所示,在本发明实施例的另一个场景下,第一时钟信号可以为如第1行所示时钟信号,第一数据信号可以为如第2行所示的数据信号,第二时钟信号可以为如第3行所示的时钟信号。在上述场景下,第一时钟信号相对于第二时钟信号的相位差小于半个时钟周期,也即位于第二预设区间(0,T/2)内,从而根据选择单元604,可以选择使用第二时钟信号的下降沿采集第一数据信号,并得到如第5行所示的数据信号作为第二数据信号。容易看出,在上述场景下,在实现第一数据信号的跨时钟域传输的基础上,该跨时钟域传输的传输路径上的时序裕度等于上述相位差加上半个时钟周期,而上述相位差位于第二预设区间内、小于半个时钟周期,因此该时序裕度大于半个时钟周期,也即,在本发明实施例中,对时序裕度的控制可以部分地由第二预设区间来实现,从而可以通过对第二预设区间的合理设置以满足对该时序裕度的要求,进而达到准确地采集数据、以及提高数据信号的跨时钟域传输的可靠性的效果。
作为对比,在上述场景下,若选择第二时钟信号的上升沿采集第一数据信号,则得到的数据信号可以为如图5第4行由斜划线表示的数据信号,容易看出,采集到的该数据信号相对于第一数据信号的时序裕度小于半个时钟周期,并不符合与第二预设区间对应的对上述时序裕度的要求,进而可能导致数据信号的跨时钟域传输的可靠性较低的问题。
通过上述实施例,对本发明实施例的方案的工作原理进行了阐述。值得注意的是,在本发明实施例中,对于第一预设区间而言,其所限定的时序裕度通常即为第一预设区间本身,而对于第二预设区间而言,当第二预设区间中的部分区间被设置为位于(0,T/2)时,由该部分区间所限定的时序裕度为该部分区间加上半个时钟周期,当第二预设区间中的部分区间被设置为位于(T/2,T)时,则由该部分区间所限定的时序裕度将实际表现为该部分区间减去半个时钟周期。也就是说,若要求数据信号的跨时钟域传输在传输路径上的时序裕度较大,则可以将第一预设区间设置在(T/2,T)内,并将第二预设区间设置在(0,T/2)内,反之则可以将二者对调,将第一预设区间设置在(0,T/2)内,并将第二预设区间设置在(T/2,T)内。对于第一预设区间和第二预设区间的具体设置及其应用,本发明不作任何限定。
当然,上述结论主要是基于第一数据信号与第一时钟信号对齐、且第二数据信号与第二时钟信号对齐的对应关系所导出的,在本发明的其他一些实施例中,对于该对应关系的其他表现形式,可以结合第一数据信号与第一时钟信号之间的确定的相位关系以及第二数据信号与第二时钟信号之间的确定的相位关系,得出经过与这两个相位关系对应的两次偏移后的分别由第一预设区间和第二预设区间所限定的时序裕度的范围,本发明在此不作累述。
需要进一步说明的是,本发明对第一数据信号的来源和用途以及第二数据信号的用途不作任何限定,其中,第一数据信号与第一时钟信号的对应关系通常可以来源于第一数据信号的获取方式,例如,在本发明的一些实施例中,第一数据信号可以是使用第一时钟信号的上升沿或者下降沿采集相应的数据所得到的的数据信号,且该采集可以为一次,也可以为多次。然而这并不意味着对本发明构成了限定,在本发明实施例中,获取第一数据信号之前对该数据信号的预处理过程还可以包括其他处理方式,例如具有确定延时的延迟处理或者反相处理等。此外,本发明对第一数据信号和第二数据信号的数据内容不作任何限定,例如,在本发明的一些实施例中,该第一数据信号可以表示存储器中的存储地址,第二数据信号既可以表示存储地址,也可以表示根据采集第一数据信号得到的数据信号所表示的存储地址、从存储器中读出的存储数据,其中,由第一数据信号表示的存储地址在时序上可以与第一时钟信号对应,而由第二数据信号表示的存储地址或者存储数据在时序上可以与第二时钟信号对应,在这一场景下,可以将第一数据信号作为存储器的写地址输入,将另一个数据信号作为该存储器的写数据输入,而第二数据信号可以是该存储器的读地址输入、或者是将采集第一数据信号得到的数据信号作为该存储器的读地址输入所得到的该存储器的读数据输出,从而可以通过第一数据信号的跨时钟域传输来实现上述“另一个数据信号”的跨时钟域的传输。这一实施方式尤其适用于对该“另一个数据信号”的跨时钟域传输的延迟的要求不高、但对其准确性和可靠性要求较高的应用场景,然而本发明对此并不作限定。
还需要说明的是,在本发明实施例中,上述第一数据信号既可以为串行数据信号,也可以为并行数据信号,其中,对于串行数据信号而言,其数据宽度既可以为1位,也可以为多位,其具体处理方式可以如上述实施例中所述,对于并行数据信号而言,若其多路数据信号是同步传输的,则可以采用类似于多位串行数据信号的处理方式进行处理,若其多路数据信号不同步,则可以将其每一路信号作为第一数据信号分别进行处理。
在以上描述的基础上,根据本发明实施例提供的数据信号的处理装置,在处理单元606中,可以根据采集第一数据信号所得到的数据信号获得第二数据信号,换而言之,在本发明实施例中,在通过选择单元604对第一数据信号进行采集后,既可以如前述实施例所示,将采集得到的数据直接作为第二数据信号,也可以根据具体的设计需要对采集第一数据信号得到的数据信号进行后续可行的其他处理,例如延迟、反相、再次采集、寄存一拍或多拍等,并将处理后得到的数据信号作为第二数据信号,然而应当理解的是,在上述处理过程中,均应当属于在第二时钟信号的时钟域内的处理,也即,所获得的第二数据信号仍应当与第二时钟信号对应。
例如,可选地,在本发明实施例中,处理单元606可以包括:
1)执行模块,用于执行N次以下操作:使用第二时钟信号的上升沿或下降沿对前一次采集到的数据信号进行再次采集,其中,前一次采集到的数据信号的初始值为采集第一数据信号所得到的数据信号,N大于等于1;
2)输出模块,用于将N次操作后采集得到的数据信号作为第二数据信号。
在上述场景下,可以在通过选择单元604对第一数据信号进行采集后,在执行模块中对采集第一数据信号所得到的的数据信号进行再次采集,且该“再次采集”的操作可以重复执行N次,N大于等于1,其中,需要说明的是,在本发明实施例中,N次操作并不限于均为“使用第二时钟信号的上升沿”或者“使用第二时钟信号的下降沿”,例如,在一个实施例中,N次操作中的某一次操作可以使用上升沿采集,该操作的下一次操作可以使用下降沿采集,本发明对此不作限定。
应当理解,在本发明实施例中,利用第二时钟信号的跳变沿进行的N次再次采集操作所得到的数据信号,也即第二数据信号仍将处于第二时钟信号的时钟域内,一般而言,对于包括选择单元604中所述的对第一数据信号的采集操作在内的上述“前一次采集”使用了第二时钟信号的上升沿的情形,对于该前一次采集之后进行的再次采集,若仍然使用第二时钟信号的上升沿,则相当于将前一次采集得到的数据信号延迟了一个时钟周期、或者说寄存一拍,若改为使用第二时钟信号的下降沿,则相当于将前一次采集得到的数据信号延迟了半个时钟周期、或者说寄存半拍,对应地,对于前一次采集使用了第二时钟信号的下降沿的情形,也可以得到类似的效果。其中,无论是寄存半拍、一拍还是多拍的情形,再次采集中的时序裕度至少有半个时钟周期,因此可以避免由于数据信号在传输路径上的时序裕度不足所导致的准确性和可靠性下降的问题。
具体地,在本发明实施例中,处理单元606可以包括:
1)第一处理模块,用于在相位差位于第一预设区间时,使用第二时钟信号的下降沿对采集第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为第二数据信号;和/或,
2)第二处理模块,用于在相位差位于第二预设区间时,使用第二时钟信号的上升沿对采集第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为第二数据信号。
在本发明实施例中,可以将第一处理模块或者第二处理模块与选择单元604结合,以获取保持与第二时钟信号的上升沿对齐的第二数据信号、或者保持与第二时钟信号的下降沿对齐的第二数据信号。例如,在一个实施例中,可以将第一处理模块作为处理单元606,在这一场景下,若上述相位差位于第一预设区间,则可以通过选择单元604先使用第二时钟信号的上升沿采集第一数据信号,然后通过第一处理模块使用第二时钟信号的下降沿对采集第一数据信号所得到的数据信号进行再次采集,以得到满足对时序裕度的要求、且与第二时钟信号的下降沿对齐的第二数据信号,若上述相位差位于第二预设区间,则可以通过选择单元604使用第二时钟信号的下降沿采集第一数据信号,并得到满足对时序裕度的要求、且与第二时钟信号的下降沿对齐的第二数据信号,采用上述方式得到的第二数据信号可以保证与第二时钟信号的下降沿对齐,而与上述相位差位于第一预设区间还是第二预设区间无关,从而可以方便对该第二数据信号的使用及后续处理。类似地,在本发明实施例中,还可以将第二处理模块作为处理单元606,并得到满足对时序裕度的要求、且与第二时钟信号的上升沿对齐的第二数据信号,本发明在此不作累述。
进一步地,考虑到双倍率数据传输DDR(Double Data Rate)同时对上升沿数据和下降沿数据的需求,在本发明实施例中,第一数据信号可以包括第三数据信号和第四数据信号,第二数据信号可以包括第五数据信号和第六数据信号,其中,处理单元606可以包括:
1)第三处理模块,用于在相位差位于第一预设区间时,使用第二时钟信号的下降沿对采集第三数据信号所得到的数据信号进行再次采集,使用第二时钟信号的上升沿对采集第四数据信号所得到的数据信号进行再次采集,并将再次采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;在相位差位于第二预设区间时,使用第二时钟信号的上升沿对采集第四数据信号所得到的数据信号进行再次采集,并将采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;或者,
2)第四处理模块,用于在相位差位于第一预设区间时,使用第二时钟信号的下降沿对采集第四数据信号所得到的数据信号进行再次采集,并将采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号;在相位差位于第二预设区间时,使用第二时钟信号的上升沿对采集第三数据信号所得到的数据信号进行再次采集,使用第二时钟信号的下降沿对采集第四数据信号所得到的数据信号进行再次采集,并将再次采集第三数据信号所得到的数据信号作为第五数据信号,将再次采集第四数据信号所得到的数据信号作为第六数据信号。
在本发明实施例中,作为第一数据信号的第三数据信号和第四数据信号均与第一时钟信号对应,并且选择单元604中对第一数据信号的选择性采集也适用于对第三数据信号和第四数据信号的采集,进而可以根据采集得到的数据信号获得作为第二数据信号的第五数据信号和第六数据信号。
作为一种可选的方式,可以将第三处理模块作为处理单元606,则当上述相位差位于第一预设区间时,上述采集过程可以表现为:
第三数据信号——上升沿(选择单元)——下降沿(第三处理模块)——第五数据信号;
第四数据信号——上升沿(选择单元)——上升沿(第三处理模块)——第六数据信号;
当上述相位差位于第二预设区间时,上述采集过程可以表现为:
第三数据信号——下降沿(选择单元)——第五数据信号;
第四数据信号——下降沿(选择单元)——上升沿(第三处理模块)——第六数据信号。
容易看出,作为这一实施方式的特点,首先,通过对第三数据信号的处理所得到的第五数据信号与第二时钟信号的下降沿对齐,通过对第四数据信号的处理所得到的第六数据信号与第二时钟信号的上升沿对齐,其次,第五数据信号相对于第六数据信号提前半个时钟周期、或者说提前半拍。在此基础上,在本发明实施例中,可以利用上述特点进一步地对第五数据信号和第六数据信号进行处理,以获得满足DDR的时序要求的数据信号,例如,可选地,与第三处理模块耦合地,上述处理装置还可以包括:
1)第一输出单元,用于在第二时钟信号为1时,输出第五数据信号,在第二时钟信号为0时,输出第六数据信号;或者,
2)第二输出单元,用于在第二时钟信号为0时,输出第五数据信号,在第二时钟信号为1时,输出第六数据信号。
其中,由于第五数据信号与第二时钟信号的下降沿对齐,第六数据信号与第二时钟信号的上升沿对齐,且第五数据信号相对于第六数据信号提前半个时钟周期,因此通过第一输出单元或第二输出单元可以分别获得以第二时钟信号的上升沿或下降沿为起始的、在一个时钟周期内第五数据信号表示的数据在前、第六数据信号表示的数据在后的双倍频数据信号,从而达到了通过一路数据信号携带两路数据信号所携带的数据的目的,也即实现了DDR的数据传输机制。
优选地,在本发明实施例中,可以采用第一输出单元所述的倍频方式,其中,由于第五数据信号与第二时钟信号的下降沿对齐,因此当第二时钟信号由0变为1、也即迎来上升沿时,第五数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为1时所输出的第五数据信号将较为稳定,对应地,由于第六数据信号与第二时钟信号的上升沿对齐,因此当第二时钟信号由1变为0、也即迎来下降沿时,第六数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为0时所输出的第六数据信号也将较为稳定。
作为另一种可选的方式,可以将第四处理模块作为处理单元606,则当上述相位差位于第一预设区间时,上述采集过程可以表现为:
第三数据信号——上升沿(选择单元)——第五数据信号;
第四数据信号——上升沿(选择单元)——下降沿(第四处理模块)——第六数据信号;
当上述相位差位于第二预设区间时,上述采集过程可以表现为:
第三数据信号——下降沿(选择单元)——上升沿(第四处理模块)——第五数据信号;
第四数据信号——下降沿(选择单元)——下降沿(第四处理模块)——第六数据信号。
容易看出,这一实施方式与上述一种可选的实施方式所采取的采集策略是对称的,作为这一实施方式的特点,首先,通过对第三数据信号的处理所得到的第五数据信号与第二时钟信号的上升沿对齐,通过对第四数据信号的处理所得到的第六数据信号与第二时钟信号的下降沿对齐,其次,第五数据信号相对于第六数据信号提前半个时钟周期、或者说提前半拍。类似地,在此基础上,若进一步地执行上述第一输出单元或第二输出单元所述的操作,则同样可以获得以第二时钟信号的上升沿或下降沿为起始的、在一个时钟周期内第五数据信号表示的数据在前、第六数据信号表示的数据在后的双倍频数据信号,并实现DDR对应的数据传输机制。
优选地,在本发明实施例中,可以采用第二输出单元所述的倍频方式,其中,由于第五数据信号与第二时钟信号的上升沿对齐,因此当第二时钟信号由1变为0、也即迎来下降沿时,第五数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为0时所输出的第五数据信号将较为稳定,对应地,由于第六数据信号与第二时钟信号的下降沿对齐,因此当第二时钟信号由0变为1、也即迎来上升沿时,第六数据信号在更新后已经持续了半个时钟周期,因此当第二时钟信号为1时所输出的第六数据信号也将较为稳定。
通过上述实施例本发明给出了两种可选的具体实施方式,然而应当理解,上述实施例仅用于对本发明技术方案的理解,并不应视为对本发明的限定。在本发明实施例中,还可以有其他可行的实施方式,在此不一一累述,应当理解,这些实施方式均应视为在本发明的保护范围之内。
在以上描述的基础上,更具体地,在本发明实施例中,上述第一时钟信号可以为内存控制器的系统时钟,上述第二时钟信号可以为内存控制器的写数据时钟,上述第一数据信号可以为内存控制器的待传输数据,上述第二数据信号可以为内存控制器向内存芯片传输的写数据,其中,该写数据时钟与内存芯片的内存时钟的时钟周期可以相同,且写数据时钟与内存时钟之间可以满足预设时序要求。
在这一场景下,结合本发明实施例提供的数据信号的处理装置,可以实现待传输数据由内存控制器向内存芯片的有效传输,其中,该待传输数据可以是由内存控制器获取或生成的、与系统时钟对应的数据信号,而经过上述处理操作所得到的写数据可以是与写数据时钟对应的数据信号,以便于内存对写数据的接收和识别。其中,写数据时钟虽然也可以是由内存控制器获取或生成的,然而该写数据时钟与内存时钟之间应当满足预设时序要求。对该写数据时钟的调整操作将在后续实施例中给出。
一般而言,在本发明实施例中,上述预设时序要求通常可以表现为:根据写数据时钟生成的写数据在到达内存芯片时相对于内存时钟提前K个时钟周期,K为0至1之间的任意值。这种要求通常与DDR协议相关,例如,现行的DDR协议规定写数据到达内存芯片时,内存时钟的跳变沿应当位于由内存芯片获取的该写数据的中部,或者说该写数据到达内存芯片时相对于内存时钟应当提前大约1/4或3/4个时钟周期,从而K可以设置为1/4或3/4,然而本发明对此不作限定,在本发明的其他一些实施例中,针对不同内存数据传输协议,K的具体值也可以设置为0到1之间的其他数值。
进一步可选地,在本发明实施例中,在获取单元602之前,上述处理装置还可以包括:
1)调整单元,用于在满足与预设时序要求对应的终止执行条件前,重复执行M次以下操作:向前或向后调整写数据时钟或者相对于写数据时钟滞后K个时钟周期的第三时钟信号,并向内存芯片传输与调整后的写数据时钟或者调整后的第三时钟信号对应的第七数据信号;接收内存芯片根据第七数据信号返回的第八数据信号,并根据接收的第八数据信号判断是否满足终止执行条件;其中,M大于等于1。
在调整单元中所形成的一个循环可以概括为:调整——输送——反馈的过程,其中,对内存芯片根据向其输送的第七数据信号所反馈的第八数据信号通常可以携带有与“是否满足终止执行条件”或者说“写数据时钟与内存时钟之间是否满足预设时序要求”相对应的信息,因此通过对第八数据信号的识别判断即可以判断出循环是否终止,并可以将上述M次操作后所得到的写数据时钟、或者根据M次操作后得到的第三时钟信号所确定的写数据时钟作为进行数据信号的跨时钟域传输之前确定的第二时钟信号,以作为选择单元604中根据相位差进行选择的基础。值得注意的是,上述循环还可以有其他的等效变型,例如,类同的一个循环也可以概括为:输送——反馈——根据反馈进行调整的过程,本发明对M次操作的单次操作或者说一次循环的划分并不作限定,基于以上描述的各具体实施方式均应视为在本发明的保护范围之内。
一般而言,在本发明实施例中,上述M次操作的终止执行条件可以对应于预设时序要求的达成,例如,在一个实施例中,第七数据信号可以设置为与第三时钟信号的上升沿或下降沿对齐的脉冲信号,第八数据信号可以表示内存芯片使用脉冲信号采集内存时钟所得到的数据信号,其中,若第七数据信号与第三时钟信号的上升沿对齐,则终止执行条件可以为:接收的第八数据信号由0变为1;若第七数据信号与第三时钟信号的下降沿对齐,则终止执行条件可以为:接收的第八数据信号由1变为0。
其中,由于第三时钟信号相对于写数据时钟滞后K个时钟周期,因此若要求根据写数据时钟生成的写数据在到达内存芯片时相对于内存时钟提前K个时钟周期,则应当要求根据第三时钟信号生成的第七数据信号在到达内存芯片时与内存时钟对齐。在另一方面,当内存芯片根据其接收到的第七数据信号采集内存时钟所得到的第八数据信号由0变为1时,可以视为作为第七数据信号的脉冲信号捕捉到了第八数据信号的上升沿,当第八数据信号由1变为0时,可以视为该脉冲信号捕捉到了第八数据信号的下降沿。因此,若第七数据信号与第三时钟信号的上升沿对齐,则与预设时序要求对应的终止执行条件可以设置为第七数据信号到达内存芯片时刚好捕捉到内存时钟的上升沿,也即第八数据信号由0变为1,若第七数据信号与第三时钟信号的下降沿对齐,则与预设时序要求对应的终止执行条件可以设置为第七数据信号到达内存芯片时刚好捕捉到内存时钟的下降沿,也即第八数据信号由1变为0。
特别地,对于DDR3而言,在本发明的一些实施例中,可以利用DDR3内存提供的write leveling功能,在这一场景下,可以先将DDR3内存置于write leveling模式,并将写数据选通信号(写DQS)作为第三时钟信号,进而执行上述M次操作。
进一步地,在本发明实施例中,由于在调整单元中对写数据时钟和/或第三时钟信号的调整可以反映出作为第二时钟信号的写数据时钟的相移,因此也可以根据上述M次操作所完成的调整来得出选择单元604中作为选择依据的第一时钟信号与第二时钟信号的相位差。其中,可选地,
处理装置还可以包括:初始化单元,用于将与系统时钟对齐的时钟信号作为写数据时钟或者第三时钟信号的初始值;
调整单元可以包括:延迟模块,用于延迟写数据时钟或者第三时钟信号1/L个时钟周期,作为调整后的写数据时钟或者第三时钟信号,L为正整数;
处理装置还可以包括:计算模块,用于在将与系统时钟对齐的时钟信号作为写数据时钟时,根据下式获取相位差:Δ=(M/L)*T;在将与系统时钟对齐的时钟信号作为第三时钟信号时,根据下式获取相位差:Δ=(M/L-K)*T;其中,Δ表示相位差,T表示时钟周期。
在上述场景下,L的值越大,则单次操作中对写数据时钟或者第三时钟信号的调整量越小,对该写数据时钟或者第三时钟信号的校准则约精确,写数据时钟与内存时钟之间的时序则越为接近预设时序要求,在另一方面,据此得出的相位差Δ也越为准确,从而使得上述数据信号的处理装置对其跨时钟域传输的传输路径上的时序裕度的控制也越为准确。
本发明提供了一种优选的实施例来进一步对本发明进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。
实施例3
根据本发明实施例,还提供了一种通过硬件逻辑实现的数据信号的处理装置,如图7所示,该装置可以包括:
1)寄存器REG1、REG2、REG3、REG4、REG5、REG6和REG7;
2)选择器MUX1、MUX2和MUX3;
其中,各器件之间的连接关系可以参考图7,在此不一一赘述。
如图7所示,在本发明实施例中,REG1和REG2的时钟输入可以均为时钟信号clk1,其中,clk1可以作为如实施例2中所述的第一时钟信号。REG1的数据输入可以是数据信号dq1,数据输出可以是数据信号dq3,则dq3可以视为dq1经clk1采集所得到的数据信号,从而dq3与clk1同步,其中,dq3可以作为如实施例2中所述的第三数据信号。类似地,REG2的数据输入可以是数据信号dq2,数据输出可以是数据信号dq4,则dq4可以视为dq2经clk1采集所得到的数据信号,从而dq4与clk2同步,其中,dq4可以作为如实施例2中所述的第四数据信号。
通过REG1和/或REG2可以实现对与第一时钟信号同步的数据信号的获取,而如实施例2中所述的获取单元所需执行的对第二时钟信号的获取,可以简单地通过一个接线端来实现,例如图7中左侧标识有clk2的接线端,用于时钟信号clk2的输入,其中,clk2可以作为如实施例2中所述的第二时钟信号。
进一步地,在本发明实施例中,如实施例2所述的选择单元所需执行的选择性采集操作可以通过REG3、REG4、REG 5和REG6以及选择器MUX1和MUX2实现。
如图7所示,REG3、REG4、REG 5和REG6的时钟输入可以均为时钟信号clk2,其中,clk2可以作为如实施例2中所述的第二时钟信号。REG3和REG6的数据输入可以是dq3,REG 4和REG5的数据输入可以是dq4,从而REG3、REG4、REG 5和REG6均可以起到采集位于clk1的时钟域内的数据信号dq3或dq4以获得位于clk2的时钟域内的数据信号的作用,也即实现了数据信号的跨时钟域传输。
具体地,如图7所示,REG3和REG4的时钟输入直接为clk2,也即使用clk2的上升沿进行采集,REG5和REG6的时钟输入各自通过一个反相器输入clk2,也即使用clk2的下降沿进行采集,至于具体使用clk2的上升沿还是下降沿中的哪一个进行采集,可以通过选择器MUX1和MUX2来完成,其中,MUX1和MUX2的低电平输入可以对应使用clk2上升沿的采集方式,高电平输入可以对应使用clk2下降沿的采集方式,控制输入可以用于输入对应于clk1与clk2之间的相位差的电信号pm,其中,该相位差位于作为如实施例2中所述的第一预设区间的(T/2,T)时,pm可以为低电平,进而可以使用clk2的上升沿来采集与clk1对应的数据信号,该相位差位于作为如实施例2中所述的第二预设区间的(0,T/2)时,pm可以为高电平,进而可以使用clk2的下降沿来采集与clk1对应的数据信号。
通过上述选择性的采集方式,可以确保数据信号dq1和dq2在跨时钟域传输路径上的时序裕度,进而提高数据传输的准确性,其具体原理在实施例2中已有详细描述,本发明在此不作累述。
进一步地,如图7所示,在通过REG3、REG4或REG 5对位于clk1的时钟域的数据信号进行采集之后,还可以对采集所得到的数据信号进行再次采集,其中,当上述相位差位于第一预设区间时,pm为低电平,可以通过REG6、使用clk2的下降沿对通过REG3采集dq3所得到的数据信号进行再次采集,以获得如实施例2中所述的第五数据信号的dq5,并通过REG7、使用clk2的上升沿对通过REG4采集dq4所得到的数据信号进行再次采集,以获得如实施例2中所述的第六数据信号dq6。当然,对于如实施例2中所述的处理单元而言,其也可以直接输出clk2首次采集得到的数据信号,例如图7所示,在上述相位差位于第二预设区间时,pm为高电平,dq3将直接通过REG6、经由clk2的下降沿的一次采集后得到如实施例2中所述的第二数据信号中的所述第五数据信号dq5,本发明对此不作限定。
通过如图7所示的电路,本发明事实上给出了如实施例2中所述的第三处理模块的硬件实现方式,而第四处理模块相当于第三处理模块的对称的实施方式,本发明在此不作累述。其中,作为一种优化设计,在本发明实施例中,REG6在不同情形下分别用作如实施例2所述的选择单元和处理单元的一部分,从而节约了至少一个寄存器,在降低损耗的同时提高了处理装置的处理速度,值得注意的是,此类对本发明实施例的等效或变型均应视为在本发明的保护范围之内。
值得注意的是,在本发明实施例中,无论是由REG1、REG3、MUX1和REG6所形成的硬件逻辑电路,还是由REG2、REG4、REG5、MUX2和REG7所形成的硬件逻辑电路,其各自均可以视为一种如实施例2所述的处理装置的具体实施方式,其中,dq3到dq5、以及dq2到dq4各自的跨时钟域传输路径上的时序裕度都可以分别得到保证。然而考虑到DDR的双倍速传输要求,还可以进一步地将dq3或者说dq1、以及dq4或者说dq2所表示的数据结合到一起,作为一路数据进行输出,具体地,如图7所示,可以通过选择器MUX3实现对dq4和dq5的合并,其中,MUX3的高电平输入可以是REG6的数据输出,MUX3的低电平输入可以是REG7的数据输出,控制输入可以是clk2,从而在clk2为高电平时,MUX3或者说处理装置可以输出dq5,在clk2为低电平时,MUX3或者说处理装置可以输出dq6,这就满足了DDR对数据传输的要求,并给出了如实施例2中所述的第一输出单元的一种可行的硬件实现方式,而第二输出单元与第一输出单元是对称的,本发明在此不作累述。
进一步地,在本发明实施例中,如图7所示的处理装置可以作为内存控制器的物理PHY模块的一部分,由于该处理装置结构简单且延时较少,因此相对于现有的或者是通过软件逻辑实现的具有实现相同功能的内存控制器来说,采用包括该处理装置的PHY模块的内存控制器的处理速度将会获得显著的提升。具体地,clk1可以是系统时钟,clk2可以是内存时钟,dq1可以是DDR数据传输的一路数据,dq2可以是其另一路数据,而MUX3的输出可以是向内存传输的内存写数据,其中,该写数据由dq1和dq2的数据内容组合而成,其数据传输速率为系统时钟频率的两倍,且通过本发明实施例提供的处理装置,可以确保跨时钟域传输路径上的时序裕度大于等于半个时钟周期,进而提高了数据传输的准确性。
需要说明的是,上述实施例仅用于对本发明技术方案的理解,而不应视为对本发明构成了任何不必要的限定,例如,在如图7所示的处理装置中,还可以在传输路径上添加更多的寄存器以达到对数据信号进行一拍或多拍寄存的目的,类似的实施方式并不影响本发明技术方案的实施及其技术效果的实现,本发明对此也不作任何限定。应当理解的是,类似的对本发明的扩展与延伸均应视为在本发明的保护范围之内。
从以上的描述中,可以看出,本发明实现了如下技术效果:
1)采用了根据第一时钟信号与第二时钟信号之间的相位差在使用第二时钟信号的上升沿还是下降沿之间对与第一时钟信号对应的第一数据信号进行采集之间进行选择的方式,以获得与第二时钟信号对应、且满足对时序裕度的要求的第二时钟信号,从而实现了对数据信号在跨时钟域传输的传输路径上的时序裕度的控制;
2)通过对第一预设区间和第二预设区间的合理设置可以满足对数据信号的跨时钟域传输的设计要求,并提高数据信号的跨时钟域传输的可靠性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种数据信号的处理方法,其特征在于,包括:
获取第一数据信号、第一时钟信号和第二时钟信号,其中,所述第一数据信号与所述第一时钟信号对应,所述第一时钟信号的时钟周期与所述第二时钟信号的时钟周期相同;
若所述第一时钟信号相对于所述第二时钟信号的相位差位于第一预设区间,则使用所述第二时钟信号的上升沿采集所述第一数据信号;若所述相位差位于第二预设区间,则使用所述第二时钟信号的下降沿采集所述第一数据信号,其中,所述第一预设区间设置在(T/2,T),所述第二预设区间设置在(0,T/2);或,所述第一预设区间设置在(0,T/2),所述第二预设区间设置在(T/2,T);
根据采集所述第一数据信号所得到的数据信号获得第二数据信号,其中,所述第二数据信号与所述第二时钟信号对应。
2.根据权利要求1所述的处理方法,其特征在于,所述根据采集所述第一数据信号所得到的数据信号获得第二数据信号包括:
执行N次以下操作:使用所述第二时钟信号的上升沿或下降沿对前一次采集到的数据信号进行再次采集,其中,所述前一次采集到的数据信号的初始值为采集所述第一数据信号所得到的数据信号,N大于等于1;
将所述N次操作后采集得到的数据信号作为所述第二数据信号。
3.根据权利要求1所述的处理方法,其特征在于,所述根据采集所述第一数据信号所得到的数据信号获得第二数据信号包括:
若所述相位差位于所述第一预设区间,则使用所述第二时钟信号的下降沿对采集所述第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为所述第二数据信号;和/或,
若所述相位差位于所述第二预设区间,则使用所述第二时钟信号的上升沿对采集所述第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为所述第二数据信号。
4.根据权利要求1所述的处理方法,其特征在于,所述第一数据信号包括第三数据信号和第四数据信号,所述第二数据信号包括第五数据信号和第六数据信号,其中,所述根据采集所述第一数据信号所得到的数据信号获得第二数据信号包括:
若所述相位差位于所述第一预设区间,则使用所述第二时钟信号的下降沿对采集所述第三数据信号所得到的数据信号进行再次采集,使用所述第二时钟信号的上升沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将再次采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;若所述相位差位于所述第二预设区间,则使用所述第二时钟信号的上升沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;或者,
若所述相位差位于所述第一预设区间,则使用所述第二时钟信号的下降沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;若所述相位差位于所述第二预设区间,则使用所述第二时钟信号的上升沿对采集所述第三数据信号所得到的数据信号进行再次采集,使用所述第二时钟信号的下降沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将再次采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号。
5.根据权利要求4所述的处理方法,其特征在于,在所述根据采集所述第一数据信号所得到的数据信号获得第二数据信号之后,还包括:
在所述第二时钟信号为1时,输出所述第五数据信号,在所述第二时钟信号为0时,输出所述第六数据信号;或者,在所述第二时钟信号为0时,输出所述第五数据信号,在所述第二时钟信号为1时,输出所述第六数据信号。
6.根据权利要求1至5中任一项所述的处理方法,其特征在于,所述第一时钟信号为内存控制器的系统时钟,所述第二时钟信号为所述内存控制器的写数据时钟,所述第一数据信号为所述内存控制器的待传输数据,所述第二数据信号为所述内存控制器向内存芯片传输的写数据,其中,所述写数据时钟与所述内存芯片的内存时钟的时钟周期相同,且所述写数据时钟与所述内存时钟之间满足预设时序要求。
7.根据权利要求6所述的处理方法,其特征在于,所述预设时序要求为根据所述写数据时钟生成的所述写数据在到达所述内存芯片时相对于所述内存时钟提前K个时钟周期,K为0至1之间的任意值,其中,在所述获取第一数据信号和第二时钟信号之前,所述处理方法还包括:
在满足与所述预设时序要求对应的终止执行条件前,重复执行M次以下操作:向前或向后调整所述写数据时钟或者相对于所述写数据时钟滞后K个时钟周期的第三时钟信号,并向所述内存芯片传输与调整后的所述写数据时钟或者调整后的所述第三时钟信号对应的第七数据信号;接收所述内存芯片根据所述第七数据信号返回的第八数据信号,并根据接收的所述第八数据信号判断是否满足所述终止执行条件;其中,M大于等于1。
8.根据权利要求7所述的处理方法,其特征在于,所述第七数据信号为与所述第三时钟信号的上升沿或下降沿对齐的脉冲信号,所述第八数据信号为所述内存芯片使用所述脉冲信号采集所述内存时钟所得到的数据信号,其中,
若所述第七数据信号与所述第三时钟信号的上升沿对齐,则所述终止执行条件为:接收的所述第八数据信号由0变为1;
若所述第七数据信号与所述第三时钟信号的下降沿对齐,则所述终止执行条件为:接收的所述第八数据信号由1变为0。
9.根据权利要求7所述的处理方法,其特征在于,
在执行所述M次操作前,所述处理方法还包括:将与所述系统时钟对齐的时钟信号作为所述写数据时钟或者所述第三时钟信号的初始值;
在执行所述M次操作时,所述向前或向后调整所述写数据时钟和/或所述第三时钟信号包括:延迟所述写数据时钟或者所述第三时钟信号1/L个时钟周期,作为调整后的所述写数据时钟或者所述第三时钟信号,L为正整数;
在执行所述M次操作后,所述处理方法还包括:若将与所述系统时钟对齐的时钟信号作为所述写数据时钟,则根据下式获取所述相位差:Δ=(M/L)*T;若将与所述系统时钟对齐的时钟信号作为所述第三时钟信号,则根据下式获取所述相位差:Δ=(M/L-K)*T;其中,Δ表示所述相位差,T表示所述时钟周期。
10.一种数据信号的处理装置,其特征在于,包括:
获取单元,用于获取第一数据信号、第一时钟信号和第二时钟信号,其中,所述第一数据信号与所述第一时钟信号对应,所述第一时钟信号的时钟周期与所述第二时钟信号的时钟周期相同;
选择单元,用于在所述第一时钟信号相对于所述第二时钟信号的相位差位于第一预设区间时,使用所述第二时钟信号的上升沿采集所述第一数据信号,在所述相位差位于第二预设区间时,使用所述第二时钟信号的下降沿采集所述第一数据信号,其中,所述第一预设区间设置在(T/2,T),所述第二预设区间设置在(0,T/2);或,所述第一预设区间设置在(0,T/2),所述第二预设区间设置在(T/2,T);
处理单元,用于根据采集所述第一数据信号所得到的数据信号获得第二数据信号,其中,所述第二数据信号与所述第二时钟信号对应。
11.根据权利要求10所述的装置,其特征在于,所述处理单元包括:
执行模块,用于执行N次以下操作:使用所述第二时钟信号的上升沿或下降沿对前一次采集到的数据信号进行再次采集,其中,所述前一次采集到的数据信号的初始值为采集所述第一数据信号所得到的数据信号,N大于等于1;
输出模块,用于将所述N次操作后采集得到的数据信号作为所述第二数据信号。
12.根据权利要求10所述的处理装置,其特征在于,所述处理单元包括:
第一处理模块,用于在所述相位差位于所述第一预设区间时,使用所述第二时钟信号的下降沿对采集所述第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为所述第二数据信号;和/或,
第二处理模块,用于在所述相位差位于所述第二预设区间时,使用所述第二时钟信号的上升沿对采集所述第一数据信号所得到的数据信号进行再次采集,并将再次采集得到的数据信号作为所述第二数据信号。
13.根据权利要求10所述的处理装置,其特征在于,所述第一数据信号包括第三数据信号和第四数据信号,所述第二数据信号包括第五数据信号和第六数据信号,其中,所述处理单元包括:
第三处理模块,用于在所述相位差位于所述第一预设区间时,使用所述第二时钟信号的下降沿对采集所述第三数据信号所得到的数据信号进行再次采集,使用所述第二时钟信号的上升沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将再次采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;在所述相位差位于所述第二预设区间时,使用所述第二时钟信号的上升沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;或者,
第四处理模块,用于在所述相位差位于所述第一预设区间时,使用所述第二时钟信号的下降沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号;在所述相位差位于所述第二预设区间时,使用所述第二时钟信号的上升沿对采集所述第三数据信号所得到的数据信号进行再次采集,使用所述第二时钟信号的下降沿对采集所述第四数据信号所得到的数据信号进行再次采集,并将再次采集所述第三数据信号所得到的数据信号作为所述第五数据信号,将再次采集所述第四数据信号所得到的数据信号作为所述第六数据信号。
14.根据权利要求13所述的处理装置,其特征在于,还包括:
第一输出单元,用于在所述第二时钟信号为1时,输出所述第五数据信号,在所述第二时钟信号为0时,输出所述第六数据信号;或者,
第二输出单元,用于在所述第二时钟信号为0时,输出所述第五数据信号,在所述第二时钟信号为1时,输出所述第六数据信号。
15.根据权利要求10至14中任一项所述的处理装置,其特征在于,所述第一时钟信号为内存控制器的系统时钟,所述第二时钟信号为所述内存控制器的写数据时钟,所述第一数据信号为所述内存控制器的待传输数据,所述第二数据信号为所述内存控制器向内存芯片传输的写数据,其中,所述写数据时钟与所述内存芯片的内存时钟的时钟周期相同,且所述写数据时钟与所述内存时钟之间满足预设时序要求。
16.根据权利要求15所述的处理装置,其特征在于,所述预设时序要求为根据所述写数据时钟生成的所述写数据在到达所述内存芯片时相对于所述内存时钟提前K个时钟周期,K为0至1之间的任意值,其中,在所述获取第一数据信号和第二时钟信号之前,所述处理装置还包括:
调整单元,用于在满足与所述预设时序要求对应的终止执行条件前,重复执行M次以下操作:向前或向后调整所述写数据时钟或者相对于所述写数据时钟滞后K个时钟周期的第三时钟信号,并向所述内存芯片传输与调整后的所述写数据时钟或者调整后的所述第三时钟信号对应的第七数据信号;接收所述内存芯片根据所述第七数据信号返回的第八数据信号,并根据接收的所述第八数据信号判断是否满足所述终止执行条件;其中,M大于等于1。
17.根据权利要求16所述的处理装置,其特征在于,所述第七数据信号为与所述第三时钟信号的上升沿或下降沿对齐的脉冲信号,所述第八数据信号为所述内存芯片使用所述脉冲信号采集所述内存时钟所得到的数据信号,其中,
若所述第七数据信号与所述第三时钟信号的上升沿对齐,则所述终止执行条件为:接收的所述第八数据信号由0变为1;
若所述第七数据信号与所述第三时钟信号的下降沿对齐,则所述终止执行条件为:接收的所述第八数据信号由1变为0。
18.根据权利要求16所述的处理装置,其特征在于,
所述处理装置还包括:初始化单元,用于将与所述系统时钟对齐的时钟信号作为所述写数据时钟或者所述第三时钟信号的初始值;
所述调整单元包括:延迟模块,用于延迟所述写数据时钟或者所述第三时钟信号1/L个时钟周期,作为调整后的所述写数据时钟或者所述第三时钟信号,L为正整数;
所述处理装置还包括:计算模块,用于在将与所述系统时钟对齐的时钟信号作为所述写数据时钟时,根据下式获取所述相位差:Δ=(M/L)*T;在将与所述系统时钟对齐的时钟信号作为所述第三时钟信号时,根据下式获取所述相位差:Δ=(M/L-K)*T;其中,Δ表示所述相位差,T表示所述时钟周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310747048.4A CN103684698B (zh) | 2013-12-30 | 2013-12-30 | 数据信号的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310747048.4A CN103684698B (zh) | 2013-12-30 | 2013-12-30 | 数据信号的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103684698A CN103684698A (zh) | 2014-03-26 |
CN103684698B true CN103684698B (zh) | 2017-06-06 |
Family
ID=50321106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310747048.4A Active CN103684698B (zh) | 2013-12-30 | 2013-12-30 | 数据信号的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103684698B (zh) |
Families Citing this family (7)
* Cited by examiner, † Cited by third partyPublication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106230404B (zh) * | 2016-08-12 | 2019-04-19 | 湖南恒茂高科股份有限公司 | 时序控制电路 |
CN108874686B (zh) * | 2017-05-08 | 2021-08-03 | 龙芯中科技术股份有限公司 | 内存参数调节方法、装置及设备 |
CN110489363B (zh) * | 2019-10-08 | 2024-03-22 | 灿芯半导体(上海)股份有限公司 | 基于ddr写通道的发送电路 |
CN112653924A (zh) * | 2020-12-15 | 2021-04-13 | 上海安路信息科技有限公司 | Hdmi接收方法及装置 |
CN114496047B (zh) * | 2021-12-29 | 2023-08-29 | 深圳市紫光同创电子有限公司 | 双向数据选通采样信号dqs相位的调整方法及装置 |
CN117176180A (zh) * | 2022-05-25 | 2023-12-05 | 长鑫存储技术有限公司 | 数据处理电路、方法、发送电路以及半导体存储器 |
CN116775546B (zh) * | 2023-06-30 | 2024-08-30 | 海光信息技术股份有限公司 | 用于芯粒互联接口的数据传输方法及芯粒互联接口 |
Citations (4)
* Cited by examiner, † Cited by third partyPublication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510109A (zh) * | 2009-03-30 | 2009-08-19 | 炬力集成电路设计有限公司 | 一种主设备及数据读取和写入方法 |
CN101834715A (zh) * | 2010-04-26 | 2010-09-15 | 华为技术有限公司 | 一种数据处理方法及数据处理系统以及数据处理装置 |
WO2011161737A1 (ja) * | 2010-06-21 | 2011-12-29 | パナソニック株式会社 | デジタル位相差検出器およびそれを備えた周波数シンセサイザ |
CN102457267A (zh) * | 2010-10-19 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 数据同步处理系统及方法 |
-
2013
- 2013-12-30 CN CN201310747048.4A patent/CN103684698B/zh active Active
Patent Citations (4)
* Cited by examiner, † Cited by third partyPublication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510109A (zh) * | 2009-03-30 | 2009-08-19 | 炬力集成电路设计有限公司 | 一种主设备及数据读取和写入方法 |
CN101834715A (zh) * | 2010-04-26 | 2010-09-15 | 华为技术有限公司 | 一种数据处理方法及数据处理系统以及数据处理装置 |
WO2011161737A1 (ja) * | 2010-06-21 | 2011-12-29 | パナソニック株式会社 | デジタル位相差検出器およびそれを備えた周波数シンセサイザ |
CN102457267A (zh) * | 2010-10-19 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 数据同步处理系统及方法 |
Non-Patent Citations (1)
* Cited by examiner, † Cited by third partyTitle |
---|
跨时钟域信号的几种同步方法研究;赵晓海;《电子设计工程》;20120430;第20卷(第7期);第139-147页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103684698A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103684698B (zh) | 2017-06-06 | 数据信号的处理方法和装置 |
US8301932B2 (en) | 2012-10-30 | Synchronising between clock domains |
US6748039B1 (en) | 2004-06-08 | System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system |
US7198197B2 (en) | 2007-04-03 | Method and apparatus for data acquisition |
TWI325525B (en) | 2010-06-01 | Dynamically synchronizing a processor clock with the leading edge of a bus clock |
WO2019212630A1 (en) | 2019-11-07 | Calibration pattern and duty-cycle distortion correction for clock data recovery in a multi-wire, multi-phase interface |
CN116795172B (zh) | 2023-12-12 | 一种用于高速数字传输的跨时钟域处理方法、介质及装置 |
CN113204514B (zh) | 2022-03-25 | 一种提高芯片的spi接口频率的方法 |
TWI342127B (zh) | 2011-05-11 | |
CN103677081B (zh) | 2017-03-15 | 数据信号的处理方法和处理装置 |
US7178048B2 (en) | 2007-02-13 | System and method for signal synchronization based on plural clock signals |
US9111042B1 (en) | 2015-08-18 | 1588 deterministic latency with gearbox |
US10020035B2 (en) | 2018-07-10 | Reception circuit |
CN116827335B (zh) | 2023-10-27 | 一种分频装置及数据处理电路 |
CN210518362U (zh) | 2020-05-12 | 一种单线通信电路及通信系统 |
CN111446960A (zh) | 2020-07-24 | 一种时钟输出电路 |
CN103714012B (zh) | 2016-08-17 | 数据处理方法和装置 |
US6760392B1 (en) | 2004-07-06 | Method and apparatus to provide fixed latency early response in a system with multiple clock domains with fixable clock ratios |
JP2008535305A (ja) | 2008-08-28 | 非同期遅延を実現する電子回路 |
US20060188046A1 (en) | 2006-08-24 | Prediction of an optimal sampling point for clock resynchronization in a source synchronous data channel |
US6747490B1 (en) | 2004-06-08 | Sampling pulse generation |
JPS61127243A (ja) | 1986-06-14 | ビツト位相同期回路 |
US20060187729A1 (en) | 2006-08-24 | Source synchronous communication channel interface receive logic |
CN111208867B (zh) | 2021-08-24 | 一种基于ddr读数据整数时钟周期的同步电路及同步方法 |
CN119207512A (zh) | 2024-12-27 | 用于ddr的读数据的有效窗口延伸方法和电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
2014-03-26 | PB01 | Publication | |
2014-03-26 | PB01 | Publication | |
2014-04-23 | C10 | Entry into substantive examination | |
2014-04-23 | SE01 | Entry into force of request for substantive examination | |
2017-06-06 | GR01 | Patent grant | |
2017-06-06 | GR01 | Patent grant | |
2021-01-26 | CP01 | Change in the name or title of a patent holder |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
2021-01-26 | CP01 | Change in the name or title of a patent holder |