Лекция 12. Арифметико-логические узлы. Микропроцессоры.
Узел сравнения (цифровой компаратор) предназначен для сравнения двух многоразрядных двоичных чисел А и В. Такая задача часто возникает в автоматических устройствах. Например, требуется установить, когда переменная величина А, увеличивающаяся (или уменьшающаяся) в каждом такте на 1, станет равной наперед заданному числу В.
Таким образом, цифровой компаратор (рис. 4.17, а), состоящий из п элементов, выполняющих операцию сложения по модулю 2, и одного n-входового элемента И (по инверсным сигналам), будет иметь выходной уровень Q =1 при А = В и Q = 0 при А ¹ В. Число п должно равняться максимально возможной разрядности чисел А и В.
В интегральном исполнении имеются операционные узлы, позволяющие помимо операции А=В выполнять и другие операции сравнения А < В и А > В. Такой микросхемой является, например, К561ИП2, производящая сравнение двух четырехразрядных чисел. Для увеличения разрядности сравниваемых чисел можно включать две и более ИМС, соединяя выходы А < В, А = В, А > В микросхемы младших разрядов с соответствующими входами микросхемы старших разрядов.
Арифметическо-логический узел. Любое устройство обработки цифровой информации содержит операционный блок, состоящий из последовательностной и комбинационной частей. Комбинационная часть выполняет арифметические и логические операции над двумя многоразрядными словами и поэтому состоит из сумматора, узла сравнения и других схем, производящих различные логические операции. Однако на практике целесообразнее использовать специальный арифметическо-логический узел, который мог бы осуществлять все необходимые операции и был бы выполнен в виде одной микросхемы. Такие стандартные узлы арифметическо-логических устройств (АЛУ), входящие в состав различных серий (например, К155ИПЗ, К561ИПЗ), имеют условно-графическое обозначение, показанное на рисунке.
Эти ИМС предназначены для действий с двумя четырехразрядными двоичными словами А и В. Результат выполнения логических преобразований и арифметических действий поступает в виде четырехразрядного слова на выходы F. Кроме того, имеются вход Р0 и выход Р сигналов переноса, отдельный выход признака равенства данных А=В и выходы переменных G0 и G1, используемые для наращивания разрядности АЛУ при объединении нескольких микросхем. Для облегчения наращивания разрядности оба сигнала переноса (Р0 и Р) инверсны по отношению к входным сигналам A и В, т.е., когда А и В задаются в положительной логике, сигналу переноса отвечает низкий уровень напряжения.
В зависимости от набора управляющих сигналов S микросхема выполняет одну из 16 логических (при S4 = l) при арифметическо-логических операций (при S4 = 0). При этом логические операции выполняются поразрядно над каждой парой одноименных разрядов входных слов (входы и выходы переноса отключаются), а арифметические — над четырехразрядными словами с учетом сигнала переноса.
При S4 = 0 АЛУ настраивается на выполнение логическо-арифметических операций. Порядок действий при этом такой, что сначала производятся необходимые логические преобразования над входными словами (при этом переносы не учитываются), а затем — арифметические действия сложения и вычитания с учетом переноса .
Операция сложения выполняется АЛУ, настроенным управляющими сигналами S4, ... S0, на работу в качестве сумматора. Для того чтобы не усложнять конструкцию АЛУ, операцию вычитания (для которой был бы нужен специальный вычитатель) заменяют сложением (выполняемым сумматором) уменьшаемого с вычитаемым, представленным в специальном коде. Рассмотрим это действие подробнее.
Вычитание двоичных чисел, записанных в прямом коде, подобно вычитанию в десятичной системе:
Для замены операции вычитания операцией сложения приходится представлять вычитаемое В в дополнительном коде. Дополнительный код образуется из обратного (инверсного) кода добавлением к нему единицы.
Таким образом, в АЛУ при выполнении операции вычитания входной операнд В преобразуется в дополнительный код, а вычитание числа 10000 производится без помощи специальных схем, только с использованием сигнала переноса в старший (пятый) разряд. Правда, при этом результат арифметических действий на выходе АЛУ будет также представлен в обратном коде.