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

Подсчитать кол-во единиц в слове

Всем добрый день. Подскажите в такой задачке: есть слово в 64 разряда, надо как-то, за один такт желательно, посчитать в нем кол-во единиц. Частота 125 МГц. Реализовать надо аппаратно...

 

P.S. А если точнее - надо считать кол-во единиц в 8 словах по 64 разряда.

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

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


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

ПЛИС какая?

Посчитать в 8 словах нужно общую сумму единиц или для каждого слова свою? Тоже за такт?

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


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

ПЛИС какая?

Посчитать в 8 словах нужно общую сумму единиц или для каждого слова свою? Тоже за такт?

ПЛИС Цыклон3, считать нужно для каждого слова отдельно сумму единиц, но все 8 слов надо за такт сделать

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


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

Какой спидгрейд?

Считать за такт одну сумму или 8 - не принципиально.

 

 

:bb-offtopic:

Если не секрет, Вы что делаете - что-нибудь с Gigabit Ethernet связанное? :)

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


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

Я бы написал простую и понятную функцию, а дальше пусть синтезатор думает.

Функция в стиле "обнулить, пербрать все биты, если 1, то прибавлять единичку" или "суммировать все биты одним сумматором".

Не получится - будете соревноваться с синтезаторами в сообразительности.

По идее, должно получиться дерево.

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


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

Какой спидгрейд?

Считать за такт одну сумму или 8 - не принципиально.

 

 

:bb-offtopic:

Если не секрет, Вы что делаете - что-нибудь с Gigabit Ethernet связанное? :)

 

Спид грейд хотелось бы -8 использовать, по крайней мере пока все укладывается в -8.

Делаю приемник широкополосного доступа, подобный wi-max.

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


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

На 8 спидгрейде в один такт не уложитесь. Если гуру скажут, что такое возможно и подскажут как - будет хорошо, самому интересно. :)

Вариант "в лоб" даже на C6, скорее всего, не ляжет.

 

А за 2 такта совсем не вариант?

 

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


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

По моему задача не решаемая в принципе. Вот ход рассуждений.

Если надо за один такт, значит делать только комбинационный автомат(КА).

А дальше простой расчет. КА на 4 разряда битов в три бита суммы (0..4) синтезатор выдает 3 уровня иерархии.

С 4 разрядов до 8 это два по три бита сумм в каждой тетраде в 4 бита суммы в байте еще 3 уровня иерархии.

По аналогии с 8 до 16 это 3 уровня, с 16 до 32 еще три уровня и с 32 до 64 еще 3.

Итого получаем 15 уровней логики. Никакой Циклон не уложится в 8 ns задержки при прохождении 15 гейтов.

Если делать КА на логике задержка одного элемента должна быть не более 0.5ns или частота работы > 2ГГц.

Либо делать подсчет единиц на внешнем устройстве, либо ставить на каждое слово ROM на 16К Тб :)

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


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

По моему задача не решаемая в принципе. Вот ход рассуждений.

 

Мда... убедительно! И противопоставить нечего... Буду менять структуру, колдовать с конвеерами.

 

Спасибо!

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


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

Есть такая книжка: Генри Уоррен, мл. "Алгоритмические трюки для программистов".

В ней есть глава 5 "Подсчет битов", где описаны несколько способов как это сделать с помощью битовых опереций.

Если интересно могу выслать на e-mail (28 Мб PDF)

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


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

тема на форуме обсуждалась многократно + выкладывались сорцы быстрых реализаций такого алгоритма, там всего то 6 уровней сумматоров от 1 до 6 ти бит, если учесть что 32 + 32 + 32 бита на сыклоне3 ложиться на ~160МГц, то на 125 МГц можно попробывать %)

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


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

Есть такая книжка: Генри Уоррен, мл. "Алгоритмические трюки для программистов".

В ней есть глава 5 "Подсчет битов", где описаны несколько способов как это сделать с помощью битовых опереций.

Если интересно могу выслать на e-mail (28 Мб PDF)

Буду благодарен если вышлите на [email protected]

 

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


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

Если интересно могу выслать на e-mail (28 Мб PDF)

 

Файлообменник был бы наверно лучше.

 

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


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

alexPec, уважаемый des00 был как всегда точен, тем было несколько, ищутся легко, вот пара на вскидку:

Сумма единиц

Есть ли стандартная функция

 

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


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

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

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

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

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

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

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

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

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

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