一种数据处理装置及方法与流程

文档序号:12733552阅读:259来源:国知局
一种数据处理装置及方法与流程

本发明涉及通信领域,尤其涉及一种数据处理装置及方法。



背景技术:

随着数字电路系统规模的不断增大,数字电路系统不断向高集成度,多功能性、低功耗、小型化等方向发展,相应地,数字电路系统中的时钟数也不断增多。由于不同的时钟域对应的工作时钟信号不同,而数据在系统中又是以时钟为基准进行传输的,因此,数据在由一个时钟域传输到另一个时钟域时,就可能出现建立时间或保持时间不足的情况,从而产生亚稳态值,导致整个系统数据传输的不确定性以及数据错误,因此,实现可靠的跨时钟域的数据传输是在数字电路系统设计中非常重要的一部分。

现有的处理方法中,对于大量连续数据的跨时钟域传输,通常采用FIFO(First Input First Output,先入先出队列)结构来实现跨时钟域的数据传输。FIFO结构中引入了地址控制逻辑,在跨时钟域数据传输时,输入数据所在的时钟域中首先将输入数据预存到RAM(random access memory,随机存取存储器)里,地址经过格雷码编码后,跨时钟域到输出数据所在的时钟域。输出数据所在的时钟域经过格雷码反编码后通过地址比较发现写地址已经超过读地址,则表明当前读地址是需要传输的数据,FIFO读端口发起读操作,将数据取出,即实现了跨时钟域。然而FIFO结构需要消耗额外的存储资源,并引入了额外的地址控制逻辑,同时,由于采用的是双寄存器或者更多级寄存器同步的方式用以消除亚稳态,导致延迟具有不确定性,通常会上下浮动一个周期。

因此,如何处理跨时钟域传输的数据,实现准确的跨时钟域数据传输,是业界所亟待研究和解决的。



技术实现要素:

本发明实施例提供一种数据处理装置及方法,用以处理跨时钟域传输的数据,实现准确的跨时钟域数据传输。

本发明的一个实施例提供的数据处理装置,应用于第一时钟域到第二时钟域的数据传输,第一时钟域时钟信号周期长度为T1,第二时钟域时钟信号周期长度为T2,该装置包括:

第一级寄存器,用于按照第一时钟域时钟信号依次接收串行输入的N个Q1比特串行数据,根据第一使能信号输出一路N×Q1比特串行数据,其中,Q1为大于或等于1的整数,所述第一使能信号为周期等于TMID、脉宽等于一个T1的脉冲信号,TMID为T1和T2的公倍数,T1、T2为大于0的数,所述N通过公式计算得到;

第二级寄存器,用于按照中间时钟信号接收第一级寄存器输出的数据,输出一路N×Q1比特串行数据,所述中间时钟信号为周期等于TMID的时钟信号;

第三级寄存器,用于根据第二使能信号接收第二级寄存器输出的一路N×Q1比特串行数据,将所述N×Q1比特串行数据按照第二时钟域时钟信号依次串行输出,其中,所述第二使能信号为周期等于TMID、脉宽等于一个T2的脉冲信号。

优选地,所述TMID为T1和T2的最小公倍数。

其中,所述第一时钟域时钟信号、中间时钟信号、以及所述第二时钟域时钟信号同相位;所述第一使能信号与所述第一时钟域时钟信号同步,所述第二使能信号与所述第二时钟域时钟信号同步。

具体地,所述第一级寄存器包括位宽为N×Q1的第二寄存器以及N个顺序级联的位宽为Q1的第一寄存器,所述N个第一寄存器按照第一时钟域时钟信号接收和输出数据;

第一时钟域的N个Q1比特串行数据被所述N个顺序级联的第一寄存器转 换为并行的N路Q1比特串行数据,且第i+1路数据比第i路数据延迟一个T1,1<=i<=N,i为大于或等于1的整数;

所述第二寄存器根据第一使能信号,按照第一时钟域时钟信号接收所述并行的N路Q1比特串行数据,输出一路N×Q1比特串行数据。

具体地,所述第三级寄存器包括位宽为N×Q1的第三寄存器以及位宽为Q2的第四寄存器,所述第三寄存器根据第二使能信号,按照第二时钟域时钟信号接收中间时钟域的一路N×Q1比特串行数据,输出一路N×Q1比特串行数据;

第二时钟域的N×Q1比特串行数据被所述第四寄存器按照第二时钟域时钟信号接收,依次串行输出M个Q2比特串行数据,其中,M×Q2=N×Q1

本发明的一个实施例提供的数据处理方法,应用于第一时钟域到第二时钟域的数据传输,第一时钟域时钟信号周期长度为T1,第二时钟域时钟信号周期长度为T2,该方法包括:

第一级寄存器按照第一时钟域时钟信号依次接收串行输入的N个Q1比特串行数据,根据第一使能信号输出一路N×Q1比特串行数据,其中,Q1为大于或等于1的整数,所述第一使能信号为周期等于TMID、脉宽等于一个T1的脉冲信号,TMID为T1和T2的公倍数,T1、T2为大于0的数,所述N通过公式计算得到;

第二级寄存器按照中间时钟信号接收第一级寄存器输出的数据,输出一路N×Q1比特串行数据,所述中间时钟信号为周期等于TMID的时钟信号;

第三级寄存器根据第二使能信号接收第二级寄存器输出的一路N×Q1比特串行数据,将所述N×Q1比特串行数据按照第二时钟域时钟信号依次串行输出,其中,所述第二使能信号为周期等于TMID、脉宽等于一个T2的脉冲信号。

优选地,所述TMID为T1和T2的最小公倍数。

其中,所述第一时钟域时钟信号、中间时钟信号、以及所述第二时钟域时 钟信号同相位;所述第一使能信号与所述第一时钟域时钟信号同步,所述第二使能信号与所述第二时钟域时钟信号同步。

具体地,所述第一级寄存器包括位宽为N×Q1的第二寄存器以及N个顺序级联的位宽为Q1的第一寄存器,所述N个第一寄存器按照第一时钟域时钟信号接收和输出数据;

第一时钟域的N个Q1比特串行数据被所述N个顺序级联的第一寄存器转换为并行的N路Q1比特串行数据,且第i+1路数据比第i路数据延迟一个T1,1<=i<=N,i为大于或等于1的整数;

所述第二寄存器根据第一使能信号,按照第一时钟域时钟信号接收所述并行的N路Q1比特串行数据,输出一路N×Q1比特串行数据。

具体地,所述第三级寄存器包括位宽为N×Q1的第三寄存器以及位宽为Q2的第四寄存器,所述第三寄存器根据第二使能信号,按照第二时钟域时钟信号接收中间时钟域的一路N×Q1比特串行数据,输出一路N×Q1比特串行数据;

第二时钟域的N×Q1比特串行数据被所述第四寄存器按照第二时钟域时钟信号接收,依次串行输出M个Q2比特串行数据,其中,M×Q2=N×Q1

本发明的上述实施例所提供的一种数据处理装置可以应用于第一时钟域到第二时钟域的数据传输,通过引入周期与第一时钟域时钟信号和第二时钟域时钟信号的周期均成倍数关系的中间时钟信号,即引入周期TMID为第一时钟域时钟信号T1和第二时钟域时钟信号T2的公倍数的中间时钟信号,从而使得数据在从第一时钟域到第二时钟域的传输包括从第一时钟域到中间时钟信号所在的中间时钟域,以及从中间时钟域到第二时钟域的传输过程,以上过程通过工作在第一时钟域的第一级寄存器、工作在中间时钟域的第二级寄存器和工作在第二时钟域的第三级寄存器完成,即通过完全的寄存器级间的传输来完成跨时钟域数据传输,从而使得整个数据传输过程的传输延时明确并且时序可分 析,能够实现跨时钟域数据的准确传输。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中采用FIFO结构的跨时钟域数据传输的流程示意图;

图2为本发明实施例所提供的一种数据处理装置及方法所实现的跨时钟域数据传输的结构示意图;

图3为本发明实施例提供的一种数据处理装置的结构示意图;

图4为现有技术中信号同步的结构示意图;

图5为现有技术中成倍数关系的同相位时钟信号的示意波形图;

图6为现有技术中成倍数关系的非同相位时钟信号的示意波形图;

图7为现有技术中FPGA时序分析中的建立Setup时序的示意图;

图8为现有技术中FPGA时序分析中的保持Hold时序的示意图;

图9为本发明实施例所提供的一种数据处理装置在实际跨时钟域数据传输场景中应用;

图10为本发明实施例所提供的一种数据处理装置在实际跨时钟域数据传输场景中应用时第一时钟域到中间时钟域传输的时序图;

图11为本发明实施例所提供的一种数据处理装置在实际跨时钟域数据传输场景中应用时中间时钟域到第二时钟域传输的时序图;

图12为本发明实施例提供的一种数据处理方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发 明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)内部信号均为数字信号,数据在寄存器之间以时钟为基准进行传输。如果想要确保数据传输不出错,则信号与时钟信号应该满足寄存器的建立时间和保持时间。

其中,建立时间Tsu(setup time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入寄存器,保持时间Th(hold time)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入寄存器。因此,跨时钟域传输的数据的处理是芯片设计中的重要环节,如何保持系统的稳定,顺利完成数据的跨时钟域传输是芯片设计中需要重点关注的问题。

应当指出,术语“时钟”也可以理解为“时钟信号”,术语“时钟域”也可以理解为芯片上以相同的时钟频率工作(工作在同一个时钟域中)的一个或多个组件的集合。

当一个数字信号从一个时钟域传输到另一个时钟域时,对新时钟域的电路来说,它是一个异步信号,由于异步信号之间的时序是毫无关系的,从而可能会出现建立时间/保持时间的冲突,进而可能产生亚稳态。当一个寄存器进入亚稳态时,既无法预测该寄存器的输出电平,也无法预测该寄存器的输出何时才能稳定在某个正确的电平上。在亚稳态期间,寄存器会输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个寄存器级联式传播下去,最终导致连锁反应,从而使整个系统功能失常。

现有方案里,对于大量连续数据跨时钟域通常采用FIFO结构来消除跨时钟域数据传输中可能出现的亚稳态。图1示出了现有技术中一种简化的采用FIFO结构的跨时钟域数据传输的流程示意图。尽管FIFO结构能够减小跨时钟域数据传输中亚稳态出现的概率,使MTBF(Mean Time Between Failure,平均 故障间隔时间)满足设计需求,但是对于采用FIFO结构实现跨时钟域数据传输的技术方案,由于需要输入数据所在的时钟域首先将输入数据预存到RAM里,通过将地址经过格雷码编码后,跨时钟域到输出数据所在的时钟域,输出数据所在的时钟域是经过格雷码反编码后通过地址比较发现写地址已经超过读地址,从而表明当前读地址是需要传输的数据来完成跨时钟域数据传输的过程,因此需要引入地址控制逻辑,因此需要消耗额外的ram资源以及额外的地址控制,并且由于FIFO地址在转格雷码并跨时钟域时,采用的是双寄存器或者更多级寄存器同步的方式(减小亚稳态概率),延迟具有不确定性,会上下浮动一个周期。

另外FIFO结构在实现跨时钟域数据传输时,对输入数据和输出数据位宽也有要求,即输入数据和输出数据的位宽比例必须是2的n次方(n为整数),如果输入数据所在的第一时钟域和输出数据所在的第二时钟域的时钟周期不是整数倍的关系的话,则只通过一级FIFO结构不能完成连续的跨时钟域数据传输。

针对现有技术中对于跨时钟域的数据传输中的缺陷,本发明实施例提出一种数据处理装置及方法,用以处理跨时钟域传输的数据,实现准确的跨时钟域数据传输。本发明实施例所提供的一种数据处理装置及方法可以应用于电子芯片设计,主要可以应用于跨时钟域的数据传输的电路设计。

图2示出了本发明的一个实施例所提供的一种数据处理装置及方法所实现的跨时钟域数据传输的流程示意图。可以看到在本发明的一个实施例所提出的一种数据处理装置及方法中,涉及到3个时钟域,其中第一时钟域clk_a、第二时钟域clk_b为通信两端的时钟,对于从第一时钟域(如图2中的clk_a)到第二时钟域(如图2中的clk_b)的数据传输过程中引入了中间时钟域(如图2中的clk_mid)。下面结合附图对本发明实施例进行详细描述。

图3示出了本发明的一个实施例提供的数据处理装置的结构示意图,该装置可应用于第一时钟域到第二时钟域的数据传输,实现如图2所示的跨时钟域 数据传输流程。设第一时钟域时钟信号周期长度为T1,第二时钟域时钟信号周期长度为T2,该装置包括:

第一级寄存器301,用于按照第一时钟域时钟信号依次接收串行输入的N个Q1比特串行数据,根据第一使能信号输出一路N×Q1比特串行数据,其中,Q1为大于或等于1的整数,所述第一使能信号为周期等于TMID、脉宽等于一个T1的脉冲信号,TMID为T1和T2的公倍数,T1、T2为大于0的数,所述N通过公式计算得到。

具体地,对于第一时钟域时钟信号周期T1,第二时钟域时钟信号周期T2,以及第一使能信号周期TMID,TMID为T1和T2的公倍数,TMID为N倍T1;对于N,可以通过公式计算得到。举例来说,若第一时钟域时钟信号周期T1=3,第二时钟域时钟信号周期T2=4,则TMID为T1和T2的公倍数,即为12或12的倍数,比如TMID为12,则N为4。

其中,第一使能信号为与第一时钟域时钟信号同步的脉冲信号。

应当指出,在本文的描述中,一个信号(设为signal_a)与一个时钟信号(设为clk_a)同步是指,信号signal_a为寄存器输出,而该寄存器的时钟端口由clk_a驱动,如图4所示。

具体地,对于应用本发明的一个实施例所提供的数据处理装置的从第一时钟域到第二时钟域的数据传输过程的时序分析,在时序图中,第一使能信号为与第一时钟域时钟信号同步的脉冲信号表现为,每N个第一时钟域时钟信号周期,第一使能信号的上升沿与第N个第一时钟域时钟信号上升沿对齐,第一使能信号的下降沿与第N+1个第一时钟域时钟信号上升沿对齐,即高电平维持一个第一时钟域时钟信号周期后变为低电平,低电平维持N-1个第一时钟域时钟信号周期。

在一些优选的实施例中,第一级寄存器301可以包括有位宽为N×Q1的第二寄存器以及N个顺序级联的位宽为Q1的第一寄存器。

其中,N个第一寄存器按照第一时钟域时钟信号接收和输出数据;第一时钟域的N个Q1比特串行数据被该N个顺序级联的第一寄存器转换为并行的N路Q1比特串行数据,且第i+1路数据比第i路数据延迟一个T1,1<=i<=N,i为大于或等于1的整数。

其中,第二寄存器根据第一使能信号,按照第一时钟域时钟信号接收该并行的N路Q1比特串行数据,输出一路N×Q1比特串行数据。

具体地,在第一时钟域时钟信号出现上升沿时,顺序级联的N个第一寄存器中的第一个第一寄存器接收输入的Q1比特串行数据,并向第二寄存器以及与其级联的第二个第一寄存器输出Q1比特串行数据,顺序级联的每一个级联的第一寄存器均在第一时钟域时钟信号出现上升沿时接收与其级联的上一级第一寄存器输出的Q1比特串行数据并向第二寄存器与其级联的下一级第一寄存器输出Q1比特串行数据,顺序级联的最后一个第一寄存器接收与其级联的上一级第一寄存器输出的Q1比特串行数据,并向第二寄存器输出Q1比特串行数据。

第二寄存器根据第一使能信号的脉冲工作,即第一使能信号变为高电平时,第二寄存器工作。在第一使能信号为高电平时,第二寄存器在第一时钟域时钟信号的上升沿接收由顺序级联的N个第一寄存器中的每一个第一寄存器输出Q1比特串行数据,即接收并行的N路Q1比特串行数据,且第i+1路数据比第i路数据延迟一个T1,第二寄存器输出一路N×Q1比特串行数据,由于第一使能信号每N个第一时钟域时钟信号周期变为高电平,则在第二寄存器所输出的N×Q1比特串行数据即为顺序级联的N个第一寄存器中的第一个第一寄存器在这N个第一时钟域时钟信号周期内所接收到的N个Q1比特串行数据。

第二级寄存器302,用于按照中间时钟信号接收第一级寄存器输出的数据,输出一路N×Q1比特串行数据,所述中间时钟信号为周期等于TMID的时钟信号。

具体地,对于中间时钟信号周期TMID,如前述的TMID,例如第一时钟域时钟信号周期T1=3,第二时钟域时钟信号周期T2=4,则TMID为12或12的倍数。

其中,中间时钟信号与第一时钟域时钟信号为同相位的时钟信号。

应当指出,在本文的描述中,一个时钟信号与另一个时钟信号同相位是指,这两个时钟信号的起始边沿对齐,具体实现可以是设置PLL(Phase Locked Loop,锁相环)输出的各个时钟的相位均为0°。例如,设对于三个时钟信号,clk_a、clk_mid、clk_b,图5示出了这三个时钟信号为成倍数关系的同相位时钟信号的波形图。图6示出了这三个时钟信号为成倍数关系的非同相位时钟信号的波形图。

具体地,对于应用本发明的一个实施例所提供的数据处理装置的从第一时钟域到第二时钟域的数据传输过程的时序分析,在时序图中,中间时钟信号与第一时钟域时钟信号同相位表现为中间时钟信号与第一时钟域时钟信号的上升沿对齐,该中间时钟信号的高电平维持个第一时钟域时钟信号周期后变为低电平,低电平同样维持个第一时钟域时钟信号周期。

在FPGA时序分析时,默认情况下,即非多周期约束的情况下,时钟的上升沿发出的数据信号将在下一个时钟的上升沿被采样。对于从一个时钟域(设时钟信号为clk_a)到另一个时钟域(设时钟信号为与clk_a同步的clk_mid)的数据传输过程的时序分析,clk_a的上升沿发出的数据信号将在clk_mid的下一个上升沿被采样,由于clk_a和clk_mid为不同时钟域的时钟信号,对于建立Setup以及保持Hold时序,都将会出现多种采样情况,而在所有的采样情况对应的时序中,FPGA默认分析最坏的时序。

以clk_mid时钟信号周期为clk_a时钟信号周期的四倍为例:图7示出了从clk_a到clk_mid的建立Setup时序图,可以看到存在有四种情况,其中,最坏的建立时间为一个clk_a时钟信号周期,对应于图7中的edge4发出信号、Latch edge接收信号的采样情况;图8示出了从clk_a到clk_mid的保持Hold时序图,可以看到也存在有四种情况,其中,最坏的保持时间为零,对应于edge1发出信号、在Latch edge之后到达采样寄存器的采样情况。

为了避免一个数据信号从一个时钟域传输到另一时钟域时出现亚稳态,必须使建立时间与保持时间至少能够满足默认的时序约束,即最少不能少于FPGA默认分析的最坏的建立时间和保持时间,从而保证数据正确传输。

具体地,对于应用本发明的一个实施例所提供的数据处理装置的从第一时钟域到第二时钟域的数据传输过程的时序分析,与第一时钟域时钟信号同相位的中间时钟信号在每N个第一时钟域时钟信号周期中,存在有N个可能的采样点,即N种采样情况。具体在时序图中表现为,对于每N个第一时钟域时钟信号周期,中间时钟信号的上升沿可能与该N个第一时钟域时钟信号中的任意一个第一时钟域时钟信号的上升沿对齐:

若中间时钟信号的上升沿与该N个第一时钟域时钟信号中的第1个第一时钟域时钟信号的上升沿对齐,则这种情况下建立时间为N个T1,对应的保持时间为0,若中间时钟信号的上升沿与该N个第一时钟域时钟信号中的第i个第一时钟域时钟信号的上升沿对齐,则建立时间为i-1个T1,对应的保持时间为N-i+1个T1,若中间时钟信号的上升沿与该N个第一时钟域时钟信号中的第N个第一时钟域时钟信号的上升沿对齐,则建立时间为N-1个T1,对应的保持时间为1个T1

可以看到,在所有可能的N种采样情况中,最坏的建立时间为1个T1,最坏的保持时间为0,因此,能够满足上文所描述的默认的时序约束,进而在具体实现时只要选择其中最严格的采样情形(即最坏的建立时间1个T1,最坏的保持时间为0)作为对第一级寄存器的电路结构、第二级寄存器的电路结构以及第一级寄存器与第二级寄存器连接在具体实现中进行布局布线的约束条件,便能够对所有可能发生的N种采样情况都使得数据的建立时间和保持时间满足默认的时序约束,从而能够避免亚稳态的出现。

因此本发明的一个实施例所提供的数据处理装置能够保证数据从第一时钟域到中间时钟信号所在的中间时钟域的准确传输。

在一些优选的实施例中,第二级寄存器302可以是位宽为N×Q1的中间寄 存器,该中间寄存器可以在中间时钟信号的上升沿到达时接收第一级寄存器301所输出的N×Q1比特串行数据,并向与其连接的第三级寄存器输出N×Q1比特串行数据

第三级寄存器303,用于根据第二使能信号接收第二级寄存器输出的一路N×Q1比特串行数据,将所述N×Q1比特串行数据按照第二时钟域时钟信号依次串行输出,其中,所述第二使能信号为周期等于TMID、脉宽等于一个T2的脉冲信号。

具体地,对于第二时钟域时钟信号周期T2以及第二使能信号周期TMID,如前述的TMID,TMID为M倍T2,其中的M可以通过公式计算得到。举例来说,若第一时钟域时钟信号周期T1=3,第二时钟域时钟信号周期T2=4,则TMID为T1和T2的公倍数,即为12或12的倍数,比如TMID为12,则M为3。

其中,第二时钟域时钟信号为与第一时钟域时钟信号以及中间时钟信号同相位的时钟信号。

具体地,对于应用本发明的一个实施例所提供的数据处理装置的从第一时钟域到第二时钟域的数据传输过程的时序分析,在时序图中,第二时钟域时钟信号与第一时钟域时钟信号以及中间时钟信号同相位表现为,第二时钟域时钟信号的上升沿与第一时钟域时钟信号的上升沿以及中间时钟信号的上升沿均对齐,该第二时钟域时钟信号的时钟周期T2

其中,第二使能信号为与第二时钟域时钟信号同步的脉冲信号。

具体地,对于应用本发明的一个实施例所提供的数据处理装置的从第一时钟域到第二时钟域的数据传输过程的时序分析,在时序图中,第二使能信号为与第二时钟域时钟信号同步的脉冲信号表现为,每M个第二时钟域时钟信号周期,第二使能信号的上升沿与第M个第二时钟域时钟信号上升沿对齐,第二使能信号的下降沿与第M+1个第二时钟域时钟信号上升沿对齐,即高电平维持一个第二时钟域时钟信号周期后变为低电平,低电平维持M-1个第二时钟 域时钟信号周期。

在一些优选的实施例中,第三级寄存器303可以具体包括有位宽为N×Q1的第三寄存器以及位宽为Q2的第四寄存器。

其中,第三寄存器根据第二使能信号,按照第二时钟域时钟信号接收中间时钟域的一路N×Q1比特串行数据,输出一路N×Q1比特串行数据;

其中,第二时钟域的N×Q1比特串行数据被第四寄存器按照第二时钟域时钟信号接收,依次串行输出M个Q2比特串行数据,其中,M×Q2=N×Q1

具体地,第三寄存器根据第二使能信号的脉冲工作,即第二使能信号变为高电平时,第三寄存器工作。根据第二使能信号工作的第三寄存器每M个第二时钟域时钟信号周期时接收第二级寄存器输出的一路N×Q1比特串行数据,输出到第四寄存器,第四寄存器在每个第二时钟域时钟信号上升沿到达时将N×Q1比特串行数据分M次输出,即依次串行输出M个Q2比特串行数据,其中,M×Q2=N×Q1。因此输出的M个Q2比特串行数据与第二时钟域时钟信号同步。

根据如前文所述的为了避免一个数据信号从一个时钟域传输到另一时钟域时出现亚稳态,必须使建立时间与保持时间至少能够满足默认的时序约束的条件。对于应用本发明的一个实施例所提供的数据处理装置的从中间时钟信号所在的中间时钟域到第二时钟域的数据传输过程的时序分析,由于M个第二时钟域时钟信号周期对应与一个第二使能信号,且第二使能信号与第二时钟域时钟信号同步,因此存在有M个可能的采样点,即M种可能的采样情况。具体在时序图中的表现为,对于每M个第二时钟域时钟信号周期,第二使能信号的上升沿可能与该M个第二时钟域时钟信号中的任意一个第二时钟域时钟信号的上升沿对齐:

若第二使能信号的上升沿与该M个第二时钟域时钟信号中的第1个第二 时钟域时钟信号的上升沿对齐,则这种情况下建立时间为1个T2,对应的保持时间为M-1个T2,若第二使能信号的上升沿与该M个第二时钟域时钟信号中的第j个第二时钟域时钟信号的上升沿对齐,则这种情况下建立时间为j个T2,对应的保持时间为M-j个T2,若第二使能信号的上升沿与该M个第二时钟域时钟信号中的第M个第二时钟域时钟信号的上升沿对齐,则这种情况下建立时间为M个T2,对应的保持时间为0,j为大于或等于1的整数。

可以看到,在所有可能的M种采样情况中,最坏的建立时间为1个T2,最坏的保持时间为0,因此,能够满足上文所描述的默认的时序约束,进而在具体实现时只要选择其中最严格的采样情形(即最坏的建立时间为1个T2,最坏的保持时间为0)作为对第二级寄存器的电路结构、第二级寄存器与第三级寄存器的连接以及第三级寄存器的电路结构在具体实现中进行布局布线的约束条件,便能够对所有可能发生的M种采样情况都使得数据的建立时间和保持时间满足默认的时序约束,从而避免亚稳态出现。

因此本发明的一个实施例所提供的数据处理装置能够保证数据从中间时钟信号所在的中间时钟域到第二时钟域的准确传输。

进一步地,综合考虑前文所描述的从第一时钟域到第二时钟域的数据传输过程的时序分析中的所有可能的采样情况,可以看到,在具体实现时只要选择其中最严格的采样情况(即第一时钟域到中间时钟域传输过程中的最坏的建立时间1个T1,最坏的保持时间0;以及中间时钟域到第二时钟域传输过程中的最坏的建立时间1个T2,最坏的保持时间0)作为对第一级寄存器的电路结构、第一级寄存器与第二级寄存器的连接、第二级寄存器的电路结构、第二级寄存器与第三级寄存器的连接以及第三级寄存器的电路结构在具体实现时进行布局布线的约束,便能够对所有可能发生的采样情况都使得数据的建立时间和保持时间满足默认的时序约束,从而能够避免数据从第一时钟域到中间时钟信号所在的中间时钟域、以及中间时钟域到第二时钟域的传输过程中出现亚稳态。

因此本发明的一个实施例所提供的数据处理装置能够保证数据从第一时 钟域到中间时钟信号所在的中间时钟域,以及数据进一步地从中间时钟信号所在的中间时钟域到第二时钟域的准确传输。

第一时钟域连续输入的N个Q1比特串行数据通过被如图3所示的数据处理装置中的第一级寄存器301依次接收、第二级寄存器302对第一级寄存器301的输出采样以及第三级寄存器303对第二级寄存器302的输出采样并在第二时钟域分次输出的过程后可以得到正确的传输到第二时钟域的M个Q2比特串行数据。第一时钟域输入的N个Q1比特串行数据的总数据位数与第二时钟域输出的M个Q2比特串行数据的总数据位数相同,第一时钟域数据位宽Q1与第二时钟域数据位宽Q2之比即第一时钟域时钟信号周期T1与第二时钟域时钟信号周期T2比值,第一时钟域与第二时钟域传输的数据带宽相等,因此,本发明实施例所提供的数据处理装置能够适用于大量连续数据传输的场景。

具体地,如图3所示的数据处理装置中的第一级寄存器301、第二级寄存器302、第三级寄存器303可以完全是由寄存器构成,数据可以直接进行寄存器级传输,因此,数据从第一时钟域到第二时钟域的传输延时是可以明确的;对于引入中间时钟信号的本发明实施例所提供的数据处理装置,由于中间时钟信号与第一时钟域时钟信号和第二时钟域时钟信号之间为公倍数的关系,并为同相位的时钟信号,因此经过第一时钟域、中间时钟信号所在的中间时钟域和第二时钟域的数据传输过程均是时序可分析的。

进一步地,在一些优选的实施例中,TMID可以是T1和T2的最小公倍数。举例来说,若第一时钟域时钟信号周期T1=3,第二时钟域时钟信号周期T2=4,则TMID为T1和T2的最小公倍数,即为12。

具体地,本发明实施例中的第一寄存器、第二寄存器、中间寄存器、第三寄存器以及第四寄存器可以是由触发器构成的寄存器,其中,触发器可以是D触发器、或者为由D触发器组成的数据锁存器或数据缓存器,或者是其他触发器的组合,例如RS触发器或JK触发器的组合等,本发明对此不做具体限定。

为了更清楚地理解本发明实施例所提供的数据处理装置在具体实际场景 中的应用,基于图2所示的从第一时钟域到第二时钟域传输数据的场景,对于图3所示的装置,以中间时钟信号周期TMID为第一时钟域时钟信号周期T1和第二时钟域时钟周期T2的最小公倍数为例,图9示出了本发明实施例所提供的一种数据处理装置在实际跨时钟域数据传输场景中的应用,图10为本发明实施例所提供的一种数据处理装置在该实际跨时钟域数据传输场景中应用时第一时钟域到中间时钟信号所在的中间时钟域传输的时序图,图11为本发明实施例所提供的一种数据处理装置在该实际跨时钟域数据传输场景中应用时中间时钟域到第二时钟域传输的时序图;

具体地,设第一时钟域时钟为clk_a、第二时钟域时钟为clk_b、所引入的中间时钟信号所在的中间时钟域为clk_mid,clk_a时钟信号周期为T1=3、clk_b时钟信号周期为T2=4、则clk_mid时钟信号周期为TMID=12,其中,clk_a时钟信号与clk_b时钟信号以及clk_mid时钟信号之间的相位差为0。

一种应用本发明实施例所提供的数据处理装置实现跨时钟域数据传输的过程包括有从第一时钟域clk_a到中间时钟域clk_mid数据传输过程以及中间时钟域clk_mid到第二时钟域clk_b的数据传输过程,其中,设第一时钟域clk_a中的输入数据为video_data[11:0],位宽为12,具体传输过程包括:

1、第一时钟域clk_a到中间时钟域clk_mid的数据传输,如图9所示,通过工作在第一时钟域clk_a的4个顺序级联的位宽为12的第一寄存器901依次接收第一时钟域的输入数据video_data,进一步传输到位宽为48的第二寄存器902,再由工作在中间时钟域clk_mid的位宽为48的中间寄存器903采样:

具体地,第一时钟域clk_a依次输入的4个位宽为12的串行数据video_data通过顺序级联的4个第一寄存器901,其中的3个位宽为12的串行数据video_data依次延迟3个T1,分别对应video_data_d1、video_data_d2、video_data_d3,顺序级联的4个第一寄存器901在clk_a时钟信号上升沿时并行输出4路数据,分别为video_data、video_data_d1、video_data_d2、video_data_d3。第二寄存器902是一个位宽是video_data的4倍(即位宽为48) 的寄存器,第二寄存器902的使能信号为data_en_pulse,data_en_pulse是一个与clk_a同步的脉冲信号,每4个T1拉高一次。当data_en_pulse为高电平时,第二寄存器902接收4个第一寄存器901并行输出的video_data、video_data_d1、video_data_d2、video_data_d3,在clk_a时钟信号上升沿将{video_data_d3,video_data_d2,video_data_d1,video_data}传输到data_temp[47:0]上。可以看到,每4个T1,第二寄存器902将{video_data_d3,video_data_d2,video_data_d1,video_data}传输到data_temp[47:0],即data_temp的数据率(即4个T1产生一个data_temp)与clk_mid的时钟频率(即4个T1为一个clk_mid时钟信号周期TMID)一致。

由于clk_a时钟信号与clk_mid时钟信号之间的相位差为0,工作在clk_mid时钟域的中间寄存器903采样工作在第一时钟域clk_a的第二寄存器902输出的数据data_temp,得到中间时钟域采样数据data_mid,具体有四个可能的采样情形,如时序图10中所示的clk_mid实线以及下方三个clk_mid虚线所示的采样情形:

情形1(clk_mid):即时序图10中所示的中间时钟域clk_mid时钟信号的上升沿与4个clk_a时钟信号中的第一个clk_a时钟信号的上升沿对齐,可以看到情形1对应的建立时间setup为4个T1,保持时间hold为0;

情形2(clk_mid_vir1):即时序图10中所示的中间时钟域clk_mid_vir1时钟信号的上升沿与4个clk_a时钟信号中的第二个clk_a时钟信号的上升沿对齐,可以看到情形2对应的建立时间setup为1个T1,保持时间hold为3个T1

情形3(clk_mid_vir2):即时序图10中所示的中间时钟域clk_mid_vir2时钟信号的上升沿与4个clk_a时钟信号中的第三个clk_a时钟信号的上升沿对齐,可以看到情形3对应的建立时间setup为2个T1,保持时间hold为2个T1

情形4(clk_mid_vir3):即时序图10中所示的中间时钟域clk_mid_vir3时 钟信号的上升沿与4个clk_a时钟信号中的第四个clk_a时钟信号的上升沿对齐,可以看到情形4对应的建立时间setup为3个T1,保持时间hold为1个T1

因此,可以看到上述四种采样情形中数据的最坏的建立时间setup为1个T1,最坏的保持时间hold为0,能够满足上文所述的默认的时序约束,因此通过完全的寄存器组合可以实现数据从第一时钟域clk_a到中间时钟域clk_mid正确的传输,即第一时钟域clk_a中的4个输入数据{video_data_d3,video_data_d2,video_data_d1,video_data}能够正确传输到中间时钟域中的一个data_mid中。

2、中间时钟域clk_mid到第二时钟域clk_b的数据传输,如图9所示,可以由工作在第二时钟域clk_b的位宽为48的第三寄存器904采样工作在中间时钟域clk_mid的位宽为48的中间寄存器903的输出data_mid,并进一步地传输到位宽为16的第四寄存器905,从而得到在第二时钟域输出的数据:

具体地,第三寄存器904是一个位宽为48的寄存器,第三寄存器904的使能信号为load_pulse,load_pulse是一个与clk_b同步的脉冲信号,每3个T2拉高一次。当load_pulse为高电平时,第三寄存器904采样工作在clk_mid的中间寄存器903的输出数据data_mid,得到第二时钟域采样数据data_temp1。

由于clk_b时钟信号以及clk_mid时钟信号之间的相位差为0,工作在clk_b时钟域的第三寄存器904采样data_mid可能有三种情形,对应clk_b采样data_mid的三个采样点,如时序图11中所示的Load_pulse实线以及下方三个Load_pulse虚线所示的采样情形:

情形1(Load_pulse):即时序图11中所示的Load_pulse时钟信号的上升沿与3个clk_b时钟信号中的第3个clk_b时钟信号的上升沿对齐,可以看到情形1对应的建立时间setup为3个T2,保持时间hold为0个T2

情形2(Load_pulse_vir1):即时序图11中所示的Load_pulse_vir1时钟信号的上升沿与3个clk_b时钟信号中的第2个clk_b时钟信号的上升沿对齐, 可以看到情形对应的建立时间setup为2个T2,保持时间hold为1个T2

情形3(Load_pulse_vir2):即时序图11中所示的Load_pulse_vir2时钟信号的上升沿与3个clk_b时钟信号中的第1个clk_b时钟信号的上升沿对齐,可以看到情形3对应的建立时间setup为1个T2,保持时间hold为2个T2

因此,可以看到上述三种采样情形中数据的最坏建立时间setup时间为1个T2,最坏hold时间为0,能够满足上文所描述的默认的时序约束,因此通过完全的寄存器组合可以实现数据从中间时钟域clk_mid到第二时钟域clk_b正确的传输,即中间时钟域clk_mid输出的data_mid能够正确传输到第二时钟域中,第三寄存器904采样得到的data_temp1由第三寄存器904每三个T2更新一次,data_temp1由位宽为16的第四寄存器905在每个clk_b时钟信号的上升沿时分三次依次串行输出位宽为16的data_dist,即得到第二时钟域输出数据data_dist,该data_dist数据信号完全与clk_b时钟信号同步,同时第二时钟域中由位宽为16的第四寄存器905分为三次串行输出的位宽为16的data_dist的总数据位数与第一时钟域中由第一寄存器901依次接收的4个串行输入的位宽为12的video_data的总数据位数相同,从而实现了数据从第一时钟域到第二时钟域的正确传输。

通过以上描述可以看出,本发明实施例所提供的一种数据处理装置可以应用于第一时钟域到第二时钟域的数据传输,通过引入周期与第一时钟域时钟信号和第二时钟域时钟信号的周期均成倍数关系的中间时钟信号,从而使得数据在从第一时钟域到第二时钟域的传输包括从第一时钟域到中间时钟信号所在的中间时钟域,以及从中间时钟域到第二时钟域的传输过程,以上过程通过工作在第一时钟域的第一级寄存器、工作在中间时钟域的第二级寄存器和工作在第二时钟域的第三级寄存器完成,即完全的寄存器级间的传输,实现了跨时钟域数据的准确传输,并使得数据传输过程的传输延时明确并且时序可分析。

同时,通过对本发明实施例所提供的一种数据处理装置中的第二级寄存器对第一级寄存器的采样情形以及第三级寄存器对第二级寄存器的采样情形,对 所有可能发生的情形进行了分析,可以看到只要选择其中最坏的采样情形来约束布局布线,便对所有可能发生的采样情形都可以使得建立时间和保持时间满足默认的时序约束,从而能够避免亚稳态的出现。

另外,较现有技术中采用FIFO结构实现跨时钟域数据传输而言,相对于FIFO结构中数据的传输延迟具有不确定性的缺陷,本发明实施例所提供的数据处理装置所实现的是完全的寄存器级数据传输,因此时序可分析,传输延迟明确;此外由于本发明实施例所提供的数据处理装置中跨时钟域传输的数据是直接进行寄存器级传输,不需要额外消耗ram资源,也不需要额外的地址控制逻辑以及地址比较控制。

进一步地,采用FIFO结构实现跨时钟域数据传输时,对传输数据的位宽有要求,而本发明实施例所提供的数据处理装置中输入数据的位宽与输出数据的位宽之比即为第一时钟域时钟信号周期与第二时钟域时钟信号周期的之比的倒数,两侧所传输的数据总位数完全匹配,能够更加的适用于大量连续的数据跨时钟域传输。

基于相同的技术构思,本发明实施例还提供一种数据处理方法,该方法可应用于第一时钟域到第二时钟域的数据传输,由上述装置实施例实现。设第一时钟域时钟信号周期长度为T1,第二时钟域时钟信号周期长度为T2。本发明实施例提供的数据处理方法的流程如图12所示:

步骤1201:第一级寄存器按照第一时钟域时钟信号依次接收串行输入的N个Q1比特串行数据,根据第一使能信号输出一路N×Q1比特串行数据,其中,Q1为大于或等于1的整数,所述第一使能信号为周期等于TMID、脉宽等于一个T1的脉冲信号,TMID为T1和T2的公倍数,T1、T2为大于0的数,所述N通过公式计算得到;

步骤1202:第二级寄存器按照中间时钟信号接收第一级寄存器输出的数据,输出一路N×Q1比特串行数据,所述中间时钟信号为周期等于TMID的时钟信号;

步骤1203:第三级寄存器根据第二使能信号接收第二级寄存器输出的一路N×Q1比特串行数据,将所述N×Q1比特串行数据按照第二时钟域时钟信号依次串行输出,其中,所述第二使能信号为周期等于TMID、脉宽等于一个T2的脉冲信号。

优选地,所述TMID为T1和T2的最小公倍数。

具体地,所述第一时钟域时钟信号、中间时钟信号、以及所述第二时钟域时钟信号同相位。

具体地,所述第一使能信号与所述第一时钟域时钟信号同步,所述第二使能信号与所述第二时钟域时钟信号同步。

进一步地,步骤1201中所描述的第一级寄存器包括位宽为N×Q1的第二寄存器以及N个顺序级联的位宽为Q1的第一寄存器,所述N个第一寄存器按照第一时钟域时钟信号接收和输出数据。

第一时钟域的N个Q1比特串行数据被所述N个顺序级联的第一寄存器转换为并行的N路Q1比特串行数据,且第i+1路数据比第i路数据延迟一个T1,1<=i<=N,i为大于或等于1的整数。

所述第二寄存器根据第一使能信号,按照第一时钟域时钟信号接收所述并行的N路Q1比特串行数据,输出一路N×Q1比特串行数据。

进一步地,步骤1203中所描述的第三级寄存器包括位宽为N×Q1的第三寄存器以及位宽为Q2的第四寄存器,所述第三寄存器根据第二使能信号,按照第二时钟域时钟信号接收中间时钟域的一路N×Q1比特串行数据,输出一路N×Q1比特串行数据。

第二时钟域的N×Q1比特串行数据被所述第四寄存器按照第二时钟域时钟信号接收,依次串行输出M个Q2比特串行数据,其中,M×Q2=N×Q1

基于上述实施例可以看到,本发明实施例所提供的一种数据处理装置及方 法可以应用于跨时钟域数据传输,通过引入周期与输入数据所在时钟域的时钟信号周期和输出数据所在时钟域的时钟信号周期均成倍数关系的中间时钟信号,通过工作在第一时钟域的第一级寄存器、工作在中间时钟域的第二级寄存器和工作在第二时钟域的第三级寄存器,即完全的寄存器级间的数据传输完成跨时钟域数据传输,并在具体实施时可以按照最严格的采样情形进行电路设计中的布局布线,从而避免亚稳态的出现并且使得整个传输过程的传输延时明确,时序可分析,实现了跨时钟域数据的准确传输。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1