Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика...

 
Опции темы
Непрочитано 18.10.2015, 21:33  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Собрать АЛУ

Сообщение от NewWriter Посмотреть сообщение
Нужно учитывать инверсный результат значения переноса после вычитания!
Общая ошибка на приведенных схемах - неправильное использование переноса.
Во-первых, не надо его инвертировать. Во-вторых, примите во внимание, что он означает. По входу, для каждого отдельного сумматора, он означает единицу младшего разряда. То есть, если на вход переноса подать единицу, то на выходе результат тоже увеличится на единицу.
А вот по выходу - это уже совсем другое. Единица на выходе сумматора весит много, это сумма всех разрядов сумматора плюс единица. То есть, для наших 4-разрядных сумматоров перенос будет соответствовать пятому разряду. А на этих схемах перенос попадает снова на самый младший разряд следующего сумматора, что приводит к абсурдному результату, если в первом сумматоре сумма слагаемых приведет к переполнению.
То есть, фыход каждого сумматора надо рассматривать не как 4-разрядный, а как 5-разрядный, самым старшим разрядом которого является выход переноса.

Ладно, дальше без меня, мне некогда.

П.С. Добавлю все же немного.
1. Приведенное на этих схемах подключение переноса будет правильным для многоразрядных сумматоров, набранных из множества 4-разрядных. Тогда перенос из каждого младшего будет иметь правильный вес, так как на входы более старшего сумматора будут приходить и соответствующие по весу разряды слагаемых.

2. Смену знака слагаемого В надо делать отдельным сумматором, на входы которого поступает инверсное значение В, а на вход переноса единица. И уже с его выхода надо брать готовое значение -В, и подавать на сумматор в данной схеме.

3. Для примера подайте на первый сумматор числа 7 и 11. Должно получиться 18. то есть, на выходе сумматора будет 2, плюс единица на выходе переноса. И теперь эта смесь в приведенной схеме поступает на следующий сумматор, и в сумме даст 3, что абсурдно.
Реклама:

Последний раз редактировалось Alex9797; 18.10.2015 в 21:46.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
Andrey_AHAHAC (18.10.2015)
Непрочитано 18.10.2015, 21:59  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Собрать АЛУ

Подсказка-напоминание-совет:
Для операций сложения/вычитания/деления 4-разрядных чисел надо использовать 5-разрядные сумматоры.
Для операций умножения 4-разрядных чисел надо 8-разрядные сумматоры.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
Andrey_AHAHAC (18.10.2015)
Непрочитано 18.10.2015, 22:10  
avp94
Почётный гражданин KAZUS.RU
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
avp94 на пути к лучшему
По умолчанию Re: Собрать АЛУ

Сообщение от Andrey_AHAHAC Посмотреть сообщение
Где ошибка в схеме?(
Сообщение от Alex9797 Посмотреть сообщение
Общая ошибка на приведенных схемах - неправильное использование переноса.
Совершенно верно, ибо
Сообщение от avp94 Посмотреть сообщение
-выходы переносов соединить со входами переносов
бред - так расширяют разрядность. Виноват.
А по сему, как наиболее простое решение: сначала все складываем а затем вычитаем. Вход переносов на ноль. Кроме получения "дополнения до двух" .
Первые два знака выхода переноса - ошибка переполнения. Последний - знак числа 1 - положительное.
Следует иметь ввиду, что при такой расстановке слагаемых возможно переполнение, которое можно избежать, выполнив вычитание не на последнем месте. Но придется ввести логику работы с числами со знаком.
Если это курсовой, то возможно так и придется .
P.S. Поспешишь - людей насмешишь .
P.P.S. Это я про себя.

Последний раз редактировалось avp94; 18.10.2015 в 22:28.
avp94 вне форума  
Сказали "Спасибо" avp94
Andrey_AHAHAC (18.10.2015)
Непрочитано 18.10.2015, 22:42  
Andrey_AHAHAC
Временная регистрация
 
Аватар для Andrey_AHAHAC
 
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrey_AHAHAC на пути к лучшему
По умолчанию Re: Собрать АЛУ

Ща исправим....

Последний раз редактировалось Andrey_AHAHAC; 18.10.2015 в 22:47.
Andrey_AHAHAC вне форума  
Непрочитано 18.10.2015, 22:54  
Andrey_AHAHAC
Временная регистрация
 
Аватар для Andrey_AHAHAC
 
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrey_AHAHAC на пути к лучшему
По умолчанию Re: Собрать АЛУ

Сообщение от Alex9797 Посмотреть сообщение
Для операций сложения/вычитания/деления 4-разрядных чисел надо использовать 5-разрядные сумматоры.
В Multisim не видел таких(
Сообщение от avp94 Посмотреть сообщение
Если это курсовой, то возможно так и придется
Слава Богу это не курсовая)
Andrey_AHAHAC вне форума  
Непрочитано 18.10.2015, 23:03  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Собрать АЛУ

Сообщение от Andrey_AHAHAC Посмотреть сообщение
В Multisim не видел таких(
Можно нарастить сумматоры до любой разрядности из тех, что есть, путем каскадирования. Но это получится довольно громоздко. Тем более, что в мультисиме будет лишь отладка идеи. Поэтому, как вариант, можно отработать схему на 4-разрядных, уменьшив длину операндов до трех разрядов. А потом уже, для препода, нарисовать окончательную схему для 4-разрядных, по образу и подобию мультисимовской.
Alex9797 вне форума  
Непрочитано 19.10.2015, 00:46  
Andrey_AHAHAC
Временная регистрация
 
Аватар для Andrey_AHAHAC
 
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrey_AHAHAC на пути к лучшему
Вопрос Re: Собрать АЛУ

Сделал вот так, проверял вроде все работало.
Но потом ввел:
С = 0
D = 2
В = 6
Ответ вышел = 12
А должен: 0+2-6+0 = -4

Потом еще ввел
С = 8
D = 0
B = 14
Ответ вышел = 2 и доп. код 1
8+0-14+8=2

Разве в схеме все еще есть ошибки?
Или со схемой все нормально и нужно ограничится 3-мя разрядами?
Миниатюры:
Нажмите на изображение для увеличения
Название: 444.png
Просмотров: 197
Размер:	39.4 Кб
ID:	84031  
Andrey_AHAHAC вне форума  
Непрочитано 19.10.2015, 00:50  
Andrey_AHAHAC
Временная регистрация
 
Аватар для Andrey_AHAHAC
 
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andrey_AHAHAC на пути к лучшему
По умолчанию Re: Собрать АЛУ

Вот тоже если С = 0 и Д = 0, В = 6
Ответ выдает: 10 ))))
п.с. меня уже бесит(
Andrey_AHAHAC вне форума  
Непрочитано 19.10.2015, 00:58  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Собрать АЛУ

Сообщение от Andrey_AHAHAC Посмотреть сообщение
Ответ вышел = 12
А должен: 0+2-6+0 = -4
Если рассматривать результат, как целое число со знаком, то результат верный - это и есть -4. Инвертируйте его, и прибавьте единицу, и убедитесь.
Сообщение от Andrey_AHAHAC Посмотреть сообщение
Вот тоже если С = 0 и Д = 0, В = 6
Ответ выдает: 10 ))))
здесь то же самое

Сообщение от Andrey_AHAHAC Посмотреть сообщение
Или со схемой все нормально и нужно ограничится 3-мя разрядами?
повторюсь:
Сообщение от Alex9797 Посмотреть сообщение
как вариант, можно отработать схему на 4-разрядных, уменьшив длину операндов до трех разрядов.
потому что при возникновении переполнения перенос некуда будет девать, и при следующих операциях с таким урезанным результатом будут ляпы.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
Andrey_AHAHAC (19.10.2015)
Непрочитано 19.10.2015, 01:03  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Собрать АЛУ

А по поводу этого варианта схемы, то вроде все правильно, для трехразрядных операндов. То есть, надо помнить, что в данном случае и входные операнды, и результат - это целые числа со знаком. Со всеми вытекающими следствиями
Alex9797 вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо собрать указку на инфракрасном диодном лазере. alladinn70 Электроника - это просто 34 10.01.2013 13:33
Помогите собрать схему Aртур Proteus, KiCAD и другие ECAD 0 06.04.2012 22:30
Помогите собрать катушку kobraxxx Делимся опытом 1 26.12.2011 09:58
Я хочу в домашних условияс собрать источник электр. поля. recoil Источники питания и свет 4 16.03.2007 22:30


Часовой пояс GMT +4, время: 08:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot