Бит подсчета компаратор (ВСС) представляет собой логическую схему , которая принимает некоторое количество входов подсчета A1, A2, A3, ..., An
, а также входов , B1, B2, B4, B8, ...
представляющих ряд. Затем он возвращается , 1
если общее количество A
входов , которые находятся на больше , чем число , представленное в двоичном коде с помощью B
входов (например B1
, B2
и B8
сделало бы число 11
), и в 0
противном случае.
Так , например, для подсчета битов компаратора , который принимает 5
входные сигналы, из которых A2
, A4
, A5
и B2
установлены на 1
, будет возвращаться , 1
потому что есть 3 A
входа , которые находятся на, что больше , чем 2
(число , представленное только B2
будучи на).
Ваша задача состоит в том, чтобы создать бит подсчет компаратор , который принимает в общей сложности 16 A
входов и 4 B
входов (представляющие биты от 1
к 8
), используя только два входные логические элементы, и с использованием в качестве несколько логических элементов , как это возможно. Для упрощения вы можете использовать логические элементы И, ИЛИ, НЕ и XOR на вашей диаграмме со следующими соответствующими показателями:
NOT: 1
AND: 2
OR: 3
XOR: 4
Каждый из этих баллов соответствует количеству вентилей NAND, необходимых для построения соответствующих вентилей.
Логическая схема, которая использует наименьшее количество вентилей NAND для получения правильной конструкции, выигрывает.
источник
AND
== дваNAND
Ответы:
169 нанд
Складывает A, чтобы получить A {1,2,4,8,16}. Затем делает двоичное сравнение с Bs.
Я использую еще несколько строительных блоков:
Половинные и полные сумматоры имеют 2 выхода - они отмечены r для результата и c для переноса.
A {1,2,4,8,16} - это выходы из половины сумматоров.
источник
751 Нанд Гейтс
Это еще не полностью гольф. Я дал ответ в Verilog, потому что таким образом я смог написать программу для вывода каждого раздела. Если это обязательно, чтобы ответить с диаграммой, пожалуйста, дайте мне знать. Они эквивалентны.
&
есть и,~
нет, и|
есть или.Моя стратегия:
A
и положите переместите все1
s в младшие числа, сохраните вis
. (это большая часть программы)B
и распакуйте его в 16 бит (я назвал егоeB
для расширенногоB
)источник