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

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

【发明内容】

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

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