TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
18.10.2015, 18:20
|
|
Временная регистрация
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Собрать АЛУ
Сообщение от NewWriter
|
да да, дополнения до двух. Не до трех, а только до двух.
Это дополнительный код. Он для представления отрицательных чисел придуман. И позволяет легко заменять операцию выичтания операцией сложения.
+1 в доп коде = 00000001
0 в доп коде = 00000000
-1 в доп коде = 11111111, а не 11111110, как в обратном (инверсном) или 10000001 в прямом.
Доп код получается из обратного простым прибавлением 1. То есть, чтобы сделать отрицательное число, нужно проинвертировать код числа и +1 к нему.
То есть, чтобы 00000011 (3) - 00000001 (1), можно сделать 00000011 (3) + 11111111 (-1), и будет = 0000010 (2)
|
Просто я не знал что дополнительный код называют дополнение до двух.
|
|
|
|
18.10.2015, 18:28
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Собрать АЛУ
Вот так выглядит вычитание 3 - 1, замененное сложением:
число А в прямом коде, число В инвертированое, в обратном коде, а на входе переноса сумматора добавляется 1, так простым действием получается дополнительный код и простое вычитание
Сообщение от Andrey_AHAHAC
|
не знал что дополнительный код называют...
|
Первое действие - инвертирование, второе действие - +1, вот и получается, два действия, два дополнения как бы. Просто как бы вот перевод по смыслу на русский не совсем отражает суть. Она не в том, что "до двух" в смысле числа "два", а в том, что "дважды", в смысле два раза.
Последний раз редактировалось NewWriter; 18.10.2015 в 18:47.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
18.10.2015, 19:25
|
|
Временная регистрация
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Собрать АЛУ
Итак вот вроде бы сделал как вы писали.
В итоге проверил такими числами:
C = 2
D = 8
B = 1
Вышло: C+D-B+C=1100 то есть 12
А должно было выйти: 2 + 8 - 1 + 2 = 11
|
|
|
|
18.10.2015, 19:25
|
|
Временная регистрация
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Собрать АЛУ
Где ошибка в схеме?(
|
|
|
|
18.10.2015, 19:32
|
|
Временная регистрация
Регистрация: 18.10.2015
Сообщений: 60
Сказал спасибо: 63
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Собрать АЛУ
Сейчас разные числа подбирал, ответ постоянно на 1 больше чем должен, иногда на 1 меньше чем должен.
Когда В больше чем С+D, ответ совпадает с правильным, но появляется переполнение.
|
|
|
|
18.10.2015, 19:39
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Собрать АЛУ
Сложение по модулю 2, логическая операция xor (исключающее или) - именно она стоит в основе сложения в сумматоре. Побитное xor с переносом в следующий разряд.
При вычитании знак переноса называется знаком заёма и имеет инверсное значение. Я как раз и показал на скрине, что при вычитании в сумматоре знак переноса =1, но его значение инверсное. И это надо учитывать.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
18.10.2015, 19:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Собрать АЛУ
Сообщение от Andrey_AHAHAC
|
Где ошибка в схеме?(
|
На первом сумматоре висящий в воздухе вход переноса надо на землю
|
|
|
Сказали "Спасибо" Alex9797
|
|
|
18.10.2015, 20:05
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Собрать АЛУ
Нужно учитывать инверсный результат значения переноса после вычитания!
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
18.10.2015, 20:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
|
Re: Собрать АЛУ
Для размышления:
|
|
|
|
18.10.2015, 21:07
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Собрать АЛУ
Просто показал цепь вычислений полностью, по каждому звену
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:55.
|
|