Оглавление:

4-битный двоичный калькулятор: 11 шагов (с изображениями)
4-битный двоичный калькулятор: 11 шагов (с изображениями)

Видео: 4-битный двоичный калькулятор: 11 шагов (с изображениями)

Видео: 4-битный двоичный калькулятор: 11 шагов (с изображениями)
Видео: Двоичная система счисления — самое простое объяснение 2024, Июль
Anonim
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор
4-битный двоичный калькулятор

Я заинтересовался принципом работы компьютеров на фундаментальном уровне. Я хотел понять использование дискретных компонентов и схем, необходимых для выполнения более сложных задач. Одним из важных фундаментальных компонентов ЦП является арифметико-логический блок или АЛУ, который выполняет операции с целыми числами. Для выполнения этой задачи компьютеры используют двоичные числа и логические вентили. Одна из самых простых выполняемых операций - это сложение двух чисел в сумматоре. Это видео от numberphile отлично объясняет эту концепцию с помощью Domino Addition. Мэтт Паркер расширяет эту базовую концепцию и строит схему Domino Computer, используя 10 000 домино. Создание целого персонального компьютера из домино абсурдно, но я все же хотел понять использование дискретных компонентов для выполнения этой задачи добавления. В видеороликах логические вентили были созданы из домино, но они также могут быть сделаны из основных компонентов, а именно транзисторов и резисторов. Целью этого проекта было использование этих дискретных компонентов для изучения и создания моего собственного 4-битного калькулятора сумматора.

В мои цели для этого проекта входило: 1) Научиться создавать и изготовлять нестандартную печатную плату 2) Упростить концептуальную концепцию проекта, добавив двоичные числа 3) Продемонстрировать разницу в масштабе между дискретными компонентами и интегральной схемой, выполняющей ту же задачу.

Большая часть вдохновения и понимания этого проекта пришла от Саймона Иннса.

Запасы

Я использовал Fritzing для создания схем, создания и изготовления печатных плат.

Шаг 1: теория

Теория
Теория
Теория
Теория
Теория
Теория
Теория
Теория

Подсчет по основанию 10 прост, потому что существует другое целое число, представляющее сумму двух целых чисел. Самый простой пример:

1 + 1 = 2

При подсчете по основанию 2 или двоичной системе используются только единицы и нули. Комбинация единиц и нулей используется для обозначения различных целых чисел и их сумм. Пример подсчета по базе 2:

1 + 1 = 0, и вы переносите 1 в следующий бит

При сложении двух битов (A и B) вместе возможны 4 разных результата с выходами Sum и Carry (Cout). Это то, что показано в таблице.

Логические вентили принимают входные данные и генерируют выход. Некоторые из самых простых логических вентилей состоят из вентилей НЕ, И и ИЛИ, которые все используются в этом проекте. Они состоят из различных комбинаций и разводки транзисторов и резисторов. Приведены схемы всех ворот.

Возвращаясь к таблице, можно сказать, что комбинация этих вентилей может использоваться для получения результатов Sum в таблице. Эта комбинация логики также известна как вентиль исключающее ИЛИ (XOR). Вход должен быть ровно 1, чтобы на выходе было 1. Если оба входа равны 1, результирующий выход равен 0. Результаты битов переноса могут быть представлены простым логическим элементом И. Таким образом, использование XOR и логического элемента AND может представлять всю таблицу. Это известно как полусумматор, и его схема показана выше.

Чтобы добавить большие двоичные числа, бит переноса должен быть включен в качестве входа. Это достигается путем объединения двух схем полусумматора для создания полного сумматора. Затем полные сумматоры можно объединить каскадом для сложения больших двоичных чисел. В моем проекте я каскадировал 4 полных сумматора, которые позволили мне иметь 4-битные входные данные. Схема для полного сумматора приведена выше.

У Саймона Иннса есть отличная и более подробная статья о теории. Есть также несколько PDF-файлов, которые мне показались полезными.

Шаг 2: Тестирование схемы

Тестирование схемы
Тестирование схемы
Тестирование схемы
Тестирование схемы

Первым шагом после понимания того, как работают логические вентили и теории, лежащей в основе полного сумматора, является построение схемы. Я начал с того, что собрал все необходимые мне компоненты: резисторы 10 кОм и 1 кОм, транзисторы NPN, макетную плату, перемычки. Я последовал за распечаткой полного сумматора. Процесс был утомительным, но мне удалось получить работающую схему для полного сумматора. Я бы связал входы с высоким или низким уровнем и использовал мультиметр для проверки выходов. Теперь я был готов перевести макет и схему на печатную плату.

Шаг 3: проектирование печатной платы полного сумматора

Проектирование печатной платы полного сумматора
Проектирование печатной платы полного сумматора
Проектирование печатной платы полного сумматора
Проектирование печатной платы полного сумматора
Проектирование печатной платы полного сумматора
Проектирование печатной платы полного сумматора

Для разработки печатной платы я использовал исключительно Fritzing. Я впервые разрабатывал печатную плату, и эта программа показалась мне самой удобной и интуитивно понятной с минимальной кривой обучения. Существуют и другие замечательные программы, такие как EasyEDA и Eagle, которые помогают проектировать печатную плату. С Fritzing вы можете начать проектирование на виртуальной макетной плате или схеме, а затем перейти к печатной плате. Я использовал оба этих метода в этом проекте. Когда вы будете готовы изготовить печатную плату, достаточно щелкнуть кнопку, чтобы экспортировать файлы и загрузить их непосредственно в Aisler, производственного партнера Fritzing.

Нарисуйте схему Я начал с вкладки схемы, чтобы начать процесс. Сначала я нашел и вставил все компоненты в рабочую область. Затем я нарисовал все следы между компонентами. Я обязательно добавил вход 5 В и заземление в соответствующие места.

Дизайн PCBI щелкнул на вкладке PCB. Когда вы переходите непосредственно от схемы, вы получаете беспорядок со всеми компонентами, соединенными линиями ratsnest на основе трасс, которые вы сделали на схеме. Первым делом я изменил размер серой печатной платы до нужного мне размера и добавил монтажные отверстия. Я также добавил 16 контактов для входа и выхода. Затем я начал логически расставлять компоненты. Я попытался сгруппировать компоненты с соединениями, расположенными близко друг к другу, чтобы минимизировать расстояние трассировки. Я сделал дополнительный шаг и сгруппировал компоненты вместе с помощью логического элемента. Одна из моих целей заключалась в том, чтобы иметь возможность визуализировать, как работает схема, и иметь возможность отслеживать «бит» через схему. После этого я использовал функцию автотрассировки, которая проходит автоматически и рисует оптимизированные трассировки между компонентами. Я скептически относился к тому, что этот процесс завершил все правильные трассировки, поэтому я дважды перепроверил и перерисовал трассировки там, где они должны были быть. К счастью, функция автотрассировки поработала довольно хорошо, и мне нужно было исправить только несколько трассировок. Автотрассировщик также сделал некоторые странные углы со следами, что не является «лучшей практикой», но меня это устраивало, и все по-прежнему работало нормально. Последнее, что я сделал, это добавил текст, который будет печататься как шелкография. Я убедился, что все компоненты промаркированы. Я также импортировал изображения пользовательских логических вентилей, чтобы подчеркнуть группировку компонентов. Последнее изображение выше показывает шелкографию.

Изготовить печатную плату Я нажал кнопку "Изготовить" в нижней части экрана. Он напрямую направил меня на веб-сайт Aisler, где я смог создать учетную запись и загрузить все мои файлы Fritzing. Я оставил все настройки по умолчанию и разместил заказ.

Шаг 4: проектирование других печатных плат

Проектирование других печатных плат
Проектирование других печатных плат
Проектирование других печатных плат
Проектирование других печатных плат
Проектирование других печатных плат
Проектирование других печатных плат

Остальные печатные платы, которые мне были нужны, были интерфейсной платой ввода / вывода и платой для IC. Я выполнил шаг 3 для этих плат. Схемы в формате pdf размещены ниже. Для микросхемы я сделал все подключения, используя функцию виртуального макета. Я включил схему для полноты картины, но смог перейти непосредственно от макета к вкладке PCB, что было довольно круто. Я также добавил таблицу преобразования базы 10 в базу 2 на шелкографию на интерфейсной плате ввода-вывода перед загрузкой и заказом в Aisler.

Шаг 5: Припаивание компонентов к печатной плате

Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате
Припаивание компонентов к печатной плате

Приехали все печатные платы, и я был очень впечатлен качеством. У меня не было опыта работы с другими производителями, но я без колебаний снова воспользуюсь Aisler.

Следующей задачей было спаять все компоненты, что было трудным процессом, но мои навыки пайки значительно улучшились. Я начал с полных сумматоров и припаял компоненты, начиная с транзисторов, затем резисторов 1 кОм, затем резисторов 10 кОм. Я применил аналогичный метод, чтобы припаять остальные компоненты к плате ввода-вывода и IC. После того, как каждая плата полного сумматора была завершена, я протестировал их тем же методом, что и макетную плату полного сумматора. Удивительно, но все платы работали без проблем. Это означало, что платы были правильно проложены и припаяны. К следующему шагу!

Шаг 6: Обработка печатных плат для укладки

Обработка печатных плат для укладки
Обработка печатных плат для укладки
Обработка печатных плат для укладки
Обработка печатных плат для укладки
Обработка печатных плат для укладки
Обработка печатных плат для укладки

Следующей задачей было припаять все выводы к каждой плате. Мне также нужно было добавить перемычки между правильным выводом заголовка и входами / выходами плат полного сумматора (A, B, Cin, V +, GND, Sum, Cout). Этого шага можно было бы избежать, если бы вы проектировали разные печатные платы для каждого уровня схемы сумматора, но я хотел минимизировать дизайн и стоимость, создав только одну печатную плату полного сумматора. В результате для подключения к этим входам / выходам требовались перемычки. На схеме показано, как я выполнил эту задачу и какие контакты использовались для каждого уровня плат Full Adder. На изображениях показано, как я припаивал перемычки к каждой плате. Я начал с припайки свободных проводов к правильным контактам на разъеме. Затем я припаял заголовок к печатной плате. После того, как у меня были припаяны контакты разъема с перемычками, я припаял свободные концы перемычек к нужным выводам на печатной плате. На картинке выше крупным планом показаны контакты разъема с припаянными к ним перемычками.

Шаг 7: Питание схем

Питание схем
Питание схем
Питание схем
Питание схем
Питание схем
Питание схем

Я планировал использовать для этого проекта блок питания с цилиндрическим разъемом 12 В постоянного тока, поэтому я спроектировал интерфейсную плату ввода / вывода так, чтобы он имел цилиндрический разъем / разъем постоянного тока для входа питания. Поскольку я использовал ту же плату ввода-вывода и хотел использовать единственный источник питания, мне нужно было регулировать напряжение до 5 В, поскольку это максимальный вход для микросхемы SN7483A. Для этого мне понадобился регулятор 5 В и переключатель, который мог переключаться между 12 В и 5 В. На схеме выше показано, как я подключил силовую цепь вместе.

Шаг 8: 3D-печать базы

3D-печать базы
3D-печать базы
3D-печать базы
3D-печать базы
3D-печать базы
3D-печать базы

Теперь, когда вся проводка и пайка завершены, мне нужно было понять, как все это будет держаться вместе. Я выбрал САПР и 3D-печать, чтобы разместить и отобразить все части этого проекта.

Соображения по конструкции Мне нужны были места для крепления печатных плат с помощью болтов и стоек. Сложенные сумматоры являются наиболее привлекательными визуально, и я хотел, чтобы они были выставлены на обозрение, когда они не используются, поэтому мне нужно было место для хранения печатной платы IC. Мне нужно было приспособить силовую цепь с вырезами для переключателя и штекера / разъема постоянного тока. Наконец, мне нужен был какой-то витрины корпуса, чтобы пыль не скапливалась на открытых печатных платах, поэтому мне нужно было место для корпуса.

3D-моделирование Я использовал Fusion360 для проектирования базы. Я начал с размеров печатной платы и расстояния между монтажными отверстиями. После этого я использовал серию эскизов и выдавливаний, чтобы установить высоту и размер основания с точками крепления печатной платы. Затем я сделал вырезы для корпуса и силовой цепи. Затем я сделал место для хранения печатной платы IC, когда она не используется. Наконец, я добавил некоторые детали отделки кромок и отправил их в Cura, мое программное обеспечение для нарезки.

Я выбрал черную нить PLA. Печать заняла чуть больше 6 часов и получилась великолепной. Удивительно, но все размеры были правильными, и все выглядело так, как будто оно подходило друг к другу. На картинке выше показан отпечаток после того, как я вставил стойки в монтажные отверстия. Они идеально подошли!

Шаг 9: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Вставьте стойки. Я поместил все стойки в монтажные отверстия основания.

Поместите силовую цепь в основание. Я соединил все вместе и вытащил все компоненты через отверстие для переключателя. Затем я вставил разъем питания / адаптер в заднюю часть базы. Я вставил регулятор 5V в его гнездо, и, наконец, переключатель смог встать в нужное положение.

Установите плату ввода-вывода. Я поместил печатную плату IC в место для хранения и поместил плату интерфейса ввода-вывода сверху. Я прикрутил плату с помощью 4 болтов M3 и шестигранной отвертки. Наконец, я подключил штекер постоянного тока к печатной плате.

Сложите печатные платы сумматора. Я поставил первую сумку на место. Я прикрутил заднюю часть печатной платы к задним монтажным отверстиям с помощью двух стоек. Я повторял этот процесс, пока последний сумматор не был на месте, и закрепил его еще двумя болтами M3.

Сделайте вольер. Я использовал акрил 1/4 дюйма для корпуса. Я измерил окончательную высоту проекта и, используя размеры САПР, вырезал 5 частей по бокам и сверху, чтобы сделать простую коробку с открытым дном. Я использовал эпоксидную смолу для приклеивания Наконец, я отшлифовал небольшой вырез в виде полукруга с правой стороны, чтобы разместить переключатель.

Готовы посчитать

Шаг 10: Расчет и сравнение

Image
Image
Расчет и сравнение
Расчет и сравнение
Расчет и сравнение
Расчет и сравнение

Подключите новый калькулятор и начните добавлять! Диаграмма с основанием 10 и основанием 2 может использоваться для быстрого преобразования между двоичными и целыми числами. Я предпочитаю устанавливать входы, а затем нажимать «равно», щелкая выключателем питания и наблюдая за двоичным выходом светодиодов.

Сравнение дискретных компонентов с интегральной схемой. Теперь вы можете разложить полные сумматоры и подключить микросхему SN7483A к плате ввода-вывода. (Не забудьте повернуть переключатель в противоположном направлении, чтобы запитать ИС 5 В вместо 12 В). Вы можете выполнить те же вычисления и получить те же результаты. Довольно впечатляюще думать, что и дискретный компонент Adder, и IC функционируют одинаково, только в очень разных масштабах. На рисунках показаны одинаковые входы и выходы для цепей.

Шаг 11: Заключение

Надеюсь, вам понравился этот проект и вы узнали так же много, как и я. Приятно узнать что-то новое и превратить это в уникальный проект, который также требует изучения новых навыков, таких как проектирование / изготовление печатных плат. Все схемы перечислены ниже. Для всех, кто интересуется, я также могу связать мои файлы PCB Gerber, чтобы вы могли создать свой собственный 4-битный двоичный калькулятор. Удачи!

Рекомендуемые: