CN101154957B - Turbo码交织器及交织地址传输方法 - Google Patents
Turbo码交织器及交织地址传输方法 Download PDFInfo
- Publication number
- CN101154957B CN101154957B CN2006100630069A CN200610063006A CN101154957B CN 101154957 B CN101154957 B CN 101154957B CN 2006100630069 A CN2006100630069 A CN 2006100630069A CN 200610063006 A CN200610063006 A CN 200610063006A CN 101154957 B CN101154957 B CN 101154957B
- Authority
- CN
- China
- Prior art keywords
- row
- output
- fifo
- interleaving address
- interweaving
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种Turbo码交织器,包括:用于计算一些基本参数的基本参数确定模块,用于确定最小质整数数组的QJ数组计算模块,用于确定列号选择数组的SI数组计算模块,用于计算交织地址的交织地址计算模块及FIFO,所述FIFO用于传输所述交织地址计算模块输出的数据,并根据FIFO中缓存的数据数量和FIFO深度之间的关系,发出暂停标志通知所述交织地址计算模块暂停输出,以及在FIFO中缓存的数据减少到一定数量后,通知所述交织地址计算模块恢复输出交织地址。此外本发明还同时公开了一种交织地址传输方法。
Description
技术领域
本发明涉及通信领域数据处理技术,尤其涉及Turbo码交织器及交织地址传输方法。
背景技术
Turbo码因为十分接近香农公式的误码率(BER)极限,在移动通信技术中得到了广泛的应用。在采用Turbo码的信道编(解)码过程中,在编码和解码前,对数据进行非一致性交织,使码字的权重得到重新分布,可以使码字的伪随机性改善,从而提高系统抗突发错误的能力,有效提高系统性能。
现有的一种交织器实现方案中,采用先计算交织地址(即交织前的地址),再把交织地址的计算结果存放在的结构,当一个码块的所有交织地址计算全部完成后,从RAM中输出相应的交织地址结果,该交织器主要包括基本参数计算模块,最小质整数数组计算模块(QJ数组计算模块),列号选择数组计算模块(SI数组计算模块)、交织地址计算模块和状态控制模块。相应地交织地址的计算可以分成4个阶段:基本参数确定、最小质整数数组计算、列号选择数组计算和交织地址计算,具体过程如下
1)基本参数确定
确定出交织矩阵的行数R和列数C,质数p和根v等基本参数。
2)最小质整数数组QJ计算
从一张规定的质数表中挑选出符合条件的质数,并对挑选出的质数进行p-1的取模运算,得到取模运算的结果q(j),其中j=1、2、...、R-1,再加上值等于1的q(0),组建成最小质整数数组。
3)列号选择数组SI计算
根据计算关系式s(n)=(v*s(n-1))mod p,n=1、2、...、(p-2)及s(0)=1得到列号选择数组。
4)交织地址计算
利用2个计数器计数行地址和列地址,并根据计数的行地址和列地址得到交织前的行地址和列地址,再用交织前的行地址和列地址计算出交织前的地址。
该方案虽然可以提高交织地址的计算速度,但由于需要一块专门存放交织地址的RAM,面积比较大,在进行芯片设计时,会增加芯片的成本;另外由于一个码块的所有交织地址全部计算并存储完后,才能输出用于进行下面的TURBO编码,因此将会影响到TURBO编码的时间,导致编码速率的降低。
发明内容
本发明的实施例在于提供一种Turbo码交织器及交织地址传输方法,可以有效减少给TURBO编码带来的延时。
本发明提供以下技术方案:
一种Turbo码交织器,包括:基本参数确定模块,用于计算基本参数;最小质整数数组计算模块,与所述基本参数确定模块相连,用于确定最小质整数数组;列号选择数组计算模块,与所述基本参数确定模块相连,用于确定列号选择数组;交织地址计算模块,分别与所述基本参数确定模块、最小质整数数组计算模块及列号选择数组计算模块相连接,根据所述基本参数,最小质整数数组和列号选择数组计算交织地址,并将结果输出;FIFO,与所述交织地址计算模块相连接,用于传输所述交织地址计算模块输出的数据,并根据FIFO中缓存的数据数量和FIFO深度之间的关系,通知所述交织地址计算模块暂停输出,以及在FIFO中缓存的数据减少到一定数量后,通知所述交织地址计算模块恢复输出。
其中,所述交织地址计算模块包括:行号转换电路,用于计算交织前的行 号;列号转换电路,用于计算交织前的列号;交织地址计算电路,用于根据所述行号转换电路计算出的交织前的行号,所述列号转换电路计算出的交织前的列号,及所述基本参数确定模块计算出的交织矩阵的行数计算出交织地址。
所述交织地址计算模块还包括:输出控制电路,所述输出控制电路与所述FIFO相连接,用于控制所述FIFO接收所述交织地址计算电路计算出的交织地址。
所述行号转换电路包括:行计数器,用来对交织后的行号计数,当计数值等于交织矩阵的行数减一时清零,并在收到FIFO发出的暂停通知后停止计数;行号转换单元,与所述行计数器相连接,根据所述行计数器的计数值及交织矩阵的行数将交织后的行号转换为交织前的行号。
所述列号转换电路包括:列计数器,用来对交织后的列号计数,并在收到所述FIFO发出的暂停通知后停止计数;累加取模单元,用于根据所述列计数器的计数值和所述最小质整数数组计算模块确定出的最小质整数数组得到列号选择数组的访问地址,并根据所述访问地址查询所述列号选择数组计算模块确定出的列号选择数组,得到交织前的列号;特殊转换判决器,根据所述行计数器的计数值,所述列计数器的计数值,及交换矩阵特殊转换标记输出相应的控制信号;选择器,用于根据所述特殊转换判决器输出的控制信号,对交织前的列号进行选择。
所述交织地址计算电路包括:乘法器,该乘法器一个输入端接收所述行号转换电路输出的交织前的行号,另一个输入端接收基本参数确定模块确定的交织矩阵列数,所述乘法器对交织前的行号和交织矩阵列数进行相乘操作;加法器,该加法器一个输入端与所述乘法器的输出端相连,接收所述乘法器输出结果,另一个输入端接收所述列号转换电路输出的交织前的列号,所述加法器对交织前的列号和所述乘法器的输出结果进行相加操作,并将加法结果传送给所述FIFO。
所述输出控制电路包括:比较器,该比较器的一个输入端与所述交织地址计算电路的输出端相连,接收所述交织地址计算电路输出结果,另一个输入端接收码块长度,所述比较器对码块长度和所述交织地址计算电路输出结果进行比较,并根据比较结果输出选择信号;逻辑与单元,该逻辑与单元一个输入端接收所述比较器输出的选择信号,另一个输入端接收所述FIFO输出的暂停通知中的暂停标志取反后的信号,所述逻辑与单元对所述比较器输出的信号和暂停标志取反后的信号进行逻辑与操作,并将逻辑与得到的结果传送给所述FIFO相连。
本发明方案采用FIFO替换专门存放交织地址的RAM,有效节省了存储内存,并且FIFO可以将接收到的交织地址直接输出,克服了现有技术中必须所有交织地址全部计算后才能输出的问题,节省了下面环节进行TURBO编码的等待时间。
附图说明
图1为本发明实施例提供的交织器结构框图;
图2为图1中交织地址计算模块的一个实施例的结构示意图;
图3为本发明实施例提供的交织地址传输方法的流程图。
具体实施方式
本发明实施例采用FIFO(先入先出存储器)来传输交织地址计算模块所输出数据(交织地址)的RAM,所述FIFO根据其已缓存的数据(即交织地址)数量和FIFO深度之间的关系,通知所述交织地址计算模块暂停输出;同时,所述FIFO继续输出数据,并在其缓存的数据减少到一定数量后,通知所述交织地址计算模恢复输出。
请参阅图1所示,图1揭示了本发明实施例提供的交织器,包括:
基本参数确定模块11,用于计算一些基本参数,例如交织矩阵的行数R,列数C,质数p和根v等;
QJ数组计算模块12,也就是最小质整数数组计算模块12,与基本参数确 定模块11相连,用于在一张规定的质数表中挑选出符合条件的质数,并对挑选出的质数进行p-1的取模运算,得到取模运算的结果q(j),其中j=1、2、...、R-1,再加上值等于1的q(0),组建成最小质整数数组QJ表并加以保存;
SI数组计算模块13,也就是列号选择数组计算模块13,与基本参数确定模块11相连,用于根据计算关系式s(i)=(v*s(i-1))mod p,i=1、2、...、(p-2)及s(0)=1得到列号选择数组SI表。
交织地址计算模块14,分别与基本参数确定模块11、QJ数组计算模块12及SI数组计算模块13相连接,根据基本参数确定模块11计算出的基本参数,利用QJ数组计算模块11计算得到的QJ表和SI数组计算模块12计算得到的SI表进行交织地址的计算。
状态控制模块15,用于完成整个交织地址计算过程的控制,首先启动基本参数确定模块11工作,完成基本参数的确定;然后启动QJ数组计算模块12和SI数组计算模块13工作;等QJ数组计算模块12和SI数组计算模块13计算完成后,启动交织地址计算模块14工作,在具体实现时,可以通过启动信号和应答信号来实现,例如状态控制模块15向基本参数确定模块11发出第一启动信号,基本参数确定模块11接收到第一启动信号后,开始计算基本参数,并在计算完基本参数后向状态控制模块15发出第一应答信号,状态控制模块15接收到第一应答信号后,发出第二启动信号给QJ数组计算模块12,QJ数组计算模块12接收到第二启动信号后,开始确定最小质整数数组,得到QJ表,并向状态控制模块15发出第二应答信号,状态控制模块15接收到第二应答信号后继续下面的控制过程。
FIFO16,用于传输交织地址计算模块14输出的交织地址以及完成输出速率的匹配,根据其已缓存的数据(即交织地址)数量和FIFO深度之间的关系,通知交织地址计算模块14暂停输出,同时FIFO16继续输出缓存的数据,并在 其缓存的数据减少到一定数量后,取消暂停通知。
FIFO16发出的暂停通知可以仅包含暂停标志,可也可以除了暂停标志外还包括其他信息,如当前FIFO中缓存的数据数量,下面的描述中以暂停通知中仅包含暂停标志为例;FIFO16取消暂停通知,换句话说就是通知交织地址计算模块14恢复输出。
本发明实施例也可以不设置状态控制模块,前一级完成操作后发出启动信号触发下一级的启动,例如Turbo码交织器接收到启动信号后,基本参数确定模块开始启动,并在计算完基本参数后发出启动信号给QJ数组计算模块、SI数组计算模块;QJ数组计算模块,SI数组计算模块执行完各自的操作后,分别发出启动信号给交织地址计算模块;交织地址计算模块接收到QJ数组计算模块及SI数组计算模块各自发出的启动信号后开始启动。
由于基本参数确定模块11、QJ数组计算模块12和SI数组计算模块13已经被背景技术部分引用技术所揭示,此处不再详叙。
请参阅图2所示,图2揭示了本发明实施例提供的交织器中交织地址计算模块14的结构。该交织地址计算模块中设有2个计数器,一个为行计数器,
具体地,交织地址计算模块14包括行号转换电路141,列号转换电路142,交织地址计算电路143和输出控制电路144,其中行号转换电路141用于计算交织前的行号,列号转换电路142用于计算交织前的列号,交织地址计算电路143用于根据交织前的行号、列号及交织矩阵的行数计算出交织前的地址即交织地址,输出控制电路144用于控制交织地址的输出和停止,下面分别对这四个电路进行说明。
行号转换电路141包括行计数器和行号转换单元,行计数器用来对交织后的行号计数,计数值用row_cnt表示;行号转换单元与行计数器相连接,用于根据计数值row_cnt及交织矩阵的行数R按照3GPP25.212协议规定直接将交织后的行号转换为交织前的行号,例如交织矩阵的行数R等于10时,因为交织时将 顺序{9,8,7,6,5,4,3,2,1,0}变化为{0,1,2,3,4,5,6,7,8,9},所以很容易就可以得到交织前的行号。
列号转换电路141包括列计数器、累加取模单元、特殊转换判决器和选择器,其中列计数器用来对交织后的列号计数,计数值用co1_cnt表示,当行计数器计数到R(R为交织矩阵的行数)时,行计数器清零,row_cnt变为0,同时行计数器产生一个列计数脉冲触发列计数器co1_cnt加1;
计算交织前列号时分三种情况,其中i表示列号,j表示行号,
情况1:如果C=p,进行第j次列间交换(j=0,1,2,...,R-1),cj(i)=s((i*q(j))mode(p-1)),i=0,1,2,...,(p-2).,and cj(p-1)=0;
情况2:如果C=p+1,进行第j次列间交换(j=0,1,2,...,R-1),cj(i)=s((i*q(j))mode(p-1)),i=0,1,2,...,(p-2),cj(p-1)=0,cj(p)=p;如果(K=C xR),交换cR-1(p)和cR-1(0)。
情况3:如果C=p-1,进行第j次列间交换(j=0,1,2,...,R-1),cj(i)=s((i*q(j))mode(p-1))-1,i=0,1,2,...,(p-2)。
这三种情况都需要计算出s((i*q(j))mode(p-1))的值,利用“(a*b)mod c等效于(a*(b mod c))modc”的规律,可以先做q(j)mod(p-1)操作,然后乘以i,再对乘法结果对p-1取模。因为最小质整数数组QJ表已经计算出来,并且QJ表中保存的是q(j)rnod(p-1)的结果。因此,可以利用QJ表将(i*q(j))mod(p-1)的运算简化。
由于(i*q(j))mod(p-1)=((i-1)*q(j)+q(j))mod(p-1),且i从0开始每次只递增1,利用递推规律率,cj(0)=0,cj(1)=(cj(0)+q(j))mod(p-1),cj(2)=(cj(1)+q(j))mod(p-1)........cj(i)=(cj(i-1)+q(j))mod(p-1),所以在进行cj(i)计算的时候,只需要对前一次计算的历史结果加q(j)再取模即可。因此,公式i*q(j) mod(p-1)中的乘法取模运算可以转化为累加取模运算。
通过上面的论述,运算累加取模单元计算出第一次列交换的结果后,根据行计数器计数值row_cnt查询QJ表得到的q(j),以及列计数器的计数值col_cnt就可以得到第j次列交换后的结果,再利用该结果去SI表中查询就能得到交织前的列号。
在列号转换的时候,还需要考虑一些特殊情况。在C=p和C=p+1时,上面的处理只完成了前p-1个列交换地址的计算。当C=p时,第p-1列号赋值0;当C=p+1时,第p-1个列号赋值0,第p个列号赋值p。
同时,当C=p+1且K=R*C时,需要对第R-1行的第0列和第P列做交换。没有交换前,第0列和第p列的转换列号分别为1和p,因此,在这种情况下可以在遇到第R-1行的第0列时,直接对交换列号赋值p,遇到第R-1行的第p列时,直接对交换列号赋值1(这里提到的第R-1行是指交换后的行号,对应于行计数器的值为0的时候)。
考虑到交换矩阵中包含最后一行的空比特,在交换完成之后需要把这些空比特剔除。所以在交织地址计算的时候,需要把这些特殊地址去除。对于空比特在矩阵交换前的存放位置应该是:K,K+1,......R*C-1,因此,在遇到计算得到的交织地址值大于K时不把这些值写入交织地址表中。
因此特殊转换判决器根据当前计数的行号row_cnt和列号col_cnt,以及交换矩阵特殊转换标记p_c_rel,并输出相应的控制信号给选择器,选择器确定交织前的列号选择,并在通常情况下,列号选择数组SI表的输出即为交织前的列号选择,但对于一些特殊情况,需要选择一些特殊值,如“S(i)-1”、“0”、“1”、“p”。其选择关系是:
如果p_c_rel=0,转换后的列号为列号选择数组SI表的输出值减去1的值 (即选择si_data-1输出);
如果p_c_rel=1且col_cnt=p或者p_c_rel=2且col_cnt=p-1或者p_c_rel=3且col_cnt=p-1,转换后的列号为0;
如果p_c_rel=2且col_cnt=p或者p_c_rel=3且col_cnt=p且row_cnt!=0或者p_c_rel=3且col_cnt=0且row_cnt=0,转换后的列号为p;
如果p_c_rel=3且col_cnt=p且row_cnt=0,转换后的列号为1;
其他情况译码出1,即转换后的列号为列号选择数组SI表的输出值。
交织地址计算电路143包括乘法器和加法器,该乘法器一个输入端与行号转换单元相连,接收行号转换单元输出的交织前的行号,另一个输入端接收基本参数确定模块11确定的交织矩阵列数C,乘法器对两个输入端接收的数据进行相乘,输出交织前的行号与交织矩阵列数的乘积,加法器一个输入端与乘法器的输出端相连,另一个输入端与选择器输出端相连,接收交织前的列号,加法器对交织前的行号与交织矩阵列数的乘积,及交织前的列号进行相加,即可得到交织前的地址,加法器输出端与FIFO16相连,将交织前的地址作为写数据传送给FIFO16。
输出控制电路144包括比较器和逻辑与单元,该比较器的一个输入端与加法器的输出端相连,另一个输入端接收码块长度,比较器对码块长度和交织前的地址的进行比较,通常情况下码块长度小于交织前的地址,这时比较器输出一正常信号,例如高电平1,若码块长度大于交织前的地址,则说明交织前的地址有误,输出低电平0。逻辑与单元一个输入端接收比较器输出的信号,另一个输入端接收FIFO16输出的暂停标志并取反,逻辑与单元输出端与FIFO16相连,将逻辑与操作后得到的结果作为写使能信号传送给FIFO16,来控制FIFO16对交织地址的接收与否,当写使能信号有效例如为高电平时,FIFO16接收交织地址,当写使能信号无效例如为低电平时,FIFO16停止接收交织地址。
此外行计数器和列计数器还分别与FIFO16相连接,在接收到FIFO16输出的暂停标志后停止计数工作,交织地址计算模块因而停止输出数据;在暂停标志被置为无效后行计数器和列计数器重新开始计数,交织地址计算模块恢复输出数据,例如设定暂停标志为高电平1有效,低电平0无效,在FIFO16发出高电平1后,行计数器和列计数器停止计数,交织地址计算模块停止输出数据,当FIFO16发出的暂停标志变为0后,行计数器和列计数器重新开始计数,交织地址计算模块恢复输出数据。由于FIFO停止接收数据时,交织地址模块也停止输出数据,交织地址模块恢复输出数据时,FIFO开始接收数据,因此不会造成数据的丢失。
在实际应用中,还可以选择一块较大的FIFO,保证FIFO在传输交织地址计算模块14输出的交织地址时不会发生溢出,这时在交织地址计算模块14种就可以不用设置输出控制电路144,由于FIFO是双端口RAM,可以边接收数据边发送出去,因此只要交织地址计算电路143计算出交织地址后就能实时进行传输,能够减少给下面环节进行TURBO编码带来的延时。
请图3所示,图3揭示了本发明实施例提供的交织地址传输方法的流程图,具体过程如下:
步骤31,FIFO传输地址交织模块输出的数据(交织地址),也就是接收交织模块输出的数据并输出。
步骤32,分析FIFO中已缓存的数据数量和FIFO深度之间的关系;
由于FIFO模块用于完成输出速率的匹配,而在实际应用中,后级读取数据的速率可能低于交织地址计算模块输出的速率,例如:在进行TURBO编码的过程中,每三个时钟周期才读取一次交织地址,而交织地址计算模块可以每个时钟周期输出一个交织地址。因此在FIFO中存储一定数量的数据后,要暂停前级的交织地址输出,以防止FIFO溢出。
暂停控制信号即暂停标志可以用FIFO的半满标志,即当FIFO处于半满 时,输出暂停标志,例如假定FIFO深度为8时,分析过程具体为将FIFO中已缓存的数据数量和4进行比较。
步骤33,在FIFO中缓存的数据达到一定程度后发出暂停标志;还是以深度为8的FIFO采用半满标志为例,当FIFO中缓存的数据数量达到4后,即可产生半满标志如高电平1,将此半满标志高电平1作为暂停标志发送给交织地址计算模块。
步骤34,接收到暂停标志后,行计数器和列计数器停止计数工作,交织地址计算模块停止输出数据,此外逻辑与单元将写使能信号置为无效,设定暂停标志为高电平1,写使能信号为高有效,当逻辑与单元接收到暂停标志1后,输出0,即写使能信号为0,低无效。
步骤35,FIFO在写使能信号无效后,停止接收交织地址计算模块输出的交织地址,并继续输出缓存的数据,同时返回步骤32,判断FIFO中已缓存的数据数量是否已小于4。
步骤36,在FIFO中的缓存数据减少到一定数量后将暂停标志置位无效,也就是当已缓存的数据数量小于4之后,将暂停标志从1改为0。
步骤37,行计数器和列计数器在暂停标志置为无效后,重新开始计数工作,交织地址计算模块将重新输出数据,且逻辑与单元在暂停标志变为0后,重新输出1,也就是写使能信号恢复成1,FIFO重新接收数据并输出。
由于交织地址计算模块在计算交织地址的时候可能采用流水处理方式,即交织地址计算模块中各个组成部分处于并行工作状态,当FIFO发出暂停标志后,虽然行计数器和列计数器可以立即暂停计数,交织地址的输出却没法暂停,必须等到前一次流水处理结束以后。也就是说在暂停控制信号(暂停标志)有效后,还允许交织地址计算模块继续输出N个数(N为交织地址计算的流水深度,比如4)。
因此为了避免丢失数据,在本发明提供的交织地址计算模块的另一个实施 例中,在FIFO与逻辑与单元之间增加了一个延迟单元,该延迟单元可以由若干个D触发器组成,D触发器的个数由流水的深度决定,所谓流水深度,就是运算经过的寄存器级数,也就是运算的处理延时,具体为交织地址计算模块在从某个交织地址开始计算到该交织地址结果输出占用的时钟周期数,比如流水深度为4时,D触发器的个数也设置成4。该延迟单元用于接收FIFO输出的暂停标志,将该暂停标志延迟几个时钟周期后才送给逻辑与单元,以确保前一次流水产生的数据都能传送给FIFO,而不会丢失。而在暂停标志置为无效后,由于延迟时间为4个时钟周期,而流水深度为4,因此当交织地址计算模块恢复输出数据时,写使能信号也恢复成高电平,因此可以确保数据不会丢失。相应地在处理过程中前一次流水产生的数据全部传送给FIFO之后,写使能信号才被置为无效;而在写使能信号恢复有效之前,还需要经过一定的延迟。
在该另一个实施例中可以不采用FIFO的半满标志作为暂停控制信号(暂停标志),只要保证FIFO中缓存的数据大于等于M-N个数时使得暂停控制信号生效即可,其中M为FIFO的深度,N为流水的深度,M、N之间的关系为M>=(N+1)。当FIFO中缓存的数据少于M-N个数时,暂停控制信号置为无效。
采用FIFO传输数据,并引入暂停标志后,一方面可以采用较小的FIFO,有效节省存储内存,不再需要一块专门存放交织地址的RAM,另一方面可以很方便的进行数据的传输,可以边接收交织地址边输出,避免了下面环节进行TURBO编码的等待时间。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (4)
1.一种Turbo码交织器,其特征在于,包括:
基本参数确定模块,用于计算基本参数;
最小质整数数组计算模块,与所述基本参数确定模块相连,用于确定最小质整数数组;
列号选择数组计算模块,与所述基本参数确定模块相连,用于确定列号选择数组;
交织地址计算模块,分别与所述基本参数确定模块、最小质整数数组计算模块及列号选择数组计算模块相连接,根据所述基本参数,最小质整数数组和列号选择数组计算交织地址,并将结果输出;
FIFO,与所述交织地址计算模块相连接,用于传输所述交织地址计算模块输出的数据,并根据FIFO中缓存的数据数量和FIFO深度之间的关系,通知所述交织地址计算模块暂停输出,以及在FIFO中缓存的数据减少到一定数量后,通知所述交织地址计算模块恢复输出;
所述交织地址计算模块包括:
行号转换电路,用于计算交织前的行号;
列号转换电路,用于计算交织前的列号;
交织地址计算电路,用于根据所述行号转换电路计算出的交织前的行号,所述列号转换电路计算出的交织前的列号,及所述基本参数确定模块计算出的交织矩阵的行数计算出交织地址;
输出控制电路,所述输出控制电路与所述FIFO相连接,用于控制所述FIFO接收所述交织地址计算电路计算出的交织地址;
所述输出控制电路包括:
比较器,该比较器的一个输入端与所述交织地址计算电路的输出端相连,接收所述交织地址计算电路输出结果,另一个输入端接收码块长度,所述比较器对码块长度和所述交织地址计算电路输出结果进行比较,并根据比较结果输出选择信号;
逻辑与单元,该逻辑与单元一个输入端接收所述比较器输出的选择信号,另一个输入端接收所述FIFO输出的暂停通知中的暂停标志取反后的信号,所述逻辑与单元对所述比较器输出的信号和暂停标志取反后的信号进行逻辑与操作,并将逻辑与得到的结果传送给所述FIFO相连。
2.如权利要求1所述的交织器,其特征在于,所述行号转换电路包括:
行计数器,用来对交织后的行号计数,当计数值等于交织矩阵的行数减一时清零,并在收到FIFO发出的暂停通知后停止计数;
行号转换单元,与所述行计数器相连接,根据所述行计数器的计数值及交织矩阵的行数将交织后的行号转换为交织前的行号。
3.如权利要求2所述的交织器,其特征在于,所述列号转换电路包括:
列计数器,用来对交织后的列号计数,并在收到所述FIFO发出的暂停通知后停止计数;
累加取模单元,用于根据所述列计数器的计数值和所述最小质整数数组计算模块确定出的最小质整数数组得到列号选择数组的访问地址,并根据所述访问地址查询所述列号选择数组计算模块确定出的列号选择数组,得到交织前的列号;
特殊转换判决器,根据所述行计数器的计数值,所述列计数器的计数值,及交换矩阵特殊转换标记输出相应的控制信号;
选择器,用于根据所述特殊转换判决器输出的控制信号,对交织前的列号进行选择。
4.如权利要求1所述的交织器,其特征在于,所述交织地址计算电路包括:
乘法器,该乘法器一个输入端接收所述行号转换电路输出的交织前的行号,另一个输入端接收基本参数确定模块确定的交织矩阵列数,所述乘法器对交织前的行号和交织矩阵列数进行相乘操作;
加法器,该加法器一个输入端与所述乘法器的输出端相连,接收所述乘法器输出结果,另一个输入端接收所述列号转换电路输出的交织前的列号,所述加法器对交织前的列号和所述乘法器的输出结果进行相加操作,并将加法结果传送给所述FIFO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100630069A CN101154957B (zh) | 2006-09-30 | 2006-09-30 | Turbo码交织器及交织地址传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100630069A CN101154957B (zh) | 2006-09-30 | 2006-09-30 | Turbo码交织器及交织地址传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101154957A CN101154957A (zh) | 2008-04-02 |
CN101154957B true CN101154957B (zh) | 2011-02-02 |
Family
ID=39256436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100630069A Expired - Fee Related CN101154957B (zh) | 2006-09-30 | 2006-09-30 | Turbo码交织器及交织地址传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101154957B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011009344A1 (zh) * | 2009-07-21 | 2011-01-27 | 中兴通讯股份有限公司 | 一种基于lte的turbo编码方法及系统 |
CN102170333B (zh) * | 2011-05-17 | 2016-01-20 | 中兴通讯股份有限公司 | 一种交织地址的并行计算方法及系统 |
CN110535478B (zh) * | 2019-09-27 | 2023-02-07 | 电子科技大学 | 一种DVB-RCS2协议中双输入类Turbo码闭集识别方法 |
CN117354256B (zh) * | 2023-12-05 | 2024-03-19 | 鹏城实验室 | 速率匹配方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345008B1 (en) * | 2000-08-08 | 2002-02-05 | Texas Instruments Incorporated | Fast reprogrammable FIFO status flags system |
CN1366738A (zh) * | 2000-03-17 | 2002-08-28 | 松下电器产业株式会社 | 交织地址生成装置 |
CN1531353A (zh) * | 2003-03-10 | 2004-09-22 | 大唐移动通信设备有限公司 | 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器 |
CN1668021A (zh) * | 2004-03-12 | 2005-09-14 | 华为技术有限公司 | 一种高可靠性的先入先出存储器及其实现方法 |
CN1756091A (zh) * | 2004-09-29 | 2006-04-05 | 普天信息技术研究院 | 一种Turbo码交织器及其交织方法 |
-
2006
- 2006-09-30 CN CN2006100630069A patent/CN101154957B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366738A (zh) * | 2000-03-17 | 2002-08-28 | 松下电器产业株式会社 | 交织地址生成装置 |
US6345008B1 (en) * | 2000-08-08 | 2002-02-05 | Texas Instruments Incorporated | Fast reprogrammable FIFO status flags system |
CN1531353A (zh) * | 2003-03-10 | 2004-09-22 | 大唐移动通信设备有限公司 | 一种用可编程门阵列实现的第三代移动通信标准协议中的Turbo码内交织器 |
CN1668021A (zh) * | 2004-03-12 | 2005-09-14 | 华为技术有限公司 | 一种高可靠性的先入先出存储器及其实现方法 |
CN1756091A (zh) * | 2004-09-29 | 2006-04-05 | 普天信息技术研究院 | 一种Turbo码交织器及其交织方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101154957A (zh) | 2008-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771879B (zh) | 基于cabac的并行归一化编码实现电路及编码方法 | |
CN101261575B (zh) | 一种实现不等宽数据传输的异步先进先出存储器及方法 | |
CN101154957B (zh) | Turbo码交织器及交织地址传输方法 | |
CN202931289U (zh) | 一种硬件lz77压缩实现系统 | |
CN103023509A (zh) | 一种硬件lz77压缩实现系统及其实现方法 | |
CN104132663A (zh) | 一种基于fpga的导航计算机协处理器 | |
CN102541799A (zh) | 一种利用fpga实现多串口扩展的方法 | |
CN103095305A (zh) | 一种硬件lz77的压缩实现系统及方法 | |
CN100426681C (zh) | Turbo编码方法及编码装置 | |
CN101176159A (zh) | 在dram存储器中处理写屏蔽的方法 | |
CN110868223B (zh) | 一种哈夫曼编码的数值运算实现方法及电路 | |
CN101702639A (zh) | 循环冗余校验的校验值计算方法及装置 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN103885527A (zh) | 一种基于rrc编码的时钟偏差补偿装置 | |
CN110766155A (zh) | 一种基于混合精度存储的深度神经网络加速器 | |
CN102801974B (zh) | 基于cabac的图像压缩熵编码器 | |
CN102111163B (zh) | Turbo编码器及编码方法 | |
CN103984525A (zh) | 指令处理系统及方法 | |
CN102469307B (zh) | 解码器及码流解析装置 | |
CN107017962A (zh) | 动态功耗控制的编码方法及编解码器 | |
CN1972168B (zh) | 可编程变长比特流处理器 | |
CN102170333B (zh) | 一种交织地址的并行计算方法及系统 | |
CN101699391B (zh) | 提高Java处理器取指令带宽的字节码缓冲装置及使用方法 | |
CN209765494U (zh) | 一种异步fifo装置 | |
CN114489567A (zh) | 一种并行伪随机码发生器及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110202 Termination date: 20150930 |
|
EXPY | Termination of patent right or utility model |