BloomJack 0 November 26, 2018 Posted November 26, 2018 (edited) · Report post Как можно посчитать количество установленных бит в 32 битной переменной используя минимум блоков в ПЛИС (Spartan-6)? Может кто-то сталкивался и поделиться примером? Edited November 26, 2018 by BloomJack Quote Share this post Link to post Share on other sites More sharing options...
dvlwork 0 November 26, 2018 Posted November 26, 2018 · Report post Поиском по форуму. Смотреть решения SM, des00, intekus. Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 November 26, 2018 Posted November 26, 2018 · Report post 48 минут назад, BloomJack сказал: Как можно посчитать количество установленных бит в 32 битной переменной используя минимум блоков в ПЛИС (Spartan-6)? Может кто-то сталкивался и поделиться примером? Если это синтезируемое, то вот так. Регистр с 32 битовым числом сдвигать, выход сдвига подать на вход разрешения счетчика, который и посчитает число единиц.. Вторым счетчиком считать 32 раза и по достижению запретить сдвиг.. А если не синтезируемое, то написать функцию, которая все то-же самое делает в цикле от 0 до 32... Quote Share this post Link to post Share on other sites More sharing options...
Darky777 0 November 26, 2018 Posted November 26, 2018 (edited) · Report post Если в лоб, то я бы попробовал воспользоваться функцией. Но как по ресурсам оптимизирует синтезатор - мне неизвестно. Это вариант использования за один такт. 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); Edited November 26, 2018 by Darky777 Дополнить ответ Quote Share this post Link to post Share on other sites More sharing options...
_pv 101 November 26, 2018 Posted November 26, 2018 · Report post 41 minutes ago, Darky777 said: Если в лоб, то я бы попробовал воспользоваться функцией. Но как по ресурсам оптимизирует синтезатор - мне неизвестно. Это вариант использования за один такт. ему наверное помочь можно, руками сделав 16 однобитных сумматоров -> 8 двух битных -> 4 трех битных ... Quote Share this post Link to post Share on other sites More sharing options...
dvlwork 0 November 26, 2018 Posted November 26, 2018 · Report post Всё лень, да. Вот на вскидку: 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 Quote Share this post Link to post Share on other sites More sharing options...
litv 0 November 26, 2018 Posted November 26, 2018 · Report post Можно вот такой логической схемкой. By Шевкопляс Б.В., Микропроцессорные структуры инженерные решения. 1986 год. Ну и под LUT 6 или 4х входовой оптимизировать. Хотя Synplify и сам ......... Quote Share this post Link to post Share on other sites More sharing options...
BloomJack 0 November 26, 2018 Posted November 26, 2018 (edited) · Report post Коллеги благодарю! переберу все варианты! Последний особенно шикарен. Классика!)) Edited November 26, 2018 by BloomJack Quote Share this post Link to post Share on other sites More sharing options...
BloomJack 0 November 30, 2018 Posted November 30, 2018 · Report post счетчик реализовал, все работает. Но, интересна концепция из Шевкопляс Б.В., Микропроцессорные структуры инженерные решения. 1986 год Рис. 11.12 Кто-то реализовывал такую для 64бит? Идея интересная... Quote Share this post Link to post Share on other sites More sharing options...
_pv 101 November 30, 2018 Posted November 30, 2018 · Report post что-то мне кажется что для большого количества бит сумматоры: 32 однобитных -> 16 двухбитных -> 8 трехбитных -> ... по количеству логики покомпактней получатся. NlogN вместо N^2, да ещё и приоритетный энкодер нужен. Quote Share this post Link to post Share on other sites More sharing options...
_Ivan_ 0 December 3, 2018 Posted December 3, 2018 · Report post Есть книга Hacker's delight https://doc.lagout.org/security/Hackers Delight.pdf Вот там есть глава по подсчету бит - посмотрите, вдруг что найдете Quote Share this post Link to post Share on other sites More sharing options...