Задача №4.
Используя один корпус ИС К155ИМ3 и необходимое количество любых логических элементов, построить схему суммирующего и вычитающего узла в дополнительном коде.
Сумматорыпредставляют собой функциональные цифровые устройства, выполняющие сложение чисел. Суммирование осуществляется в двоичном коде. Каждый из многоразрядных сумматоров может быть отнесен в зависимости от способов сложения к параллельному или последовательному типу. В последовательных сумматорах сложение выполняется поразрядно и последовательно во времени, а в сумматорах параллельного типа все разряды суммируются одновременно, как и в сумматоре, указанном в задаче.
И те, и другие сумматоры строятся на основе одноразрядных полных сумматоров. Сложение выполняется в каждом разряде отдельно, но с учетом результата сложения в предыдущем разряде, т.е. с учетом переноса. Таким образом, каждый одноразрядный полный сумматор должен иметь один вход переноса P0, два входа слагаемых A и B, выход суммы S и выход переноса P1.
В цифровой технике операция вычитания с использованием заёма практически не применяется. Одним из способов выполнения операции вычитания с помощью двоичного сумматора является замена знака вычитаемого на противоположный и прибавление его к уменьшаемому A-B=A+(-B)с применением специальных кодов для представления отрицательных чисел. Для представления чисел со знаком используются прямой, обратный и дополнительный коды. Во всех этих кодах предусматривается дополнительный разряд (старший, т.е. крайний слева) для представления знака числа, причем знак «+» кодируется символом 0, а знак «-» – символом 1.
По условию задачи, необходимо преобразовать дополнительный код в прямой. Прямой код как положительного, так и отрицательного числа отличается от кода этого числа без знака только наличием знакового разряда с соответствующим его значением. Дополнительный код отрицательных двоичных чисел формируется по следующему правилу: цифры всех разрядов прямого кода числа, кроме знакового разряда, инвертируются, а к младшему разряду подсуммируется 1. Обратное преобразование из дополнительного кода в прямой код производится по тому же правилу.
Рис 3 Суммирующий и вычитающий узел в дополнительном коде.
Принципиальная схема для преобразования дополнительного кода в прямой представлена в соответствии с рисунком 3.
На входы сумматора А0–А3 поступает отрицательное число, представленное в дополнительном коде. В данном случае входы B0–B3 для преобразования не нужны, поэтому они замкнуты на «землю», т.е. всегда имеют значение нуля. Разряды А0–А2 отрицательного числа инвертируются, а к младшему разряду прибавляется единица (на входе С0) в соответствии с правилом. Старший разряд не инвертируется, т.к. является разрядом, содержащим знак числа, т.е. единицу. В результате на выходах формируется отрицательное число в прямом коде.