реклама на сайте
подробности

 
 
> Процедура Ченя на ПЛИС
Gold777
сообщение Dec 14 2011, 15:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Подскажите, кто разобрался. Реализую декодер БЧХ в поле GF (2^11), исправляет 8 ошибок на ПЛИС. После вычисления полинома локаторов ошибок необходимо решить данное уравнение с помощью процедуры Ченя. Каким образом решить данное уравнение? Пока вижу 2 способа: 1) перейти к полиномиальному представлению элементов поля, потом перейти к обычному полю и если уравнение будет равно нулю, значит обратный элемент будет корнем уравнения. 2) Решить уравнение с помощью умножителей в поле Галуа, потом считать из памяти корень уравнения, при котором урвнение обращается в нуль. В общем интересует, каким образом эту процедуру реализовать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des00
сообщение Dec 14 2011, 15:24
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Gold777 @ Dec 14 2011, 09:22) *
В общем интересует, каким образом эту процедуру реализовать.

поиском по форуму, чую что найдете что-то интересное wink.gif


--------------------
Go to the top of the page
 
+Quote Post
Gold777
сообщение Dec 14 2011, 15:56
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(des00 @ Dec 14 2011, 18:24) *
поиском по форуму, чую что найдете что-то интересное wink.gif

Поискал я на форуме, много интересного почитал про БЧХ коды. Но про переход от ключевого уравнения к процедуре Ченя мне не очень понятен в реализации. На бумаге считаю, все получается. А вот если реализововать, переход от элементов поля к коэффициента alfa в степени мне не нравится, так как необходимо использовать 2 таблицы памяти (прямые и обратные коэффициенты).
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 14 2011, 15:59
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Gold777 @ Dec 14 2011, 10:56) *
Поискал я на форуме, много интересного почитал про БЧХ коды. Но про переход от ключевого уравнения к процедуре Ченя мне не очень понятен в реализации.

так сложно читать сорцы на языке близком к Си ? 05.gif


--------------------
Go to the top of the page
 
+Quote Post
Gold777
сообщение Dec 14 2011, 16:02
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(des00 @ Dec 14 2011, 18:59) *
так сложно читать сорцы на языке близком к Си ? 05.gif

Да, нет. Не сложно. Меня интересует именно схемотехническая реализация.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 14 2011, 17:31
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Gold777 @ Dec 14 2011, 10:02) *
Да, нет. Не сложно. Меня интересует именно схемотехническая реализация.

ну уж если для вас HDL код на Verilog не является схемотехнической реализацией, я даже не знаю что вам ответить...


--------------------
Go to the top of the page
 
+Quote Post
Gold777
сообщение Dec 14 2011, 17:58
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(des00 @ Dec 14 2011, 20:31) *
ну уж если для вас HDL код на Verilog не является схемотехнической реализацией, я даже не знаю что вам ответить...

Спасибо за помощь.Я Verilog к сожалению не знаю, попробую разобраться, хотя в чужом коде сложновато. В принципе, мне только идея нужна. Есть полином локаторов, вопрос с какой формой представления работать.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 15 2011, 04:58
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Gold777 @ Dec 14 2011, 12:58) *
Спасибо за помощь.Я Verilog к сожалению не знаю, попробую разобраться, хотя в чужом коде сложновато. В принципе, мне только идея нужна. Есть полином локаторов, вопрос с какой формой представления работать.

работать в обычном поле, смысла спускаться в полиномиальное поле нет. есть сорцы одного известного кодера RS на VHDL, но это в личку.


--------------------
Go to the top of the page
 
+Quote Post
Gold777
сообщение Dec 15 2011, 10:13
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(des00 @ Dec 15 2011, 07:58) *
работать в обычном поле, смысла спускаться в полиномиальное поле нет. есть сорцы одного известного кодера RS на VHDL, но это в личку.

К примеру, если полином локаторов ошибок следующий
1) alfa(x)=838*x^8+1576*x^7+1157*x^6+273*x^5+1357*x^4+1328*x^3+1892*x^2+1141*x+917 соответсвенно 838, 1576 - элементы поля Галуа GF(2^11)
это же уравнение можно преобразовать к следующему
2)alfa(x)=alfa^1201*x^8+alfa^1552*x^7+alfa^685*x^6+alfa^1890*x^5+alfa^440*x^4+al
fa^347*x^3+alfa^1455*x^2+alfa^991*x+917
Если использовать уравнение 2 то мы можем складывыть степени при подстановке элементов использовать обычные операции сложения коэффициентов/
Если уравнение 1, то придется перемножать в поле Галуа и подставляя к примеру в восьмую степень элементы поля необходимо перемножать один и тот же элемент 8 раз. Как-то этот способ мне не очень нравится. Des, я правильно вас понял, что надо решать уравнение по 1-му способу
Go to the top of the page
 
+Quote Post
barabek
сообщение Dec 15 2011, 11:36
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Gold777 @ Dec 15 2011, 20:13) *
Если уравнение 1, то придется перемножать в поле Галуа и подставляя к примеру в восьмую степень элементы поля необходимо перемножать один и тот же элемент 8 раз.
Я же Вам посоветовал литературу. Смотрим на рисунок. Не 8 раз, а в каждом такте предыдущее содержание регистра умножается на alfa^8 , т.е. на константу. Понятное дело, что 7 умножителей нужно для каждого члена полинома, кроме члена с нулевой степенью. Но результат в каждом такте.
Может это очевидно, но на всякий поясню. Возьмем Ваш старший член полинома 838*x^8. Подставляем в него альфа. 838*alfa*alfa*....*alfa=838*(alfa^8)=X1. На следующем такте нужно подставить вместо x alfa^2. Получаем 838*alfa^2*alfa^2*....*alfa^2=838*(alfa^16)=(838*(alfa^8))*alfa^8=X1*alfa^8=X2. Ну и так со всеми остальными степенями. Параллельно для всех членов полинома. Ага?
Go to the top of the page
 
+Quote Post
Gold777
сообщение Dec 15 2011, 14:20
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022



Цитата(barabek @ Dec 15 2011, 14:36) *
Я же Вам посоветовал литературу. Смотрим на рисунок. Не 8 раз, а в каждом такте предыдущее содержание регистра умножается на alfa^8 , т.е. на константу. Понятное дело, что 7 умножителей нужно для каждого члена полинома, кроме члена с нулевой степенью. Но результат в каждом такте.
Может это очевидно, но на всякий поясню. Возьмем Ваш старший член полинома 838*x^8. Подставляем в него альфа. 838*alfa*alfa*....*alfa=838*(alfa^8)=X1. На следующем такте нужно подставить вместо x alfa^2. Получаем 838*alfa^2*alfa^2*....*alfa^2=838*(alfa^16)=(838*(alfa^8))*alfa^8=X1*alfa^8=X2. Ну и так со всеми остальными степенями. Параллельно для всех членов полинома. Ага?

Получается на первом такте подставляю alfa во все степени уравнения и считаю результат, на втором такте alfa^2, но на основе первого уравнения и т.д. Итого получается за количество тактов равное размерности поля я найду все корни уравнения. К примеру для поля GF(2^11) за 2048 тактов. Только одно непонятно, как это в одну формулу объединить или для каждого такта надо будет уравнение записывать? И еще вопрос можно ли здесь без использования памяти, содержащей значения коэффициентов alfa^n обойтись забив их в ручную в уравнение?

Сообщение отредактировал Gold777 - Dec 15 2011, 14:23
Go to the top of the page
 
+Quote Post
barabek
сообщение Dec 15 2011, 22:32
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Gold777 @ Dec 16 2011, 00:20) *
Получается на первом такте подставляю alfa во все степени уравнения и считаю результат, на втором такте alfa^2, но на основе первого уравнения и т.д. Итого получается за количество тактов равное размерности поля я найду все корни уравнения. К примеру для поля GF(2^11) за 2048 тактов.


Да, если длина пакета у Вас 2048 (максимальная для 11 степени), то так и есть. Длина пакета в общем случае может быть и меньше. Количество тактов равно длине пакета. Просто для укороченного пакета инициализация посложней.

Цитата
Только одно непонятно, как это в одну формулу объединить или для каждого такта надо будет уравнение записывать?


Не понял. Куда записывать? Формула одна, а значение переменной разное. Процедура Ченя это просто нахождение корней уравнения перебором. Т.е. Вы подставляете поочереди элементы поля и определяете корни. Можно сказать численным методом, а не аналитически.

Цитата
И еще вопрос можно ли здесь без использования памяти, содержащей значения коэффициентов alfa^n обойтись забив их в ручную в уравнение?


Конечно, зачем Вам память. На каждом блоке, соответствующему члену уравнения, своя константа= alfa^n. Забиваете вручную или ввиде параметра, а лучше чтобы этот параметр сам синтезатор посчитал в функции на этапе компиляции - дело Ваше.
каждый блок алгоритмически описывается:
Код

ЦИКЛ(по клоку)
    ЕСЛИ(инициализация)
                    Out=In
    ИНАЧЕ
                    Out=Out*alfa^n
КОНЕЦ ЦИКЛА
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Gold777   Процедура Ченя на ПЛИС   Dec 14 2011, 15:22
|- - barabek   Цитата(Gold777 @ Dec 15 2011, 03:58) Спас...   Dec 14 2011, 22:20
|- - iosifk   Цитата(Gold777 @ Dec 14 2011, 21:58) ...Я...   Dec 15 2011, 04:57
||- - Gold777   Цитата(barabek @ Dec 16 2011, 01:32) Коне...   Dec 16 2011, 09:14
||- - Gold777   Цитата(barabek @ Dec 16 2011, 01:32) Да, ...   Dec 20 2011, 08:32
||- - barabek   Цитата(Gold777 @ Dec 20 2011, 18:32) Подс...   Dec 21 2011, 23:22
|||- - Gold777   Цитата(barabek @ Dec 22 2011, 02:22) При ...   Dec 23 2011, 09:41
||- - Gold777   [/quote] По ходу дела возникло несколько вопросов ...   Jan 10 2012, 15:26
||- - barabek   Цитата(Gold777 @ Jan 11 2012, 01:26) По х...   Jan 10 2012, 23:12
|||- - des00   Цитата(barabek @ Jan 10 2012, 17:12) 2)ни...   Jan 11 2012, 09:07
||- - des00   Цитата(Gold777 @ Jan 10 2012, 10:26) По х...   Jan 12 2012, 06:52
|- - Gold777   Цитата(barabek @ Dec 15 2011, 14:36) Я же...   Dec 26 2011, 07:50
|- - des00   Цитата(Gold777 @ Dec 26 2011, 01:50) По т...   Dec 26 2011, 08:41
|- - Gold777   Цитата(des00 @ Dec 26 2011, 11:41) все та...   Dec 27 2011, 10:49
|- - des00   Цитата(Gold777 @ Dec 27 2011, 05:49) Что ...   Dec 27 2011, 12:41
|- - Gold777   Цитата(des00 @ Dec 27 2011, 15:41) на скр...   Dec 28 2011, 06:04
- - des00   Чую следующий вопрос будет про мягкое декодировани...   Dec 22 2011, 03:53
|- - Mikhalych   Цитата(des00 @ Dec 22 2011, 07:53) Чую сл...   Dec 22 2011, 04:34
|- - des00   Цитата(Mikhalych @ Dec 21 2011, 22:34) Во...   Dec 22 2011, 05:44
- - des00   в связи с праздниками и надоевшим ничегонеделанием...   Jan 4 2012, 17:27
- - Gold777   Появился ряд вопросов. Реализовал процедуру Ченя, ...   Mar 15 2012, 15:08
|- - des00   Цитата(Gold777 @ Mar 15 2012, 10:08) Можн...   Mar 16 2012, 07:01
|- - Gold777   Цитата(des00 @ Mar 16 2012, 11:01) По рес...   Mar 16 2012, 07:27
|- - des00   Цитата(Gold777 @ Mar 16 2012, 01:27) Т.е....   Mar 16 2012, 07:45
|- - Gold777   Цитата(des00 @ Mar 16 2012, 11:45) Или во...   Mar 16 2012, 18:07
|- - des00   Цитата(Gold777 @ Mar 16 2012, 13:07) По ч...   Mar 17 2012, 15:12
- - Denisnovel   В файле есть способ отимизации процедуры ченя.   Mar 16 2012, 04:03
- - Gold777   я понял   Mar 17 2012, 18:10
- - Gold777   Возник вопрос по реализации умножителей в поле Гал...   Mar 20 2012, 14:32
|- - des00   Цитата(Gold777 @ Mar 20 2012, 08:32) Возн...   Mar 20 2012, 15:22
|- - Gold777   Цитата(des00 @ Mar 20 2012, 19:22) Что та...   Mar 20 2012, 16:24
|- - des00   Цитата(Gold777 @ Mar 20 2012, 10:24) Поче...   Mar 20 2012, 16:41
- - Gold777   Появился вопрос по реализации алгоритма Форни для ...   Sep 11 2012, 07:56


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.02218 секунд с 7
ELECTRONIX ©2004-2016