Схема, которая считает число битов набора в 15-разрядном входе

Чем больше операторов возврата Вы имеете в функции, тем более высокая сложность в том одном методе. Если Вы задаетесь вопросом, если у Вас есть слишком много операторов возврата, Вы могли бы хотеть спросить себя, если у Вас есть слишком много строк кода в той функции.

, Но, не, нет ничего неправильно с одним/многими операторами возврата. На некоторых языках это - лучшая практика (C++), чем в других (C).

6
задан Coral Doe 26 October 2012 в 11:48
поделиться

3 ответа

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

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

Удачи вам с домашним заданием. (:

1
ответ дан 18 December 2019 в 05:08
поделиться

Вот код C, который подсчитывает количество битов: Код C для подсчета количества битов «1» . Вам придется преобразовать это в свое оборудование.

-5
ответ дан 18 December 2019 в 05:08
поделиться

Что ж, я начну. Ваш первый уровень таблиц поиска будет выглядеть так:

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

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

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

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

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

2
ответ дан 18 December 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: