CN100426681C - Turbo编码方法及编码装置 - Google Patents
Turbo编码方法及编码装置 Download PDFInfo
- Publication number
- CN100426681C CN100426681C CNB2005100691119A CN200510069111A CN100426681C CN 100426681 C CN100426681 C CN 100426681C CN B2005100691119 A CNB2005100691119 A CN B2005100691119A CN 200510069111 A CN200510069111 A CN 200510069111A CN 100426681 C CN100426681 C CN 100426681C
- Authority
- CN
- China
- Prior art keywords
- ram
- bit
- output
- data
- ping
- 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编码方法,其中,每个比特编码步骤包括:比特计数器依次输出的每个计数值维持三拍时钟周期;二路选择器选择比特计数器输出的计数值的第一拍作为读指令传送到交织地址存储器,选择比特计数器输出的第二拍第三拍作为读指令传送到RAM,并将交织地址存储器在第四拍输出的数据作为读指令传送到RAM;乒乓RAM在第五、六拍输出的数据由第一计算模块接收处理生成系统位和第一校验位、在第七拍输出的数据由第二计算模块接收处理生成第二校验位。本发明还提供了相应的编码器。
Description
技术领域
本发明涉及编码技术领域,特别是指TURBO编码方法及编码装置。
背景技术
由于TURBO码具有较强的纠错性能,在具有代表性的3GPP的3个标准中的信道编码方案都使用了TURBO编码,用于高速度、高质量的通信业务。图1示出的下行编码处理的示意框图中,示出了TURBO编码的位置,TURBO编码器从前级处理模块(CRC添加模块)接收数据,并把编码后的结果输出给后级处理模块(速率匹配模块)。
图2示出了TURBO编码的原理图。TC编码器主要包含4个部分:TC控制模块、TC运算单元、TC交织器和RAM。
TC交织器包含一个交织地址存储器存储器,存储有预先计算出来的交织地址,输入的码块数据按照交织地址依次读取RAM就可得到交织后的码块数据。RAM用于接收编码前的数据进行缓存。TC运算单元主要完成第一分量(或称第一校验位)和第二分量(或称第二校验位)的编码,内部采用2套3比特的移位寄存器组实现,具体可以参见图3的TURBO的编码器结构图中示出的TC运算单元。TC控制器是整个TC编码的控制电路,它完成整个编码过程的状态控制。
图3示出了3GPP协议(3GPP TS25.212)定义的TURBO码的编码器结构图。为了描述方便,将生成系统位和第一分量编码的电路统称第一计算模块,将生成第二分量编码的电路统称第二计算模块。其中,编码器中各个移位寄存器(D)的初始值应全部为0。在码块的尾部,插入尾比特以清除编码器的状态,尾比特由寄存器中反馈得到(如图中虚线表示)。
参照图2,和图4的编码流程图,一个TC编码过程包括以下步骤:
步骤401:接收到编码器启动信号后,TC交织器开始交织地址的计算,交织地址完成后,通过一个完成标志通知TC控制模块。这个过程可以认为TC编码器处于初始状态(S0)。
步骤402:TC控制模块收到编码器启动信号后,开始接受前级下发的数据,并写入RAM中。
步骤403:RAM等待接收1个完整的码块,当RAM中存储了一个完整的码块数据后转入下一步。可以认为收到启动信号到接收到完整的码块过程为等待状态(S1)。
步骤404:开始进行一个码块的编码,包括系统位处理、第一分量编码、第二分量编码。在这个过程,对已经编码的比特数进行计数,当计数个数达到码块长度时,表示码块编码结束,进入下一步。这个过程可以认为是TC编码状态(S2)。
步骤405:一个码块编码处理完成后,对这个码块的尾比特结果输出。在这个过程,对输出的尾比特个数进行计数,当输出完特定数量个尾比特时,进入下一步。这个过程可以认为是尾比特输出状态(S3)。
当尾比特输出完毕后,判断是否所有的码块都处理完毕(即判断是否已经处理了所配置的码块个数)。如果所有的码块处理完成,编码器回到空闲状态,编码过程完毕;如果还有没处理完的码块,回到步骤403进行下一个码块的接收和处理。
下面对步骤404中的编码过程进行说明。参见图3示出的逻辑实现TURBO编码器结构图,TURBO编码处理时把1比特的输入数据转换成3比特的输出,其编码时序图参见图5所示,当RAM中存储有一个码块数据后,数据输出的流程包括以下步骤:
首先,从RAM中读取数据直接输出系统位;
其次,从RAM中读取数据并进行第一分量编码输出第一校验位;
最后,从交织器的交织地址存储器中查找交织地址,并用这个交织地址从RAM中读取数据,并对这个数据进行第二分量编码输出第二校验位。
分析上面的TURBO编码处理过程,需要访问4次RAM,其中3次是读RAM,1次是读交织地址存储器。通常从RAM中读取数据需要3个时钟周期后结果才能输出,因此即使不考虑第一分量和第二分量的编码时间,如图5所示,1比特输入数据TURBO编码也需要4×3=12个时钟周期。
TURBO编码过程要对一个码块之内的数据进行交织处理和TURBO编码,对于一个码块来说,包含有很多个比特,按照上述处理,在输入比特较多的情况下,一个码块编码的处理延时会非常大,不可避免的给整个下行处理或上行处理带来了较大的延时。较大的延时又进一步的影响到了基带处理的性能低下。
发明内容
有鉴于此,本发明的主要目的在于提供了一种TURBO编码方法及编码装置,实现基于“流水”的编码方法,减小TURBO编码的每个输入比特的处理延时,从而减少整个TURBO编码延时。
本发明提供了TURBO编码方法,每个码块的编码步骤包括:码块内的每个比特的编码步骤、在码块内所有比特编码结束后的尾比特生成步骤;所述每个比特的编码步骤生成系统位、第一校验位和第二校验位;每个比特编码步骤包括:
第1拍,将当前比特在其所属码块中的位数作为访问交织地址存储器的地址读取交织地址存储器;
第2拍和第3拍,分别将第1拍所述位数作为访问RAM的地址读取RAM;所述RAM存储有所述码块;
第4拍,交织地址存储器完成对3拍前的读指令的响应,输出交织地址,并将该交织地址作为访问RAM的地址读取RAM;
第5拍,RAM完成对3拍前的读指令的响应,输出数据;
第6拍,RAM完成对3拍前的读指令的响应,输出数据;并将第5拍RAM输出的数据作为系统位输出;
第7拍,RAM完成对3拍前的读指令的响应,输出交织后的数据;并将第6拍RAM输出的数据进行第一分量编码生成第一校验位输出;
第8拍,将第7拍RAM输出的数据进行第二分量编码生成第二校验位输出。
可选的,进一步包括:依次在每个比特编码起始3拍后启动下一比特的编码步骤。
可选的,进一步包括:编码过程收到暂停指令后,停止启动下一比特的编码,并完成当前处于编码过程中的比特的编码步骤。
较佳的,所述RAM为乒乓RAM,要进行编码的不同码块以乒乓缓存机制缓存在乒乓RAM中。
可选的,进一步包括:RAM缓存的数据还有N个比特就满时,向前级模块发送暂停指令暂停前级模块的数据输出,并使前级收到指令后还可继续发送N个比特。
其中,在码块内所有比特编码结束后的尾比特生成步骤包括启动尾比特生成的步骤,启动尾比特生成的步骤为:记录所编码的比特的个数,当所述个数到达码块长度时,启动尾比特生成步骤。
本发明还提供了一种TURBO编码装置,包括:计算系统位及第一分量编码的第一计算模块、计算第二分量编码的第二计算模块,还包括:比特计数器,用于记录当前编码的比特在其码块中的位数;交织地址存储器,存储有交织矩阵;RAM,用于缓存要编码的码块;比特计数器输出端连接到交织地址存储器读地址输入端,还连接到二路选择器的一输入端;交织地址存储器读数据输出端连接到所述二路选择器的另一输入端;所述二路选择器输出端连接至所述RAM读地址输入端;所述RAM读数据输出端分别连接至第一计算模块、第二计算模块的输入端;
在进行各个比特编码时,比特计数器输出的每个计数值维持三拍时钟周期;在第一拍,二路选择器将比特计数器输出的数据传送到交织地址存储器、在第二拍第三拍,将比特计数器输出的数据传送到乒乓RAM,将交织地址存储器在第四拍输出的数据传送到乒乓RAM;乒乓RAM在第五、六拍输出的数据由第一计算模块接收处理生成系统位和第一校验位、在第七拍输出的数据由第二计算模块接收处理生成第二校验位。
较佳的,所述RAM为乒乓RAM。可选的,所述乒乓RAM为8个比特位宽,640字节深度,依靠高位地址区分乒乓的RAM。
其中,所述乒乓RAM还包括连接乒乓RAM的读、写控制电路;所述读控制电路包括:二路选择器,两路输入端分别接外部写地址高10位信号、外部写地址高10位累加640后的信号,输出端作为写地址信号输出给乒乓RAM;译码器,输入端接外部写地址低3位信号,输出端作为写地址信号输出给8位寄存器组;8位寄存器组还接外部写数据信号,输出端作为写数据信号输出给乒乓RAM;所述写控制电路包括:二路选择器,两路输入端分别接外部读地址高10位信号、外部读地址高10位累加640后的信号,输出端作为读地址信号输出给乒乓RAM;八路选择器,输入端连接乒乓RAM输出端,并接收读地址信号低3位的控制输出数据。
本发明还提供了一种TURBO编码方法,对应的编码电路包括:计算系统位及第一分量编码的第一计算模块、计算第二分量编码的第二计算模块;用于记录当前编码的比特在其码块中的位数的比特计数器;存储有交织矩阵的交织地址存储器;缓存要编码码块的RAM;比特计数器输出端连接到交织地址存储器读地址端,还连接到二路选择器的一输入端;交织地址存储器读数据输出端连接到二路选择器的另一输入端;二路选择器输出端连接至所述乒乓RAM读地址端;乒乓RAM读数据输出端连接至第一计算模块、第二计算模块的输入端;
所述编码方法包括:码块内的每个比特的编码步骤、在码块内所有比特编码结束后的尾比特生成步骤;每个比特编码步骤包括:
比特计数器依次连续输出的每个计数值维持三拍时钟周期;
在第一拍,二路选择器将比特计数器输出的数据作为读指令传送到交织地址存储器,在第二拍第三拍,将比特计数器输出的数据作为读指令传送到RAM,并将交织地址存储器在第四拍输出的数据作为读指令传送到RAM;
乒乓RAM在第五、六拍输出的数据由第一计算模块接收处理生成系统位和第一校验位、在第七拍输出的数据由第二计算模块接收处理生成第二校验位。
由上述方法可以看出,本发明采用“流水”机制减少了每个输入比特的编码处理时间,使TURBO编码处理延时减少。本发明还提供了内部数据流“流水”处理的暂停,保证了“流水”恢复后数据流处理的连续性。
在上述内部数据流“流水”处理的前提下,还实现被后级模块暂停功能。当后级模块资源不足时可以发送暂停控制信号,TURBO编码器收到暂停控制后可以暂停内部的处理,停止向后级输出数据,这种特性能够减轻后级处理模块数据缓冲的大小。
还采用乒乓RAM接收机制缓存机制,减少了TURBO编码多个码块之间处理的等待时间。同时为了减少RAM的块数和深度,本发明通过串并转换处理完成了用宽度较宽的RAM对单比特数据的存储,避免了使用“细长(位宽较窄,深度较深)”RAM,节省了芯片的面积。
本发明通过乒乓RAM机制实现TURBO编码器具有接受前级处理模块处理“流水”的特性,在乒乓RAM满的时候自动向前级发送暂停控制信号,并且不要求前级模块立刻暂停数据输出,前级处理模块可以带有一定量的输出“流水”,即接收到暂停信号后过一段时间再暂停数据输出,便于和前级处理模块连接。
附图说明
图1为下行编码处理的示意框图。
图2为TURBO编码的原理图。
图3为3GPP协议定义的TURBO码的编码器结构图。
图4为编码流程图。
图5为现有技术编码时序图。
图6为本发明流水处理的编码时序图。
图7为乒乓RAM及读写控制电路图。
图8为比特编码状态机示意图。
图9为本发明TC编码的实现电路图。
图10为移位控制信号时序图。
图11为编码状态机示意图。
具体实施方式
对于减少TURBO编码处理的延时,从码块内各个比特的处理延时考虑的话,不仅要保证输出每个比特生成的3比特编码所占周期最小,还要尽量使每个比特流之间不间断的连续传输,形成码块内部各个比特的“流水”(即不间断)控制。另外,从各个码块来考虑,还要尽量保证各个码块之间的不间断传输,形成码块的“流水”控制。
仍参见附图5进行分析,如果编码后的数据是串行输出,输出每比特占用一个时钟周期,由于是输出3比特,因此一个输入比特的编码处理后在输出时占用3个时钟周期是比较理想的。从附图5的时序图可以看出,一比特数据编码共需要3次访问RAM,1次访问交织器的交织地址存储器。对于第二校验位的处理时间最长,首先要用当前处理地址查询交织地址存储器,得到交织地址,需要3个时钟周期,然后用交织地址访问RAM,得到第二分量编码的输入数据,需要3个时钟周期,共需要6个时钟周期。而对于系统位和第一校验位的处理,都需要3个时钟周期。本发明将1个比特输入数据编码处理分成3拍(即占用3个时钟周期),第一个时钟周期选择交织地址存储器输出的结果,第2个时钟周期和第3个时钟周期选择比特计数器的值。并将访问RAM和访问交织地址存储器进行并行处理,且访问RAM设计成“流水”,以达到1比特编码输出结果时占用3个时钟周期目的。
下面参照本发明提供的附图6示出的“流水”处理编码示意图进行说明,当RAM中已经存储有完整的码块时,码块内各个比特编码采用如下步骤:
步骤601:在第1拍,查询交织地址存储器,即用比特计数器的值作为交织地址存储器的访问地址访问交织地址存储器,用于去获得交织后的地址。
步骤602~603:在第2拍和第3拍,用比特计数器的值作为RAM的访问地址去访问RAM。
步骤604:第4拍交织地址存储器输出交织地址的值,并用这个值作为RAM的访问地址去访问RAM。
步骤605:第5拍RAM输出数据,这个数据对应3拍前(第2拍)的读指令,读出的数据是没有交织的数据。
步骤606:第6拍RAM输出数据,该数据和第5拍相同,对应的是3拍前(第3拍)的读指令。在第6拍,同时要对第5拍RAM输出的数据进行处理,输出系统位。
步骤607:第7拍RAM输出数据,该数据是3拍前(第4拍)的读指令,是交织后的数据。在第7拍,同时要对第6拍RAM输出的数据进行处理,输出第一校验位。
步骤608:第8拍对第7拍RAM输出的数据进行处理,输出第二校验位。
上述描述的是一个比特的处理过程。为了实现各个比特之间不间断处理的流水步骤,在第一比特开始处理的3拍后(即第4拍)开始进行第二比特的处理;依次在第二比特开始处理的3拍后(即第7拍)开始进行第三比特的处理;依次在第三比特开始处理的3拍后(即第10拍)开始进行第四比特的处理......依次类推,每个比特占用3拍时间。对应的,不难理解,第二比特的编码结果会在9~11拍输出,第三比特的编码结果会在12~14拍输出,每个编码后的比特组也占用3拍。
连续看多个比特的编码过程,二路选择器在当前比特的第一拍选择从交织地址存储器读出的数据,在第二拍和第三拍选择比特计数器的值作为乒乓RAM的读地址。这里在第一拍选择的交织地址存储器的动作即对于上一比特在其第四拍选择交织地址存储器的动作。
可以分析出,当各个比特进行连续输入的时候,每三个周期便可以输出一个比特的编码结果,不考虑尾比特的输出,则一个码块(包含的N个比特)编码时间为3×N,相对背景技术的12×N要缩短了很大的延时。从码块的角度来看,码块编码开始到输出结果会存在5拍的延时,故流水深度为5个时钟周期。当各个码块也进行流水控制时,即输入的码块连续输入时,则每个码块可实现连续输出,而不会存在码块之间的5个时钟周期的间隔。
TURBO编码是按照码块进行的,对于大数据量的传输信道来说,通常包含多个码块的数据需要进行编码。为了实现上述码块的流水控制,本发明将TURBO编码器内部用于缓存接收数据的RAM需要设计成乒乓结构,一块用于当前码块的处理,另一块用于下一个码块数据的接收,这样TURBO编码器在进行一个码块的编码时同时可以接收前级处理模块(CRC添加模块)输出的下一个码块的数据。下面对本发明的乒乓RAM进行详细描述。
TURBO编码器从前级处理模块(CRC添加模块)输入的数据是1比特位宽,而1个码块最大的数据量是5114个比特。这样需要2块5114比特的RAM用于编码前数据的缓存。如图7示出的乒乓RAM结构,乒乓RAM各设计成可以存储5120比特的数据,其中乒乓RAM设计成8个比特的位宽,深度各为640。这个乒乓RAM在物理上可以设计成一块,依靠高位地址区分乒乓。设计时不采用单比特位宽,而单比特数据串并转换成8比特位宽,这是为了减少RAM的深度。
如图7示出的乒乓RAM读写控制电路,所述读控制电路包括:二路选择器,两路输入端分别接外部写地址高10位信号、外部写地址高10位累加640后的信号,输出端作为写地址信号输出给乒乓RAM;译码器,输入端接外部写地址低3位信号,输出端作为写地址信号输出给8位寄存器组;8位寄存器组还接外部写数据信号,输出端作为写数据信号输出给乒乓RAM。
所述写控制电路包括:二路选择器,两路输入端分别接外部读地址高10位信号、外部读地址高10位累加640后的信号,输出端作为读地址信号输出给乒乓RAM;八路选择器,输入端连接乒乓RAM输出端,并接收读地址信号低3位的控制输出数据。
在写入数据的时候,根据乒乓标志确定写入RAM的低端(乒区)或者高端(乓区)。写入数据的时候,首先把单比特数据写入8比特的寄存器组中,具体写入8个寄存器中的哪一个由写入地址的低3比特控制。在写完寄存器组的下一拍,需要把寄存器组中的内容写入RAM中,RAM的地址受写入地址的高10比特控制。在读取数据的时候,根据乒乓标志选择RAM的低端或者高端。用读地址的高10比特作为RAM的读地址,同时用读地址的低3比特选择从RAM中读出字节中的某1比特作为输出的数据。
在数据接收过程中,如果出现前级写入的数据速率很快,如果编码处理较慢,可能会使乒乓RAM都满。这个时候如果再写入新的数据,会导致新数据覆盖老数据的错误。为了防止数据覆盖,在乒乓RAM都满时,要向前级发出1个暂停信号,终止前级的数据输出。同时,为了给前级保留一定的“流水”余量(如32个数据的余量),在乒乓RAM即将要满(还有32个比特空间可用)的时候就发出暂停控制信号,这样在前级接收到暂停信号时,可以将32个比特发送完毕后暂停发送。
通过上述方案,可以实现在资源不足的情况下暂停前级模块的处理,为了减少和后级模块的关联性,TURBO编码还要能够被后级模块暂停,下面进行描述。我们需要把1个输入比特的编码处理看作一个“整体”,这个“整体”是一个不可以被打断“流水”的最小单元。如果接收到后级的暂停信号,必须等到这个“整体”全部被处理完毕后才能暂停当前的处理,也就是收到后级的暂停信号后,要处理完当前已经开始的比特的编码,并且不再对未开始处理的比特进行编码。
根据TC编码特点(1个比特输入经TC编码输出3比特:系统位,第一校验位和第二校验位),将TC编码状态设计成包含四个子状态:空闲(S_i),系统位处理(S_a),第一校验位处理(S_b)和第二校验位处理(S_c)。参见图8示出的比特编码状态机,进行TC编码时,在TC编码状态不被暂停情况下,状态机在系统位(S_a),第一校验位(S_b)和第二校验位(S_c)循环跳转,直到一个码块的数据编码处理完成。并在每个第二校验位(S_c)状态,会判断是否需要暂停,如果被暂停则进入空闲S_i状态,否则进入S_a状态。在空闲状态下,如果后级暂停撤消,编码器又会跳转到S_a状态。状态迁移见下图8示出的TC编码处理状态机。
在空闲状态下,TC编码编码器是没有数据输出的。我们可以根据TC编码的状态判断数据输出有效标志,当空闲状态有效标志标记无效,其他状态标记有效。由于编码处理带有5拍“流水”,所以在输出有效标志判断的时候要考虑这5拍“流水”的影响。
图9为本发明提供的TC编码的实现电路,它完成一个码块数据的编码(包括尾比特)。主要包括:计算系统位及第一分量编码的第一计算模块、计算第二分量编码的第二计算模块,第一计算模块和第二计算模块的内部电路与图3示出的相同,故不再骜述。还包括比特计数器,用于记录当前处理的比特所在位数;交织地址存储器,存储有交织矩阵;乒乓RAM,提供了数据写入端和地址写入端,用于接收上级模块(CRC添加模块)发送过来的要编码的码块进行缓存。比特计数器输出端连接到交织地址存储器读地址端,还连接到二路选择器的一输入端;交织地址存储器读数据输出端连接到所述二路选择器的另一输入端;所述二路选择器输出端连接至所述乒乓RAM读地址端;乒乓RAM读数据输出端连接至第一计算模块、第二计算模块的输入端。
系统位输出端、第一分量输出端、第二分量输出端连接到一个三路复用器的输入端,这三个输出端同时与第二分量的反馈信号连接到一个四路复用器的输入端,所述三路复用器、四路复用器的输出端连接到一个二路复用器,其输出端向下级模块(速率匹配模块)输出。
同时参见图10示出的移位控制信号的产生时序,对编码过程进行说明。在进行各个比特编码时,比特计数器对当前处理的比特进行计数,比特计数器的每个输出维持三拍时钟周期;所述二路选择器控制将比特计数器输出的第一拍作为访问交织地址存储器的地址传送到交织地址存储器,将比特计数器输出的第二拍第三拍作为访问乒乓RAM的地址传送到乒乓RAM,将交织地址存储器在第四拍输出的交织后的地址作为访问乒乓RAM的地址传送到乒乓RAM;乒乓RAM在第五、六拍输出的数据是没经过交织的数据比特,由第一计算模块接收处理,第一计算模块在第六、七拍输出得到系统位以及第一校验位;乒乓RAM在第七拍输出的数据是经过交织的数据比特,由第二计算模块接收处理,第二计算模块在第八拍输出得到第二校验位。
在一个码块的所有比特处理完毕后,需要输出尾比特。尾比特输出和正常比特输出的处理方法有些不同,首先是处理第一分量的数据,然后再处理第二分量的数据。在尾比特输出时,不需要从乒乓RAM中读取数据,移位寄存器的输入是自身的反馈比特。在第一分量对应的移位寄存器组生成尾比特时,首先输出系统位,然后输出该寄存器组的运算结果,输出完毕后,该寄存器组移位一次,接着进行下一次处理,这样的过程循环3次,直到该寄存器组中的内容被全部处理。然后,由第二分量对应的移位寄存器组生成尾比特,过程同寄存器组A相同,不再骜述,具体可参见图10的移位控制信号时序图。
整个编码过程可以分成4个状态:初始态(S0)、等待状态(S1)、TC编码状态(S2)和尾比特输出状态(S3)。参见图11示出的编码器状态图。在复位后TC编码器处于初始状态,当收到编码启动信号后,进入等待状态。
处于等待状态时,需要2个条件同时满足后才能脱离等待状态跳到下一个状态(TC编码状态):1、TC交织地址计算完成,TC交织器为空闲;2、乒(乓)RAM中已经接收一整个码块的数据。
在TC编码状态内部有一个比特计数器,对已经编码的比特数进行计数,当计数个数达到码块长度时,跳转到下一状态(尾比特输出)。编码处理状态内部又包含4个子状态:空闲(S_i),系统位处理(S_a),第一校验位处理(S_b)和第二校验位处理(S_c)。(参见图8)。在S_c状态,比特计数器加1,表示一个比特处理完毕。可以看出,通常情况下比特计数器每3个时钟周期计数一次。
在尾比特输出状态内部,有一个尾比特计数器,对输出的尾比特个数进行计数,当输出完特定个数(如12)个尾比特时,跳转到下一个状态。下一个状态是哪个状态根据当前已经处理的码块个数计数器进行判断。如果已经处理的码块个数等于参数配置的码块个数时,表示处理完所有的码块,跳转到初始状态;否则表示还有未处理完的码块,跳转到等待状态。码块个数计数器是在尾比特输出状态下进行维护的,每次进入尾比特输出状态,码块个数计数器加1。
在这4个状态中,S2和S3状态是需要输出数据的,为了能够被后级暂停,从理论上讲这两个状态都要支持暂停处理功能,但是考虑到减少控制的复杂性,对于S3状态(尾比特输出状态),可以设计成不考虑暂停这种情况。这样对于S3状态,固定占用12个时钟周期(由于这种情况的出现,后级需要至少预留12个缓冲空间,来防止“流水”输出)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1、一种TURBO编码方法,每个码块的编码步骤包括:码块内的每个比特的编码步骤、在码块内所有比特编码结束后的尾比特生成步骤;所述每个比特的编码步骤生成系统位、第一校验位和第二校验位;其特征在于,每个比特编码步骤包括:
第1拍,将当前比特在其所属码块中的位数作为访问交织地址存储器的地址读取交织地址存储器;
第2拍和第3拍,分别将第1拍所述位数作为访问RAM的地址读取RAM;所述RAM存储有所述码块;
第4拍,交织地址存储器完成对3拍前的读指令的响应,输出交织地址,并将该交织地址作为访问RAM的地址读取RAM;
第5拍,RAM完成对3拍前的读指令的响应,输出数据;
第6拍,RAM完成对3拍前的读指令的响应,输出数据;并将第5拍RAM输出的数据作为系统位输出;
第7拍,RAM完成对3拍前的读指令的响应,输出交织后的数据;并将第6拍RAM输出的数据进行第一分量编码生成第一校验位输出;
第8拍,将第7拍RAM输出的数据进行第二分量编码生成第二校验位输出。
2、根据权利要求1所述的方法,其特征在于,进一步包括:依次在每个比特编码起始3拍后启动下一比特的编码步骤。
3、根据权利要求2所述的方法,其特征在于,进一步包括:编码过程收到暂停指令后,停止启动下一比特的编码,并完成当前处于编码过程中的比特的编码步骤。
4、根据权利要求1所述的方法,其特征在于,所述RAM为乒乓RAM,要进行编码的不同码块以乒乓缓存机制缓存在乒乓RAM中。
5、根据权利要求1所述的方法,其特征在于,进一步包括:RAM缓存的数据还有N个比特就满时,向前级模块发送暂停指令暂停前级模块的数据输出,并使前级收到指令后还可继续发送N个比特。
6、根据权利要求1所述的方法,其特征在于,在码块内所有比特编码结束后的尾比特生成步骤包括启动尾比特生成的步骤,启动尾比特生成的步骤为:记录所编码的比特的个数,当所述个数到达码块长度时,启动尾比特生成步骤。
7、一种TURBO编码装置,包括:计算系统位及第一分量编码的第一计算模块、计算第二分量编码的第二计算模块,其特征在于,还包括:
比特计数器,用于记录当前编码的比特在其码块中的位数;
交织地址存储器,存储有交织矩阵;
RAM,用于缓存要编码的码块;
比特计数器输出端连接到交织地址存储器读地址输入端,还连接到二路选择器的一输入端;交织地址存储器读数据输出端连接到所述二路选择器的另一输入端;
所述二路选择器输出端连接至所述RAM读地址输入端;所述RAM读数据输出端分别连接至第一计算模块、第二计算模块的输入端;
在进行各个比特编码时,比特计数器输出的每个计数值维持三拍时钟周期;在第一拍,二路选择器将比特计数器输出的数据传送到交织地址存储器、在第二拍第三拍,将比特计数器输出的数据传送到乒乓RAM,将交织地址存储器在第四拍输出的数据传送到乒乓RAM;乒乓RAM在第五、六拍输出的数据由第一计算模块接收处理生成系统位和第一校验位、在第七拍输出的数据由第二计算模块接收处理生成第二校验位。
8、根据权利要求7所述的装置,其特征在于,所述RAM为乒乓RAM。
9、根据权利要求8所述的装置,其特征在于,所述乒乓RAM为8个比特位宽,640字节深度,依靠高位地址区分乒乓的RAM。
10、根据权利要求9所述的装置,其特征在于,所述乒乓RAM还包括连接乒乓RAM的读、写控制电路;所述读控制电路包括:
二路选择器,两路输入端分别接外部写地址高10位信号、外部写地址高10位累加640后的信号,输出端作为写地址信号输出给乒乓RAM;
译码器,输入端接外部写地址低3位信号,输出端作为写地址信号输出给8位寄存器组;8位寄存器组还接外部写数据信号,输出端作为写数据信号输出给乒乓RAM;
所述写控制电路包括:
二路选择器,两路输入端分别接外部读地址高10位信号、外部读地址高10位累加640后的信号,输出端作为读地址信号输出给乒乓RAM;
八路选择器,输入端连接乒乓RAM输出端,并接收读地址信号低3位的控制输出数据。
11、一种TURBO编码方法,其特征在于,对应的编码电路包括:
计算系统位及第一分量编码的第一计算模块、计算第二分量编码的第二计算模块;用于记录当前编码的比特在其码块中的位数的比特计数器;存储有交织矩阵的交织地址存储器;缓存要编码码块的RAM;
比特计数器输出端连接到交织地址存储器读地址端,还连接到二路选择器的一输入端;交织地址存储器读数据输出端连接到二路选择器的另一输入端;二路选择器输出端连接至所述乒乓RAM读地址端;乒乓RAM读数据输出端连接至第一计算模块、第二计算模块的输入端;
所述编码方法包括:码块内的每个比特的编码步骤、在码块内所有比特编码结束后的尾比特生成步骤;每个比特编码步骤包括:
比特计数器依次连续输出的每个计数值维持三拍时钟周期;
在第一拍,二路选择器将比特计数器输出的数据作为读指令传送到交织地址存储器,在第二拍第三拍,将比特计数器输出的数据作为读指令传送到RAM,并将交织地址存储器在第四拍输出的数据作为读指令传送到RAM;
乒乓RAM在第五、六拍输出的数据由第一计算模块接收处理生成系统位和第一校验位、在第七拍输出的数据由第二计算模块接收处理生成第二校验位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100691119A CN100426681C (zh) | 2005-05-10 | 2005-05-10 | Turbo编码方法及编码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100691119A CN100426681C (zh) | 2005-05-10 | 2005-05-10 | Turbo编码方法及编码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1862972A CN1862972A (zh) | 2006-11-15 |
CN100426681C true CN100426681C (zh) | 2008-10-15 |
Family
ID=37390315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100691119A Expired - Fee Related CN100426681C (zh) | 2005-05-10 | 2005-05-10 | Turbo编码方法及编码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100426681C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060374B (zh) * | 2007-04-11 | 2011-04-06 | 中兴通讯股份有限公司 | Turbo编码流水处理装置及方法 |
CN101409599B (zh) * | 2007-10-11 | 2011-07-13 | 电信科学技术研究院 | 一种Turbo码译码装置及方法 |
CN101188429B (zh) * | 2007-12-24 | 2011-11-16 | 北京创毅视讯科技有限公司 | 一种比特交织器和进行比特交织的方法 |
CN101924566B (zh) * | 2009-06-11 | 2013-01-16 | 中兴通讯股份有限公司 | 用于长期演进的Turbo编码方法和Turbo编码器 |
CN101964692B (zh) * | 2009-07-21 | 2014-05-28 | 中兴通讯股份有限公司 | 一种基于lte的turbo编码方法及系统 |
CN102111163B (zh) * | 2009-12-25 | 2014-03-19 | 中兴通讯股份有限公司 | Turbo编码器及编码方法 |
CN110333827B (zh) * | 2019-07-11 | 2023-08-08 | 山东浪潮科学研究院有限公司 | 一种数据加载装置和数据加载方法 |
CN114641058B (zh) * | 2022-03-29 | 2024-01-26 | 北京融为科技有限公司 | 一种适用于tpc编码的速率匹配系统 |
CN114978420B (zh) * | 2022-05-05 | 2023-05-16 | 重庆邮电大学 | 一种基于有限状态机的数字分集拷贝编码器及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001086008A (ja) * | 1999-09-16 | 2001-03-30 | Matsushita Electric Ind Co Ltd | ターボ符号復号装置およびこれを用いた受信装置 |
CN1307432A (zh) * | 2000-01-24 | 2001-08-08 | 华为技术有限公司 | 用于Turbo码的解码方法和解码器 |
CN1328384A (zh) * | 2001-01-18 | 2001-12-26 | 深圳市中兴集成电路设计有限责任公司 | Turbo译码器及其实现方法 |
CN1335684A (zh) * | 2000-07-25 | 2002-02-13 | 华为技术有限公司 | 一种高速Turbo码解码器 |
EP1276267A2 (en) * | 2001-07-12 | 2003-01-15 | Samsung Electronics Co., Ltd. | Hybrid automatic repeat-request system and method |
US20040010743A1 (en) * | 2002-07-11 | 2004-01-15 | Lee Jae Hong | Turbo encoded hybrid automatic repeat request system and error detection method |
-
2005
- 2005-05-10 CN CNB2005100691119A patent/CN100426681C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001086008A (ja) * | 1999-09-16 | 2001-03-30 | Matsushita Electric Ind Co Ltd | ターボ符号復号装置およびこれを用いた受信装置 |
CN1307432A (zh) * | 2000-01-24 | 2001-08-08 | 华为技术有限公司 | 用于Turbo码的解码方法和解码器 |
CN1335684A (zh) * | 2000-07-25 | 2002-02-13 | 华为技术有限公司 | 一种高速Turbo码解码器 |
CN1328384A (zh) * | 2001-01-18 | 2001-12-26 | 深圳市中兴集成电路设计有限责任公司 | Turbo译码器及其实现方法 |
EP1276267A2 (en) * | 2001-07-12 | 2003-01-15 | Samsung Electronics Co., Ltd. | Hybrid automatic repeat-request system and method |
US20040010743A1 (en) * | 2002-07-11 | 2004-01-15 | Lee Jae Hong | Turbo encoded hybrid automatic repeat request system and error detection method |
Also Published As
Publication number | Publication date |
---|---|
CN1862972A (zh) | 2006-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100426681C (zh) | Turbo编码方法及编码装置 | |
CN102694554B (zh) | 数据压缩设备、其操作方法以及包括该设备的数据处理装置 | |
CN1078798C (zh) | Mpeg2传送译码器 | |
CN101800619B (zh) | 一种基于块交织的交织或解交织方法及其装置 | |
CN101833424A (zh) | 基于fpga的高速存储与传输装置 | |
CN102176750B (zh) | 高性能自适应二进制算术编码器 | |
CN202931289U (zh) | 一种硬件lz77压缩实现系统 | |
CN103023509A (zh) | 一种硬件lz77压缩实现系统及其实现方法 | |
CN103427850B (zh) | 多模维特比解码装置及其解码方法 | |
CN1708948A (zh) | 数字基带系统 | |
CN101540654A (zh) | 一种交织速率匹配和解交织解速率匹配方法 | |
CN1513135A (zh) | 在每个总线周期中可读取和/或写入可选数目的数据字的先进先出缓冲区 | |
CN103095305A (zh) | 一种硬件lz77的压缩实现系统及方法 | |
CN101692647A (zh) | 路由器中采用IPv6头封装IPv4包的隧道转发系统 | |
CN110178126A (zh) | 使用片上存储器进行总线编码 | |
CN107801044B (zh) | 后向适应装置与相关方法 | |
CN102414991B (zh) | 用于解码器的数据重排 | |
CN102111163B (zh) | Turbo编码器及编码方法 | |
CN104240747A (zh) | 一种多媒体数据获取的方法及装置 | |
CN104486033B (zh) | 一种基于c‑ran平台的下行多模信道编码系统及方法 | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN101154957B (zh) | Turbo码交织器及交织地址传输方法 | |
CN105187162B (zh) | 一种多粒度并行解速率匹配方法和装置 | |
CN101771497A (zh) | 信号传输方法和装置 | |
CN201918981U (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: 20081015 Termination date: 20150510 |
|
EXPY | Termination of patent right or utility model |