На условном обозначении микросхемы по стандарту ANSI/IEC, приведенном на Рис. 2.7, б, функция сравнения указывается аббревиатурой СОМР. Префикс «1» в обозначении выхода указывает на то, что выполнение операции «Р = Q» зависит от входа, обозначенного тем же номером, т. е. G1. Таким образом, вход разрешения G1 управляет выходом IP = Q (и вход, и выход — с активным НИЗКИМ уровнем).
Рис. 2.7. Микросхема 8-битного компаратора 74LS688
Одной из первых функций, реализованных в ИС помимо обычных логических элементов, было сложение. В таблице истинности, показанной на Рис. 2.8, а, приведены значения бита суммы S и флага переноса С1, образующихся при сложении двух битов А и В и бита переноса из предыдущего разряда С0. Например, из 6-й строки таблицы следует, что при сложении двух единиц и 0-го переноса сумма будет равна 0, а перенос — 1 (1 + 1 + 0 = 10). Для реализации этой строки таблицы нам нужно распознать комбинацию битов 110, описываемую уравнением А∙В∙C¯0. Эту операцию выполняет 6-й элемент схемы. Таким образом, мы просто объединяем по ИЛИ все возможные комбинации входных переменных:
S = (A¯∙B¯∙C0) + (A¯∙B∙C¯0) + (A∙B¯∙C¯0) + (A∙B∙C0)
С1 =(A¯∙B∙C0) + (A∙B¯∙C0) + (A∙B∙C¯0) + (A∙B∙C0)
Применяя такую схему для каждого разряда и подключая при этом выход переноса разряда с номером k — 1 к входу переноса разряда с номером k, мы сможем выполнять сложение любых n-битных чисел.
На Рис. 2.8, б показана структурная схема микросхемы 74LS283[32], которая складывает два 4-битных числа за 25 нc. На практике для формирования итогового бита переноса С4 используется дополнительная схема, чтобы избежать задержек, вызванных прохождением битов переноса через все стадии суммирования, от младшего бита к старшему. Несколько (n) микросхем 74LS283 можно каскадировать для реализации функции сложения слов разрядностью 4хn. Таким образом, две микросхемы 74LS283 выполняют 16-битное сложение за 45 нc (учитывая дополнительную задержку распространения переноса между двумя микросхемами).
Рис. 2.8. Сложение
Разумеется, сумматоры можно использовать и для вычитания, если перевести операнды в дополнительный код. Схему сумматора/вычитателя можно реализовать при помощи набора логических элементов Исключающее ИЛИ, выступающие в роли программируемых инверторов (см. стр. 28). Вход выбора режима , управляющий этими инверторами в схеме на Рис. 2.9, подключен также к входу переноса, что вызывает добавление единицы в режиме вычитания.
Рис. 2.9. Реализация программируемого сумматора/вычитателя
Расширяя набор аргументов, мы постепенно придем к арифметико-логическому устройству (АЛУ). АЛУ представляет собой схему, выполняющую определенный набор арифметических и логических операций над входными данными в соответствии со значением на входах выбора режима. Микросхема 74LS382, показанная на Рис. 2.10, выполняет 8 операций над двумя 4-битными числами. Выполняемая операция задается тремя битами выбора режима S0S1S2 (Рис. 2.10, а). Кроме сложения и вычитания, это АЛУ выполняет также операции И, ИЛИ и Исключающее ИЛИ. Микросхема формирует даже признак переполнения дополнительного кода (см. стр. 24).
Рис. 2.10. Микросхема АЛУ 74LS382
Как мы увидим чуть позже, АЛУ является «сердцем» любого компьютера или микропроцессора. Подавая на входы выбора режима некоторую последовательность двоичных значений, можно заставить АЛУ выполнить соответствующую последовательность операций. Эти коды операций хранятся во внешней памяти и последовательно считываются схемами управления.
Обычно последовательность кодов операций, составляющих программу, хранится в какой-либо БИС ПЗУ Обратимся к структуре, показанной на Рис. 2.11. На этом рисунке изображен дешифратор 3 на 8, управляющий матрицей диодов 8x2. Для каждой n-й комбинации сигналов, подаваемых на вход адреса, выбирается п-я строка. Если к этой строке подключен диод, то он открывается и на линии соответствующего столбца появляется НИЗКИЙ уровень. Соответственно, инвертирующий буфер с тремя состояниями формирует ВЫСОКИЙ уровень для каждого подключенного диода и НИЗКИЙ уровень для разомкнутой цепи. Таким образом, для каждого входного кода совокупность подключенных диодов определяет выходной код. Для наглядности матрица запрограммирована на реализацию полного 1-битного сумматора, изображенного на Рис. 2.8, а, однако может быть задана и любая другая функция трех переменных.