不改变数据传输波特率而增加数据位宽的变速箱电路及工作方法

文档序号:7795732
不改变数据传输波特率而增加数据位宽的变速箱电路及工作方法
【专利摘要】本发明涉及一种在不改变数据传输的波特率的情况下增多数据位宽的变速箱电路及工作方法。所述变速箱电路包括:数据位宽转换电路、计数器生成电路和标志位产生电路,所述计数器生成电路的输出分别连接数据位宽转换电路和标志位产生电路。此变速箱可以利用该变速箱的输入数据的同步时钟,作为输出数据所使用的时钟,而不需要额外的输入时钟,从而达到简化时钟电路的设计,降低整个系统电路设计的额外开销,提高设计的可靠性。尤其适用于在电路内部设计中,模块之间或者各IP之间的数据位宽不匹配,在不改变数据传输波特率的情况下调整模块之间的数据位宽,从而实现各内部模块之间的数据位宽匹配。
【专利说明】不改变数据传输波特率而增加数据位宽的变速箱电路及工作方法
【技术领域】
[0001]本发明涉及一种变速箱电路及工作方法,尤其适用于在不改变数据传输波特率的情况下增加数据位宽的变速箱电路及工作方法。
[0002]
【背景技术】
[0003]随着SOC向高集成度发展,SOC电路的规模越来越大,动辄上千万门的电路比比皆是,在SOC电路中集成的各种模块和IP,如高速端口收发器,SRAM, CPU等的数量也越来越多。这样就带来了一个问题,不同厂商研发的模块或者IP,它们的数据位宽往往不尽相同。比如在万兆以太网10G-WIS的物理层标准中,数据在经过10G-WIS PCS接收端以后,数据位宽为64位,但在进入10G-KR的接收端PCS后,需要进行66B/64B的解码。为了能让经过10G-WIS接收端PCS处理后的64位数据,能够在10G-KR PCS中进行66B/64B的解码,就需要有一个模块把经过10G-WIS接收端PCS处理过的64比特数据转成66比特数据。又例如在Interlaken物理层协议中,接收端的数据需要经过67B/64B解码,但因为在高速通讯系统中,在Serdes的实际设计中,一般在将串行数据转换成并行数据以后,并行端的数据位宽往往不会是67比特,一般都是偶数或者2的η次方位,因此需要一个模块把数据位宽转成67比特。因此,综合上述各种需求,需要提供一种简便,低成本的,低设计复杂度的,能实现任意数据位宽增加的方法,来保证芯片内各模块和各IP之间的无缝连接与正常的数据传输功能。
[0004]如果直接根据变速箱两侧的数据输出和输入的数据率相等的原理,利用两个频率的时钟对数据位宽直接进行由少向多的转换,而不对这两个时钟,或者输入和输出数据进行任何的控制,因为变速箱数据输出的时钟频率小于变速箱数据输入的时钟频率,即输出时钟的周期大于输入数据的宽度。这样在数据位宽转换过程中,由于两个时钟存在频率差,在某个时钟周期下,输出数据的时钟会漏采当前周期下的数据,从而造成输出数据的丢失,影响系统数据传输的正确性。
[0005]
【发明内容】

[0006]本发明的目的是克服现有技术的不足,提供一种新的变速箱电路及工作方法,可以在不改变数据传输波特率的条件下进行数据位宽由少向多的转换。本发明使用计数器电路来控制数据位宽转换的整个过程,并产生标志位来控制变速箱数据的输出,在不改变数据传输波特率的情况下,克服上述问题,实现对数据位宽的无损增加,从而达到系统内部各模块间的位宽匹配。
[0007]所述不改变数据传输波特率而增加数据位宽的变速箱电路包括:数据位宽转换电路、计数器生成电路和标志位产生电路,所述计数器生成电路的输出分别连接数据位宽转换电路和标志位产生电路;
所述数据位宽转换电路,用以在相同的波特率下进行不同数据宽度的转换,
a)数据位宽转换电路输入数据的位宽为m,输出数据的位宽为n,n>m;
b)数据位宽转换电路输出数据与输入数据使用同一个时钟;
c)在每个输出时钟的时钟周期下,数据位宽转换电路都输入一个m比特的数据;
d)在进行位宽转换之前,对输入的m比特数据进行多周期延时;
e)根据计数器的值决定变速箱数据的输入和输出:计数器的值为i,2i,…,((n-m)/k-l)*i时,暂停输出一个新的η位数据,当前周期继续输入m比特的数据;在计数器的值为((n-m)/k)*i时,输出η比特数据后,当前周期的保留比特数为零;在计数器的其余数值时,输入新的m位数据,上周期保留的数据作为η位输出数据的低位,当前周期输入的数据填充高位,输入数据的其余比特数作为下一周期的保留数据;其中i为正整数,k为m、η和n-m的最小公约数;
所述计数器生成电路,用来控制位宽转换的整个过程,
a)接收到数据发送端开始发送数据的信号时,计数器清零;
b)计数器的值由输出数据位宽的值决定;
c)每一个时钟周期,计数器加I;
d)计数器的计数范围是O到η/k-l;` 所述标志位产生电路,用以产生变速箱电路的各种标志位,当计数器的值为i_l,2?-1,…,((n-m)/k)*1-l时,产生输出数据无效标志位送到数据接收模块。
[0008]所述不改变数据传输波特率而增加数据位宽的变速箱电路工作方法如下:变速箱输入数据所用时钟频率是a,输入数据的位宽是m比特,变速箱输出数据所用的时钟频率是a,输出数据的位宽是η比特,且n>m,m、n和n_m的最小公约数为k ;变速箱经过n/k个时钟周期才能够完成n/k个m比特到m/k个η比特的数据宽度转换;
a)在开始位宽转换的第一个时钟周期,m比特数据输入,η比特的数据暂停输出,m个比特的数据保留到下一个时钟周期,此时变速箱中积累的本时钟周期数据的比特数r = m;
b)在位宽转换的第j个时钟周期时,继续m比特数据输入,η比特的数据暂停输出,此时变速箱中保留的本时钟周期数据的比特数r=j*m>n-m ;
c)在位宽转换的第j+Ι个时钟周期时,继续m比特数据输入,当前周期η比特数据输出,此时变速箱中保留的本时钟周期数据的比特数r= (j+1) *m-n ;
d)在进行到位宽转换的第i个时钟周期时,当变速箱中积累的比特数r=m- (1-1) * (n-m) <n-m时,则在第i+1个时钟周期,暂停输出一个新的η位数据,同时在当前周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=m_(1-1)*(n-m)+m ;
e)在进行到位宽转换的第2i个时钟周期时,当变速箱中积累的比特数r=2m-2*(1-l)*(n-m)〈n-m时,则在第2i+l个时钟周期,暂停输出一个新的η位数据,同时在当前时钟周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=3m_2*(i_l)*(n_m);
f)依次类推,在进行到位宽转换的第((n-m)/k)*i个时钟周期时,也就是第η/k-l个时钟周期,此时在变速箱中积累的比特数为r= ((n-m) /k) *m_ ((n-m) /k) * (1-1) * (n-m) =n_m,则第n/k个时钟周期时,输入m位数据进变速箱,当前周期输出η比特的数据,此时变速箱中累积的比特数为r=0,完成n/k个m比特到m/k个η比特的数据宽度转换;
其中,i= (η/k-l)/((n-m)/k),j=n/m, i, j 的值取整数;当 m〈n〈2n 时,j=l ;当 n>2m 时,i=l ;步骤a)到f)根据i和j的具体值进行操作;当在第n/k个时钟周期,完成n/k个m比特到m/k个η比特的数据位宽转换后,则重新开始a)到f)的步骤。
[0009]本发明的优点是:在不改变数据传输的波特率的情况下增多数据位宽,适用于任何芯片中的变速箱电路的设计,尤其适用于在电路内部设计中,模块之间或者各IP之间的数据位宽不匹配,在不改变数据传输波特率的情况下调整模块之间的数据位宽,从而实现各内部模块之间的数据位宽匹配。此变速箱可以利用该变速箱的输入数据的同步时钟,作为输出数据所使用的时钟,而不需要额外的输入时钟,从而达到简化时钟电路的设计,降低整个系统电路设计的额外开销,提高设计的可靠性。
【专利附图】

【附图说明】
[0010]图1为本发明的变速箱电路结构图。
[0011]图2为本发明数据位宽转换的流程图。
[0012]图3为本发明数据位宽转换的示意图。
【具体实施方式】
[0013]本发明提供一种新的变速箱设计方法与电路,可以在相同的比特率下进行不同数据宽度的转换,该变速箱的电路架构如图1所示,包括三个部分:数据位宽转换电路、计数器生成电路和标志位产生电路,所述计数器生成电路的输出分别连接数据位宽转换电路和标志位产生电路。
[0014]变速箱输入数据所用时钟频率是a,数据的宽度是m比特,变速箱输出数据所用的时钟频率也是a,数据宽度是η比特。在本发明中约定m〈n,输入位宽m,输出位宽η和n-m的最小公约数为k,分别除以k后得到的值分别为m/k、n/k和(n-m)/k。此变速箱经过n/k个时钟周期才可以完成n/k个m比特到m/k个η比特的数据宽度转换。
[0015]变速箱的工作方法如下:
1)、开始位宽转换的第一个时钟周期,m比特数据输入,η比特的数据暂停输出,m个比特的数据保留到下一个时钟周期,此时变速箱中积累的本时钟周期数据的比特数r=m ;
2)、在位宽转换的第j个时钟周期时,继续m比特数据输入,η比特的数据暂停输出,此时变速箱中保留的本时钟周期数据的比特数r=j*m>n-m ;
3)、在位宽转换的第j+Ι个时钟周期时,继续m比特数据输入,当前周期η比特数据输出,此时变速箱中保留的本时钟周期数据的比特数r= (j+1) *m-n ;
4)、在进行到位宽转换的第i个时钟周期时,当变速箱中积累的比特数r=m- (1-1) * (n-m) <n-m时,则在第i+1个时钟周期,暂停输出一个新的η位数据,同时在当前周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=m_(1-1)*(n-m)+m ;
5)、在进行到位宽转换的第2i个时钟周期时,当变速箱中积累的比特数r=2m-2(1-l)*(n-m)〈n-m时,则在第2i+l个时钟周期,暂停输出一个新的η位数据,同时在当前时钟周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=3m-2(1-1)*(n-m);
6)、依次类推,在进行到位宽转换的第((n-m)/k)*i个时钟周期时,也就是第η/k-l个时钟周期,此时在变速箱中积累的比特数为r= ((n-m) /k) *m_ ((n-m) /k) * (1-1) * (n-m) =n_m,则第n/k个时钟周期时,输入m位数据进变速箱,当前周期输出η比特的数据,此时此时变速箱中累积的比特数为r=0,完成n/k个m比特到m/k个η比特的数据宽度转换;
7)、i=(η/k-l)/((n-m)/k), i 的值取整数;j=n/m, j 的值取整数;当 m〈n〈2n 时,j=l ;当n>2m时,i=l ;步骤I到6根据i和j的具体值进行操作;
8)、当在第n/k个时钟周期,完成n/k个m比特到m/k个η比特的数据位宽转换后,则重新开始I到6的步骤。
[0016]所述变速箱的电路架构包括三个部分:数据位宽转换电路;计数器生成电路;标志位产生电路。
[0017]所述计数器生成电路,用来控制位宽转换的整个过程。接收到数据发送端开始发送数据的信号时,计数器清零;计数器的值由输入数据位宽的值决定;每一个时钟周期,计数器加一; 计数器的计数范围是O到η/k-l ;
所述数据位宽转换电路,用以在相同的波特率下进行不同数据宽度的转换。数据位宽转换电路输入数据的位宽为m,输出数据的位宽为η ;在进行位宽转换之前,输入的m比特数据延时多个时钟周期。
[0018]根据计数器的值决定变速箱数据的输入和输出,计数器的值为i,2i,…,((n-m)/k-l)*i时,暂停输出一个新的η位数据,当前周期继续输入m比特的数据,在计数器的值为((n-m)/k)*i时,输出η比特数据后,当前周期的保留比特数为零;在计数器的其余数值时,输入新的m位数据,上周期保留的数据作为η输出数据的低位,当前周期输入的数据按先低位后高位的顺序填充高位,输入数据的其余比特数作为下一周期的保留数据。
[0019]所述产生标志位电路,用以产生变速箱电路的各种标志位。当计数器的值为i_l,2?-1,…,((n-m)/k)*1-l时,产生输出数据无效的标志位送到数据接收模块,说明此时变速箱电路没有准备好输出数据,在当前时钟周期,变速箱输出的数据重复上个周期的η比特数据。
[0020]如图2是变速箱对m〈n位宽转变的流程图。当变速箱接收到数据发送端发送的开始发送数据标志位时,变速箱开始进行位宽转换,在第一个时钟周期,输入m位宽的数据,暂停输出η位宽的数据,并保留m位宽的数据到下个周期,在接下来的时钟周期内,把新输入的m位宽的数据作为高位,上周期保留的数据最为低位,输出η比特的数据,其余的数据作为保留数据,当保留的数据位宽小于n-m时,下一周期暂停输出新的η位宽数据,但是继续输入m位宽的数据进变速箱,重复以上操作直到保留位宽为零,说明n/k个m比特到m/k个η比特的数据宽度转换完成。
[0021]以64比特位宽转换为67比特位宽为例,说明变速箱位宽转变的方法和转换过程。在本实施例中,64比特位宽的数据是变速箱电路的数据输入,需要转换为67比特位宽的数据输出。如图3所示,m的值为64,η的值为67,则n_m的值为3,可以得出i=22,变速箱电路具体转换方法和步骤如下:
I)>64比特的位宽转换为67比特位宽,第一个时钟周期,64比特的数据作为本周期的数据输入,67比特的数据暂停输出,64比特的数据等待进入到第二个时钟周期;
2)、在第二个周期时,将新的64比特输入数据与上一个周期保留下来的64比特数据,按照新输入的64位作为高位,保留的64位作为低位,组成一个新的数据;
3)、在第二个周期中,输出这个新的数据的低67位;
4)、经过第二个周期后,累积下来的61比特等待进入下一个周期,以此类推,在第23个时钟周期时,前面22个时钟周期累计下来I比特的数据;
5)、如果第23个时钟周期再输出67比特的数据,当前周期输入的64比特数据就会丢
失;
6)、在第23个时钟周期时,计数器电路给接收数据电路送一个数据无效标志信号,67比特的数据暂停输出;
7)、在第23个时钟周期时,继续输入64比特数据进变速箱,此时积累下来的65比特进入下一周期;
8)、在第24个时钟周期,计数器电路给接收数据电路的标志信号消失,新的67比特输出数据产生;
9)、在第24个时钟周期,新的64比特输入数据与在第23个时钟周期中累积下来的65比特数据,组成一个新的待发送的129比特数据;
10)、在第24个时钟周期时,继续输出这个待发送数据的低67位,剩余的62比特数据累积到下一个时钟周期;
11)、以此类推到第45周期,前面22个时钟周期累计下来2比特的数据;
12)、如果第45个时钟周期再输出67比特的数据,当前周期输入的64比特数据就会丢
失;
13)、在第45个时钟周期时,计数器电路给接收数据电路送一个数据无效标志信号,67比特的数据暂停输出;
14)、在第45个时钟周期时,继续输入64比特数据进变速箱,此时积累下来的66比特进入下一周期;
15)、在第46个时钟周期,计数器电路给接收数据电路的标志信号消失,新的67比特输出数据产生;
16)、在第46个时钟周期,新的64比特输入数据与在第23个时钟周期中累积下来的66比特数据,组成一个新的待发送的130比特数据;
17)、在第46个时钟周期时,继续输出这个待发送数据的低67位,剩余的63比特数据累积到下一个时钟周期;
18)、以此类推到第67周期,前面22个时钟周期累计下来3比特的数据;
19)、第67个时钟周期时,继续输入64个比特数据进变速箱,输出67比特数据,没有数据积累到下一个周期;
20)、接下来重新开始I到19的操作;
经过67个时钟周期,可以把67个时钟周期的64比特位宽的数据转换为64个67比特位宽的数据,则计数器的值设为0-66,每一个时钟周期,计数器的值加一。
[0022]当计数器的值为0、22和44时,变速机制电路产生一个数据无效的信号给接收数据端,说明此时的变速箱没有准备好发送数据,在当前时钟周期,变速箱继续输出上个周期的67比特位宽的数据。在下一个周期,计数器加一,变速箱可以输出新的67比特的数据,此时数据接收端正常接收数据。
【权利要求】
1.不改变数据传输波特率而增加数据位宽的变速箱电路,其特征是,包括数据位宽转换电路、计数器生成电路和标志位产生电路,所述计数器生成电路的输出分别连接数据位宽转换电路和标志位产生电路; 所述数据位宽转换电路,用以在相同的波特率下进行不同数据宽度的转换, a)数据位宽转换电路输入数据的位宽为m,输出数据的位宽为n,n>m; b)数据位宽转换电路输出数据与输入数据使用同一个时钟; c)在每个输出时钟的时钟周期下,数据位宽转换电路都输入一个m比特的数据; d)在进行位宽转换之前,对输入的m比特数据进行多周期延时; e)根据计数器的值决定变速箱数据的输入和输出:计数器的值为i,2i,…,((n-m)/k - l)*i时,暂停输出一个新的η位数据,当前周期继续输入m比特的数据;在计数器的值为((n -m)/k)*i时,输出η比特数据后,当前周期的保留比特数为零;在计数器的其余数值时,输入新的m位数据,上周期保留的数据作为η位输出数据的低位,当前周期输入的数据填充高位,输入数据的其余比特数作为下一周期的保留数据;其中i为正整数,k为m、η和η - m的最小公约数; 所述计数器生成电路,用来控制位宽转换的整个过程, a)接收到数据发送端开始发送数据的信号时,计数器清零; b)计数器的值由输出数据位宽的值决定; c)每一个时钟周期,计数器加I; d)计数器的计数范围是O到n/k-1 ; 所述标志位产生电路,用以产生变速箱电路的各种标志位,当计数器的值为1- 1,21- 1,…,((n -m)/k)*1-1时,产生输出数据无效标志位送到数据接收模块。
2.不改变数据传输波特率而增加数据位宽的变速箱电路工作方法,其特征是:变速箱输入数据所用时钟频率是a,输入数据的位宽是m比特,变速箱输出数据所用的时钟频率是a,输出数据的位宽是η比特,且n>m, m、η和η - m的最小公约数为k ;变速箱经过n/k个时钟周期才能够完成n/k个m比特到m/k个η比特的数据宽度转换; a)在开始位宽转换的第一个时钟周期,m比特数据输入,η比特的数据暂停输出,m个比特的数据保留到下一个时钟周期,此时变速箱中积累的本时钟周期数据的比特数r=m ; b)在位宽转换的第j个时钟周期时,继续m比特数据输入,η比特的数据暂停输出,此时变速箱中保留的本时钟周期数据的比特数r=j*m>n - m ; c)在位宽转换的第j+Ι个时钟周期时,继续m比特数据输入,当前周期η比特数据输出,此时变速箱中保留的本时钟周期数据的比特数r=(j+l)*m - η ; d)在进行到位宽转换的第i个时钟周期时,当变速箱中积累的比特数r=m - (1-1) * (η - m) <n - m时,贝U在第i+Ι个时钟周期,暂停输出一个新的η位数据,同时在当前周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=m - (1-1) * (η - m) +m ; e)在进行到位宽转换的第2i个时钟周期时,当变速箱中积累的比特数r=2m - 2*(1- l)*(n - m)<n - m时,贝U在第2i+l个时钟周期,暂停输出一个新的η位数据,同时在当前时钟周期,继续输入m比特的数据进变速箱,此时变速箱中积累的比特数为r=3m - 2* (1-1) * (η - m);f)依次类推,在进行到位宽转换的第((n-m)/k)*i个时钟周期时,也就是第n/k -1个时钟周期,此时在变速箱中积累的比特数为r= ((η - m) /k) - ((η - m) /k)*(1- l)*(n - m) =n - m,则第n/k个时钟周期时,输入m位数据进变速箱,当前周期输出η比特的数据,此时变速箱中累积的比特数为r=0,完成n/k个m比特到m/k个η比特的数据览度转换; 其中,i=(n/k -1)/((n -m) /k),j=n/m, i, j 的值取整数;当 m〈n〈2n 时,j=l ;当 n>2m 时,i=l ;步骤a)到f)根据i和j的具体值进行操作;当在第n/k个时钟周期,完成n/k个m比特到m/k个η比特的数据 位宽转换后,则重新开始a)到f)的步骤。
【文档编号】H04L25/05GK103763231SQ201410027406
【公开日】2014年4月30日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】周昱, 雷淑岚, 魏敬和 申请人:中国电子科技集团公司第五十八研究所
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1