RU2549134C1 - Device for decoding ldpc codes - Google Patents
Device for decoding ldpc codes Download PDFInfo
- Publication number
- RU2549134C1 RU2549134C1 RU2013145265/08A RU2013145265A RU2549134C1 RU 2549134 C1 RU2549134 C1 RU 2549134C1 RU 2013145265/08 A RU2013145265/08 A RU 2013145265/08A RU 2013145265 A RU2013145265 A RU 2013145265A RU 2549134 C1 RU2549134 C1 RU 2549134C1
- Authority
- RU
- Russia
- Prior art keywords
- inputs
- input
- outputs
- switch
- output
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Logic Circuits (AREA)
Abstract
Description
Изобретение относится к системам телекоммуникаций и вычислительной техники и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок.The invention relates to telecommunication systems and computer technology and may find application in devices for receiving information from a transmission channel or reproducing information with a high level of errors.
Известно устройство декодирования LDPC-кодов (см. патент 7181676 США. МПК7 H03M 13/45. Layered decoding approach for low density parity check (LDPC) codes / Dale E. Hocevar - заявлено 11.02.2005 №11/056755; опубл. 20.02.2007), содержащее: память с произвольным доступом, сумматоры, блоки обновления проверок, блоки обновления символов, блок прямых перестановок, блок обратных перестановок.A known device for decoding LDPC codes (see US patent 7181676. IPC 7 H03M 13/45. Layered decoding approach for low density parity check (LDPC) codes / Dale E. Hocevar - claimed 11.02.2005 No. 11/056755; publ. 20.02 .2007), containing: random access memory, adders, check update blocks, symbol update blocks, direct permutation block, reverse permutation block.
Известное устройство реализует алгоритм итеративного декодирования по слоям, что позволяет улучшить сходимость алгоритма.The known device implements an iterative decoding algorithm in layers, which allows to improve the convergence of the algorithm.
Недостаток устройства - относительно высокая вычислительная сложность используемого алгоритма, что ограничивает его применение.The disadvantage of this device is the relatively high computational complexity of the algorithm used, which limits its application.
Наиболее близким по технической сущности к заявляемому изобретению является выбранное в качестве прототипа устройство декодирования LDPC-кодов (см. патент 2005/0283707 США. МПК7 H03M 13/00. LDPC decoder for decoding a low-density parity check (LDPC) codewords / Eran Sharon, Simon Litsyn - заявлено 18.02.2005 №11/061232; опубл. 22.12.2005), содержащее: два блока памяти с произвольным доступом, процессоры проверочных нод, схему коммутации, постоянное запоминающее устройство, хранящее структуру графа, блок проверки сходимости.The closest in technical essence to the claimed invention is a prototype device for decoding LDPC codes (see US 2005/0283707. IPC 7 H03M 13/00. LDPC decoder for decoding a low density parity check (LDPC) codewords / Eran Sharon, Simon Litsyn - announced 02/18/2005 No. 11/061232; publ. 12/22/2005), comprising: two random access memory blocks, test node processors, a switching circuit, read-only memory that stores the graph structure, a convergence check block.
Устройство-прототип выполняет процедуру последовательного декодирования LDPC-кодов, исправляющую большее число ошибок.The prototype device performs the sequential decoding of LDPC codes, correcting a larger number of errors.
Недостатком прототипа можно считать относительно большую вычислительную сложность алгоритма декодирования.The disadvantage of the prototype can be considered relatively large computational complexity of the decoding algorithm.
Технической задачей изобретения является уменьшение вычислительной сложности используемого алгоритма декодирования, обеспечивающее меньшие аппаратные затраты и более высокую пропускную способность декодера.An object of the invention is to reduce the computational complexity of the decoding algorithm used, which provides lower hardware costs and a higher decoder throughput.
Поставленная техническая задача решается тем, что в устройство декодирования LDPC-кодов, содержащее первый и второй блоки памяти, согласно изобретению введены третий блок памяти, арифметическое устройство, первый и второй стеки, первый-пятый счетчики, первый регистр-защелка, T-триггер, первый-шестой коммутаторы, схема сравнения кодов, первый и второй элементы И, первый сумматор, причем вторые входы шестого коммутатора являются входами устройства декодирования LDPC-кодов, выходы шестого коммутатора соединены с входами данных первого блока памяти, выходы первого блока памяти соединены с входами данных первого стека, с первыми входами данных арифметического устройства и вторыми входами схемы сравнения кодов, выходы первого стека соединены со вторыми входами данных арифметического устройства, выходы арифметического устройства соединены с первыми входами шестого коммутатора и третьими входами устройства управления, первый выход схемы сравнения кодов соединен с первым входом первого логического элемента И, второй выход схемы сравнения кодов соединен с первым входом второго логического элемента И, выход первого логического элемента И соединен со входом декремента пятого счетчика и T-входом T-триггера, выход второго логического элемента И соединен со входами записи первого и второго стеков и первым входом управления арифметического устройства, выходы пятого счетчика соединены с младшими разрядами первых входов первого коммутатора и первыми входами устройства управления, выход T-триггера соединен со старшим разрядом первых входов первого коммутатора, третьим входом управления арифметического устройства и вторым входом устройства управления, выходы первого коммутатора соединены с входами данных второго блока памяти, младшие разряды выходов второго блока памяти соединены с входами данных пятого счетчика, старший разряд выходов второго блока памяти соединен с входом данных T-триггера, выходы второго стека соединены со вторыми входами второго коммутатора и вторыми входами пятого коммутатора, выходы второго коммутатора соединены с входами данных третьего блока памяти, выходы третьего блока памяти соединены с входами данных первого регистра-защелки, выходы первого регистра-защелки соединены с входами данных второго стека и третьими входами пятого коммутатора, выходы пятого коммутатора соединены с адресными входами первого блока памяти, выходы первого счетчика соединены со вторыми входами третьего коммутатора, выходы второго счетчика соединены с первыми входами третьего коммутатора, выходы третьего счетчика соединены со вторыми входами четвертого коммутатора, выходы четвертого счетчика соединены с третьими входами четвертого коммутатора и вторыми входами первого сумматора, выходы третьего коммутатора соединены с адресными входами второго блока памяти, выходы четвертого коммутатора соединены с адресными входами третьего блока памяти, выходы первого сумматора соединены с входами данных четвертого счетчика, первые выходы устройства управления соединены с первыми входами схемы сравнения кодов, второй выход устройства управления соединен с входами чтения первого и второго стеков и вторым входом управления арифметического устройства, третий выход устройства управления соединен со вторыми входами первого и второго логических элементов И, четвертые выходы устройства управления соединены со вторыми входами первого коммутатора, пятый выход устройства управления соединен с входом управления первого коммутатора, шестой выход устройства управления соединен с входом сброса пятого счетчика, седьмые выходы устройства управления соединены с третьими входами третьего коммутатора, восьмые выходы устройства управления соединены с третьими входами шестого коммутатора, девятые выходы устройства управления соединены с четвертыми входами шестого коммутатора, десятый выход устройства управления соединен с входом сброса первого счетчика, одиннадцатые выходы устройства управления соединены с входами управления шестого коммутатора, двенадцатый выход устройства управления соединен с входом инкремента первого счетчика, тринадцатые выходы устройства управления соединены с входами управления третьего коммутатора, четырнадцатый выход устройства управления соединен с входом сброса второго счетчика, пятнадцатый выход устройства управления соединен с входом записи второго блока памяти, шестнадцатый выход устройства управления соединен с входом инкремента второго счетчика, семнадцатый выход устройства управления соединен с входом записи первого блока памяти, восемнадцатые выходы устройства управления соединены с первыми входами первого сумматора, девятнадцатый выход устройства управления соединен с входом загрузки четвертого счетчика, двадцатый выход устройства управления соединен с входом сброса четвертого счетчика, двадцать первый выход устройства управления соединен с входом инкремента третьего счетчика, двадцать второй выход устройства управления соединен с входом сброса третьего счетчика, двадцать третьи выходы устройства управления соединены с первыми входами четвертого коммутатора, двадцать четвертые выходы устройства управления соединены с входами управления четвертого коммутатора, двадцать пятые выходы устройства управления соединены с входами управления пятого коммутатора, двадцать шестые выходы устройства управления соединены с первыми входами пятого коммутатора, двадцать седьмой выход устройства управления соединен с входом управления второго коммутатора, двадцать восьмые выходы устройства управления соединены с первыми входами второго коммутатора, двадцать девятый выход устройства управления соединен с входом записи третьего блока памяти, тридцатый выход устройства управления соединен с входом загрузки первого регистра-защелки, тридцать первый выход устройства управления соединен с входами загрузок пятого счетчика и T-триггера, тридцать второй выход устройства управления соединен с входом сброса арифметического устройства, старший (знаковый) разряд выходов первого блока памяти является выходом устройства декодирования LDPC-кодов, причем арифметическое устройство содержит третий стек, первый и второй блоки вычисления функции g, шестой счетчик, второй регистр-защелку, первый и второй D-триггера, седьмой-девятый коммутаторы, второй сумматор, дешифратор, первый и второй элементы ИЛИ, третий-шестой элементы И, схему инверсии знака, причем первые входы седьмого коммутатора являются первыми входами данных арифметического устройства, вторые входы седьмого коммутатора соединены со вторыми входами второго сумматора и являются вторыми входами данных арифметического устройства, выходы седьмого коммутатора соединены со вторыми входами первого блока вычисления функции g и вторыми входами восьмого коммутатора, выходы первого блока вычисления функции g соединены с первыми входами восьмого коммутатора, выходы восьмого коммутатора соединены с входами данных второго регистра-защелки, выходы второго регистра-защелки соединены с первыми входами первого блока вычисления функции g, первыми входами второго блока вычисления функции g, первыми входами девятого мультиплексора и входами данных третьего стека, выходы второго блока вычисления функции g соединены со вторыми входами девятого коммутатора, выходы девятого коммутатора соединены с входами схемы инверсии знака, выходы схемы инверсии знака соединены с первыми входами второго сумматора, выходы третьего стека соединены со вторыми входами второго блока вычисления функции g и третьими входами девятого коммутатора, вход управления схемы инверсии знака является третьим входом управления арифметического устройства, вход инкремента шестого счетчика соединен с D-входом второго D-триггера, первым входом второго логического элемента ИЛИ, первым входом третьего логического элемента И и является первым входом управления арифметического устройства, вход декремента шестого счетчика соединен с D-входом первого D-триггера, вторым входом второго логического элемента ИЛИ, первым входом шестого логического элемента И, вторым входом четвертого логического элемента И, вторым входом пятого логического элемента И, входом управления седьмого коммутатора, входом чтения третьего стека и является вторым входом управления арифметического устройства, вход сброса второго регистра-защелки соединен с входом сброса шестого счетчика, входом сброса первого D-триггера, входом сброса второго D-триггера и является входом сброса арифметического устройства, выходы шестого счетчика соединены с входами дешифратора, первый выход дешифратора соединен с вторым входом третьего логического элемента И, второй выход дешифратора соединен с первым входом четвертого логического элемента И, выход третьего логического элемента И соединен с первым входом первого логического элемента ИЛИ, выход первого логического элемента ИЛИ соединен со входом управления восьмого коммутатора, выход второго логического элемента ИЛИ соединен с входом загрузки второго регистра-защелки, выход первого D-триггера соединен со вторым входом шестого логического элемента И, выход второго D-триггера соединен с первым входом пятого логического элемента И, выход пятого логического элемента И соединен со входом записи третьего стека, выход четвертого логического элемента И соединен со первым входом управления девятого коммутатора, выход шестого логического элемента И соединен со вторым входом управления девятого коммутатора и вторым входом первого логического элемента ИЛИ, выходы второго сумматора являются выходами арифметического устройства.The stated technical problem is solved in that in the device for decoding LDPC codes containing the first and second memory blocks, according to the invention, a third memory block, an arithmetic device, first and second stacks, first to fifth counters, a first register latch, a T-trigger, first to sixth switches, code comparison circuit, first and second AND elements, first adder, wherein the second inputs of the sixth switch are inputs of the LDPC code decoding device, the outputs of the sixth switch are connected to the data inputs of the first block The outputs of the first memory block are connected to the data inputs of the first stack, to the first data inputs of the arithmetic device and the second inputs of the code comparison circuit, the outputs of the first stack are connected to the second data inputs of the arithmetic device, the outputs of the arithmetic device are connected to the first inputs of the sixth switch and the third inputs of the device control, the first output of the code comparison circuit is connected to the first input of the first logical element AND, the second output of the code comparison circuit is connected to the first input of the second of the logical element AND, the output of the first logical element And is connected to the decrement input of the fifth counter and the T-input of the T-trigger, the output of the second logic element And is connected to the recording inputs of the first and second stacks and the first control input of the arithmetic device, the outputs of the fifth counter are connected to the least significant bits the first inputs of the first switch and the first inputs of the control device, the output of the T-trigger is connected to the senior bit of the first inputs of the first switch, the third control input of the arithmetic device and in by the input of the control device, the outputs of the first switch are connected to the data inputs of the second memory block, the least significant bits of the outputs of the second memory block are connected to the data inputs of the fifth counter, the highest bit of the outputs of the second memory block is connected to the data input of the T-trigger, the outputs of the second stack are connected to the second inputs the second switch and the second inputs of the fifth switch, the outputs of the second switch are connected to the data inputs of the third memory block, the outputs of the third memory block are connected to the data inputs of the first register latches, the outputs of the first register-latches are connected to the data inputs of the second stack and the third inputs of the fifth switch, the outputs of the fifth switch are connected to the address inputs of the first memory block, the outputs of the first counter are connected to the second inputs of the third switch, the outputs of the second counter are connected to the first inputs of the third switch , the outputs of the third counter are connected to the second inputs of the fourth switch, the outputs of the fourth counter are connected to the third inputs of the fourth switch and second inputs of the first sum the torus, the outputs of the third switch are connected to the address inputs of the second memory block, the outputs of the fourth switch are connected to the address inputs of the third memory block, the outputs of the first adder are connected to the data inputs of the fourth counter, the first outputs of the control device are connected to the first inputs of the code comparison circuit, the second output of the control device connected to the reading inputs of the first and second stacks and the second control input of the arithmetic device, the third output of the control device is connected to the second inputs of the of the second and second logical elements AND, the fourth outputs of the control device are connected to the second inputs of the first switch, the fifth output of the control device is connected to the control input of the first switch, the sixth output of the control device is connected to the reset input of the fifth counter, the seventh outputs of the control device are connected to the third inputs of the third switch , the eighth outputs of the control device are connected to the third inputs of the sixth switch, the ninth outputs of the control device are connected to the fourth inputs of of that switch, the tenth output of the control device is connected to the reset input of the first counter, the eleventh outputs of the control device are connected to the control inputs of the sixth switch, the twelfth output of the control device is connected to the increment input of the first counter, the thirteenth outputs of the control device are connected to the control inputs of the third switch, the fourteenth output of the device control is connected to the reset input of the second counter, the fifteenth output of the control device is connected to the recording input of the second block and the memory, the sixteenth output of the control device is connected to the increment input of the second counter, the seventeenth output of the control device is connected to the recording input of the first memory block, the eighteenth outputs of the control device are connected to the first inputs of the first adder, the nineteenth output of the control device is connected to the load input of the fourth counter, the twentieth output the control device is connected to the reset input of the fourth counter, the twenty-first output of the control device is connected to the input of the increment of the third count sensor, twenty-second output of the control device is connected to the reset input of the third counter, twenty-third outputs of the control device are connected to the first inputs of the fourth switch, twenty-fourth outputs of the control device are connected to the control inputs of the fourth switch, twenty-fifth outputs of the control device are connected to the control inputs of the fifth switch, the twenty-sixth outputs of the control device are connected to the first inputs of the fifth switch, the twenty-seventh output of the control device is connected connected to the control input of the second switch, the twenty-eighth outputs of the control device are connected to the first inputs of the second switch, the twenty-ninth output of the control device is connected to the recording input of the third memory block, the thirtieth output of the control device is connected to the boot input of the first register-latch, the thirty-first output of the control device connected to the inputs of the downloads of the fifth counter and T-flip-flop, the thirty-second output of the control device is connected to the reset input of the arithmetic device, the oldest (sign (i) the discharge bit of the outputs of the first memory block is the output of the LDPC code decoding device, the arithmetic device comprising a third stack, first and second blocks for calculating the function g, a sixth counter, a second register-latch, the first and second D-flip-flops, seventh-ninth switches, second adder, decoder, first and second elements OR, third to sixth elements AND, sign inversion circuit, the first inputs of the seventh switch being the first data inputs of an arithmetic device, the second inputs of the seventh switch connected to the second inputs of the second adder are the second data inputs of the arithmetic device, the outputs of the seventh switch are connected to the second inputs of the first unit of calculation of the function g and the second inputs of the eighth switch, the outputs of the first unit of the calculation of the function g are connected to the first inputs of the eighth switch, the outputs of the eighth switch are connected to the data inputs the second register-latch, the outputs of the second register-latch are connected to the first inputs of the first unit of calculation of function g, the first inputs of the second unit of calculation functions g, the first inputs of the ninth multiplexer and data inputs of the third stack, the outputs of the second block of calculation of the function g are connected to the second inputs of the ninth switch, the outputs of the ninth switch are connected to the inputs of the sign inversion circuit, the outputs of the sign inversion circuit are connected to the first inputs of the second adder, the outputs of the third stack connected to the second inputs of the second unit of calculation of the function g and the third inputs of the ninth switch, the control input of the sign inversion circuit is the third control input of the arithmetic three, the input of the increment of the sixth counter is connected to the D-input of the second D-trigger, the first input of the second logical element OR, the first input of the third logical element And is the first control input of the arithmetic device, the input of the decrement of the sixth counter is connected to the D-input of the first D-trigger , the second input of the second logical element OR, the first input of the sixth logical element And, the second input of the fourth logical element And, the second input of the fifth logical element And, the control input of the seventh switch, the read input of the third stack and is the second control input of the arithmetic device, the reset input of the second latch register is connected to the reset input of the sixth counter, the reset input of the first D-trigger, the reset input of the second D-trigger and is the reset input of the arithmetic device, the outputs of the sixth counter are connected to the inputs of the decoder, the first output of the decoder is connected to the second input of the third logical element And, the second output of the decoder is connected to the first input of the fourth logical element And, the output of the third The AND gate is connected to the first input of the first OR gate, the output of the first OR gate is connected to the control input of the eighth switch, the output of the second OR gate is connected to the load input of the second latch register, the output of the first D-trigger is connected to the second input of the sixth logical gate And, the output of the second D-trigger is connected to the first input of the fifth logical element And, the output of the fifth logical element And is connected to the recording input of the third stack, the output of the fourth logical element And connected to the first control input of the ninth switch, the output of the sixth logical element AND is connected to the second control input of the ninth switch and the second input of the first logical OR, the outputs of the second adder are the outputs of the arithmetic device.
Взаимодействие введенных функциональных блоков обеспечивает последовательное уточнение оценок символов слов LDPC-кода с одновременным упрощением проверочных уравнений.The interaction of the introduced functional blocks provides a consistent refinement of the word character estimates of the LDPC code while simplifying the verification equations.
Сущность изобретения состоит в том, что для уменьшения вычислительной сложности используемого итеративного алгоритма декодирования на каждой его итерации из проверочных уравнений LDPC-кода исключаются символы кодового слова, надежность которых выше заданного порога. Проверочные уравнения в процессе декодирования упрощаются и вырождаются. Вычислительная сложность каждой последующей итерации уменьшается.The essence of the invention lies in the fact that to reduce the computational complexity of the iterative decoding algorithm used at each iteration, codeword symbols whose reliability is higher than a given threshold are excluded from the LDPC code verification equations. The verification equations in the decoding process are simplified and degenerate. The computational complexity of each subsequent iteration is reduced.
На фиг.1 приведена функциональная схема предлагаемого устройства декодирования LDPC-кодов; на фиг.2 - функциональная схема арифметического устройства; на фиг.3 - функциональная схема стека.Figure 1 shows the functional diagram of the proposed device for decoding LDPC codes; figure 2 is a functional diagram of an arithmetic device; figure 3 is a functional diagram of the stack.
В описании устройства и на чертежах используются следующие обозначения:In the description of the device and in the drawings, the following notation is used:
АУ - арифметическое устройство;AU - arithmetic device;
ПУ - проверочное уравнение;PU - verification equation;
УУ - устройство управления;UU - control device;
Cnt - счетчик;Cnt - counter;
Mux - коммутатор (мультиплексор);Mux - switch (multiplexer);
DC - дешифратор;DC - decoder;
LLR - Log likelihood ratio (логарифмическое отношение правдоподобия);LLR - Log likelihood ratio (log-likelihood ratio);
RAM - память с произвольным доступом;RAM - random access memory;
Rg - регистр;Rg is the register;
y1-y7 - управляющие сигналы;y 1 -y 7 - control signals;
n - количество символов в кодовом слове LDPC-кода;n is the number of characters in the codeword of the LDPC code;
r - число проверочных уравнений в LDPC-коде.r is the number of verification equations in the LDPC code.
Устройство декодирования LDPC-кодов (фиг.1) содержит устройство управления 1, первый-третий блоки памяти 2-4; арифметическое устройство 5; первый и второй стеки 6, 7; первый-пятый счетчики 8-10, 11.1, 12; первый регистр-защелку 13; T-триггер 14; первый-шестой коммутаторы 15-20; схему сравнения кодов 21; первый и второй элементы И 22, 23, первый сумматор 11.2.A device for decoding LDPC codes (FIG. 1) comprises a
Вторые входы шестого коммутатора 20 являются входами устройства декодирования LDPC-кодов, на которые подаются входные данные (DIn).The second inputs of the sixth switch 20 are the inputs of the device decoding LDPC codes, which are fed with input data (DIn).
Выходы шестого коммутатора 20 соединены с входами данных первого блока памяти 2. Выходы первого блока памяти 2 соединены с входами данных первого стека 6, с первыми входами данных арифметического устройства 5 и вторыми входами схемы сравнения кодов 21. Выходы первого стека 6 соединены со вторыми входами данных арифметического устройства 5. Выходы арифметического устройства 5 соединены с первыми входами шестого коммутатора 20 и третьими входами устройства управления 1. Первый выход схемы сравнения кодов 21 соединен с первым входом первого логического элемента И 22. Второй выход схемы сравнения кодов 21 соединен с первым входом второго логического элемента И 23. Выход первого логического элемента И 22 соединен со входом декремента пятого счетчика 12 и T-входом T-триггера 14. Выход второго логического элемента И 23 соединен со входами записи первого и второго стеков 6 и 7 и первым входом управления арифметического устройства 5. Выходы пятого счетчика 12 соединены с младшими разрядами первых входов первого коммутатора 15 и первыми входами устройства управления 1. Выход T-триггера 14 соединен со старшим разрядом первых входов первого коммутатора 15, третьим входом управления арифметического устройства 5 и вторым входом устройства управления 1. Выходы первого коммутатора 15 соединены с входами данных второго блока памяти 3. Младшие разряды выходов второго блока памяти 3 соединены с входами данных пятого счетчика 12. Старший разряд выходов второго блока памяти 3 соединен с входом данных T-триггера 14. Выходы второго стека 7 соединены со вторыми входами второго коммутатора 16 и вторыми входами пятого коммутатора 19. Выходы второго коммутатора 16 соединены с входами данных третьего блока памяти 4. Выходы третьего блока памяти 4 соединены с входами данных первого регистра-защелки 13. Выходы первого регистра-защелки 13 соединены с входами данных второго стека 7 и третьими входами пятого коммутатора 19. Выходы пятого коммутатора 19 соединены с адресными входами первого блока памяти 2. Выходы первого счетчика 8 соединены со вторыми входами третьего коммутатора 17. Выходы второго счетчика 9 соединены со первыми входами третьего коммутатора 17. Выходы третьего счетчика 10 соединены со вторыми входами четвертого коммутатора 18. Выходы четвертого счетчика 11.1 соединены с третьими входами четвертого коммутатора 18 и вторыми входами первого сумматора 11.2. Выходы третьего коммутатора 17 соединены с адресными входами второго блока памяти 3. Выходы четвертого коммутатора 18 соединены с адресными входами третьего блока памяти 4. Выходы первого сумматора 11.2 соединены с входами данных четвертого счетчика 11.1.The outputs of the sixth switch 20 are connected to the data inputs of the first memory block 2. The outputs of the first memory block 2 are connected to the data inputs of the first stack 6, with the first data inputs of the arithmetic device 5 and the second inputs of the code comparison circuit 21. The outputs of the first stack 6 are connected with the second data inputs arithmetic device 5. The outputs of the arithmetic device 5 are connected to the first inputs of the sixth switch 20 and the third inputs of the
Первые выходы устройства управления 1 соединены с первыми входами схемы сравнения кодов 21. Второй выход устройства управления 1 соединен с входами чтения первого и второго стеков 6 и 7 и вторым входом управления арифметического устройства 5. Третий выход устройства управления 1 соединен со вторыми входами логических элементов И 22 и 23. Четвертые выходы устройства управления 1 соединены со вторыми входами первого коммутатора 15. Пятый выход устройства управления 1 соединен с входом управления первого коммутатора 15. Шестой выход устройства управления 1 соединен с входом сброса пятого счетчика 12. Седьмые выходы устройства управления 1 соединены с третьими входами третьего коммутатора 17. Восьмые выходы устройства управления 1 соединены с третьими входами шестого коммутатора 20. Девятые выходы устройства управления 1 соединены с четвертыми входами шестого коммутатора 20. Десятый выход устройства управления 1 соединен с входом сброса первого счетчика 8. Одиннадцатые выходы устройства управления 1 соединены с входами управления шестого коммутатора 20. Двенадцатый выход устройства управления 1 соединен с входом инкремента первого счетчика 8. Тринадцатые выходы устройства управления 1 соединены с входами управления третьего коммутатора 17. Четырнадцатый выход устройства управления 1 соединен с входом сброса второго счетчика 9. Пятнадцатый выход устройства управления 1 соединен с входом записи второго блока памяти 3. Шестнадцатый выход устройства управления 1 соединен с входом инкремента второго счетчика 9. Семнадцатый выход устройства управления 1 соединен с входом записи первого блока памяти 2. Восемнадцатые выходы устройства управления 1 соединены с первыми входами первого сумматора 11.2. Девятнадцатый выход устройства управления 1 соединен с входом загрузки четвертого счетчика 11.1. Двадцатый выход устройства управления 1 соединен с входом сброса четвертого счетчика 11.1. Двадцать первый выход устройства управления 1 соединен с входом инкремента третьего счетчика 10. Двадцать второй выход устройства управления 1 соединен с входом сброса третьего счетчика 10. Двадцать третьи выходы устройства управления 1 соединены с первыми входами четвертого коммутатора 18. Двадцать четвертые выходы устройства управления 1 соединены с входами управления четвертого коммутатора 18. Двадцать пятые выходы устройства управления 1 соединены с входами управления пятого коммутатора 19. Двадцать шестые выходы устройства управления 1 соединены с первыми входами пятого коммутатора 19. Двадцать седьмой выход устройства управления 1 соединен с входом управления второго коммутатора 16. Двадцать восьмые выходы устройства управления 1 соединены с первыми входами второго коммутатора 16. Двадцать девятый выход устройства управления 1 соединен с входом записи третьего блока памяти 4. Тридцатый выход устройства управления 1 соединен с входом загрузки первого регистра-защелки 13. Тридцать первый выход устройства управления 1 соединен с входами загрузок пятого счетчика 12 и T-триггера 14. Тридцать второй выход устройства управления 1 соединен с входом сброса арифметического устройства 5.The first outputs of the
Старший (знаковый) разряд выходов первого блока памяти 2 является выходом устройства декодирования LDPC-кодов (DOut).The senior (signed) bit of the outputs of the first memory block 2 is the output of the device for decoding LDPC codes (DOut).
Все триггеры, регистры, счетчики, используемые в устройстве декодирования LDPC-кодов, меняют свое состояние по окончанию тактового интервала в зависимости от управляющих сигналов. Тактовый сигнал на фигурах изобретения не показан, но его наличие подразумевается.All triggers, registers, counters used in the device for decoding LDPC codes change their state at the end of the clock interval, depending on the control signals. The clock signal in the figures of the invention is not shown, but its presence is implied.
Первый блок памяти 2 имеет емкость в 2n слов, каждое из которых содержит LLR одного символа кодового слова (n - длина кодового слова LDPC-кода).The first memory block 2 has a capacity of 2n words, each of which contains an LLR of one character of a codeword (n is the length of the codeword of the LDPC code).
Второй блок памяти 3 имеет емкость в r слов, каждое из которых содержит описание одного проверочного уравнения по четности LDPC-кода (r - число проверочных уравнений в LDPC-коде). Старший разряд слова описания содержит признак четности, который определяет разновидность проверочного уравнения. Если признак нулевой, осуществляется проверка по четности, если единичный - по нечетности. Остальные разряды слова описания содержат количество членов проверочного уравнения.The second memory block 3 has a capacity of r words, each of which contains a description of one parity equation in the LDPC code (r is the number of verification equations in the LDPC code). The most significant category of the description word contains the parity criterion, which determines the type of verification equation. If the sign is zero, a parity check is performed, if one is odd. The remaining bits of the description word contain the number of members of the verification equation.
Третий блок памяти 4 содержит номера символов кодового слова, входящих в проверочные уравнения. Номера символов одного проверочного уравнения хранятся в соседних словах, количество которых определяется описанием проверочного уравнения. Общее число слов третьего блока памяти 4 равняется суммарному числу единиц в проверочной матрице H LDPC-кода.The third block of memory 4 contains the symbol numbers of the codeword included in the verification equations. The symbol numbers of one verification equation are stored in adjacent words, the number of which is determined by the description of the verification equation. The total number of words of the third memory block 4 is equal to the total number of units in the check matrix H of the LDPC code.
При подаче логической единицы на первый вход управления девятого коммутатора 33 на его выходы передается содержимое его третьих входов. При подаче логической единицы на второй вход управления девятого коммутатора 33 на его выходы передается содержимое его первых входов. При подаче логических нулей на входы управления девятого коммутатора 33 на его выходы передается содержимое его вторых входов.When a logical unit is supplied to the first control input of the
Схема сравнения кодов 21 сравнивает значение LLR символа, подаваемое на его вторые входы, со значением порога Thres, подаваемого на его первые входы. Причем сначала находится модуль LLR. Если этот модуль больше порога или равен ему, на первом выходе схемы формируется логическая единица, в противном случае - логический ноль. На втором выходе схемы формируется сигнал инверсный к сигналу на первом выходе.The code comparison circuit 21 compares the LLR value of the symbol supplied to its second inputs with the value of the threshold Thres supplied to its first inputs. And at first the LLR module is located. If this module is greater than the threshold or equal to it, a logical unit is formed at the first output of the circuit, otherwise a logical zero. At the second output of the circuit, an inverse signal is generated to the signal at the first output.
Арифметическое устройство (фиг.2) содержит третий стек 24; первый и второй блоки вычисления функции g 25, 26; шестой счетчик 27; второй регистр-защелку 28; первый и второй D-триггера 29. 30; седьмой-девятый коммутаторы 31-33; второй сумматор 34; дешифратор 35; первый и второй элементы ИЛИ 36, 37, третий-шестой элементы И 38-41, схему инверсии знака 42.The arithmetic device (figure 2) contains a
Первые входы седьмого коммутатора 31 являются первыми входами данных арифметического устройства 5 (DI1). Вторые входы седьмого коммутатора 31 соединены со вторыми входами второго сумматора 34 и являются вторыми входами данных арифметического устройства 5 (DI2). Выходы седьмого коммутатора 31 соединены со вторыми входами первого блока вычисления функции g 25 и вторыми входами восьмого коммутатора 32. Выходы первого блока вычисления функции g 25 соединены с первыми входами восьмого коммутатора 32. Выходы восьмого коммутатора 32 соединены с входами данных второго регистра-защелки 28. Выходы второго регистра-защелки 28 соединены с первыми входами первого блока вычисления функции g 25, первыми входами второго блока вычисления функции g 26, первыми входами девятого мультиплексора 33 и входами данных третьего стека 24. Выходы второго блока вычисления функции g 26 соединены со вторыми входами девятого коммутатора 33. Выходы девятого коммутатора 33 соединены с входами схемы инверсии знака 42. Выходы схемы инверсии знака 42 соединены с первыми входами второго сумматора 34. Выходы третьего стека 24 соединены со вторыми входами второго блока вычисления функции g 26 и третьими входами девятого коммутатора 33.The first inputs of the
Вход управления схемы инверсии знака 42 является третьим входом управления арифметического устройства 5 (Par).The control input of the
Вход инкремента шестого счетчика 27 соединен с D-входом второго D-триггера 30, первым входом второго логического элемента ИЛИ 37, первым входом третьего логического элемента И 38, и является первым входом управления арифметического устройства 5 (Forward).The increment input of the
Вход декремента шестого счетчика 27 соединен с D-входом первого D-триггера 29, вторым входом второго логического элемента ИЛИ 37, первым входом шестого логического элемента И 41, вторым входом четвертого логического элемента И 39, вторым входом пятого логического элемента И 40, входом управления седьмого коммутатора 31, входом чтения третьего стека 24 и является вторым входом управления арифметического устройства 5 (Backward).The decrement counter input of the
Вход сброса второго регистра-защелки 28 соединен с входом сброса шестого счетчика 27, входом сброса первого D-триггера 29, входом сброса второго D-триггера 30 и является входом сброса арифметического устройства 5 (Reset).The reset input of the second register-
Выходы шестого счетчика 27 соединены с входами дешифратора 35. Первый выход дешифратора 35 соединен с вторым входом третьего логического элемента И 38. Второй выход дешифратора 35 соединен с первым входом четвертого логического элемента И 39. Выход третьего логического элемента И 38 соединен с первым входом первого логического элемента ИЛИ 36. Выход первого логического элемента ИЛИ 36 соединен со входом управления восьмого коммутатора 32. Выход второго логического элемента ИЛИ 37 соединен с входом загрузки второго регистра-защелки 28. Выход первого D-триггера 29 соединен со вторым входом шестого логического элемента И 41. Выход второго D-триггера 30 соединен с первым входом пятого логического элемента И 40. Выход пятого логического элемента И 40 соединен со входом записи третьего стека 24. Выход четвертого логического элемента И 39 соединен со первым входом управления девятого коммутатора 33. Выход шестого логического элемента И 41 соединен со вторым входом управления девятого коммутатора 33 и вторым входом первого логического элемента ИЛИ 36.The outputs of the
Выходы второго сумматора 34 являются выходами арифметического устройства 5 (DO).The outputs of the
Вторые входы пятого и шестого логических элементов И 40 и 41 являются инверсными.The second inputs of the fifth and sixth gates And 40 and 41 are inverse.
Коммутаторы, используемые в арифметическом устройстве 5, работают следующим образом.The switches used in the arithmetic device 5, operate as follows.
При подаче логической единицы на вход управления седьмого коммутатора 31 на его выходы передается содержимое его вторых входов. При подаче логического нуля на вход управления седьмого коммутатора 31 на его выходы передается содержимое его первых входов.When a logical unit is supplied to the control input of the
При подаче логической единицы на вход управления восьмого коммутатора 32 на его выходы передается содержимое его вторых входов. При подаче логического нуля на вход управления восьмого коммутатора 32 на его выходы передается содержимое его первых входов.When a logical unit is supplied to the control input of the
При подаче логической единицы на первый вход управления девятого коммутатора 33 на его выходы передается содержимое его третьих входов. При подаче логической единицы на второй вход управления девятого коммутатора 33 на его выходы передается содержимое его первых входов. При подаче логических нулей на входы управления девятого коммутатора 33 на его выходы передается содержимое его вторых входов.When a logical unit is supplied to the first control input of the
Блоки вычисления функции g 25, 26 (выражение для функции приведено ниже в виде формулы (2)) могут быть реализованы известным способом с использованием таблиц (LUT).Blocks for calculating the
Стек (фиг.3) содержит десятый - (x+9)-ой коммутаторы 43.1-43.x; третий - (x+2)-ой регистры-защелки 44.1-44.x; третий элемент ИЛИ 45, здесь x обозначает глубину стека (максимальное число хранимых в стеке слов).The stack (Fig. 3) contains the tenth - (x + 9) th switches 43.1-43.x; the third is (x + 2) -th latch registers 44.1-44.x; the third element is OR 45, here x denotes the depth of the stack (the maximum number of words stored on the stack).
По схеме, изображенной на фиг.3, реализованы все стеки, используемые в устройстве декодирования LDPC-кодов, (первый стек 6, второй стек 7, третий стек 24). Они отличаются только глубиной (параметр x) и количеством разрядов в запоминаемых словах.According to the scheme depicted in figure 3, all the stacks used in the device decoding LDPC codes (first stack 6, second stack 7, third stack 24) are implemented. They differ only in depth (parameter x) and the number of digits in the memorized words.
Первые входы десятого коммутатора 43.1 являются входами данных стека (DI).The first inputs of the tenth switch 43.1 are the data inputs of the stack (DI).
Выходы десятого коммутатора 43.1 соединены с входами данных третьего регистра-защелки 44.1. Выходы третьего регистра-защелки 44.1 соединены со первыми входами одиннадцатого коммутатора 43.2 и являются выходами стека (DO). Выходы (x+9)-го коммутатора 43.x соединены с входами данных (x+2)-го регистра-защелки 44.x. Выходы (x+2)-го регистра-защелки 44.x соединены со вторыми входами (x+8)-го коммутатора 43.x-1. На вторые входы (x+9)-го коммутатора 43.x подается константа - нулевое слово.The outputs of the tenth switch 43.1 are connected to the data inputs of the third register-latch 44.1. The outputs of the third register-latch 44.1 are connected to the first inputs of the eleventh switch 43.2 and are the outputs of the stack (DO). The outputs of the (x + 9) th switch 43.x are connected to the data inputs of the (x + 2) th register-latch 44.x. The outputs of the (x + 2) th register-latch 44.x are connected to the second inputs of the (x + 8) th switch 43.x-1. The second inputs of the (x + 9) th switch 43.x are supplied with a constant - a zero word.
Для значений i (i=2, … x-1): выходы (i+9)-го коммутатора 43.i соединены с входами данных (i+2)-го регистра-защелки 44.i; выходы (i+2)-го регистра-защелки 44.i соединены с первыми входами (i+10)-го коммутатора 43.i+1; и со вторыми входами (i+8)-го коммутатора 43.i-1.For the values of i (i = 2, ... x-1): the outputs of the (i + 9) th switch 43.i are connected to the data inputs of the (i + 2) th register-latch 44.i; the outputs of the (i + 2) -th register-latch 44.i are connected to the first inputs of the (i + 10) -th switch 43.i + 1; and with the second inputs of the (i + 8) -th switch 43.i-1.
Первый вход логического элемента ИЛИ 45 является входом чтения стека (R). Второй вход логического элемента ИЛИ 45 соединен со входами управления десятого - (x+9)-го коммутаторов 43.1-43.x и является входом записи стека (W). Выход логического элемента ИЛИ 45 соединен со входами загрузок третьего - (x+2)-го регистров-защелок 44.1-44.x.The first input of the
Стек работает следующим образом.The stack works as follows.
При подаче на вход записи стека (W) логической единицы на выходы всех коммутаторов 43.1-43.x передаются слова с их первых входов, при этом входы данных каждого следующего регистра-защелки логически подключаются к выходам предыдущих регистров-защелок (образуя сдвиговый регистр на x слов, реализующий сдвиг вниз), на вход регистра-защелки 44.1 подаются записываемые в стек данные (DO). Одновременно с помощью третьего логического элемента ИЛИ 45 на входы загрузок всех регистров-защелок 44.1-44.x подается логическая единица. По окончанию тактового интервала все регистры-защелки 44.1-44.x загружают слова, которые подаются на их входы. Таким образом, осуществляется сдвиг регистра стека в глубину с записью в вершину стека (регистр-защелку 44.1) слова, подаваемого на входы стека.When a logical unit of the stack entry (W) is fed to the input of the outputs of all switches 43.1-43.x, the words from their first inputs are transmitted, while the data inputs of each next latch register are logically connected to the outputs of the previous latch registers (forming a shift register by x words that implements a shift down), the data written to the stack (DO) are fed to the input of the register-latch 44.1. At the same time, using the third logical element OR 45, a logical unit is fed to the download inputs of all register-latches 44.1-44.x. At the end of the clock interval, all latch registers 44.1-44.x load the words that are fed to their inputs. Thus, the stack register is shifted in depth with writing to the top of the stack (register-latch 44.1) the words supplied to the inputs of the stack.
При подаче на вход чтения стека (R) логической единицы на выходы всех коммутаторов 43.1-43.x передаются слова с их вторых входов, при этом входы данных каждого предыдущего регистра-защелки логически подключаются к выходам следующих регистров-защелок (образуя сдвиговый регистр на x слов, реализующий сдвиг вверх), на вход регистра-защелки 44.x подается слово нулей). Одновременно с помощью третьего логического элемента ИЛИ 45 на входы загрузок всех регистров-защелок 44.1-44.x подается логическая единица. По окончанию тактового интервала все регистры-защелки 44.1-44.x загружают слова, которые подаются на их вход. Таким образом, осуществляется сдвиг регистра стека наверх с записью в вершину стека (регистр-защелку 44.1) ранее записанного в стек слова.When a logical unit is fed to the read (stack) input input to the outputs of all switches 43.1-43.x, the words from their second inputs are transmitted, while the data inputs of each previous latch register are logically connected to the outputs of the following latch registers (forming a shift register by x words that implements an upward shift), the word zeros is fed to the input of the register-latch 44.x). At the same time, using the third logical element OR 45, a logical unit is fed to the download inputs of all register-latches 44.1-44.x. At the end of the clock interval, all latch registers 44.1-44.x load the words that are fed to their input. Thus, the stack register is shifted upwards and written to the top of the stack (register-latch 44.1) of the word previously written onto the stack.
Чаще всего для декодирования LDPC-кодов используют алгоритм декодирования с итеративным распространением доверия (IBP, iterative belief-propagation), известный также как алгоритм sum-product и как алгоритм message-passing (см. Морелос-Сарагоса. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - М.: Техносфера, 2005. - 320 с.).Most often, for decoding LDPC codes, an iterative belief-propagation (IBP) decoding algorithm is used, also known as the sum-product algorithm and the message-passing algorithm (see Morelos-Zaragoza. The art of noise-resistant coding. Methods, algorithms , application. - M .: Technosphere, 2005. - 320 p.).
В представленном изобретении используется модификация этого алгоритма, предусматривающая обновление значений LLR (Log likelihood ratio - логарифмическое отношение правдоподобия) принятых символов слова LDPC-кода после обработки каждого проверочного уравнения кода.In the present invention, a modification of this algorithm is used, which provides for updating the LLR values (Log likelihood ratio) of the received word characters of the LDPC code after processing each verification code equation.
Данный алгоритм итеративный, он предусматривает выполнение следующих этапов.This algorithm is iterative, it involves the following steps.
1) Счетчик итераций обнуляется.1) The iteration counter is reset.
2) Выбирается первое проверочное уравнение (ПУ) из множества действительных ПУ. Если множество действительных ПУ - пусто, осуществляется переход к п.10.2) The first verification equation (PU) is selected from the set of valid PUs. If the set of valid PUs is empty, go to step 10.
3) Осуществляется проверка значений LLR символов, входящих в проверочное уравнение. Если модуль значения больше заданного порога или равен ему, оценка символа считается надежной, и она больше не меняется («замораживается»). Соответствующий символ удаляется из проверочного уравнения, при этом проверочное уравнение модифицируется. Если значение замороженного символа соответствует двоичной 1, то четность уравнения меняется.3) Validation of the LLR values of the characters included in the verification equation. If the value module is greater than or equal to the specified threshold, the symbol score is considered reliable, and it does not change anymore (“freezes”). The corresponding symbol is removed from the verification equation, while the verification equation is modified. If the value of the frozen symbol corresponds to
4) Если в результате модификации в ПУ не остается членов, оно считается вырожденным. Если остается только один член, в качестве оценки LLR символа, адресуемого этим членом, берется значение порога (с учетом знака) и символ «замораживается. Единственный член из уравнения удаляется (уравнение также становится вырожденным).4) If, as a result of a modification, no members remain in the PU, it is considered degenerate. If there is only one member left, the threshold value (taking into account the sign) is taken as an estimate of the LLR of the character addressed by this member and the symbol “freezes.” The only term in the equation is removed (the equation also becomes degenerate).
5) Если уравнение вырождается, оно удаляется из множества действительных ПУ и осуществляется переход к п.8.5) If the equation degenerates, it is removed from the set of valid PUs and the transition to step 8 is performed.
6) Осуществляется обновление значений LLR символов, входящих в проверочное уравнение.6) The LLR values of the symbols included in the verification equation are updated.
7) Модифицированное ПУ заменяет прежнее ПУ в множестве действительных ПУ.7) The modified PU replaces the previous PU in the set of valid PUs.
8) Выбирается следующее проверочное уравнение из множества действительных ПУ. Если все ПУ обработаны, осуществляется переход к следующему пункту, в противном случае переход к п.3.8) The following verification equation is selected from the set of valid PUs. If all PUs have been processed, go to the next step, otherwise go to step 3.
9) Счетчик итераций инкрементируется. Если его величина меньше заданного предельного числа итераций, осуществляется переход к п.2.9) The iteration counter is incremented. If its value is less than the specified limit number of iterations, the transition to step 2.
10) Осуществляется вывод жестких решений, в качестве которых используется знаковые разряды LLR символов кодового слова. Обновление значений LLR символов, входящих в проверочное уравнение, выполняется на 6 этапе следующим образом:10) Hard decisions are made, which are used as the sign bits LLR characters of the code word. The LLR values of the symbols included in the verification equation are updated in step 6 as follows:
где - значение LLR символа ij кодового слова; g() - функция, используемая для оценки LLR символа на основе проверочного уравнения; p - число членов проверочного уравнения.Where - LLR value of the symbol i j codeword; g () is the function used to estimate the LLR of a symbol based on a test equation; p is the number of members of the verification equation.
Функция g() от двух аргументов может быть определена следующим образом (см. патент 1379001 EP. МПК7 H03M 13/13. Methods and system for decoding low density parity check (LDPC) codes / Mustafa Eroz, Feng-Wen Sun, Lin-Nan Lee - заявлено 02.07.2003 №03254214.4; опубл. 07.01.2004):The function g () of the two arguments can be defined as follows (see patent 1379001 EP. IPC 7 H03M 13/13. Methods and system for decoding low density parity check (LDPC) codes / Mustafa Eroz, Feng-Wen Sun, Lin- Nan Lee - stated 02.07.2003 No. 03254214.4; publ. 07.01.2004):
где LUTg(a,b)=ln(1+e-|a+b|)-ln(1+e-|a-b|).where LUT g ( a , b) = ln (1 + e - | a + b | ) -ln (1 + e - | ab | ).
Функция g() от более чем двух аргументов может быть вычислена рекурсивно.The g () function of more than two arguments can be calculated recursively.
В представленном изобретении арифметическое устройство 5 реализует обновление значений LLR символов последовательно в два прохода.In the present invention, the arithmetic device 5 implements an update of the LLR values of the characters sequentially in two passes.
В прямом проходе на первые входы арифметического устройства 5 последовательно поступают , , …, , - значения LLR символов, входящих в проверочное уравнение. При этом вычисляется последовательность вспомогательных переменных fj:In a direct passage to the first inputs of the arithmetic device 5 sequentially arrive , , ..., , - LLR values of the symbols included in the verification equation. In this case, the sequence of auxiliary variables f j is calculated:
…...
При выполнении обратного прохода на вторые входы арифметического устройства 5 последовательно поступают в обратном порядке из первого стека 6 те же самые значения LLR символов, которые подавались в арифметическое устройство 5 во время первого прохода, , , …, , . При этом вычисляется последовательность вспомогательных переменных bj:When performing a reverse pass to the second inputs of the arithmetic device 5, the same LLR values of the characters that were fed to the arithmetic device 5 during the first pass sequentially arrive in the reverse order from the first stack 6, , , ..., , . In this case, the sequence of auxiliary variables b j is calculated:
…...
Также во время обратного прохода последовательно вычисляются и выводятся из арифметического устройства 5 новые значения LLR символов:Also, during the return pass, new LLR symbol values are sequentially calculated and output from the arithmetic device 5:
В процессе обработки устройством декодирования LDPC-кодов принятого кодового слова можно выделить три фазы.In the process of processing the device decoding LDPC codes of the received codeword, three phases can be distinguished.
В первой фазе LLR символов последовательно загружаются в первый блок памяти 2 (фиг.1) через шестой коммутатор 20, вторые входы которого являются входами данных устройства. Адреса ячеек первого блока памяти в этом случае формируются устройством управления 1, с двадцать шестых выходов которого они поступают на первые входы пятого коммутатора 19 и подаются далее на адресные входы первого блока памяти 2. Строб записи в память также формируется УУ 1.In the first phase, LLR symbols are sequentially loaded into the first memory unit 2 (Fig. 1) through the sixth switch 20, the second inputs of which are the data inputs of the device. The addresses of the cells of the first memory block in this case are formed by the
Также в первой фазе УУ 1 осуществляет инициализацию второго и третьего блоков памяти 3 и 4. Для этого в них записываются начальные значения параметров проверочных уравнений, определяемые проверочной матрицей H используемого LDPC-кода. Для инициализации используются первый - четвертый коммутаторы 15-18: через первый и второй коммутаторы 15, 16 в блоки памяти 3, 4 записываются параметры, через третий и четвертый 17, 18 передаются адреса соответствующих ячеек памяти.Also, in the first phase, the
Во второй фазе осуществляется итеративное декодирование кодового слова. Вторая фаза является основной, она будет подробно рассмотрена ниже.In the second phase, iterative decoding of the codeword is performed. The second phase is the main, it will be discussed in detail below.
В третьей фазе исправленное кодовое слово выгружается из первого блока памяти 2, его символы подаются на выход устройства. В качестве символов кодового слова берутся жесткие решения, представляющие собой знаковые разряды LLR. Адреса ячеек первого блока памяти в этом случае формируются устройством управления 1, с двадцать шестых выходов которого они поступают на первые входы пятого коммутатора 19 и подаются далее на адресные входы первого блока памяти 2.In the third phase, the corrected code word is unloaded from the first memory block 2, its characters are sent to the output of the device. Tough decisions are taken as symbols of the code word, which are LLR signed digits. The addresses of the cells of the first memory block in this case are formed by the
Рассмотрим более подробно работу устройства декодирования LDPC-кодов во второй фазе обработки принятого кодового слова.Let us consider in more detail the operation of the apparatus for decoding LDPC codes in the second phase of processing the received codeword.
В этой фазе устройство декодирования выполняет заданное число итераций.In this phase, the decoding device performs a given number of iterations.
Количество итераций декодирования подсчитывается устройством управления 1. Декодирование завершается при выполнении декодером заданного числа итераций. Также декодирование завершается при отсутствии действительных проверочных уравнений, которые должны содержаться во втором и третьем блоках памяти 3 и 4. Отсутствие действительных ПУ определяется по нулевому значению поля числа членов ПУ в ячейке второго блока памяти 3, находящейся по нулевому адресу.The number of decoding iterations is calculated by the
В каждой итерации устройство декодирования обрабатывает все действительные проверочные уравнения, параметры которых хранятся во втором и третьем блоках памяти 3 и 4.In each iteration, the decoding device processes all valid verification equations whose parameters are stored in the second and third memory blocks 3 and 4.
Обработка одного действительного проверочного уравнения начинается с чтения описания ГТУ из второго блока памяти 3. Число членов ПУ из описания ПУ заносится в пятый счетчик 5, признак четности помещается в T-триггер 14.Processing one valid verification equation begins by reading the description of the gas turbine from the second memory block 3. The number of PU members from the PU description is entered in the fifth counter 5, the parity flag is placed in the T-trigger 14.
После чего из третьего блока памяти 4 в первый регистр-защелку 13 последовательно считываются номера позиций символов кодового слова, входящих в обрабатываемое уравнение. Эти номера используются как адреса первого блока памяти 2 для чтения последовательности значений LLR символов, входящих в проверочное уравнение. Для этого содержимое первого регистра-защелки 13 подается на третьи входы пятого коммутатора 19 и далее на адресные входы первого блока памяти 2. Последовательность номеров позиций символов кодового слова, входящих в уравнение, также запоминается во втором стеке 7.Then from the third memory block 4 into the first register-latch 13 sequentially reads the position numbers of the symbols of the codeword included in the processed equation. These numbers are used as the addresses of the first memory block 2 to read the sequence of LLR values of the characters included in the verification equation. To do this, the contents of the first register-latch 13 is fed to the third inputs of the fifth switch 19 and then to the address inputs of the first memory block 2. The sequence of position numbers of the codeword symbols included in the equation is also stored in the second stack 7.
Последовательность значений LLR символов, входящих в проверочное уравнение, одновременно подается на вторые входы схемы сравнения кодов 21, первые входы данных арифметического устройства 5 и на входы данных первого стека 6. Помещаются в стек и обрабатываются АУ 5 только не «замороженные» значения LLR, чей модуль не превышает порог Thres. Это соответствует прямому проходу модификации LLR символов, входящих в проверочное уравнение.The sequence of LLR values of the symbols included in the verification equation is simultaneously fed to the second inputs of the code comparison circuit 21, the first data inputs of the arithmetic device 5 and to the data inputs of the first stack 6. Only non-frozen LLR values are pushed onto the stack and processed by AC 5, whose the module does not exceed the Thres threshold. This corresponds to a direct pass of the LLR modification of the symbols included in the verification equation.
Для определения и обработки «замороженных» значений LLR символов используется схема сравнения кодов 21 и первый и второй логические элементы И 22 и 23. Схема сравнения сравнивает коды, поступающие на ее входы. На первые входы подается значение порога, выдаваемого УУ 1, на вторые входы подается последовательность значений LLR символов, считанная из первого блока памяти 2. Если значение LLR по модулю больше или равно значения порога на первом выходе схемы сравнения кодов 21 формируется логическая 1 (признак «замороженности»), на втором выходе схемы сравнения формируется инверсное значение к первому выходу. Единичное значение сигнала на выходе первого логического элемента И 22 уменьшает на единицу число членов ПУ, хранящееся в пятом счетчике 12, и меняет четность ПУ, признак которой хранится в T-триггере. Единичное значение сигнала на выходе второго логического элемента И 23 разрешает запись значений LLR в первый стек бив АУ 5 и соответствующих значениям LLR номеров символов во второй стек 7.To determine and process the "frozen" values of LLR characters, a code comparison scheme 21 and the first and second logic elements And 22 and 23 are used. The comparison circuit compares the codes received at its inputs. The first inputs are supplied with a threshold value issued by
Если после прямого прохода содержимое пятого счетчика 12 обнулилось или стало равно 1, обратный проход не выполняется, параметры вырожденного проверочного уравнения во второй и третий блоки памяти не сохраняется. Если содержимое пятого счетчика 12 стало равно 1, в первый блок памяти 2 в качестве значения LLR записывается значение порога с соответствующим знаком по адресу, равному номеру единственного оставшегося символа.If, after a direct pass, the contents of the fifth counter 12 are reset or equal to 1, the reverse pass is not performed, the parameters of the degenerate verification equation in the second and third memory blocks are not saved. If the contents of the fifth counter 12 has become equal to 1, the threshold value with the corresponding sign at the address equal to the number of the only remaining character is written into the first memory block 2 as the LLR value.
Если проверочное уравнение не выродилось (содержимое пятого счетчика 12 больше 1), после завершения прямого прохода начинается обратный проход модификации LLR символов, входящих в проверочное уравнение. Во время прохода на вторые входы данных арифметического устройства 5 из первого стека 6 подается последовательность значений LLR символов, входящих в проверочное уравнение, в обратном порядке. Во время обратного прохода на выходах АУ 5 появляются модифицированные значения LLR символов, которые записываются в первый блок памяти 2 по адресам, считанным из второго стека 7. Одновременно адреса, считанные из второго стека 7, являющиеся номерами символов, входящими в ПУ, заносятся в третий блок памяти 4. Модифицированное описание ПУ записывается из T-триггера 14 и пятого счетчика 12 во второй блок памяти 3 по адресу, хранящемуся во втором счетчике 9, который затем инкрементируется. Таким образом, сохраняется модифицированное ПУ.If the verification equation does not degenerate (the contents of the fifth counter 12 are greater than 1), after the direct pass is completed, the reverse pass of the modification of LLR symbols included in the verification equation begins. During the passage to the second data inputs of the arithmetic device 5 from the first stack 6, a sequence of LLR values of symbols included in the verification equation is fed in the reverse order. During the return pass, the modified values of LLR characters appear on the outputs of AU 5, which are written to the first memory block 2 at the addresses read from the second stack 7. At the same time, the addresses read from the second stack 7, which are the numbers of characters included in the PU, are entered in the third memory block 4. A modified description of the PU is recorded from the T-flip-flop 14 and the fifth counter 12 to the second memory block 3 at the address stored in the second counter 9, which is then incremented. Thus, the modified PU is saved.
Первый счетчик 8, хранящий адрес текущего описания ПУ, инкрементируется, и описанный процесс повторяется для следующего и затем для всех действительных проверочных уравнений, описание которых хранится во втором и третьем блоках памяти 3 и 4.The first counter 8, which stores the address of the current PU description, is incremented, and the described process is repeated for the next and then for all valid verification equations, the description of which is stored in the second and third memory blocks 3 and 4.
Вычислительная сложность устройства декодирования LDPC-кодов уменьшается по сравнению с прототипом за счет последовательного уменьшения вычислительной сложности итераций алгоритма декодирования с увеличением номера итерации. Это определяется уменьшением числа членов проверочных уравнений (за счет «замораживания» символов кодового слова) и уменьшением числа ПУ (за счет их вырождения).The computational complexity of the device decoding LDPC codes is reduced compared with the prototype due to the sequential decrease in the computational complexity of iterations of the decoding algorithm with increasing iteration number. This is determined by a decrease in the number of members of the verification equations (due to the "freezing" of the codeword characters) and a decrease in the number of PUs (due to their degeneration).
Арифметическое устройство 5 (фиг.2) во время прямого прохода работает следующим образом.Arithmetic device 5 (figure 2) during a direct pass works as follows.
Значения LLR символов, поступающие на первые входы данных арифметического устройства 5 (DI1), передаются на выходы седьмого коммутатора 31, поскольку второй сигнал управления арифметическим устройством 5 (Backward), поступающий на вход управления коммутатором 31, не активен.The LLR values of the symbols supplied to the first data inputs of the arithmetic device 5 (DI1) are transmitted to the outputs of the
Первое значение LLR через восьмой коммутатор 32, выходы которого на это время подключаются к его вторым входам, загружается во второй регистр-защелку 28, формируя значение f1 в соответствии с формулой (3). Для управления коммутатором 32 в это время активизируется (принимает значение, равное логической единице) сигнал на выходе логического элемента И 38, поступающий далее через логический элемент ИЛИ 36 на вход управления восьмого коммутатора. Соответствующий временной интервал определяется нулевым состоянием шестого счетчик 27, во время которого на первом выходе дешифратора 35 появляется логическая 1.First LLR value through the
Следующие значения LLR поступают на вторые входы первого блока вычисления функции g 25, на первые входы которого поступают значения fj-1 с выходов второго регистра-защелки 28. Результаты вычисления функции g через восьмой коммутатор 32, выходы которого в это время подключены к его первым входам, записываются во второй регистр-защелку 28, формируя тем значения fj в соответствии с формулами (4-6). С выходов второго регистра-защелки 28 значения fj записываются в третий стек 24. Второй D-триггер 30 необходим для синхронизации сигнала записи в стек с появлением значений fj на выходах второго регистра-защелки 28.The following LLR values go to the second inputs of the first unit of calculation of the
Во время обратного прохода арифметическое устройство 5 работает следующим образом.During the return pass, the arithmetic device 5 operates as follows.
Значения LLR символов, поступающие на вторые входы данных арифметического устройства 5 (DI2) в обратном порядке, передаются на выходы седьмого коммутатора 31, поскольку второй сигнал управления арифметическим устройством 5 (Backward), поступающий на вход управления коммутатором 31, активен.The LLR values of the symbols supplied to the second data inputs of the arithmetic device 5 (DI2) in the reverse order are transmitted to the outputs of the
Первое в обратной последовательности значение LLR через восьмой коммутатор 32, выходы которого на это время подключаются к его вторым входам, загружается во второй регистр-защелку 28, формируя значение bp в соответствии с формулой (7). Для управления коммутатором 32 в это время активизируется (принимает значение, равное логической единице) сигнал на выходе логического элемента И 41, поступающий далее через логический элемент ИЛИ 36 на вход управления восьмого коммутатора. Соответствующий временной интервал определяется с помощью первого D-триггера 29, на D-вход которого подается сигнал управления "Backward".First in reverse order of LLR through the
Следующие значения LLR поступают на вторые входы первого блока вычисления функции g 25, на первые входы которого поступают значения bj+1 с выходов второго регистра-защелки 28. Результаты вычисления функции g через восьмой коммутатор 32, выходы которого в это время подключены к его первым входам, записываются во второй регистр-защелку 28, формируя тем значения bj в соответствии с формулами (8-10).The following LLR values go to the second inputs of the first unit of calculation of the
Во время обратного прохода на выходе арифметического устройства 5 появляются модифицированные значения LLR символов.During the backward pass, modified LLR symbol values appear at the output of the arithmetic device 5.
Первым появляется новое значение (см. формулу 11), для этого используется второй сумматор 34, на вторые входы которого постоянно подаются значения LLR, поступающие на вторые входы данных арифметического устройства 5, на первые входы сумматора в 34 это время через девятый коммутатор 33 (третьи входы) и схему инверсии знака 42 из стека подается значение fp-1.New value comes first (see formula 11), for this, a
Затем появляются значения LLR, вычисляемые по формуле (12), для этого на первые входы второго сумматора 34 через девятый коммутатор 33 (вторые входы) и схему инверсии знака 42 с выходов второго блока вычисления функции g 26 подается значение g(fj,bj+2,). При этом на первые входы второго блока вычисления функции g 26 поступают величины bj+2 с выходов второго регистра защелки 28, на вторые входы второго блока вычисления функции g поступают величины fj с выходов третьего стека 24.Then LLR values calculated by formula (12) appear, for this, the value g (f j , b j is supplied to the first inputs of the
Последним на выходах арифметического устройства 5 появляется новое значение (см. формулу 13), для этого на первые входы второго сумматора 34 через девятый коммутатор 33 (первые входы) и схему инверсии знака 42 с выходов второго регистра-защелки 28 подается значение b2. Соответствующий этому временной интервал определяется нахождением шестого счетчика 27 в состоянии «1», при этом на втором выходе дешифратора 35 появляется логическая 1, которая пропускается во время обратного прохода четвертым логическим элементом И 39 на первый вход управления девятого коммутатора 33.Last at the outputs of arithmetic device 5 appears a new value (see formula 13), for this, the value b 2 is supplied to the first inputs of the
Если на третьем входе управления арифметического устройства 5 (Par) присутствует логическая 1, схема инверсии знака меняет знак величины изменения LLR, это необходимо делать для проверочных уравнений, сумма символов которых должна быть нечетной.If
Предлагаемое устройство состоит из простых по своему функциональному назначению элементов и поэтому легко может быть реализовано на ПЛИС или специализированной БИС.The proposed device consists of simple in its functional purpose elements and therefore can easily be implemented on FPGA or specialized LSI.
Предлагаемое устройство декодирования LDPC-кодов по сравнению с прототипом обладает преимуществом, заключающемся в меньшей вычислительной сложности. Это в свою очередь определяет меньшую аппаратную сложность или (и) более высокую пропускную способность устройства.The proposed device decoding LDPC codes in comparison with the prototype has the advantage of less computational complexity. This in turn determines less hardware complexity or / and higher device throughput.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2013145265/08A RU2549134C1 (en) | 2013-10-10 | 2013-10-10 | Device for decoding ldpc codes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2013145265/08A RU2549134C1 (en) | 2013-10-10 | 2013-10-10 | Device for decoding ldpc codes |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2549134C1 true RU2549134C1 (en) | 2015-04-20 |
RU2013145265A RU2013145265A (en) | 2015-04-20 |
Family
ID=53282661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2013145265/08A RU2549134C1 (en) | 2013-10-10 | 2013-10-10 | Device for decoding ldpc codes |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2549134C1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU168191U1 (en) * | 2016-10-13 | 2017-01-23 | Общество с ограниченной ответственностью "Силовая электроника" | LDPC decoding device |
RU2811085C1 (en) * | 2023-04-04 | 2024-01-11 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" | Data decoding method based on ldpc code |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1648090A2 (en) * | 2004-10-04 | 2006-04-19 | Broadcom Corporation | Efficient design to implement LDPC (low density parity check) decoder |
EP2012433A2 (en) * | 2007-07-02 | 2009-01-07 | Broadcom Corporation | LDPC (low density parity check) decoder with distributed processing |
-
2013
- 2013-10-10 RU RU2013145265/08A patent/RU2549134C1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1648090A2 (en) * | 2004-10-04 | 2006-04-19 | Broadcom Corporation | Efficient design to implement LDPC (low density parity check) decoder |
EP2012433A2 (en) * | 2007-07-02 | 2009-01-07 | Broadcom Corporation | LDPC (low density parity check) decoder with distributed processing |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU168191U1 (en) * | 2016-10-13 | 2017-01-23 | Общество с ограниченной ответственностью "Силовая электроника" | LDPC decoding device |
RU2811085C1 (en) * | 2023-04-04 | 2024-01-11 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" | Data decoding method based on ldpc code |
Also Published As
Publication number | Publication date |
---|---|
RU2013145265A (en) | 2015-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leroux et al. | Hardware architectures for successive cancellation decoding of polar codes | |
KR101854954B1 (en) | Checksum using sums of permutation sub-matrices | |
US11005499B2 (en) | LDPC decoder, semiconductor memory system, and operating method thereof | |
AU2005225107B2 (en) | Method and apparatus for decoding low density parity check code using united node processing | |
Zhang et al. | Low-complexity reliability-based message-passing decoder architectures for non-binary LDPC codes | |
CN110719111B (en) | Improved decoder for low density parity check codes | |
US20160336964A1 (en) | Systems and methods for early exit of layered ldpc decoder | |
EP1881610A1 (en) | Encoder and decoder by ldpc encoding | |
KR20070058477A (en) | Memory efficient ldpc decoding methods and apparatus | |
KR101459135B1 (en) | Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture | |
US9195536B2 (en) | Error correction decoder and error correction decoding method | |
Berhault et al. | Partial sums generation architecture for successive cancellation decoding of polar codes | |
Kim et al. | A high-speed layered min-sum LDPC decoder for error correction of NAND flash memories | |
CN109802688B (en) | Multilevel LDPC decoding system and method | |
US10833704B1 (en) | Low-density parity check decoder using encoded no-operation instructions | |
US9231619B2 (en) | LDPC decoder with a variable node updater which uses a scaling constant | |
Thi et al. | Two-extra-column trellis min–max decoder architecture for nonbinary LDPC codes | |
US10554226B2 (en) | Method for controlling a check node of a NB-LDPC decoder and corresponding check node | |
EP3926834A1 (en) | Ldpc decoder apparatus, device, system, method and computer program | |
Sulek et al. | GF (q) LDPC decoder design for FPGA implementation | |
RU2549134C1 (en) | Device for decoding ldpc codes | |
Marelli et al. | BCH and LDPC error correction codes for NAND flash memories | |
Phillips et al. | Estimating adders for a low density parity check decoder | |
US11108410B1 (en) | User-programmable LDPC decoder | |
US8347167B2 (en) | Circuits for implementing parity computation in a parallel architecture LDPC decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20151011 |