Вычитание на уровне схемы
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Вычитание на уровне схемы
Странное название для темы.. Но лучше выдумать не смог...
Дня два назад мне подкинули идейку сделать процессор на транзисторах. Шютка конечно, но меня зацепило -- начал думать над этим. Полностью процессор, типа компового, конечно не планирую даже. Просто небольшая поделка, вводим в неё два байта -- два числа в двоичном виде. Потом два бита -- от первого будет зависеть складывать/вычитать, второй бит -- сигнал к началу отсчёта.
Теперь вот думаю, получить из набора единиц и нулей два числа, записав их в два параллельных регистра на триггерах не трудно.
А вот как на уровне схемы, пока что из логических блоков типа И, ИЛИ, НЕ и т.д. произвести то самое вычитание или сложение? Со сложением есть идеи в принципе.. Но вычитание... Подскажете?
Дня два назад мне подкинули идейку сделать процессор на транзисторах. Шютка конечно, но меня зацепило -- начал думать над этим. Полностью процессор, типа компового, конечно не планирую даже. Просто небольшая поделка, вводим в неё два байта -- два числа в двоичном виде. Потом два бита -- от первого будет зависеть складывать/вычитать, второй бит -- сигнал к началу отсчёта.
Теперь вот думаю, получить из набора единиц и нулей два числа, записав их в два параллельных регистра на триггерах не трудно.
А вот как на уровне схемы, пока что из логических блоков типа И, ИЛИ, НЕ и т.д. произвести то самое вычитание или сложение? Со сложением есть идеи в принципе.. Но вычитание... Подскажете?
- Реклама
Re: Вычитание на уровне схемы
Вычитание - тоже сложение, просто у второго числа знак поменять 
P.S.
В дополнительном коде - проинвертировать все биты и добавить единицу.
А потом просто сложить.
Итого - инверсия, инкремент, сложение.
P.S.
В дополнительном коде - проинвертировать все биты и добавить единицу.
А потом просто сложить.
Итого - инверсия, инкремент, сложение.
Re: Вычитание на уровне схемы
Всё верно, поэтому самая простая система команд для любого процессора состоит всего из 5 команд: MOV, ADD, AND, NOT, JZ.
Тут вопрос в базисе реализации.
Тут вопрос в базисе реализации.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Вычитание на уровне схемы
Только на транзисторах не советую - их дофига уйдёт на логические элементы. А вот на элементарной логике сделать можно.
Есть такая книжка -Чарльз Петцольд - КОД
Там рассмотрено создание простейшего процессора.
Есть такая книжка -Чарльз Петцольд - КОД
Там рассмотрено создание простейшего процессора.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
- VT1
- Поставщик валерьянки для Кота
- Сообщения: 2458
- Зарегистрирован: Вс июл 11, 2010 14:39:04
- Откуда: Россия.
- Контактная информация:
Re: Вычитание на уровне схемы
Качаешь эту книжку.просто КОТ писал(а):А вот как на уровне схемы?
http://padabum.com/d.php?id=3235
И там описывается как сделать то, что тебе нужно.
- Вложения
-
- 1.JPG
- (54.52 КБ) 1034 скачивания
- Реклама
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Что-то там очень сложные схемы, едва читаются... Но кусками уловил, плюс добавил фантазии, и потом ещё фантазии, и вышел, что на каждую пару бит понадобится:
1. Три элемента НЕ и три элемента ИЛИ для вычитания.
2. Один элемент 2И и два Исключающих ИЛИ для сложения.
Т.к. работать хочу с 8-битными числами, понадобится 16 триггеров для памяти, 32 инвертора, 24 ИЛИ, и 16 Исключающих ИЛИ. Плюс ещё парочка деталек для управления блоками, чтоб связывать их друг с другом.
1. Три элемента НЕ и три элемента ИЛИ для вычитания.
2. Один элемент 2И и два Исключающих ИЛИ для сложения.
Т.к. работать хочу с 8-битными числами, понадобится 16 триггеров для памяти, 32 инвертора, 24 ИЛИ, и 16 Исключающих ИЛИ. Плюс ещё парочка деталек для управления блоками, чтоб связывать их друг с другом.
Последний раз редактировалось просто КОТ Сб ноя 02, 2013 12:58:07, всего редактировалось 1 раз.
Re: Вычитание на уровне схемы
не 16 триггеров, а два 8-разрядных или один 16-разрядный регистр, схемы интегральные полусумматоров... ну и т.д. Если сделать не на "рассыпухе", то будет меньше корпусов микросхем.
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Вообще, на реле хотелось... Это странно объяснить, почему реле, но хотелось бы...
Не вкурсе ли, кстати, где взять реализации вышеназваных блоков на реле? Как сделать Исключающее ИЛИ знаю, как сделать инверсию и элемент И тоже знаю. А вот с триггером и с ИЛИ есть проблемы..
Не вкурсе ли, кстати, где взять реализации вышеназваных блоков на реле? Как сделать Исключающее ИЛИ знаю, как сделать инверсию и элемент И тоже знаю. А вот с триггером и с ИЛИ есть проблемы..
Re: Вычитание на уровне схемы
Ну здесь немного сложнее, т.к. раньше, имею ввиду очень раньше, вычислители делались немного по-другому. Это, скорее, было сочетание аналогово-цифровой техники.
Полностью на реле реализовать, конечно можно, но это будут специфические реле. Что-то придётся изготовить самому.
Предварительная информация:
http://ru.wikipedia.org/wiki/%C0%F0%F5% ... 2%E5%F0%E0
(Нулевое поколение ЭВМ)
Информация к размышлению для дальнейшего поиска:
Релейная машина «Марк-2», изготовленная в 1947 году, содержала около 13 000 реле. Одной из наиболее совершенных релейных машин была машина советского конструктора Н. И. Бессонова — РВМ-1. Она была построена в 1956 году и проработала почти 10 лет, конкурируя с существовавшими уже в то время ЭВМ. Поскольку реле — это механическое устройство, то его инерционность (задержка при переключении) достаточно велика, что сильно ограничивало скорость работы таких машин. Скорость РВМ-1 составляла 50 сложений или 20 умножений в секунду. Практически это был предел скорости для машин этого типа.
Если пошёл процесс даунграунда, то можно собрать ещё пневматические вычислительные машины. Уже не совсем механика, но ещё не реле. Правда, пишут что они ещё используются на опасных производствах.
Полностью на реле реализовать, конечно можно, но это будут специфические реле. Что-то придётся изготовить самому.
Предварительная информация:
http://ru.wikipedia.org/wiki/%C0%F0%F5% ... 2%E5%F0%E0
(Нулевое поколение ЭВМ)
Информация к размышлению для дальнейшего поиска:
Релейная машина «Марк-2», изготовленная в 1947 году, содержала около 13 000 реле. Одной из наиболее совершенных релейных машин была машина советского конструктора Н. И. Бессонова — РВМ-1. Она была построена в 1956 году и проработала почти 10 лет, конкурируя с существовавшими уже в то время ЭВМ. Поскольку реле — это механическое устройство, то его инерционность (задержка при переключении) достаточно велика, что сильно ограничивало скорость работы таких машин. Скорость РВМ-1 составляла 50 сложений или 20 умножений в секунду. Практически это был предел скорости для машин этого типа.
Если пошёл процесс даунграунда, то можно собрать ещё пневматические вычислительные машины. Уже не совсем механика, но ещё не реле. Правда, пишут что они ещё используются на опасных производствах.
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Я так прикинул -- мне это выйдет в около 200 реле, но это будет только сложение/вычитание чисел до 256.
По идее, осилить можно. Плюс прикрутить ещё красивое табло, корпус стимпанковский какой-нибудь, и чтоб щелкало по громче... Красота будет.
По идее, осилить можно. Плюс прикрутить ещё красивое табло, корпус стимпанковский какой-нибудь, и чтоб щелкало по громче... Красота будет.
Re: Вычитание на уровне схемы
А ещё взять реле с прозрачными корпусами, чтобы всё можно было даже визуально оценить.
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
200 реле переключатся по одному разу за одну секунду и затихнут, не впечатляющее будет зрелище -- слишком быстро и коротко.
А вот услышать за сотню клацаний в хаотичной очереди.. Уже лучше.
А вот услышать за сотню клацаний в хаотичной очереди.. Уже лучше.
Re: Вычитание на уровне схемы
Тогда сделать потоковый ввод с компа, имитируя операцию умножения двух чисел. Или перемножение матриц, а потом результат останется на индикаторе. Ну как-то так...
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Т.е. не с клавиатуры забивать регистры, а снимать цифры с ЛПТ порта?
Re: Вычитание на уровне схемы
А почему нет? Сделать этакий внешний вычислитель. Ну хотя бы на первых порах, для пробы. А потом уже можно и клавиатуру реализовать.
Кстати, есть такие шаговые реле, которые стояли на старых АТС.
Допустим, при нажатии клавиши на клавиатуре, декадно-шаговое реле отсчитывает цифру, потом набираем вторую и т.д. Потом пуск. И шума много и визуально красиво, не за доли секунд. А результат - на дисплей. Дешифратор цифр может не понадобиться, если это будут индикаторы, где каждая цифра поджигается отдельно, навскидку названия не помню. Если индикатор семисегментный, то дешифратор можно реализовать на старых ненужных диодах. Это как вариант.
Нашёл: индикаторы ИН, например, ИН-13.
Кстати, есть такие шаговые реле, которые стояли на старых АТС.
Допустим, при нажатии клавиши на клавиатуре, декадно-шаговое реле отсчитывает цифру, потом набираем вторую и т.д. Потом пуск. И шума много и визуально красиво, не за доли секунд. А результат - на дисплей. Дешифратор цифр может не понадобиться, если это будут индикаторы, где каждая цифра поджигается отдельно, навскидку названия не помню. Если индикатор семисегментный, то дешифратор можно реализовать на старых ненужных диодах. Это как вариант.
Нашёл: индикаторы ИН, например, ИН-13.
Последний раз редактировалось Шурики Сб ноя 02, 2013 11:31:20, всего редактировалось 1 раз.
Re: Вычитание на уровне схемы
А цифры вводить механическим номеронабирателем...
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Мне хотелось в двоичном виде оставить пока-то.
Ддесятично-двоично-десятичное преобразование можно потом прикрутить... Но пока что будем в двойке работать -- благо числа до 256 можно легко прочесть.
Ддесятично-двоично-десятичное преобразование можно потом прикрутить... Но пока что будем в двойке работать -- благо числа до 256 можно легко прочесть.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Вычитание на уровне схемы
И линейку к ним.Нашёл: индикаторы ИН, например, ИН-13.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Вычитание на уровне схемы
Да, где-то не там, получается нашёл. Грешен. Ну поправьте, если есть инфа под рукой ("навскидку").
А линейку привязать на ниточке к корпусу (чтобы не спёрли).
А линейку привязать на ниточке к корпусу (чтобы не спёрли).
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: Вычитание на уровне схемы
Хм.. Я вот начал колебаться -- Д-триггер это 3 реле, боюсь в 200 реле можем не уложиться.. Или..
И хочется, и дофига что-то выходит... Не раздобуду я столько реле. 50 могу.. 100, пусть не одинаковых, ещё можно попробовать.. А вот 200... 250... перебор.
Попробовать 4-х битные числа для начала?
И хочется, и дофига что-то выходит... Не раздобуду я столько реле. 50 могу.. 100, пусть не одинаковых, ещё можно попробовать.. А вот 200... 250... перебор.
Попробовать 4-х битные числа для начала?




