Я играю с проектированием простого 8-битного процессора из основных логических компонентов. У меня есть довольно хорошее представление о том, как будут взаимодействовать мое АЛУ и регистры, но единственное, что, по моему мнению, можно улучшить, это как переключаться, когда линии разрешено подключаться к основной шине данных.
Моя первоначальная мысль состояла в том, чтобы использовать ворота и для управления автобусом. Все выходные данные различных линий АЛУ могут поступать на набор микросхем квадро-И, которые выводятся на шину. Только у одного набора логических элементов И в каждый момент времени все входы B должны быть подняты на высокий уровень, чтобы выпустить его на шину.
Несколько вещей, в которых я не уверен: кажется расточительным использовать восемь полных логических элементов И на линию, когда мне нужна только одна управляющая линия. Есть ли лучший чип, более подходящий для этой цели? Я уверен, что мог бы сделать это и с восемью транзисторами, но я хотел бы придерживаться довольно распространенных (и дешевых) ИС.
Подобное решение позволяет передавать данные только в одном направлении от шины. Это проблема? Я думаю, что нет, так как у меня есть другие линии управления, останавливающие регистры от загрузки данных шины, пока я этого не захочу.
Есть ли стандартный чип, который можно использовать для такого шлюза шины?
74HC244 является типичным устройством для подключения/отключения от шины. Это восьмеричный буфер с тремя состояниями (или, скорее, двойной счетверенный буфер). Вам понадобится функция трех состояний, чтобы полностью отключиться от шины. Ворота устанавливали шину высоко или низко, но это не позволяло использовать на ней другое устройство.
Но поскольку вы говорите о шине данных, вам, вероятно, нужен двунаправленный буфер. Тогда вы можете использовать 74HC245 .
У вас есть DIR
контакт для управления направлением и /OE
который может сделать буфер с тремя состояниями.
JustJeff
упоминает восьмеричный D-триггер 74HC374 с тремя состояниями. ( Примечание: я расскажу о 74HC574, который функционально такой же, но имеет более логичную распиновку. ) 74HC574 действительно интересная деталь и классика со времен серии SN74xx. В то время как 74HC245 предоставит вам буфер с тремя состояниями, 74HC574 также имеет функцию памяти в виде восьмеричного D-триггера. Отлично подходит для создания регистров, а благодаря подключению к шине с тремя состояниями вы можете легко маршрутизировать поток данных.
Однако в этом есть недостаток. Выход регистра доступен только для шины, поэтому все коммуникации должны проходить через нее, так что шина станет узким местом .. Поэтому я думаю, что лучше заменить 74HC374 восьмеричным D-триггером 74HC273, за которым следует отдельный буфер с тремя состояниями 74HC244 для подключения к шине. Таким образом, выход регистра также доступен внутри, когда какой-либо другой сигнал занимает шину. (Я не знаю, есть ли функционально совместимая часть с более логичной распиновкой. Вы также можете использовать 74HC574 с /OE
проводным заземлением.)
(1) Элементы И по своей сути не подходят для объединения в качестве прозрачных буферов шины, потому что, если они имеют полностью активные выходные драйверы, они взаимодействуют, а если «открытый коллектор», логика инвертируется.
Вы можете использовать вентили ИЛИ с двумя входами с открытым коллектором в качестве однолинейных драйверов для общей шины.
Если вы передадите «данные» и «not_enable» в вентиль ИЛИ, выход будет высоким, если not_enable высокий, и будет следовать за данными, если not_enable низкий.
Когда на выходе затвора с открытым коллектором высокий уровень, он никак не нагружает шину. Когда он низкий, он загружает шину включенным низким выходом. Таким образом, несколько логических элементов O с открытым коллектором могут совместно использовать шину, и только включенные (обычно по одному) могут управлять шиной. Вам нужно одно подтягивание, чтобы поднять автобус вверх, и любое количество ворот, чтобы опустить его.
(2) EDUC-8 был/является 8-битным микрокомпьютером на основе TTL, представленным как многомесячный проект в журнале Electronics Australia с августа 1974 по август 1975 года. Даже если вы не хотите копировать его, вы можете многому научиться, посмотрев, как он был реализован. В последние годы есть разные энтузиасты, которые построили копии.
Очень обширная документация о путешествии одного пользователя с EDUC-8 ... То же самое ... Включает в себя детали его изготовления печатной платы переноса тонера из нескольких латргсих печатных плат и многое другое.
КапитанКрейг
ДжастДжефф
суперкот