Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 56
Текст из файла (страница 56)
Однако для того, чтобы воспользоваться этими средствами, необходимо понимать исходные принципы: только тогда вы сможете разобраться в том, что неправильно, если результаты окажутся неожиланными или нежелательными. Овладев принципами, нетрудно понять, как можно представить и проанализировать комбинационные функции с помощью языков описания схем. Последние два параграфа этой главы знакомят с основными чертами языков АВЕЬ и ЧНОЬ, которыми мы будем пользоваться для проектирования всевозможных логических схем повсюду в этой книге. Прежде чем заняться комбинационными логическими схемами, необходимо познакомиться с алгеброй переключений, основным математическим аппаратом анализа и синтеза логических схем любого типа.
4.1. Алгебра переключений Формальные методы анализа цифровых схем уходят своими корнями в Р в абозу английского математика Джорджа Буля. В 1854 году он ввел двузначную ал алгеб. раическую систему, называемую теперь булевой алгеброи (Воо!еал а(хе ! «Ь'а) в качестве «средства для выражения... фундаментальных законов умозаклю ючения соф, ло на символическом языке Исчислений». С помощью этой системы философ гнк илн обитатель планеты Вулкан могут высказывать истинные или ложны У ые суждения, составлять из них новые высказывания и определять истинность ил и лож- 4.1. Алгебра переключений 239 ь этих высказываний.
Пусть, например, мы согласны с тем, что «Тот, кто не ность чил данный материал, либо тупица, либо не энтузиаст» и «Конструктор ком п ьвыуч югер ерной техники заведомо не тупица»; тогда мы в состоянии отвечать на вопросы типа: «Бели вы фанат конструирования компьютеров, означает ли это, что вы уже язу учили этот материал?» Значительно позднее Буля, в 1938 году Клод Э.
Шеннон показал, как присное бить булеву алгебру для описания поведения и анализа схем, составленных из которые в то время были самыми распространенными логическими эле„нтами. В алгебре переключений (лил(гЫп8 а(8ебга) Шеннона состояние конкга реле — замкнутое или разомкнутое — представляется переменной Х, которая „,вкет принимать одно из двух значений: 0 или 1. В современной цифровой тех,п<ке эти два значения соответствуют широкому спектру физических состояний: высокое или низкое напряжение, включенный нлн выключенный свет, заряженный нли разряженный конденсатор, разрушенная нли нетронутая плавкая перемычка и т.
д., как это было подробно описано в табл. 3.1. Теперь мы перейдем непосредственно к алгебре переключений, имея в виду как основные принципы, так и все то, что мы уже знаем о поведении логических элементов (вентилей и инверторов). Дальнейшее историческое н математическое обсуждение этой темы можно найти в литературе, 4.
1 . 1 . Аксио ля!»! В алгебре переключений для представления значения логического сигнала используется символическая переменная, например Х. В зависимости от технологии логический сигнал может иметь одно из двух значений: низкий или высокий уровень, «включено» или «выключено» и т. д. Мы говорим, что переменная Х равна 0 лля одного из этих значений и 1 -для другого. Например, для КМОП- и ТТЛ-схем, рассмотренных в главе 3, прн положительной логике (рал(((гг-!ай(с сапггпИап) значение «0» связывают с низким Уровнем напряжения, а значение «1» -с высоким уровнем. При атрииательнай логике (п«8а(ьг-(ай<с гап»епбап) соотношение между значениями логической переменной и напряжениями противоположно: 0 — это высокий уровень, ! — низ"нй Однако выбор положительной или отрицательной логики не влияет нато, как мь' алгсбраически описываем поведение схемы; от этого выбора зависят только детали умозрительного перехода от физики к алгебре, как мы объясним это поздне двое при обсуждении вопроса о <<двойственности».
Пока же мы можем игнори- Р'жать физическую реализацию логических схем н полагать, что они непосрелствен твенно оперируют логическими символами 0 и 1. дксиамы (ахнэтл) илн пастуматы (раз(и(а(гл) математической системы— зто на '<абор основных утверждений, про которые мы предполагаем, что онн справедлив ля ивы, и из которых можно вывести все другие свойства системы.
Первые две аксиом номы алгебры переключений устанавливают «цифровую абстракцию», формально ннй во утвержлая, что переменная Х может принимать только одно из двух значе- 1) Х = О, если Х ~ 1; (А Г) Х = 1, если Х е О. 240 Глава 4. Принципы проектирования комбинационньп логичееких <»<е, Обратите внимание, что мы принимаем эти аксиомы в паре, различие мех„ аксиомами А1 н А1' состоит лишь в перемене местами символов О и 1 Этны свойством обладают все аксиомы алгебры переключений, и это обстоятельст служит основанием принципа «двойственностн», о котором пойдет речь поздно В разделе 3.3 3 мы рассмотрели конструкцию инвертора-логической схемы, у которой уровень сигнала на выходе противоположен [или является дана»«ени „ (сатр1етет) по отношению к) уровню сигнала на входе. Для обозначения инвер сии мы используем символ «штрих» [рпте, (')).
Другими словами, в случае, когл переменная Х означает сигнал на входе инвертора, Х' является значением сигнал~ на его выходе. Формально эти обозначения сводятся ко второй паре аксиом; (А2) ЕслиХ=О, то Х'=1; (А2') ЕслиХ=1, то Х'=О. Как показано на рис. 4.1, сигнал на выходе инвертора с входным сигналом Х можно обозначить как угодно, скажем, т'. Однако по правилам алгебры мы пишем; У = Х', чтобы выразить тот факт что «сигнал У всегда имеет значение, противоположное сигналу Х».
Штрих () служит алгебраическим оператором (а(пеЬга(с орега<ог), а Х' является выражением(ехргеи(ап), которое можно прочесть так: <<Х штрих» нлн «НЕ Х» (опера<рт НЕ, ИОТ ар«гадал). Употребление этих терминов аналогично тому, чему учат в языках программирования, где говорят: если Т вЂ” целая переменная, то— ,т — это выражение, значение которого равно 0 — 3. Хотя это может казаться мелочью, во все же необходимо четко различать имена сигналов (Х, т), выражения (Х ) и соотношения (У = Х ); это очень важно при изучении стандартов на документацию и программных средств логического <язов«тира наина.
В нашей книге мы подчеркиваем это различие: на логических схемах имена сигналов набраны черным шрифтом, а выражения — цветным. Рис. 4.1. Названия сигналов и алгебраическое обозначение инверсии У= Х' В разделе 3.3.6 было показано, как строится 2-»ходовая КМОН-схема И, то есть схема, у которой сигнал на выходе равен 1 только в том случае, когда оба ее входных сигнала равны 1. Функцию, выполняемую 2-входовой схемой И, иногда называют логическим умножением (1ап(са( ти!йр(<са((ап) и изображают алгебраическим знакам умножения — точкой [ти1йрйсайоп <(ай ( )). другими словами, значение сигнала на выходе схемы И с входными сигналами Х и гравно Х у как показано на рис.
4.2(а). Некоторые авторы, особенно математики и логики, обозначают логическое умножение знаком коньюнк<(ии (и е<(ее): (Х л'т). Мы следуем обычной инженерной практике и употребляем точку: (Х т). Когда дело дойдет до языков описания схем, нам встретится несколько других символов для обозначения тех же самых вещей. 2=Х У Х Х у 2=Х+У (Ь) (а) Рис.
4.2. Названия сигналов н алгебраические обозначения: (а) схема И; (Ь) схема ИЛИ 4. 1. Алгебра переключений 241 ЗАМЕЧАНИЕ ОБ ОБОЗНАЧЕНИЯХ Некоторые авторы до пол нение к Х обозначают также Х;Х или -Х. Надчеркивание, по-видимому, является самым распространенным и лучше всего выглядит в печатном тексте. Однако мы используем «штрих», чтобы для вас стало привычным записывать логические выражения в виде одной текстовой строки, не выходя за ее границы; это приучит вас также к тому, чтобы заключать в скобки сложные инвертируемые подвыражения: именно это вы должны будете делать, используя языки описания схем и другие средства.
В разделе 3.3.6 мы рассмотрели также структуру 2-входовой КМОП-схемы ИЛИ, то есть схемы, у которой выходной равен 1, если хотя бы на одном из ее входов имеется 1. Функцию, выполняемую 2-входовой схемой ИЛИ, иногда нвзываютлогическии сложением (!ойкау аггеугуои) и изображают алгебраически знаком «плюс» (+). Если на входах схемы ИЛИ действуют сигналы Х н 'т', то ее выходной сигнал равен Х + т, как показано на рис. 4.2(Ь). Некоторые авторы обозначают логическое сложение знаком дизъюнкции (»ее): (Х м У), но мы следуем обычной инженерной практике и пользуемся знаком «плюс»: (Х+ У).
Напомним еще раз, что в языках описания схем могут применяться и другие символы. Принято считать, что в логических выражениях, содержащих как умножение, так и сложение, операции умножения имеют ириорит«т (р««се«еле«) по отношению к операциям сложения точно так же, как это имеет место в целочисленных выражениях в обычных языках программирования.