Интегральная схема включения шины


8

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

Моей первоначальной мыслью было использовать и ворота для вождения автобуса. Выходные данные из различных линий в ALU могут все входить в набор четырех И-чипов, которые выводятся на шину. Только для одного набора логических элементов И одновременно все входы B должны быть подняты высоко, чтобы выпустить его на шину.

Несколько вещей, в которых я не уверен: кажется бесполезным использовать восемь полных вентилей AND на линию, когда мне нужна только одна линия управления. Есть ли лучший чип, более подходящий для этой цели? Я уверен, что я мог бы сделать это с восемью транзисторами, но я хотел бы придерживаться довольно распространенных (и дешевых) ИС.

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

Есть ли стандартная микросхема, которую можно использовать для таких ворот?

Ответы:


11

74HC244 является типичным устройством для подключения к / отсоединения от шины. Это восьмеричный восьмеричный буфер (или, скорее, двойной четырехъядерный буфер). Вам потребуется функция трех состояний, чтобы полностью отключиться от шины. Ворота установили бы шину высоко или низко, но это не позволило бы другому устройству на нем.

Но поскольку вы говорите о шине данных, вам, вероятно, нужен двунаправленный буфер. Тогда вы можете использовать 74HC245 .

74HC245

У вас есть DIRбулавка для управления направлением и буква, /OEкоторая может сделать три состояния буфера.

редактировать
JustJeff упоминает 74HC374 восьмеричное тремя состояниями D-триггера. ( Примечание: я буду говорить о 74HC574, который функционально такой же, но имеет более логичную распиновку. ) 74HC574 действительно интересная часть и классика со времен серии SN74xx. В то время как 74HC245 даст вам буфер с тремя состояниями, 74HC574 также имеет функцию памяти в форме восьмеричного D-триггера. Отлично подходит для создания регистров, и благодаря трехстороннему соединению с шиной вы можете легко маршрутизировать поток данных.
Однако у этого есть недостаток. Вывод регистра доступен только для шины, поэтому вся связь должна проходить там, чтобы шина стала узким местом, Поэтому я думаю, что лучше заменить 74HC374 восьмигранным D-триггером 74HC273 с последующим отдельным буфером 74HC244 с тремя состояниями для подключения к шине. Таким образом, выход регистра также доступен внутри, когда какой-то другой сигнал занимает шину. (Я не знаю, есть ли функционально совместимая деталь с более логичной разводкой. Вы также можете использовать 74HC574 с /OEпроводным заземлением.)


Это выглядит великолепно! Я еще не уверен, как мои регистры будут взаимодействовать с шиной, но я подозреваю, что двунаправленные помогут там.
Captncraig

@CMP - в ситуации, как вы описываете - создание процессора с нуля - выходы с тремя состояниями - ваши друзья. Например, 74hc374 - это 8-битный регистр, который обеспечивает вывод с тремя состояниями в той же микросхеме. Вы можете соединить выходы нескольких из них вместе и просто установить OE того, который вам нужен, «на шине».
JustJeff

Стоит отметить, что на самом деле многие процессоры имеют регистры, которые могут принимать только входные данные или отправлять выходные данные с / на совместно используемые шины (во многих случаях это ввод с одной шины; вывод на другую). Хотя такой дизайн в некоторых случаях может быть узким местом, я не думаю, что цель здесь - конкурировать с i7. Обратите внимание, что если кто-то хочет, чтобы регистр получал входные данные с одной шины и выборочно выводился на две разные шины, можно было бы использовать 74HC273 и два 74HC244, но можно было бы выполнить работу только с двумя 74HC574, которые фиксируют одни и те же данные.
суперкат

5

(1) Логические элементы И по своей сути непригодны для использования в качестве прозрачных шинных буферов, потому что, если они имеют полностью активные драйверы вывода, они взаимодействуют, и если «открытый коллектор», логика инвертируется.

Вы можете использовать 2-входные ИЛИ вентили с открытым коллектором в качестве однолинейных драйверов для общей шины.

Если вы подаете «data» и «not_enable» в вентиль OR, выходной сигнал будет высоким, если not_enable высок, и будет следовать данным, если not_enable низок.

Когда выходной сигнал с открытым коллектором высокий, он никак не загружает шину. Когда он низкий, он загружает шину с включенным низким выходом. Таким образом, несколько ворот с открытым коллектором O могут совместно использовать шину, и только включенные (обычно по одному) могут управлять шиной. Вам нужно одно подтягивание, чтобы поднять шину высоко, и любое количество ворот, чтобы поднять ее.

(2) EDUC-8 был / является 8-битным микрокомпьютером на базе TTL, представленным как многомесячный проект в журнале Electronics Australia с августа 1974 года по август 1975 года. Даже если вы не хотите копировать его, вы можете многому научиться, посмотрев, как он был реализован. Есть разные энтузиасты, которые создали копии в последние годы.

Очень обширная документация о путешествии EDUC-8 для одного пользователя ... То же самое ... Включает в себя подробности его изготовления печатных плат для переноса тонера из нескольких печатных плат и многое другое.

Википедия EDUC-8

Страница ссылок

Некоторая документация

Изображение печатной платы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.