Jump to content

    

FEC на ПЛИС

Точно сейчас посмотреть не могу, но приблизительно sibm/5000 LE/700-800 Reg/135 Fmin Mhz (требуется 155), но результат за 16 тактов. На решение не более 32 тактов, иначе не успею. Интересно какие при таком условии будет характеристики вашего декодера.

 

bch_dec(ribm_1t) BM выполняется за t+1 = 9 тактов, 3209/732/170.85MHz, судя по TQ упирается в разводку, если сделать register dublication + кое что подпилить в BM думаю что выйдет на 200МГц.

bch_dec(ribm_2t) BM выполняется за 2*t+1 = 17 тактов, 2472/776/184.95MHz, тут сложнее, надо бороть "лишний" мультиплексор в BM

 

Можете объяснить как посадить BM для работы на половинном клоке и что значит поставить мультицикл и выжать 250-300 МГц, вообще как-то не очень понятно что вы имеете ввиду. Если можно, объясните поподробнее.

Хмм, вам лучше почитать мои публикации о TQ, временных ограничениях, одноцикловых цепях и мультицикловых. Если на пальцах, то подаете на clockena меандр и говорите временному анализатору что задержки считать не для периода T, а для периода 2*T. Естественно что производительность именно этого блока упадет, но если ее достаточно для выполнения задачи, то.... %)

 

Share this post


Link to post
Share on other sites

Кстати, вы же тестируетесь с каким то кодером. Генераторный полином можно получить, подав "дельта импульс". последовательность со всеми нулевыми битами, кроме одного %)

Share this post


Link to post
Share on other sites
Кстати, вы же тестируетесь с каким то кодером. Генераторный полином можно получить, подав "дельта импульс". последовательность со всеми нулевыми битами, кроме одного %)

Вы имеете ввиду подать на вход кодера дельта импульс? Еще было бы интересно посмотреть результаты для sibm алгоритма, чтобы сравнить.

Edited by Gold777

Share this post


Link to post
Share on other sites
Вы имеете ввиду подать на вход кодера дельта импульс?

да. нашел стандарт 975.1 там указаны функции циклотомических классов для получение генераторных полиномов GF(2^11), на досуге получу полином %)

 

Еще было бы интересно посмотреть результаты для sibm алгоритма, чтобы сравнить.

а смысл? он гарантировано проиграет, для этого достаточно посмотреть как рассчитывается delta %)

 

bch_dec(ibm_2t) выполняется за 2t+1 = 17 тактов, 2816/957/145.69MHz

bch_dec(ibm_4t) выполняется за 4t+1 = 33 такта, 2212/959/188.08MHz

bch_dec(ibm_2t_by_t) выполняется за 2t + 2(t+1)^2+1 = 179 такта, 1805/1057/238.04MHz. Но этот в свое время конвейризировался по самое нехочу

Share this post


Link to post
Share on other sites
да. нашел стандарт 975.1 там указаны функции циклотомических классов для получение генераторных полиномов GF(2^11), на досуге получу полином %)

 

 

а смысл? он гарантировано проиграет, для этого достаточно посмотреть как рассчитывается delta %)

 

bch_dec(ibm_2t) выполняется за 2t+1 = 17 тактов, 2816/957/145.69MHz

bch_dec(ibm_4t) выполняется за 4t+1 = 33 такта, 2212/959/188.08MHz

bch_dec(ibm_2t_by_t) выполняется за 2t + 2(t+1)^2+1 = 179 такта, 1805/1057/238.04MHz. Но этот в свое время конвейризировался по самое нехочу

Для этого кода (2040,1952) t= 8 G1(x) = x11 + x2 + 1, G3(x) = x11 + x5 + x3 + x2 + 1, G5(x) = x11 + x6 + x5 + x + 1, G7(x) = x11 + x7 + x3 + x2 + 1, G9(x) = x11 + x8 + x5 + x2 + 1, G11(x) = x11 + x8 + x6 + x5 + x4 + x + 1, G13(x) = x11 + x10 + x3 + x2 + 1, G15(x) = x11 + x10 + x9 + x8 + x3 + x + 1.

g(x)=G1(x)*G3(x)*G5(x)*G7(x)*G9(x)*G11(x)*G13(x)*G15(x)

Share this post


Link to post
Share on other sites
Для этого кода (2040,1952) t= 8

g(x)=G1(x)*G3(x)*G5(x)*G7(x)*G9(x)*G11(x)*G13(x)*G15(x)

спасибо !!!

Share this post


Link to post
Share on other sites
спасибо !!!

 

А так не проще: Если надо просто построить код, то набрать в матлабе строчку:

 

>> [genpoly,errorcorr] = BCHGENPOLY(2047,2047 - 11*8)

Share this post


Link to post
Share on other sites
А так не проще: Если надо просто построить код, то набрать в матлабе строчку:

проще, но в матлабе что у меня на машине написано

 

LimitationsThe maximum allowable value of n is 511.

 

у вас какая версия матлаба ?

Share this post


Link to post
Share on other sites

Для генерации длинных кодов я использовал следующий файл.

bch.zip

Share this post


Link to post
Share on other sites
Для генерации длинных кодов я использовал следующий файл.

о, это то что нужно. спасибо %)

Share this post


Link to post
Share on other sites
проще, но в матлабе что у меня на машине написано

 

у вас какая версия матлаба ?

 

R2010a. Ограничение на степень двойки при генерации БЧХ - не более 16.

Так что до длин 65535 все должно работать.

Сейчас на рутрекере есть более поздняя версия матлаба.Может быть там еще лучше.

Share this post


Link to post
Share on other sites
R2010a. Ограничение на степень двойки при генерации БЧХ - не более 16. Так что до длин 32767 все должно работать.

понятно, надо будет глянуть, я держу старую версию, т.к. ИМХО она быстрее в режиме косимуляции работает %)

Share this post


Link to post
Share on other sites
Всем кто решиться использовать этот декодер при низких Eb/N0, надо помнить что в этом декодере, перебор ченя и коррекция ошибок происходят одновременно. Поэтому в случае отказа от декодирования, который определиться в конце ченя, декодер размножает ошибки. Что бы это побороть, нужно немного модифицировать ченя, выплюнуть сырые данные в фифошку/память вместе с коррекцией ошибок ну и потом считать с коррекцией или без %) но это не сложно и делается минут за 10-20 %)

Почему вы решили сделать процедуру Ченя и исправление ошибок одновременно?

Edited by Gold777

Share this post


Link to post
Share on other sites
Почему вы решили сделать процедуру Ченя и исправление ошибок одновременно?

мне нужна была минимальная задержка, при этом на размножение ошибок можно было закрыть глаза.

 

Есть версия декодера лишенная этого недостатка выкладывать ее не вижу смысла. Любой разработчик сделает эту задачу максимум за пару часов (надо всего то, разбить ченя на 2 модуля с передачей подтверждений между ними). А кто не сможет волен обратиться за кастомизацией, о цене договоримся %))))))))))

 

Также есть версии декодера с динамически изменяемым {n, check}, но смысла выкладывать не вижу. Выложенные сорцы заточены под простую реализацию динамического изменения, кому надо тот сделает %)

Share this post


Link to post
Share on other sites

Правильно ли я понял, что для плис оптимизация поиска Ченя не актуальна?

Clock enable применен для энергосбережения?

Если в какой-то момент декодер мне не нужен, то я должен отключить clock enable. Перед включением сбросить ресетом(для инициализации) и подать clock enable?

Strength_reduced_parallel_Chien_search_architecture_for_strong_BCH_codes.pdf

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this