一种在异步时钟域传输数据的装置及其方法制造方法及图纸

技术编号:2919421 阅读:207 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种在异步时钟域传输数据的装置以及一种在异步时钟域传输数据的方法。其中发送方位于数据随路时钟域,接收方位于系统工作时钟域,所述方法包括以下步骤:A.发送方在写使能信号有效时,将数据缓存在存储单元中,同时产生一个数据就绪指示信号并发送给接收方;B.接收方在检测到所述数据就绪指示信号边沿时产生数据指示信号;C.根据所述数据指示信号调整第一计数器的相位,并在第一计数器的相位达到预先设定的相位时从存储单元读取数据。本发明专利技术实现了数据在异步时钟域之间稳定地传输,并且将传输延迟误差控制在接收方的一个时钟周期内,这样只需要通过提升接收方系统工作时钟的频率就能有效地降低误差的绝对值。

【技术实现步骤摘要】

本专利技术涉及数据传输
,特别是。
技术介绍
在大多数系统中,数据在不同单板之间的传输采用串行方式,而不同单板之间为异步时钟。但是,即使不同单板的异步时钟是同源的,但由于它们是经过不同的锁相环(PLL)或者不同的途径得到的,各自的时钟信号抖动(Jitter)是不同的,而且在任何一个短时间内它们都会存在频差,只是从长时间的统计结果来看是同步到时钟源上的,因此不同单板的两个时钟在一定时间内会出现相位漂移,相位漂移的最大值取决于时钟源、PLL等部件的质量。目前绝大多数的系统都是使用先进先出存储器(FIFO)来实现在两个时钟域之间传递数据。典型的FIFO为一个双口访问的存储器,如图1所示,FIFO包括存储单元、写地址计数器、读地址计数器、写地址格雷码发生器、读地址格雷码发生器以及清空检测和溢出检测逻辑。其中存储单元用来缓存数据,可以采用随机存取存储器(RAM)或者寄存器实现,它的深度决定了FIFO能够容忍的最大时钟抖动、相位漂移以及频率波动;写地址计数器和读地址计数器用来产生访问存储单元的地址,它们为循环计数器,即地址计数到存储单元的最大地址后从0开始重新计数;写地址格雷码发生器和读地址格雷码发生器,在每写入一个数据或者读出一个数据时就将写地址格雷码和读地址格雷码增加1,并将写地址格雷码或读地址格雷码输入清空检测和溢出检测逻辑;清空检测和溢出检测逻辑根据写地址格雷码和读地址格雷码以及即将发生的读写操作来判断FIFO是否发生了被清空或者溢出了,发出清空指示或溢出指示的信号,读写控制端则根据这些信号作出相应的操作,如停止写或者停止读。FIFO可以在频率发生偏差或读写时钟的抖动和相位漂移时,将数据稳定地从一个时钟域传到另一个时钟域上。但当FIFO的读、写端口中任一端口发生异常导致读、写地址发生跳变时,FIFO是不能够检测出来的,也不可能调整数据在FIFO的传输延迟,因此FIFO不能满足对传输延迟误差敏感的应用场合。
技术实现思路
有鉴于此,本专利技术提出了一种在异步时钟域传输数据的装置,其目的在于,实现数据在异步时钟域之间稳定传输的同时,有效地控制传输延迟误差。本专利技术的另一个目的在于提供一种在异步时钟域传输数据的方法。根据上述目的,本专利技术提供了一种在异步时钟域传输数据的装置,该装置包括存储单元,用于缓存数据;写数据端,用于在写使能信号有效时将数据缓存在存储单元中;数据就绪指示信号发生电路,用于在写使能信号有效时产生数据就绪指示信号;沿检测电路,用于检测数据就绪指示信号发生电路产生的数据就绪指示信号的边沿,在检测到所述数据就绪指示信号的边沿时产生数据指示信号;包括第一计数器的相位监测和数据采集相位发生器,用于根据所述数据指示信号调整第一计数器的相位,并在第一计数器的相位达到预先设定的相位时产生数据采集使能信号;读数据端,用于根据相位监测和数据采集相位发生器产生的数据采集使能信号从存储单元读取数据;其中写数据端、数据就绪指示信号发生电路工作在数据随路时钟域,沿检测电路、相位监测和数据采集相位发生器、以及读数据端工作在系统工作时钟域。该装置进一步包括位于数据就绪指示信号发生电路与沿检测电路之间的信号延迟电路,用于将所述数据就绪指示信号锁存至少两个时钟周期后输入所述沿检测电路。所述信号延迟电路由多个串连的D触发器组成。所述数据就绪指示信号发生电路包括第一选择器、第二选择器、D触发器和延时器。其中,第一选择器的1输入端被输入0,0输入端与所述D触发器的输出端相连,控制端与所述延时器的输出端相连,输出端与第二选择器的0输入端相连;第二选择器的1输入端被输入1,0输入端被与第一选择器的输出端相连,控制端被输入写使能信号,输出端与所述D触发器的D输入端相连;所述D触发器的D输入端与第二选择器的输出端相连,输出端与所述沿检测电路、第一选择器的0输入端以及所述延时器的输入端相连;所述延时器的输入端与所述D触发器的输出端相连,输出端与第一选择器的控制端相连。所述延时器由多个串连的D触发器组成,或者为等待多个时钟周期输出信号的计数器。所述相位监测和数据采集相位发生器进一步包括第三选择器、第四选择器、第五选择器、第一D触发器、第二D触发器以及第二计数器。其中,第三选择器的1输入端被输入1,0输入端与第一D触发器的输出端相连,控制端被输入所述数据指示信号,输出端与第一D触发器的D输入端相连;第四选择器的1输入端被输入所述数据指示信号,0输入端被输入0,控制端与第一计数器的输出端相连,输出端与第五选择器的输入端相连;第五选择器的1输入端被输入所述数据指示信号,0输入端与第四选择器的输出端相连,控制端与第一D触发器的输出端相连,输出端与第一计数器的清零端相连;第一D触发器的D输入端与第三选择器的输出端相连,输出端与第三选择器的0输入端、第五选择器的控制端以及第一计数器的使能端相连;第二D触发器的D输入端与第一计数器的输出端相连,使能端被输入所述数据指示信号,输出端与第二计数器的清零端相连;第一计数器的清零端与第五选择器的输出端相连,使能端与第一D触发器的输出端相连,输出端与第四选择器的控制端以及第二D触发器的D输入端相连,第一计数器的输出端输出数据采集使能信号;第二计数器的清零端与其输出端以及第二D触发器的输出端相连,使能端被输入所述数据指示信号,输出端与其清零端相连。所述存储单元为随机存取存储单元或寄存器。本专利技术还提供了一种在异步时钟域传输数据的方法,其中发送方位于数据随路时钟域,接收方位于系统工作时钟域并包括第一计数器,该方法包括以下步骤A.发送方在写使能信号有效时,将数据缓存在存储单元中,同时产生一个数据就绪指示信号并发送给接收方;B.接收方在检测到所述数据就绪指示信号边沿时产生数据指示信号;C.根据所述数据指示信号调整第一计数器的相位,并在第一计数器的相位达到设定相位时从存储单元读取数据。步骤B前进一步包括将所述数据就绪指示信号锁存一个以上时钟周期的步骤。步骤C中所述根据所述数据指示信号调整第一计数器的相位的步骤包括判断数据指示信号到达时第一计数器当前相位是否等于其最大相位,在不等于的情况下,判断所述当前相位与最大相位的相差绝对值是否大于1,如果大于1,则在下一个数据指示信号到达时,触发所述第一计数器重新计数,如果小于等于1,则在连续多个数据指示信号到达时所述第一计数器当前相位与其最大相位的差值保持不变的情况下,触发所述第一计数器重新计数。步骤C中所述在第一计数器的相位达到设定相位时从存储单元读取数据的步骤包括在第一计数器的相位到达预先设定的相位时产生数据采集使能信号;根据所述数据采集使能信号从存储单元读取数据。从上述技术方案中可以看出,由于本专利技术采用传递数据指示信号的方式来实现异步时钟域时间数据相位的锁定,从而实现数据在异步时钟域之间稳定地传输,并且将传输延迟误差控制在接收方的一个时钟周期内,这样只需要通过提升接收方系统工作时钟的频率就能有效地降低误差的绝对值。与现有技术的FIFO相比,不需要复杂的格雷码转换以及溢出清零判断,实现比较简单。附图说明图1为现有技术中FIFO的结构示意图。图2为本专利技术实施例中装置的结构示意图。图3为本专利技术实施例中各信号的时序图。图4为本专利技术实施例的装置中相位监测和数据采集相位发生器的结构示意图。本文档来自技高网
...

【技术保护点】
一种在异步时钟域传输数据的装置,其特征在于,该装置包括:存储单元,用于缓存数据; 写数据端,用于在写使能信号有效时将数据缓存在存储单元中;数据就绪指示信号发生电路,用于在写使能信号有效时产生数据就绪指示信号; 沿检测电路,用于检测数据就绪指示信号发生电路产生的数据就绪指示信号的边沿,在检测到所述数据就绪指示信号的边沿时产生数据指示信号;包括第一计数器的相位监测和数据采集相位发生器,用于根据所述数据指示信号调整第一计数器的相位,并在第一计数 器的相位达到预先设定的相位时产生数据采集使能信号;读数据端,用于根据相位监测和数据采集相位发生器产生的数据采集使能信号从存储单元读取数据;其中写数据端、数据就绪指示信号发生电路工作在数据随路时钟域,沿检测电路、相位监测和数据 采集相位发生器、以及读数据端工作在系统工作时钟域。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴奇祥
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1