Страница 1 из 1

Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 18:07:26
Den1986
надо разработать такую схему:
Сумматор-вычитатель. Разрядность чисел - 16. Код поступающих чисел - прямой. Результат представить в последовательном коде.

помогите, плиз, кто может :))

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 18:28:24
Meteor
Схему сумматора наверное найдете.
Вычитание сводится к сумме с инвертированным значением вычитаемого, увеличеном на 1.
Пример надо из 1111 вычесть 1010 (из 15 вычесть 10)
После инверсии вычитаемого (10) получаем 0101. Увеличиваем на 1 - 0110
Далее 1111+0110 = 10101. Т.к. старший бит вышел за разрядную сетку остается только 0101.

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 18:50:11
Den1986
это, как раз, более-менее понятно. непонятно вот что: результат будет тоже в прямом коде. а надо представить в последовательном. как это сделать?

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 18:53:53
Meteor
Сдвиговыми регистрами или мультиплексором со счетчиком.

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 19:36:32
Den1986
нашел 8-и разрядный параллельно-последовательный регистр 1564ИР9
если такой подойдет для реализации, то где можно найти функциональную схему этого регистра?

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 20:58:51
Meteor
Вот структурная схема регистра ИР9
Изображение
Таких надо будет 2 регистра

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 22:41:28
Den1986
нарисовал схемку, вроде как правильно... только вот не знаю, как выходы регистров объединить так, чтоб сначала первый (нижний) выдавал информацию, а затем верхний
Untitled-1.jpg
(229.63 КБ) 684 скачивания

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 23:05:05
Meteor
С выхода "Q", подаете на вход "S1"

Re: Сумматор-вычитатель

Добавлено: Вт апр 05, 2011 23:26:21
Den1986
это не S1, a SI (Serial Input), т.е. получается, что у регистра вход SI обладает более высоким приоритетом, чем вход PI (т.е. если на регистр одновременно подавать данные на параллельный и последовательный входы, сначала будут выведены те данные, которые были поданы на последовательный вход?)

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 06:37:42
pyzhman
Meteor писал(а):Вычитание сводится к сумме с инвертированным значением вычитаемого, увеличеном на 1.
Инвертирование видно. А где в схеме увеличение на 1?
Den1986 писал(а):SI (Serial Input) вход PI
Здесь нет приоритета. Вход РЕ определяет с чем работать. С входами параллельного ввода или с данными, поступающими с входа SI.

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 06:59:47
Meteor
Вот описание регистра
Инвертирование видно. А где в схеме увеличение на 1?
У автора вход переноса (нижнего сумматора) болтается в воздухе - получается логическая 1, за счет самообеспечения, что не есть хорошо.

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 08:47:14
Den1986
Meteor писал(а): У автора вход переноса (нижнего сумматора) болтается в воздухе - получается логическая 1, за счет самообеспечения, что не есть хорошо.
Вход переноса нижнего сумматора я соединил с выходом переноса верхнего сумматора

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 09:06:22
Den1986
pyzh_man писал(а):Здесь нет приоритета. Вход РЕ определяет с чем работать. С входами параллельного ввода или с данными, поступающими с входа SI.
т.е. для того, чтоб все это работало, надо на вход PE верхнего регистра в течение 8 тактов подавать "1", и в течение 8 последующих тактов подавать "0". для реализации этого надо ставить счетчик, или есть другие варианты?

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 09:38:31
pyzhman
По поводу "где увеличение на 1". Так и не увидел. Y должен инвертироваться и к результату +1. Инверсия на "искл или" есть, +1 нету.
По поводу РЕ. На входы сдв. регистров поступила сумма(разность). Ее нужно зписать в регистры в парал. виде. Для этого РЕ ставим в "0". Далее его переводим в "1" для того, чтобы начать двигать. И подаем 16 импульсов на С. С Q снимаем посл. код.
Кстати, посмотрите соответствие разрядов входных чисел. Напр. Y0/Х0 куда придет? А Y15/X15?

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 15:29:25
Den1986
чтоб нижний регистр записал данные по параллельному входу в верхний, на вход С надо подать 8 импульсов, на входе PE верхнего в это время должен быть 0, и при этом на вход С верхнего также должны подаваться импульсы, чтоб входные данные на S1 сразу выводились. через 8 импульсов на вход PE подаем 1, а на вход С продолжаем подавать еще 8 импульсов, чтоб вывести данные с D0..D7.
правильно?

Re: Сумматор-вычитатель

Добавлено: Ср апр 06, 2011 17:00:13
Meteor
Ну почему Вы упорно желаете записывать параллельные данные 8 раз?
Достаточно подать 1 импульс для записи, а затем подать 8 импульсов для сдвига внутри регистра.
Для всего устройства понадобится 17 тактовых импульсов