Перейти к содержанию
    

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

Пробовал оптимизировать процедуру Ченя, конкретнее оптимизировал умножители на константу, как представлено в статье. В итоге выигрыша никакого не получил. Но делал по циклон 3, возможно под другое железо что-то и получится.

Изменено пользователем Gold777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

clkena можно использовать по разному, в том числе и для энергосбережения. пока декодер не получит блок, он работать не будет. это видно из логики его работы. в случае энергосбережения, можно его не сбрасывать, но, в зависимости от того, в какой момент времени вы остановили декодер, на выходе может быть мусор после старта. Поэтому использовать сброс или нет зависит от вас %)

В итоге выигрыша никакого не получил.

я вам сразу про это сказал %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вам сразу про это сказал %)

Да я помню. Хотел посмотреть ради интереса что изменится. Действительно вы были правы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А {n,check} - в Вашей версии любые можно поставить на ходу или заранее определенный набор (набор определяется до синтеза) ? Модифицировал Ваш код для декодирования 12 кодов, каждый со своим {n,check}, длина до 16384. Декодер занимает около 5000 LE. С ростом количества кодов растет и декодер, примерно линейно. В основном это умножители в галуа на константы. Если бы были умножители числа на число, то от количества кодов декодер бы не так сильно рос. Только вот не знаю на сколько такое решение реально. Просто в моей задаче скорость не нужна (50 мгц за глаза), а вот количество кодов надо 36...

В Вашей версии динамически изменяемых {n,check} умножители в галуа также на константы или умножители динамического числа на динамическое число?

 

:bb-offtopic: То что спрашивал у Вас по таймквесту, все вроде получилось в моделсиме, огромное спасибо! Надо дождаться железа и испытать в реале...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А {n,check} - в Вашей версии любые можно поставить на ходу или заранее определенный набор (набор определяется до синтеза) ?

Для работы мне нужны были с динамическим укорочением и с предопределенном набором check.

Только вот не знаю на сколько такое решение реально. Просто в моей задаче скорость не нужна (50 мгц за глаза), а вот количество кодов надо 36...

В Вашей версии динамически изменяемых {n,check} умножители в галуа также на константы или умножители динамического числа на динамическое число?

Строго говоря сорцы что выложены, были оптимизированы (по логике и конвейеру) под конкретную реализацию статического декодера.

 

Для динамического декодера нужно делать немного по другому :

1. genstart == 0, это позволит очень просто считать синдромы по максимальному check (не нужна коррекция позиций синдромов) цена : дополнительный умножитель при расчете значений ошибок

2. везде считать на максимальный check

3. уйти с RIBM на rIBM алгоритм (не нужна коррекция позиций готового полинома локаторов). цена : несколько больший ресурс при последовательном вычислении.

4. ченя делать в обратном порядке в отдельном проходе (не нужна начальная коррекция при укорочении кода).

 

ну собственно все, в итоге ресурс декодера у вас будет чуть больше, чем статического декодера кода с максимальным check

 

:bb-offtopic: То что спрашивал у Вас по таймквесту, все вроде получилось в моделсиме, огромное спасибо! Надо дождаться железа и испытать в реале...

рад что вы разобрались в вопросе %)

 

 

И еще про динамическую конфигурацию. Если кол-во генераторных полиномов больше 4-х, то выгоднее поставить кодер с умножителями на число, иначе мультиплексор + 4 кодера %) (для полей GF(2^8)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну собственно все, в итоге ресурс декодера у вас будет чуть больше, чем статического декодера кода с максимальным check

Если есть желание, можем скооперироваться и сделать ваш, полностью перестраиваемый декодер. Но с условием, сорцы открываем ? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем нужна behavioral model? Чем это лучше симуляции синтезируемого кода? Ведь в разработку добавляется дополнительный этап сравнения двух моделей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем нужна behavioral model? Чем это лучше симуляции синтезируемого кода? Ведь в разработку добавляется дополнительный этап сравнения двух моделей?

а смотря код того и другого вы не можете сделать выводы? :) вопросы методологии разработки неоднократно обсуждались на этом форуме, воспользуйтесь поиском. Эта тема не совсем для этого %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!прочитал представленные исходники!и никак не могу разобраться, как все-таки поступать, в процедуре Ченя, с укороченными кодами?у меня получаются позиции ошибок но соответственно со смещением на длину укорочения кода!пытался задерживать FIFO на эту задержку но получается расхождение!может кто нибудь подскажет как правильно быть? заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаю параллельный БЧХ. При этом он получается в несколько раз больше Рид-Соломона при той же пропускной способности. Так должно быть и почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаю параллельный БЧХ. При этом он получается в несколько раз больше Рид-Соломона при той же пропускной способности. Так должно быть и почему?

Я так понимаю все зависит от параметров ваших кодов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаю параллельный БЧХ. При этом он получается в несколько раз больше Рид-Соломона при той же пропускной способности. Так должно быть и почему?

вы хотели сказать при той же скорости кодирования и таком же размере блока в символах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведу пример 2 декодера BCH(2040,1930) по 8 бит занимают 20% в EP2AGX45DF29C4. При этом блок Berlekamp–Massey только один. 2 РС декодера RS(255,239) по 8 бит занимает примерно 500 ячеек, т.е. значительно меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведу пример 2 декодера BCH(2040,1930) по 8 бит

если имелось в виду по 8 бит за 1 такт, то чему удивляться то? ручками распишите получаемую логику на уровне функций и это станет очевидно.

 

ЗЫ. если вам нужна производительсность бчх 8 бит за 1 такт (что, если брать например сыклон 3, соответствует ~200 мегабайт в секунду), то как вариант поставить 8 декодеров, с одним блоком BM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...