- PVSM.RU - https://www.pvsm.ru -
Почти год назад у меня возникла мысль понять, как устроен компьютер, как он работает. Ну и конечно же, появилось огромное желание создать свой собственный на элементарных логических элементах (если быть точнее — на транзисторах).
Тогда у меня было только маленькое представление о его роботе: я знал, что вся цифровая электроника построена на логических элементах (для меня это было, как постулат), но никак не мог сообразить, как исполняется программа, суммируются числа, зачем прерывания… Этот перечень вопросов можно продолжать и дальше, но сейчас не об этом.
Определим характеристику разрабатываемого компьютера:
Для целей проектирования логических схем существует множество программ. Но для масштабного проектирования и отладки мои требования удовлетворили только две программы (наверное мои требования слишком суровы):
Собственно требования:
В этой и всех последующих постах при публикации логических схем я буду использовать Logisim ввиду того, что я недавно перешел на Ubuntu, хотя весь проект сделан на Logic Circuit.
Так как практика без теории не существует, то для создания чего-либо нужна теоретическая база. Поэтому сегодня в программе мы рассмотрим следующие теоретические аспекты:
Базовым элементом для интегральной схемы служит транзистор.
За определением Википедии,
транзистор — радиоэлектронный компонент из полупроводникового материала, позволяющий входным сигналом управлять током в электрической цепи.
Из транзисторов состоят логические элементы. Из логических элементов создают триггеры, сумматоры, логические блоки, счетчики. Комбинируя все это правильным образом можна создать свой собственный компьютер (или ЕОМ).
Логические элементы [3] — устройства, предназначенные для обработки информации в цифровой форме.
Логическую функцию любой сложности можна задать с помощью таких логических элементов:
Логические элементы в Logisim:
Первоначальной затеей было построить компьютер не на микросхемах 7400 [4] серии, а на транзисторах. И начал я поиск технологий построения электронных схем. Существуют следующие:
Далее я прочитал для каждой преимуществанедостатки, и среди них выбрал резисторно-транзисторную логику [5]. Выбор был очевидет ввиду того, что эта логика имеет конструктивную простоту и мальнькую стоимость. А также к этой логике есть огромный выбор биполярных SMD транзисторов и SMD резисторов. Транзисторы я взял BC847C n-p-n и BC857C p-n-p.
Закрыв глаза на все недостатки, я на целый месяц погрузился в ресчеты логических элементов на транзисторах. Сделал несколько тестовых схем на макетке, применяя транзисторы BC547C. Результатамы теоретической и практической частямы был доволен.
Макетка:
Остался последный этап — проектирование схемы синхронного T-триггера на 847 транзисторах, проверка его работоспособности и анализ частотных характеристик. Тест работоспособности довольно простой — на вход «T» подается логическая «1», а на вход «C» — тактовые импульсы с генератора. На выходе я должен получить тактовые импульсы, частота которых вдвое меньше входной. Если все заработает на приемливой частоте — значит заработает и весь компьютер.
Спроектировал схему, которая состоит из 4-х T-триггеров. Сделал печатную плату фоторезистивным методом, нехитро запаял и в итоге получил вот такую красоту (ширина дорожек — 0,15мм):
Подключил к схеме источник питания на 5 вольт, подключил генератор на вход и осциллограф на выход. Начал тестирование на частоте 1 МГц, но схема не заработала. Потом понизил до 20 кГц — вуаля, схема заработала правильным образом. Манипулируя напряжением питания смог повысить рабочуюю частоту до 40 кГц…
Увы, но схема моих ожиданий не оправдала. К тому же только один Т-триггер заработал правильно на частоте до 40 кГц, а все остальные не могли переходить из высокого состояния в низкий, хотя внутринние RS-триггеры работали правильно.
Я провел еще некоторые експерименты по построению логических элементов, только уже на полевых транзисторах. Результаты получились удовлетворительнимы, но появились некоторые проблемы:
Для себя я сделал хороший вывод: лутше покупать микросхемы 7400 серии с логическими элементами, чем делать логические элементы на транзисторах. А для очистки совести когда вся схема на микросхемах будет готова, можна заменить несколько ключевых микросхем на транзисторные схемы и подключать по-очериди и то, и другое для демонстрации того, что все микросхемы можна заменить на транзисторы :)
Законы де Моргана — это правила, которые связывают логические операторы (дизъюнкцию и конъюнкцию) с помощью логического отрицания. В формальной логике их можна записать так:
Рассмотрим пример использования этих правил в действии. Пускай мы имеем такую схему:
Используя законы де Моргана схему можна переделать на такую:
Как можно заметить по таблицам истинности, логика этих схем идентичная.
Теперь маленький постулат: для логических элементов (кроме логического НЕ) на КМОП логике с инверсным выходом (например, логическое 2И-НЕ) нужно на два транзистора менше, чем для логических элементов с не инверсным выходом (например, логическое 2И).
Тогда, для первой схемы нужно будет 18 транзисторов, а для второй — 12 транзисторов. Причем, вторая схема будет работать быстрее из-за того, что используется меншее количество вентилей и сигнал будет проходить на порядок быстрее.
В следующем посте я расскажу о триггерах и мы начнем проектировать АЛУ.
Автор: OTER
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/tutorial/33164
Ссылки в тексте:
[1] Logic Circuit: http://www.logiccircuit.org/
[2] Logisim: http://ozark.hendrix.edu/~burch/logisim/
[3] Логические элементы: http://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B
[4] 7400: http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D1%85%D0%B5%D0%BC%D1%8B_%D1%81%D0%B5%D1%80%D0%B8%D0%B8_7400
[5] Резисторно-транзисторная логика (РТЛ);: http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%BD%D0%BE-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0
[6] Диодно-транзисторная логика (ДТЛ);: http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BE%D0%B4%D0%BD%D0%BE-%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0
[7] Эмиттерно-связанная логика (ЭСЛ);: http://ru.wikipedia.org/wiki/%D0%AD%D0%BC%D0%B8%D1%82%D1%82%D0%B5%D1%80%D0%BD%D0%BE-%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0
[8] Интегрально-инжекционная логика (ИИЛ, И2Л, И3Л, I2L);: http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE-%D0%B8%D0%BD%D0%B6%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0
[9] КМОП (К-МОП; комплементарный металлооксидный полупроводник).: https://ru.wikipedia.org/wiki/%D0%9A%D0%9C%D0%9E%D0%9F
[10] Источник: http://habrahabr.ru/post/178071/
Нажмите здесь для печати.