CN111262592A - 序列的循环移位装置及方法、存储介质 - Google Patents
序列的循环移位装置及方法、存储介质 Download PDFInfo
- Publication number
- CN111262592A CN111262592A CN201811455830.8A CN201811455830A CN111262592A CN 111262592 A CN111262592 A CN 111262592A CN 201811455830 A CN201811455830 A CN 201811455830A CN 111262592 A CN111262592 A CN 111262592A
- Authority
- CN
- China
- Prior art keywords
- cyclic
- sequence
- shift registers
- cyclic shift
- shifters
- Prior art date
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
技术领域
本发明涉及数字电路技术领域,具体地涉及一种序列的循环移位装置及方法、存储介质。
背景技术
当前,主流的序列循环移位运算的实现方法包括准循环低密度校验码移位网络(QuasiCyclicLDPCshiftnetwork,简称QSN)网络、Banyan网络、Benes网络。当循环序列长度较小时,三种网络都可以很好的实现。但是,由于三种循环移位网络的实现复杂度与输入位宽的平方成正比,当输入序列长度较大时,网络的实现复杂度变得不可接受。而在实际的数字信号算法中,处理大尺度的序列循环移位操作非常常见,因而难以直接采用以上三种网络实现序列长度很长的循环移位运算。
然而,在实际的数字信号处理算法中,往往需要对各种不同长度的序列进行循环移位操作。因而,设计可配置、多尺度兼容的循环移位网络是亟待解决的关键问题之一。
发明内容
本发明解决的技术问题是如何支持较长序列的移位运算的同时,还能够降低循环移位装置复杂度。
为解决上述技术问题,本发明实施例提供一种序列的循环移位装置,包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。
可选的,每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。
可选的,所述循环移位装置还包括:第一控制模块,适于控制所述第一组循环移位寄存器中的c个第一循环移位器各自移位m位,并控制所述第二组循环移位寄存器中的第i个第二循环移位器移位si位,其中,m=(v+f)mod d,m、f、si为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。
可选的,所述循环移位装置还包括:第二控制模块,适于控制所述第一组循环移位寄存器中的第i个第一循环移位器移位si位,并控制所述第二组循环移位寄存器中的d个第二循环移位器各自移位m位;其中,m=(v+f)mod d,si、f、m为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。
可选的,所述第一组循环移位寄存器中的多个第一循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
可选的,所述第二组循环移位寄存器中的多个第二循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
为解决上述技术问题,本发明实施例还提供一种序列的循环移位方法,包括:对长度为x的序列移位v时,对于第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器分别对输入的序列进行移位,移位的位数是根据x、v和c确定的,其中,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排,以得到输出序列。
可选的,每一第二循环移位器包括j个输出端,所述对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排包括:将每一第二循环移位器的输出端的输出数据划分为j个组,其中第i个组依次排列每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。
可选的,所述序列是按照如下方式分拆得到子序列的:当c=x/d时,将所述序列分拆为c个子序列,每个子序列的长度为d;当c>x/d时,在所述序列的末尾补充f个预设元素,将长度为(x+f)的序列分拆为c个子序列,每个子序列的长度为d;其中,f为正整数,且f=c·d-x。
可选的,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器进行移位:对所述第一组循环移位寄存器中的c个第一循环移位器各自循环右移m位;按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:对所述第二组循环移位寄存器中的第i个第二循环移位器循环右移si位,其中,m=(v+f)modd,m、si为非负整数。
可选的,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器移位:对所述第一组循环移位寄存器中的第i个第一循环移位器循环右移si位;按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:对所述第二组循环移位寄存器中的d个第二循环移位器各自循环右移m位,其中,m=(v+f)mod d,si、m为非负整数,
可选的,所述第一组循环移位寄存器中的多个第一循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
可选的,所述第二组循环移位寄存器中的多个第二循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行上述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种序列的循环移位装置,包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。通过本发明实施例提供的循环移位装置,可以在将序列分拆为多个子序列后,分别采用第一组循环移位寄存器和第二组循环移位寄存器中的各个循环移位器对各个子序列进行移位。由于每个子序列的长度远小于所述序列的长度,在利用第一循环移位器和/或第二循环移位器进行移位操作时可以极大的降低循环移位网络实现所需要的硬件资源(例如,存储装置)开销。进一步,由于第一组循环移位寄存器和第二组循环移位寄存器分别包含多个循环移位器,在进行序列的循环移位操作时,可以根据序列分拆的子序列长度和外部输入值(例如,c)确定进行循环移位操作采用的第一循环移位器和第二循环移位器的数量,因而可以实现灵活配置不同尺度的输入序列的循环移位操作,同时可以兼容多种不同长度序列的循环移位操作。
进一步,每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。通过本发明实施例提供的技术方案,可以通过所述顺序重排模块得到移位后的序列,进而得到完整的复杂度低的循环移位装置,以实现大尺度序列的循环移位运算。
附图说明
图1是现有技术中的QSN网络的结构示意图;
图2是现有技术中的Banyan网络的结构示意图;
图3是现有技术中的Benes网络的结构示意图;
图4是现有技术中序列的循环移位示意图;
图5是单位阵循环右移2位的移位示意图;
图6是本发明实施例的一种序列的循环移位装置的结构示意图;
图7是本发明实施例的一种序列的循环移位方法的流程示意图;
图8是本发明实施例的一种基于矩阵实现序列移位的移位示意图;
图9是本发明实施例的又一种基于矩阵实现序列移位的移位示意图;
图10是本发明实施例的再一种基于矩阵实现序列移位的移位示意图。
具体实施方式
如背景技术所言,现有QSN网络、Banyan网络和Benes网络难以支持序列较长的移位运算。
其中,图1是现有技术中QSN网络的结构示意图,参考图1,QSN网络包含(log2(PM)+1)级和每比特宽度包含(PM·(2·log2(PM)-1)+1)个“2-1多路复用器(MUX)”,可以支持任意输入宽度、任意移位尺度的序列移位。图2是Banyan网络的结构示意图,参考图2,其开关网络包含(log2(PM))级和每比特宽度PM·log2(PM)个“2-1MUX”,可以支持一种输入宽度、任意移位尺度的序列移位。图3是Benes网络的结构示意图。参考图3,Benes网络包含(2·log2(PM)-1)级和每比特宽度(PM·(2·log2(PM)-1))个“2-1MUX”,可以支持任意输入宽度、任意移位尺度的序列移位。
可见,QSN网络和Benes网络能够支持更灵活的移位操作,同时也有更高的实现复杂度,Banyan网络灵活度较差,但是实现复杂度相比于QSN网络和Benes网络降低一半。三种网络的复杂度都为O(N2)。
图4是现有技术中序列的循环移位示意图。如图4所示,以输入序列为0、1、2、……、11为例,循环右移3位,循环移位结果即为9、10、11、0、1、……、8。当被移位的输入序列的长度较小时,以上三种网络都可以很好的完成移位操作。但是以上三种循环移位网络的实现复杂度与所述输入序列的长度平方成正比,当输入序列长度较大时,网络的实现复杂度将变得不可接受。而在实际的数字信号算法中,处理大尺度的输入序列循环移位操作非常常见,所以不能直接采用以上三种网络实现很大长度的循环移位运算。另外,如前所述,在实际的数字信号处理算法中,往往需要对各种不同长度的序列进行循环移位操作,因而需要设计可配置的、多尺度兼容的循环移位网络。
图5是单位阵循环右移2位的移位示意图。如图5所示,矩阵的循环移位运算可以通过对该矩阵的列向量多次循环移位(例如2次)操作来实现。本领域技术人员理解,序列的循环移位运算大量存在于各种包含矩阵处理的算法当中,但是在实际使用的数字信号算法中,需要进行循环移位的矩阵的尺寸往往是不同的,既包含有小尺度的循环移位矩阵,也包含有大尺度的循环移位矩阵。例如,5G新无线(New Radio,简称NR,又称新空口)标准中采用的物理层下行共享信道的信道编码方案低密度奇偶校验码(Low Density Parity Check,简称LDPC)的校验矩阵的结构中就包括N·(2k)种不同尺度的循环移位矩阵的组合,如表1所示,N={2,3,5,7,9,11,13,15},k={0,1,3,4,5,6,7},Z表示移位尺度集合(Set oflifting sizes Z)。
表1
索引 | 移位尺度集合Z |
1 | {2,4,8,16,32,64,128,256} |
2 | {3,6,12,24,48,96,192,384} |
3 | {5,10,20,40,80,160,320} |
4 | {7,14,28,56,112,224} |
5 | {9,18,36,72,144,288} |
6 | {11,22,44,88,176,352} |
7 | {13,26,52,104,208} |
8 | {15,30,60,120,240} |
从现有移位网络的缺点以及矩阵的行向量和/或列向量可以进行移位的角度出发,本发明实施例提出一种低复杂度、可重配、多尺度的循环移位网络(或称循环移位装置),包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。
通过本发明实施例提供的循环移位装置,可以在将序列分拆为多个子序列后,分别采用第一组循环移位寄存器和第二组循环移位寄存器中的各个循环移位器对各个子序列进行移位。由于每个子序列的长度远小于所述序列的长度,在利用第一循环移位器和/或第二循环移位器进行移位操作时可以极大的降低循环移位网络实现所需要的硬件资源(例如,存储装置)开销。进一步,由于第一组循环移位寄存器和第二组循环移位寄存器分别包含多个循环移位器,在进行序列的循环移位操作时,可以根据序列分拆的子序列长度和外部输入值(例如,c)确定进行循环移位操作采用的第一循环移位器和第二循环移位器的数量,因而可以实现灵活配置不同尺度的输入序列的循环移位操作,同时可以兼容多种不同长度序列的循环移位操作。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图6是本发明实施例的一种序列的循环移位装置的结构示意图。所述循环移位装置6可以包括:第一组循环移位寄存器61、第二组循环移位寄存器62和顺序重排模块63。具体而言,所述第一组循环移位寄存器61可以包括多个第一循环移位器611;所述第二组循环移位寄存器62可以包括多个第二循环移位器621。
所述第一组循环移位寄存器61连接所述第二组循环移位寄存器62。在具体实施中,第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器的第k个输入端621,k为正整数。也即,所述第一组循环移位寄存器61中的第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的第一个输入端,所述第一组循环移位寄存器61中的第二个第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的第二个输入端,直至所述第一组循环移位寄存器61中的最后一个第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的最后一个输入端。
在具体实施中,所述第一循环移位器611可以为QSN网络模块、Banyan网络模块、Benes网络模块中的任意一种。所述第二循环移位器621可以为QSN网络模块、Banyan网络模块、Benes网络模块中的任意一种。
在具体实施中,各个第一循环移位器611的结构是完全相同的,且彼此互不连接。各个第二循环移位器621的结构是完全相同的,且彼此可以互不连接。
在具体实施中,所述顺序重排模块63适于接收所述第二组循环移位寄存器62中各个第二循环移位器621的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列。本领域技术人员理解,所述顺序重排模块63可以通过电路布线实现对各个第二循环移位器621的输出端的输出数据的重排。
其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器61中的c个第一循环移位器,各个第一循环移位器611分别接收所述序列拆分得到的子序列,并进行移位,移位的位数可以是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621移位的位数可以是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。
本领域技术人员理解,在实际应用中,外部输入也可以是d,此时c的值可以根据公式确定。此外,输入至所述循环移位装置6的数据为二进制数据。为方便阐述,本发明实施例采用十进制数据进行说明。如无特别说明,每个十进制数据对应1比特数据。
在具体实施中,所述第一组循环移位寄存器61中的每一第一循环移位器611的输出端总数可以等于所述第二组循环移位寄存器62中的每一第二循环移位器621的输入端总数。所述第一组循环移位寄存器61中的多个第一循环移位器611的结构可以相同,且每一第一循环移位器611的输入端总数大于或等于d,且其输出端总数大于或等于c。所述第二组循环移位寄存器62中的多个第二循环移位器621的结构可以相同,且每一第二循环移位器621的输入端总数大于或等于c,且其输出端总数大于或等于d。
作为一个非限制性的例子,继续参考图6,所述第一循环移位器611为QSN网络模块,所述第二循环移位器621为Banyan网络模块。假设所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,且c=3,d=4,v=3。
在具体实施中,d可以表示矩阵的行数,又可以表示第一组循环移位寄存器61中的第一循环移位器611的数量,c可以表示矩阵的列数,又可以表示所述第二组循环移位寄存器62中的第二循环移位器621的数量。
具体而言,可以采用3个第一循环移位器611,分别对应矩阵的3列列向量,各个第一循环移位器的输入位宽是矩阵的列向量中的元素的个数d确定的,也即各个第二循环移位器621的输入位宽为d=4;且采用所述第二组循环移位寄存器62中的4个第二循环移位器621,分别对应到矩阵的4行行向量,各个第二循环移位器621的输入位宽可以是矩阵的行向量中的元素个数确定的,也即各个第二循环移位器621的输入位宽为c=3。
在此条件下,各个第一循环移位器611可以用来执行矩阵的列向量的循环上移操作,且各个第二循环移位器621可以用来执行矩阵的行向量的循环移位操作。或者,各个第一循环移位器611可以用来执行矩阵的行向量的循环上移操作,且第二循环移位器621可以用来执行矩阵的列向量的循环移位操作。
当待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,且c=3,d=4,v=3时,可以按序列中的元素顺序转换为4×3的矩阵,即4行3列的矩阵。之后,可以在所述第一组循环移位寄存器61中从左至右选取3个第一循环移位器61作为列循环移位器,每个循环移位器上从左至右的4位为输入位;在第二组循环移位寄存器62中从左至右选取4个第二循环移位器621作为行循环移位器;输出的序列的位宽与第一组循环移位寄存器61相同。之后,可以利用重排模块63对各个第二循环移位器621的输出序列进行重排,经所述循环移位装置6移位后,可以得到移位后的序列为“9,10,11,0,1,2,3,4,5,6,7,8,9”。
本领域技术人员理解,本发明实施例提供的移位装置6可以实现长度范围为[1:Nmax]的序列的循环移位。具体地,可以设置矩阵行数Rmax,根据Nmax计算出矩阵列数Cmax,得到大小为Rmax×Cmax的母矩阵,之后在[1:step1:Rmax]×[1:step2:Cmax]中选择k个值作为量化值集合,其中,step1、step2表示步长,为正整数。这里的k是从上述两个集合中的元素相乘得到的序列总个数中选取的,因为编码只能基于一些特定长度实现,而所述特定长度是两个序列相乘得到的数值。
对于给定的长度为x的序列在量化值集合中选取不小于x的k值作为量化值,如果k>x,则在序列后面补充(k-x)个预设元素,选取k值对应的Ck和Rk作为子矩阵的尺度,并基于Ck和Rk选取所述移位装置6中第一组循环移位寄存器61中的Ck个第一循环移位器611,第二组循环移位寄存器62中的Rk个第二循环移位器621,以完成序列移位。
仍以图6为例,每一QSN模块的最大输入位宽可以是Rmax,QSN模块的最大数量为Cmax时,可以对长度为(Rmax×Cmax)的序列进行移位,相应地,为完成序列移位,Banyan模块的有效输入位数可以为Cmax,Banyan模块的数量可以为Rmax。
在实际应用中,序列长度小于(Rmax×Cmax)的序列均可以通过本发明实施例提供的移位装置进行循环移位。
图7是本发明实施例的一种序列的循环移位方法的流程示意图,所述循环移位方法可以基于图6所示的循环移位装置6完成移位运算。具体而言,所述循环移位方法可以包括以下步骤:
步骤S701,对长度为x的序列移位v时,对于第一组循环移位寄存器61中的c个第一循环移位器611,各个第一循环移位器611分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,
步骤S702,对于第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621分别对输入的序列进行移位,移位的位数是根据x、v和c确定的,其中,第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器621的第k个输入端,k为正整数;
步骤S703,对所述第二组循环移位寄存器中各个第二循环移位器621的输出端的输出数据的次序进行重排,以得到输出序列。
总体而言,对序列进行循环移位,可以先将该序列转换为矩阵,之后通过对矩阵的行向量、列向量进行循环移位实现对所述序列的循环移位,从而将大尺度的序列的循环移位分解为多个小尺度序列的多次小的循环移位,有效降低移位复杂度。
在具体实施中,可以将待移位的序列转换为矩阵,并将矩阵的行向量和列向量分别输入至所述循环移位装置中分别进行移位。具体地,可以首先通过所述第一组循环移位寄存器61对输入的矩阵的行向量进行移位,且通过所述第二组循环移位寄存器62对输入的矩阵的列向量进行移位。反之,可以首先通过所述第一组循环移位寄存器61对输入的矩阵的列向量进行移位,且通过所述第二组循环移位寄存器62对输入的矩阵的行向量进行移位。也即,可以首先实现对矩阵的列向量移位后再进行矩阵的行向量的移位;或者,可以首先实现对矩阵的行向量移位后再进行矩阵的列向量的移位,以实现序列循环移位的目的。
基于上述移位原理,在步骤S701中,对序列长度为x的序列移位v位时,可以将所述序列输入至循环移位装置6,并将输入至所述循环移位装置6中的第一组循环移位寄存器61中的各个第一循环移位器611的序列类比为矩阵的列向量,将所述循环移位装置6中的第二组循环移位寄存器61中的各个第二循环移位器621的输入序列类比为矩阵的行向量,以使所述循环移位装置6可以对输入的序列分别进行行向量移位操作和列向量移位操作。
具体而言,所述循环移位装置6可以包括第一组循环移位寄存器61、第二组循环移位寄存器62。所述第一组循环移位寄存器61可以包括多个第一循环移位器611;所述第二组循环移位寄存器62可以包括多个第二循环移位器621。且第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器621的第k个输入端,k为正整数,之后可以对所述第二组循环移位寄存器62中各个第二循环移位器621的输出端接收数据并重排接收到的数据,以得到输出序列。
在具体实施中,采用所述循环移位装置6对所述序列进行移位时,可以对所述序列进行拆分,得到子序列。具体而言,对所述序列进行拆分时,需要根据外部输入确定拆分的数量。当外部输入的拆分的数量为c时,每个子序列的长度d可以根据公式得到,并得到各个子序列包含的元素信息。例如,假设长度为8的序列为“0,1,2,3,4,5,6,7”,c=2,那么d=4,子序列分别为“0,1,2,3”;“4,5,6,7”。
在确定c、d的值之后,可以得知在进行序列移位时,将利用所述第一组循环移位寄存器61中的c个第一循环移位器611,每一第一循环移位器611中的d个输入端。相应地,可以得知还将利用所述第二组循环移位寄存器62中的d个第二循环移位器621,以及每个第二循环移位器621中的c个输入端接入各个第一循环移位器611输出的子序列。
在具体实施中,如果x>c·d,那么可以在所述序列的末尾补充f个预设元素,将长度为(x+f)的序列分拆为c个子序列,使得每个子序列的长度为d;其中,f为正整数,且f=c·d-x。如果c=x/d,则可以直接将所述序列分拆为c个子序列,每个子序列的长度为d。
在确定每个子序列之后,可以按照子序列在所述序列中的位置先后顺序分别依次输入至各个第一循环移位器611中。在具体实施中,通过所述第一组循环移位寄存器61中的c个第一循环移位器61对各个输出的子序列进行移位后可以得到该第一组循环移位寄存器61的输出。其中,每个第一循环移位器611的移位位数是根据x,v和c确定的。
具体而言,可以对所述第一组循环移位寄存器61中的c个第一循环移位器611各自循环右移m位,m=(v+f)mod d。
进一步,所述输出得到的子序列可以根据所述第一循环移位器611与第二循环移位器621的连接关系输入至各个第二循环移位器621。
在步骤S702中,对于第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621可以分别对从各个第一循环移位器611接收到的输入的序列进行循环移位。同理,移位的位数也是根据x、v和c确定的。
在具体实施中,如果对所述第一组循环移位寄存器61中的c个第一循环移位器611各自循环右移m位,那么可以对所述第二组循环移位寄存器62中的第i个第二循环移位器621循环右移si位,其中,m=(v+f)mod d,m、si为非负整数,
作为一个变化实施例,如果所述第一组循环移位寄存器61中的第i个第一循环移位器611循环右移si位,那么可以对所述第二组循环移位寄存器62中的d个第二循环移位器621各自循环右移m位,其中,m=(v+f)mod d,si、m为非负整数,
在步骤S703中,由于所述第一循环移位器611可以为QSN网络模块、Banyan网络模块或Benes网络模块,所述第二循环移位器621同样可以为QSN网络模块、Banyan网络模块或Benes网络模块,因而在各个第二循环移位器621得到输出的序列之后,还需要对所述输出的序列进行重排。具体而言,可以按照所述第二组循环移位寄存器62中的第二循环移位器621的输出端的排布顺序将每一第二循环移位器621输入的序列划分为j个组,其中第i个组依次输出每一第二循环移位器621的第i个输出端的输出比特,j为正整数,i为从1到j的正整数,也即,可以依次排列每一第二循环移位器621的第一个输出端的输出比特、每一第二循环移位器621的第二个输出端的输出比特,直至每一第二循环移位器621的最后一个输出端的输出比特。
图8是本发明实施例的一种基于矩阵实现序列移位的移位原理示意图。参考图8,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,序列长度x=12,假设c=3,d=4,v=3。在具体实施中,首先确定4×3矩阵的各个行向量和列向量。由图8可知,可以按照序列从左至右、从下至上的顺序将所述长度为12的序列按顺序放入大小为4×3的矩阵Matrix0中。之后,可以对矩阵Matrix0进行行、列移位。
此时,可以对所述矩阵Matrix0由左到右的第一列、第二列、第三列分别向上循环移位3位,得到矩阵Matrix1,接着对该矩阵由下到上的每行数据循环右移si位,也即,由下至上,第一行循环右移s0=1位,第二行循环右移s1=1位,第三行循环右移s2=1位,第四行循环右移s3=0位,得到矩阵Matrix2,之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度12的序列进行循环右移3位后的输出序列。其中,
本领域技术人员理解,图8给出的是先对矩阵的行向量进行移位,之后进行列向量的移位以得到输出序列的。在实际应用中,还可以先对矩阵进行列移位,再进行行移位得到输出序列,也即先对矩阵Matrix0的每列向量循环上移si位,再对移位后得到的矩阵的行向量循环右移m位,以得到所述输出序列,这里不再举例赘述。
图9是本发明实施例的又一种基于矩阵实现序列移位的移位原理示意图。参考图9,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11,12”,序列长度x=13,c=4,d=4,v=3。由于c·d-x>0,因而在将所述序列置入矩阵之前,还需在所述序列的末尾补充f个预设元素得到新序列,其中,f为正整数,且f=c·d-x=3。假设所述预设元素分别为1*、2*、3*。所述新序列即为“0,1,2,3,4,5,6,7,8,9,10,11,12,1*,2*,3*”,长度x’=16。
在具体实施中,首先根据所述新序列确定4×4矩阵的各个行向量和列向量。由图9可知,可以按照序列从左至右、从下至上的顺序将所述长度为16的新序列按顺序放入大小为4×4的矩阵Matrix0中。之后,可以对矩阵Matrix0进行行、列移位。
具体实施中,可以根据公式m=(v+f)mod d,其中f=3,mod表示求余运算,因而得到m=2;根据公式可以得知s0=s1=2,s2=s3=1。此时,可以对所述矩阵Matrix0由左到右的第一列、第二列、第三列分别向上循环移位2位,得到矩阵Matrix1,接着对矩阵Matrix1由下到上的每行向量循环右移si位。也即,由下至上,第一行循环右移2位,第二行循环右移2位,第三行循环右移1位,第四行循环右移1位,得到矩阵Matrix2;其中,
之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度16的序列进行循环右移3位后的输出序列,即“10,11,12,1*,2*,3*,0,1,2,3,4,5,6,7,8,9”。本领域技术人员理解,在完成对长度为x’=16的序列的移位之后,还需要剔除添加的预设元素。通常预设元素可以为空(Null)。
图10是本发明实施例的再一种基于矩阵实现序列移位的移位原理示意图。参考图10,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11,12”,序列长度x=13,c=4,d=4,v=3。由于c·d-x>0,因而在将所述序列置入矩阵之前,还需在所述序列的末尾补充f个预设元素得到新序列,其中,f为正整数,且f=c·d-x=3。假设所述预设元素分别为1*、2*、3*。所述新序列即为“0,1,2,3,4,5,6,7,8,9,10,11,12,1*,2*,3*”,长度x’=16。
在具体实施中,首先根据所述新序列确定4×4矩阵的各个行向量和列向量。由图10可知,可以按照序列从左至右、从下至上的顺序将所述长度为16的新序列按顺序放入大小为4×4的矩阵Matrix0中。之后,可以对矩阵Matrix0进行行、列移位。
具体实施中,可以根据公式m=(v+f)mod d,其中f=3,mod表示求余运算,因而得到m=2;根据公式可以得知s0=s1=2,s2=s3=1。此时,可以对所述矩阵Matrix0由下至上,第一行循环右移2位,第二行循环右移2位,第三行循环右移1位,第四行循环右移1位,得到矩阵Matrix1,之后对矩阵Matrix1由左到右的第一列、第二列、第三列分别向上循环移位2位,得到矩阵Matrix2,之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度16的序列进行循环右移3位后的输出序列,即“10,11,12,1*,2*,3*,0,1,2,3,4,5,6,7,8,9”。其中,
本领域技术人员理解,在完成对长度为x’=16的序列的移位之后,还需要剔除添加的预设元素。通常预设元素可以为空(Null)。
由上,通过本发明实施例提供的技术方案,可以对各种不同长度的序列进行循环移位操作,且本发明实施例提供的循环移位装置具备可配置、兼容多尺度循环移位等优点。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图7至图10所示实施例中所述方法技术方案。优选地,所述存储介质可以包括计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种序列的循环移位装置,其特征在于,包括:
第一组循环移位寄存器,包括多个第一循环移位器;
第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;
顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;
其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,
2.根据权利要求1所述的序列的循环移位装置,其特征在于,
每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。
5.根据权利要求1至4任一项所述的序列的循环移位装置,其特征在于,所述第一组循环移位寄存器中的多个第一循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
6.根据权利要求1至4任一项所述的序列的循环移位装置,其特征在于,所述第二组循环移位寄存器中的多个第二循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
8.根据权利要求7所述的序列的循环移位方法,其特征在于,每一第二循环移位器包括j个输出端,所述对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排包括:
将每一第二循环移位器的输出端的输出数据划分为j个组,其中第i个组依次排列每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。
9.根据权利要求7所述的序列的循环移位方法,其特征在于,所述序列是按照如下方式分拆得到子序列的:
当c=x/d时,将所述序列分拆为c个子序列,每个子序列的长度为d;
当c>x/d时,在所述序列的末尾补充f个预设元素,将长度为(x+f)的序列分拆为c个子序列,每个子序列的长度为d;其中,f为正整数,且f=c·d-x。
12.根据权利要求7至11任一项所述的序列的循环移位方法,其特征在于,所述第一组循环移位寄存器中的多个第一循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
13.根据权利要求7至11任一项所述的序列的循环移位方法,其特征在于,所述第二组循环移位寄存器中的多个第二循环移位器选自:QSN网络模块、Banyan网络模块、Benes网络模块。
14.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求7至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811455830.8A CN111262592B (zh) | 2018-11-30 | 2018-11-30 | 序列的循环移位装置及方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811455830.8A CN111262592B (zh) | 2018-11-30 | 2018-11-30 | 序列的循环移位装置及方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111262592A true CN111262592A (zh) | 2020-06-09 |
CN111262592B CN111262592B (zh) | 2022-10-25 |
Family
ID=70953868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811455830.8A Active CN111262592B (zh) | 2018-11-30 | 2018-11-30 | 序列的循环移位装置及方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111262592B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112332857A (zh) * | 2020-10-23 | 2021-02-05 | 中国科学院计算技术研究所 | 一种用于ldpc码的循环移位网络系统及循环移位方法 |
CN112860221A (zh) * | 2021-03-17 | 2021-05-28 | 上海燧原科技有限公司 | 一种随机序列生成方法、装置、设备及存储介质 |
CN114286368A (zh) * | 2021-12-24 | 2022-04-05 | 北京中科晶上科技股份有限公司 | 循环移位的实现方法与装置 |
CN115658145A (zh) * | 2022-12-13 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 数据循环移位方法和电路、以及芯片 |
CN115765750A (zh) * | 2023-01-09 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 数据循环移位方法和电路、以及芯片 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218747A (zh) * | 2005-05-04 | 2008-07-09 | 诺基亚公司 | 提供增强信道交织的方法和装置 |
CN101958719A (zh) * | 2009-07-13 | 2011-01-26 | 北京三星通信技术研究有限公司 | 采用卷积Turbo码编码的方法及系统 |
CN102355271A (zh) * | 2011-10-31 | 2012-02-15 | 南京邮电大学 | 一种随机行列循环移位交织器的编解码方法 |
CN103049716A (zh) * | 2012-12-19 | 2013-04-17 | 华中科技大学 | 基于一阶矩的卷积器 |
CN106921395A (zh) * | 2015-12-28 | 2017-07-04 | 北京忆芯科技有限公司 | Ldpc编码方法及其装置 |
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
-
2018
- 2018-11-30 CN CN201811455830.8A patent/CN111262592B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218747A (zh) * | 2005-05-04 | 2008-07-09 | 诺基亚公司 | 提供增强信道交织的方法和装置 |
CN101958719A (zh) * | 2009-07-13 | 2011-01-26 | 北京三星通信技术研究有限公司 | 采用卷积Turbo码编码的方法及系统 |
CN102355271A (zh) * | 2011-10-31 | 2012-02-15 | 南京邮电大学 | 一种随机行列循环移位交织器的编解码方法 |
CN103049716A (zh) * | 2012-12-19 | 2013-04-17 | 华中科技大学 | 基于一阶矩的卷积器 |
CN106921395A (zh) * | 2015-12-28 | 2017-07-04 | 北京忆芯科技有限公司 | Ldpc编码方法及其装置 |
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
Non-Patent Citations (1)
Title |
---|
许志宏 等: "星载大容量固态存储控制器的级联编码设计", 《国防科技大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112332857A (zh) * | 2020-10-23 | 2021-02-05 | 中国科学院计算技术研究所 | 一种用于ldpc码的循环移位网络系统及循环移位方法 |
CN112332857B (zh) * | 2020-10-23 | 2023-08-08 | 中国科学院计算技术研究所 | 一种用于ldpc码的循环移位网络系统及循环移位方法 |
CN112860221A (zh) * | 2021-03-17 | 2021-05-28 | 上海燧原科技有限公司 | 一种随机序列生成方法、装置、设备及存储介质 |
CN114286368A (zh) * | 2021-12-24 | 2022-04-05 | 北京中科晶上科技股份有限公司 | 循环移位的实现方法与装置 |
CN114286368B (zh) * | 2021-12-24 | 2023-05-30 | 北京中科晶上科技股份有限公司 | 循环移位的实现方法与装置 |
CN115658145A (zh) * | 2022-12-13 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 数据循环移位方法和电路、以及芯片 |
CN115765750A (zh) * | 2023-01-09 | 2023-03-07 | 摩尔线程智能科技(北京)有限责任公司 | 数据循环移位方法和电路、以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN111262592B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111262592B (zh) | 序列的循环移位装置及方法、存储介质 | |
US8352847B2 (en) | Matrix vector multiplication for error-correction encoding and the like | |
TWI415396B (zh) | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 | |
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
RU2395902C2 (ru) | Способы и устройство ldpc-кодирования | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
KR101211433B1 (ko) | 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 | |
US10536169B2 (en) | Encoder and decoder for LDPC code | |
CN101741396B (zh) | 可变码长ldpc码编码或译码的方法与装置及编码器和译码器 | |
CN101273532B (zh) | 解码装置及接收装置 | |
US20060020870A1 (en) | Layered decoding of low density parity check (PDPC) codes | |
WO2007018590A1 (en) | Method and apparatus for block and rate independent decoding of ldpc codes | |
US9537510B2 (en) | Variable shifter, decoder, and data shifting method | |
WO2006115166A1 (ja) | 符号装置および符号化方法 | |
EP2951925B1 (en) | Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength | |
EP2023491A1 (en) | High rate, long block lenght, low density parity check encode | |
Mahdi et al. | A multirate fully parallel LDPC encoder for the IEEE 802.11 n/ac/ax QC-LDPC codes based on reduced complexity XOR trees | |
US9838036B2 (en) | Decoder, minimum value selection circuit, and minimum value selection method | |
KR100918741B1 (ko) | 이동 통신 시스템에서 채널 부호화 장치 및 방법 | |
Lin et al. | An efficient fully parallel decoder architecture for nonbinary LDPC codes | |
US20110179337A1 (en) | Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof | |
CN112332857B (zh) | 一种用于ldpc码的循环移位网络系统及循环移位方法 | |
CN111313912B (zh) | 一种ldpc码编码器及编码方法 | |
CN109120275B (zh) | 一种编码方法及装置、计算机存储介质 | |
US20100179975A1 (en) | Method for decomposing barrel shifter, decomposed circuit and control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |