2009-07-15 3 views
6

Как построить эффективную по площади схему, которая подсчитывает количество заданных битов в 15-битном входе с использованием 4-входных LUT (справочные таблицы). Выходной сигнал, очевидно, 4-бит (число 0-15). Некоторые утверждают, что можно использовать 9 LUT.Цепь, которая подсчитывает количество заданных битов в 15-битном вводе

+0

Вопросы по оборудованию обычно не получают большой отклик на этом форуме. – samoz

+0

Особенно, если они звучат как домашние вопросы. –

+4

Это не вопрос о домашнем задании. Мне нужно синтезировать эту схему оптимизированным образом, но инструмент синтеза FPGA использует 20 LUT для него, это можно сделать лучше. – OutputLogic

ответ

1

Я могу сделать это в 10. Это первый счетчик (4 стола), затем двухступенчатый сумматор с переносом (3 и 3 таблицы).

Я подозреваю, что есть способ сделать лучше, потому что я не использовал каждый LUT полностью, но иногда простой дизайн стоит дополнительных затрат. Я пробовал другие подходы и все еще нуждался в этом. 10.

Удачи вам на домашней работе. (:

2

Хорошо, я начну. Ваш первый слой таблиц поиска будет выглядеть следующим образом:

0 0 0 0 = 00 
0 0 0 1 = 01 
0 0 1 0 = 01 
0 0 1 1 = 10 
0 1 0 0 = 01 
0 1 0 1 = 10 
0 1 1 0 = 10 
0 1 1 1 = 11 
1 0 0 0 = 01 
1 0 0 1 = 10 
1 0 1 0 = 10 
1 0 1 1 = 11 
1 1 0 0 = 10 
1 1 0 1 = 11 
1 1 1 0 = 11 
1 1 1 1 = 00 

Spread четыре из них через ваш пятнадцать-битный ввод, принимать выходы и передавать их с помощью два новых таблиц поиска, которые выглядят следующим образом:

0 0 0 0 = 000 
0 0 0 1 = 001 
0 0 1 0 = 010 
0 0 1 1 = 011 
0 1 0 0 = 001 
0 1 0 1 = 010 
0 1 1 0 = 011 
0 1 1 1 = 100 
1 0 0 0 = 010 
1 0 0 1 = 011 
1 0 1 0 = 100 
1 0 1 1 = 101 
1 1 0 0 = 011 
1 1 0 1 = 100 
1 1 1 0 = 101 
1 1 1 1 = 110 

... и прочее. Конечно, вам придется решить проблему всех нулей, и все они производят один и тот же вывод в первом слое.

И я могу быть совершенно неправ.

Смежные вопросы