BloomJack 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 (изменено) · Жалоба Как можно посчитать количество установленных бит в 32 битной переменной используя минимум блоков в ПЛИС (Spartan-6)? Может кто-то сталкивался и поделиться примером? Изменено 26 ноября, 2018 пользователем BloomJack Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvlwork 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба Поиском по форуму. Смотреть решения SM, des00, intekus. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба 48 минут назад, BloomJack сказал: Как можно посчитать количество установленных бит в 32 битной переменной используя минимум блоков в ПЛИС (Spartan-6)? Может кто-то сталкивался и поделиться примером? Если это синтезируемое, то вот так. Регистр с 32 битовым числом сдвигать, выход сдвига подать на вход разрешения счетчика, который и посчитает число единиц.. Вторым счетчиком считать 32 раза и по достижению запретить сдвиг.. А если не синтезируемое, то написать функцию, которая все то-же самое делает в цикле от 0 до 32... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darky777 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 (изменено) · Жалоба Если в лоб, то я бы попробовал воспользоваться функцией. Но как по ресурсам оптимизирует синтезатор - мне неизвестно. Это вариант использования за один такт. function [4:0] count_ones; input [31:0] vector; integer i; begin count_ones = 0; for (i = 0; i < 32; i=i+1) begin count_ones = count_ones + vector[i]; end end endfunction wire [31:0] a; wire [4:0] result_a; assign a = ... ; assign result_a = count_ones(a); Изменено 26 ноября, 2018 пользователем Darky777 Дополнить ответ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба 41 minutes ago, Darky777 said: Если в лоб, то я бы попробовал воспользоваться функцией. Но как по ресурсам оптимизирует синтезатор - мне неизвестно. Это вариант использования за один такт. ему наверное помочь можно, руками сделав 16 однобитных сумматоров -> 8 двух битных -> 4 трех битных ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvlwork 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба Всё лень, да. Вот на вскидку: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=80083 https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=62749 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 · Жалоба Можно вот такой логической схемкой. By Шевкопляс Б.В., Микропроцессорные структуры инженерные решения. 1986 год. Ну и под LUT 6 или 4х входовой оптимизировать. Хотя Synplify и сам ......... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BloomJack 0 26 ноября, 2018 Опубликовано 26 ноября, 2018 (изменено) · Жалоба Коллеги благодарю! переберу все варианты! Последний особенно шикарен. Классика!)) Изменено 26 ноября, 2018 пользователем BloomJack Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BloomJack 0 30 ноября, 2018 Опубликовано 30 ноября, 2018 · Жалоба счетчик реализовал, все работает. Но, интересна концепция из Шевкопляс Б.В., Микропроцессорные структуры инженерные решения. 1986 год Рис. 11.12 Кто-то реализовывал такую для 64бит? Идея интересная... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 30 ноября, 2018 Опубликовано 30 ноября, 2018 · Жалоба что-то мне кажется что для большого количества бит сумматоры: 32 однобитных -> 16 двухбитных -> 8 трехбитных -> ... по количеству логики покомпактней получатся. NlogN вместо N^2, да ещё и приоритетный энкодер нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 3 декабря, 2018 Опубликовано 3 декабря, 2018 · Жалоба Есть книга Hacker's delight https://doc.lagout.org/security/Hackers Delight.pdf Вот там есть глава по подсчету бит - посмотрите, вдруг что найдете Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться