|
Процедура Ченя на ПЛИС |
|
|
|
 |
Ответов
|
Dec 14 2011, 15:56
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022

|
Цитата(des00 @ Dec 14 2011, 18:24)  поиском по форуму, чую что найдете что-то интересное  Поискал я на форуме, много интересного почитал про БЧХ коды. Но про переход от ключевого уравнения к процедуре Ченя мне не очень понятен в реализации. На бумаге считаю, все получается. А вот если реализововать, переход от элементов поля к коэффициента alfa в степени мне не нравится, так как необходимо использовать 2 таблицы памяти (прямые и обратные коэффициенты).
|
|
|
|
|
Dec 14 2011, 16:02
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022

|
Цитата(des00 @ Dec 14 2011, 18:59)  так сложно читать сорцы на языке близком к Си ?  Да, нет. Не сложно. Меня интересует именно схемотехническая реализация.
|
|
|
|
|
Dec 14 2011, 17:58
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 28-10-11
Из: Москва
Пользователь №: 68 022

|
Цитата(des00 @ Dec 14 2011, 20:31)  ну уж если для вас HDL код на Verilog не является схемотехнической реализацией, я даже не знаю что вам ответить... Спасибо за помощь.Я Verilog к сожалению не знаю, попробую разобраться, хотя в чужом коде сложновато. В принципе, мне только идея нужна. Есть полином локаторов, вопрос с какой формой представления работать.
|
|
|
|
|
Dec 15 2011, 10:13
|
Частый гость
 
Группа: Участник
Сообщений: 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-му способу
|
|
|
|
|
Dec 15 2011, 11:36
|
Знающий
   
Группа: Свой
Сообщений: 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. Ну и так со всеми остальными степенями. Параллельно для всех членов полинома. Ага?
|
|
|
|
|
Dec 15 2011, 14:20
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 15 2011, 22:32
|
Знающий
   
Группа: Свой
Сообщений: 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 КОНЕЦ ЦИКЛА
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|