Задачу «Можно ли проинвертировать три сигнала, если у вас есть только два инвертора, и неограниченное количество элементов „И“ и „ИЛИ“? мы решали в институте за одну пару. Сейчас ее решение ставит в тупик даже продвинутых специалистов. Давайте посмотрим как с ней справится geektimes-сообщество, а заодно попробую восстановить истории ее возникновения…
Преподаватель в институте рассказывал, что подобного рода задачи возникали в эру ламповых ЭВМ. Но расспросить подробности у нас студентов-бездарей ума не хватило, потому сейчас историю приходится восстанавливать по описанию старых машин и немного додумывать.
Первые электронные вычислительные машины строились на лампах. Так первая в СССР (1950 год) ЭВМ МЭСМ содержала около 6000 ламп, с помощью которых реализовывались логические функции „И“, „ИЛИ“ и „НЕ“ двоичной логики, которые лежат в основе и современных компьютеров. Реализацию классических вентилей на лампах можно посмотреть на картинке.
Логическая функция „И“ строилась на одной лампе, число входов определялось числом сеток в лампе. А для реализации элемента классического вентиля „2ИЛИ“ требовалось две лампы. И хотя в последствии появились так называемые компактроны, что то на подобии сборок из нескольких ламп в одной колбе, инженерами все же приходилось оптимизировать логические выражения для того, что бы в них преобладала функция „И“. Лампы были дорогими, не надежными (наработка на отказ 750 часов), выделяли много тепла, но самое главное они были огромными. В 1952 году появились первые отечественные полупроводниковые диоды для замены маломощных ламп. Их появление ознаменовало появление диодной логики, которая позволила значительно сократить размер логических вентилей. Реализация функции „И“ и „ИЛИ“ на диодной логике представлено на рисунке.
Но для реализации инвертора все еще требовалась лампа. Для построения машины БЭСМ-2 уже применялись полупроводниковые диоды, и она содержала уже 4000 ламп и 5000 полупроводниковых диодов. Сокращение размеров и потребления вентилей „И“ и „ИЛИ“ были значительными, и заставляло оптимизировать логических функций для уменьшении числа инверторов в схеме. Наверное именно тогда инженерам и пришлось впервые решить эту задачу.
Серийное производство транзисторов, позволивших полностью отказаться от ламп, началось в нашей стране в 1955 году. И в 1959 году первойтранзисторной безламповой ЭВМ была машина „Сетунь“, хотя в ней все же было 20 ламп.
И все же вернемся к нашей задаче.
Если кто знает решение, давайте не портить удовольствие тем кто хочет решить ее сам. Ответы принимаются в комментариях, просьба оформлять их в виде записи на языке С или Verilog.
Вариант {nA,nB,nC} <= !{A,B,C}; не принимается, это три инвертора.
UPD:
Преподаватель в институте рассказывал, что подобного рода задачи возникали в эру ламповых ЭВМ. Но расспросить подробности у нас студентов-бездарей ума не хватило, потому сейчас историю приходится восстанавливать по описанию старых машин и немного додумывать.
Первые электронные вычислительные машины строились на лампах. Так первая в СССР (1950 год) ЭВМ МЭСМ содержала около 6000 ламп, с помощью которых реализовывались логические функции „И“, „ИЛИ“ и „НЕ“ двоичной логики, которые лежат в основе и современных компьютеров. Реализацию классических вентилей на лампах можно посмотреть на картинке.
Логическая функция „И“ строилась на одной лампе, число входов определялось числом сеток в лампе. А для реализации элемента классического вентиля „2ИЛИ“ требовалось две лампы. И хотя в последствии появились так называемые компактроны, что то на подобии сборок из нескольких ламп в одной колбе, инженерами все же приходилось оптимизировать логические выражения для того, что бы в них преобладала функция „И“. Лампы были дорогими, не надежными (наработка на отказ 750 часов), выделяли много тепла, но самое главное они были огромными. В 1952 году появились первые отечественные полупроводниковые диоды для замены маломощных ламп. Их появление ознаменовало появление диодной логики, которая позволила значительно сократить размер логических вентилей. Реализация функции „И“ и „ИЛИ“ на диодной логике представлено на рисунке.
Но для реализации инвертора все еще требовалась лампа. Для построения машины БЭСМ-2 уже применялись полупроводниковые диоды, и она содержала уже 4000 ламп и 5000 полупроводниковых диодов. Сокращение размеров и потребления вентилей „И“ и „ИЛИ“ были значительными, и заставляло оптимизировать логических функций для уменьшении числа инверторов в схеме. Наверное именно тогда инженерам и пришлось впервые решить эту задачу.
Серийное производство транзисторов, позволивших полностью отказаться от ламп, началось в нашей стране в 1955 году. И в 1959 году первой
И все же вернемся к нашей задаче.
Если кто знает решение, давайте не портить удовольствие тем кто хочет решить ее сам. Ответы принимаются в комментариях, просьба оформлять их в виде записи на языке С или Verilog.
Вариант {nA,nB,nC} <= !{A,B,C}; не принимается, это три инвертора.
UPD:
Решение от @eatmore
D = !((A&B)|(B&C)|(A&C))
E = !((D&(A|B|C))|(A&B&C))
nA = (D&E)|(D&(B|C))|(E&B&C)
nB = (D&E)|(D&(A|C))|(E&A&C)
nC = (D&E)|(D&(A|B))|(E&A&B)
E = !((D&(A|B|C))|(A&B&C))
nA = (D&E)|(D&(B|C))|(E&B&C)
nB = (D&E)|(D&(A|C))|(E&A&C)
nC = (D&E)|(D&(A|B))|(E&A&B)
Визуализация решения от @AndreyDmitriev
Only registered users can participate in poll. Log in, please.
Можно ли проинвертировать три сигнала, если у вас есть только два инвертора, и неограниченное количество элементов «И» и «ИЛИ»?
9.68% Нельзя.9
44.09% Можно, я нагуглил ответ.41
46.24% Можно, я решил сам!43
93 users voted. 124 users abstained.