RU2441318C1 - Device to decode reed-solomon codes - Google Patents

Device to decode reed-solomon codes Download PDF

Info

Publication number
RU2441318C1
RU2441318C1 RU2010134469/08A RU2010134469A RU2441318C1 RU 2441318 C1 RU2441318 C1 RU 2441318C1 RU 2010134469/08 A RU2010134469/08 A RU 2010134469/08A RU 2010134469 A RU2010134469 A RU 2010134469A RU 2441318 C1 RU2441318 C1 RU 2441318C1
Authority
RU
Russia
Prior art keywords
inputs
outputs
block
input
switch
Prior art date
Application number
RU2010134469/08A
Other languages
Russian (ru)
Inventor
Сергей Иванович Егоров (RU)
Сергей Иванович Егоров
Олег Борисович Графов (RU)
Олег Борисович Графов
Original Assignee
Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) filed Critical Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ)
Priority to RU2010134469/08A priority Critical patent/RU2441318C1/en
Application granted granted Critical
Publication of RU2441318C1 publication Critical patent/RU2441318C1/en

Links

Images

Abstract

FIELD: information technologies. ^ SUBSTANCE: device comprises a buffer data memory, a unit of syndromes calculation, a Galois processor, a unit of discrete Fourier transformation, a unit for searching of weight error positions t+1, a unit of symbol positions sorting, a unit of error values calculation, a summator of Galois field elements. ^ EFFECT: higher efficiency of errors correction outside the border of the half of minimum distance by using information on reliability of symbols received from the channel. ^ 6 cl, 10 dwg

Description

Изобретение относится к системам телекоммуникаций и вычислительной технике и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок.The invention relates to telecommunication systems and computer engineering and may find application in devices for receiving information from a transmission channel or reproducing information with a high level of errors.

В настоящее время на практике применяются устройства декодирования кодов Рида-Соломона (PC-кодов), реализующие классические алгоритмы декодирования (Питерсона-Горенстейна-Цирлера, Берлекэмпа-Месси, Евклида), позволяющие исправлять не более t ошибочных символов в кодовом слове (t=(d-1)/2, d - минимальное кодовое расстояние).Currently, in practice, Reed-Solomon code decoding devices (PC codes) are used that implement the classical decoding algorithms (Peterson-Gorenstein-Zirler, Berlekamp-Messi, Euclid) that allow correcting no more than t erroneous characters in the codeword (t =  (d-1) / 2, d is the minimum code distance).

Известно устройство списочного декодирования кодов Рида-Соломона, исправляющее ошибки за границей половины минимального кодового расстояния t, [1], содержащее: входной блок, блок декодирования и выходной блок. Используемый метод декодирования основывается на нахождении ненулевого элемента в ядре структурированной матрицы.A device for list decoding of Reed-Solomon codes is known that corrects errors beyond half the minimum code distance t, [1], comprising: an input block, a decoding block, and an output block. The decoding method used is based on finding a nonzero element in the core of the structured matrix.

Недостатком данного устройства является сложность его реализации.The disadvantage of this device is the complexity of its implementation.

Известно устройство декодирования, реализующее алгебраический алгоритм декодирования кодов Рида-Соломона, используя мягкие решения [2], содержащее: блок повторного кодирования, блок интерполяции, блок факторизации, блок выборки точек интерполяции и селектор.A decoding device is known that implements an algebraic algorithm for decoding Reed-Solomon codes using soft solutions [2], comprising: a re-coding unit, an interpolation unit, a factorization unit, a block for selecting interpolation points, and a selector.

Алгоритм работы устройства состоит в следующем: используя оценки надежностей символов принятого кодового слова, вычисляется матрица М, которая определяет интерполяционные точки и их кратность; выполняется процедура интерполяции для нахождения полинома QM(X,Y); в полиноме QM(X,Y) выделяются сомножители вида Y-f(X); из полиномов f(X) реконструируются кодовые слова; наиболее вероятное из них выбирается как результат работы алгоритма.The algorithm of the device is as follows: using estimates of the reliability of the characters of the received code word, the matrix M is calculated, which determines the interpolation points and their multiplicity; the interpolation procedure is performed to find the polynomial Q M (X, Y); in the polynomial Q M (X, Y), factors of the form Yf (X) are distinguished; codewords are reconstructed from polynomials f (X); the most probable of them is selected as a result of the algorithm.

Недостатком данного устройства является его сложность, обусловленная сложностью реализации процедур интерполяции и факторизации многочленов больших степеней.The disadvantage of this device is its complexity, due to the complexity of the implementation of procedures for interpolation and factorization of polynomials of large degrees.

Наиболее близким по технической сущности к заявляемому изобретению является выбранное в качестве прототипа устройство декодирования кодов Рида-Соломона [3], позволяющее исправить одну дополнительную ошибку за границей половины минимального кодового расстояния. Устройство-прототип содержит: буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок веса t+1 и блок вычисления значений ошибок.The closest in technical essence to the claimed invention is the Reed-Solomon code decoding device selected as a prototype [3], which allows one additional error to be corrected beyond half the minimum code distance. The prototype device comprises: a data buffer, a syndrome calculation unit, a Galois processor, a discrete Fourier transform unit, an error position search unit of weight t + 1, and an error value calculation unit.

Устройство-прототип осуществляет поиск позиций ошибок за границей половины минимального кодового расстояния путем вычисления последовательностей возможных значений неизвестных невязок аналитического продолжения алгоритма Берлекэмпа-Месси и подсчета значений невязок в этих последовательностях.The prototype device searches for error positions beyond half the minimum code distance by calculating sequences of possible values of unknown residuals of the analytic continuation of the Berlekamp-Messi algorithm and counting the residual values in these sequences.

Недостатком прототипа является относительно низкое быстродействие, обусловленное переборным характером поиска неизвестных невязок при исправлении t+1 ошибок. Количество вычислений возможных значений неизвестной невязки равняется nS=(n-1+t)(n-t)/2, где n - длина кодового слова кода Рида-Соломона.The disadvantage of the prototype is the relatively low speed due to the exhaustive nature of the search for unknown residuals when correcting t + 1 errors. The number of calculations of the possible values of the unknown residual is n S = (n-1 + t) (nt) / 2, where n is the length of the code word of the Reed-Solomon code.

Быстродействие декодера [3] может быть увеличено за счет усреднения времени декодирования кодовых слов с различным числом ошибок. Однако при этом для обеспечения постоянной пропускной способности необходимо ввести дополнительный буфер для хранения кодовых слов, что одновременно увеличит задержку данных в декодере.The speed of the decoder [3] can be increased by averaging the decoding time of code words with a different number of errors. However, in order to ensure constant bandwidth, it is necessary to introduce an additional buffer for storing codewords, which will simultaneously increase the data delay in the decoder.

Технической задачей изобретения является повышение быстродействия исправления ошибок за границей половины минимального расстояния путем использования информации о надежности принятых из канала символов.An object of the invention is to increase the speed of error correction beyond half of the minimum distance by using information about the reliability of the symbols received from the channel.

Поставленная техническая задача решается тем, что в устройство декодирования кодов Рида-Соломона, содержащее буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок вычисления значений ошибок, первый сумматор элементов поля Галуа, причем входы буферной памяти данных и входы блока вычисления синдромов являются входами символов данных устройства декодирования кодов Рида-Соломона, выходы буферной памяти данных соединены с первыми входами первого сумматора элементов поля Галуа, выходы блока вычисления синдромов соединены с первыми входами процессора Галуа, первые выходы процессора Галуа соединены с первыми входами блока дискретного преобразования Фурье, вторые выходы процессора Галуа соединены со вторыми входами блока дискретного преобразования Фурье, третьи выходы процессора Галуа соединены с третьими входами блока дискретного преобразования Фурье, четвертые выходы процессора Галуа соединены с четвертыми входами блока поиска позиций ошибок, пятые выходы процессора Галуа соединены с первыми входами блока вычисления значений ошибок, шестые выходы процессора Галуа соединены со вторыми входами блока вычисления значений ошибок, седьмые выходы процессора Галуа соединены с третьими входами блока вычисления значений ошибок, вторые выходы блока дискретного преобразования Фурье соединены с третьими входами процессора Галуа, третьи выходы блока дискретного преобразования Фурье соединены с четвертыми входами процессора Галуа, четвертые выходы блока дискретного преобразования Фурье соединены с первыми входами блока поиска позиций ошибок, пятый выход блока дискретного преобразования Фурье соединен со вторым входом блока поиска позиций ошибок, шестые выходы блока дискретного преобразования Фурье соединены с третьими входами блока поиска позиций ошибок, первые выходы блока поиска позиций ошибок соединены с пятыми входами процессора Галуа, вторые выходы блока поиска позиций ошибок соединены с шестыми входами процессора Галуа, третьи выходы блока поиска позиций ошибок соединены с седьмыми входами процессора Галуа, четвертые выходы блока поиска позиций ошибок соединены с восьмыми входами процессора Галуа, выходы блока вычисления значений ошибок соединены со вторыми входами первого сумматора элементов поля Галуа, выходы первого сумматора элементов поля Галуа являются выходами данных устройства декодирования кодов Рида-Соломона, введен блок сортировки позиций символов, причем первые входы блока сортировки позиций символов являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона, пятые выходы блока поиска позиций ошибок соединены со вторыми входами блока сортировки позиций символов, первые выходы блока дискретного преобразования Фурье соединены с третьими входами блока сортировки позиций символов, первые выходы блока сортировки позиций символов соединены со вторыми входами процессора Галуа, вторые выходы блока сортировки позиций символов соединены с пятыми входами блока поиска позиций ошибок, причем блок сортировки позиций символов содержит первую схему сравнения кодов, первый блок памяти отсортированных позиций, второй блок памяти отсортированных позиций, третий блок памяти отсортированных позиций, четвертый блок памяти отсортированных позиций, пятый блок памяти отсортированных позиций, первый коммутатор, второй коммутатор, третий коммутатор, четвертый коммутатор, пятый коммутатор, шестой коммутатор, седьмой коммутатор, первый счетчик, второй счетчик, третий счетчик, первый дешифратор, второй дешифратор, причем первые входы первой схемы сравнения кодов являются первыми входами блока сортировки позиций символов, вторые входы первой схемы сравнения кодов соединены с шиной константы Thres, выход первой схемы сравнения кодов соединен со вторым входом первого блока памяти отсортированных позиций, со вторым входом второго блока памяти отсортированных позиций, со вторым входом третьего блока памяти отсортированных позиций, со вторым входом четвертого блока памяти отсортированных позиций и со вторым входом пятого блока памяти отсортированных позиций, первые выходы первого счетчика соединены с первыми входами первого блока памяти отсортированных позиций, с первыми входами второго блока памяти отсортированных позиций, с первыми входами третьего блока памяти отсортированных позиций, с первыми входами четвертого блока памяти отсортированных позиций и с первыми входами пятого блока памяти отсортированных позиций, второй выход первого счетчика соединен с входом второго счетчика, выходы второго счетчика соединены со входами первого дешифратора, первый выход первого дешифратора соединен с третьим входом первого блока памяти отсортированных позиций, второй выход первого дешифратора соединен с третьим входом второго блока памяти отсортированных позиций, третий выход первого дешифратора соединен с третьим входом третьего блока памяти отсортированных позиций, четвертый выход первого дешифратора соединен с третьим входом четвертого блока памяти отсортированных позиций, пятый выход первого дешифратора соединен с третьим входом пятого блока памяти отсортированных позиций, выходы первого блока памяти отсортированных позиций соединены со вторыми входами первого коммутатора и четвертыми входами второго коммутатора, выходы второго блока памяти отсортированных позиций соединены с третьими входами первого коммутатора и пятыми входами второго коммутатора, выходы третьего блока памяти отсортированных позиций соединены с четвертыми входами первого коммутатора и первыми входами второго коммутатора, выходы четвертого блока памяти отсортированных позиций соединены с пятыми входами первого коммутатора и вторыми входами второго коммутатора, выходы пятого блока памяти отсортированных позиций соединены с первыми входами первого коммутатора и третьими входами второго коммутатора, выходы третьего счетчика соединены с шестыми входами первого коммутатора, с шестыми входами второго коммутатора и входами второго дешифратора, первый выход второго дешифратора соединен с третьим входом седьмого коммутатора, второй выход второго дешифратора соединен с третьим входом третьего коммутатора, третий выход второго дешифратора соединен с третьим входом четвертого коммутатора, четвертый выход второго дешифратора соединен с третьим входом пятого коммутатора, пятый выход второго дешифратора соединен с третьим входом шестого коммутатора, первые входы третьего, четвертого, пятого, шестого и седьмого коммутаторов являются третьими входами блока сортировки позиций символов, вторые входы третьего, четвертого, пятого, шестого и седьмого коммутаторов являются вторыми входами блока сортировки позиций символов, выходы третьего коммутатора соединены с четвертыми входами первого блока памяти отсортированных позиций, выходы четвертого коммутатора соединены с четвертыми входами второго блока памяти отсортированных позиций, выходы пятого коммутатора соединены с четвертыми входами третьего блока памяти отсортированных позиций, выходы шестого коммутатора соединены с четвертыми входами четвертого блока памяти отсортированных позиций, выходы седьмого коммутатора соединены с четвертыми входами пятого блока памяти отсортированных позиций, выходы первого коммутатора являются вторыми выходами блока сортировки позиций символов, выходы второго коммутатора являются первыми выходами блока сортировки позиций символов, причем блок памяти отсортированных позиций содержит первый блок памяти с произвольным доступом, второй блок памяти с произвольным доступом, первый логический элемент И-НЕ, второй логический элемент И-НЕ, четвертый счетчик, пятый счетчик, восьмой коммутатор, девятый коммутатор, десятый коммутатор, одиннадцатый коммутатор и вычитатель, причем первые входы первого блока памяти с произвольным доступом, первые входы второго блока памяти с произвольным доступом являются первыми входами блока памяти отсортированных позиций, первый вход первого логического элемента И-НЕ, первый вход второго логического элемента И-НЕ, третий вход восьмого коммутатора, третий вход девятого коммутатора являются третьим входом блока памяти отсортированных позиций, второй вход первого логического элемента И-НЕ, второй вход второго логического элемента И-НЕ являются вторым входом блока памяти отсортированных позиций, выход первого логического элемента И-НЕ соединен со вторым входом первого блока памяти с произвольным доступом и входом четвертого счетчика, выходы четвертого счетчика соединены с первыми входами восьмого коммутатора, вторыми входами одиннадцатого коммутатора и первыми входами вычитателя, выходы восьмого коммутатора соединены с третьими входами первого блока памяти с произвольным доступом, выходы первого блока памяти с произвольным доступом соединены с первыми входами десятого коммутатора, выход второго логического элемента И-НЕ соединен со вторым входом второго блока памяти с произвольным доступом и входом пятого счетчика, выходы пятого счетчика соединены с первыми входами девятого коммутатора, выходы девятого коммутатора соединены с третьими входами второго блока памяти с произвольным доступом, выходы второго блока памяти с произвольным доступом соединены со вторыми входами десятого коммутатора, вторые входы вычитателя и вторые входы восьмого коммутатора являются четвертыми входами блока памяти отсортированных позиций, а старший разряд четвертых входов блока памяти отсортированных позиций соединен с третьим входом одиннадцатого коммутатора, первые выходы вычитателя соединены со вторыми входами девятого коммутатора, второй выход вычитателя соединен с третьим входом десятого коммутатора, выходы десятого коммутатора соединены с первыми входами одиннадцатого коммутатора, выходы одиннадцатого коммутатора являются выходами блока памяти отсортированных позиций, причем блок поиска позиций ошибок содержит первый блок вычисления невязок, второй блок вычисления невязок, первый блок подсчета невязок, второй блок подсчета невязок, двенадцатый коммутатор, первый регистр-защелку, блок памяти коэффициентов, первое местное устройство управления, причем первые входы первого местного устройства управления являются четвертыми входами блока поиска позиций ошибок, вторые входы первого местного устройства управления и первые входы блока памяти коэффициентов являются пятыми входами блока поиска позиций ошибок, третьи входы блока поиска позиций ошибок являются младшими разрядами вторых входов блока памяти коэффициентов, первые входы блока поиска позиций ошибок являются средними разрядами вторых входов блока памяти коэффициентов, второй вход блока поиска позиций ошибок является старшим разрядом вторых входов блока памяти коэффициентов, младшие разряды первых выходов блока памяти коэффициентов соединены с первыми входами первого блока вычисления невязок и с первыми входами второго блока вычисления невязок, средние разряды первых выходов блока памяти коэффициентов соединены с третьими входами первого блока вычисления невязок и с третьими входами второго блока вычисления невязок, старший разряд первых выходов блока памяти коэффициентов соединен с пятым входом первого блока вычисления невязок и с пятым входом второго блока вычисления невязок, младшие разряды вторых выходов блока памяти коэффициентов соединены со вторыми входами первого блока вычисления невязок и со вторыми входами второго блока вычисления невязок, средние разряды вторых выходов блока памяти коэффициентов соединены с четвертыми входами первого блока вычисления невязок и с четвертыми входами второго блока вычисления невязок, старший разряд вторых выходов блока памяти коэффициентов соединен с шестым входом первого блока вычисления невязок и с шестым входом второго блока вычисления невязок, первые выходы первого блока вычисления невязок соединены с шестыми входами двенадцатого коммутатора, вторые выходы первого блока вычисления невязок соединены с пятыми входами двенадцатого коммутатора, третий выход первого блока вычисления невязок соединен с четвертым входом первого блока подсчета невязок, четвертые выходы первого блока вычисления невязок соединены с третьими входами первого блока подсчета невязок, пятый выход первого блока вычисления невязок соединен с третьим входом первого местного устройства управления, первый выход первого блока подсчета невязок соединен с пятым входом первого местного устройства управления, вторые выходы первого блока подсчета невязок соединены с четвертыми входами двенадцатого коммутатора, первые выходы второго блока вычисления невязок соединены с первыми входами двенадцатого коммутатора, вторые выходы второго блока вычисления невязок соединены со вторыми входами двенадцатого коммутатора, пятый выход второго блока вычисления невязок соединен с четвертым входом первого местного устройства управления, четвертые выходы второго блока вычисления невязок соединены с третьими входами второго блока подсчета невязок, третий выход второго блока вычисления невязок соединен с четвертым входом второго блока подсчета невязок, вторые выходы второго блока подсчета невязок соединены с третьими входами двенадцатого коммутатора, первый выход второго блока подсчета невязок соединен с шестым входом первого местного устройства управления, третий выход первого местного устройства управления соединен с седьмым входом первого блока вычисления невязок, четвертый выход первого местного устройства управления соединен с восьмым входом первого блока вычисления невязок, пятый выход первого местного устройства управления соединен с девятым входом первого блока вычисления невязок, шестые выходы первого местного устройства управления соединены с четвертыми входами блока памяти коэффициентов, седьмые выходы первого местного устройства управления соединены с третьими входами блока памяти коэффициентов, восьмые выходы первого местного устройства управления соединены со вторыми входами первого блока подсчета невязок, девятый выход первого местного устройства управления соединен с первым входом первого блока подсчета невязок, десятый выход первого местного устройства управления соединен с пятым входом второго блока подсчета невязок, одиннадцатый выход первого местного устройства управления соединен с четвертым входом первого регистра-защелки, двенадцатые выходы первого местного устройства управления соединены с седьмыми входами двенадцатого коммутатора, тринадцатый выход первого местного устройства управления соединен с пятым входом второго блока подсчета невязок, четырнадцатый выход первого местного устройства управления соединен с первым входом второго блока подсчета невязок, пятнадцатые выходы первого местного устройства управления соединены со вторыми входами второго блока подсчета невязок, шестнадцатый выход первого местного устройства управления соединен с девятым входом второго блока вычисления невязок семнадцатый выход первого местного устройства управления соединен с восьмым входом второго блока вычисления невязок, восемнадцатый выход первого местного устройства управления соединен с седьмым входом второго блока вычисления невязок, первые выходы первого местного устройства управления являются пятыми выходами блока поиска позиций ошибок, вторые выходы первого местного устройства управления являются первыми выходами блока поиска позиций ошибок, первые выходы двенадцатого коммутатора соединены с первыми входами первого регистра-защелки, вторые выходы двенадцатого коммутатора соединены со вторыми входами первого регистра-защелки, третьи выходы двенадцатого коммутатора соединены с третьими входами первого регистра-защелки, вторые выходы первого регистра-защелки соединены с десятыми входами первого блока вычисления невязок, десятыми входами второго блока вычисления невязок и являются вторыми выходами блока поиска позиций ошибок, первые выходы первого регистра-защелки являются третьими выходами блока поиска позиций ошибок, третьи выходы первого регистра-защелки являются четвертыми выходами блока поиска позиций ошибок, причем блок вычисления невязок содержит тринадцатый, четырнадцатый и пятнадцатый коммутаторы, второй регистр-защелку, третий регистр-защелку, второй сумматор элементов поля Галуа, третий сумматор элементов поля Галуа, первый инвертор элементов поля Галуа, первый перемножитель элементов поля Галуа, вторую схему сравнения кодов, первый селектор нулевого элементов поля Галуа, первый логический элемент И, второй логический элемент И, логический элемент ИЛИ-НЕ, D-триггер, причем первые входы тринадцатого коммутатора являются первыми входами блока вычисления невязок, вторые входы тринадцатого коммутатора являются вторыми входами блока вычисления невязок, первые входы четырнадцатого коммутатора являются третьими входами блока вычисления невязок, вторые входы четырнадцатого коммутатора являются четвертыми входами блока вычисления невязок, первый вход пятнадцатого коммутатора является пятым входом блока вычисления невязок, второй вход пятнадцатого коммутатора является шестым входом блока вычисления невязок, третий вход тринадцатого коммутатора, третий вход четырнадцатого коммутатора, третий вход пятнадцатого коммутатора являются седьмым входом блока вычисления невязок, выходы тринадцатого коммутатора соединены с первыми входами второго регистра-защелки и вторыми входами второго сумматора элементов поля Галуа, второй вход второго регистра-защелки, второй вход третьего регистра-защелки, второй вход D-триггера являются восьмым входом блока вычисления невязок, выходы второго регистра-защелки соединены с первыми входами второго сумматора элементов поля Галуа и являются вторыми выходами блока вычисления невязок, выходы второго сумматора элементов поля Галуа соединены со входами первого инвертора элементов поля Галуа, выходы первого инвертора элементов поля Галуа соединены с первыми входами первого перемножителя элементов поля Галуа, выходы первого перемножителя элементов поля Галуа соединены со вторыми входами второй схемы сравнения кодов и являются четвертыми выходами блока вычисления невязок, первые входы второй схемы сравнения кодов являются десятыми входами блока вычисления невязок, выход второй схемы сравнения кодов соединен с первым входом первого логического элемента И, выход первого логического элемента И является пятым выходом блока вычисления невязок, выходы четырнадцатого коммутатора соединены с первыми входами третьего регистра-защелки и вторыми входами третьего сумматора элементов поля Галуа, выходы третьего регистра-защелки соединены с первыми входами третьего сумматора элементов поля Галуа и являются первыми выходами блока вычисления невязок, выходы третьего сумматора элементов поля Галуа соединены со входами первого селектора нулевого элемента поля Галуа и вторыми входами перемножителя элементов поля Галуа, выход первого селектора нулевого элемента поля Галуа соединен с первым входом второго логического элемента И, второй вход второго логического элемента И является девятым входом блока вычисления невязок, выход второго логического элемента И соединен с первым входом логического элемента ИЛИ-НЕ, выход пятнадцатого коммутатора соединен со вторым входом логического элемента ИЛИ-НЕ и первым входом D-триггера, выход D-триггера соединен с третьим входом логического элемента ИЛИ-НЕ, выход логического элемента ИЛИ-НЕ соединен со вторым входом первого логического элемента И и является третьим выходом блока вычисления невязок, причем блок подсчета невязок содержит первый блок вентилей, третий блок памяти с произвольным доступом, схему инкремента, третью схему сравнения кодов, шестнадцатый коммутатор, четвертый регистр-защелку, третий логический элемент И, четвертый логический элемент И, причем второй вход первого блока вентилей и третий вход шестнадцатого коммутатора являются первым входом блока подсчета невязок, выходы первого блока вентилей соединены с первыми входами третьего блока памяти с произвольным доступом, выходы третьего блока памяти с произвольным доступом соединены с первыми входами схемы инкремента, выходы схемы инкремента соединены с первыми входами первого блока вентилей и первыми входами третьей схемы сравнения кодов, вторые входы третьей схемы сравнения кодов соединены с шиной константы 't', выход третьей схемы сравнения кодов соединен с первым входом третьего логического элемента И, выход третьего элемента логическое И является первым выходом блока подсчета невязок, первые входы шестнадцатого коммутатора являются вторыми входами блока подсчета невязок, выходы шестнадцатого коммутатора соединены со вторыми входами третьего блока памяти с произвольным доступом, входы четвертого регистра-защелки являются третьими входами блока подсчета невязок, выходы четвертого регистра-защелки соединены со вторыми входами шестнадцатого коммутатора и являются вторыми выходами блока подсчета невязок, первый вход четвертого логического элемента И является четвертым входом блока подсчета невязок, второй вход четвертого логического элемента И является пятым входом блока подсчета невязок, выход четвертого логического элемента И соединен со вторым входом схемы инкремента и вторым входом третьего логического элемента И.The technical problem posed is solved by  what's in the Reed-Solomon code decoding device,  containing a data buffer  syndrome calculation unit,  Galois processor  discrete Fourier transform unit,  block for finding error positions,  unit for calculating error values,  the first adder of the Galois field elements,  moreover, the inputs of the buffer data memory and the inputs of the block computing syndromes are inputs of data symbols of the device for decoding Reed-Solomon codes,  the outputs of the data buffer memory are connected to the first inputs of the first adder of the Galois field elements,  the outputs of the syndrome calculation unit are connected to the first inputs of the Galois processor,  the first outputs of the Galois processor are connected to the first inputs of the discrete Fourier transform block,  the second outputs of the Galois processor are connected to the second inputs of the discrete Fourier transform block,  the third outputs of the Galois processor are connected to the third inputs of the discrete Fourier transform block,  the fourth outputs of the Galois processor are connected to the fourth inputs of the error position search unit,  the fifth outputs of the Galois processor are connected to the first inputs of the error value calculation unit,  the sixth outputs of the Galois processor are connected to the second inputs of the error value calculation unit,  the seventh outputs of the Galois processor are connected to the third inputs of the error value calculation unit,  the second outputs of the discrete Fourier transform unit are connected to the third inputs of the Galois processor,  the third outputs of the discrete Fourier transform unit are connected to the fourth inputs of the Galois processor,  the fourth outputs of the discrete Fourier transform unit are connected to the first inputs of the error position search unit,  the fifth output of the discrete Fourier transform unit is connected to the second input of the error position search unit,  the sixth outputs of the discrete Fourier transform unit are connected to the third inputs of the error position search unit,  the first outputs of the error position search unit are connected to the fifth inputs of the Galois processor,  the second outputs of the error position search unit are connected to the sixth inputs of the Galois processor,  the third outputs of the error position search unit are connected to the seventh inputs of the Galois processor,  the fourth outputs of the error position search unit are connected to the eighth inputs of the Galois processor,  the outputs of the unit for calculating error values are connected to the second inputs of the first adder of the Galois field elements,  the outputs of the first adder of the Galois field elements are the data outputs of the Reed-Solomon code decoding device,  a block for sorting character positions has been introduced,  moreover, the first inputs of the block for sorting the positions of characters are inputs of estimates of the reliability of the characters of the data of the Reed-Solomon code decoding device,  the fifth outputs of the block for searching error positions are connected to the second inputs of the block for sorting the positions of symbols,  the first outputs of the discrete Fourier transform unit are connected to the third inputs of the character position sorting unit,  the first outputs of the block for sorting character positions are connected to the second inputs of the Galois processor,  the second outputs of the block for sorting character positions are connected to the fifth inputs of the block for searching error positions,  moreover, the unit for sorting the positions of characters contains the first scheme for comparing codes,  first memory block of sorted items,  a second memory block of sorted items,  a third memory block of sorted items,  fourth block of memory of sorted items,  fifth block memory of sorted items,  first switch  second switch  third switch  fourth switch  fifth switch  Sixth switch  seventh switch  first counter  second counter  third counter  first decoder,  second decoder,  moreover, the first inputs of the first scheme for comparing codes are the first inputs of the block sorting character positions,  the second inputs of the first code comparison circuit are connected to the Thres constant bus,  the output of the first circuit comparing codes is connected to the second input of the first memory block of sorted items,  with the second input of the second memory block of sorted items,  with the second input of the third memory block of sorted positions,  with the second input of the fourth memory block of sorted positions and with the second input of the fifth memory block of sorted positions,  the first outputs of the first counter are connected to the first inputs of the first memory block of sorted items,  with the first inputs of the second memory block of sorted positions,  with the first inputs of the third block of memory of sorted items,  with the first inputs of the fourth memory block of sorted positions and with the first inputs of the fifth memory block of sorted positions,  the second output of the first counter is connected to the input of the second counter,  the outputs of the second counter are connected to the inputs of the first decoder,  the first output of the first decoder is connected to the third input of the first memory block of sorted items,  the second output of the first decoder is connected to the third input of the second memory block of the sorted positions,  the third output of the first decoder is connected to the third input of the third block of memory of sorted items,  the fourth output of the first decoder is connected to the third input of the fourth memory block of sorted items,  the fifth output of the first decoder is connected to the third input of the fifth memory block of sorted positions,  the outputs of the first memory block of sorted positions are connected to the second inputs of the first switch and the fourth inputs of the second switch,  the outputs of the second memory block of sorted positions are connected to the third inputs of the first switch and the fifth inputs of the second switch,  the outputs of the third memory block of sorted positions are connected to the fourth inputs of the first switch and the first inputs of the second switch,  the outputs of the fourth memory block of sorted positions are connected to the fifth inputs of the first switch and the second inputs of the second switch,  the outputs of the fifth memory block of sorted positions are connected to the first inputs of the first switch and the third inputs of the second switch,  the outputs of the third counter are connected to the sixth inputs of the first switch,  with the sixth inputs of the second switch and the inputs of the second decoder,  the first output of the second decoder is connected to the third input of the seventh switch,  the second output of the second decoder is connected to the third input of the third switch,  the third output of the second decoder is connected to the third input of the fourth switch,  the fourth output of the second decoder is connected to the third input of the fifth switch,  the fifth output of the second decoder is connected to the third input of the sixth switch,  the first entrances of the third,  the fourth  fifth  the sixth and seventh switches are the third inputs of the block sorting character positions,  second entrances of the third,  the fourth  fifth  the sixth and seventh switches are the second inputs of the block sorting character positions,  the outputs of the third switch are connected to the fourth inputs of the first memory block of sorted items,  the outputs of the fourth switch are connected to the fourth inputs of the second memory block of sorted positions,  the outputs of the fifth switch are connected to the fourth inputs of the third memory block of sorted positions,  the outputs of the sixth switch are connected to the fourth inputs of the fourth memory block of sorted positions,  the outputs of the seventh switch are connected to the fourth inputs of the fifth memory block of sorted positions,  the outputs of the first switch are the second outputs of the block for sorting character positions,  the outputs of the second switch are the first outputs of the block for sorting character positions,  moreover, the memory block of the sorted positions contains the first random access memory block,  a second random access memory unit,  the first logical element AND NOT,  the second logical element AND NOT,  fourth counter  fifth counter  eighth switch  Ninth switch  tenth switch  eleventh switch and subtractor,  moreover, the first inputs of the first random access memory block,  the first inputs of the second random access memory block are the first inputs of the sorted position memory block,  the first input of the first logical element AND NOT,  the first input of the second logical element AND NOT,  the third input of the eighth switch,  the third input of the ninth switch is the third input of the memory block of sorted items,  the second input of the first logical element AND NOT,  the second input of the second logical element AND is NOT the second input of the memory block of sorted positions,  the output of the first logical element AND is NOT connected to the second input of the first random access memory block and the input of the fourth counter,  the outputs of the fourth counter are connected to the first inputs of the eighth switch,  the second inputs of the eleventh switch and the first inputs of the subtractor,  the outputs of the eighth switch are connected to the third inputs of the first random access memory unit,  the outputs of the first random access memory unit are connected to the first inputs of the tenth switch,  the output of the second logical element AND is NOT connected to the second input of the second random access memory unit and the input of the fifth counter,  the outputs of the fifth counter are connected to the first inputs of the ninth switch,  the outputs of the ninth switch are connected to the third inputs of the second random access memory unit,  the outputs of the second random access memory unit are connected to the second inputs of the tenth switch,  the second inputs of the subtractor and the second inputs of the eighth switch are the fourth inputs of the memory block of sorted positions,  and the senior bit of the fourth inputs of the memory block of sorted items is connected to the third input of the eleventh switch,  the first outputs of the subtractor are connected to the second inputs of the ninth switch,  the second output of the subtractor is connected to the third input of the tenth switch,  the outputs of the tenth switch are connected to the first inputs of the eleventh switch,  the outputs of the eleventh switch are the outputs of the memory block sorted items,  moreover, the unit for finding error positions contains the first unit for calculating residuals,  the second block calculating the residuals,  first block of residual counting,  second block for calculating residuals,  twelfth switch  first register latch,  coefficient memory block,  first local control unit  moreover, the first inputs of the first local control device are the fourth inputs of the block search for error positions,  the second inputs of the first local control device and the first inputs of the coefficient memory block are the fifth inputs of the error position search block,  the third inputs of the unit for searching for error positions are the least significant bits of the second inputs of the coefficient memory block,  the first inputs of the block for searching error positions are the middle bits of the second inputs of the coefficient memory block,  the second input of the error position search block is the highest bit of the second inputs of the coefficient memory block,  the least significant bits of the first outputs of the coefficient memory block are connected to the first inputs of the first residual computing block and to the first inputs of the second residual computing block,  the middle bits of the first outputs of the coefficient memory block are connected to the third inputs of the first residual calculation block and to the third inputs of the second residual calculation block,  the senior bit of the first outputs of the coefficient memory block is connected to the fifth input of the first residual computing unit and to the fifth input of the second residual computing unit,  the least significant bits of the second outputs of the coefficient memory block are connected to the second inputs of the first residual computing unit and to the second inputs of the second residual computing unit,  the middle bits of the second outputs of the coefficient memory block are connected to the fourth inputs of the first residual calculation block and to the fourth inputs of the second residual calculation block,  the senior bit of the second outputs of the coefficient memory block is connected to the sixth input of the first residual computing unit and to the sixth input of the second residual computing unit,  the first outputs of the first block calculating the residuals are connected to the sixth inputs of the twelfth switch,  the second outputs of the first block computing the residuals are connected to the fifth inputs of the twelfth switch,  the third output of the first residual calculation unit is connected to the fourth input of the first residual calculation unit,  the fourth outputs of the first residual calculation unit are connected to the third inputs of the first residual calculation unit,  the fifth output of the first residual calculation unit is connected to the third input of the first local control device,  the first output of the first residual counting unit is connected to the fifth input of the first local control device,  the second outputs of the first block counting residuals connected to the fourth inputs of the twelfth switch,  the first outputs of the second residual calculation unit are connected to the first inputs of the twelfth switch,  the second outputs of the second block calculating the residuals are connected to the second inputs of the twelfth switch,  the fifth output of the second residual calculation unit is connected to the fourth input of the first local control device,  the fourth outputs of the second residual calculation unit are connected to the third inputs of the second residual calculation unit,  the third output of the second residual calculation unit is connected to the fourth input of the second residual calculation unit,  the second outputs of the second block counting residuals connected to the third inputs of the twelfth switch,  the first output of the second residual counting unit is connected to the sixth input of the first local control device,  the third output of the first local control device is connected to the seventh input of the first residual calculation unit,  the fourth output of the first local control device is connected to the eighth input of the first residual calculation unit,  the fifth output of the first local control device is connected to the ninth input of the first residual computing unit,  the sixth outputs of the first local control device are connected to the fourth inputs of the coefficient memory unit,  the seventh outputs of the first local control device are connected to the third inputs of the coefficient memory unit,  the eighth outputs of the first local control device are connected to the second inputs of the first residual counting unit,  the ninth output of the first local control device is connected to the first input of the first residual counting unit,  the tenth output of the first local control device is connected to the fifth input of the second residual counting unit,  the eleventh output of the first local control device is connected to the fourth input of the first register-latch,  the twelfth outputs of the first local control device are connected to the seventh inputs of the twelfth switch,  the thirteenth output of the first local control device is connected to the fifth input of the second residual counting unit,  the fourteenth output of the first local control device is connected to the first input of the second residual counting unit,  the fifteenth outputs of the first local control device are connected to the second inputs of the second residual counting unit,  the sixteenth output of the first local control device is connected to the ninth input of the second residual calculation unit, the seventeenth output of the first local control device is connected to the eighth input of the second residual calculation unit,  the eighteenth output of the first local control device is connected to the seventh input of the second residual calculation unit,  the first outputs of the first local control device are the fifth outputs of the error position search unit,  the second outputs of the first local control device are the first outputs of the error position search unit,  the first outputs of the twelfth switch are connected to the first inputs of the first register-latch,  the second outputs of the twelfth switch are connected to the second inputs of the first register-latch,  the third outputs of the twelfth switch are connected to the third inputs of the first register-latch,  the second outputs of the first register-latch connected to the tenth inputs of the first block calculating residuals,  the tenth inputs of the second block calculating the residuals and are the second outputs of the block searching for error positions,  the first outputs of the first latch register are the third outputs of the error position search unit,  the third outputs of the first latch register are the fourth outputs of the error position search unit,  wherein the residual calculation unit contains the thirteenth,  fourteenth and fifteenth switches,  second latch register,  third latch register,  the second adder of the Galois field elements,  the third adder of the Galois field elements,  the first inverter of the Galois field elements,  the first multiplier of the elements of the Galois field,  a second code comparison scheme,  the first selector of the zero elements of the Galois field,  the first logical element And,  the second logical element And,  logical element OR NOT  D trigger  moreover, the first inputs of the thirteenth switch are the first inputs of the block computing residuals,  the second inputs of the thirteenth switch are the second inputs of the block calculating residuals,  the first inputs of the fourteenth switch are the third inputs of the residual calculation unit,  the second inputs of the fourteenth switch are the fourth inputs of the block calculating residuals,  the first input of the fifteenth switch is the fifth input of the residual calculation unit,  the second input of the fifteenth switch is the sixth input of the residual calculation unit,  the third input of the thirteenth switch,  the third input of the fourteenth switch,  the third input of the fifteenth switch is the seventh input of the residual calculation unit,  the outputs of the thirteenth switch are connected to the first inputs of the second register-latch and the second inputs of the second adder of the Galois field elements,  the second input of the second register-latch,  the second input of the third register-latch,  the second input of the D-flip-flop is the eighth input of the residual calculation unit,  the outputs of the second register-latch are connected to the first inputs of the second adder of the Galois field elements and are the second outputs of the residual calculation unit,  the outputs of the second adder of the elements of the Galois field are connected to the inputs of the first inverter of the elements of the Galois field,  the outputs of the first inverter of the elements of the Galois field are connected to the first inputs of the first multiplier of the elements of the Galois field,  the outputs of the first multiplier of the Galois field elements are connected to the second inputs of the second code comparison circuit and are the fourth outputs of the residual calculation unit,  the first inputs of the second code comparison circuit are the tenth inputs of the residual computing unit,  the output of the second code comparison circuit is connected to the first input of the first logical element AND,  the output of the first logical element And is the fifth output of the block calculating the residuals,  the outputs of the fourteenth switch are connected to the first inputs of the third register-latch and the second inputs of the third adder of the Galois field elements,  the outputs of the third register-latch are connected to the first inputs of the third adder of the Galois field elements and are the first outputs of the residual calculation unit,  the outputs of the third adder of the elements of the Galois field are connected to the inputs of the first selector of the zero element of the Galois field and the second inputs of the multiplier of the elements of the Galois field,  the output of the first selector of the zero element of the Galois field is connected to the first input of the second logical element And,  the second input of the second logical element And is the ninth input of the block calculating the residuals,  the output of the second logical element AND is connected to the first input of the logical element OR NOT  the output of the fifteenth switch is connected to the second input of the OR-NOT logical element and the first input of the D-trigger,  the output of the D-trigger is connected to the third input of the logic element OR-NOT,  the output of the OR gate is NOT connected to the second input of the first logical gate AND is the third output of the block for calculating residuals,  wherein the residual counting unit comprises a first valve block,  third random access memory block,  increment scheme  third code comparison scheme,  sixteenth switch  fourth latch register,  the third logical element And,  fourth logical element AND,  moreover, the second input of the first block of gates and the third input of the sixteenth switch are the first input of the block counting residuals,  the outputs of the first block of gates are connected to the first inputs of the third random access memory block,  the outputs of the third random access memory block are connected to the first inputs of the increment circuit,  the outputs of the increment circuit are connected to the first inputs of the first valve block and the first inputs of the third code comparison circuit,  the second inputs of the third code comparison circuit are connected to the constant bus 't',  the output of the third code comparison circuit is connected to the first input of the third logical element AND,  the output of the third element is logical AND is the first output of the block for calculating residuals,  the first inputs of the sixteenth switch are the second inputs of the block counting residuals,  the outputs of the sixteenth switch are connected to the second inputs of the third random access memory block,  the inputs of the fourth register-latch are the third inputs of the block counting residuals,  the outputs of the fourth register-latch are connected to the second inputs of the sixteenth switch and are the second outputs of the block counting residuals,  the first input of the fourth logical element AND is the fourth input of the block for calculating residuals,  the second input of the fourth logical element AND is the fifth input of the block for calculating residuals,  the output of the fourth logical element AND is connected to the second input of the increment circuit and the second input of the third logical element I.

Введение в устройство блока сортировки позиций символов позволяет организовать в блоке поиска позиций ошибок поиск позиций ошибочных символов, управляемый надежностью символов кодового слова, обеспечивая тем самым быстрое нахождение позиций ошибокThe introduction to the device of the block for sorting the positions of characters allows you to organize in the block search for positions of errors the search for positions of erroneous characters, controlled by the reliability of the characters of the code word, thereby ensuring a quick finding of error positions

Сущность изобретения состоит в том, что в процесс поиска ошибочных символов за границей половины минимального кодового расстояния вводится управление информацией о надежности принятых из канала символов. Для этого используется таблица перестановок позиций символов кодового слова, полученная в результате сортировки символов по надежности.The essence of the invention lies in the fact that in the process of searching for erroneous characters beyond the half of the minimum code distance, information about the reliability of the symbols received from the channel is introduced. For this, a table of permutations of the positions of the symbols of the codeword is used, obtained as a result of sorting the symbols by reliability.

Для каждого кодового слова таблица перестановок формируется блоком сортировки позиций символов, в котором она хранится необходимое время. Эта таблица используется для формирования адресов памяти при записи результатов работы блока дискретного преобразования Фурье в блок поиска позиций ошибок веса t+1. Последовательное чтение данных из памяти в блоке поиска позиций ошибок формирует поток данных, упорядоченный в соответствии с надежностью символов кодового слова. В результате достаточно обработать небольшую часть этого потока, чтобы найти позиции ошибочных символов. Это значительно ускоряет работу заявляемого устройства декодирования.For each codeword, a permutation table is formed by a block for sorting the positions of characters in which it is stored for the required time. This table is used to generate memory addresses when recording the results of a discrete Fourier transform block into a block for finding error positions of weight t + 1. The sequential reading of data from the memory in the block for searching for error positions generates a data stream ordered in accordance with the reliability of the codeword symbols. As a result, it is enough to process a small part of this stream to find the positions of erroneous characters. This greatly speeds up the operation of the inventive decoding device.

На фиг.1 приведена функциональная схема предлагаемого устройства декодирования PC-кода. На фиг.2 изображена функциональная схема блока сортировки позиций символов; на следующей фиг.3 - функциональная схема одного из его основных блоков: блока памяти отсортированных позиций. На фиг.4 приведена функциональная схема блока поиска позиций ошибок, на следующих фиг.5-6 - функциональные схемы его основных блоков: блока вычисления невязок (фиг.5), блока подсчета невязок (фиг.6). На фиг.7 показана функциональная схема блока дискретного преобразования Фурье, на следующей фиг.8 - функциональная схема одного из его основных блоков: модуля дискретного преобразования Фурье многочлена Λ(2t)(х). На фиг.9 изображена временная диаграмма обработки кодовых слов предлагаемым устройством декодирования PC-кода. На фиг.10 приведен график с результатами исследований быстродействия заявляемого устройства в канале с аддитивным белым гауссовским шумом (AWGN) и модуляцией BPSK.Figure 1 shows the functional diagram of the proposed device for decoding a PC code. Figure 2 shows a functional block diagram of the sorting of positions of characters; in the following figure 3 is a functional diagram of one of its main blocks: a memory block of sorted positions. Figure 4 shows the functional block diagram of the search for error positions, in the following figures 5-6 - functional diagrams of its main blocks: block calculating residuals (figure 5), block counting residuals (figure 6). In Fig.7 shows a functional diagram of a unit of discrete Fourier transform, in the following Fig.8 is a functional diagram of one of its main blocks: module of a discrete Fourier transform of the polynomial Λ (2t) (x). Figure 9 shows a timing diagram of the processing of code words by the proposed decoding device of the PC code. Figure 10 shows a graph with the results of studies of the performance of the inventive device in the channel with additive white Gaussian noise (AWGN) and BPSK modulation.

В описании устройства и на чертежах используются следующие обозначения:In the description of the device and in the drawings, the following notation is used:

БВС - блок вычисления синдромов;BVS - block for calculating syndromes;

БСПС - блок сортировки позиций символов;ACAS - block for sorting character positions;

БДПФ - блок дискретного преобразования Фурье;BDPF - block of discrete Fourier transform;

БППО - блок поиска позиций ошибок;BPPO - block for finding error positions;

БВЗО - блок вычисления значений ошибок;BVZO - block for calculating error values;

БПОП - блок памяти отсортированных позиций;BPOP - memory block of sorted items;

Ct2 - двоичный счетчик;Ct2 is a binary counter;

DC - дешифратор;DC - decoder;

Mux - мультиплексор (коммутатор);Mux - multiplexer (switch);

RAM - память с произвольным доступом;RAM - random access memory;

Sub - вычитатель;Sub - subtractor;

МУУ - местное устройство управления;MUU - local control device;

Inv - инвертор в конечном поле;Inv - inverter in the final field;

Rg - регистр;Rg is the register;

БВ - блок вентилей;BV - valve block;

БВН - блок вычисления невязок;BVN - block for calculating residuals;

БПН - блок подсчета невязок;BPN - block for calculating residuals;

БПК - блок памяти коэффициентов;BOD - block memory coefficients;

m - разрядность элемента расширенного поля Галуа GF(2m);m is the bit depth of the element of the extended Galois field GF (2 m );

n - количество символов в кодовом слове PC-кода;n is the number of characters in the code word of the PC code;

k - количество информационных символов в кодовом слове;k is the number of information symbols in the codeword;

d - минимальное кодовое расстояние PC-кода, d=r+1;d is the minimum code distance of the PC code, d = r + 1;

t - число гарантированно исправляемых ошибок в кодовом слове

Figure 00000001
;t - the number of guaranteed correctable errors in the codeword
Figure 00000001
;

α - примитивный элемент поля Галуа GF(2m);α is a primitive element of the Galois field GF (2 m );

r(x)=rn-1xn-1+rn-2xn-2+…+r1x+r0 - многочлен принятого из канала кодового слова;r (x) = r n-1 x n-1 + r n-2 x n-2 + ... + r 1 x + r 0 is the polynomial of the codeword received from the channel;

с(х)=cn-1xn-1п-2xn-2+…+с1х+с0 - многочлен исправленного кодового слова;c (x) = c n-1 x n-1 + c n-2 x n-2 + ... + c 1 x + c 0 - polynomial of the corrected codeword;

S(x) - многочлен синдрома;S (x) is the polynomial of the syndrome;

Λ(2t)(х) - многочлен локаторов ошибок после 2t итераций алгоритма Берлекэмпа-Месси;Λ (2t) (x) - polynomial of error locators after 2t iterations of the Berlekamp-Messi algorithm;

B(2t)(x) - вспомогательный многочлен после 2t итераций алгоритма Берлекэмпа-Месси;B (2t) (x) is the auxiliary polynomial after 2t iterations of the Berlekamp-Messi algorithm;

L2t - формальная степень многочлена локаторов ошибок Λ(2t)(х);L 2t is the formal degree of the polynomial of error locators Λ (2t) (x);

Λ(2t+2)(x) - многочлен локаторов ошибок, полученный аналитическим продолжением алгоритма Берлекэмпа-Месси еще на 2 итерации;Λ (2t + 2) (x) is the polynomial of error locators obtained by analytic continuation of the Berlekamp-Messi algorithm for another 2 iterations;

Δ2t+1 и Δ2t+2 - невязки аналитического продолжения алгоритма Берлекэмпа-Месси на 2 итерации;Δ 2t + 1 and Δ 2t + 2 are the residuals of the analytic continuation of the Berlekamp-Messi algorithm at 2 iterations;

Λ'(х) - формальная производная многочлена локаторов ошибок;Λ '(x) is the formal derivative of the polynomial of error locators;

Ω(x) - многочлен значений ошибок;Ω (x) is the polynomial of error values;

{РЕ} - множество позиций ошибок в кодовом слове.{RE} - the set of error positions in the codeword.

Устройство декодирования PC-кода (фиг.1) содержит: буферную память данных 100, блок вычисления синдромов 200, процессор Галуа 300, блок дискретного преобразования Фурье 400, блок поиска позиций ошибок веса t+1 500, блок сортировки позиций символов 600, блок вычисления значений ошибок 700, первый сумматор элементов поля Галуа 800.The PC code decoding device (FIG. 1) contains: a data buffer 100, a syndrome calculation unit 200, a Galois processor 300, a discrete Fourier transform unit 400, a block for finding error positions of weight t + 1 500, a block for sorting symbol positions 600, a calculation block error values 700, the first adder of the Galois field elements 800.

На вход буферной памяти данных 100, вход блока вычисления синдромов 200 поступают символы ri кодового слова, принятого из канала (сигналы DIn). Выходы буферной памяти данных 100 соединены с первыми входами первого сумматора элементов поля Галуа 800. Выходы блока вычисления синдромов 200 соединены с первыми входами процессора Галуа 300. Первые выходы процессора Галуа 300 (сигналы Control) соединены с первыми входами блока дискретного преобразования Фурье 400. Вторые выходы процессора Галуа 300 (Λ(2t)(x)) соединены со вторыми входами блока дискретного преобразования Фурье 400. Третьи выходы процессора Галуа 300 (B(2t)(x)) соединены с третьими входами блока дискретного преобразования Фурье 400. Четвертые выходы процессора Галуа 300 (сигналы Control) соединены с четвертыми входами блока поиска позиций ошибок 500. Пятые выходы процессора Галуа 300 (Ω(х)) соединены с первыми входами блока вычисления значений ошибок 700. Шестые выходы процессора Галуа 300 (Λ'(х)) соединены со вторыми входами блока вычисления значений ошибок 700. Седьмые выходы процессора Галуа 300 ({РЕ}) соединены с третьими входами блока вычисления значений ошибок 700.At the input of the buffer data memory 100, the input of the block for computing syndromes 200, the symbols r i of the codeword received from the channel (signals DIn) are received. The outputs of the data buffer 100 are connected to the first inputs of the first adder of the Galois field elements 800. The outputs of the syndrome calculation unit 200 are connected to the first inputs of the Galois processor 300. The first outputs of the Galois processor 300 (Control signals) are connected to the first inputs of the discrete Fourier transform 400. Second outputs the Galois processor 300 (Λ (2t) (x)) is connected to the second inputs of the discrete Fourier transform 400. The third outputs of the Galois processor 300 (B (2t) (x)) are connected to the third inputs of the discrete Fourier transform 400. Fourth the outputs of the Galois processor 300 (Control signals) are connected to the fourth inputs of the error position search block 500. The fifth outputs of the Galois processor 300 (Ω (x)) are connected to the first inputs of the error value calculation unit 700. Sixth outputs of the Galois processor 300 (Λ '(x) ) are connected to the second inputs of the error value calculation unit 700. The seventh outputs of the Galois processor 300 ({PE}) are connected to the third inputs of the error value calculation unit 700.

Вторые выходы блока дискретного преобразования Фурье 400 (сигналы State) соединены с третьими входами процессора Галуа 300. Третьи выходы блока дискретного преобразования Фурье 400 ({РЕ}) соединены с четвертыми входами процессора Галуа 300. Четвертые выходы блока дискретного преобразования Фурье 400 (Ci|Di) соединены с первыми входами блока поиска позиций ошибок 500. Пятый выход блока дискретного преобразования Фурье 400 (Mskl) соединен со вторым входом блока поиска позиций ошибок 500. Шестые выходы блока дискретного преобразования Фурье 400 (Ai) соединены с третьими входами блока поиска позиций ошибок 500.The second outputs of the discrete Fourier transform 400 (State signals) are connected to the third inputs of the Galois processor 300. The third outputs of the discrete Fourier transform 400 ({PE}) are connected to the fourth inputs of the Galois 300 processor. Fourth outputs of the discrete Fourier transform 400 (C i | D i) connected to the first inputs of the block search position error 500. The fifth output of the discrete Fourier transform unit 400 (Mskl) connected to the second input of the search position error block 500. The six outputs of the discrete Fourier transform 400 (a i) connected third inputs block 500 positions troubleshooting.

Первые выходы блока поиска позиций ошибок 500 (сигналы State) соединены с пятыми входами процессора Галуа 300. Вторые выходы блока поиска позиций ошибок 500 (Δ) соединены с шестыми входами процессора Галуа 300. Третьи выходы блока поиска позиций ошибок 500 (Ai1) соединены с седьмыми входами процессора Галуа 300. Четвертые выходы блока поиска позиций ошибок 500 (Ci1|Di1) соединены с восьмыми входами процессора Галуа 300.The first outputs of the error position search unit 500 (State signals) are connected to the fifth inputs of the Galois 300 processor. The second outputs of the error position search unit 500 (Δ) are connected to the sixth inputs of the Galois 300 processor. The third outputs of the error position search unit 500 (A i1 ) are connected to the seventh inputs of the Galois processor 300. The fourth outputs of the error position search unit 500 (C i1 | D i1 ) are connected to the eighth inputs of the Galois processor 300.

Первые входы блока сортировки позиций символов 600 (сигналы SoftIn) являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона. Оценка надежности представляется двоичным числом без знака с фиксированной точкой. Большее значение числа соответствует большей надежности символов кодового слова.The first inputs of the block for sorting symbol positions 600 (SoftIn signals) are inputs of estimates of the reliability of the data symbols of the Reed-Solomon code decoding device. The reliability score is represented by an unsigned fixed-point binary number. A larger value corresponds to a greater reliability of the codeword characters.

Пятые выходы блока поиска позиций ошибок 500 ({РЕ'}) соединены со вторыми входами блока сортировки позиций символов 600. Первые выходы блока дискретного преобразования Фурье 400 (AddrR1) соединены с третьими входами блока сортировки позиций символов 600. Первые выходы блока сортировки позиций символов 600 ({РЕ}) соединены со вторыми входами процессора Галуа 300. Вторые выходы блока сортировки позиций символов 600 (AddrW) соединены с пятыми входами блока поиска позиций ошибок 500.The fifth outputs of the error position search block 500 ({PE '}) are connected to the second inputs of the symbol position sorting block 600. The first outputs of the discrete Fourier transform 400 (AddrR1) are connected to the third inputs of the symbol position sorting block 600. The first outputs of the symbol position sorting block 600 ({PE}) are connected to the second inputs of the Galois processor 300. The second outputs of the character position sorting unit 600 (AddrW) are connected to the fifth inputs of the error position search unit 500.

Выходы блока вычисления значений ошибок 700 соединены со вторыми входами первого сумматора элементов поля Галуа 800. Выходы первого сумматора элементов поля Галуа 800 являются выходами данных устройства декодирования кодов Рида-Соломона (сигналы DOut).The outputs of the error value calculation unit 700 are connected to the second inputs of the first adder of the Galois field elements 800. The outputs of the first adder of the Galois field elements 800 are data outputs of the Reed-Solomon code decoding device (DOut signals).

Блок сортировки позиций символов 600 (фиг.2) содержит первую схему сравнения кодов 610, первый блок памяти отсортированных позиций 620.1, второй блок памяти отсортированных позиций 620.2, третий блок памяти отсортированных позиций 620.3, четвертый блок памяти отсортированных позиций 620.4, пятый блок памяти отсортированных позиций 620.5, первый коммутатор 630.1, второй коммутатор 630.2, третий коммутатор 670.1, четвертый коммутатор 670.2, пятый коммутатор 670.3, шестой коммутатор 670.4, седьмой коммутатор 670.5, первый счетчик 640, второй счетчик 650.1, третий счетчик 650.2, первый дешифратор 660.1, второй дешифратор 660.2.The character position sorting unit 600 (FIG. 2) contains a first code comparison scheme 610, a first memory block of sorted positions 620.1, a second memory block of sorted positions 620.2, a third memory block of sorted positions 620.3, a fourth memory block of sorted positions 620.4, a fifth memory block of sorted positions 620.5, first switch 630.1, second switch 630.2, third switch 670.1, fourth switch 670.2, fifth switch 670.3, sixth switch 670.4, seventh switch 670.5, first counter 640, second counter 650.1, third counter 650.2, lane 660.1 th decoder, the second decoder 660.2.

Первые входы первой схемы сравнения кодов 610 (сигналы SoftIn) являются первыми входами блока сортировки позиций символов, а вторые входы первой схемы сравнения кодов соединены с шиной константы Thres. Выход первой схемы сравнения кодов 610 соединен со вторым входом первого блока памяти отсортированных позиций 620.1, со вторым входом второго блока памяти отсортированных позиций 620.2, со вторым входом третьего блока памяти отсортированных позиций 620.3, со вторым входом четвертого блока памяти отсортированных позиций 620.4 и со вторым входом пятого блока памяти отсортированных позиций 620.5. Первые выходы первого счетчика 640 соединены с первыми входами первого блока памяти отсортированных позиций 620.1, с первыми входами второго блока памяти отсортированных позиций 620.2, с первыми входами третьего блока памяти отсортированных позиций 620.3, с первыми входами четвертого блока памяти отсортированных позиций 620.4 и с первыми входами пятого блока памяти отсортированных позиций 620.5. Второй выход первого счетчика 640 соединен со входом второго счетчика 650.1. Выходы второго счетчика 650.1 соединены со входами первого дешифратора 660.1. Первый выход первого дешифратора 660.1 соединен с третьим входом

Figure 00000002
первого блока памяти отсортированных позиций 620.1. Второй выход первого дешифратора 660.1 соединен с третьим входом
Figure 00000003
второго блока памяти отсортированных позиций 620.2. Третий выход первого дешифратора 660.1 соединен с третьим входом
Figure 00000003
третьего блока памяти отсортированных позиций 620.3. Четвертый выход первого дешифратора 660.1 соединен с третьим входом
Figure 00000003
четвертого блока памяти отсортированных позиций 620.4. Пятый выход первого дешифратора 660.1 соединен с третьим входом
Figure 00000003
пятого блока памяти отсортированных позиций 620.5. Выходы первого блока памяти отсортированных позиций 620.1 соединены со вторыми входами первого коммутатора 630.1 и четвертыми входами второго коммутатора 630.2. Выходы второго блока памяти отсортированных позиций 620.2 соединены с третьими входами первого коммутатора 630.1 и пятыми входами второго коммутатора 630.2. Выходы третьего блока памяти отсортированных позиций 620.3 соединены с четвертыми входами первого коммутатора 630.1 и первыми входами второго коммутатора 630.2. Выходы четвертого блока памяти отсортированных позиций 620.4 соединены с пятыми входами первого коммутатора 630.1 и вторыми входами второго коммутатора 630.2. Выходы пятого блока памяти отсортированных позиций 620.5 соединены с первыми входами первого коммутатора 630.1 и третьими входами второго коммутатора 630.2. Выходы третьего счетчика 650.2 соединены с шестыми входами первого коммутатора 630.1, с шестыми входами второго коммутатора 630.2 и входами второго дешифратора 660.2. Первый выход второго дешифратора 660.2 соединен с третьим входом седьмого коммутатора 670.5, второй выход второго дешифратора 660.2 соединен с третьим входом третьего коммутатора 670.1. Третий выход второго дешифратора 660.2 соединен с третьим входом четвертого коммутатора 670.2. Четвертый выход второго дешифратора 660.2 соединен с третьим входом пятого коммутатора 670.3. Пятый выход второго дешифратора 660.2 соединен с третьим входом шестого коммутатора 670.4. Первые входы третьего 670.1, четвертого 670.2, пятого 670.3, шестого 670.4 и седьмого 670.5 коммутаторов (сигналы AdR1) являются третьими входами блока сортировки позиций символов 600. Вторые входы третьего 670.1, четвертого 670.2, пятого 670.3, шестого 670.4 и седьмого 670.5 коммутаторов (сигналы AdR2) являются вторыми входами блока сортировки позиций символов 600. Выходы третьего коммутатора 670.1 соединены с четвертыми входами Adr первого блока памяти отсортированных позиций 620.1. Выходы четвертого коммутатора 670.2 соединены с четвертыми входами Adr второго блока памяти отсортированных позиций 620.2. Выходы пятого коммутатора 670.3 соединены с четвертыми входами Adr третьего блока памяти отсортированных позиций 620.3. Выходы шестого коммутатора 670.4 соединены с четвертыми входами Adr четвертого блока памяти отсортированных позиций 620.4. Выходы седьмого коммутатора 670.5 соединены с четвертыми входами Adr пятого блока памяти отсортированных позиций 620.5. Выходы первого коммутатора 630.1 (сигналы DOR1) являются вторыми выходами блока сортировки позиций символов. Выходы второго коммутатора 630.2 (сигналы DOR2) являются первыми выходами блока сортировки позиций символов.The first inputs of the first code comparison circuit 610 (SoftIn signals) are the first inputs of the character position sorting unit, and the second inputs of the first code comparison circuit are connected to the Thres constant bus. The output of the first code comparison circuit 610 is connected to the second input of the first memory block of sorted positions 620.1, to the second input of the second memory block of sorted positions 620.2, to the second input of the third memory block of sorted positions 620.3, to the second input of the fourth memory block of sorted positions 620.4 and to the second input the fifth memory block of sorted positions 620.5. The first outputs of the first counter 640 are connected with the first inputs of the first memory block of sorted positions 620.1, with the first inputs of the second memory block of sorted positions 620.2, with the first inputs of the third memory block of sorted positions 620.3, with the first inputs of the fourth memory block of sorted positions 620.4 and with the first inputs of the fifth block memory sorted items 620.5. The second output of the first counter 640 is connected to the input of the second counter 650.1. The outputs of the second counter 650.1 are connected to the inputs of the first decoder 660.1. The first output of the first decoder 660.1 is connected to the third input
Figure 00000002
the first memory block of sorted positions 620.1. The second output of the first decoder 660.1 is connected to the third input
Figure 00000003
the second memory block of sorted positions 620.2. The third output of the first decoder 660.1 is connected to the third input
Figure 00000003
the third memory block of sorted positions 620.3. The fourth output of the first decoder 660.1 is connected to the third input
Figure 00000003
fourth block of memory of sorted positions 620.4. The fifth output of the first decoder 660.1 is connected to the third input
Figure 00000003
the fifth memory block of sorted positions 620.5. The outputs of the first memory block of sorted positions 620.1 are connected to the second inputs of the first switch 630.1 and the fourth inputs of the second switch 630.2. The outputs of the second memory block of sorted positions 620.2 are connected to the third inputs of the first switch 630.1 and the fifth inputs of the second switch 630.2. The outputs of the third memory block of sorted positions 620.3 are connected to the fourth inputs of the first switch 630.1 and the first inputs of the second switch 630.2. The outputs of the fourth memory block of sorted positions 620.4 are connected to the fifth inputs of the first switch 630.1 and the second inputs of the second switch 630.2. The outputs of the fifth memory block of sorted positions 620.5 are connected to the first inputs of the first switch 630.1 and the third inputs of the second switch 630.2. The outputs of the third counter 650.2 are connected to the sixth inputs of the first switch 630.1, with the sixth inputs of the second switch 630.2 and the inputs of the second decoder 660.2. The first output of the second decoder 660.2 is connected to the third input of the seventh switch 670.5, the second output of the second decoder 660.2 is connected to the third input of the third switch 670.1. The third output of the second decoder 660.2 is connected to the third input of the fourth switch 670.2. The fourth output of the second decoder 660.2 is connected to the third input of the fifth switch 670.3. The fifth output of the second decoder 660.2 is connected to the third input of the sixth switch 670.4. The first inputs of the third 670.1, fourth 670.2, fifth 670.3, sixth 670.4 and seventh 670.5 switches (AdR1 signals) are the third inputs of the character position sorting block 600. The second inputs of the third 670.1, fourth 670.2, fifth 670.3, sixth 670.4 and seventh 670.5 switches (AdR2 signals ) are the second inputs of the block for sorting positions of symbols 600. The outputs of the third switch 670.1 are connected to the fourth inputs Adr of the first memory block of the sorted positions 620.1. The outputs of the fourth switch 670.2 are connected to the fourth inputs Adr of the second memory block of sorted positions 620.2. The outputs of the fifth switch 670.3 are connected to the fourth inputs Adr of the third memory block of sorted positions 620.3. The outputs of the sixth switch 670.4 are connected to the fourth inputs Adr of the fourth memory block of sorted positions 620.4. The outputs of the seventh switch 670.5 are connected to the fourth inputs Adr of the fifth memory block of sorted positions 620.5. The outputs of the first switch 630.1 (DOR1 signals) are the second outputs of the character position sorting unit. The outputs of the second switch 630.2 (DOR2 signals) are the first outputs of the character position sorting unit.

Все используемые в блоке 600 счетчики - двоичные: счетчик 640 работает с коэффициентом пересчета n, счетчики 650 работают с коэффициентом перечета 5.All counters used in block 600 are binary: counter 640 operates with a conversion factor n, counters 650 operate with a conversion factor of 5.

Дешифраторы 660 имеют инверсные выходы. На i-х выходах дешифраторов (i=1,…,5) появляются значения логического ноля (активный уровень), когда на их входы подаются значения «i-1».Decoders 660 have inverse outputs. At the i-outputs of the decoders (i = 1, ..., 5), the values of the logical zero (active level) appear when the values “i-1” are sent to their inputs.

Все коммутаторы в блоке 600-m-разрядные. На выходы коммутаторов 630 подаются значения их «i-х» входов (i=1,…,5), если на их шестые входы подаются значения «i-1». На выходы коммутаторов 670 подаются значения их первых входов, если на их третьи входы подаются значения логического ноля.All switches in the block are 600-m-bit. The outputs of the switches 630 are supplied with the values of their “i-x” inputs (i = 1, ..., 5), if the values “i-1” are supplied to their sixth inputs. The outputs of the switches 670 are supplied with the values of their first inputs, if the values of the logical zero are fed to their third inputs.

Блок памяти отсортированных позиций (фиг.3) содержит первый блок памяти с произвольным доступом 621.1, второй блок памяти с произвольным доступом 621.2, первый логический элемент И-НЕ 622, второй логический элемент И-НЕ 627, четвертый счетчик 623.1, пятый счетчик 623.2, восьмой коммутатор 624.1, девятый коммутатор 624.2, десятый коммутатор 625.1, одиннадцатый коммутатор 625.2 и вычитатель 626.The sorted position memory block (Fig. 3) contains a first random access memory block 621.1, a second random access memory block 621.2, a first NAND gate 622, a second NAND gate 627, a fourth counter 623.1, a fifth counter 623.2, the eighth switch 624.1, the ninth switch 624.2, the tenth switch 625.1, the eleventh switch 625.2 and the subtractor 626.

Первые входы первого блока памяти с произвольным доступом 621.1, первые входы второго блока памяти с произвольным доступом 621.2 являются первыми входами DI блока памяти отсортированных позиций. Первый вход первого логического элемента И-НЕ 622, первый вход второго логического элемента И-НЕ 627, третий вход восьмого коммутатора 624.1, третий вход девятого коммутатора 624.2 являются третьим входом

Figure 00000003
блока памяти отсортированных позиций. Второй вход первого логического элемента И-НЕ 622, второй вход второго логического элемента И-НЕ 627 являются вторым входом S блока памяти отсортированных позиций. Выход первого логического элемента И-НЕ 622 соединен со вторым входом
Figure 00000003
первого блока памяти с произвольным доступом 621.1 и входом четвертого счетчика 623.1. Выходы четвертого счетчика 623.1 соединены с первыми входами восьмого коммутатора 624.1, вторыми входами одиннадцатого коммутатора 625.2 и первыми входами вычитателя 626. Выходы восьмого коммутатора 624.1 соединены с третьими входами А первого блока памяти с произвольным доступом 621.1. Выходы первого блока памяти с произвольным доступом 621.1 соединены с первыми входами десятого коммутатора 625.1. Выход второго логического элемента И-НЕ 627 соединен со вторым входом
Figure 00000003
второго блока памяти с произвольным доступом 621.2 и входом пятого счетчика 623.2. Выходы пятого счетчика 623.2 соединены с первыми входами девятого коммутатора 624.2. Выходы девятого коммутатора 624.2 соединены с третьими входами А второго блока памяти с произвольным доступом 621.2. Выходы второго блока памяти с произвольным доступом 621.2 соединены со вторыми входами десятого коммутатора 625.1. Вторые входы вычитателя 626 и вторые входы восьмого коммутатора 624.1 (сигналы Adr) являются четвертыми входами блока памяти отсортированных позиций, а старший разряд четвертых входов блока памяти отсортированных позиций соединен с третьим входом одиннадцатого коммутатора 625.2. Первые выходы вычитателя 626 соединены со вторыми входами девятого коммутатора 624.2. Второй выход вычитателя 626 соединен с третьим входом десятого коммутатора 625.1. Выходы десятого коммутатора 625.1 соединены с первыми входами одиннадцатого коммутатора 625.2. Выходы одиннадцатого коммутатора 625.2 являются выходами блока памяти отсортированных позиций.The first inputs of the first random access memory unit 621.1, the first inputs of the second random access memory unit 621.2 are the first inputs DI of the sorted position memory unit. The first input of the first gate AND-622, the first input of the second gate AND 627, the third input of the eighth switch 624.1, the third input of the ninth switch 624.2 are the third input
Figure 00000003
block memory of sorted items. The second input of the first logical element NAND 622, the second input of the second logical element NAND 627 are the second input S of the memory block of sorted positions. The output of the first logical element AND-622 is connected to the second input
Figure 00000003
the first random access memory block 621.1 and the input of the fourth counter 623.1. The outputs of the fourth counter 623.1 are connected to the first inputs of the eighth switch 624.1, the second inputs of the eleventh switch 625.2 and the first inputs of the subtractor 626. The outputs of the eighth switch 624.1 are connected to the third inputs A of the first random access memory block 621.1. The outputs of the first random access memory block 621.1 are connected to the first inputs of the tenth switch 625.1. The output of the second logical element AND-627 is connected to the second input
Figure 00000003
the second random access memory block 621.2 and the input of the fifth counter 623.2. The outputs of the fifth counter 623.2 are connected to the first inputs of the ninth switch 624.2. The outputs of the ninth switch 624.2 are connected to the third inputs A of the second random access memory block 621.2. The outputs of the second random access memory block 621.2 are connected to the second inputs of the tenth switch 625.1. The second inputs of the subtractor 626 and the second inputs of the eighth switch 624.1 (Adr signals) are the fourth inputs of the sorted position memory block, and the highest bit of the fourth inputs of the sorted position memory block is connected to the third input of the eleventh switch 625.2. The first outputs of the subtractor 626 are connected to the second inputs of the ninth switch 624.2. The second output of the subtractor 626 is connected to the third input of the tenth switch 625.1. The outputs of the tenth switch 625.1 are connected to the first inputs of the eleventh switch 625.2. The outputs of the eleventh switch 625.2 are the outputs of the memory block sorted items.

Блоки памяти с произвольным доступом 621 содержат n log2n-разрядных ячеек. Счетчики 623 - двоичные log2n-разрядные. Такую же разрядность имеют коммутаторы 624 и 625. Они осуществляют коммутацию с двух направлений, передавая значения своих первых входов на выходы, когда на их третьи входы подается значение логического ноля.621 random access memory blocks contain n log 2 n-bit cells. Counters 623 are binary log 2 n-bit. Switches 624 and 625 have the same bit depth. They carry out switching from two directions, passing the values of their first inputs to the outputs, when a logical zero value is supplied to their third inputs.

Вычитатель 626 осуществляет вычитание содержимого счетчика 623.1 из значения, поданного на четвертые входы блока 620 (сигналы Adr). На втором выходе вычитателя формируется сигнал заема.Subtractor 626 subtracts the contents of counter 623.1 from the value supplied to the fourth inputs of block 620 (Adr signals). At the second output of the subtractor, a loan signal is generated.

Блок поиска позиций ошибок (фиг.4) содержит первый блок вычисления невязок 510.1, второй блок вычисления невязок 510.2, первый блок подсчета невязок 520.1, второй блок подсчета невязок 520.2, двенадцатый коммутатор 530, первый регистр-защелку 540, блок памяти коэффициентов 550, первое местное устройство управления 560.The error position search unit (Fig. 4) contains a first residual calculation unit 510.1, a second residual calculation unit 510.2, a first residual calculation unit 520.1, a second residual calculation unit 520.2, a twelfth switch 530, a first latch register 540, a coefficient memory 550, a first local control device 560.

Первые входы первого местного устройства управления 560 (сигналы Control) являются четвертыми входами блока поиска позиций ошибок 500. Вторые входы первого местного устройства управления 560 и первые входы блока памяти коэффициентов 550 (сигналы AddrW) являются пятыми входами блока поиска позиций ошибок. Третьи входы блока поиска позиций ошибок 500 (сигналы Ai) являются младшими разрядами вторых входов блока памяти коэффициентов 550. Первые входы блока поиска позиций ошибок 500 являются средними разрядами вторых входов блока памяти коэффициентов 550 (Ci|Di). Второй вход блока поиска позиций ошибок 500 (Msk1) является старшим разрядом вторых входов блока памяти коэффициентов 550 (Mask1). Младшие разряды первых выходов DR1 блока памяти коэффициентов 550 (сигналы A'i) соединены с первыми входами первого блока вычисления невязок 510.1 и с первыми входами второго блока вычисления невязок 510.2. Средние разряды первых выходов DR1 блока памяти коэффициентов 550 (C'i|D'i) соединены с третьими входами первого блока вычисления невязок 510.1 и с третьими входами второго блока вычисления невязок 510.2. Старший разряд первых выходов DR1 блока памяти коэффициентов 550 (Msk1') соединен с пятым входом первого блока вычисления невязок 510.1 и с пятым входом второго блока вычисления невязок 510.2. Младшие разряды вторых выходов DR2 блока памяти коэффициентов 550 (А''i) соединены со вторыми входами первого блока вычисления невязок 510.1 и со вторыми входами второго блока вычисления невязок 510.2. Средние разряды вторых выходов DR2 блока памяти коэффициентов 550 (С''i|D''i) соединены с четвертыми входами первого блока вычисления невязок 510.1 и с четвертыми входами второго блока вычисления невязок 510.2. Старший разряд вторых выходов DR2 блока памяти коэффициентов 550 (Msk1'') соединен с шестым входом первого блока вычисления невязок 510.1 и с шестым входом второго блока вычисления невязок 510.2.The first inputs of the first local control device 560 (Control signals) are the fourth inputs of the error position search unit 500. The second inputs of the first local control device 560 and the first inputs of the coefficient memory 550 (AddrW signals) are the fifth inputs of the error position search unit. The third inputs of the error position search block 500 (signals A i ) are the lower bits of the second inputs of the coefficient memory 550. The first inputs of the error position search block 500 are the middle bits of the second inputs of the coefficient memory 550 (C i | D i ). The second input of the error position search block 500 (Msk1) is the highest bit of the second inputs of the coefficient memory block 550 (Mask1). The least significant bits of the first outputs D R1 of the coefficient memory block 550 (signals A ′ i ) are connected to the first inputs of the first residual calculation block 510.1 and to the first inputs of the second residual calculation block 510.2. The middle bits of the first outputs D R1 of the coefficient memory 550 (C ′ i | D ′ i ) are connected to the third inputs of the first residual calculation block 510.1 and to the third inputs of the second residual calculation block 510.2. The high-order bit of the first outputs D R1 of the coefficient memory unit 550 (Msk1 ') is connected to the fifth input of the first residual calculation block 510.1 and to the fifth input of the second residual calculation block 510.2. The low-order bits of the second outputs D R2 of the coefficient memory unit 550 (A '' i ) are connected to the second inputs of the first residual calculation block 510.1 and to the second inputs of the second residual calculation block 510.2. The middle bits of the second outputs D R2 of the coefficient memory 550 (C '' i | D '' i ) are connected to the fourth inputs of the first residual calculation block 510.1 and to the fourth inputs of the second residual calculation block 510.2. The senior bit of the second outputs D R2 of the coefficient memory block 550 (Msk1 '') is connected to the sixth input of the first residual calculation block 510.1 and to the sixth input of the second residual calculation block 510.2.

Первые выходы первого блока вычисления невязок 510.1 (сигналы (Ci1|Di1)1) соединены с шестыми входами двенадцатого коммутатора 530. Вторые выходы первого блока вычисления невязок 510.1 ((Ai1)1) соединены с пятыми входами двенадцатого коммутатора 530. Третий выход первого блока вычисления невязок 510.1 (¬Msk21) соединен с четвертым входом первого блока подсчета невязок 520.1. Четвертые выходы первого блока вычисления невязок 510.1 (Δ'1) соединены с третьими входами первого блока подсчета невязок 520.1. Пятый выход первого блока вычисления невязок 510.1 (SXi1) соединен с третьим входом местного устройства управления 560. Первый выход первого блока подсчета невязок 520.1 (St1) соединен с пятым входом первого местного устройства управления 560. Вторые выходы первого блока подсчета невязок 520.1 (Δ''1) соединены с четвертыми входами двенадцатого коммутатора 530.The first outputs of the first residual calculation block 510.1 (signals (C i1 | D i1 ) 1 ) are connected to the sixth inputs of the twelfth switch 530. The second outputs of the first residual calculation block 510.1 ((A i1 ) 1 ) are connected to the fifth inputs of the twelfth switch 530. Third output the first block of calculating residuals 510.1 (¬Msk2 1 ) is connected to the fourth input of the first block of calculating residuals 520.1. The fourth outputs of the first block of calculation of residuals 510.1 (Δ ' 1 ) are connected to the third inputs of the first block of calculation of residuals 520.1. The fifth output of the first residual calculation unit 510.1 (SX i1 ) is connected to the third input of the local control device 560. The first output of the first residual calculation unit 520.1 (St 1 ) is connected to the fifth input of the first local residual control device 560. The second outputs of the first residual calculation unit 520.1 (Δ '' 1 ) connected to the fourth inputs of the twelfth switch 530.

Первые выходы второго блока вычисления невязок 510.1 (сигналы (Ci1|Di1)2) соединены с первыми входами двенадцатого коммутатора 530. Вторые выходы второго блока вычисления невязок 510.2 ((Ai1)2) соединены со вторыми входами двенадцатого коммутатора 530. Пятый выход второго блока вычисления невязок 510.2 (SXi2) соединен с четвертым входом первого местного устройства управления 560. Четвертые выходы второго блока вычисления невязок 510.2 (Δ'2) соединены с третьими входами второго блока подсчета невязок 520.2. Третий выход второго блока вычисления невязок 510.2 (¬Msk22) соединен с четвертым входом второго блока подсчета невязок 520.2. Вторые выходы второго блока подсчета невязок 520.2 (Δ''2) соединены с третьими входами двенадцатого коммутатора 530. Первый выход второго блока подсчета невязок 520.2 (St2) соединен с шестым входом первого местного устройства управления 560. Третий выход первого местного устройства управления 560 (CMx1) соединен с седьмым входом первого блока вычисления невязок 510.1. Четвертый выход первого местного устройства управления 560 (Ld1) соединен с восьмым входом первого блока вычисления невязок 510.1. Пятый выход первого местного устройства управления 560 (EM1) соединен с девятым входом первого блока вычисления невязок 510.1. Шестые выходы первого местного устройства управления 560 (AR1) соединены с четвертыми входами AR1 блока памяти коэффициентов 550. Седьмые выходы первого местного устройства управления 560 (AR2) соединены с третьими входами AR2 блока памяти коэффициентов 550. Восьмые выходы первого местного устройства управления 560 (AI1) соединены со вторыми входами первого блока подсчета невязок 520.1. Девятый выход первого местного устройства управления 560 (I1) соединен с первым входом первого блока подсчета невязок 520.1. Десятый выход местного первого устройства управления 560 (E1) соединен с пятым входом первого блока подсчета невязок 520.1. Одиннадцатый выход первого местного устройства управления 560 (L) соединен с четвертым входом первого регистра-защелки 540. Двенадцатые выходы первого местного устройства управления 560 (СМх) соединены с седьмыми входами двенадцатого коммутатора 530. Тринадцатый выход первого местного устройства управления 560 (Е2) соединен с пятым входом второго блока подсчета невязок 520.2. Четырнадцатый выход первого местного устройства управления 560 (I2) соединен с первым входом второго блока подсчета невязок 520.2. Пятнадцатые выходы первого местного устройства управления 560 (AI2) соединены со вторыми входами второго блока подсчета невязок 520.2. Шестнадцатый выход первого местного устройства управления 560 (ЕМ2) соединен с девятым входом второго блока вычисления невязок 510.2. Семнадцатый выход первого местного устройства управления 560 (Ld2) соединен с восьмым входом второго блока вычисления невязок 510.2. Восемнадцатый выход первого местного устройства управления 560 (СМх2) соединен с седьмым входом второго блока вычисления невязок 510.2. Первые выходы первого местного устройства управления 560 ({РЕ'}) являются пятыми выходами блока поиска позиций ошибок 500. Вторые выходы первого местного устройства управления 560 (State) являются первыми выходами блока поиска позиций ошибок 500. Первые выходы двенадцатого коммутатора 530 соединены с первыми входами первого регистра-защелки 540. Вторые выходы двенадцатого коммутатора 530 соединены со вторыми входами первого регистра-защелки 540. Третьи выходы двенадцатого коммутатора 530 соединены с третьими входами первого регистра-защелки 540. Вторые выходы первого регистра-защелки 540 (Δ) соединены с десятыми входами первого блока вычисления невязок 510.1, десятыми входами второго блока вычисления невязок 510.2 и являются вторыми выходами блока поиска позиций ошибок 500. Первые выходы первого регистра-защелки 540 (Ai1) являются третьими выходами блока поиска позиций ошибок 500. Третьи выходы первого регистра-защелки 540 (Ci1|Di1) являются четвертыми выходами блока поиска позиций ошибок 500.The first outputs of the second residual calculation block 510.1 (signals (C i1 | D i1 ) 2 ) are connected to the first inputs of the twelfth switch 530. The second outputs of the second residual calculation block 510.2 ((A i1 ) 2 ) are connected to the second inputs of the twelfth switch 530. Fifth output the second residual computing unit 510.2 (SX i2 ) is connected to the fourth input of the first local control device 560. The fourth outputs of the second residual computing unit 510.2 (Δ ' 2 ) are connected to the third inputs of the second residual computing unit 520.2. The third output of the second residuals calculation unit 510.2 (¬Msk2 2 ) is connected to the fourth input of the second residuals calculation unit 520.2. The second outputs of the second residuals counting unit 520.2 (Δ '' 2 ) are connected to the third inputs of the twelfth switch 530. The first output of the second residuals counting unit 520.2 (St 2 ) is connected to the sixth input of the first local control device 560. The third output of the first local control device 560 ( CMx 1 ) is connected to the seventh input of the first residual calculation unit 510.1. The fourth output of the first local control device 560 (Ld 1 ) is connected to the eighth input of the first residual calculation unit 510.1. The fifth output of the first local control device 560 (EM 1 ) is connected to the ninth input of the first residual calculation unit 510.1. The sixth outputs of the first local control device 560 (AR1) are connected to the fourth inputs A R1 of the coefficient memory 550. The seventh outputs of the first local control device 560 (AR2) are connected to the third inputs A R2 of the coefficient memory 550. The eighth outputs of the first local control device 560 ( AI 1 ) connected to the second inputs of the first block counting residuals 520.1. The ninth output of the first local control device 560 (I 1 ) is connected to the first input of the first residual counting unit 520.1. The tenth output of the local first control device 560 (E 1 ) is connected to the fifth input of the first residual counting unit 520.1. The eleventh output of the first local control device 560 (L) is connected to the fourth input of the first register-latch 540. The twelfth outputs of the first local control device 560 (CMx) are connected to the seventh inputs of the twelfth switch 530. The thirteenth output of the first local control device 560 (E 2 ) is connected with the fifth input of the second residual counting unit 520.2. The fourteenth output of the first local control device 560 (I 2 ) is connected to the first input of the second residual counting unit 520.2. The fifteenth outputs of the first local control device 560 (AI 2 ) are connected to the second inputs of the second residual counting unit 520.2. The sixteenth output of the first local control device 560 (EM 2 ) is connected to the ninth input of the second residual calculation unit 510.2. The seventeenth output of the first local control device 560 (Ld 2 ) is connected to the eighth input of the second residual calculation unit 510.2. The eighteenth output of the first local control device 560 (CMx 2 ) is connected to the seventh input of the second residual calculation unit 510.2. The first outputs of the first local control device 560 ({PE '}) are the fifth outputs of the error position search unit 500. The second outputs of the first local control device 560 (State) are the first outputs of the error position search unit 500. The first outputs of the twelfth switch 530 are connected to the first inputs the first register-latch 540. The second outputs of the twelfth switch 530 are connected to the second inputs of the first register-latch 540. The third outputs of the twelfth switch 530 are connected to the third inputs of the first register-latch 540. The second Exit first latch 540 (Δ) are connected to the inputs of the first tenth calculation unit residuals 510.1, decimals inputs of the second calculation unit residuals are 510.2 and second output unit 500. The position error search first outputs of the first latch 540 (A i1) are third outputs unit for finding error positions 500. The third outputs of the first register-latch 540 (C i1 | D i1 ) are the fourth outputs of the unit for searching for error positions 500.

Коммутатор 530 - трехсекционный двунаправленный. Первый и шестой входы коммутатора являются входами первой секции, второй и пятый входы - входами второй секции, третий и четвертый входы - входами третьей секции.Switch 530 is a three-section bi-directional. The first and sixth inputs of the switch are inputs of the first section, the second and fifth inputs are inputs of the second section, the third and fourth inputs are inputs of the third section.

Блок вычисления невязок (фиг.5) содержит тринадцатый 511.1, четырнадцатый 511.2 и пятнадцатый коммутаторы 511.0, второй регистр-защелку 512.1, третий регистр-защелку 512.2, второй сумматор элементов поля Галуа 513.1, третий сумматор элементов поля Галуа 513.2, первый инвертор элементов поля Галуа 514, первый перемножитель элементов поля Галуа 515, вторую схему сравнения кодов 516.1, первый селектор нулевого элемента поля Галуа 516.2, первый логический элемент И 517.2, второй логический элемент И 517.1, логический элемент ИЛИ-НЕ 518, D-триггер 519.The residual computing unit (FIG. 5) contains the thirteenth 511.1, fourteenth 511.2 and fifteenth switches 511.0, a second latch register 512.1, a third latch register 512.2, a second adder of Galois field elements 513.1, a third adder of Galois field elements 513.2, a first inverter of Galois field elements 514, the first Galois field element multiplier 515, the second code comparison circuit 516.1, the first Galois field zero element selector 516.2, the first logical element AND 517.2, the second logical element AND 517.1, the logical element OR-NOT 518, D-trigger 519.

Первые входы тринадцатого коммутатора 511.1 (сигнал Ai') являются первыми входами блока вычисления невязок. Вторые входы тринадцатого коммутатора 511.1 (Ai'') являются вторыми входами блока вычисления невязок. Первые входы четырнадцатого коммутатора 511.2 (C'i(D'i)) являются третьими входами блока вычисления невязок. Вторые входы четырнадцатого коммутатора 511.2 (С''i(D''i)) являются четвертыми входами блока вычисления невязок. Первый вход пятнадцатого коммутатора 511.0 (Msk1') является пятым входом блока вычисления невязок. Второй вход пятнадцатого коммутатора 511.0 (MSk1'') является шестым входом блока вычисления невязок.The first inputs of the thirteenth switch 511.1 (signal A i ' ) are the first inputs of the residual calculation unit. The second inputs of the thirteenth switch 511.1 (A i '') are the second inputs of the residual calculation unit. The first inputs of the fourteenth switch 511.2 (C ' i (D' i )) are the third inputs of the residual calculation unit. The second inputs of the fourteenth switch 511.2 (C '' i (D '' i )) are the fourth inputs of the residual calculation unit. The first input of the fifteenth switch 511.0 (Msk1 ') is the fifth input of the residual calculation unit. The second input of the fifteenth switch 511.0 (MSk1 '') is the sixth input of the residual calculation unit.

Третий вход тринадцатого коммутатора 511.1, третий вход четырнадцатого коммутатора 511.2, третий вход пятнадцатого коммутатора 511.0 являются седьмым входом блока вычисления невязок, на который подается сигнал СМх. Выходы тринадцатого коммутатора 511.1 соединены с первыми входами второго регистра-защелки 512.1 и вторыми входами второго сумматора элементов поля Галуа 513.1. Второй вход второго регистра-защелки 512.1, второй вход третьего регистра-защелки 512.2, второй вход D-триггера 519 являются восьмым входом блока вычисления невязок, на который подается сигнал Ld. Выходы второго регистра-защелки 512.1 (сигналы Ai1) соединены с первыми входами второго сумматора элементов поля Галуа 513.1 и являются вторыми выходами блока вычисления невязок. Выходы второго сумматора элементов поля Галуа 513.1 соединены со входами первого инвертора элементов поля Галуа 514. Выходы первого инвертора элементов поля Галуа 514 соединены с первыми входами первого перемножителя элементов поля Галуа 515. Выходы первого перемножителя элементов поля Галуа 515 (сигналы Δ') соединены со вторыми входами второй схемы сравнения кодов 516.1 и являются четвертыми выходами блока вычисления невязок. Первые входы второй схемы сравнения кодов 516.1 являются десятыми входами блока вычисления невязок, на которые подаются сигналы Δ. Выход второй схемы сравнения кодов 516.1 соединен с первым входом первого логического элемента И 517.1. Выход первого логического элемента И 517.1 (сигнал SXi) является пятым выходом блока вычисления невязок. Выходы четырнадцатого коммутатора 511.2 соединены с первыми входами третьего регистра-защелки 512.2 и вторыми входами третьего сумматора элементов поля Галуа 513.3. Выходы третьего регистра-защелки 512.2 (Ci1|Di1) соединены с первыми входами третьего сумматора элементов поля Галуа 513.2 и являются первыми выходами блока вычисления невязок. Выходы третьего сумматора элементов поля Галуа 513.2 соединены со входами первого селектора нулевого элемента поля Галуа 516.2 и вторыми входами первого перемножителя элементов поля Галуа 515. Выход первого селектора нулевого элемента поля Галуа 516.2 соединен с первым входом второго логического элемента И 517.2. Второй вход второго логического элемента И 517.2 является девятым входом блока вычисления невязок, на который подается сигнал ЕМ. Выход второго логического элемента И 517.2 соединен с первым входом логического элемента ИЛИ-НЕ 518. Выход пятнадцатого коммутатора 511.0 соединен со вторым входом логического элемента ИЛИ-НЕ 518 и первым входом D-триггера 519. Выход D-триггера 519 соединен с третьим входом логического элемента ИЛИ-НЕ 518. Выход логического элемента ИЛИ-НЕ 518 (¬Msk2) соединен со вторым входом первого логического элемента И 517.1 и является третьим выходом блока вычисления невязок.The third input of the thirteenth switch 511.1, the third input of the fourteenth switch 511.2, the third input of the fifteenth switch 511.0 are the seventh input of the residual computation unit, to which the signal Cmx is supplied. The outputs of the thirteenth switch 511.1 are connected to the first inputs of the second register-latch 512.1 and the second inputs of the second adder of the Galois field elements 513.1. The second input of the second register-latch 512.1, the second input of the third register-latch 512.2, the second input of the D-flip-flop 519 are the eighth input of the residual computation unit to which the signal Ld is supplied. The outputs of the second register-latch 512.1 (signals A i1 ) are connected to the first inputs of the second adder of the Galois field elements 513.1 and are the second outputs of the residual calculation block. The outputs of the second adder of Galois field elements 513.1 are connected to the inputs of the first inverter of Galois field elements 514. The outputs of the first inverter of Galois field elements 514 are connected to the first inputs of the first Galois field element multiplier 515. The outputs of the first Galois field element multiplier 515 (signals Δ ') are connected to the second the inputs of the second circuit comparison codes 516.1 and are the fourth outputs of the block calculating the residuals. The first inputs of the second code comparison circuit 516.1 are the tenth inputs of the residual computation unit to which the signals Δ are supplied. The output of the second code comparison circuit 516.1 is connected to the first input of the first logical element AND 517.1. The output of the first logical element AND 517.1 (signal SX i ) is the fifth output of the residual calculation unit. The outputs of the fourteenth switch 511.2 are connected to the first inputs of the third register-latch 512.2 and the second inputs of the third adder of the Galois field elements 513.3. The outputs of the third register-latch 512.2 (C i1 | D i1 ) are connected to the first inputs of the third adder of the Galois field elements 513.2 and are the first outputs of the residual calculation unit. The outputs of the third adder of Galois field elements 513.2 are connected to the inputs of the first Galois field element zero selector 516.2 and the second inputs of the first Galois field element multiplier 515. The output of the first Galois field element zero selector 516.2 is connected to the first input of the second AND gate 517.2. The second input of the second logical element AND 517.2 is the ninth input of the residual calculation block, to which the EM signal is supplied. The output of the second AND gate 517.2 is connected to the first input of the OR-NOT gate 518. The output of the fifteenth switch 511.0 is connected to the second input of the OR gate 518 and the first input of the D-trigger 519. The output of the D-trigger 519 is connected to the third input of the logic gate OR NOT 518. The output of the logic element OR NOT 518 (¬Msk2) is connected to the second input of the first logical element AND 517.1 and is the third output of the block for calculating residuals.

Регистры-защелки 512 и D-триггер 519 принимают информацию при активном сигнале Ld, который подается на их вторые входы.Latch registers 512 and D-flip-flop 519 receive information when the Ld signal is active, which is fed to their second inputs.

Блок подсчета невязок (фиг.6) содержит первый блок вентилей 521, третий блок памяти с произвольным доступом 522, схему инкремента 523, третью схему сравнения кодов 524, третий логический элемент И 525, шестнадцатый коммутатор 526, четвертый регистр-защелку 527, четвертый логический элемент И 528.The residual counting unit (Fig. 6) contains a first block of gates 521, a third random access memory block 522, an increment scheme 523, a third code comparison circuit 524, a third AND gate 525, a sixteenth switch 526, a fourth latch register 527, a fourth logical element And 528.

Второй вход первого блока вентилей и третий вход шестнадцатого коммутатора являются первым входом блока подсчета невязок, на который подается сигнал I. Выходы первого блока вентилей соединены с первыми входами DI третьего блока памяти с произвольным доступом 522. Выходы третьего блока памяти с произвольным доступом 522 соединены с первыми входами схемы инкремента 523. Выходы схемы инкремента 523 соединены с первыми входами первого блока вентилей 521 и первыми входами третьей схемы сравнения кодов 524. Вторые входы третьей схемы сравнения кодов 524 соединены с шиной константы 't'. Выход третьей схемы сравнения кодов 524 соединен с первым входом третьего логического элемента И 525. Выход третьего элемента логическое И 525 является первым выходом блока подсчета невязок, на котором формируется сигнал St. Первые входы шестнадцатого коммутатора 526 являются вторыми входами блока подсчета невязок, на который подаются сигналы AI. Выходы шестнадцатого коммутатора 526 соединены со вторыми входами А третьего блока памяти с произвольным доступом 522. Входы четвертого регистра-защелки 527 являются третьими входами блока подсчета невязок, на который подаются сигналы Δ'. Выходы четвертого регистра-защелки 527 (сигналы Δ''n) соединены со вторыми входами шестнадцатого коммутатора 526 и являются вторыми выходами блока подсчета невязок. Первый вход четвертого логического элемента И 528 является четвертым входом блока подсчета невязок, на который подается сигнал ¬Msk2. Второй вход четвертого логического элемента И 528 является пятым входом блока подсчета невязок, на который подается сигнал Е. Выход четвертого логического элемента И 528 соединен со вторым входом схемы инкремента 523 и вторым входом третьего логического элемента И 525.The second input of the first gate block and the third input of the sixteenth switch are the first input of the residual counting block to which signal I. The outputs of the first gate block are connected to the first inputs DI of the third random access memory block 522. The outputs of the third random access memory block 522 are connected to the first inputs of the increment circuit 523. The outputs of the increment circuit 523 are connected to the first inputs of the first valve block 521 and the first inputs of the third code comparison circuit 524. The second inputs of the third code comparison circuit 524 connected to the 't' constant bus. The output of the third code comparison circuit 524 is connected to the first input of the third logical element And 525. The output of the third logical element And 525 is the first output of the residual counting block on which the signal St. The first inputs of the sixteenth switch 526 are the second inputs of the residual counting unit to which the AI signals are supplied. The outputs of the sixteenth switch 526 are connected to the second inputs A of the third random access memory block 522. The inputs of the fourth latch register 527 are the third inputs of the residual counting unit to which the signals Δ 'are supplied. The outputs of the fourth register-latch 527 (signals Δ '' n ) are connected to the second inputs of the sixteenth switch 526 and are the second outputs of the residual counting unit. The first input of the fourth logical element AND 528 is the fourth input of the residual counting unit, to which the signal ¬Msk2 is supplied. The second input of the fourth AND gate 528 is the fifth input of the residual counting unit to which signal E. The output of the fourth AND gate 528 is connected to the second input of the increment circuit 523 and the second input of the third AND gate 525.

Блок вентилей 521 передает информацию с первых входов на выходы, когда на второй его вход подается логический ноль, в противном случае на его выходах формируются нули.The valve block 521 transmits information from the first inputs to the outputs when a logical zero is supplied to its second input, otherwise zeros are formed at its outputs.

Блок дискретного преобразования Фурье (фиг.7) содержит второе местное устройство управления 410, первый модуль дискретного преобразования Фурье многочлена Λ(2t)(х) 420.1, второй модуль дискретного преобразования Фурье многочлена В(2t)(х) 420.2, семнадцатый коммутатор 430, второй инвертор элементов поля Галуа 440, второй перемножитель двух элементов поля Галуа 450, восемнадцатый двухвходовый коммутатор 460, умножитель на α 470, пятый регистр-защелку 480, работающую по фронту тактового сигнала; шестой двоичный счетчик номеров позиций принятого слова 490 с коэффициентом пересчета n.The discrete Fourier transform block (Fig. 7) contains a second local control device 410, a first discrete Fourier transform module of the polynomial Λ (2t) (x) 420.1, a second discrete Fourier transform module of the polynomial B (2t) (x) 420.2, seventeenth switch 430, the second inverter of the Galois field elements 440, the second multiplier of two elements of the Galois field 450, the eighteenth two-input switch 460, the multiplier by α 470, the fifth register-latch 480 operating along the front of the clock signal; the sixth binary counter of the position numbers of the received word 490 with the conversion factor n.

Первые входы второго местного устройства управления 410 являются первыми входами блока дискретного преобразования Фурье 400, на которые подаются сигналы Control. Первые выходы второго местного устройства управления 400 являются вторыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы State. Вторые выходы второго местного устройства управления 410 являются третьими выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы {РЕ}. Третьи выходы второго местного устройства управления 410 соединены со вторыми входами первого модуля дискретного преобразования Фурье 420.1 и со вторыми входами второго модуля дискретного преобразования Фурье 420.2. Четвертый выход второго местного устройства управления 410 соединен с третьим входом семнадцатого коммутатора 430 и с третьим входом восемнадцатого коммутатора 460. Первые входы первого модуля дискретного преобразования Фурье 420.1 и второго модуля дискретного преобразования Фурье 420.2 являются вторыми и третьими входами блока дискретного преобразования Фурье 400, на которые подаются сигналы Λ(х), В(х). Первые выходы первого модуля дискретного преобразования Фурье 420.1 (сигналы Λ(α-1)) соединены с первыми входами семнадцатого коммутатора 430. Второй выход первого модуля дискретного преобразования Фурье 420.1 (sel0) соединен с третьим входом второго местного устройства управления 410 и первым входом восемнадцатого коммутатора 460. Первые выходы второго модуля дискретного преобразования Фурье 420.2 (В(α-1)) соединены со вторыми входами семнадцатого коммутатора 430. Второй выход второго модуля дискретного преобразования Фурье 420.2 (sel0) соединен со вторым входом восемнадцатого коммутатора 460. Первые выходы семнадцатого коммутатора 430 соединены со входами второго инвертора элементов поля Галуа 440. Вторые выходы семнадцатого коммутатора соединены со вторыми входами второго перемножителя элементов поля Галуа 450. Выходы второго инвертора элементов поля Галуа 440 соединены с первыми входами второго перемножителя элементов поля Галуа 450. Выходы второго перемножителя элементов поля Галуа являются четвертыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы (Ci|Di). Выход восемнадцатого коммутатора 460 является пятым выходом блока дискретного преобразования Фурье 400, на который выдается сигнал Msk1. Выходы шестого двоичного счетчика 490 соединены со вторыми входами второго местного устройства управления 410 и являются первыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы AddrR1. Выходы умножителя на α 470 соединены со входами пятого регистра-защелки 480. Выходы пятого регистра-защелки 480 соединены со входами умножителя на α 470 и являются шестыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы Ai.The first inputs of the second local control device 410 are the first inputs of the discrete Fourier transform 400, to which Control signals are supplied. The first outputs of the second local control device 400 are the second outputs of the discrete Fourier transform 400, to which State signals are output. The second outputs of the second local control device 410 are the third outputs of the discrete Fourier transform 400, to which signals {PE} are issued. The third outputs of the second local control device 410 are connected to the second inputs of the first discrete Fourier transform module 420.1 and to the second inputs of the second discrete Fourier transform module 420.2. The fourth output of the second local control device 410 is connected to the third input of the seventeenth switch 430 and to the third input of the eighteenth switch 460. The first inputs of the first discrete Fourier transform module 420.1 and the second discrete Fourier transform module 420.2 are the second and third inputs of the discrete Fourier transform 400 signals Λ (x), B (x) are given. The first outputs of the first discrete Fourier transform module 420.1 (signals Λ (α -1 )) are connected to the first inputs of the seventeenth switch 430. The second output of the first discrete Fourier transform module 420.1 (sel0) is connected to the third input of the second local control device 410 and the first input of the eighteenth switch 460. The first module outputs a second discrete Fourier transform 420.2 (C (α -1)) are connected to second inputs of the seventeenth switch 430. The second output of the second module of the Fourier discrete transform 420.2 (sel0) connected to the second the input of the eighteenth switch 460. The first outputs of the seventeenth switch 430 are connected to the inputs of the second inverter of the elements of the Galois field 440. The second outputs of the seventeenth switch are connected to the second inputs of the second multiplier of the elements of the Galois field 450. The outputs of the second inverter of the elements of the Galois field 440 are connected to the first inputs of the second multiplier of the field elements Galois 450. The outputs of the second multiplier of the Galois field elements are the fourth outputs of the discrete Fourier transform 400, to which signals (C i | D i ) are issued . The output of the eighteenth switch 460 is the fifth output of the discrete Fourier transform 400, to which the signal Msk1 is output. The outputs of the sixth binary counter 490 are connected to the second inputs of the second local control device 410 and are the first outputs of the discrete Fourier transform 400, to which AddrR1 signals are output. The outputs of the multiplier by α 470 are connected to the inputs of the fifth register-latch 480. The outputs of the fifth register-latch 480 are connected to the inputs of the multiplier by α 470 and are the sixth outputs of the discrete Fourier transform 400, to which signals A i are output.

Семнадцатый коммутатор 430 - перекресный. Когда сигнал на третьем входе - активный, коммутатор работает в режиме перекрестной передачи: значения его первых входов подаются на вторые выходы, значения его вторых входов подаются на первые выходы. При неактивном сигнале на третьем входе коммутатор работает в режиме прямой передачи.The seventeenth switch 430 is a crossover. When the signal at the third input is active, the switch operates in the cross-transmission mode: the values of its first inputs are fed to the second outputs, the values of its second inputs are fed to the first outputs. With an inactive signal at the third input, the switch operates in direct transmission mode.

Модуль дискретного преобразования Фурье (фиг.8) содержит второй блок вентилей 421, шестой, седьмой, восьмой, …, t+7 регистры-защелки, работающие по фронту тактового импульса, 422.0 - 422.t+1, четвертый сумматор элементов поля Галуа на t+2 входа 423, второй селектор нулевого элемента поля Галуа 424, первый, второй, …, t+1 умножители на постоянные коэффициенты в поле Галуа 425.1 - 425.t+1, первый, второй, …, t+1 блоки логических элементов ИЛИ 426.1-426.t+1.The discrete Fourier transform module (Fig. 8) contains the second block of gates 421, sixth, seventh, eighth, ..., t + 7 latch registers operating along the front of the clock pulse, 422.0 - 422.t + 1, the fourth adder of Galois field elements t + 2 inputs 423, the second selector of the zero element of the Galois field 424, the first, second, ..., t + 1 multipliers by constant coefficients in the Galois field 425.1 - 425.t + 1, the first, second, ..., t + 1 blocks of logic elements OR 426.1-426.t + 1.

Первые входы второго блока вентилей 421 являются первыми входами модуля дискретного преобразования Фурье, на которые подаются сигналы Λ(х). Второй вход второго блока вентилей 421 (сигнал enable) подключен к шине loc_contr, представляющей вторые входы БДПФ 400. Выходы второго блока вентилей 421 соединены с первыми входами шестого регистра-защелки 422.0, вторыми входами первого, второго, …, t+1 блоков логических элементов ИЛИ 426.1, …, 426.t+1. Вторые входы шестого, седьмого, восьмого, …, t+7 регистров-защелок подключены к шине loc_contr (сигналы c0…ct+1). Третьи входы шестого, седьмого, восьмого, …, t+7 регистров-защелок подключены к шине loc_contr (сигнал clear). Выходы первого, второго, …, t+1 блоков логических элементов ИЛИ 426.1,…, 426.t+1 соединены с первыми входами седьмого, восьмого, …, t+7 регистров-защелок 422.1, …, 425.t+1 соответственно. Выходы шестого регистра-защелки 422.0 соединены с первыми входами четвертого сумматора элементов поля Галуа 423. Выходы седьмого, восьмого, …, t+7 регистров-защелок 422.1, …, 425.t+1 соединены соответственно со вторыми, третьими, …, t+2 входами четвертого сумматора элементов поля Галуа 423 и входами первого, второго, …, t+1 умножителя на постоянные коэффициенты в поле Галуа 425.1, …, 425.t+1, соответственно. Выходы первого, второго, …, t+1 умножителя на постоянные коэффициенты в поле Галуа 425.1…425.t+1 соединены с первыми входами первого, второго, …, t+1 блоков логических элементов ИЛИ 426.1, …, 426.t+1 соответственно. Выходы четвертого сумматора элементов поля Галуа 423 соединены со входами второго селектора нулевого элемента поля Галуа 424 и являются первыми выходами модуля дискретного преобразования Фурье, на которые выдаются сигналы Λ(w). Выход второго селектора нулевого элемента поля Галуа 424 является вторым выходом модуля дискретного преобразования Фурье, на который выдается сигнал sel0.The first inputs of the second block of gates 421 are the first inputs of the discrete Fourier transform module, to which signals Λ (x) are supplied. The second input of the second block of valves 421 (enable signal) is connected to the loc_contr bus, which represents the second inputs of the BDPF 400. The outputs of the second block of valves 421 are connected to the first inputs of the sixth register-latch 422.0, the second inputs of the first, second, ..., t + 1 blocks of logic elements OR 426.1, ..., 426.t + 1. The second inputs of the sixth, seventh, eighth, ..., t + 7 latch registers are connected to the loc_contr bus (signals c 0 ... c t + 1 ). The third inputs of the sixth, seventh, eighth, ..., t + 7 latch registers are connected to the loc_contr bus (clear signal). The outputs of the first, second, ..., t + 1 blocks of logic gates OR 426.1, ..., 426.t + 1 are connected to the first inputs of the seventh, eighth, ..., t + 7 latch registers 422.1, ..., 425.t + 1, respectively. The outputs of the sixth register-latch 422.0 are connected to the first inputs of the fourth adder of the Galois field elements 423. The outputs of the seventh, eighth, ..., t + 7 register-latches 422.1, ..., 425.t + 1 are connected respectively to the second, third, ..., t + 2 inputs of the fourth adder of the elements of the Galois field 423 and the inputs of the first, second, ..., t + 1 multipliers by constant coefficients in the Galois field 425.1, ..., 425.t + 1, respectively. The outputs of the first, second, ..., t + 1 constant factor multipliers in the Galois field 425.1 ... 425.t + 1 are connected to the first inputs of the first, second, ..., t + 1 logic elements blocks OR 426.1, ..., 426.t + 1 respectively. The outputs of the fourth adder of Galois field elements 423 are connected to the inputs of the second selector of the zero element of the Galois field 424 and are the first outputs of the discrete Fourier transform module, to which signals Λ (w) are output. The output of the second Galois field element zero selector 424 is the second output of the discrete Fourier transform module, to which the signal sel0 is output.

Все линии связи, соединяющие блоки на фиг.1-8, по которым передаются данные в виде элементов поля Галуа, являются m-разрядными.All communication lines connecting the blocks of FIGS. 1-8, through which data in the form of Galois field elements are transmitted, are m-bit.

Все используемые триггеры, регистры и счетчики работают по переднему фронту тактового сигнала, который на фиг.1-7 не показан, но подразумевается.All used triggers, registers and counters operate on the leading edge of the clock signal, which is not shown in Figs. 1-7, but is implied.

Сумматоры элементов поля, умножители на постоянные коэффициенты и блоки нахождения обратного элемента поля могут быть реализованы известным образом, в частности, сумматоры могут быть реализованы на m двухвходовых элементах ИСКЛЮЧАЮЩЕЕ-ИЛИ (сумматорах по модулю 2), умножители на постоянные коэффициенты могут быть реализованы на многовходовых элементах ИСКЛЮЧАЮЩЕЕ-ИЛИ, блоки нахождения обратного элемента могут быть реализованы табличным способом.Adders of field elements, multipliers by constant coefficients and blocks for finding the inverse field element can be implemented in a known manner, in particular, adders can be implemented on m two-input EXCLUSIVE-OR elements (adders modulo 2), multipliers by constant coefficients can be implemented on multi-input Exclusive-OR elements, blocks for finding the inverse element can be implemented in a tabular manner.

Процедура декодирования, выполняемая заявляемым устройством, обеспечивает исправление t+1 ошибки в кодовом PC-кода с минимальным кодовым расстоянием d=2t+1 путем аналитического продолжения алгоритма Берлекэмпа-Месси еще на две итерации. Это продолжение дает:The decoding procedure performed by the claimed device provides the correction of t + 1 errors in the PC code code with a minimum code distance d = 2t + 1 by analytically continuing the Berlekamp-Messi algorithm for two more iterations. This continuation gives:

Figure 00000004
Figure 00000004

где δk=1, если Δk≠0 и 2Lk-1≤k-1, или δk=0 в противном случае. Lk - формальная степень многочлена локаторов ошибок Λ(k)(х), В(k)(х) - вспомогательный многочлен.where δ k = 1 if Δ k ≠ 0 and 2L k-1 ≤k-1, or δ k = 0 otherwise. L k is the formal degree of the error locator polynomial Λ (k) (x), B (k) (x) is the auxiliary polynomial.

Каждой паре неизвестных невязок Δ2+t1 и Δ2t+2. соответствует многочлен Λ(2t+2)(х). По определению многочлен локаторов ошибок Λ(х) обращается в нуль, когда х принимает значения, обратные к локаторам ошибочных символов. Представляют интерес такие многочлены Λ(2t+2)(х), которые имеют степень t+1 и имеют точно t+1 корень в GF(q). Множество допустимых корней многочлена Λ(2t+2)(x) составляет {α0, α-1, α-2, …, α-(n-2), α-(n-1)} (α - примитивный элемент поля GF(q)). Подставляя это множество в уравнение (1), можно получить следующее:To each pair of unknown residuals Δ 2 + t1 and Δ 2t + 2 . corresponds to the polynomial Λ (2t + 2) (x). By definition, the polynomial of error locators Λ (x) vanishes when x takes values that are inverse to the locators of erroneous symbols. Of interest are such polynomials Λ (2t + 2) (x) that have degree t + 1 and have exactly t + 1 root in GF (q). The set of admissible roots of the polynomial Λ (2t + 2) (x) is {α 0 , α -1 , α -2 , ..., α - (n-2) , α - (n-1) } (α is a primitive element of the field GF (q)). Substituting this set into equation (1), we can obtain the following:

Figure 00000005
Figure 00000005

где Λ(2t)-i) и В(2t)-i) - компоненты дискретного преобразования Фурье многочленов Λ(2t)(х) и В(2t)(х).where Λ (2t)-i ) and B (2t)-i ) are the components of the discrete Fourier transform of the polynomials Λ (2t) (x) and B (2t) (x).

В случае наличия в кодовом слове конфигурации ошибок веса t+1 ровно t+1 правых частей уравнений системы (2) для некоторого значения пары невязок Δ2t+1 и Δ2t+2 обращаются в 0. Для определения позиций этих ошибочных символов необходимо найти соответствующую пару невязок и зафиксировать номера i уравнений системы (2) с правыми частями, обратившимися в нуль.If the codeword contains a configuration of errors of weight t + 1 exactly t + 1 right-hand sides of the equations of system (2) for some value of the pair of residuals, Δ 2t + 1 and Δ 2t + 2 turn to 0. To determine the positions of these erroneous symbols, it is necessary to find the corresponding pair of residuals and fix the numbers i of the equations of system (2) with the right-hand sides vanishing.

Приравняв левые части уравнений системы (2) нулю, можно получить следующую систему уравнений от двух неизвестных Δ2t+1 и Δ2t+2:Equating the left-hand sides of the equations of system (2) to zero, we can obtain the following system of equations from two unknowns Δ 2t + 1 and Δ 2t + 2 :

Figure 00000006
Figure 00000006

Подмножества из ровно t+1 совместных уравнений системы (3) будут соответствовать искомым комбинациям ошибок веса t+1, значения номеров уравнений i дадут позиции ошибок в кодовом слове.The subsets of exactly t + 1 joint equations of system (3) will correspond to the desired combinations of errors of weight t + 1, the values of the numbers of equations i will give the positions of errors in the codeword.

Эти подмножества могут быть найдены следующим образом [3, 4]. Фиксируется одно из уравнений системы (3) (обозначим его номер i). К нему присоединяется одно из оставшихся уравнений (пусть его номер будет j). Для этих двух уравнений с двумя неизвестными находится возможное значение невязки

Figure 00000007
. Затем к первому уравнению последовательно присоединяются другие оставшиеся уравнения. Для всех таких пар уравнений также вычисляются возможные значения невязки
Figure 00000008
. Если среди всех полученных значений невязки есть t одинаковых, равных Δ2t+1, это говорит о том, что зафиксированное уравнение с номером i входит в искомое подмножество уравнений (и определяет позицию первой ошибки). Значения j, соответствующие условию
Figure 00000009
, дадут позиции еще t ошибок. В процессе поиска перебираются все возможные значения i.These subsets can be found as follows [3, 4]. One of the equations of system (3) is fixed (we denote its number i). One of the remaining equations joins it (let its number be j). For these two equations with two unknowns, the possible value of the discrepancy is found
Figure 00000007
. Then, the remaining remaining equations are sequentially connected to the first equation. For all such pairs of equations, the possible residuals are also calculated
Figure 00000008
. If among all the obtained residual values there are t identical, equal to Δ 2t + 1 , this indicates that the fixed equation with number i is included in the desired subset of equations (and determines the position of the first error). Values of j corresponding to the condition
Figure 00000009
, will give the position another t errors. In the search process, all possible values of i are sorted.

Формальное описание процедуры декодирования основывается на нижеприведенных Теореме, Следствии и Утверждении [3, 4], приведенных ниже без доказательств.The formal description of the decoding procedure is based on the following Theorem, Corollary and Statement [3, 4], given below without proof.

Теорема: Пусть Λ(2t)(х), В(2t)(х) и L2t получены после 2t итераций алгоритма Берлекэмпа-Месси. Если L2t<t или L2t>t+1, то тогда в принятом слове не может быть t+1 ошибок.Theorem: Let Λ (2t) (x), B (2t) (x), and L 2t be obtained after 2t iterations of the Berlekamp-Messi algorithm. If L 2t <t or L 2t > t + 1, then there can be no t + 1 errors in the received word.

Если L2t=t, то тогда неизвестные невязки, соответствующие t+1 ошибкам, могут быть найдены из следующей системы уравнений:If L 2t = t, then unknown residuals corresponding to t + 1 errors can be found from the following system of equations:

Figure 00000010
Figure 00000010

гдеWhere

Figure 00000011
Figure 00000011

Если L2t=t+1, то тогда невязки могут быть найдены из системы:If L 2t = t + 1, then the residuals can be found from the system:

Figure 00000012
Figure 00000012

гдеWhere

Figure 00000013
Figure 00000013

Следствие: Если L2t=t, то последовательности значений Δ2t+1, полученные для всех пар i и j уравнений системы (4), будут иметь следующий вид:Corollary: If L 2t = t, then the sequence of values Δ 2t +1 obtained for all pairs i and j of equations of system (4) will have the following form:

Figure 00000014
Figure 00000014

Если L2t=t+1, то последовательности значений Δ2t+1, полученные из системы (6), будут иметь следующий вид:If L 2t = t + 1, then the sequence of Δ 2t + 1 values obtained from system (6) will have the following form:

Figure 00000015
Figure 00000015

Обозначим через Cnt(S) оператор подсчета различных значений элементов последовательности S в поле GF(q). Этот оператор формирует вектор W размерности q: i-ая компонента вектора (i=0 …, q-2) соответствует элементу поля αi∈GF(q), последняя компонента (i=q-1) соответствует нулевому элементу поля GF(q). Тогда справедливо следующее утверждение.Let Cnt (S) denote the operator of counting the various values of the elements of the sequence S in the field GF (q). This operator forms a vector W of dimension q: the i-th component of the vector (i = 0 ..., q-2) corresponds to the element of the field α i ∈GF (q), the last component (i = q-1) corresponds to the zero element of the field GF (q ) Then the following statement is true.

Утверждение: Пусть Δ - множество значений Δ2t+1 такое, что полином Λ(2t+2)(x) имеет точно t+1 допустимых корней в поле GF(q). Пусть Wi=Cnt(Si); i=0, …, n-1-t; Р(α-i)≠0. Тогда множество Δ состоит из всех значений αi, удовлетворяющих условию wi,j=t для всех i=0, …, n-1-t, Р(α-i)≠0 и l=0, …, q-2.Statement: Let Δ be the set of values of Δ 2t + 1 such that the polynomial Λ (2t + 2) (x) has exactly t + 1 admissible roots in the field GF (q). Let W i = Cnt (S i ); i = 0, ..., n-1-t; P (α -i ) ≠ 0. Then the set Δ consists of all values of α i satisfying the condition w i, j = t for all i = 0, ..., n-1-t, P (α -i ) ≠ 0 and l = 0, ..., q-2 .

Значение i для найденной невязки Δ2t+1 дает позицию (i1=i) первой ошибки. Значения j, удовлетворяющие условию

Figure 00000009
дают позиции (j1, j2, …, jt) остальных ошибок. Тогда локатор первой ошибки будет
Figure 00000016
, и локаторы остальных ошибок будут
Figure 00000017
,
Figure 00000018
…,
Figure 00000019
.The value of i for the discrepancy Δ 2t + 1 gives the position (i 1 = i) of the first error. Values of j satisfying the condition
Figure 00000009
give the position (j 1 , j 2 , ..., j t ) of the remaining errors. Then the first error locator will be
Figure 00000016
, and the locators of the remaining errors will be
Figure 00000017
,
Figure 00000018
...
Figure 00000019
.

После нахождения невязки Δ2t+1 невязку Δ2t+2 можно легко вычислить, используя (4)After finding the residual Δ 2t + 1, the residual Δ 2t + 2 can be easily calculated using (4)

Figure 00000020
Figure 00000020

или (6)or (6)

Figure 00000021
Figure 00000021

Отличительной чертой процедуры декодирования, используемой в заявляемом устройстве, является управление процессом поиска позиций t+1 ошибки информацией о надежности символов. Процедура декодирования состоит из следующих этапов:A distinctive feature of the decoding procedure used in the claimed device is the control of the process of searching for t + 1 error positions by information about the reliability of characters. The decoding procedure consists of the following steps:

1) Вычисление полинома синдромов S(x).1) Calculation of the polynomial syndromes S (x).

2) Получение полинома локаторов Λ(2t)(х), вспомогательного полинома В(2t)(х) и формальной степени полинома локаторов L2t с использованием алгоритма Берлекэмпа-Месси.2) Obtaining the locator polynomial Λ (2t) (x), the auxiliary polynomial B (2t) (x), and the formal degree of the locator polynomial L 2t using the Berlekamp-Messi algorithm.

3) Вычисление преобразования Фурье полиномов Λ(2t)(x) и В(2t)(х), когда L2t=t или L2t=t+1.3) Calculation of the Fourier transform of the polynomials Λ (2t) (x) and B (2t) (x) when L 2t = t or L 2t = t + 1.

4а) Вычисление коэффициентов Ci(2t)-i)/Λ(2t)-i), когда L2t=t, или Di(2t)-i)/(В(2t)-i)·α-2i), когда L2t=t+1.4a) Calculation of the coefficients C i = B (2t)-i ) / Λ (2t)-i ) when L 2t = t, or D i = Λ (2t)-i ) / (В ( 2t)-i ) · α -2i ) when L 2t = t + 1.

4b) Вычисление последовательностей Si возможных значений

Figure 00000022
невязки Δ2t+1 для каждого значения i∈{0,…,n-1-t} (j=i+1,…,n-1), подсчет значений Wi для каждой последовательности и фиксация значения Δ2t+1, которое встречается точно t раз в какой-то из этих последовательностей (wi,l=t), где4b) Calculation of sequences S i of possible values
Figure 00000022
residuals Δ 2t + 1 for each value i∈ {0, ..., n-1-t} (j = i + 1, ..., n-1), counting the values of W i for each sequence and fixing the value Δ 2t + 1 , which occurs exactly t times in any of these sequences (w i, l = t), where

Figure 00000023
Figure 00000023

когда L2t=t, илиwhen L 2t = t, or

Figure 00000024
Figure 00000024

когда L2t=t+1 (L - массив номеров позиций символов принятого кодового слова, упорядоченных (может быть частично) по возрастанию надежности символов, nc≤n-1-t).when L 2t = t + 1 (L is an array of character position numbers of the received codeword, ordered (maybe partially) by increasing character reliability, n c ≤n-1-t).

4с) Повторное вычисление последовательностей Si для найденного значения i и фиксация позиций ошибок в моменты времени равенства невязки Δ2t+1 значениям

Figure 00000025
.4c) Recalculation of the sequences S i for the found value of i and fixing the positions of errors at the moments of time of equality of the residual Δ 2t + 1 to the values
Figure 00000025
.

5) Получение полинома Λ(2t+2)(x), вычисление значений ошибок и их исправление.5) Obtaining the polynomial Λ (2t + 2) (x), calculating the error values and correcting them.

При такой организации перебора (12, 13) неизвестная невязка

Figure 00000026
находится при малых значениях i.With such an organization of enumeration (12, 13), an unknown discrepancy
Figure 00000026
is found at small values of i.

Предлагаемая процедура декодирования одновременно с повышением быстродействия позволяет решить задачу выбора наиболее вероятного вектора ошибок из списка. В большинстве случаев невязка

Figure 00000027
, соответствующая этому вектору находится первой.The proposed decoding procedure simultaneously with an increase in speed allows us to solve the problem of choosing the most probable error vector from the list. In most cases, the discrepancy
Figure 00000027
corresponding to this vector is first.

Заявляемое устройство декодирования PC-кодов содержит: буферную память данных 100, блок вычисления синдромов 200, процессор Галуа 300, блок дискретного преобразования Фурье 400, блок поиска позиций ошибок веса t+1 500, блок сортировки позиций символов 600, блок вычисления значений ошибок 700, первый сумматор элементов поля Галуа 800.The inventive device for decoding PC codes contains: a buffer data memory 100, a block for computing syndromes 200, a Galois processor 300, a block for discrete Fourier transform 400, a block for finding error positions of weight t + 1,500, a block for sorting positions of characters 600, a block for calculating error values 700, The first adder of the elements of the Galois field 800.

Устройство обрабатывает входные данные, представляющие собой последовательность n m-разрядных символов кодового слова {ri}, принятого из канала, которые сопровождаются значениями их надежности {reli}. При этом оно выполняет описанную выше процедуру декодирования. На выход устройства выдается последовательность n m-разрядных символов кодового слова с исправленными ошибками {ci}.The device processes the input data, which is a sequence of n m-bit characters of the code word {r i } received from the channel, which are accompanied by the values of their reliability {rel i }. At the same time, it performs the decoding procedure described above. The output device is a sequence of n m-bit characters of the code word with the corrected errors {c i }.

Буферная память данных 100 (фиг.1) предназначена для временного хранения принятых из канала символов исправляемых кодовых слов. Может быть реализована известным образом на основе двухпортовой RAM.The buffer data memory 100 (FIG. 1) is intended for temporary storage of symbols of corrected code words received from the channel. It can be implemented in a known manner based on dual-port RAM.

Блок вычисления синдромов 200 выполняет 1-й этап процедуры декодирования, заключающийся в вычислении многочлена синдрома S(x) принятого кодового слова, может быть реализован известным образом по схеме Горнера [4, 5].The unit for computing syndromes 200 performs the 1st stage of the decoding procedure, which consists in calculating the polynomial of the syndrome S (x) of the received codeword, which can be implemented in a known manner according to the Horner scheme [4, 5].

Блок сортировки позиций символов 600 осуществляет сортировку позиций символов принимаемого из канала кодового слова в соответствии с их надежностью, формируя тем самым таблицу перестановок L.The character position sorting unit 600 sorts the character positions of the codeword received from the channel in accordance with their reliability, thereby forming a permutation table L.

Процессор Галуа 300 - специализированный процессор, выполняющий операции в конечном поле Галуа, может быть реализован известным образом на основе RISC-архитектуры.Galois processor 300 - a specialized processor that performs operations in the final Galois field, can be implemented in a known manner based on the RISC architecture.

Процессор Галуа 300 реализует алгоритм Берлекэмпа-Месси [4, 5], вычисляя в соответствии с ним многочлены Λ(2t)(x) и В(2t)(х) за 2t итераций (2-ой этап процедуры декодирования).The Galois 300 processor implements the Berlekamp-Messi algorithm [4, 5], calculating in accordance with it the polynomials Λ (2t) (x) and B (2t) (x) in 2t iterations (the second stage of the decoding procedure).

Кроме того, на основе информации, полученной от блока поиска позиций ошибок веса t+1 500 (i1∈{РЕ}, Δ (

Figure 00000028
или Δ=Δ2t+1),
Figure 00000029
Figure 00000030
или
Figure 00000031
он вычисляет значение Δ2t+2 по формуле (10) или (11) и затем Λ(2t+2)(x) (выполнив еще две итерации алгоритма Берлекэмпа-Месси с невязками Δ2t+1 и Δ2t+2). Используя многочлены Λ(х)=Λ(2t+2)(х) и S(x), процессор Галуа 300 вычисляет многочлен значений ошибок Ω(х)=Λ(x)·S(x)modxd-1 и формальную производную Λ'(х) многочлена локаторов Λ(х) с последующей загрузкой полученных многочленов вместе с найденными позициями ошибок {РЕ} в блок вычисления значений ошибок 700. Таким образом, выполняется начало 5-го этапа процедуры декодирования.In addition, based on the information received from the search unit for error positions of weight t + 1 500 (i 1 ∈ {PE}, Δ (
Figure 00000028
or Δ = Δ 2t + 1 ),
Figure 00000029
Figure 00000030
or
Figure 00000031
he calculates the value of Δ 2t + 2 by the formula (10) or (11) and then Λ (2t + 2) (x) (after completing two more iterations of the Berlekamp-Messi algorithm with residuals Δ 2t + 1 and Δ 2t + 2 ). Using the polynomials Λ (x) = Λ (2t + 2) (x) and S (x), the Galois 300 processor calculates the polynomial of error values Ω (x) = Λ (x) · S (x) modx d-1 and the formal derivative Λ '(x) of the locator polynomial Λ (x) followed by loading the obtained polynomials together with the found error positions {PE} into the error value calculation unit 700. Thus, the beginning of the 5th stage of the decoding procedure is performed.

Кроме этого, процессор Галуа 300 управляет БДПФ 400 и БППО 500 (с использованием сигналов управления Control). Процессор Галуа устанавливает режим работы БДПФ 400, он же загружает в него коэффициенты многочленов Λ(2t)(x) и В(2t)(х). Процессор Галуа контролирует состояние БДПФ (сигналы состояния State) и выгружает из него значения позиций ошибок веса меньшего или равного t. Также процессор Галуа контролирует состояние БППО (сигналы состояния State) и выгружает из него значения позиций ошибок веса t+1 (пропуская их предварительно через таблицу перестановок L блока БСПС 600).In addition, the Galois 300 processor controls the BDPF 400 and the BPPO 500 (using Control signals). The Galois processor sets the BDPF 400 operating mode, it also loads the coefficients of the polynomials Λ (2t) (x) and B (2t) (x) into it. The Galois processor monitors the state of the FFT (State signals) and unloads from it the values of error positions of weight less than or equal to t. Also, the Galois processor monitors the state of the BPPO (State state signals) and unloads from it the values of error positions of weight t + 1 (passing them through the permutation table L of ACAS 600 first).

Блок ДПФ 400 вычисляет преобразование Фурье многочленов Λ(2t)(х) и В(2t)(х) (3-ий этап процедуры декодирования). Кроме того, в зависимости от режима работы он вычисляет коэффициенты Ci или Di, а также коэффициенты Aii (этап 4а процедуры декодирования). Эти коэффициенты загружаются в память блока БППО 500, адресуемую с помощью таблицы перестановок L блока БСПС 600. Блок ДПФ также вычисляет величины, обратные к корням полинома Λ(2t)(х), и контролирует их число, если L2t≤t.The DFT 400 computes the Fourier transform of the polynomials Λ (2t) (x) and B (2t) (x) (3rd stage of the decoding procedure). In addition, depending on the operating mode, it calculates the coefficients C i or D i , as well as the coefficients A i = α i (step 4a of the decoding procedure). These coefficients are loaded into the memory of the BPPO 500 block, addressed using the permutation table L of the ACAS 600 block. The DFT block also calculates the quantities inverse to the roots of the polynomial Λ (2t) (x) and controls their number if L 2t ≤t.

Блок поиска позиций ошибок веса t+1 500 в зависимости от режима работы анализирует систему (4) с коэффициентами Ci или систему (6) с коэффициентами Di. Он находит позиции ошибок веса t+1 и соответствующие им значения Δ,

Figure 00000032
,
Figure 00000030
или
Figure 00000033
. Таким образом выполняются этапы 4b и 4с процедуры декодирования.The search unit for error positions of weight t + 1 500, depending on the operating mode, analyzes system (4) with coefficients C i or system (6) with coefficients D i . He finds the error positions of weight t + 1 and the corresponding Δ values,
Figure 00000032
,
Figure 00000030
or
Figure 00000033
. Thus, steps 4b and 4c of the decoding procedure are performed.

Блок вычисления значений ошибок 700, используя многочлены Ω(х) и Λ'(х), вычисляет значения ошибок в найденных позициях ошибок {РЕ}. Он может быть реализован известным образом с использованием формулы Форни [4, 5]. Значения ошибок суммируются с помощью сумматора 800 с соответствующими символами кодового слова, считываемого из буферной памяти данных. Тем самым исправляются ошибочные символы кодового слова. Таким образом выполняется основная часть 5-го этапа процедуры декодирования.The error value calculation unit 700, using the polynomials Ω (x) and Λ '(x), calculates the error values at the found error positions {PE}. It can be implemented in a known manner using Forney's formula [4, 5]. The error values are summed using the adder 800 with the corresponding characters of the codeword read from the data buffer memory. This corrects erroneous codeword characters. Thus, the main part of the 5th stage of the decoding procedure is performed.

Представленный декодер работает по конвейерному принципу: все основные его модули работают параллельно, обрабатывая последовательно принятые из канала различные кодовые слова. Конвейерный принцип работы декодера иллюстрируется фиг.9.The presented decoder works according to the conveyor principle: all its main modules work in parallel, processing various codewords sequentially received from the channel. The conveyor principle of operation of the decoder is illustrated in Fig.9.

Рассмотрим для примера обработку декодером k-го кодового слова, в котором произошло t+1 ошибок.Consider, for example, the processing by the decoder of the kth codeword in which t + 1 errors occurred.

Сначала в 1-ом кадре (кадр соответствует времени поступления одного кодового слова) k-oe слово записывается в буфер данных 100 и одновременно в темпе поступления в декодер обрабатывается блоком вычисления синдромов 200 и блоком сортировки позиций символов 600.First, in the 1st frame (the frame corresponds to the time of arrival of one codeword), the k-oe word is written to the data buffer 100 and at the same time, at the rate of arrival at the decoder, it is processed by the syndrome calculation unit 200 and the character position sorting unit 600.

Затем в первой половине 2-го кадра процессор Галуа 300 реализует алгоритм Берлекэмпа-Месси для вычисленного синдрома, анализирует L2t и в начале второй половины 2-го кадра загружает коэффициенты многочленов Λ(2t)(х) и В(2t)(х) в блок ДПФ 400 (Низкий уровень на строке "БДПФ" фиг.9).Then, in the first half of the 2nd frame, the Galois 300 processor implements the Berlekamp-Messi algorithm for the calculated syndrome, analyzes L 2t and at the beginning of the second half of the 2nd frame loads the coefficients of the polynomials Λ (2t) (x) and B (2t) (x) in the block DFT 400 (Low level on the line "BDPF" Fig.9).

В течение второй половины 2-го кадра и первой половины 3-го кадра блок ДПФ 400 выполняет преобразование Фурье многочленов Λ(2t)(x) и В(2t)(х) k-го кодового слова (высокий уровень на строке 'БДПФ'). Кроме того, в зависимости от режима работы он вычисляет коэффициенты Ci или Di и Ai, которые загружаются в память БППО, адресуемую с помощью таблицы перестановок L блока БСПС. Если L2t≤t блок ДПФ 400 также вычисляет величины, обратные к корням полинома Λ(2t)(х), и контролирует их число.During the second half of the 2nd frame and the first half of the 3rd frame, the DFT 400 performs the Fourier transform of the polynomials Λ (2t) (x) and B (2t) (x) of the k-th code word (high level on the 'BDPF' line ) In addition, depending on the operating mode, it calculates the coefficients C i or D i and A i , which are loaded into the BPOA memory, addressed using the permutation table L of the ACAS unit. If L 2t ≤t, the DFT 400 block also calculates the quantities inverse to the roots of the polynomial Λ (2t) (x) and controls their number.

В течение второй половины 3-го кадра и первой половины 4-го кадра блок поиска позиций ошибок веса t+1 500 выполняет вычисление значений величины

Figure 00000034
(или Δ=Δ2t+1) k-го кодового слова, их подсчет и фиксацию тех их значений, которые встретились в цикле сканирования ровно t раз.During the second half of the 3rd frame and the first half of the 4th frame, the error position search block of weight t + 1 500 performs the calculation of the values
Figure 00000034
(or Δ = Δ 2t + 1 ) of the k-th codeword, their calculation and fixing of those values that occurred exactly t times in the scan cycle.

В течение второй половины 4-го кадра и первой половины 5-го кадра блок поиска позиций ошибок веса t+1 500 с помощью зафиксированного значения Δ определяет позиции t+1 ошибочных символов k-го кодового слова. Значения этих позиций корректируются с помощью таблицы L во время их пересылки в процессор Галуа.During the second half of the 4th frame and the first half of the 5th frame, the block for searching for error positions of weight t + 1 500 using the fixed value Δ determines the positions t + 1 of the erroneous characters of the k-th code word. The values of these positions are adjusted using table L during their transfer to the Galois processor.

В течение второй половины 5-го кадра процессор Галуа 300 вычисляет многочлены Ω(х) и Λ'(х) и загружает их в блок вычисления значений ошибок 700.During the second half of the 5th frame, the Galois processor 300 calculates the polynomials Ω (x) and Λ '(x) and loads them into the error value calculation unit 700.

В течение 6-го кадра блок вычисления значений ошибок 700 вычисляет значения ошибок для соответствующих позиций k-го кодового слова, выгружаемого из буферной памяти данных 100 и осуществляет их исправление с помощью сумматора 800.During the 6th frame, the error value calculation unit 700 calculates the error values for the corresponding positions of the k-th codeword, unloaded from the data buffer 100 and corrects them using the adder 800.

Аналогичным образом осуществляется обработка k+1, k+2 и т.д. принятых из канала кодовых слов.Similarly, processing is carried out k + 1, k + 2, etc. codewords received from the channel.

Приведем в соответствии с изобретением описание устройства и работы основных нетривиальных блоков декодера.We present in accordance with the invention a description of the device and the operation of the main non-trivial blocks of the decoder.

Блок сортировки позиций символов 600Character Sort Block 600

Функциональная схема блока сортировки позиций символов (БСПС) 600 приведена на фиг.2. Блок содержит: схему сравнения кодов 610; пять блоков памяти отсортированных позиций (БПОП) 620.1-620.5; два пятивходовых коммутатора 630.1, 630.2; двоичный счетчик на n 640; два двоичных счетчика на 5 650.1, 650.2; два дешифратора на 5 состояний 660.1, 660.2; пять двухвходовых коммутатора 670.1-670.5.The functional diagram of the block character position sorting (ACAS) 600 is shown in figure 2. The block contains: a code comparison scheme 610; five memory blocks of sorted positions (BPOP) 620.1-620.5; two five-input switches 630.1, 630.2; binary counter at n 640; two binary counters on 5 650.1, 650.2; two decoders for 5 states 660.1, 660.2; five two-input switches 670.1-670.5.

БСПС осуществляет сортировку позиций символов принятого из канала кодового слова в соответствии с их надежностью. Сортировка осуществляется в процессе поступления символов в декодер, при этом формируется таблица перестановок L. Таблица состоит из двух частей: по младшим адресам располагаются позиции ненадежных символов (для которых надежность меньше заданного порога), по старшим адресам располагаются позиции оставшихся символов. Сравнение надежности символа с порогом осуществляет схема сравнения кодов 610, на выходе которой формируется логическая «1», если величина надежности, подаваемая на первые входы БСПС SoftIn, будет больше значения порога «Thres».ACAS sorts the positions of the symbols of the codeword received from the channel in accordance with their reliability. Sorting is carried out when the characters arrive at the decoder, and a permutation table L is formed. The table consists of two parts: the positions of unreliable characters (for which the reliability is less than a specified threshold) are located at the lowest addresses, and the positions of the remaining characters are located at the senior addresses. A symbol reliability comparison with a threshold is carried out by a code comparison scheme 610, at the output of which a logical “1” is generated if the reliability value supplied to the first inputs of ACAS SoftIn is greater than the “Thres” threshold value.

Таблицы перестановок формируются и затем хранятся в каждом из блоков БПОП 620. Пять блоков необходимы для организации конвейерной работы декодера с учетом того, что сформированная таблица L для кодового слова будет использоваться с задержкой.Permutation tables are generated and then stored in each of the BPOPS 620 blocks. Five blocks are necessary for organizing the pipeline operation of the decoder, taking into account the fact that the generated table L for the codeword will be used with a delay.

Величина задержки видна на временных диаграммах работы декодера (фиг.9). Так, для k-го кодового слова таблица перестановок формируется в 1-ом кадре, используется во 2-ой половине 2-го и 1-ой половине 3-го кадра, и еще раз - во 2-ой половине 4-го и 1-ой половине 5-го кадра.The amount of delay is visible on the timing diagrams of the decoder (Fig.9). So, for the k-th codeword, a permutation table is formed in the 1st frame, used in the 2nd half of the 2nd and 1st half of the 3rd frame, and again in the 2nd half of the 4th and 1st half of the 5th frame.

Пять блоков БПОП 620 позволяют формировать таблицу L для символов поступающего в декодер кодового слова и одновременно использовать таблицы перестановок для обработки двух других поступивших в декодер ранее кодовых слов.Five BPOPS 620 blocks make it possible to create a table L for symbols of a codeword arriving at a decoder and at the same time use permutation tables to process two other codewords received at a decoder earlier.

Для организации одновременного обращения к трем из пяти блоков БППО используются счетчики 640, 650.1, 650.2; дешифраторы 660.1, 660.2 и коммутаторы 630.1, 630.2, 670.1-670.5. Счетчики 640, 650.1 и дешифратор 660.1 предназначены для управления записью в БПОП при формировании таблицы перестановок. Счетчик 640 хранит позицию текущего символа, которая подается на вход данных DI всех БПОП одновременно с подачей флага надежности, формируемого схемой сравнения кодов 610, на вход S БПОП. Запись будет осуществляться в тот БПОП, на вход

Figure 00000035
которого подается логический "0" (активный уровень) с выхода дешифратора 660.1.To organize simultaneous access to three of the five BPPO blocks, counters 640, 650.1, 650.2 are used; decoders 660.1, 660.2 and switches 630.1, 630.2, 670.1-670.5. The counters 640, 650.1 and the decoder 660.1 are designed to control the recording in the BPOP when forming the permutation table. Counter 640 stores the position of the current symbol, which is fed to the input of the DI data of all the BOPs simultaneously with the supply of the reliability flag generated by the code comparison circuit 610 to the B SOP input S. Recording will be done in that BPOP, at the entrance
Figure 00000035
which serves a logical "0" (active level) from the output of the decoder 660.1.

Счетчик 650.2, дешифратор 660.2 и коммутаторы предназначены для управления чтением из БПОП при обращении к таблице перестановок. Причем коммутаторы 630.1, 630.2 предназначены для подключения выходов DO БПОП ко вторым (DOR1) или первым (DOR2) выходам блока 600 БСПС. Коммутаторы 670.1-670.5 предназначены для подключения адресных входов Adr БПОП к третьим (AdR1) или вторым (AdR2) входам БСПС. Направление передачи данных коммутаторами определяется счетчиком 650.2.The counter 650.2, the decoder 660.2 and the switches are designed to control reading from the BPOP when accessing the permutation table. Moreover, the switches 630.1, 630.2 are designed to connect the DO BPO outputs to the second (DOR1) or first (DOR2) outputs of the ACAS unit 600. Switches 670.1-670.5 are designed to connect the Adr BPOP address inputs to the third (AdR1) or second (AdR2) ACAS inputs. The direction of data transfer by the switches is determined by the counter 650.2.

Функциональная схема БПОП 620 приведена на фиг.3. БПОП содержит: два блока памяти с произвольным доступом 621.1, 621.2; два логических элемента И-НЕ 622, 627; два двоичных счетчика 623.1, 623.2; четыре коммутатора 624.1, 624.2, 625.1, 625.2; вычитатель 626.Functional diagram of BPOP 620 is shown in Fig.3. BPOP contains: two memory blocks with random access 621.1, 621.2; two logical elements NAND 622, 627; two binary counters 623.1, 623.2; four switches 624.1, 624.2, 625.1, 625.2; subtractor 626.

Память 621.1 предназначена для хранения позиций ненадежных символов кодового слова таблицы перестановок L, позиции надежных символов хранятся в памяти 621.2.The memory 621.1 is intended for storing positions of unreliable characters of the codeword of the permutation table L, the positions of the reliable characters are stored in memory 621.2.

БПОП работает в двух режимах:BPOP operates in two modes:

1) режиме записи в память позиции символа кодового слова;1) the mode of writing to the memory the position of the symbol of the code word;

2) режиме чтения из таблицы перестановок.2) reading mode from the permutation table.

Первый режим используется для формирования таблицы перестановок, в этом режиме на третий вход БПОП подается логический ноль

Figure 00000036
Если
Figure 00000037
БПОП работает в режиме чтения таблицы перестановок.The first mode is used to form a permutation table; in this mode, a logical zero is supplied to the third input of the BPOA
Figure 00000036
If
Figure 00000037
BPOP works in the reading mode of the permutation table.

БПОП в первом режиме работает следующим образом. По активному сигналу

Figure 00000038
, подаваемому на третий вход БПОП, коммутаторы 624 подают на третьи (адресные входы) блоков памяти 621 содержимое счетчиков 623, которые содержат адреса следующих незаписанных ячеек памяти. Если на второй вход БПОП подается сигнал sel=0 (для ненадежного символа), по сигналу
Figure 00000039
осуществляется запись позиции символа с первых входов БПОП (DI) в память 621.1 и по завершению записи содержимое счетчика 623.1 инкрементируется. Если сигнал sel=1 (для надежного символа), осуществляется запись в память 621.2 и инкремент счетчика 623.2.BPOP in the first mode works as follows. By active signal
Figure 00000038
supplied to the third input of the BPOA, the switches 624 provide the third (address inputs) of the memory blocks 621 with the contents of the counters 623, which contain the addresses of the following unrecorded memory cells. If the signal sel = 0 (for an unreliable symbol) is supplied to the second input of the BPOA, the signal
Figure 00000039
the position of the symbol is recorded from the first inputs of the BPOE (DI) into the memory 621.1, and upon completion of recording, the contents of the counter 623.1 are incremented. If the signal sel = 1 (for a reliable character), it is written to the memory 621.2 and the increment of the counter 623.2.

Во втором режиме работы БПОП осуществляется выдача на выходы БПОП (DO) следующей информации:In the second mode of operation of the BPOA, the following information is output to the outputs of the BPOA (DO):

1) количества позиций ненадежных символов, хранимых в памяти 621.1 (содержимое счетчика 623.1), необходимое для определения переменной nC в формулах (12, 13);1) the number of positions of unreliable characters stored in memory 621.1 (the contents of the counter 623.1) needed to determine the variable n C in formulas (12, 13);

2) содержимого таблицы перестановок L по адресу, поданному на четвертые входы БПОП (Adr) (содержимое ячейки памяти 621.1 или 621.2).2) the contents of the permutation table L at the address supplied to the fourth inputs of the BPOE (Adr) (contents of memory cell 621.1 or 621.2).

Если старший бит входной шины Adr равен «1», то через коммутатор 625.2 на выходы БПОП (DO) подается содержимое счетчика 623.1. В противном случае на выходы через коммутаторы 625 подается содержимое одного из блоков памяти 621.If the most significant bit of the Adr input bus is “1”, then through the switch 625.2 the contents of the counter 623.1 are fed to the outputs of the BPOA (DO). Otherwise, the outputs through the switches 625 serves the contents of one of the memory blocks 621.

Если содержимое шины Adr будет меньше содержимого счетчика 623.1 (заем на втором выходе вычитателя 626, управляющий коммутатором 625.1, отсутствует), то на выходы БПОП будет подаваться содержимое ячейки памяти 621.1, адресуемой непосредственно содержимым шины адреса Adr. В противном случае на выходы БПОП будет подаваться содержимое ячейки памяти 621.2, адресуемой разностью содержимого шины адреса Adr и содержимого счетчика 623.1.If the contents of the Adr bus will be less than the contents of the counter 623.1 (there is no loan at the second output of the subtractor 626 that controls the switch 625.1), then the contents of the memory cell 621.1 addressed directly to the contents of the bus of the Adr address will be sent to the BPOA outputs. Otherwise, the contents of the memory cell 621.2, addressed by the difference between the contents of the bus of the address Adr and the contents of the counter 623.1, will be fed to the outputs of the BPOA.

Блок дискретного преобразования Фурье 400Discrete Fourier Transform 400

Функциональная схема блока дискретного преобразования Фурье 400 приведена на фиг.7. Блок содержит: местное устройство управления (МУУ) 410; модуль дискретного преобразования Фурье многочлена Λ(2t)(х) 420.1; модуль дискретного преобразования Фурье многочлена B(2t)(х) 420.2; перекрестный коммутатор 430; инвертор элементов поля Галуа 440; перемножитель двух элементов поля Галуа 450; двухвходовый коммутатор 460, умножитель на α 470; регистр-защелку 480, работающую по фронту тактового сигнала; двоичный счетчик номеров позиций принятого слова 490 с коэффициентом пересчета n.The functional block diagram of the discrete Fourier transform 400 is shown in Fig.7. The block contains: local control device (MUU) 410; the module of the discrete Fourier transform of the polynomial Λ (2t) (x) 420.1; module of the discrete Fourier transform of the polynomial B (2t) (x) 420.2; cross switch 430; inverter of Galois field elements 440; a multiplier of two elements of the Galois field 450; two-input switch 460, multiplier by α 470; register latch 480, working on the front of the clock signal; binary counter of position numbers of the received word 490 with a conversion factor n.

Местное устройство управления 410 предназначено для взаимодействия с процессором Галуа 300 и управления блоком ДПФ 400. Оно также накапливает возможные позиции ошибок веса, меньшего t+1, запоминая значения i в момент равенства нулю значения многочлена Λ(2t)-i) (сигнал sel0) и подсчитывая их количество.The local control device 410 is designed to interact with the Galois processor 300 and to control the DFT 400. It also accumulates possible error positions of a weight less than t + 1, remembering the values of i at the moment the polynomial Λ (2t)-i ) vanishes (signal sel0) and counting their number.

Двоичный счетчик 490 предназначен для формирования значения i.Binary counter 490 is designed to generate the value of i.

Регистр 480 и умножитель на α 470 обеспечивают формирование величины Aii.Register 480 and the multiplier by α 470 provide the formation of the value A i = α i .

Блок ДПФ 400 - может работать в трех режимах.Block DPF 400 - can operate in three modes.

Нулевой режим. В этом режиме блок ДПФ 400 работает, когда L2t<t. При этом в него загружаются только значения коэффициентов полинома Λ(2t)(х) и ищутся позиции ошибок веса, меньшего t. Значения сигналов на первых, четвертых-шестых выходах Б ДПФ (AddR1, Ci|Di, Mskl, Ai) игнорируются.Zero mode. In this mode, the DFT 400 operates when L 2t <t. In this case, only the coefficients of the polynomial Λ (2t) (x) are loaded into it and the positions of errors of weight less than t are searched. The values of the signals at the first, fourth to sixth outputs of the B DFT (AddR1, C i | D i , Mskl, A i ) are ignored.

Первый режим. В этом режиме блок ДПФ 400 работает, когда L2t=t. В него загружаются значения коэффициентов обоих полиномов Λ(2t)(х) и B(2t)(x). Осуществляется поиск позиций ошибок веса t. Вычисляются коэффициенты

Figure 00000040
. Для их вычисления перекрестный коммутатор 430 работает в прямом направлении, подавая на вход инвертора 440 коэффициенты Λ(α-i). На пятом выходе БППФ значение Msk1 (исключение уравнений из системы) формируется путем подачи через коммутатор 460 сигнала со второго выхода модуля дискретного преобразования Фурье 420.1, который имеет единичный уровень, когда Λ(α-i)=0.First mode. In this mode, the DFT 400 operates when L 2t = t. The coefficients of both polynomials Λ (2t) (x) and B (2t) (x) are loaded into it. Searches for positions of errors of weight t. Odds are calculated
Figure 00000040
. To calculate them, the cross switch 430 works in the forward direction, applying the coefficients Λ (α -i ) to the input of the inverter 440. At the fifth output of the FFT, the value of Msk1 (elimination of equations from the system) is formed by applying a signal from the second output of the discrete Fourier transform module 420.1 through switch 460, which has a unit level when Λ (α -i ) = 0.

Второй режим. В этом режиме блок ДПФ 400 работает, когда L2t=t+1. В него загружаются значения коэффициентов полиномов Λ(2t)(х) и х2·В(2t)(х). Вычисляются коэффициенты

Figure 00000041
. Для их вычисления перекрестный коммутатор 430 работает в перекрестном режиме, подавая на вход инвертора 440 значения α-2iB(α-i). На пятом выходе БППФ значение Msk1 формируется путем подачи через коммутатор 460 сигнала со второго выхода модуля дискретного преобразования Фурье 420.2, который имеет единичный уровень, когда В(α-i)=0.The second mode. In this mode, the DFT 400 operates when L 2t = t + 1. The values of the coefficients of the polynomials Λ (2t) (x) and x 2 · B (2t) (x) are loaded into it. Odds are calculated
Figure 00000041
. To calculate them, the cross switch 430 operates in a cross mode, feeding the values of α -2i B (α -i ) to the input of inverter 440. At the fifth output of the FFT, the value of Msk1 is formed by supplying through the switch 460 a signal from the second output of the discrete Fourier transform module 420.2, which has a unit level when B (α -i ) = 0.

В каждом такте работы блока ДПФ 400 на первых выходах модуля дискретного преобразования Фурье многочлена Λ(х) 420.1 появляется значение Λ(α-i), на первых выходах модуля дискретного преобразования Фурье многочлена В(х) 420.2 появляется значение В(α-i) (или α-2iB(α-i)), на выходе регистра 480 формируется значение Ai. За время цикла работы блока ДПФ 400 i пробегает значения 0, …, n-1.In each clock cycle of the DFT 400, at the first outputs of the discrete Fourier transform module of the polynomial Λ (x) 420.1, the value Λ (α -i ) appears, at the first outputs of the discrete Fourier transform of the polynomial B (x) 420.2 the value B (α -i ) appears (or α -2i B (α -i )), the value of A i is generated at the output of register 480. During the cycle of operation of the DFT 400 i block, it runs through the values 0, ..., n-1.

В первом и втором режимах Ai, Ci|Di и Msk1 записываются в буферную память 550 блока поиска позиций ошибок веса t+1 500. Для формирования адресов памяти 550 при записи используется счетчик 490, значение которого подается на вход таблицы перестановок L, хранящейся в блоке сортировки позиций символов 600.In the first and second modes, A i , C i | D i and Msk1 are written into the buffer memory 550 of the block for searching for positions of errors of weight t + 1 500. To generate memory addresses 550, the counter 490 is used for writing when the value is supplied to the input of the permutation table L, stored in the block sorting character positions 600.

Функциональная схема модуля дискретного преобразования Фурье многочлена Λ(2t)(х) 420.1 (модуль дискретного преобразования Фурье многочлена В(2t)(х) 420.2 реализуется по точно такой же схеме) приведена на фиг.8.Functional diagram of the module of the discrete Fourier transform of the polynomial Λ (2t) (x) 420.1 (the module of the discrete Fourier transform of the polynomial B (2t) (x) 420.2 is implemented in exactly the same way) is shown in Fig. 8.

Модуль 420 содержит блок вентилей 421, регистры-защелки, работающие по фронту тактового импульса, 422.0 - 422.t+1, сумматор элементов поля Галуа на t+2 входа 423, селектор нулевого элемента поля Галуа 424, умножители на постоянные коэффициенты в поле Галуа 425.1 - 425.t+1, блоки логических элементов ИЛИ 426.1 - 426.t+1.Module 420 contains a block of valves 421, register-latches operating along the front of a clock pulse, 422.0 - 422.t + 1, an adder of elements of the Galois field by t + 2 inputs 423, a selector of the zero element of the Galois field 424, multipliers by constant coefficients in the Galois field 425.1 - 425.t + 1, blocks of logical elements OR 426.1 - 426.t + 1.

Перед началом работы блока ДПФ 400 регистры 422.0 - 422.t+1 обнуляются. Затем процессор Галуа 300 с помощью местного устройства управления 410 загружает в эти регистры через блок вентилей 421 и блоки логических элементов ИЛИ 426.1 - 426.t+1 коэффициенты полинома Λ(2t)(х) (В(2t)(х), x2B(2t)(x)). Сумма всех регистров 422.0-422.t+1Before starting the operation of the DFT 400 block, the registers 422.0 - 422.t + 1 are reset. Then, the Galois processor 300, using the local control device 410, loads into these registers through the block of gates 421 and logic blocks OR 426.1 - 426.t + 1 the coefficients of the polynomial Λ (2t) (x) (B (2t) (x), x 2 B (2t) (x)). The sum of all the registers 422.0-422.t + 1

сразу даст значение полинома в точке х=α0 на выходах сумматора элементов поля Галуа 423.immediately gives the value of the polynomial at the point x = α 0 at the outputs of the adder of the elements of the Galois field 423.

Затем содержимое каждого регистра 422.k (k=1, …, t+1) соответственно умножается на α-k с помощью умножителя на постоянные коэффициенты 425.k, где k соответствует степени неизвестной при обрабатываемом в регистре коэффициенте полинома. После этого сумма всех регистров 422.0 - 422.t+1 даст значение полинома в точке х=α-1.Then the contents of each register 422.k (k = 1, ..., t + 1) are respectively multiplied by α -k using the multiplier by constant coefficients 425.k, where k corresponds to the degree unknown for the polynomial coefficient being processed in the register. After that, the sum of all the registers 422.0 - 422.t + 1 will give the polynomial value at the point x = α -1 .

Процесс повторяется до тех пор, пока не вычислится значение полинома в точке х=α-(n-1). Все это время селектор нулевого элемента поля 424 активизирует сигнал sel0 при обнаружении нулевого значения полинома на выходах сумматора 423.The process is repeated until the polynomial value at the point x = α - (n-1) is calculated. All this time, the zero element selector of the field 424 activates the sel0 signal when a polynomial zero value is detected at the outputs of the adder 423.

Блок поиска позиций ошибок веса t+1 500Block for searching for positions of errors of weight t + 1 500

Для снижения аппаратной сложности желательно, чтобы блок поиска позиций ошибок веса t+1 (БППО) 500 выполнял вычисления по возможности одинаково с коэффициентами Ci в случаях, когда L2t=t, и с коэффициентами Di в случаях, когда L2t=t+1. Для этого в первом случае подсчитывают значения не невязки Δ2t+1, а обратной к ней величины

Figure 00000042
.To reduce the hardware complexity, it is desirable that the block for searching for error positions of weight t + 1 (BPPO) 500 perform the calculations as similarly as possible with the coefficients C i in cases where L 2t = t, and with the coefficients D i in cases where L 2t = t +1 For this, in the first case, the values of not the residuals Δ 2t + 1 , but the values inverse to it, are calculated
Figure 00000042
.

Функциональная схема блока поиска позиций ошибок веса t+1 500 приведена на фиг.4. БППО содержит: два блока вычисления невязки Δ' (БВН) (

Figure 00000043
или Δ'=Δ2t+1) 510.1, 510.2; два блока подсчета невязок Δ' (БПН) 520.1, 520.2; коммутатор 530; регистр-защелку 540; блок памяти коэффициентов (БПК) 550, местное устройство управления (МУУ) 560.The functional block diagram of the search for positions of errors of weight t + 1 500 is shown in Fig.4. BPPO contains: two blocks for calculating the residual Δ '(BVN) (
Figure 00000043
or Δ '= Δ 2t + 1 ) 510.1, 510.2; two blocks for calculating residuals Δ '(BPN) 520.1, 520.2; switch 530; latch register 540; coefficient memory unit (BOD) 550, local control device (MUU) 560.

Блоки 510.1, 510.2 выполняют вычисления Δ' в соответствии с формулами (12) или (13) в зависимости от значения L2t.Blocks 510.1, 510.2 perform Δ 'calculations in accordance with formulas (12) or (13) depending on the value of L 2t .

Блоки 520.1, 520.2 осуществляют подсчет различных значений величины Δ' в поле Галуа (wi,l) и фиксируют ситуацию равенства t количества какого-то значения Δ'.Blocks 520.1, 520.2 carry out the calculation of various values of Δ 'in the Galois field (w i, l ) and fix the situation of equality t of the quantity of some value Δ'.

Определенные для этой ситуации значения Δ'',

Figure 00000044
и
Figure 00000045
Figure 00000046
поступают из соответствующей пары блоков 510 и 520 через коммутатор 530 на входы регистра 540 и запоминаются в нем.The Δ '' values defined for this situation,
Figure 00000044
and
Figure 00000045
Figure 00000046
come from the corresponding pair of blocks 510 and 520 through the switch 530 to the inputs of the register 540 and are stored in it.

Блок памяти коэффициентов 550 предназначен для временного хранения величин Ai, Ci (или Di) и бит Msk1. Он содержит 3 секции, операции с которыми выполняются одновременно. В одну секцию величины Ai, Ci (или Di) и биты Msk1 поступают из блока ДПФ 400, из другой секции задержанные на один кадр они считываются и поступают в блоки 510.1-510.2 для вычисления Δ', из следующей секции эти величины, задержанные еще на один кадр, считываются и используются для повторного вычисления последовательности Δ', необходимой для фиксации позиций ошибочных символов. БПК 550 может быть реализован известным образом на основе трехпортовой RAM.The coefficient memory unit 550 is intended for temporary storage of the values of A i , C i (or D i ) and bit Msk1. It contains 3 sections, the operations with which are performed simultaneously. In one section, the values of A i , C i (or D i ) and bits Msk1 come from the DFT 400 block, from the other section they are read out by one frame and enter blocks 510.1-510.2 to calculate Δ ', from the next section, these values, delayed by another frame, are read and used to recalculate the sequence Δ 'necessary to fix the positions of erroneous characters. BOD 550 can be implemented in a known manner based on three-port RAM.

Местное устройство управления 560 предназначено для взаимодействия с процессором Галуа 300 и управления блоком БППО. В том числе, оно вычисляет последовательность адресов чтения блока памяти коэффициентов 550. Оно также накапливает позиции конфигурации ошибок веса t+1, записывая в стек значения AR2 в момент равенства величин Δ' и Δ (сигнал SXi).The local control device 560 is designed to interact with the Galois 300 processor and control the BPPO unit. In particular, it calculates the sequence of read addresses of the memory block of coefficients 550. It also accumulates error configuration positions of weight t + 1, writing AR2 values onto the stack at the moment of equal values of Δ 'and Δ (signal SX i ).

Две пары блоков БВН+БПН 510 и 520 необходимы для обеспечения конвейерного режима работы блока поиска позиций ошибок. Каждая пара блоков 510 и 520 обрабатывает коэффициенты Ci (или Di) одного кодового слова в течение двух кадров (см. фиг.9). В каждом кадре одна пара осуществляет вычисления Δ' и подсчет их значений, БВН другой пары осуществляет вычисления Δ' для фиксации позиций ошибочных символов в предыдущем кодовом слове, одновременно осуществляется очистка памяти БПН этой же пары.Two pairs of BVN + BPN blocks 510 and 520 are necessary to ensure the conveyor operation mode of the error position search block. Each pair of blocks 510 and 520 processes the coefficients C i (or D i ) of one codeword for two frames (see Fig. 9). In each frame, one pair performs Δ 'calculations and counts their values, the I / O of the other pair performs Δ' calculations to fix the positions of erroneous characters in the previous code word, and the BPN memory of the same pair is simultaneously cleared.

На фиг.4 пара блоков 510.1+520.1 осуществляет подсчет различных значений Δ' для k-го кодового слова во второй половине 3-го кадра и первой половине 4-го. Фиксация позиций ошибочных символов для k-го слова осуществляется во второй половине 4-го кадра и первой половине 5-го с использованием блока 510.1, в это же время записывается нулями память БПН 520.1. Аналогичным образом работает пара блоков 510.2+520.2, обрабатывая t+1-ое кодовое слово со смещением на кадр.In Fig. 4, a pair of blocks 510.1 + 520.1 counts different Δ 'values for the k-th codeword in the second half of the 3rd frame and the first half of the 4th. The positions of erroneous characters for the k-th word are fixed in the second half of the 4th frame and the first half of the 5th using block 510.1, at the same time, the memory of BPN 520.1 is written in zeros. In a similar way, a pair of blocks 510.2 + 520.2 works, processing t + 1 codeword with an offset per frame.

Рассмотрим устройство и работу основных блоков БППО.Consider the device and the operation of the main BPPO blocks.

Функциональная схема блока вычисления невязок Δ' (БВН) 510 приведена на фиг.5. БВН содержит: три коммутатора с двух направлений 511.0, 511.1 и 511.2; два регистра-защелки, работающих по фронту тактового сигнала 512.1 и 512.2; два сумматора элементов поля Галуа 513.1 и 513.2; инвертор элементов поля Галуа 514; перемножитель элементов поля Галуа 515; схему сравнения кодов (на выходе логическая "1", если коды на входах равны) 516.1; селектор нулевого элемента поля Галуа 516.2; два элемента логическое И 517.1 и 517.2; элемент логическое ИЛИ-НЕ 518; D-триггер, работающий по фронту тактового сигнала 519.The functional diagram of the unit for calculating residuals Δ '(BVN) 510 is shown in Fig.5. BVN contains: three switches from two directions 511.0, 511.1 and 511.2; two register-latches operating along the front of the clock signal 512.1 and 512.2; two adders of Galois field elements 513.1 and 513.2; Galois field element inverter 514; a multiplier of the elements of the Galois field 515; code comparison scheme (logical “1” at the output, if the codes at the inputs are equal) 516.1; Galois field zero element selector 516.2; two logical elements AND 517.1 and 517.2; logical element OR NOT 518; D-trigger, working on the edge of the clock signal 519.

БВН работает в 2-х режимах.BVN works in 2 modes.

В первом (основном) режиме БВН вычисляет значение Δ' по формуле (12) или (13) и формирует инверсный бит маскирования для блока подсчета невязок 520.In the first (main) mode, the BVN calculates the value Δ 'by the formula (12) or (13) and generates an inverse masking bit for the residual counting unit 520.

В начале цикла сканирования по сигналу Ld (см. фиг.5), подаваемому на восьмой вход БВН, в регистр 512.1 через коммутатор 511.1 защелкивается коэффициент A'l(i) (адрес данных чтения AR1 БПК 550 при этом равен i), в регистр 512.2 через коммутатор 511.2 защелкивается коэффициент C'L(i) (D'L(i)), в триггер 519 защелкивается бит маски Msk1'. В следующих тактах из БПК 550 считываются коэффициенты A'l(j), C'L(j) (d'l(j)) вместе с соответствующим битом маски (адреса данных чтения БПК при этом будут пробегать значения j=i+1, …, n-1). На выходах сумматора элементов поля 513.1 формируются суммы A'L(i)+A'l(j) (в поле Галуа характеристики 2 вычитание совпадает со сложением). Инвертор 514 находит обратную величину полученной суммы в поле Галуа. На выходах сумматора элементов поля 513.2 формируются суммы C'l(i)+C'l(j) (D'l(i)+D'l(j)), на выходах перемножителя 515 получаются величины

Figure 00000047
(или
Figure 00000048
для L2t=2t+1). С помощью бита маскирования Msk2, формируемого логическим элементом ИЛИ-НЕ 518, из подсчета убираются Δ', для которых Λ(2t)-i)=0 (или В(2t)-i)=0 для L2t=2t+1). Кроме того, из подсчета убираются нулевые значения Δ' с помощью селектора нулевого элемента поля 516.2 и логического элемента И 517.2.At the beginning of the scan cycle, according to the signal Ld (see Fig. 5) supplied to the eighth input of the IOS, the coefficient A ' l (i) is latched into the register 512.1 through the switch 511.1 (the read data address AR1 of the BOD 550 is i), to the register 512.2 coefficient C ' L (i) (D' L (i) ) is latched through switch 511.2, mask bit Msk1 'is latched into trigger 519. In the following clock cycles, the coefficients A ' l (j) , C' L (j) (d ' l (j) ) are read from the BOD 550 together with the corresponding bit of the mask (in this case, the read addresses of the BOD will run through the values j = i + 1, ..., n-1). At the outputs of the adder of the elements of field 513.1, the sums A ' L (i) + A' l (j) are formed (in the Galois field of characteristic 2, the subtraction coincides with the addition). Inverter 514 finds the reciprocal of the sum obtained in the Galois field. At the outputs of the adder of the elements of field 513.2, the sums C ' l (i) + C' l (j) (D ' l (i) + D' l (j) ) are formed, at the outputs of the multiplier 515 the quantities
Figure 00000047
(or
Figure 00000048
for L 2t = 2t + 1). Using the masking bit Msk2, formed by the OR-NOT 518 logic element, Δ 'for which Λ (2t)-i ) = 0 (or В (2t)-i ) = 0 for L 2t = 2t + 1). In addition, the zero values Δ 'are removed from the calculation using the selector of the zero element of the field 516.2 and the logical element AND 517.2.

Во втором режиме определяются значения t позиций ошибочных символов (значение позиции первой ошибки определяется в местном устройстве управления 560 при обнаружении ровно t значений Δ'). Для этого повторяют цикл вычисления Δ', на котором был обнаружен набор из t одинаковых значений Δ', используя значения А''L(i), С''L(j) (D''l(j), Msk1'' со вторых входов блока памяти коэффициентов 550. При этом последовательность Δ' сравнивается схемой сравнения кодов 516.1 с запомненным в регистре 540 значением Δ''. Всякий раз при сравнении сигнал SXi принимает значение логической 1, и в этот момент времени значение AR2 принимается как значение позиции РЕ' ошибочного символа (без учета перестановки).In the second mode, the values of t positions of erroneous symbols are determined (the position value of the first error is determined in the local control device 560 when exactly t values Δ 'are detected). To do this, repeat the calculation cycle Δ ', on which a set of t identical values of Δ' was found, using the values A '' L (i) , C '' L (j) (D '' l (j) , Msk1 '' with the second inputs of the coefficient memory unit 550. In this case, the sequence Δ 'is compared by a circuit for comparing codes 516.1 with the value Δ''stored in the register 540. Each time, when comparing, the signal SX i takes the value logical 1, and at this moment the value AR2 is taken as the value of the position PE 'erroneous character (excluding permutation).

Блок подсчета невязок (БПН) 520 содержит (см. фиг.6): блок вентилей 521, блок памяти с произвольной выборкой 522 с защелкой выходных данных на выходе по фронту тактового сигнала, схему инкремента 523, схему сравнения кодов 524, коммутатор с двух направлений 526, регистр-защелку 527, логические элементы И 525 и 528.The block of residual counting (BPN) 520 contains (see Fig. 6): a block of valves 521, a random-access memory block 522 with a latch of output data at the output along the clock edge, an increment scheme 523, a code comparison circuit 524, a two-way switch 526, register-latch 527, logical elements And 525 and 528.

В основе БПН лежит память 522, которая содержит 2m слов (2m - число элементов конечного поля Галуа) разрядностью log2t. Слово памяти хранит значение счетчика соответствующего значения Δ' (wi,l).The BPN is based on memory 522, which contains 2 m words (2 m is the number of elements of a finite Galois field) with a width of log 2 t. The memory word stores the counter value of the corresponding value Δ '(w i, l ).

Блок подсчета невязок работает в двух режимах.The residual counting unit operates in two modes.

В первом режиме осуществляется подсчет различных значений Δ'. Поступающие на вход блока значения Δ', защелкиваются в регистр 527. Содержимое ячейки памяти 522 (счетчик wi,l), соответствующее этому значению Δ', увеличивается на 1 с помощью схемы инкремента 523 и записывается в ту же ячейку памяти через открытый блок вентилей 521. Схема сравнения кодов 524 проверяет, не достигло ли значение счетчика t, и если достигло, то формирует сигнал обнаружения значения невязки Δ', соответствующего конфигурации ошибок веса t+1.In the first mode, various Δ 'values are counted. The Δ 'values arriving at the block input are latched into register 527. The contents of memory cell 522 (counter w i, l ) corresponding to this Δ' value are increased by 1 using the increment scheme 523 and written to the same memory cell through the open valve block 521. The code comparison circuit 524 checks if the counter value t has not reached, and if it does, it generates a signal for detecting the residual value Δ 'corresponding to the error configuration of weight t + 1.

Уровень логического нуля на выходе элемента 528, формируемый при активном сигнале Msk2 или неактивном сигнале разрешения работы Е, блокирует инкрементирование количества Δ', находящегося на выходе памяти.The logic zero level at the output of element 528, which is formed when the active signal Msk2 or inactive signal permits work E, blocks the increment of the number Δ 'located on the output of the memory.

Во втором режиме работы БПН (режиме инициализации), задаваемом сигналом I на первом входе БПН, во все ячейки памяти 522 записываются нулевые слова. Адреса ячеек памяти 522 в этом режиме поступают через коммутатор 526 из местного устройства управления 560. Нулевые слова на входе памяти 522 получают с помощью блока вентилей 521.In the second operation mode of the on-load tap-changer (initialization mode) specified by the signal I at the first input of the on-load tap-changer, zero words are written to all memory cells 522. The addresses of the memory cells 522 in this mode are received through the switch 526 from the local control device 560. Zero words at the input of the memory 522 are obtained using the block of valves 521.

Предлагаемое устройство декодирования кодов Рида-Соломона представляет собой синхронный потоковый декодер, обрабатывающий входные данные в темпе их поступления. Выходные данные тактируются частотой входных данных, и, следовательно, выдаются с такой же скоростью. Задержка данных в устройстве равна времени поступления пяти кодовых слов. Размер буферной памяти данных 100 будет при этом равен 5n символам.The proposed device for decoding Reed-Solomon codes is a synchronous stream decoder that processes the input data at the rate of their arrival. The output is clocked by the frequency of the input, and therefore output at the same rate. The data delay in the device is equal to the arrival time of five code words. The size of the buffer memory data 100 will be equal to 5n characters.

Заявляемое устройство состоит из простых по своему функциональному назначению элементов и поэтому легко может быть реализовано на ПЛИС или специализированной БИС.The inventive device consists of simple in its functional purpose elements and therefore can easily be implemented on FPGA or specialized LSI.

Результаты исследования быстродействия заявляемого декодера в канале с аддитивным белым гауссовским шумом (AWGN) и модуляцией BPSK приведены на фиг.10. В качестве меры надежности символа слова PC-кода использовалось минимальное значение модулей мягких решений

Figure 00000049
составляющих его бит.The results of the study of the performance of the inventive decoder in the channel with additive white Gaussian noise (AWGN) and BPSK modulation are shown in Fig.10. As a measure of the reliability of the word symbol of the PC code, the minimum value of the soft decision modules was used
Figure 00000049
its constituent bits.

Имитационным моделированием исследовались PC-коды с d=13, определенные над конечным полем GF(28), nc=30. Модель канала - BPSK, AWGN, Eb/No=7 db. На графике ξ обозначает коэффициент повышения быстродействия поиска неизвестных невязок, равный отношению ns·nw (nw - число обработанных кодовых слов в процессе моделирования) к реальному числу вычислений

Figure 00000050
невязок декодером при исправлении t+1 ошибок.By simulation, we studied PC codes with d = 13, defined over a finite field GF (2 8 ), n c = 30. Channel model - BPSK, AWGN, E b / No = 7 db. On the graph, ξ denotes a coefficient for increasing the speed of searching for unknown residuals, equal to the ratio of n s · n w (n w is the number of processed code words in the modeling process) to the real number of calculations
Figure 00000050
discrepancies by the decoder when correcting t + 1 errors.

Кривая 1 соответствует случаю декодирования кодовых слов с t+1 ошибкой по алгоритму [3] (характеризует возможность повышения быстродействия декодера-прототипа за счет усреднения времени декодирования кодовых слов), кривая 2 - случаю управления поиском невязок информацией о надежности принятых из канала символов. Для получения значения ξ в одной точке обрабатывалось nw=107 кодовых слов. Из графика видно, что выигрыш по быстродействию при управляемом поиске составляет примерно два десятичных порядка.Curve 1 corresponds to the case of decoding code words with t + 1 error according to the algorithm [3] (characterizes the possibility of increasing the speed of the prototype decoder by averaging the decoding time of code words), curve 2 - to the case of controlling the search for discrepancies with information about the reliability of symbols received from the channel. To obtain the value of ξ, n w = 10 7 codewords were processed at one point. The graph shows that the performance gain in a controlled search is approximately two decimal orders.

Использование информации о надежности принятых из канала символов кодового слова в процессе поиска неизвестных невязок обеспечивает значительно большее быстродействие заявляемого устройства декодирования по сравнению с прототипом.The use of information about the reliability of the codeword symbols received from the channel in the process of searching for unknown residuals provides significantly greater performance of the inventive decoding device compared to the prototype.

Источники информацииInformation sources

1. Патент 6631172 США. МПК7 H03D 1/00. Efficient List Decoding Of Reed-Solomon Codes For Message Recovery In The Presence Of High Noise Levels. / Mohammad Amin Shokrollahi, Vadim Olshevsky - заявлено 01.05.2000 N09/563602; опубл. 07.10.2003.1. US patent 6631172. IPC 7 H03D 1/00. Efficient List Decoding Of Reed-Solomon Codes For Message Recovery In The Presence Of High Noise Levels. / Mohammad Amin Shokrollahi, Vadim Olshevsky - 05/01/2000 N09 / 563602; publ. 10/07/2003.

2. Патент 6634007 США. МПК7 Н03М 13/00. Algebraic Soft-Decision Decoding of Reed-Solomon codes. / Ralf Koetter, Alexander Vardy - заявлено 23.01.2000 N09/602914; опубл. 14.10.2003.2. U.S. Patent 6,634,007. IPC 7 Н03М 13/00. Algebraic Soft-Decision Decoding of Reed-Solomon codes. / Ralf Koetter, Alexander Vardy - Declared 1/23/2000 N09 / 602914; publ. 10/14/2003.

3. Egorov S., Markarian G., Pickavance K. A Modified Blahut Algorithm for Decoding Reed-Solomon Codes Beyond Half the Minimum Distance // IEEE Trans. on Commun., vol.52, no.12, December. 2004, pp.2052-2056.3. Egorov S., Markarian G., Pickavance K. A Modified Blahut Algorithm for Decoding Reed-Solomon Codes Beyond Half the Minimum Distance // IEEE Trans. on Commun., vol. 52, no.12, December. 2004, pp. 2052-2056.

4. Егоров С.И. Коррекция ошибок в информационных каналах периферийных устройств ЭВМ. Монография. Курск: Курск, гос. техн. ун-т, 2008. - 252 с.4. Egorov S.I. Error correction in the information channels of computer peripherals. Monograph. Kursk: Kursk, state. tech. Univ., 2008 .-- 252 p.

5. Блейхут Р. Теория и практика кодов, контролирующих ошибки: Пер. с англ. - М.: Мир, 1986. - 576 с.5. Bleikhut R. Theory and practice of error control codes: Per. from English - M.: Mir, 1986 .-- 576 p.

Claims (6)

1. Устройство декодирования кодов Рида-Соломона, содержащее буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок вычисления значений ошибок, первый сумматор элементов поля Галуа, причем входы буферной памяти данных и входы блока вычисления синдромов являются входами символов данных устройства декодирования кодов Рида-Соломона, выходы буферной памяти данных соединены с первыми входами первого сумматора элементов поля Галуа, выходы блока вычисления синдромов соединены с первыми входами процессора Галуа, первые выходы процессора Галуа соединены с первыми входами блока дискретного преобразования Фурье, вторые выходы процессора Галуа соединены со вторыми входами блока дискретного преобразования Фурье, третьи выходы процессора Галуа соединены с третьими входами блока дискретного преобразования Фурье, четвертые выходы процессора Галуа соединены с четвертыми входами блока поиска позиций ошибок, пятые выходы процессора Галуа соединены с первыми входами блока вычисления значений ошибок, шестые выходы процессора Галуа соединены со вторыми входами блока вычисления значений ошибок, седьмые выходы процессора Галуа соединены с третьими входами блока вычисления значений ошибок, вторые выходы блока дискретного преобразования Фурье соединены с третьими входами процессора Галуа, третьи выходы блока дискретного преобразования Фурье соединены с четвертыми входами процессора Галуа, четвертые выходы блока дискретного преобразования Фурье соединены с первыми входами блока поиска позиций ошибок, пятый выход блока дискретного преобразования Фурье соединен со вторым входом блока поиска позиций ошибок, шестые выходы блока дискретного преобразования Фурье соединены с третьими входами блока поиска позиций ошибок, первые выходы блока поиска позиций ошибок соединены с пятыми входами процессора Галуа, вторые выходы блока поиска позиций ошибок соединены с шестыми входами процессора Галуа, третьи выходы блока поиска позиций ошибок соединены с седьмыми входами процессора Галуа, четвертые выходы блока поиска позиций ошибок соединены с восьмыми входами процессора Галуа, выходы блока вычисления значений ошибок соединены со вторыми входами первого сумматора элементов поля Галуа, выходы первого сумматора элементов поля Галуа являются выходами данных устройства декодирования кодов Рида-Соломона, отличающееся тем, что в устройство введен блок сортировки позиций символов, причем первые входы блока сортировки позиций символов являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона, пятые выходы блока поиска позиций ошибок соединены со вторыми входами блока сортировки позиций символов, первые выходы блока дискретного преобразования Фурье соединены с третьими входами блока сортировки позиций символов, первые выходы блока сортировки позиций символов соединены со вторыми входами процессора Галуа, вторые выходы блока сортировки позиций символов соединены с пятыми входами блока поиска позиций ошибок.1. A Reed-Solomon code decoding device comprising a data buffer, a syndrome calculation unit, a Galois processor, a discrete Fourier transform unit, an error position search unit, an error value calculation unit, a first adder of Galois field elements, the inputs of the data buffer memory and the inputs of the block syndrome calculations are inputs of data symbols of a Reed-Solomon code decoding device, outputs of the data buffer memory are connected to the first inputs of the first adder of Galois field elements, outputs of the calculation unit with ndromes are connected to the first inputs of the Galois processor, the first outputs of the Galois processor are connected to the first inputs of the discrete Fourier transform block, the second outputs of the Galois processor are connected to the second inputs of the discrete Fourier transform block, the third outputs of the Galois processor are connected to the third inputs of the discrete Fourier transform block, fourth outputs of the processor Galois connected to the fourth inputs of the error position search unit, fifth outputs of the Galois processor connected to the first inputs of the error value calculation unit ok, the sixth outputs of the Galois processor are connected to the second inputs of the error value calculation unit, the seventh outputs of the Galois processor are connected to the third inputs of the error value calculation unit, the second outputs of the discrete Fourier transform unit are connected to the third inputs of the Galois processor, the third outputs of the discrete Fourier transform unit are connected to the fourth Galois processor inputs, the fourth outputs of the discrete Fourier transform block are connected to the first inputs of the error position search block, the fifth output of the discrete Fourier transform Fourier transform is connected to the second input of the error position search unit, the sixth outputs of the discrete Fourier transform unit are connected to the third inputs of the error position search unit, the first outputs of the error position search unit are connected to the fifth inputs of the Galois processor, the second outputs of the error position search unit are connected to sixth inputs Galois processor, the third outputs of the error position search unit are connected to the seventh inputs of the Galois processor, the fourth outputs of the error position search unit are connected to the eighth inputs of the processor alua, the outputs of the error value calculation unit are connected to the second inputs of the first adder of the Galois field elements, the outputs of the first adder of the Galois field elements are data outputs of a Reed-Solomon code decoding device, characterized in that a unit for sorting character positions is introduced into the device, the first inputs of the sorting unit the positions of the symbols are inputs of the estimates of the reliability of the data symbols of the Reed-Solomon code decoding device, the fifth outputs of the error position search unit are connected to the second inputs of rtirovki character positions, the first outputs of the discrete Fourier transform unit connected to a third input block sort of character positions, the first unit outputs the sort of character positions are connected to second inputs of the processor Galois second sorting unit outputs character positions are connected to inputs of the fifth block search position errors. 2. Устройство по п.1, отличающееся тем, что блок сортировки позиций символов содержит первую схему сравнения кодов, первый блок памяти отсортированных позиций, второй блок памяти отсортированных позиций, третий блок памяти отсортированных позиций, четвертый блок памяти отсортированных позиций, пятый блок памяти отсортированных позиций, первый коммутатор, второй коммутатор, третий коммутатор, четвертый коммутатор, пятый коммутатор, шестой коммутатор, седьмой коммутатор, первый счетчик, второй счетчик, третий счетчик, первый дешифратор, второй дешифратор, причем первые входы первой схемы сравнения кодов являются первыми входами блока сортировки позиций символов, вторые входы первой схемы сравнения кодов соединены с шиной константы Thres, выход первой схемы сравнения кодов соединен со вторым входом первого блока памяти отсортированных позиций, со вторым входом второго блока памяти отсортированных позиций, со вторым входом третьего блока памяти отсортированных позиций, со вторым входом четвертого блока памяти отсортированных позиций и со вторым входом пятого блока памяти отсортированных позиций, первые выходы первого счетчика соединены с первыми входами первого блока памяти отсортированных позиций, с первыми входами второго блока памяти отсортированных позиций, с первыми входами третьего блока памяти отсортированных позиций, с первыми входами четвертого блока памяти отсортированных позиций и с первыми входами пятого блока памяти отсортированных позиций, второй выход первого счетчика соединен с входом второго счетчика, выходы второго счетчика соединены со входами первого дешифратора, первый выход первого дешифратора соединен с третьим входом первого блока памяти отсортированных позиций, второй выход первого дешифратора соединен с третьим входом второго блока памяти отсортированных позиций, третий выход первого дешифратора соединен с третьим входом третьего блока памяти отсортированных позиций, четвертый выход первого дешифратора соединен с третьим входом четвертого блока памяти отсортированных позиций, пятый выход первого дешифратора соединен с третьим входом пятого блока памяти отсортированных позиций, выходы первого блока памяти отсортированных позиций соединены со вторыми входами первого коммутатора и четвертыми входами второго коммутатора, выходы второго блока памяти отсортированных позиций соединены с третьими входами первого коммутатора и пятыми входами второго коммутатора, выходы третьего блока памяти отсортированных позиций соединены с четвертыми входами первого коммутатора и первыми входами второго коммутатора, выходы четвертого блока памяти отсортированных позиций соединены с пятыми входами первого коммутатора и вторыми входами второго коммутатора, выходы пятого блока памяти отсортированных позиций соединены с первыми входами первого коммутатора и третьими входами второго коммутатора, выходы третьего счетчика соединены с шестыми входами первого коммутатора, с шестыми входами второго коммутатора и входами второго дешифратора, первый выход второго дешифратора соединен с третьим входом седьмого коммутатора, второй выход второго дешифратора соединен с третьим входом третьего коммутатора, третий выход второго дешифратора соединен с третьим входом четвертого коммутатора, четвертый выход второго дешифратора соединен с третьим входом пятого коммутатора, пятый выход второго дешифратора соединен с третьим входом шестого коммутатора, первые входы третьего, четвертого, пятого, шестого и седьмого коммутаторов являются третьими входами блока сортировки позиций символов, вторые входы третьего, четвертого, пятого, шестого и седьмого коммутаторов являются вторыми входами блока сортировки позиций символов, выходы третьего коммутатора соединены с четвертыми входами первого блока памяти отсортированных позиций, выходы четвертого коммутатора соединены с четвертыми входами второго блока памяти отсортированных позиций, выходы пятого коммутатора соединены с четвертыми входами третьего блока памяти отсортированных позиций, выходы шестого коммутатора соединены с четвертыми входами четвертого блока памяти отсортированных позиций, выходы седьмого коммутатора соединены с четвертыми входами пятого блока памяти отсортированных позиций, выходы первого коммутатора являются вторыми выходами блока сортировки позиций символов, выходы второго коммутатора являются первыми выходами блока сортировки позиций символов.2. The device according to claim 1, characterized in that the character position sorting unit comprises a first code comparison scheme, a first sorted position memory block, a second sorted position memory block, a third sorted position memory block, a fourth sorted position memory block, and a fifth sorted memory block positions, first switch, second switch, third switch, fourth switch, fifth switch, sixth switch, seventh switch, first counter, second counter, third counter, first decoder, w a second decoder, the first inputs of the first code comparison circuit being the first inputs of the character position sorting block, the second inputs of the first code comparison circuit connected to the Thres constant bus, the output of the first code comparison circuit connected to the second input of the first memory block of sorted positions, with the second input of the second block memory of sorted positions, with the second input of the third memory block of sorted positions, with the second input of the fourth memory block of sorted positions and with the second input of the fifth memory block of sorted positions, the first outputs of the first counter are connected to the first inputs of the first memory block of sorted positions, with the first inputs of the second memory block of sorted positions, with the first inputs of the third memory block of sorted positions, with the first inputs of the fourth memory block of sorted positions and with the first inputs of the fifth memory block sorted items, the second output of the first counter is connected to the input of the second counter, the outputs of the second counter are connected to the inputs of the first decoder, the first output is not of the second decoder is connected to the third input of the first memory block of the sorted positions, the second output of the first decoder is connected to the third input of the third memory block of the sorted positions, the fourth output of the first decoder is connected to the third input of the fourth block memory of sorted positions, the fifth output of the first decoder is connected to the third input of the fifth memory block of sorted positions, the outputs of the first block the memory of the sorted positions are connected to the second inputs of the first switch and the fourth inputs of the second switch, the outputs of the second block of memory of the sorted positions are connected to the third inputs of the first switch and fifth inputs of the second switch, the outputs of the third memory block of the sorted positions are connected to the fourth inputs of the first switch and the first inputs of the second switch , the outputs of the fourth memory block of sorted positions are connected to the fifth inputs of the first switch and the second inputs of the second to mmutator, the outputs of the fifth memory block of sorted positions are connected to the first inputs of the first switch and the third inputs of the second switch, the outputs of the third counter are connected to the sixth inputs of the first switch, with the sixth inputs of the second switch and the inputs of the second decoder, the first output of the second decoder is connected to the third input of the seventh switch , the second output of the second decoder is connected to the third input of the third switch, the third output of the second decoder is connected to the third input of the fourth switch a, the fourth output of the second decoder is connected to the third input of the fifth switch, the fifth output of the second decoder is connected to the third input of the sixth switch, the first inputs of the third, fourth, fifth, sixth and seventh switches are the third inputs of the block for sorting character positions, the second inputs of the third, fourth, of the fifth, sixth and seventh switches are the second inputs of the block for sorting character positions, the outputs of the third switch are connected to the fourth inputs of the first memory block of sorted positions , the outputs of the fourth switch are connected to the fourth inputs of the second memory block of sorted positions, the outputs of the fifth switch are connected to the fourth inputs of the third memory block of sorted positions, the outputs of the sixth switch are connected to the fourth inputs of the fourth memory block of sorted positions, the outputs of the seventh switch are connected to the fourth inputs of the fifth memory block sorted positions, the outputs of the first switch are the second outputs of the block for sorting the positions of characters, the outputs of the second comm Ators are the first outputs of the block for sorting character positions. 3. Устройство по п.2, отличающееся тем, что блок памяти отсортированных позиций содержит первый блок памяти с произвольным доступом, второй блок памяти с произвольным доступом, первый логический элемент И-НЕ, второй логический элемент И-НЕ, четвертый счетчик, пятый счетчик, восьмой коммутатор, девятый коммутатор, десятый коммутатор, одиннадцатый коммутатор и вычитатель, причем первые входы первого блока памяти с произвольным доступом, первые входы второго блока памяти с произвольным доступом являются первыми входами блока памяти отсортированных позиций, первый вход первого логического элемента И-НЕ, первый вход второго логического элемента И-HE, третий вход восьмого коммутатора, третий вход девятого коммутатора являются третьим входом блока памяти отсортированных позиций, второй вход первого логического элемента И-НЕ, второй вход второго логического элемента И-НЕ являются вторым входом блока памяти отсортированных позиций, выход первого логического элемента И-НЕ соединен со вторым входом первого блока памяти с произвольным доступом и входом четвертого счетчика, выходы четвертого счетчика соединены с первыми входами восьмого коммутатора, вторыми входами одиннадцатого коммутатора и первыми входами вычитателя, выходы восьмого коммутатора соединены с третьими входами первого блока памяти с произвольным доступом, выходы первого блока памяти с произвольным доступом соединены с первыми входами десятого коммутатора, выход второго логического элемента И-НЕ соединен со вторым входом второго блока памяти с произвольным доступом и входом пятого счетчика, выходы пятого счетчика соединены с первыми входами девятого коммутатора, выходы девятого коммутатора соединены с третьими входами второго блока памяти с произвольным доступом, выходы второго блока памяти с произвольным доступом соединены со вторыми входами десятого коммутатора, вторые входы вычитателя и вторые входы восьмого коммутатора являются четвертыми входами блока памяти отсортированных позиций, а старший разряд четвертых входов блока памяти отсортированных позиций соединен с третьим входом одиннадцатого коммутатора, первые выходы вычитателя соединены со вторыми входами девятого коммутатора, второй выход вычитателя соединен с третьим входом десятого коммутатора, выходы десятого коммутатора соединены с первыми входами одиннадцатого коммутатора, выходы одиннадцатого коммутатора являются выходами блока памяти отсортированных позиций.3. The device according to claim 2, characterized in that the memory block of sorted items contains a first random access memory block, a second random access memory block, a first NAND gate, a second NAND gate, a fourth counter, and a fifth counter , the eighth switch, the ninth switch, the tenth switch, the eleventh switch and the subtracter, the first inputs of the first random access memory block, the first inputs of the second random access memory block are the first inputs of the sorting memory block positions, the first input of the first logical element AND-NOT, the first input of the second logical element AND-HE, the third input of the eighth switch, the third input of the ninth switch are the third input of the memory block of sorted positions, the second input of the first logical element AND, NOT, the second input of the second logical AND-NOT gates are the second input of the memory block of sorted positions, the output of the first logical AND gate NOT connected to the second input of the first random access memory block and the fourth counter input, outputs the fourth counter is connected to the first inputs of the eighth switch, the second inputs of the eleventh switch and the first inputs of the subtracter, the outputs of the eighth switch are connected to the third inputs of the first memory block with random access, the outputs of the first memory block with random access are connected to the first inputs of the tenth switch, the output of the second logic element AND NOT connected to the second input of the second random access memory unit and the input of the fifth counter, the outputs of the fifth counter are connected to the first inputs of of the ninth switch, the outputs of the ninth switch are connected to the third inputs of the second random access memory block, the outputs of the second random access memory are connected to the second inputs of the tenth switch, the second inputs of the subtractor and the second inputs of the eighth switch are the fourth inputs of the memory block of sorted positions, and the senior bit the fourth inputs of the memory block of sorted items is connected to the third input of the eleventh switch, the first outputs of the subtractor are connected to the second inputs of the ninth nth switch, the second output of the subtractor is connected to the third input of the tenth switch, the outputs of the tenth switch are connected to the first inputs of the eleventh switch, the outputs of the eleventh switch are the outputs of the memory block of sorted positions. 4. Устройство по п.1, отличающееся тем, что блок поиска позиций ошибок содержит первый блок вычисления невязок, второй блок вычисления невязок, первый блок подсчета невязок, второй блок подсчета невязок, двенадцатый коммутатор, первый регистр-защелку, блок памяти коэффициентов, первое местное устройство управления, причем первые входы первого местного устройства управления являются четвертыми входами блока поиска позиций ошибок, вторые входы первого местного устройства управления и первые входы блока памяти коэффициентов являются пятыми входами блока поиска позиций ошибок, третьи входы блока поиска позиций ошибок являются младшими разрядами вторых входов блока памяти коэффициентов, первые входы блока поиска позиций ошибок являются средними разрядами вторых входов блока памяти коэффициентов, второй вход блока поиска позиций ошибок является старшим разрядом вторых входов блока памяти коэффициентов, младшие разряды первых выходов блока памяти коэффициентов соединены с первыми входами первого блока вычисления невязок и с первыми входами второго блока вычисления невязок, средние разряды первых выходов блока памяти коэффициентов соединены с третьими входами первого блока вычисления невязок и с третьими входами второго блока вычисления невязок, старший разряд первых выходов блока памяти коэффициентов соединен с пятым входом первого блока вычисления невязок и с пятым входом второго блока вычисления невязок, младшие разряды вторых выходов блока памяти коэффициентов соединены со вторыми входами первого блока вычисления невязок и со вторыми входами второго блока вычисления невязок, средние разряды вторых выходов блока памяти коэффициентов соединены с четвертыми входами первого блока вычисления невязок и с четвертыми входами второго блока вычисления невязок, старший разряд вторых выходов блока памяти коэффициентов соединен с шестым входом первого блока вычисления невязок и с шестым входом второго блока вычисления невязок, первые выходы первого блока вычисления невязок соединены с шестыми входами двенадцатого коммутатора, вторые выходы первого блока вычисления невязок соединены с пятыми входами двенадцатого коммутатора, третий выход первого блока вычисления невязок соединен с четвертым входом первого блока подсчета невязок, четвертые выходы первого блока вычисления невязок соединены с третьими входами первого блока подсчета невязок, пятый выход первого блока вычисления невязок соединен с третьим входом первого местного устройства управления, первый выход первого блока подсчета невязок соединен с пятым входом первого местного устройства управления, вторые выходы первого блока подсчета невязок соединены с четвертыми входами двенадцатого коммутатора, первые выходы второго блока вычисления невязок соединены с первыми входами двенадцатого коммутатора, вторые выходы второго блока вычисления невязок соединены со вторыми входами двенадцатого коммутатора, пятый выход второго блока вычисления невязок соединен с четвертым входом первого местного устройства управления, четвертые выходы второго блока вычисления невязок соединены с третьими входами второго блока подсчета невязок, третий выход второго блока вычисления невязок соединен с четвертым входом второго блока подсчета невязок, вторые выходы второго блока подсчета невязок соединены с третьими входами двенадцатого коммутатора, первый выход второго блока подсчета невязок соединен с шестым входом первого местного устройства управления, третий выход первого местного устройства управления соединен с седьмым входом первого блока вычисления невязок, четвертый выход первого местного устройства управления соединен с восьмым входом первого блока вычисления невязок, пятый выход первого местного устройства управления соединен с девятым входом первого блока вычисления невязок, шестые выходы первого местного устройства управления соединены с четвертыми входами блока памяти коэффициентов, седьмые выходы первого местного устройства управления соединены с третьими входами блока памяти коэффициентов, восьмые выходы первого местного устройства управления соединены со вторыми входами первого блока подсчета невязок, девятый выход первого местного устройства управления соединен с первым входом первого блока подсчета невязок, десятый выход первого местного устройства управления соединен с пятым входом первого блока подсчета невязок, одиннадцатый выход первого местного устройства управления соединен с четвертым входом первого регистра-защелки, двенадцатые выходы первого местного устройства управления соединены с седьмыми входами двенадцатого коммутатора, тринадцатый выход первого местного устройства управления соединен с пятым входом второго блока подсчета невязок, четырнадцатый выход первого местного устройства управления соединен с первым входом второго блока подсчета невязок, пятнадцатые выходы первого местного устройства управления соединены со вторыми входами второго блока подсчета невязок, шестнадцатый выход первого местного устройства управления соединен с девятым входом второго блока вычисления невязок, семнадцатый выход первого местного устройства управления соединен с восьмым входом второго блока вычисления невязок, восемнадцатый выход первого местного устройства управления соединен с седьмым входом второго блока вычисления невязок, первые выходы первого местного устройства управления являются пятыми выходами блока поиска позиций ошибок, вторые выходы первого местного устройства управления являются первыми выходами блока поиска позиций ошибок, первые выходы двенадцатого коммутатора соединены с первыми входами первого регистра-защелки, вторые выходы двенадцатого коммутатора соединены со вторыми входами первого регистра-защелки, третьи выходы двенадцатого коммутатора соединены с третьими входами первого регистра-защелки, вторые выходы первого регистра-защелки соединены с десятыми входами первого блока вычисления невязок, десятыми входами второго блока вычисления невязок и являются вторыми выходами блока поиска позиций ошибок, первые выходы первого регистра-защелки являются третьими выходами блока поиска позиций ошибок, третьи выходы первого регистра-защелки являются четвертыми выходами блока поиска позиций ошибок.4. The device according to claim 1, characterized in that the error position search unit comprises a first residual calculation unit, a second residual calculation unit, a first residual calculation unit, a second residual calculation unit, a twelfth switch, a first latch register, a coefficient memory unit, a first a local control device, the first inputs of the first local control device being the fourth inputs of the error position search unit, the second inputs of the first local control device and the first inputs of the coefficient memory unit and the inputs of the error position search block, the third inputs of the error position search block are the lower bits of the second inputs of the coefficient memory block, the first inputs of the error position search block are the middle bits of the second inputs of the coefficient memory block, the second input of the error position search block is the highest bit of the second inputs of the memory block coefficients, the least significant bits of the first outputs of the coefficient memory block are connected to the first inputs of the first block for calculating the residuals and to the first inputs of the second block for calculating the blind short, the middle digits of the first outputs of the coefficient memory block are connected to the third inputs of the first residual calculation block and to the third inputs of the second residual calculation block, the highest bit of the first outputs of the coefficient memory block is connected to the fifth input of the first residual calculation block and to the fifth input of the second residual calculation block, the least significant bits of the second outputs of the coefficient memory block are connected to the second inputs of the first residual calculating unit and with the second inputs of the second residual computing unit, the middle bits are of the other outputs of the coefficient memory block are connected to the fourth inputs of the first residual calculation block and to the fourth inputs of the second residual calculation block, the highest bit of the second outputs of the coefficient memory block is connected to the sixth input of the first residual calculation block and to the sixth input of the second residual calculation block, the first outputs of the first block residual computations are connected to the sixth inputs of the twelfth switch, the second outputs of the first residual computation unit are connected to the fifth inputs of the twelfth switch, the third the output of the first residual calculation block is connected to the fourth input of the first residual counting block, the fourth outputs of the first residual calculation block are connected to the third inputs of the first residual counting block, the fifth output of the first residual calculation block is connected to the third input of the first local control device, the first output of the first residual counting block connected to the fifth input of the first local control device, the second outputs of the first residual counting unit are connected to the fourth inputs of the twelfth switch, the first the outputs of the second residual calculation block are connected to the first inputs of the twelfth switch, the second outputs of the second residual calculation block are connected to the second inputs of the twelfth switch, the fifth output of the second residual calculation block is connected to the fourth input of the first local control device, the fourth outputs of the second residual calculation block are connected to third inputs the second block of calculation of residuals, the third output of the second block of calculation of residuals is connected to the fourth input of the second block of calculation of residuals, the second the moves of the second residual counting unit are connected to the third inputs of the twelfth switch, the first output of the second residual counting unit is connected to the sixth input of the first local control device, the third output of the first local control device is connected to the seventh input of the first residual calculation unit, the fourth output of the first local control device is connected to the eighth input of the first residual computing unit, the fifth output of the first local control device is connected to the ninth input of the first residual computing unit k, the sixth outputs of the first local control device are connected to the fourth inputs of the coefficient memory unit, the seventh outputs of the first local control device are connected to the third inputs of the coefficient memory unit, the eighth outputs of the first local control device are connected to the second inputs of the first residual counting unit, the ninth output of the first local device control is connected to the first input of the first block of residual counting, the tenth output of the first local control device is connected to the fifth input of the first residual counting unit, the eleventh output of the first local control device is connected to the fourth input of the first register-latch, the twelfth outputs of the first local control device is connected to the seventh inputs of the twelfth switch, the thirteenth output of the first local control device is connected to the fifth input of the second residual counting unit, the fourteenth output of the first the local control device is connected to the first input of the second residual counting unit, the fifteenth outputs of the first local control device the connections are connected to the second inputs of the second block of residuals, the sixteenth output of the first local control device is connected to the ninth input of the second block of residuals, the seventeenth output of the first local control device is connected to the eighth input of the second block of residuals, the eighteenth output of the first local control device is connected to the seventh input of the second block for calculating residuals, the first outputs of the first local control device are the fifth outputs of the block for searching for error positions, the second the moves of the first local control device are the first outputs of the error position search unit, the first outputs of the twelfth switch are connected to the first inputs of the first register-latch, the second outputs of the twelfth switch are connected to the second inputs of the first register-latch, the third outputs of the twelfth switch are connected to the third inputs of the first register latches, the second outputs of the first register-latches are connected to the tenth inputs of the first block of residual calculation, the tenth inputs of the second block of residual calculation and I are the second outputs of the error position search unit, the first outputs of the first latch register are the third outputs of the error position search unit, the third outputs of the first latch register are the fourth outputs of the error position search unit. 5. Устройство по п.4, отличающееся тем, что блок вычисления невязок содержит тринадцатый, четырнадцатый и пятнадцатый коммутаторы, второй регистр-защелку, третий регистр-защелку, второй сумматор элементов поля Галуа, третий сумматор элементов поля Галуа, первый инвертор элементов поля Галуа, первый перемножитель элементов поля Галуа, вторую схему сравнения кодов, первый селектор нулевого элемента поля Галуа, первый логический элемент И, второй логический элемент И, логический элемент ИЛИ-НЕ, D-триггер, причем первые входы тринадцатого коммутатора являются первыми входами блока вычисления невязок, вторые входы тринадцатого коммутатора являются вторыми входами блока вычисления невязок, первые входы четырнадцатого коммутатора являются третьими входами блока вычисления невязок, вторые входы четырнадцатого коммутатора являются четвертыми входами блока вычисления невязок, первый вход пятнадцатого коммутатора является пятым входом блока вычисления невязок, второй вход пятнадцатого коммутатора является шестым входом блока вычисления невязок, третий вход тринадцатого коммутатора, третий вход четырнадцатого коммутатора, третий вход пятнадцатого коммутатора являются седьмым входом блока вычисления невязок, выходы тринадцатого коммутатора соединены с первыми входами второго регистра-защелки и вторыми входами второго сумматора элементов поля Галуа, второй вход второго регистра-защелки, второй вход третьего регистра-защелки, второй вход D-триггера являются восьмым входом блока вычисления невязок, выходы второго регистра-защелки соединены с первыми входами второго сумматора элементов поля Галуа и являются вторыми выходами блока вычисления невязок, выходы второго сумматора элементов поля Галуа соединены со входами первого инвертора элементов поля Галуа, выходы первого инвертора элементов поля Галуа соединены с первыми входами первого перемножителя элементов поля Галуа, выходы первого перемножителя элементов поля Галуа соединены со вторыми входами второй схемы сравнения кодов и являются четвертыми выходами блока вычисления невязок, первые входы второй схемы сравнения кодов являются десятыми входами блока вычисления невязок, выход второй схемы сравнения кодов соединен с первым входом первого логического элемента И, выход первого логического элемента И является пятым выходом блока вычисления невязок, выходы четырнадцатого коммутатора соединены с первыми входами третьего регистра-защелки и вторыми входами третьего сумматора элементов поля Галуа, выходы третьего регистра-защелки соединены с первыми входами третьего сумматора элементов поля Галуа и являются первыми выходами блока вычисления невязок, выходы третьего сумматора элементов поля Галуа соединены со входами первого селектора нулевого элемента поля Галуа и вторыми входами первого перемножителя элементов поля Галуа, выход первого селектора нулевого элемента поля Галуа соединен с первым входом второго логического элемента И, второй вход второго логического элемента И является девятым входом блока вычисления невязок, выход второго логического элемента И соединен с первым входом логического элемента ИЛИ-НЕ, выход пятнадцатого коммутатора соединен со вторым входом логического элемента ИЛИ-НЕ и первым входом D-триггера, выход D-триггера соединен с третьим входом логического элемента ИЛИ-НЕ, выход логического элемента ИЛИ-НЕ соединен со вторым входом первого логического элемента И и является третьим выходом блока вычисления невязок.5. The device according to claim 4, characterized in that the residual calculating unit comprises thirteenth, fourteenth and fifteenth switches, a second latch register, a third latch register, a second adder of Galois field elements, a third adder of Galois field elements, a first Galois field element inverter , the first multiplier of the Galois field elements, the second code comparison scheme, the first selector of the zero Galois field element, the first logical element AND, the second logical element AND, the logical element OR-NOT, D-trigger, with the first inputs of the thirteenth comm the tator are the first inputs of the residual calculation block, the second inputs of the thirteenth switch are the second inputs of the residual calculation block, the first inputs of the fourteenth switch are the third inputs of the residual calculation block, the second inputs of the fourteenth switch are the fourth inputs of the residual calculation block, the first input of the fifteenth switch is the fifth input of the calculation block residuals, the second input of the fifteenth switch is the sixth input of the residual calculation unit, the third input of the thirteenth utator, the third input of the fourteenth switch, the third input of the fifteenth switch are the seventh input of the residual calculation unit, the outputs of the thirteenth switch are connected to the first inputs of the second register-latch and the second inputs of the second adder of the Galois field elements, the second input of the second register-latch, the second input of the third register latches, the second input of the D-flip-flop is the eighth input of the residual calculation unit, the outputs of the second register-latch are connected to the first inputs of the second adder of the Galois field elements and are by the second outputs of the residual calculation block, the outputs of the second adder of Galois field elements are connected to the inputs of the first inverter of Galois field elements, the outputs of the first inverter of Galois field elements are connected to the first inputs of the first Galois field element multiplier, the outputs of the first Galois field element multiplier are connected to the second inputs of the second circuit code comparisons are the fourth outputs of the residual computation unit, the first inputs of the second code comparison circuit are the tenth inputs of the residual computation unit, w output A second code comparison circuit is connected to the first input of the first logical element And, the output of the first logical element And is the fifth output of the residual calculation block, the outputs of the fourteenth switch are connected to the first inputs of the third register-latch and the second inputs of the third adder of the Galois field elements, the outputs of the third register-latch connected to the first inputs of the third adder of the elements of the Galois field and are the first outputs of the block for calculating the residuals, the outputs of the third adder of the elements of the Galois field are connected to the input by the first selector of the zero element of the Galois field and the second inputs of the first multiplier of the elements of the Galois field, the output of the first selector of the zero element of the Galois field is connected to the first input of the second logical element And, the second input of the second logical element And is the ninth input of the residual calculation block, the output of the second logical element And connected to the first input of the OR-NOT logical element, the output of the fifteenth switch is connected to the second input of the logical element OR-NOT and the first input of the D-trigger, the output of the D-trigger is connected inen with the third input of the OR-NOT logical element, the output of the OR-NOT logical element is connected to the second input of the first AND logical element and is the third output of the residual calculation block. 6. Устройство по п.4, отличающееся тем, что блок подсчета невязок содержит первый блок вентилей, третий блок памяти с произвольным доступом, схему инкремента, третью схему сравнения кодов, шестнадцатый коммутатор, четвертый регистр-защелку, третий логический элемент И, четвертый логический элемент И, причем второй вход первого блока вентилей и третий вход шестнадцатого коммутатора являются первым входом блока подсчета невязок, выходы первого блока вентилей соединены с первыми входами третьего блока памяти с произвольным доступом, выходы третьего блока памяти с произвольным доступом соединены с первыми входами схемы инкремента, выходы схемы инкремента соединены с первыми входами первого блока вентилей и первыми входами третьей схемы сравнения кодов, вторые входы третьей схемы сравнения кодов соединены с шиной константы 't', выход третьей схемы сравнения кодов соединен с первым входом третьего логического элемента И, выход третьего элемента логическое И является первым выходом блока подсчета невязок, первые входы шестнадцатого коммутатора являются вторыми входами блока подсчета невязок, выходы шестнадцатого коммутатора соединены со вторыми входами третьего блока памяти с произвольным доступом, входы четвертого регистра-защелки являются третьими входами блока подсчета невязок, выходы четвертого регистра-защелки соединены со вторыми входами шестнадцатого коммутатора и являются вторыми выходами блока подсчета невязок, первый вход четвертого логического элемента И является четвертым входом блока подсчета невязок, второй вход четвертого логического элемента И является пятым входом блока подсчета невязок, выход четвертого логического элемента И соединен со вторым входом схемы инкремента и вторым входом третьего логического элемента И. 6. The device according to claim 4, characterized in that the residual counting unit comprises a first valve block, a third random access memory block, an increment circuit, a third code comparison circuit, a sixteenth switch, a fourth latch register, a third logical element And, a fourth logical element And, with the second input of the first block of gates and the third input of the sixteenth switch being the first input of the block of counting residuals, the outputs of the first block of gates are connected to the first inputs of the third block of memory with random access, outputs the third random access memory block are connected to the first inputs of the increment circuit, the outputs of the increment circuit are connected to the first inputs of the first valve block and the first inputs of the third code comparison circuit, the second inputs of the third code comparison circuit are connected to the constant bus 't', the output of the third code comparison circuit connected to the first input of the third logical element AND, the output of the third element logical AND is the first output of the block of residuals, the first inputs of the sixteenth switch are the second inputs of the block residual counting, the outputs of the sixteenth switch are connected to the second inputs of the third random access memory block, the inputs of the fourth latch register are the third inputs of the residual counting unit, the outputs of the fourth latch register are connected to the second inputs of the sixteenth switch and are the second outputs of the residual counting unit, the first input the fourth logical element And is the fourth input of the block counting residuals, the second input of the fourth logical element And is the fifth input of the block counting not yazok, the output of the fourth AND gate is connected to a second input increment circuit and a second input of the third logic element I.
RU2010134469/08A 2010-08-17 2010-08-17 Device to decode reed-solomon codes RU2441318C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010134469/08A RU2441318C1 (en) 2010-08-17 2010-08-17 Device to decode reed-solomon codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010134469/08A RU2441318C1 (en) 2010-08-17 2010-08-17 Device to decode reed-solomon codes

Publications (1)

Publication Number Publication Date
RU2441318C1 true RU2441318C1 (en) 2012-01-27

Family

ID=45786588

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010134469/08A RU2441318C1 (en) 2010-08-17 2010-08-17 Device to decode reed-solomon codes

Country Status (1)

Country Link
RU (1) RU2441318C1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014003599A1 (en) * 2012-06-29 2014-01-03 Ems Corparation Redundant disc encoding via erasure decoding
RU2541869C1 (en) * 2013-10-10 2015-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) Reed-solomon code decoder
RU2584963C1 (en) * 2014-11-26 2016-05-20 Открытое Акционерное Общество "Концерн "Морское Подводное Оружие - Гидроприбор" Pseudonoise signal decoding method
RU2613760C2 (en) * 2015-06-04 2017-03-21 Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича" Device for majority decoding reed-solomon code in k-element sections of code combination

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014003599A1 (en) * 2012-06-29 2014-01-03 Ems Corparation Redundant disc encoding via erasure decoding
US9081752B2 (en) 2012-06-29 2015-07-14 Emc Corporation Redundant disk encoding via erasure decoding
RU2541869C1 (en) * 2013-10-10 2015-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) Reed-solomon code decoder
RU2584963C1 (en) * 2014-11-26 2016-05-20 Открытое Акционерное Общество "Концерн "Морское Подводное Оружие - Гидроприбор" Pseudonoise signal decoding method
RU2613760C2 (en) * 2015-06-04 2017-03-21 Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича" Device for majority decoding reed-solomon code in k-element sections of code combination

Similar Documents

Publication Publication Date Title
Zhang et al. Reduced-latency SC polar decoder architectures
Wei VLSI architectures for computing exponentiations, multiplicative inverses, and divisions in GF (2/sup m/)
US7716562B1 (en) Reduced processing in high-speed reed-solomon decoding
RU2441318C1 (en) Device to decode reed-solomon codes
Garcia-Herrero et al. High-speed RS (255, 239) decoder based on LCC decoding
Imaña et al. Bit-parallel finite field multipliers for irreducible trinomials
Hariri et al. Concurrent error detection in montgomery multiplication over binary extension fields
Ahmed et al. VLSI architectures for soft-decision decoding of Reed–Solomon codes
Zhu et al. High-speed re-encoder design for algebraic soft-decision Reed-Solomon decoding
Freudenberger et al. Reduced complexity hard‐and soft‐input BCH decoding with applications in concatenated codes
US20050004966A1 (en) System and method for efficient VLSI architecture of finite fields
Wei et al. High-speed decoder of Reed-Solomon codes
EP3420640A1 (en) Methods and apparatus for performing reed-solomon encoding
RU2541869C1 (en) Reed-solomon code decoder
Zhang et al. Reducing parallel linear feedback shift register complexity through input tap modification
US20180006664A1 (en) Methods and apparatus for performing reed-solomon encoding by lagrangian polynomial fitting
Freudenberger et al. A low-complexity three-error-correcting BCH decoder with applications in concatenated codes
CN108847851B (en) Method for realizing binary BCH code adjoint matrix
RU2677372C1 (en) Device for decoding reed-solomon product codes
Yeon et al. Low-complexity triple-error-correcting parallel BCH decoder
CN112534724A (en) Decoder and method for decoding polarization code and product code
Lin et al. A long block length BCH decoder for DVB-S2 application
CN111510164B (en) Turbo code component encoder identification method and system
Zhang Further exploring the strength of prediction in the factorization of soft-decision Reed–Solomon decoding
Prashanthi et al. An advanced low complexity double error correction of an BCH decoder

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20120818