Text
                    УДК 621.377.6 (075.8)
ББК 32.84я73
Н308
Рецензенты:
зам. директора ФГУП НИКФИ, зав. лабораторией электроакустики НИКФИ,
канд. техн, наук К. В. Неверовский',
зав. лабораторией цифровых методов обработки сигналов
НИКФИ Ю. Н. Барышненков',
доцент кафедры конструирования и производства
РЭС МГИРЭА, канд. техн, наук А. Н. Богаченков
Нарышкин Л.К.
Н308 Цифровые устройства и микропроцессоры: Учеб, пособие
для студ. высш. учеб, заведений / Александр Кириллович На-
рышкин. — М.: Издательский центр «Академия», 2006. — 320 с.
ISBN 5-7695-1618-6
Рассматриваются основы алгебры логики, теории переключательных
функций, теории асинхронных потенциальных и синхронных автоматов,
синтез цифровых узлов (триггеров, счетчиков, сдвигающих регистров,
мультиплексоров, демультиплексоров, сумматоров), применение 'интег-
ральных схем для проектирования цифровых устройств, а также архитек-
тура, система команд, шинные приемопередатчики, проектирование
микроконтроллеров на микропроцессорах, разработка программного обес-
печения. Наряду с известными приводятся разработанные автором в пос-
ледние годы новые методики анализа и синтеза цифровых устройств.
Для студентов вузов радиотехнических специальностей. Может быть по-
лезно студентам техникумов радиотехнического профиля.
УДК 621.377.6(075.8)
ББК 32.84я73
Оригинал-макет данного издания является собственностью
Издательского центра «Академия», и его воспроизведение любым способом
без согласия правообладателя запрещается
© Нарышкин А. К., 2006
ISBN 5-7695-1618-6	© Издательский центр «Ака темня». 2006

СПИСОК СОКРАЩЕНИЙ А — аккумулятор АЛУ — арифметико-логическое устройство АЦП — аналого-цифровой преобразователь БИС — большая интегральная схема БМК — базовый матричный кристалл БР — буферный регистр БРА — буферный регистр адреса БРД — буферный регистр данных ГПМС — глобальная программируемая матрица соединений ГТИ — генератор тактовых импульсов ДБЯ — дизъюнктивная бистабильная ячейка ДНФ — дизъюнктивная нормальная форма дшк — дешифратор команд ЗУ — запоминающее устройство ЗЭ — запоминающий элемент имс — интегральная микросхема ИС — интегральная схема КБЯ — конъюнктивная бистабильная ячейка КМОП — комплементарный МОП-элемент кои — код операции индикатора КЦУ — комбинационное цифровое устройство ЛБ — логический блок липз — лавинно-инжекционный с плавающим затвором лэ — логический элемент МА — магистраль адреса МБА — младший байт адреса МБР — многорежимный буферный регистр МД — магистраль данных мк — микроконтроллер МЛБ — матричный логический блок мноп — металл —нитрид кремния—оксид кремния—полупроводник МОП — металл — оксид—полупроводник МП — микропроцессор мпк — микропроцессорный комплект МУ — магистраль управления ндк — натуральный двоичный код НМД — контроллер на жестком магнитном диске ОЗУ — оперативное запоминающее устройство 3
ОУ — операционный усилитель ПВМ — программируемая вентильная матрица ПЗУ — постоянное запоминающее устройство ПКМБ — программируемый коммутируемый матричный блок ПЛИС — программируемая логическая интегральная схема ЦЛМ — программируемая логическая матрица ПМЛ — программируемая матричная логика, программируемая макро- логика ППЗУ — программируемое постоянное запоминающее устройство ПЦУ — последовательностное цифровое устройство РА — регистр адреса РК — регистр команд РМП — реконфигурируемый модуль памяти РОН — регистр общего назначения РП — регистр признаков РПЗУ — репрограммируемое постоянное запоминающее устройство САПР — система автоматизированного проектирования СБА — старший байт адреса СДНФ — совершенная дизъюнктивная нормальная форма СИС — средняя интегральная схема СКНФ — совершенная конъюнктивная нормальная форма СУП — секция ускоренного переноса ТП — таблица перекодировки ТТЛ — транзисторно-транзисторная логика ТТЛШ — ТТЛ с диодами Шоттки УВВ — устройство ввода-вывода УВХ — устройство выборки и хранения УГО — условное графическое обозначение УУ — устройство управления ФСУ — формирователь сигналов управления ЦАП — цифроаналоговый преобразователь ЦВМ — цифровая вычислительная машина ЦОС — цифровая обработка сигнала ЦПЭ — центральный процессорный элемент ЦУ — цифровое устройство ШД — шинный драйвер ШФ — шинный формирователь ЭПЛ — логика на эмиттерных повторителях ЭППЗУ — электрически программируемое постоянное запоминающее устройство ЭСЛ — эмиттерно-связанная логика ЭФЛ — эмиттерно-функциональная логика
СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ — — NOT, НЕ — операция логического отрицания (инверсия) fc, •, а — AND, И — операция логического умножения (конъюнкция) © — операция суммирования по модулю 2, неравнозначность --- равнозначность А — операция запрета X — стрелка Пирса Z) — импликация I — штрих Шеффера *, !6 — неопределенность, факультатив, запрещенное состояние / — логическое деление \ — логическое вычитание = = — компаратор =1 — элемент неравнозначности, сумматор по модулю 2 1, v — OR, ИЛИ — операция логического сложения (дизъюнкция) А — address — адрес; accumulator — аккумулятор АВ — address bus — адресная шина А С — analog comparator — аналоговый компаратор A/D — analog-digital — аналого-цифровой ALU — arithmetic and logic unit — арифметико-логическое устройство В — binary — бинарный; двоичный; bit — бит, двоичный разряд BUBR — bidirectional unibus buffer register — двунаправленный буфер- ный регистр общей шины С, CLK — clock — сигнал синхронизации CARG — consecutive approximation register — регистр последовательных приближений c.d. — count down — считать в обратном направлении "\см. — count up — считать в прямом направлении ' CD — coder — шифратор CLR — clear — очищать CRG — carry of group — сигнал группового переноса CRI — carry input — входной сигнал переноса CRO — carry out put — выходной сигнал переноса CRP — carry prompting — разрешение группового переноса CS — chip select — выбор микросхемы СТ — counter — счетчик CY — carry — перенос; сигнал переноса D — data — информационные данные; delay — задержка, запазды- вание; decimal — десятичный 5
DA — differential amplifier — дифференциальный усилитель D/А — digital-analog — цифроаналоговый DB — data bus — шина данных, информационная шина DC — decoder — дешифратор DD — digital device — цифровой элемент DM — demultiplexer — демультиплексор DVD — dividend — делимое DVS — divisor — делитель E, EN — enable — разрешающий сигнал, разрешение; разрешающий вход F — function — функция FR — flag register — флаговый регистр; регистр признака G — carry generator — генератор сигнала переноса; generator — гене- ратор GRD — ground — общая шина, земля GS — gate signal — строб-сигнал стробирующий сигнал Н — high — высокий; hexadecimal — шестнадцатеричный НА — half-adder — полусумматор HS — hat, -summator — полусумматор I — input — вход IB — input bus — входная шина INT — interrupt — прерывание I/OR — input/output read — считывание из устройства ввода/вывода I/OW — input/output write — запись в устройство ввода/вывода L — low — низки! t / — line — строка MBR — multiregime buffer register — многорежимный буферный регистр MD — mode — режим работы MEMR — memory read — считывание из памяти MEMW — memory write — запись в память MPL — multiplier— множитель; сомножитель; умножитель MX — multiplexer — мультиплексор; коммутатор О — output — выход; вывод; выходное устройство; устройство вы- вода OB — output bus — выходная шина OF — overflow — переполнение; признак переполнения Р —propagation — распространение; product— произведение двух чи- сел PAL — programmable array logic — программируемая матричная логика PC — program counter — программный счетчик, счетчик клманд; parity of carry — контроль четности переноса PCD — priority-oriented coder — приоритетный шифратор PLA — programmable logic array — программируемая логическая матрица PLD — programmable logic device — программируемое логическое уст- ройство PR — parity of result — контроль четности переноса PROM — programmable read-only memory — программируемая постоян- ная память, программируемое постоянное ЗУ Q — quotien — частное; отношение 6
R — reset — восстанавление, возврат в исходное положение; уста- новка в «О»; reverse — реверс, обратный ход; receiver — при- емник RG — register — регистр 5 — set — устанавливать; sign — знак; sum — сумма; switch — пере- ключатель SIB — scale index byte — байт масштабируемого индекса SM — summator — сумматор, суммирующее устройство SP — stack pointer — указатель стека STB — strobe — строб-импульс, стробирующий импульс Т — trigger — триггер; пусковая схема; transmitter — передатчик; topple — опрокидываться; time — время V — veto — запрет W — write — запись Z — zero — нуль ZD — zero definition — задание нуля; zero drift — шумоподавитель
ПРЕДИСЛОВИЕ Учебное пособие является обобщением многолетнего научно- методического и практического опыта автора. Помимо известных методик автор использует разработанные им новые методики анализа и синтеза цифровых устройств. В каче- стве примеров приводятся функции, имеющие практическое зна- чение. В первом разделе предлагаемого учебного пособия приведены все основные положения современной алгебры логики. В первой главе приведены основные обозначения и постулаты бинарной (аристотелевой) алгебры логики. Во второй главе рассмотрены основные логические функции и их свойства. В третьей главе обсуждаются алгоритмы программ, позволяю- щих минимизировать логические функции с помощью компью- терной техники. В четвертой главе представлено применение арифметических и алгебраических диаграмм. В пятой главе исследованы все функции двух переменных, их свойства и взаимосвязь. Второй раздел посвящен комбинационным цифровым устрой- ствам, которые отличаются от последовательностных тем, что у них нет памяти по предыдущему состоянию. Комбинационные циф- ровые устройства (КЦУ) реализуют заданные математические и логические операции над действующими в данный момент вре- мени комбинациями входных информационных сигналов в соот- ветствии с поданными управляющими сигналами и не зависят от предыдущих сигналов. Методы синтеза цифровых устройств осно- ваны на использовании положений алгебры логики, изложенных в первом разделе пособия. В шестой главе рассматриваются основные логические элемен- ты, с помощью которых синтезируются КЦУ. Здесь приводятся только самые общие параметры логических элементов без их схем- ных подробностей. Также в этой главе демонстрируется возмож- ность взаимной замены логических элементов, приводятся при- меры функционально полных логических элементов, упоминают- ся элементы И—ИЛИ и И—ИЛИ—НЕ. 8
Седьмая глава посвящена изучению методики анализа и син- теза комбинационных цифровых устройств на основе преобразо- вателя кода Грея в натуральный двоичный код. Здесь рассмотрены меры, позволяющие устранять эффект гонок; синтез формирова- теля и приемного устройства кода с проверкой на четность, по- зволяющего обнаруживать одиночные ошибки, а также шифрато- ра и дешифратора кода Хэмминга, исправляющего одиночные ошибки. Шифраторы и дешифраторы в узком значении этих понятий, т. е. как преобразователи кода «1 из т» в натуральный двоичный и обратно, изучаются в восьмой главе, где также рассматриваются назначение и применение приоритетных шифраторов. Сведения о мультиплексорах и демультиплексорах и их приме- нении изложены в девятой главе. В десятой главе рассмотрены одно- и многоразрядные арифме- тические и алгебраические сумматоры, представленные в форма- те с фиксированной и плавающей запятыми, приведены краткие сведения об арифметических умножителях. В одиннадцатой главе синтезируются одно- и многоразрядные компараторы, показаны способы наращивания разрядности и приведены примеры их использования. Двенадцатая глава посвящена возможности реализации ком- бинационных цифровых устройств на основе программируемых интегральных схем. Особое внимание здесь уделено перспектив- ным в настоящее время программируемым логическим интеграль- ным схемам (ПЛИС). В третьем разделе после общих сведений, приведенных в гл. 13, рассмотрены во всем их разнообразии наиболее важные последова- тельностные цифровые устройства, такие как триггеры (гл. 14), счетчики (гл. 15) и регистры (гл. 16). В четвертом разделе описаны микропроцессоры: их классифи- кация и архитектура (гл. 17), системы команд (гл. 18), шинные приемопередатчики (гл. 19), структура и основные элементы ариф- метико-логического устройства (гл. 20), даны сведения о разра- ботке программного обеспечения (гл. 21), микроконтроллерах (гл. 22) и некоторых функциональных узлах микропроцессорных систем (гл. 23). В конце каждой главы предлагаются контрольные вопросы и упражнения.
ВВЕДЕНИЕ В настоящее время практически во всех радиотехнических уст- ройствах и системах используется цифровая техника. Это связано с целым рядом преимуществ цифровых сигналов перед аналого- выми и, в первую очередь, с точностью, помехоустойчивостью и возможностью хранения информации. Уточним некоторые основ- ные определения и понятия, используя энциклопедический [6] и толковые словари [10, 32]. Цифры (от позднелатинского cifra} — знаки для обозначения чисел. Первые цифры появились у египтян и вавилонян. У ряда народов (древних греков, финикиян, евреев, сирийцев) цифра- ми служили буквы алфавита, что сохранилось частично в шест- надцатеричной системе счисления; аналогичная система до XVI в. применялась и в России. В средние века в Европе пользовались системой римских цифр (I, II, III, IV, V, VI и т.д.), основанной на употреблении особых знаков для десятичных разрядов 1=1, X = 10, С = 100, М = 1000 и их половин V = 5, L = 50, D = 500. Современные цифры (арабские), перенесенные в Европу араба- ми в XIII в. (по-видимому, из Индии), получили широкое рас- пространение во второй половине XV в. В узком смысле слова циф- рами называются знаки: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Счисление (нумерация) — выражение и обозначение чисел. В развитых системах счисления некоторое число п единиц (на- пример, десять) объединяется в одну единицу 2-го разряда (де- сяток), то же число единиц 2-го разряда объединяется в единицу 3-го разряда (сотню) и т.д. Число единиц п называется основанием системы счисления, а знаки, употребляемые для обозначения количества единиц каж- дого разряда, — цифрами. Наиболее применяемая система счисле- ния — десятичная, с цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Проис- хождение десятичной системы счисления связано с пальцевым счетом. Некоторые народы пользовались пятеричной системой счис- ления; в Древнем Вавилоне была распространена шестидесяте- ричная система, следы которой сохранились в делении часа и гра- дуса на 60 минут и минуты на 60 секунд. В электронных вычислительных машинах (ЭВМ) применяется двоичная система счисления, в которой каждое число выражается 10
при помощи двух цифр 0 и 1. В специализированных электронных цифровых устройствах иногда используются комбинированные (сме- шанные) системы, в которых каждый разряд имеет свой индиви- дуальный весовой коэффициент. Например, в коде 3—2—1 старший разряд имеет весовой множитель 3, средний — 2 и младший — 1. Устройство — конструктивно законченное техническое сред- ство, имеющее определенное функциональное назначение. Цифровое устройство (ЦУ) обрабатывает цифровые воздействия различной физической природы. Первые арифметические ЦУ были позиционного типа механи- ческого действия и назывались — абаки (от греч. abax — доска). Абак — доска, разделенная на полосы, где передвигались камеш- ки, кости (как в русских счетах), использовалась для арифмети- ческих вычислений в Древней Греции, Риме, а затем и в Запад- ной Европе до XVIII в. В 50-е годы XX в. еще широко применялись арифмометры «Фе- ликс» механического типа и начинали применяться клавишные и счетно-перфорационные машины на электронных лампах. Исключительно важное значение для всего последующего раз- вития электронных цифровых устройств имело открытие, сделан- ное в 1918 г. советским ученым М. А. Бонч-Бруевичем, обнару- жившим, что напряжение и ток в апериодическом усилителе с замкнутой петлей положительной обратной связи приобретают спо- собность к скачкам (регенеративным процессам, т. е. очень быст- рым изменениям). Изобретенное им спусковое устройство, в ко- тором использовалось это открытие, явилось основой для полу- чивших широкое применение в различных областях техники (в том числе и вычислительной) всякого рода реле (триггеров) и релаксационных генераторов (мультивибраторов и других уст- ройств). В цифровой вычислительной технике используются цифровые сигналы, которые в промежутках между быстрыми перепадами принимают лишь определенные квантованные значения. В более узком смысле слова, быстрые перепады цифровых сигналов дол- жны происходить в строго определенные моменты времени, за- данные системой синхронизации. Двоичный цифровой сигнал имеет два фиксированных уров- ня, условно обозначаемые нулем х° и единицей х1, разделенные между собой пороговым уровнем хпор. Различают потенциальное и импульсное кодирование. При по- тенциальном кодировании сигнал, превышающий пороговый уро- вень (х > хпор), обозначается логической единицей (лог. 1), а сигнал, который ниже порогового уровня (х < хпор) обозначается логичес- ким нулем (лог. 0). При импульсном кодировании существенным является не абсо- лютный уровень сигнала, а знак (направление) перепада. Если
принято, что работа происходит по положительному перепаду, фронт импульса кодируется логической единицей, а вся осталь- ная часть сигнала — логическим нулем. При работе по отрица- тельному перепаду срез импульса кодируется логической едини- цей, а все остальное — логическим нулем. Таким образом, кодирование цифрового сигнала информаци- онными (логическими) символами является условным и требует обязательной оговорки. Цифровая вычислительная машина (ЦВМ) выполняет по задан- ной программе обработку информации, представленной в циф- ровой форме. Каждой цифре в ЦВМ соответствует один или не- сколько дискретных сигналов, например электрических импуль- сов. Процесс обработки информации на ЦВМ сводится к такому преобразованию сигналов, при котором результирующий сигнал численно равен итогу соответствующей вычислительной опера- ции. Принципиально ЦВМ состоит из следующих устройств: ариф- метического, памяти, управления и ввода-вывода данных. Блок ЦВМ, который управляет ее работой, называется процес- сором. Процессор, созданный на основе интегральной микросхе- мы, называется микропроцессором (МП). Изобретение транзистора Д. Бардиным, У. Браттейном и У. Шокли (США) в конце 40-х годов XX в. произвело революци- онное действие в электронике, радиотехнике и вычислительной технике. Полупроводниковые приборы, имеющие значительно меньшие габариты и массы, чем радиолампы, обусловили повы- шение надежности работы радиоаппаратуры, счетно-математичес- ких машин и других установок. В радиотехнике цифровые вычислительные устройства обеспе- чивают: 1) формирование и обработку сигналов в системах радиолока- ции, телевидения, радионавигации, радиоуправления, передачи информации; 2) моделирование реальных радиотехнических устройств, сис- тем и комплексов; 3) анализ и оптимизацию характеристик отдельных устройств (например, распределения электромагнитного поля в ближней зоне раскрыва антенны); 4) работу систем автоматизированного проектирования. Все перечисленные задачи, за исключением первой, решаются с помощью универсальных цифровых вычислительных машин. Что касается первой задачи, как правило, она решается путем исполь- зования как специализированных цифровых вычислительных уст- ройств (синхронизаторов, формирователей зондирующих широ- кополосных сигналов, аналого-цифровых и цифроаналоговых пре- образователей, устройств первичной по одному циклу обзора об- работки информации, т.е. устройств обнаружения и оценки пара- 12
метров сигнала), так и универсальных (от микро- до больших ЭВМ). Все проблемы вычислительной техники складываются из трех основных компонентов: создания элементной базы; разработки самих ЭВМ и программного обеспечения к ним; экономически выгодного использования вычислительной техники в народном хозяйстве. Следует отметить, что резкое изменение элементной базы пу- тем перехода от схем на дискретных элементах к интегральным микросхемам различной степени интеграции привело к качествен- ному скачку в области инженерных методов синтеза цифровых вычислительных устройств на их основе. Понимание работы цифровых устройств, а тем более их разра- ботка, невозможны без глубокого знания основ алгебры логики. Алгебра логики — система алгебраических методов решения ло- гических задач; в узком смысле — это табличное, матричное по- строение логики высказываний, определяющее логические опе- рации над ними. Исторические корни алгебры логики обнаруживаются в Древ- ней Греции и связаны в первую очередь с именем философа Ге- раклита (конец VI—начало V вв. до н.э.), одного из основателей диалектики. Закон, которым связано всякое изменение и движение, Герак- лит называет Логосом (от греч. logos — речь, слово, разумное ос- нование). Этот термин впервые вводится в философию Геракли- том для обозначения закономерностей связи вещей [5]. Диалектика (от греч. dialektike — искусство вести беседу, спор) — это философское учение о становлении и развитии бытия и позна- ния и основанный на этом учении метод мышления. В истории философии выдвигались различные толкования диалектики: как учения о вечном становлении и изменчивости бытия (Гераклит); искусства диалога, достижения истины путем противоборства мыс- лей (Сократ, 470—399 гг. до н.э.); метода расчленения и связыва- ния понятий с целью постижения сверхчувственной (идеальной) сущности вещей (Платон, 428/427 — 348/347 гг. до н.э.) и др. [6]. Алгебра (арабское слово) — часть математики, связанная с ре- шением алгебраических уравнений (приравниванием двух алгеб- раических выражений). В современной алгебре изучаются алгебраи- ческие операции, аналогичные действиям над числами. Такие опе- рации могут выполняться над многочленами, векторами, матри- цами и т. д. Алгебраическое выражение составляется из букв и чисел, соеди- ненных или отмеченных знаками алгебраических действий и зна- ками последовательности выполнения этих действий. Логика (от греч. logike) — наука о способах доказательств и опровержений; совокупность научных теорий, в каждой из ко- 13
торых рассматриваются определенные способы доказательств и опровержений. Основателем логики считается ученик Платона, древнегреческий философ и ученый Аристотель1 (384—322 гг. до н.э.). Силлогистика (от греч. syllogistikos — выводящий умозаключе- ние) — исторически первое, созданное Аристотелем учение о логической дедукции, в котором рассматриваются рассуждения в форме силлогизмов. Чтобы отличить логические формы от содержания и логичес- кие константы от логических переменных, Аристотель первый ввел специальные обозначения для тех и других: логические констан- ты он обозначал словесно, а логические переменные — буквами греческого алфавита2. В качестве примера можно привести выражение первой фигу- ры силлогизма: «Если А сказывается о всяком В, а В сказывается о всяком Г, то А необходимо сказывается о всяком Г». Здесь слова- ми «если ..., то» и «сказывается о всяком» выражаются логичес- кие константы следования и суждения, т. е. логические связи за- конченных мыслей друг с другом и элементов отдельных закон- ченных мыслей — посылок, а буквами греческого алфавита обо- значаются логические переменные, допускающие подстановку на их место определенных терминов [5]. 1 Аристотель родился в 384 г. до н.э. в Стагире — греческой колонии на Фра- кийском побережье. Его отец Никомах был придворным врачом и другом маке- донского царя Аминты II. В 343 г. македонский царь Филипп приглашает Аристо- теля заняться воспитанием своего сына Александра (будущего Александра Ма- кедонского), которому тогда исполнилось 13 лет. Аристотель отправляется в Пел- лу, где и руководит воспитанием Александра более трех лет. После того как Александр стал царем, Аристотель переехал в свой родной город Стагир, а в 335 г. вернулся снова в Афины. В предместье Афин — Ликее (Лицее) около храма Апол- лона Ликейского он создает свою собственную школу. В этот период у Аристоте- ля созревает критическое отношение к учению Платона (в частности, к учению об идеях) [6]. Необходимо заметить, что сочинения Аристотеля охватывают все области тогдашних знаний. Аристотель видел свою заслугу главным образом в том, что он открыл сил- логизм, который есть прежде всего средство доказывания объективной истины. Логика Аристотеля основана на объективном различении истины и лжи (от греч. pseudos — псевдо). Истина понимается Аристотелем материалистически — как соответствие утверждения или отрицания бытия, действительности, неза- висимой от сознания, а ложь — как несоответствие. Индукция по Аристотелю — это та же силлогистическая связь, но в обратном порядке: это не вывод через знание причины или следствия, а вывод о причине и следствии через знание носителей причины и следствия. Осуществляется ли познание в направлении от общего к единичному (в силлогизме) или от еди- ничного к общему (в индукции), связь между общим и единичным, определяю- щим и определяемым остается одной и той же. 2 Буквы, употребляемые Аристотелем первоначально для сокращения слов (впоследствии их стали называть аббревиатурой), позже стали использоваться им в качестве настоящих логических переменных. 14
В соответствии с учением о суждении как утверждении или отрицании Аристотель различа- ет в суждении два элемента: под- лежащее — то, относительно чего что-то сказывается, разумея под подлежащим то, на что на- правлена мысль, и сказуемое, т. е. все то, что утверждается или отрицается [5]. Впоследствии Боэций1 объе- динил все возможные четыре случая отрицания членов соеди- нения коннексии (отрицание отсутствия двух членов коннексии; отрицание сосуществования двух членов коннексии; отрицание наличия одного и отсутствия другого; отрицание отсутствия од- ного и наличия другого) и создал учение об эквивалентности форм коннексии, дизъюнкции и условной связи [5] — это то, что те- перь называют формулами Моргана [6]2. Леонард Эйлер3 предложил изображать логические объекты в виде диаграмм (рис. В.1). Спустя более чем 100 лет это же предло- жил Джон Венн4. Такие диаграммы иллюстрируют отношения в алгебре классов. Если прямоугольник, круг, квадрат и треуголь- ник обозначены соответственно I, хь х2, х3, то диаграмма показы- вает, что всякая логическая функция от хь х2, х3 может быть пред- ставлена как объединение минимальных многочленов (минтер- мов) от хь х2, х3 [13]. Это по существу предвосхищает теорему Клода Шеннона5 о представлении логических функций в канони- ческом виде: в совершенной дизъюнктивной нормальной форме (СДНФ) или, что то же самое, теорему о разложении логических 1 Боэций (ВоёЕих) Аниций Манлий Северин (470—525) — христианский философ и римский государственный деятель. Перевел на латинский язык логи- ческие сочинения Аристотеля и Порфирия, «Арифметику» Никомаха, «Начала» Евклида. 2 Морган (De Morgan) Огастес (Августус) (1806—1871) — шотландский ма- тематик и логик. Создал труды по алгебре, теории рядов. Независимо от Дж. Буля пришел к основным идеям математической логики. 3 Эйлер (Euler) Леонард (1707—1783) — математик, механик, физик и аст- роном, швейцарец по происхождению, в 1726 г. был приглашен в Петербургс- кую Академию Наук и в 1727 г. переехал в Россию. Впоследствии академик Пе- тербургской АН. 4 Венн (Venn) Джон (1834—1923) — английский логик, разработал графи- ческий аппарат диаграмм, фактически эквивалентный логике классов. Создал труды в области вероятностной и индуктивной логики. 5 Шеннон (Shannon) Клод Элвуд (1916—2001) — американский инженер и математик. Один из создателей математической теории информации. Его основ- ные труды по теории релейно-контактных схем, математической теории связи, кибернетике. 15
функций в ряд по минтермам. Во второй половине XX в. эти диаг- раммы приобрели матричный вид и стали называться в честь их создателей картами Карно и диаграммами Вейча1. И наконец {«Last of list is not last of means!»), о Джордже Буле2, обобщившем алгебру логики, которая поэтому, как правило, на- зывается булевой алгеброй. Вопрос о том, в каких отношениях находятся старая логика и логика новая, современная, всегда интересовал исследователей и до сих пор является предметом дискуссий и обсуждений. С одной стороны, речь идет о том, как вписываются в современную логи- ку результаты многовекового опыта по исследованию силлогис- тики, и на этот вопрос в какой-то мере отвечает анализ, пред- принятый в [7]. С другой стороны, представляет интерес и обрат- ная задача — уточнение того, какая часть современной логики может быть описана силлогистически. Предлагаемый в [7] ответ состоит в следующем: что «вся элементарная булева алгебра ока- зывается содержащейся в некоторой силлогистической теории. А так как элементарная булева алгебра эквивалентна одноместно- му первопорядковому исчислению предикатов, то данный ответ означает, что одноместный фрагмент исчисления предикатов со- держится в силлогистике». Контрольные вопросы 1. Кто является основателем алгебры логики? 2. Приведите определение понятия алгебры логики. 3. Дайте определение понятия силлогизма. 4. Чем отличается индукция от силлогизма? 1 Предлагается отличникам самостоятельно разгадать принцип, по которому каждому участку диаграммы на рис. В.1 присвоена надпись из трех букв, с чер- точками над некоторыми. 2 Буль (Bool) Джордж (1815—1864) — английский математик и логик, один из основоположников математической логики, усовершенствовавший ее до со- временного состояния [5,7,13]. Кстати, он — отец известной романистки Этель Лилиан Войнич, автора «Овода».
РАЗДЕЛ I ОСНОВЫ АЛГЕБРЫ ЛОГИКИ* ГЛАВА 1 ОСНОВНЫЕ ОБОЗНАЧЕНИЯ И ПОСТУЛАТЫ 1.1. Основные высказывания и переменные Каждое высказывание в бинарной (аристотелевой) алгебре логики может быть представлено переменной, которая обычно обозначается латинскими строчными буквами х или у. Высказыва- ния могут быть утвердительными (определенными) и неопреде- ленными (безразличными). Утвердительных высказываний два: истинное и ложное, нео- пределенное — только одно (табл. 1.1). Следует отметить, что высказывания Ложь и Истина в со- временных компьютерных программах также используются как обозначения. Например, если в WinWord курсором мыши в стро- ке меню нажать кнопку Таблица, а затем Формула и Вставить функцию и выбрать одну из функций: FALSE или TRUE, на экране будет напечатано 0 или 1. Попробуйте это сами прове- рить. Обозначение неопределенности пока еще не установлено. Пред- ложение использовать в качестве символа 1А (или 0,5) обосновано далее. * В зарубежных изданиях алгебру логики в применении к цифровым устрой- ствам называют алгеброй переключательных функций {algebra of the switching functions) 17
1.2. Основные логические операции Всего логических операций три: одна унарная — инверсия и две бинарных — дизъюнкция и конъюнкция (табл. 1.2). Чаще всего инверсия (от лат. inversio — перестановка) обозна- чается чертой над аргументом (х), дизъюнкция (от лат. disjunctio — разобщение) — значком v, а конъюнкция (от лат. conjunctio — союз, связь) — символом обычного умножения (•) [6]. Смысл логических операций раскрывается с помощью диаг- рамм Эйлера (рис. 1.1) и перебора всех возможных значений аргу- ментов, над которыми проводятся эти операции (табл. 1.3). Проанализируем данные табл. 1.3. Инверсия. Сопоставление столбцов таблицы Xi с х i и х0 с *о по- казывает, что операцию инверсии можно выполнять чисто ариф- метически: 0 = 1-0; 1 = 1 - 1 и алгебраически: х = 1 - х. Отсюда и возникло еще одно название этой операции — дополнение. В случае неопределенности (если ее обозначить ’Л), получим % = 1 - !6 = !4, т. е. инверсия неопределенности равна самой неопределенности, что очевидно. Отсюда же можно сделать вывод, что двойная инверсия приводит к исходному аргументу, т.е. х=1-х = 1- (1-х) = х, и это называется законом двойного отрицания. Таблица 1.2 Названия и обозначения логических операций Название операции Слово Знак Инверсия, отрицание, дополнение НЕ (NOT) 5 5 Дизъюнкция, логическое сложение, объединение ИЛИ (OR) V, и, + Конъюнкция, логическое умножение, пересечение И (AND) Л, п, • Таблица 1.3 Таблица истинности логических операций Аргументы Логические операции Х1 Xj Х| X) х, vxj Xi -X) 0 0 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 18
а б в Рис. 1.1. Диаграммы Эйлера для основных операций алгебры логики: а — инверсия; б — дизъюнкция; в — конъюнкция Закон ложного положения, т.е. если %i = х$, то и х\ = Xq, может быть доказан следующим образом. Поскольку 1 = 1, то вычитая из левой и правой единицы равные значения Х[ и х0, получим 1 - %! = 1 -х0, что и соответствует искомому х i = х0. Дизъюнкция. В отличие от обычного арифметического или ал- гебраического суммирования здесь наличие двух единиц дает в результате единицу. Именно поэтому при обозначении логичес- кого суммирования не рекомендуется использовать знак сложе- ния (+). Операцией, эквивалентной дизъюнкции, является выбор максимального значения из двух: МАХ(хв х0). Это справедливо и при обозначении неопределенности числом ‘Л. Анализ табл. 1.3 позволяет перейти к сокращенной ее форме — алгебраической таблице истинности (табл. 1.4). Первые две стро- ки табл. 1.3 (Х| = 0) определяют закон сложения с нулем: х v 0 = х, а вторые две строки (xt = 1) — закон сложения с единицей: xv 1=1. Конъюнкция. Табл. 1.3 убедительно показывает тождественность операций обычного и логического умножений. Эквивалентной опе- рацией в данном случае является выбор наименьшего значения из двух: х0), что также справедливо и при обозначении нео- пределенности через Уг. В этом случае уместен переход к сокращен- ной — алгебраической табл. 1.4. Первые две строки табл. 1.3 доказы- вают закон умножения на нуль: х-0 = 0 и вторые две — закон умно- жения на единицу: х • 1 = х. Еще несколько законов мож- но извлечь из анализа табл. 1.3, приравняв в одном случае оба аргумента друг другу: х1 = х0=х — это закон идемпотентности1, или тавтологии, а в другом слу- чае — один аргумент инверсно- му значению другого: х{ = х0 (табл. 1.5). Таблица 1.4 Алгебраическая таблица истинности дизъюнкции и конъюнкции *1 *1 хгхь 0 Ла 0 1 1 Ла 1 От лат. idem — то же самое и potente — могучий, мощный, власть имущий, т.е. в целом, имеющий то же самое значение. 19
Таблица 1.5 Законы тавтологии и дополнительности Название закона Дизъюнкция Конъюнкция Идемпотентный, тавтологии X V Х = X X х= X Дополни- Исключенного третьего х v х= 1 — шльносш Противоречия — х • х= 0 Таблица 1.6 Таблица истинности, подтверждающая законность замены операций инвертирования, дизъюнкции и конъюнкции *1 х, vxb МАХ (хьхь) Х1 л<, MIN Х1 1 -Х1 1 -Xfl 0 0 0 0 0 0 1 1 1 1 0 и А А 0 0 1 1 а а 0 1 1 1 0 0 1 1 0 0 И 0 А А 0 0 А А 1 1 !4 ‘А а А А а А А А А И 1 1 1 А а А А 0 0 1 0 1 1 0 0 0 0 1 1 1 А 1 1 А А 0 0 А А 1 1 1 1 1 1 0 0 0 0 Следует обратить внимание на то, что в табл. 1.5 приведены данные, справедливые только для определенных значений пере- менной х. Однако закон тавтологии выполняется также и в случае неопределенного значения х= !4. Законы же исключенного третье- го и противоречия при х = % не действуют, поскольку неопреде- ленность сохраняется: х v х = ’/> и х-х = */2. Для доказательства справедливости замены операции инвер- сии х на 1 -х, дизъюнкции на определение максимума и конъюнк- ции на вычисление минимума приведена табл. 1.6. 1.3. Основные постулаты алгебры логики Прежде всего необходимо уяснить порядок выполнения логи- ческих операций. Если нет скобок, сначала производится инверти- рование отдельных переменных, потом — конъюнкция и затем — 20
Т аблица 1.7 Основные постулаты Название постулата Формулы Переместительный (коммутативны й) ХГХо = ХЬ -Хь Х| V Хо = Х| V х0 Сочетательный (ассоциативный) Х2 (х, х0) = (х2 Xi) • Xq, Х2 V (Х| V Хо) = (х2 V Х|) V Хо Распределительный (дистрибутивный) Х2 • (х, V Хо) = Х2 • Х[ V Х2 Хо дизъюнкция. Инверсия функций, состоящих из набора аргумен- тов, связанных между собой другими операциями, осуществляется в последнюю очередь. При наличии скобок сначала выполняют операции внутри них, т.е. здесь наблюдается полная аналогия с порядком выполнения операций в обычной алгебре, только возведение в степень заменя- ется инверсией, умножение — конъюнкцией, а сложение дизъюн- кцией. Остальные постулаты ничем не отличаются от обычной ал- гебры (табл. 1.7). 1.4. Обратные логические операции Логические операции, рассмотренные в подразд. 1.2, позво- ляют следовать от аргументов к функции, т. е. от причин к след- ствию. Однако аналогично тому, как бывает в следственных орга- нах, где исходя из события ищут причины, так и при проекти- ровании и эксплуатации цифровых устройств и систем, часто требуется по заданным выходным сигналам при известном вы- ходном устройстве определить сигналы, которые необходимо подать на его входы, чтобы спроектировать устройство, согласу- ющее основные входы системы с входами выходного устройства. Это можно сделать, используя логические операции, обратные рассмотренным ранее. Подобно тому, как в обычной алгебре вы- читание является операцией, обратной сложению, а деление — умножению, так и в алгебре логики операцией, обратной дизъюн- кции, является логическое вычитание (условное обозначение \), а операцией, обратной конъюнкции, — логическое деление (ус- ловное обозначение /). Что касается инверсии, то здесь нет необ- ходимости придумывать новую обратную операцию, поскольку, выражаясь радиотехническим языком, она является взаимно-об- ратимой. Для того чтобы установить в отношении обратных операций соответствующие закономерности, составим для них таблицу ис- тинности (табл. 1.8), используя табл. 1.3. 21
Таблица 1.8 Таблица истинности для обратных логических операций У ЛЬ *1 = У \ ЛЬ X) = У / Хо 0 0 0 Неопределенность 0 1 Запрет 0 1 0 1 Запрет 1 1 Неопределенность 1 Как видно из первой строки табл. 1.8, результат операции ло- гического деления получился неопределенным, что аналогично результату обычного деления нуля на нуль. Вторая строка логического вычитания никак не связана с табл. 1.3, так как ее исходные данные противоречат закону дизъ- юнкции. Такой результат в алгебре логики называется запрещен- ным. В третьей строке табл. 1.8 результат логического деления явля- ется запрещенным аналогично тому, как результат обычного де- ления числа, отличного от нуля, на нуль стремится к бесконеч- ности. И наконец, в четвертой строке таблицы в результате логичес- кого вычитания получается неопределенность, вполне объясни- мая природой дизъюнкции: 1 v х = 1. В отмеченных здесь неопределенных и запрещенных случаях можно использовать для обозначения символ 'А. Другие полученные значения аргумента X] вполне объяснимы законами дизъюнкции и конъюнкции. В заключение приведем пока без вывода (см. подразд. 2.2) фор- мулы, позволяющие осуществлять операции логического вычита- ния и логического деления: *1 = У\xb=y-X(>v‘Л-хь; Х\ = У / х0=у-х0 v */2-х0. С учетом неопределенностей эти формулы можно существенно упростить: х, = у \ х0 = У / х0=у. Указанные соотношения позволяют сформулировать следующую теорему. Для получения требуемого значения результата дизъюнкции или конъюнкции при одном известном операнде, значение которого не про- тиворечит значению заданной функции, другой операнд должен рав- няться значению этой функции. Выведенные формулы будут справедливы, если в них %! и х0 поменять местами. 22
Контрольные вопросы 1. Какая операция связывает истинное и ложное высказывания? Ка- кими знаками они обозначаются? 2. Составьте таблицы истинности для трех основных логических опе- раций. 3. В какой последовательности должны производиться логические опе- рации? 4. Чем отличается дизъюнкция от обычного суммирования? 5. Поясните логические операции на диаграммах Эйлера. 6. Что представляет собой закон двойного отрицания? 7. На компьютере в системе Word определите значения NOT(FALSE), NOT(O), NOT(TRUE), NOT(l), OR(0;0), OR(0;1), OR(l;l), AND(0;0), AND(O;1), AND(1;1). Убедитесь в эквивалентности операций OR и MAX, AND и MIN с включением символа неопределенности 14. 8. Как доказать закон ложного положения? 9. Объясните закон тавтологии. 10. Сформулируйте законы дополнительности. 11. В чем заключается смысл обратных логических операций? 12. Что такое переместительные законы? 13. Объясните сочетательные законы. 14. В чем заключается распределительный закон? ГЛАВА 2 АНАЛИТИЧЕСКИЕ ФОРМЫ ПРЕДСТАВЛЕНИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ 2.1. Совершенная дизъюнктивная нормальная форма СДНФ, называемая еще канонической, позволяет легко произ- водить считывание в аналитическом виде функции, представлен- ной в табличной форме. Правило, по которому выполняется это представление, основано на теореме Шеннона, которая формули- руется следующим образом: любую сколь угодно сложную логичес- кую функцию т аргументов можно представить дизъюнкцией двух конъюнкций, т. е. У(хт-\, хт^, ... , xh ... , х„ х0) = = Хт_2, - , 0, ... , Xb X0)-X,-V vy(xm_l; xffl_2, ... , 1, ... , х„ Xo)-x,-. (2.1) Справедливость этой теоремы устанавливается последователь- ной подстановкой возможных значений переменной х,. 23
Таблица 2.1 Таблица истинности функции у (X) Номер варианта xi Z} Zo У(Х) Примечания 0 0 0 0 0 Должно быть у (х,- = 0) 1 0 0 1 У (Х, = 1) ДОЛЖНО бЫТЬ у (Х; = 0) 2 0 1 0 У (Xi = 0) Z1 =Xi 3 0 1 1 у (х, = 0) v у (х, = 1) Должно быть у (Х/ = 0) 4 1 0 0 0 Должно быть у (х, = 1) 5 1 0 1 У(.Х;= 1) Zo = x,- 6 1 1 0 У (Xi = 0) Должно быть у (х,- = 1) 7 1 1 1 у (Xi = 0) V у (Х; = 1) Должно быть у (х,= 1) Отметим, что выражение (2.1) напоминает формулу, выведен- ную для представления обратных функций, где в одно слагаемое входит определенная переменная х0 в прямой форме, а в другое — в инверсной. Доказательство теоремы начнем с того, что представим ис- ходную функцию в виде дизъюнкции двух конъюнкций, в каж- дой из которых сомножителями возьмем неопределенные функ- ции Z\ и Zo- у(хт-1, ... , xh ..., х0) = = ..., О, ..., x0)-Zi vy(xm_,, ... , 1, ... , хь)-3). Составим таблицу, соответствующую указанному соотношению (табл. 2.1). Анализ всех восьми возможных вариантов из табл. 2.1 показы- вает, что только два из них (второй и пятый) подходят для требу- емого представления функции. Во втором варианте значения ар- гументов х,- и Zi не совпадают, поэтому один из них должен быть проинвертирован. В пятом варианте значения х, и Zo совпадают, т.е. они равны. Причины негодности остальных шести вариантов приведены в примечаниях таблицы. Таким образом, теорема может считаться доказанной. Теперь не составит труда доказать теорему о представлении ло- гических функций в совершенной дизъюнктивной нормальной форме. Всякая сколь угодно сложная логическая функция у от т пере- менных может быть представлена в СДНФ, т. е. дизъюнкцией про- 24
изведений значений этой функции уд-на минтермы Мпд-, соответ- ствующие наборам аргументов X: X max У = V Ух -Мпд-, х=о где X — порядковый номер набора аргументов (вектор аргумен- тов); Хтт = 2й - 1 — максимальное значение номера набора аргу- ментов; Мпд- — минтерм, являющийся конъюнкцией всех аргу- ментов, форма представления которых (прямая или инверсная) зависит от того, чему равен данный аргумент х, в данном наборе X. если он равен нулю — в инверсной, если единице — в прямой. Применим теорему Шеннона, подставив в формулу (2.1) вме- сто Xj самый младший аргумент х0, затем раскроем функцию по следующему аргументу Х| и так далее до самого последнего значе- ния хт.\ включительно: у(х„.,, ... , хь х0) =у(х„_„ ... , х„ О)-хо vy(x/n_„ ... , хь 1)-х0 = = у(хт_,, ... , 0, O)-xrxo vy(xffl_b ... , 0, l)-xrxov vy(xm_b ... , 1, O)-xrxovy(xm-i, ... , 1, 1)-х,-х0 = = у(0, ... , 0, O)-xm_1-...-X]-xo V... vy(l, ... , 1, l)-xm_r ... •хгхь = ^max = V Ух • МПд-, х=о л что и требовалось доказать. Легко заметить, что СДНФ аналогична известным разложени- ям функций в ряды Фурье, Уолша и др. Поэтому рассмотренную теорему можно назвать теоремой о разложении логических функций в ряд по минтермам. Теперь посмотрим, какими свойствами обладают минтермы. Для этого составим их таблицу истинности (табл. 2.2). Таблица 2.2 Таблица истинности минтермов Аргументы Минтермы X х. хь Мпо Мп, Мп2 Мп3 0 0 0 1 0 0 0 1 0 1 0 1 0 0 2 1 0 0 0 1 0 3 1 1 0 0 0 1 25
Таблица 2.3 Таблица истинности преобразователя кода «1 из 4» в натуральный двоичный код Аргументы Функции X Xj X2 X! Хз Уо 1 0 0 0 1 0 0 2 0 0 1 0 0 1 4 0 1 0 0 1 0 8 1 0 0 0 1 1 Обратим внимание на то, что аргументы х( и х0 представляют собой двоичные разряды числа X. Кроме того, каждый минтерм становится равным единице только в одном из наборов, а именно в том, которому соответствует его номер. Последнее обстоятель- ство, во-первых, роднит доказанную теорему с теоремой отсче- тов, известную у нас под названием теоремы Котельникова. Во- вторых, позволяет отнести минтермы к кодам «один из т» и, следовательно, считать табл. 2.2 таблицей истинности преобразо- вателя натурального двоичного кода в код «1 из т» (в данном конкретном случае — в код «1 из 4»). В качестве примера применения рассмотренной теоремы полу- чим аналитические выражения в СДНФ преобразователя кода «1 из 4» в натуральный двоичный код. Составим для начала табли- цу истинности такого кодопреобразователя (табл. 2.3). Следует заметить, что табл. 2.3 является сокращенной, так как в ней отсутствуют запрещенные комбинации аргументов, поэто- му приведем для наглядности соответствующую полную таблицу (табл. 2.4). Из табл. 2.4 видно, что запрещенными являются те наборы ар- гументов, которые не соответствуют коду «1 из 4». Разрешенные наборы аргументов здесь выделены серым фоном. В соответствии с рассмотренной теоремой запишем в СДНФ выражения для двух искомых функций, опуская минтермы, соот- ветствующие нулевым значениям этих функций в наборах аргу- ментов, и умножая их на 'Л при запрещенных наборах аргумен- тов, как это было оговорено ранее: у0= /2Хз’Х2-Х1-хо v*3‘*2’xr*ov '/zXyXz'Xi-Xov V '/iXj-XyXi-Xo V УгХуХуХ] -Xb V X3-X2-x\ -Xq v УгХз'^'Х^ХдУ V yiXj-Xi'Xt’Xo V УгХуХу Xf Xq V '/гХз'Хг'Х^Хо V '/2X3-X2-X}-Xq V 26
Таблица 2.4 Полная таблица истинности преобразователя кода «1 из 4» в натуральный двоичный код Аргументы Функции X х3 Х2 Х1 У1 Уо 0 0 0 0 0 !4 72 1 0 0 0 J л ,о..... 0 2 о ; 0 1 о < 0 Г 3 0 0 1 1 •/2 72 4 I 0 * 1 0 0 1 "о 5 0 1 0 1 !4 72 6 0 1 1 0 71 72 7 0 1 1 1 71 /2 8 1 0 z 0 0 1 1 9 1 0 0 1 /1 72 10 1 0 1 0 V1 72 И 1 0 1 1 72 72 12 1 1 0 0 72 72 13 1 1 0 1 72 72 14 1 1 1 0 72 72 15 1 1 1 1 72 72 V ,/2X3-X2‘XI-X0 V '/гХз-Хз'Х^Хо; Ji = 'Лхз-хух^Хоv Тгхз-хухгхо vSyx/Xi’Xo v 72Хз-х2-Х! ’Хо v V '/2X3-X2-Xl-X0 V '/гХз-Хз’Х^Хо VX3-X2-X|-Xo V ,/2X3-X2-Xi-XqV V ,/2X3-X2-Xi‘X0 V У2Х3-Х2-Х1-Хо V ,/2Х3-Х2-Х1-Хо V ,/2Х3-Х2-Х1-Хо v V '/2X3-X2-Xi-Xg V t/2X3-X2'XI-X0. Нередко применяют условные выражения функций в СДНФ. Например, для рассмотренного случая можно записать y0 = v(2, 8, >/2(0, 3, 5 ... 7, 9 ... 15)); y, = v(4, 8, ‘Л(0, 3, 5 ... 7, 9 ... 15)). 27
В качестве другого примера применения рассмотренной теоре- мы получим в СДНФ функцию, определенную дизъюнкцией. Из табл. 1.3 имеем у = X 1 • Хо v Xi -Хо v Х| -Хо- Используя свойства дизъюнкции, можно перейти от СДНФ к более коротким аналитическим выражениям. В развитие закона ложного положения и в качестве следствия теоремы о представлении логических функций в СДНФ можно заключить, что инверсия отсчетов логической функции приводит к инверсии самой функции: Хщах _ У(Х) = у_оух -Мпа-. Это свойство будем использовать в дальнейшем. Следует отметить, что для представления логических функций помимо СДНФ применяется (хотя и не часто) и совершенная конъ- юнктивная нормальная форма (см. подразд. 2.3). 2.2. Сокращенные, тупиковые и минимальные дизъюнктивные нормальные формы представления функций Логические функции, представленные в СДНФ, удобны при их считывании с таблиц истинности, однако в общем они гро- моздки и для их сокращения используют методы минимизации. Причем минимизацию проводят в три этапа, получая на пер- вом этапе сокращенные функции, на втором — тупиковые и на третьем — минимальные. Рассмотрим последовательно эти эта- пы. На первом этапе производится склеивание соседних минтер- мов и импликант, на втором — исключение избыточных' импли- кант, на третьем — выбор наименьшего варианта тупиковой фун- кции, полученного в результате второго этапа. Сопряженными1 2 (соседними, или смежными)3 являются минтер- мы, отличающиеся только одной переменной (т.е. в один мин- терм переменная х, входит в прямой форме, а в другой — в инвер- сной). Например, если минтерм вектора аргументов X 1 Избыточными они называются потому, что в совокупности с другими мин- термами и импликантами не оказывают никакого влияния на значения функции при любых значениях ее аргументов. 2 Сопряженными они называются по аналогии с комплексными переменны- ми, сумма которых при равенстве их мнимых составляющих по абсолютному значению и различии только в знаках лишена мнимой составляющей. 3 Соседними, или смежными, они называются потому, что при внесении в таблицу истинности кода Грея, их строки оказываются соседними. 28
МПу = X„.! Xffl_2•.• X,+I • x, Xi-1•• X| • Xb, то сопряженным ему по переменной х, будет минтерм М n/(z) = Xffl_j • хт_2 ... • Х,+1 X, -X,-! ... хг х0. Дизъюнкция двух сопряженных минтермов (склеивание) при- водит к образованию импликанты первого уровня — простой конъ- юнкции, содержащей (т - 1) переменную: МПу V Мп/(/) = Xm-i • Х„_2•.•• • Х/+1 • (X,-V X,) • ХМ •• X] • х0 = = х„_гхт_2-... -х/+, •х/_| •... -xt -Хо= Imp//). Аналогично осуществляется дальнейшая минимизация логи- ческой функции путем поиска и склеивания сопряженных имп- ликант первого, второго, третьего уровней и т.д. В результате первого этапа минимизации могут образоваться избыточные импликанты, которые необходимо исключить из со- става логической функции, что и выполняется на втором этапе. Поясним эту методику на примере обратных логических функ- ций: вычитания и деления. На основе табл. 1.8 составим таблицу импликант (табл. 2.5). В табл. 2.5 для наглядности приведены пары импликант, кото- рые по закону идемпотентности превращаются в одиночные. Им- пликанты с символом неопределенности !/г в окончательное вы- ражение для краткости не вносятся. Остаются лишь импликанты, представленные значением самой функции у. Таким образом, при- ходим к тривиальному выражению Xj = у \ х0 = у / х0 = у. Рассмотрим еще один пример определения минимизирован- ных функций преобразователя натурального двоичного кода в код Г рея (табл. 2.6). Как видно из табл. 2.6, код Грея циклический, т.е. может не- прерывно повторяться. Кроме того, в соседних строках таблицы кодовые наборы различаются между собой только в одном из раз- Таблица 2.5 Таблица импликант функции логического вычитания и деления Номер минтерма Минтерм Логическое вычитание Логическое деление Уз Imp, (у) Imp^) Уз 1тро(у) 1тр2(хь) 0 0 — — '/2 '/гХо — 1 У-Хо ‘/2 '/2X3 — 0 — — 2 УЪ 1 — У !6 1/2Хо У 3 У-Хо !6 ’/гЛЬ У 1 — У 29
Таблица 2.6 Таблица истинности кода Грея X *2 X X) У1 У1 Уо 0 0 0 0 0 0 0 1 0 0 1 0 0 1 2 0 1 0 0 1 1 3 0 1 1 0 1 0 4 1 0 0 1 1 0 5 1 0 1 1 1 1 6 1 1 0 1 0 1 7 1 1 1 1 0 0 рядов, вследствие чего его называют эволюционным. Благодаря этим свойствам код Грея широко применяется в аналого-цифровых преобразователях и кодовых диаграммах (см. гл. 4). В данном примере представлен трехразрядный код, следова- тельно, и функций тоже три. Составим соответствующую таблицу минтермов и импликант (табл. 2.7). Убрав повторные импликанты, получим у2 = х2х! Vx2Xi V х2х0 V х2х0 = х2(х j Vх0 Vх2(х0 VХо) = х2; У! = х2х, v х2х । = х2 ® Xjj у0 = X1Х0 v XiX0 = Xi © х0. Таблица 2.7 Таблица минтермов и импликант кода Грея X Мп,- У1 1тр(0) Imp(l) У1 1тр(0) Уо Imp(2) 0 Х2Х, X) 0 — — 0 — 0 — 1 Х2Х( Xfl 0 — — 0 — 1 X, Xfl 2 х2х, X) 0 — — 1 Х2 X, 1 X, X) 3 Х2Х, Хо 0 — — 1 Х2Х] 0 — 4 Х2Х, X) 1 Х2 Xi Х2Хд 1 Х2 Xj 0 — 5 Х2Х1 -У) 1 Х2Х1 Х2Хд 1 Х2 X, 1 Xi X) 6 Х2Х( X) 1 Х2 X, X2Xq 0 — 1 Xi Xi 7 Х2 Xi Хд 1 Х2 X! X2Xfl 0 — 0 — 30
Последние две функции имеют специальные названия — не- равнозначности, или суммирования по модулю два, и сокращенное обозначение — крестик внутри кружка. Выведенные выражения можно обобщить на более многораз- рядный кодопреобразователь: у( = х,+1 ®х(-; В качестве еще одного примера рассмотрим минимизацию функ- ции операции дизъюнкции, полученной ранее в СДНФ: у = XfXo V X) -Хо V X, -Х0 = *Г-*0 v Х1 'х0 v •хГ*0 v *1 '*0 = = (Х[ V Xi) -Х0 V X! (х0 V Хо) = хо V Хь Как и следовало ожидать, в результате минимизации получили в чистом виде дизъюнкцию. Более сложные функции проще минимизировать с помощью ЭВМ (см. гл. 3) или специальных графических методов, основан- ных на применении диаграмм (см. гл. 4). 2.3. Совершенная конъюнктивная нормальная форма СКНФ, называемая так же, как и СДНФ, еще и канонической, удобна тем, что позволяет легко производить считывание в ана- литическом виде функции, представленной в табличной форме. Правило, по которому выполняется это представление, основано на следующей теореме: любую сколь угодно сложную логическую функцию т аргументов можно представить конъюнкцией двух дизъ- юнкций, т. е. У(хт-\, хт.2, , xh ... , х,, х0) = = [у(*т-Ь хт-2, - , 0, - , *Ь) VX;] X Х хт-2, ... , 1, ... , Xi, xo)vx,]. (2.2) Справедливость этой теоремы устанавливается последователь- ной подстановкой возможных значений переменной х,, (см. под- разд. 2.1). Доказательство теоремы начнем с того, что представим ис- ходную функцию в виде конъюнкции двух дизъюнкций, в каж- дой из которых сомножителями возьмем неопределенные функ- ции Zi и Zo- у(хтЧ, ... , Xi, ... , Xfl) = = [y(xm_b ... , 0, ... ,Xo)vzi]-[y(xm_b ... , 1, ... ,x0)v^]. 31
Табл и ц a 2.8 Таблица истинности функции у(.¥) Номер варианта X/ 21 zo у(Х) Примечания 0 0 0 0 у (х,-= 0) • у (х,-= 1) ДОЛЖНО бЫТЬ у (Xj = 0) 1 0 0 1 У (х, = 0) Zi = xt 2 0 1 0 у(х, = 1) Должно быть у (х, = 0) 3 0 1 1 1 Должно бытьу (х,- = 0) 4 1 0 0 У(*/=0)-у (х,= 1) Должно бытьу (х, = 1) 5 1 0 1 У& = 1) Zo = Xi 6 1 1 0 у (х, = 0) Должно бытьу (х,- = 1) 7 1 1 1 1 Должно бытьу (X/ = 1) Составим таблицу, соответствующую приведенному выраже- нию (табл. 2.8). Анализ всех восьми возможных вариантов из табл. 2.8 показы- вает, что только два из них (первый и пятый) подходят для требу- емого представления функции. В первом варианте значения х, и Zi совпадают, что и отображено их равенством. В пятом варианте зна- чения х, и Zo не совпадают, поэтому требуется инверсия. Причины негодности остальных шести вариантов приведены в примечани- ях таблицы. Таким образом, теорема может считаться доказанной. Теперь докажем справедливость еще одного соотношения, ко- торое понадобится при выводе формулы совершенной конъюнк- тивной нормальной формы: (a v c)-(bv c) = a-bv с. (2.3) Используем для левой части выражения (2.3) свойство распре- делительного закона, т.е. раскроем скобки: {a v с) • (b v с) = а• b v а- с v b• с v с-с. Учтем закон тавтологии (с- с= с) и закон умножения на едини- цу (с = с-1) и снова используем распределительный закон: a-Z>va-cvZ>-cvc-c=o-Z>va-cv(>-cvc = = «-Z>va-cvZ>-cvc-l = <2-Z>vc-(ovZ)vl). Применив к последнему выражению закон логического сложе- ния с единицей (avZ>vl = l), запишем a-b v с-(a v b v 1) = a-b v с-1. 32
Снова использовав закон умножения на единицу (с -1 = с), по- лучим искомое соотношение (2.3). Теперь приступим к выводу выражения в СКНФ. Для этого за- пишем соотношение (2.2) при i - 0: jU»-b Х„_2, ... , Х2, Х\, Хо) = = [у(х„-ь Хт-2, ... , Х2, Xi, 0) V Xq] • [у(х„_ь хт.2, ... , Х2, Xi, Хо) vx0]. Аналогично раскроем аргумент хь y(xm_,, хт_2, ... , х2, х„ Хо) = = {[yUm-1, хт.2, ... , х2, 0, 0) VX,]• [y(xm_b хт_2, ... , х2, 1, 0) vxj VX0}X X{[y(xm_„ Xm_2, ... , X2, 0, 1) VXi]-[y(x„_1, xm-2, ... ,X2, 1, 1)VX!] vxo}. Теперь, используя формулу (2.3), обозначим составляющие, заключенные в первых фигурных скобках последней формулы, следующим образом: y(xm_i, хш_2, ... , х2, 0, 0) vX| = а; у(х„_ь хт_2, ... , х2, 1, 0) vx, = Ь; Хо = С, а во вторых фигурных скобках — у(хт-ь хт-2, - , х2, 0, 1) v х, = а; y(xm_i, хт_2, ... , х2, I, 1) vx, = Ь', х0 = с. После чего получим следующее выражение: ?(*«-!, Хт_2, ... , Х2, X,, Х0) = = [у(*т-ь хт-2,... , х2, 0, 0) V X] V х0]-[у(хт_1, Х„_2, ... , Х2, 1, 0) VX, vxq]x xLyUn-b хт-2, ... , х2, 0, 1) VXJ vx0]-[y(^ffl-b Х„_2, ... , х2, 1, 1) vx, vx0]. Раскрывая таким образом последовательно все остальные аргу- менты, получим окончательное выражение функции в СКНФ: у(х„_1, хт_2, ... , х2, Xi, х0) = д [Ух v Mxj], где ух — значение функции в наборе аргументов X; Мх^- — мак- стерм, т.е. дизъюнкция всех аргументов функции, причем аргу- 2 Нарышкин 33
мент в прямой форме (х,), если в данном наборе Xон равен нулю, и в инверсной форме (х,) — если он равен единице. Теперь посмотрим, какими свойствами обладают макстермы. Для этого составим их таблицу истинности (табл. 2.9). Обратите внимание на то, что каждый макстерм становится равным нулю только в одном из наборов, а именно в том, кото- рому соответствует его номер. Это наблюдение позволяет сделать вывод о взаимосвязи минтермов и макстермов: Mn^= Мх*-. 2.4. Представление функций с не полностью заданными аргументами в дизъюнктивной нормальной форме Бывают случаи, когда логическая функция представлена со- кращенной таблицей истинности, и поэтому в некоторых ее стро- ках отдельные аргументы оказываются заданными факультативно. В качестве примера рассмотрим функцию приоритетного шифра- тора, определяющего старший разряд, в котором находится еди- ница, и преобразующего номер этого разряда в натуральный дво- ичный код (табл. 2.10). Докажем, что в ДНФ функция должна быть представлена дизъ- юнкцией импликант, включающих в себя только определенные аргументы: Уо = Хз-х2-х1 vx3; У1 = Х3-Х? vx3. Для удобства полную таблицу истинности приоритетного шиф- ратора (табл. 2.11) разделим полужирными горизонтальными ли- ниями на секторы с одинаковым расположением старших единиц аргументов. Произведем считывание функции в СДНФ с последующим склеиванием соседних (сопряженных) минтермов и импликант: Таблица 2.9 Таблица истинности макстермов Аргументы Макстермы X *1 Мхо Мх, Мх2 Мх3 0 0 0 0 1 1 1 1 0 1 1 0 1 1 2 1 0 1 1 0 1 3 1 1 1 1 1 0 Таблица 2.10 Таблица истинности приоритетного шифратора *3 хг Х1 Уо 0 0 0 0 * * 0 0 0 1 0 0 0 0 1 * 0 1 0 1 * * 1 0 1 * * * 1 1 34
Таблица 2.11 Полная таблица истинности приоритетного шифратора Л х3 х2 Х| Хз У1 Jo 0 0 0 0 0 * * 1 0 0 0 1 0 0 2 0 0 1 0 0 1 3 0 0 1 1 0 1 4 0 1 0 0 1 0 5 0 1 0 1 1 0 6 0 1 1 0 1 0 7 0 1 1 1 1 0 8 1 0 0 0 1 1 9 1 0 0 1 1 1 10 1 0 1 0 1 1 11 1 0 1 1 1 1 12 1 1 0 0 1 1 13 1 1 0 1 1 1 14 1 1 1 0 1 1 15 1 1 1 1 1 1 Уо = ХуХуХуХ0 V Ху Ху Ху Хо V ХуХуХуХц V ХуХуХ\-Хо V ХуХуХ[ -Хо v VX3-X2-X|-X0 VX3-X2-X1-X0 VX3-X2-X1-X0 V Ху Ху Xy Xo vx3-x2-X|-x0 = = XyXyXy(x0V Xo) VXyX2-Xy(X0V Xq) V XyXyXy (x0V Xo) V VX3-X2-X|-(XO v Xq) V XyXyXy(X0 V Xo) = = XyXyX{ VXj'XjXi V X3X2-Xi VX3-X2-Xi VX3-X2-X1 = = X3-X2-Xj VX3-X2-(X] VX]) VX3-X2’(X| VX|) = = XyXyX} VX3-X2 v X3'X2 = = X3X2-X, vx3-(x2 VX2) = X3-X2’X| VXj. Поскольку последние восемь минтермов у обеих функций оди- наковые, приведем для у, сразу упрощенный вариант записи: 35
J1) = Х3-Х2-Х|-Хо V X3-X2-X|-Xq VX3-X2’XfX0 v Х3'Х2-Х|-ХО vx3 = = X3-X2-Xt • (x0 V x0) V X3-X2-X| • (x0 V Xo) V x3 = = XyX2 X\ VX3-X2-X1 V X3 =X3-X2-(X| V X|) vx3 = x3-x2 vx3. Это и требовалось доказать. Полученные выражения можно еще более упростить, если ис- пользовать рассмотренный в гл. 1 прием: ava-b = a-(\vb)vab = av a- bv a-b = av (a v а) -Ь = ач Ь. Окончательно находим: у0 = х3 v х2-х,; J! = х3 v х2. Контрольные вопросы 1. Что такое минтерм и каковы его свойства? 2. Как выражается логическая функция в СДНФ? 3. Что такое соседние минтермы? 4. Что такое импликанты и как они получаются? 5. Из каких этапов состоит процедура минимизации логических фун- кций? 6. Как минимизировать функцию преобразователя кода «1 из 4» в на- туральный двоичный код? 7. Сформулируйте и докажите теорему Шеннона о представлении ло- гических функций дизъюнкцией двух конъюнкций. 8. Докажите теорему о представлении логических функций в СДНФ. 9. Составьте таблицу истинности для кода «1 из 4». 10. Составьте таблицу истинности для шифратора — преобразователя кода «1 из 4» в натуральный двоичный код. 11. Запишите в СДНФ логическую функцию, соответствующую дизъ- юнкции двух переменных. 12. Что называется сокращенной ДНФ? 13. Какая форма ДНФ называется тупиковой? 14. Какая ДНФ логической функции называется минимальной? 15. Составьте таблицу истинности кода Грея. 16. Запишите в СДНФ и минимизируйте разрядные функции кода Грея. 17. Какая из четырех приведенных функций является минтермом: 1) х0 • X! v х2'Х3; 2) х0 v X| vx2v х3; 3) xo-xi-x2-x3; 4) хо v X] v х2 v х3? 18. Как влияет на сложность минимизированной функции наличие запрещенных комбинаций (не влияет; упрощает; усложняет)? 19. Сформулируйте и докажите теорему о представлении логических функций конъюнкцией двух дизъюнкций. 20. Докажите теорему о представлении логических функций в СКНФ. 21. Запишите в СКНФ логическую функцию, соответствующую конъ- юнкции двух переменных. 22. Выведите функции для четырехразрядного преобразователя нату- рального двоичного кода в код Грея. 36
23. По какому правилу можно представлять логическую функцию в ДНФ, если в некоторых строках сокращенной таблицы истинности от- дельные аргументы точно не заданы? 24. Выведите функции для четырехразрядного приоритетного шифра- тора. ГЛАВА 3 МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИОНАЛОВ С ПОМОЩЬЮ ЭВМ 3.1. Структура программы минимизации логического функционала Пусть требуется представить логический функционал Y(X), со- стоящий из N логических функций yj (X), в минимальной дизъ- юнктивно нормальной форме, с тем чтобы его было проще реа- лизовать в виде устройства. Задача минимизации сводится в ко- нечном счете к представлению функционала минимальным чис- лом наиболее простых конъюнкций — импликант. Как следует из рис. 3.1, сначала выполняется поочередная ми- нимизация логических функций (X), а затем — минимизация функционала Y(X). Распечатка (или вывод на дисплей) результата дает возможность оценить, удастся ли реализовать заданный фун- кционал на базе имеющихся интегральных схем. В случае положи- тельного решения ЭВМ, сопряженная с программатором, осу- ществляет программирование программируемой логической мат- рицы (ПЛМ) или программируемой логической интегральной схемы (ПЛИС). Минимизация логических функций, в свою очередь, прово- дится в три этапа. На первом этапе определяется, в какой форме (прямой или инверсной) целесообразно осуществлять миними- зацию той или иной функции. Если в большинстве состояний аргументов X исходная функция у,(Х), представленная в СДНФ или (что то же самое) табличной форме, принимает значение логической единицы, то с целью сокращения объема вычисле- ний (а следовательно, и времени, затрачиваемого на минимиза- цию) и в ряде случаев достижения наилучшего результата не только в размере полученной функции, но иногда и в необходи- мости получения именно инверсной результирующей формы, функцию следует минимизировать в инверсной форме. Если же, наоборот, логический нуль встречается чаще, чем логическая еди- ница, или необходимо получить функцию в прямой форме, то ее лучше минимизировать в прямой форме. Следовательно, на первом этапе выбирают минимизацию по нулям или единицам. 37
Вызов yj Минимизация 7+1 Минимизация функционала Представление результата Принятие решения Программирование Рис. 3.1. Блок-схема ал- горитма автоматическо- го программирования ПЛМ и ПЛИС с пред- варительной минимиза- цией логического функ- ционала Рис. 3.2. Этапы минимизации логического функционала На втором этапе минимизации логичес- ких функций производится склеивание сопряженных минтермов и импликант ме- тодами Квайна и Мак-Класки. На третьем этапе исключаются избы- точные импликанты. Минимизация логического функциона- ла Y(X) реализуется в два этапа (рис. 3.2). На первом этапе путем перебора всех мини- мизированных функций yj(X) составляется полный список всех простых импликант, входящих в состав логического функциона- ла, и выявляются импликанты, повторяю- щиеся в различных логических функциях. Количество различных импликант в списке определяет требуемое число конъюнкгоров большой интегральной схемы (БИС) ПЛМ и ПЛИС. Так что один и тот же конъюнктор может использоваться для реализации не- скольких логических функций. В этом и зак- лючается цель минимизации функционала, в выражении которого импликанты нуме- руются в соответствии с их расположением в списке и определяют порядковые номера конъюнкторов ПЛМ и ПЛИС. 3.2. Ввод исходного логического функционала в ЭВМ Логический функционал Y(X) может быть введен в ЭВМ двумя способами: 1) подачей электрических сигналов в аналоговой форме через аналого-цифро- 38
вой преобразователь или в цифровом виде с какого-либо носите- ля информации; 2) с клавиатуры ЭВМ. Второй способ, как правило, существенно медленнее первого, поэтому используется лишь тогда, когда электрический источник функционала отсутствует. Форма записи функционала в памяти ЭВМ может быть таб- личной или аналитической. Табличная запись производится пос- ледовательным изменением вектора аргументов X, при этом за- писывается таблица истинности функционала Y(X), что соответ- ствует совершенной дизъюнктивной нормальной форме: {^тах | где у} (X) — логическая функция; j= 0 ... N- 1 — номер логической функции (функционала У); Мп (У) — минтерм вектора аргумен- тов X. Аналитическая запись, оформляемая в виде подпрограммы (что экономит по сравнению с табличной формой оперативную па- мять ЭВМ, но замедляет процесс обработки информации), легко преобразуется в табличную путем последовательного изменения вектора аргументов X. Функционалы Y(X) могут принимать факультативные значе- ния при некоторых запрещенных (неопределенных или избыточ- ных) значениях X, т.е. им можно придавать произвольно значе- ния лог. О или лог. 1. Такие функционалы удобно выражать коэф- фициентом !4. Например, если функционал Y(X) не определен при каком-то конкретном значении X в у-й функции, его можно записать следующим образом: уу- (JQ = !4. 3.3. Определение формы представления минимизируемой функции Операцию определения формы представления минимизируе- мой функции (прямая — инверсная) можно осуществлять одно- временно с ее вводом в ЭВМ в табличной форме или при перехо- де от аналитической формы записи (в виде подпрограммы) к таб- личной (рис. 3.3). Сначала задаются исходные данные: число а = 0 для дальнейшего подсчета и сравнения нулей и единиц; началь- ный вектор аргумента А'для последующего ввода функции у;(Х). Далее к предыдущему значению а прибавляется найденное значе- ние функции. Затем увеличивается на единицу вектор аргумента Xи сравни- вается с максимальным его значением Хтзх = 2т~', где т — число 39
Рис. 3.3. Алгоритм опре- деления формы пред- ставления минимизи- руемой функции двоичных разрядов вектора аргументов. Если условие X > Хтах не выполняется, то цикл сравнения повторяется, а если вы- полняется, то, значит, все аргументы про- верены и можно перейти к анализу, ка- ких значений функции больше: нулевых или единичных. Для этого определяют зна- чение порогового уровня значения сум- мы а. Если из каждого значения функции y/JV) вычитать по !4, то при этом нулевые значения функции дадут минус ’Л, единич- ные — плюс ’/г, а неопределенные значе- ния, оцененные нами величиной тоже ‘Л, дадут нуль. Отсюда можно сделать вывод, что еди- ниц будет больше, чем нулей, если вы- полняется неравенство ^тах Х(у7(^)-Ю>0. х=о Перенеся вправо число }А(Хтах^ l) = 2m"1, приходим к соотношению ^тах S Уу(Х)> 2—1, лг=о при выполнении которого функция инвер- тируется; если же это соотношение не вы- полняется — функция подается для мини- мизации в прямой форме. 3.4. Склеивание сопряженных минтермов и импликант Рассмотрим алгоритм склеивания сопряженных минтермов и импликант (рис. 3.4) и прокомментируем отдельные его ступени. 1. В качестве исходных данных принимаются нулевые значения следующих величин: начального уровня импликанты / (от англ. level — уровень), вектора аргументов Xt и номера разряда i аргу- мента Xt. (При минимизации функционалов необходимо записывать еще номер функции j и какой-либо знак, означающий наличие или отсутствие инверсии данной функции. Здесь для упрощения запи- си эти символы по умолчанию опущены.) 2. Определяется значение функции или импликанты у(А)). 3. Определяется значение z-го разряда аргумента Xt, т.е. х,. 40
l.Z=A7= Z= О Рис. 3.4. Алгоритм склеивания сопряженных минтермов 41
4. Определяется условный переход, зависящий от значения х,. Если х, = 0, то сопряженный по этому разряду минтерм (или им- пликанта) определен большим значением аргумента X/ и, следо- вательно, еще не подвергался склеиванию. Если х, = 1, то, наобо- рот, минтерм уже подвергался склеиванию, и поэтому необходи- мо перейти к рассмотрению следующего разряда i аргумента А) (см. ступень 11). 5. Путем инверсии х, находится сопряженный минтерм (или импликанта) и соответствующий ему вектор аргумента X*. 6. Вычисляется значение функции у (XX) Функции, полученные на данной и второй ступенях алгорит- ма от двух векторов аргументов, дают девять вариантов значений (табл. 3.1). Полученные значения функций можно разделить на три груп- пы. В первой группе, состоящей из пяти вариантов, склеивание в принципе невозможно, поскольку в каждой из пар присутствует хотя бы одно нулевое значение функции. Во второй группе обе функции не определены, поэтому целе- сообразно склеить их минтермы (или импликанты) с тем, чтобы полученную при этом импликанту сохранить с весом !4 для воз- можного склеивания с сопряженною, т. е. для получения импли- канты более высокого уровня. И, наконец, третья группа позволяет получить полноценные импликанты. 7. Путем вычисления произведения значений функций, опре- деленных на второй и шестой ступенях алгоритма, выделяется первая группа. Несклеенные минтерм или импликанта сохраняются в своих ячейках памяти. Осуществляется переход к следующему разряду z вектора аргумента X (см. ступень 11). 8. Путем испытания произведения значений функции на уро- вень % выделяется вторая группа. Когда это условие выполняется, обе функции не определены. Для образования в результате склеи- вания неопределенных функций импликанты с весовым коэффи- циентом ‘/г минтермы или импликанты передаются на девятую Таблица 3.1 Варианты значений двух логических функций Функция Группы значений I II III У(Х/) 0 */2 0 0 1 !6 1 ‘/2 1 у(хп 0 0 ‘/2 1 0 ‘/2 1 1 ‘/2 42
ступень. Туда же поступают с единичным коэффициентом мин- термы или импликанты от определенных функций. 9. Вычисляется выражение импликанты, полученной в резуль- тате склеивания двух сопряженных минтермов или импликант, переданных с восьмой ступени. 10. Коэффициент И или 1 при импликанте, полученной на де- вятой ступени, записывается в память по адресу X+i,,-. При этом предлагается все однородные импликанты, у которых отсутствует аргумент с номером /, размещать в отдельных столбцах под этими же номерами. Поскольку при увеличении уровня импликанты ад- рес столбца по параметру i наращивается, целесообразно исполь- зовать в качестве этого адреса вектор I. 11. Происходит переход к следующему разряду i вектора Xt. 12. Проверяется, не превышен ли максимальный номер разря- да (т - I - 1) вектора Х{. Если нет, то цикл повторяется путем обращения к третьей ступени; если да (т.е. пройдено (т -I) цик- лов проверок X/ на склеивание с сопряженными минтермами), то программа выполняется дальше. 13. Восстанавливается начальный номер разряда / = 0. 14. Увеличивается значение вектора аргумента Xt на единицу. 15. Проверяется, не превышено ли максимальное значение Хтах- Для первого цикла склеивания минтермов это значение Ar0max = 2m_1, для последующих — используется последнее значение, зафикси- рованное в предыдущем цикле на десятой ступени алгоритма. Если максимальное значение адреса не превышено, то цикл склеива- ния повторяется при новом значении X, путем обращения ко вто- рой ступени, если же превышено, то этап склеивания минтермов или импликант на уровне / заданной функции уДУ) на этом за- канчивается. На этой ступени фиксируется значение Х1тах по по- казаниям десятой ступени. 16. Увеличивается уровень склеиваемых импликант. Восстанав- ливается первоначальное значение аргумента X/. 17. Проверяется, не превышено ли максимальное значение уров- ня склеиваемых импликант. Если нет, то цикл повторяется путем обращения ко второй ступени. 18. Происходит переход к следующей функции функционала. В результате такого цикла обработки логической функции по- лучают несклеенные минтермы и импликанты различных уров- ней, хранящиеся по адресам X,. 3.5. Исключение избыточных импликант Исключение избыточных импликант, образовавшихся в резуль- тате склеивания минтермов или импликант, является заключи- тельной стадией минимизации логических функций. 43
Предварительно необходимо в массиве данных, полученных в результате предыдущего этапа минимизации, выполнить некото- рую рутинную обработку: во-первых, чтобы облегчить процедуру исключения избыточных импликант, во-вторых, чтобы одновре- менно обеспечить получение не только тупиковой, но и миними- зированной формы функционала. Для этого следует освободиться от неопределенных (факультативных) минтермов и импликант, которые были необходимы в режиме склеивания, но в конечном результате не должны проявляться. Для минимизации функцио- нала желательно, чтобы одни и те же минтермы и импликанты входили в состав нескольких функций. Следовательно, надо их так расположить, чтобы они рассматривались на избыточность в последнюю очередь. Рассмотрим алгоритм программы исключения избыточных им- пликант (рис. 3.5). 1. Вызывается значение функции конкретного аргумента %, на- чиная с самого малого его значения. Функция берется в той фор- ме (прямая/инверсная), которая была установлена вначале. 2. Проверяется, равно ли вызванное значение единице. Если нет, то исследуемая на избыточность импликанта (ступень 3) дол- жна быть равна нулю, а так как в этом случае не удастся устано- вить ее необходимость при аргументе X, осуществляется переход к седьмой ступени. 3. Если у/(Х) = 1, то вызывается очередная импликанта, начи- ная с первого адреса (/= 1) и первого уровня (/ = 1). Как уже отмечалось, несклеенные минтермы принципиально не могут быть избыточными, поэтому анализу на избыточность они не подвергаются. Что касается импликант, то с наибольшей вероятностью из- быточными могут быть импликанты меньшего уровня. Кроме того, дизъюнкция нескольких импликант меньшего уровня может быть эквивалентна дизъюнкции меньшего числа импликант большего уровня. Вот почему исключение избыточных импликант целесо- образно начинать с импликант первого уровня, последовательно переходя к более старшим уровням. 4. Проверяется, не равна ли Imp(A}) нулю. Если равна, то ее необходимость при данном значении X невозможно установить, поэтому осуществляют условный переход к седьмой ступени. 5. Вычисляется дизъюнкция у^Х)* всех несклеенных минтер- мов и импликант, за исключением исследуемой на избыточность. 6. Если дизъюнкция yj(X)* * 1, то поскольку 1тр(АЭ = 1 (см. ступень 4) и у/А") = 1 (см. ступень 2), доказывается существенность импли- канты Imp(A)) и реализуется условный переход к девятой ступени. 7. Если на шестом этапе обнаружилось, что у, (А1)* = 1, необхо- димость импликанты подвергается дополнительной проверке при другом значении аргумента X. 44
Рис. 3.5. Алгоритм исключения избыточных импликант 8. Проверяется, не превысило ли значение аргумента макси- мальное CYmax). Если нет, то проверка повторяется при новом X путем условного перехода к первой ступени, если же превысило, то делается вывод об избыточности исследованной импликанты, и она исключается из памяти ЭВМ. 9. Существенная импликанта заносится в память ЭВМ (можно в продолжение адресов несклеенных минтермов, и тогда она ис- 45
ключается из памяти по своему прежнему адресу X,) или остается в своей ячейке. 10. Реализуется возврат к начальному значению аргумента X. 11. Увеличивается номер адреса для исследования новой имп- ликанты. 12. Проверяется, не закончена ли проверка всех импликант данно- го уровня /. Если нет, то цикл исследования повторяется с новой импликантой путем условного перехода к первой ступени алгоритма. 13. Если все импликанты уровня / исследованы, выполняется переход к уровню 1+ 1. 14. Восстанавливается первоначальный адрес импликант этого уровня. 15. Проверяется, не закончено ли полное исследование всех избыточных импликант, так как значение I = т - 1 (где т — число разрядов вектора X, т. е. число логических переменных) соответ- ствует импликанте наивысшего уровня (число единичных значе- ний функции в этом случае равно половине общего числа мин- термов — наборов аргументов X). На следующем, самом высшем уровне, образуется единствен- ная импликанта, равная нулю или единице. Если /< т - 1, то ана- лизируются импликанты следующего уровня, если же /> т - 1, то минимизация данной логической функции yj(X) заканчивается. 16. Производится переход к другой функции (см. рис. 3.1). Контрольные вопросы 1. Почему перед минимизацией логической функции бывает целесо- образно ее инвертировать? 2. Почему лучше минимизировать совместно несколько функций (функционал), а не отдельно каждую функцию? 3. Что такое уровень импликанты и каково его максимальное значение? 4. Почему общие для нескольких функций импликанты следует рас- сматривать на избыточность в последнюю очередь? 5. На языке Бейсик составьте программу для определения необходи- мости предварительного инвертирования функции. ГЛАВА 4 ПРЕДСТАВЛЕНИЕ И МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ С ПОМОЩЬЮ ДИАГРАММ 4.1. Диаграммы Вейча и карты Карно Диаграммы Вейча и карты Карно, почти одновременно изоб- ретенные и мало чем различающиеся, созданные в развитие диаг- рамм Эйлера и таблиц истинности, представляют собой графи- ческое изображение логических функций в СДНФ, где каждый 46
минтерм располагается в своей ячейке. Характерная особенность таких диаграмм состоит в том, что соседние минтермы оказыва- ются расположенными в смежных ячейках. Это обстоятельство и позволяет сравнительно легко и наглядно выполнять склеивание минтермов и импликант, получая в результате минимизирован- ные функции1. Для начала рассмотрим функции, реализующие три основные операции алгебры логики (рис. 4.1). Диаграммы Вейча, соответствующие функции одной перемен- ной в прямой и инверсной формах, ничем не отличаются от таб- лицы истинности (см. табл. 1.3). В диаграммах функций двух переменных значения этих пере- менных располагаются по двум ортогональным (горизонтальной и вертикальной) осям. В диаграмме, связанной с дизъюнкцией, согласно с табл. 1.3, в ячейки внесены три единицы. Координаты ячеек соответствуют минтермам наборов аргументов. В ячейку с координатами х^0 за- писана единица. Смежными с этой ячейкой являются ячейки х^о и xjx0, в которые также записаны единицы. Они и склеиваются (объединяются) контурами с общей (угловой) ячейкой—соседкой. Важно отметить, что одна и та же ячейка может (как и в дан- ном случае) объединяться с несколькими одновременно. Считы- вание проводится следующим образом. Смотрят, в каком поле расположен тот или иной контур целиком. Например, левый вер- тикальный контур на диаграмме дизъюнкции полностью лежит в области переменной х0, а верхний горизонтальный — в области хР Это и есть значения импликант, которые в конечном выражении соединяются знаком дизъюнкции. В диаграмму, определяемую операцией конъюнкции, занесена лишь одна единица, которую не с чем склеивать, поэтому опре- деляющий ее минтерм выносится в окончательное выражение. В диаграммах Вейча для трех переменных (рис. 4.2) области каждой переменной пересекаются равномерно с другими облас- тями, для чего используется код Грея. Заполним для примера данную диаграмму функцией, которая соответствует синхрон- ному триггеру задержки, широ- ко применяемому в цифровых устройствах (х2 — обозначает сигнал синхронизации, х, — информационный вход, а х0 — предыдущее состояние тригге- ра) (табл. 4.1). х _о х 1 х 1 х о y = xovx. Хр___Хо Х1 1 0 Х1 0 0 У = Х0-Х1 у = х у=х Рис. 4.1. Диаграммы Вейча для пред- ставления основных логических 1 Можно даже сказать о некоторой ситуации, сходной с известными детски- ми играми в крестики-нолики и морской бой. 47
Таблица 4.1 Таблица истинности функции трех переменных Х2 Х| *0 У 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 В целях уменьшения затрат на диаграммах инверсные зна- чения переменных в качестве координат не указываются. Из рис. 4.2 видно, что мож- но образовать два контура, ох- ватывающие все минтермы с единичными значениями фун- кции. Считанная с их помощью функция показана под диаг- раммой. Здесь можно было бы обозначить еще один контур (вертикальный, выделенный штриховой линией), соединя- ющий два основных контура, но импликанта, получающая- ся в результате, оказывается избыточной. На рис. 4.3 представлены функции преобразователя кода «1 из 4» в натуральный двоичный код (см. табл. 2.3 и 2.4), где пустые ячейки соответствуют неопре- деленным (запрещенным, факультативным) значениям (символ '/г опущен по умолчанию), а каждый контур охватывает уже по восемь смежных ячеек. Результаты считывания приведены под ди- аграммами. Альтернативные варианты при объединении четырех ячеек показаны на рисунке штриховой линией. Выбор того или иного варианта зависит от целесообразности реализации этих фун- кций с помощью наиболее предпочтительных в конкретном слу- чае видов логических элементов. Используется также минимизация по нулям, т. е. охват контура- ми не единицы вместе с неопределенными ячейками, а нулевых ячеек вместе с факультативами. При этом выражения функций получают в инверсной форме. Например, выражения функций, представленных диаграммами на рис. 4.3, будут иметь вид У1 = xovxl; y0 = x0vx2. y = x2xlvx2x0 Рис. 4.2. Функция трех переменных Рис. 4.3. Функции преобразователя кода «1 из 4» в натуральный двоичный код 48
Применяют также диаграммы Вейча и с большим числом пе- ременных [18]. Сформулируем общие правила минимизации логических фун- кций с помощью диаграмм Вейча. 1. Следует стремиться к тому, чтобы число объединяемых кон- туром ячеек было как можно больше. Чем больше ячеек объедине- но в контур, тем выше уровень импликанты и тем проще выраже- ние функции, а следовательно, проще, дешевле и надежнее уст- ройство, ее реализующее. 2. Число ячеек, входящих в один контур, должно равняться 2к, где к= 0 ... т; т — число переменных. Это связано с тем, что при переходе к более высокому уровню импликанта объединяет в два раза больше минтермов. 3. Форма контуров должна быть прямоугольной (с четырьмя сторонами). В виде исключения допускается, чтобы ячейки одного контура располагались по краям одной или нескольких строк (од- ного или нескольких столбцов), так как в этом случае они также являются соседними, аналогично тому, как соседствуют Аляска и Камчатка, хотя обозначаются они на разных сторонах карты двух полушарий. 4. Контурами должны быть охвачены все единицы (или все нули) без исключения. Если какая-то единица (или какой-то нуль) не имеет соседних единиц, то координата представляется в формуле функции соответствующим минтермом. 5. Одни и те же единицы (или нули) могут многократно ис- пользоваться в разных контурах. 6. Общее число контуров должно быть как можно меньше. 7. При совместной минимизации нескольких функций (функ- ционала) целесообразно, если возможен выбор, использовать контуры, общие для наибольшего их числа. 4.2. Алгебраические диаграммы Известно, что применение алгебраических (обычно называе- мых сокращенными) таблиц истинности и функционирования логических устройств, получаемых путем замены в полных табли- цах определенных значений (нулей и единиц) логических функ- ций на их зависимости от одного из аргументов (т. е. в алгебраи- ческом виде), приводит к существенному уменьшению занимае- мой ими площади и большей их наглядности. В качестве примера можно привести алгебраическую таблицу истинности мультиплек- сора [18]. Применение алгебраических таблиц истинности позволяет до- статочно просто синтезировать комбинационные цифровые авто- маты (КЦА) на основе мультиплексоров в случаях, когда число 49
Таблица 4.2 Алгебраическая таблица истинности Х2 Х| У 0 0 Хо 0 1 Хо 1 0 0 1 1 1 Рис. 4.4. Алгебраическая диа- грамма аргументов функции превышает на единицу число адресных раз- рядов применяемых мультиплексоров. Однако при переходе от этих таблиц к диаграммам Вейча для осуществления минимизации ло- гических функций возникают определенные трудности, заставля- ющие порой возвращаться к полным таблицам. Преодолевают эти трудности введением усовершенствованных диаграмм Вейча — алгебраических, извлекая при этом и дополни- тельную пользу: сокращение площади, занимаемой диаграмма- ми, и повышение их наглядности (особенно когда они связаны с пятью аргументами). Иными словами, предлагается диалектичес- кий подход к проблеме: переход от алгебраических таблиц истин- ности и функционирования к алгебраическим диаграммам и об- ратным (характеристическим) таблицам, а от них — к синтезу цифровых автоматов. В качестве примера возьмем функцию трех аргументов, рас- смотренную ранее (см. табл. 4.1 и рис. 4.2). Выполним однократное сокращение этих таблицы и диаграммы, предположив, что выно- сится аргумент х0, и приведем соответствующие алгебраическую таблицу истинности (табл. 4.2) и диаграмму Вейча (рис. 4.4). Приведем методику составления алгебраической таблицы истин- ности. В полной (арифметической) таблице истинности выделяют- ся две строки, в которых за исключением выбранного все аргумен- ты (в данном случае х2и xj одинаковы (т.е. строки с взаимно со- пряженными по выбранному аргументу минтермами). Затем сопос- тавляются значения оставшегося аргумента (в данном случае х^) и функции. Если их значения совпадают, в столбец функции записы- вается аргумент х0, если значения противоположны — инверсное обозначение х0, если они не зависимы, оставляют соответствую- щее значение функции, которое было в полной таблице. Полученные алгебраические таблицу и диаграмму можно еще сократить, введя в область функции другой аргумент — х, (табл. 4.3, рис. 4.5)1. 1 Другие примеры приведены в [20]. 50
Таблица 4.3 Сокращенная алгебраическая таблица *2 У 0 Хо 1 X] Рис. 4.5. Сокращенная алгеб- раическая диаграмма Следует отметить, что сокращение таблиц истинности и ди- аграмм Вейча и их перевод в алгебраическое состояние полнос- тью соответствует формуле Шеннона (2.1). Различие с теоремой Шеннона состоит в том, что теорема утверждает правило разло- жения функции на две составляющие, а здесь мы, наоборот, соединяем отсчеты в единое целое. Для этого определяем значе- ния функции для двух наборов аргументов, минтермы которых являются сопряженными с заданным аргументом, а сам аргу- мент записываем в алгебраическом виде — xt. После чего выра- жение упрощаем. 4.3. Выполнение операций над логическими функциями с помощью диаграмм Вейча Диаграммы Вейча обеспечивают наглядность логических дей- ствий как над аргументами, так и над функциями. В качестве при- мера на рис. 4.6 приведено доказательство соотношения (2.3). а 1 1 1 0 1 1 1 0 Рис. 4.6. Доказательство соотношения (a v c)-(b v с) = a-b v с с помощью диаграмм Вейча 51
На рис. 4.6 первый ряд диаграмм отражает вычисление дизъ- юнкции a v с, заключенной в первых скобках выражения (2.3), второй — дизъюнкцию b v с, находящуюся во вторых скобках, третий — результат перемножения диаграмм первого и второго рядов по столбцам. Окончательный же результат представлен край- ней правой нижней диаграммой. Поскольку выражения, получен- ные в крайнем правом столбце (исходное выражение) и нижней строке диаграмм (результат упрощения), одинаковые — соотно- шение (2.3) доказано. Контрольные вопросы 1. Изобразите на диаграмме Вейча дизъюнкцию двух логических пере- менных. 2. Представьте на диаграмме Вейча конъюнкцию двух логических пе- ременных. 3. По какому правилу расставляются координаты на диаграммах Вейча? 4. Заполните диаграммы Вейча данными преобразователя кода «1 из 4» в натуральный двоичный код и выполните считывание функций в мини- мизированном виде. 5. Каким требованиям должны удовлетворять контуры, объединяю- щие смежные ячейки? 6. Заполните диаграммы Вейча в соответствии с преобразователем трехразрядного натурального двоичного кода в код Грея и проведите счи- тывание минимизированной функции; то же проделайте при минимиза- ции по нулям. 7. В чем состоит польза алгебраических таблиц истинности и диаграмм? 8. Какое соотношение используется при переходе от полной (арифме- тической) таблицы истинности к сокращенной (алгебраической)? 9. Составьте алгебраическую таблицу истинности для преобразовате- ля трехразрядного натурального двоичного кода в код Грея. 10. Заполните алгебраические диаграммы для преобразователя трех- разрядного натурального двоичного кода в код Грея и выполните считы- вание в минимизированной форме. ГЛАВА 5 ЛОГИЧЕСКИЕ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ 5.1. Таблицы истинности, названия, аналитические выражения и свойства функций двух переменных Нам уже известно, что если задана логическая функция с т переменными, то число возможных наборов аргументов Р= 2т. В каждом из возможных наборов функция может принимать два значения: нулевое или единичное. Число единичных значений п определяется числом сочетаний Ср. Суммарное максимальное 52
число возможных функций Nm3X в соответствии с биномом Нью- тона равняется 2Р. В нашем случае т = 2, Р=4, jVmax = 16. Все эти 16 функций хорошо известны. Рассмотрим их внимательно (табл. 5.1) [12, 18, 42]. Значения аргументов представлены в левом верхнем углу табл. 5.1. Под ними расположены обозначения и значения логических функ- ций, причем значения функций при конкретных наборах аргу- ментов равны соответствующим разрядам их номеров, представ- ленных двоичными кодами. С некоторыми функциями (например yh у3, у5, у6, у7, у10 и у12) мы уже познакомились. Функции у0 = 0 и у15 = 1 тривиальны, поскольку представляют собой константы, не зависящие от значений аргументов. Таблица 5.1 Таблица логических функций двух переменных X 0 1 2 3 Название логической функции Аналитическая запись функции Условное обозна- чение Хй 0 1 0 1 *1 0 0 1 1 То 0 0 0 0 Константа нуля 0 0 У1 0 0 0 1 Конъюнкция X! • ЛЬ Х!’ЛЬ Уз 0 0 1 0 Запрет по х$ Xj • ль Д Х| Уз 0 0 1 1 Переменная х. Х1 *1 У4 0 1 0 0 Запрет по х. Xi-ЛЬ х, Дль У5 0 1 0 1 Переменная ль л« ль Уб 0 1 1 0 Неравнознач ность X! • ^) V • ль Xi ©ль У? 0 1 1 1 Дизъюнкция х, мль X, мль ?8 1 0 0 0 Стрелка Пирса Xi млъ X) Фль У9 1 0 0 1 Равнозначность X, • XflVXi Xi - ль Ую 1 0 1 0 Инверсия Хо Хо Уп 1 0 1 1 Импликация от ль к Xi ^)VX, льэх1 У12 1 1 0 0 Инверсия X, Х| *1 У13 1 1 0 1 Импликация от Х| к хь X! vXq л, эль У14 1 1 1 0 Штрих Шеффера Х| • ль х, [ль У15 1 1 1 1 Константа единицы 1 1 53
Функции у3 = х,, у5 = хь, у10 = х0, уi2 = х] зависят только от одной переменной. Функции у0, у3, у5, у10, у12 и у15 называются вырож- денными. Функции запрета у2 и yt, характеризуются тем, что при равенстве одного из аргументов (запрещающего) единице они становятся равными нулю, а при равенстве одного из аргументов нулю — при- нимают значение другого (информационного) аргумента. Функция неравнозначности у6 (или суммирование по модулю два) характерна тем, что равняется единице только в случае неодина- ковости (неравнозначности) аргументов. Второе название она по- лучила благодаря применению в цифровых двоичных арифмети- ческих суммирующих устройствах, где определяет сумму цифр в каждом разряде. Стрелка Пирса) (или функция Вебба) у8 является инверсией дизъюнкции у7. Импликации ув и у13 эквивалентны условию «если ... , то ... ». Например, для уи это означает, что если х0 = 1, то уи = х,; в про- тивном случае Уп = 1. Штрих Шеффера у14 — функция, обратная конъюнкции yt. 5.2. Принцип двойственности Из табл. 5.1 видно, что у функций со взаимно дополняющими номерами j и 15 -j отсчеты при одинаковых наборах аргументов являются инверсными по отношению друг к другу: у^ = у(15 _д/. Вспомним также, что инверсия всех отсчетов функции приводит к инверсии самой функции; тогда на основании табл. 5.1 можно утверждать, что у} = ув5_Л. Снова обратившись к табл. 5.1, найдем элементарные подтверж- дения сказанному в следующих пяти парах функций: Уо=У15, У\ =Уи, Уз =У12, В=У10, У7 = У8- Из рассмотрения пар у2=У13 и у4=ун следует, что функция запрета равна инверсии функции импликации, т.е. хцхо = %] v х0. Из этого соотношения видно, что если слева была операция конъюнкции, то справа имеем дизъюнкцию; если слева переменная была в прямой форме, то справа она оказывается в ин- версной форме (и наоборот); если слева все выражение было в пря- мой форме, то справа оно оказывается инверсным. В этом и заключа- ется принцип двойственности-, при переходе от одной операции (на- пример, дизъюнкции) к другой (например, конъюнкции) все пе- ременные и выражение в целом должны проинвертироваться. 1 Пирс (Pierce) Чарльз Сандерс (1839—1914) — американский философ, ло- гик, математик и естествоиспытатель. Родоначальник прагматизма. Выдвинул прин- цип, согласно которому содержание понятия целиком исчерпывается представ- лением о его возможных последствиях. Основатель семиотики. Имеет работы по математической логике. 54
Проверим это утверждение на функциях yi и у14. Представим для этого функцию У14 в СДНФ: у14 = Х| -Хо V Xj-Х0 v Xj ’Xq = х] (Хо V Х0) v (xj V X]) -Х0 = Х| V х0. Теперь приравняем функцию yt к функции у14. Получим следу- ющее выражение: X] • Xq = Xj V Xq , что является еще одним подтверждением принципа двойственно- сти, а заодно (и это очень важно) — доказательством теоремы Моргана, являющейся его частным случаем [38]. Обратную теорему Моргана о переходе от дизъюнкции к конъ- юнкции можно доказать аналогично, начиная с функции дизъ- юнкции ут, переходя от нее к инвертированной стрелке Пирса и представляя ее исходя из таблицы истинности в СДНФ: у7 = X, V х0 =у& =Х1 -х0. Полезно знать также, что функции равнозначности у9 и не- равнозначности у6 связаны между собой инверсией. Это легко увидеть, например, заполнив соответствующие диаграммы Вей- ча (рис. 5.1). Отметим здесь также справедливость тождеств Хо Ф X] = Хо ~ X) И Х0 ~ X] = Хо © X), на основе которых можно доказать следующее равенство: Хо ® Xj © Х2 = Хо - X! ~ Х2. Действительно, Х0®Х] ® Х2 = Х0 ~ X! ©х2 = х0~х1 ~х2. (5.1) Свойство замены суммирования по модулю два на условие рав- нозначности (5.1) можно распространить на любое нечетное чис- ло операндов. Кроме того, можно доказать справедливость перестановки опе- раций: Х0 ~ Xj © Х2 = Хо © X] - х2. Сформулируем теперь и докажем две теоремы, связанные с функция- ми равнозначности и неравнозначно- сти. Теорема 1. Конъюнкция функций неравнозначности, в которых один из аргументов является общим, равня- о__________1_ 1 о 1 0 0 1 Рис. 5.1. Диаграммы Вейча для функций неравнозначности (с) и равнозначности (6) а 55
ется дизъюнкции двух минтермов, состоящих: первый — из об- щего аргумента в прямой форме и всех других аргументов в ин- версной форме, и второй — из общего аргумента в инверсной форме и всех других аргументов в прямой форме: (Р© Q0)(P® Qt) ... (Р© Q,) = P0o& - Q/vPQoG,... Q, Доказательство строится на следующих логических рассужде- ниях. Исходная конъюнкция равна единице только тогда, когда каж- дый из сомножителей равен единице. Но каждый из сомножите- лей равен единице в двух случаях: когда Р = 1 и <2 = 0 или, наобо- рот, когда Р = 0 и Qi= 1. Разложив искомую функцию в ряд по минтермам (представляя ее в СДНФ), получим только два мин- терма, соответствующих указанным двум случаям, что и соответ- ствует теореме. Теорема 2. Конъюнкция функций равнозначности, в которых один из аргументов является общим, равняется дизъюнкции двух минтермов, состоящих: первый — из общего аргумента и всех других аргументов в инверсной форме, и второй — из общего аргумента и всех других аргументов в прямой форме: (Р~ Q^P- Q\) ... (Р~ е,) = РСоё> ... Q^PQ.Qx ... Q, Доказательство строится аналогичным образом, но с предва- рительной заменой в формуле первой теоремы прямой формы об- щего аргумента Дна инверсную. Тогда, используя известное соот- ношение Р® Q. = P~ Qi, получаем искомое соотношение. 5.3. Обратные логические функции двух переменных Пусть в качестве обратной функции требуется определить ар- гумент X] по заданной функции у,- (х15 х0) и другому аргументу (*о). С помощью таблицы истинности прямых функций (см. табл. 5.1) можно составить таблицу истинности обратных функций (табл. 5.2), построить по ним диаграммы Вейча и считать с них минимизиро- ванные обратные функции в аналитическом виде. Заметим, что за исключением функций равнозначности и не- равнозначности, обратные функции которых одинаковы с пря- мыми функциями, все остальные функции: 1) не зависят ни от функции, ни от другого аргумента (у0, у5, Уюг У15); 56
Таблица 5.2 Таблица обратных логических функций двух переменных Хо 0 1 0 1 У/ 0 0 1 1 Л] уо = О А А ’/2 72 72 У1 = X, х0 А 0 А 1 У1Хо V AXq У2 = Х\'Хо 0 А 1 72 у2хь v Axq Л=Х1 0 0 1 1 Уз Л = Х1 • х0 А 1 7з 0 У 4 Хо V 7зхо ?5=ХЬ А А А А А у6 = ХГ V хг х0 0 1 1 0 Уб®хь у7 = X, V Хо 0 ‘/2 1 7з у7х0 v Axq у8 = X, V Хо 1 А 0 72 ysx0 v Axq у9 = X, • Хо V ХГ Хо 1 0 0 1 Уэ~хо У10 = й А 72 А 72 7з Уи = ^vx. А 0 А 1 Упхь v Ах0 У12 = Х1 1 1 0 0 У12 У|3 = х, vxb 1 А 0 72 y13x0v 'Ахо У14=Х1 • Хо 7г 1 А 0 у14х0 V 7з2Хо У15 = 1 А А А 72 72 2) отображаются только исходной функцией в прямой (у3) или инверсной (у12) форме; 3) зависят и от функции и от другого аргумента. 5.4. Функциональная полнота логических функций Принцип двойственности показывает, что в сущности можно обходиться только двумя логическими операциями: инверсией и конъюнкцией или инверсией и дизъюнкцией. Недостающую опе- рацию можно искусственно синтезировать из двух других. Такие Пары функций называют функционально полными. Среди функций двух аргументов, представленных в табл. 5.1, есть такие, которые содержат необходимые пары операций. Это 57
функции запрета, неравнозначности, стрелка Пирса, функция равнозначности, импликация и штрих Шеффера. Некоторые из них являются универсальными функциями, поскольку на их основе можно синтезировать любые другие функции. К универсальным относятся функции запрета, стрелка Пирса, импликация и штрих Шеффера. Это важное свойство позволяет на основе только одного типа логических элементов, реализую- щих функции, создавать сколь угодно сложные цифровые устрой- ства. Для того чтобы доказать универсальность той или иной логи- ческой функции, необходимо показать, что с ее помощью можно реализовать одну из функционально полных пар функций (опера- ций). В качестве примера возьмем штрих Шеффера: у14 = хрт0. При- равняв один из аргументов (например, xj к единице или другому аргументу, получим у14 = х0, т.е. инверсию. Инвертируя штрих Шеффера, реализуем функцию конъюнк- ции. Применив к исходной функции формулу Моргана, получим У14 = xj v х0. Использовав затем полученную инверсию примени- тельно к обоим инвертированным членам дизъюнкции, получим простую дизъюнкцию. 5.5. Представление логических функций в системе Word В подразд. 1.2 была рассмотрена возможность замены операций отрицания, дизъюнкции и конъюнкции на вычитание аргумента из единицы, определение максимума и минимума. Эта замена не только справедлива, но и более эффективна по сравнению с ис- пользованием логических процедур, которыми располагает сис- тема Word (NOT, OR, AND), поскольку позволяет получать не- обходимый результат и в случае, когда тот или иной аргумент точно не определен. Например, в результате обработки на компьютере конъюнк- ции, представленной в форме yj = AND(1; /2), получают единицу вместо логической неопределенности (У2). Аналогично при введении функции у7 = OR(0; /2) в компь- ютер получают единицу вместо !4, т.е. вместо неопределенно- сти. Из табл. 5.3 видно также, что алгебраическая форма обозначе- ний является более компактной, чем логическая. В особенности это касается функций неравнозначности (у6) и равнозначности (у9), в которых предлагается использовать оператор определения абсолютного значения (ABS). 58
Таблица 5.3 Таблица различных обозначений логических функций двух переменных У: Аналитическая форма Логическая форма в системе Word Алгебраическая форма в системе Word Уо 0 0 0 У\ *1 - хь AND(X]; хь) MIN(xt; хь) Г Ут. х, • 5q) AND(Xb NOT(xb)) MIN(X]; 1 - хь) Уз X, *i Xi У< Х| - хь AND(NOT(X]); хь) MIN(1 -хьхь) Ут ^Ь *b *b Уб Х| • V Х| • Хо OR(AND(xt;NOT(xb)); AND(NOT(xj); хь)) ABS(xt - хь) Ут X, vxb OR(X|;xb) MAX(x,; хь) У8 X] vxb NOT(OR(X) ; хь)) 1 - MAX(X]j хь) У9 X! • Xb V X] ^) OR(AND(X!; хь); AND(NOT(X));NOT(xb))) ABS(1 - Xj - хь) У1о Хо NOT(xb) 1 -хь Уп X] v jfy OR(XbNOT(xb)) MAX(xj;l - хь) У12 *1 NOT(xi) 1 - xt У1з Х| vxb OR(NOT(X]); хь) MAX(1 -xj;xb) У14 xF^; NOT(AND(Xb хь)) 1 - MIN(X|; хь) У15 1 1 1 Контрольные вопросы 1. Представьте логические функции двух переменных в СДНФ. 2. Изобразите на диаграммах Вейча функции двух переменных. 3. Проведите минимизацию логических функций в ДНФ. 4. Определите максимальное число наборов аргументов и функций трех аргументов. 5. Преобразуйте аналитические выражения функций из СДНФ в ти- повые, показанные в табл. 5.1. 6. Покажите, как с помощью логических операций инверсии и конъ- юнкции можно получить дизъюнкцию. 7. Покажите, как с помощью логических операций инверсии и дизъ- юнкции можно получить конъюнкцию. 8. Докажите универсальность стрелки Пирса. 9. Докажите универсальность функции запрета. 10. Докажите универсальность импликации. 59
11. Покажите, как с помощью функции Пирса можно получить штрих Шеффера. 12. Покажите, как с помощью функции Шеффера можно получить стрелку Пирса. 13. Покажите с помощью алгебраических выражений, как с помо- щью функции Пирса можно получить функцию запрета. 14. Докажите, что с помощью функции Пирса можно получить имп- ликацию. 15. Покажите, как с помощью функции Шеффера можно получить функцию запрета. 16. Покажите с помощью алгебраических выражений, как с помо- щью функции Шеффера можно получить импликацию.
РАЗДЕЛ II КОМБИНАЦИОННЫЕ ЦИФРОВЫЕ УСТРОЙСТВА ГЛАВА 6 ОСНОВНЫЕ ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ 6.1. Базовые логические элементы, реализующие функции двух аргументов Большинство логических функций двух переменных реализу- ется с помощью базовых логических элементов: дизъюнктора (ИЛИ), конъюнктора (И), инвертора, запрета, импликатора, рав- нозначности, сумматора по модулю два, Шеффера (И —НЕ) и Пирса (ИЛИ —НЕ) (рис. 6.1). Специальных элементов, выполняющих роль генераторов нуля (Уо) и единицы (у15), не предусмотрено, поэтому для этих целей можно использовать любые другие логические элементы с опре- деленными сигналами, поданными на их входы. В зависимости Повторитель Инвертор Оз» J's) (Ую, J'u) Дизъюнктор От) Конъюнктор 01) Элемент Шеффера 014) Элемент Пирса 0s) Импликатор Он, У1з) Элемент неравнозначности Об) Элемент равнозначности Оэ) Элемент запрета Ог, Уд) Рис. 6.1. Базовые логические элементы 61
от типа интегральных микросхем (ИМС) — ТТЛ (ТТЛШ), ЭСЛ или МОП (КМОП) — выполняют подключение их к тем или иным полюсам источника питания (обычно с помощью резис- торов; реже используются устройства на основе операционных усилителей). Условные графические обозначения (УГО) логических элемен- тов оговорены стандартом, в соответствии с которым входы все- гда располагаются слева от изображения элемента, а выходы — справа. Полагая, что схемное построение основных элементов ИМС студентам известно из учебной дисциплины «Электроника», на- помним лишь основные внешние качественные параметры ло- гических элементов [34, 44]: реализуемая логическая функция у(хм_1} хм_2, ••• , х\, *о); коэффициент объединения по входу М\ входное напряжение низкого уровня U&; пороговое напряжение {/пор; входное напряжение высокого уровня U^; входной ток низ- кого уровня /в°х; входной ток высокого уровня 7^; выходное на- пряжение низкого уровня UbUX', выходное напряжение высокого уровня /7ВЫХ; выходной ток низкого уровня 1^ых; выходной ток вы- сокого уровня /В'Ь1Х; коэффициент разветвления по выходу N (на- грузочная способность); быстродействие Т3 (длительность задерж- ки распространения сигнала от входа элемента к его выходу при включении и выключении Г^.р); напряжение питания £п; ток потребления при низком уровне выходного напряжения 7®от; ток потребления при высоком уровне выходного напряжения Цот; средняя потребляемая мощность Рпот.ср. Уточним определения некоторых основных внешних качествен- ных параметров логических элементов. Коэффициент объединения по входу — число входов по И или ИЛИ. Входное напряжение низкого уровня — значение входного на- пряжения на входе ниже порогового. Пороговое напряжение — точка на передаточной характеристи- ке, при которой входное напряжение равно выходному. Входное напряжение высокого уровня — значение входного на- пряжения высокого уровня на входе выше порогового. Входной ток низкого уровня — значение входного тока при на- пряжении низкого уровня на входе. Входной ток высокого уровня — значение входного тока при напряжении высокого уровня на входе. Выходное напряжение низкого уровня — значение выходного на- пряжения на выходе ниже порогового. Выходное напряжение высокого уровня — значение выходного напряжения на выходе выше порогового. Выходной ток низкого уровня — значение выходного тока при напряжении низкого уровня на выходе. 62
Выходной ток высокого уровня — значение выходного тока при напряжении высокого уровня на выходе. Коэффициент разветвления по выходу (нагрузочная способность) — число ИМС, идентичных данной, которые можно одновременно подключить к выходу. Длительность задержки распространения при включении — ин- тервал времени между входным и выходным импульсами при пе- реходе напряжения на выходе ИМС от напряжения высокого уров- ня к напряжению низкого уровня, измеренный на уровне 0,5 ам- плитуды или при заданном значении напряжения. Длительность задержки распространения при выключении — ин- тервал времени между входным и выходным импульсами при пе- реходе напряжения на выходе ИМС от напряжения низкого уров- ня к напряжению высокого уровня, измеренный на уровне 0,5 амплитуды или при заданном значении напряжения. Длительность задержки включения — интервал времени между входным и выходным импульсами при переходе напряжения на выходе ИМС от напряжения высокого уровня к напряжению низ- кого уровня, измеренный на уровне 0,1 амплитуды или при за- данных значениях напряжения. Длительность задержки выключения — интервал времени меж- ду входным и выходным импульсами при переходе напряжения на выходе ИМС от напряжения низкого уровня к напряжению высокого уровня, измеренный на уровне 0,9 амплитуды или при заданных значениях напряжения. Длительность перехода при включении — интервал времени, в течение которого напряжение на выходе ИМС переходит от на- пряжения высокого уровня к напряжению низкого уровня, из- меренный на уровнях 0,1 и 0,9 амплитуды или при заданных зна- чениях напряжения. Длительность перехода при выключении — интервал времени, в течение которого напряжение на выходе ИМС переходит от на- пряжения низкого уровня к напряжению высокого уровня, изме- ренный на уровнях 0,1 и 0,9 амплитуды или при заданных значе- ниях напряжения. Напряжение питания — напряжение источника питания, обес- печивающего работу ИМС в заданном режиме. Ток потребления при низком уровне выходного напряжения — зна- чение тока, потребляемого ИМС от источника питания при низ- ком уровне выходного напряжения. Ток потребления при высоком уровне выходного напряжения — значение тока, потребляемого ИМС от источника питания при высоком уровне выходного напряжения. Средняя потребляемая мощность — значение мощностей, по- требляемых ИМС от источников питания в заданном режиме пе- реключения. 63
Проведем сравнительную оценку разных типов базовых логи- ческих элементов (табл. 6.1) [8]. В настоящее время наиболее широко применяются микросхе- мы транзисторно-транзисторной логики (ТТЛ), так как их пара- метры соответствуют требованиям разнообразной электронной аппаратуры. ИМС ТТЛ обладают сравнительно высоким быстро- действием при относительно большой потребляемой мощности, высокой помехоустойчивостью и большой нагрузочной способ- ностью. Промышленность выпускает несколько разновидностей ИМС ТТЛ, в том числе ИМС с диодами Шотки (ТТЛШ) повышенного быстродействия (но с большей мощностью потребления) и мало- мощные (но с меньшим быстродействием). Микросхемы типа эмиттерно-связанной логики (ЭСЛ) явля- ются наиболее быстродействующими. Это обусловлено тем, что транзисторы в элементах работают в активном режиме, чем ис- ключаются затраты времени на выход их из насыщения, меньши- ми перепадами напряжения, а также тем, что перезарядка нагру- жающих вывод емкостей происходит достаточно быстро через малое выходное сопротивление эмиттерных повторителей. Наряду с высоким быстродействием и большой нагрузочной способностью ЭСЛ-элементы отличаются меньшей, чем у ТТЛ- элементов, помехоустойчивостью (ввиду того, что для их переклю- чения достаточен меньший перепад входного напряжения), а так- Таблица 6.1 Основные параметры базовых логических элементов разных технологий Параметр Тип логики ТТЛ ТТЛШ ЭСЛ КМОП Напряжение питания Е^, В 5 5 -5,2 3... 5 Напряжение логической единицы и\ В 2,4 2,7 -0,75 ~Еп Напряжение логического нуля гт°, в 0,4 0,5 -1,6 ~0 Быстродействие Т3, нс 20 5 2,9 50 Помехоустойчивость <7ПОМ, В Не менее 0,4 Не менее 0,5 0,2 Не менее 0,3 Д, Потребляемая мощность Рпот, мВт 22 19 35 0,1 Коэффициент разветвления по выходу W 10 10 15 50 Коэффициент объединения по входу М 8 4 9 — 64
I же относительно большим потреблением мощности (за счет рабо- ты транзисторов в активном режиме и малых сопротивлений рези- сторов, дополнительно обеспечивающих быстродействие), что по- вышает требования к источникам питания и системе охлаждения. Микросхемы типа КМОП отличаются исключительно малым потреблением мощности, за счет чего температура кристалла не превышает допустимую при весьма большом количестве компо- нентов в нем. Это позволяет изготовлять большие интегральные схемы (БИС) типа КМОП с наивысшей в настоящее время сте- пенью интеграции. Малая потребляемая мощность позволяет ис- пользовать аппаратуру на ИМС КМОП при ограниченных воз- можностях источников питания. Для ИМС КМОП также характерны высокая помехозащищен- ность и большое входное сопротивление, следствием чего являет- ся их высокая нагрузочная способность (т. е. большой коэффици- ент разветвления по выходу). Кроме того (что очень важно), эле- менты КМОП могут работать и при температурах значительно ниже -50 °C, являющейся предельной для логических элементов, в ко- торых используются биполярные транзисторы. Наряду с этим элементы КМОП имеют ограниченный коэффи- циент объединения по входу, так как число их входов равно числу нагрузочных транзисторов. Следовательно, за счет значительного падения напряжения на большом количестве открытых нагрузоч- ных транзисторов напряжение U' логической единицы на выходе может существенно снижаться. По быстродействию микросхемы типа КМОП уступают микросхемам типа ТТЛ (и тем более типа ЭСЛ). Заметим, что в ряде случаев цифровые устройства приходится выполнять на микросхемах разных типов (например, ТТЛ и ЭСЛ). При этом для согласования уровней логических нулей и единиц применяют преобразователи уровней. В табл. 6.1 приведены параметры элементов серий 155 (ТТЛ), 531 (ТТЛШ), 100 (ЭСЛ) и 561 (КМОП). 6.2. Взаимозаменяемость логических элементов Генераторы логического нуля (у0). Все без исключения логичес- кие элементы, показанные на рис. 6.1, могут быть использованы рл>» создания нулевого логического потенциала (рис. 6.2). Такая Необходимость может возникать, если требуется несколько ис- точников нулевого уровня при наличии только одного, к тому же ''аломошного, генератора. Логические элементы в этом случае Используются в качестве усилителей мощности, а также для раз- вязки различных устройств с целью устранения взаимных помех и 'лучшения общей помехоустойчивости за счет приближения уровня Логического нуля к его стандартному значению. 1 U Нарышкин 65
Рис. 6.2. Схемы создания потенциала логического нуля с использованием различных элементов: а, б — запрета; в, г — Исключающее ИЛИ; д — повторителя; е — дизъюнктора; ж — конъюнктора; з — инвертора; и — ИЛИ —НЕ; к — И —НЕ; л — импликатора; м — равнозначности Наиболее применяемыми являются элементы запрета и Ис- ключающее ИЛИ, позволяющие использовать на входе любой логический уровень (0 или I). Меньше используются повторите- ли, дизъюнкторы, конъюнкторы, на входах которых требуется на- личие нуля, а также инверторы, элементы ИЛИ —НЕ и И —НЕ, на входах которых должна быть логическая единица. Наименее удобными для использования являются импликатор и элемент равнозначности, требующие наличия на входе обоих логических уровней. Генераторы логической единицы (у15). Для создания логической единицы также могут быть использованы все логические элемен- ты (рис. 6.3). Необходимость создания источников логической еди- ницы обусловлена тем же, что и при синтезе генераторов логи- ческого нуля. Однако в отличие от генераторов логического нуля здесь допускаются произвольные логические уровни (0 или I) на входах импликатора (см. рис. 6.3, а, б) и элемента равнозначности (см. рис. 6.3, в, г). Определенный единственный потенциал требу- ется в элементах, выполняющих функцию повторителя (т.е. соб- ственно повторителя, дизъюнктора и конъюнктора) или инвер- тора (т.е. собственно инвертора, элементов ИЛИ —НЕ и И —НЕ). 66
к л м Рис. 6.3. Схемы создания потенциала логической единицы с использо- ванием различных элементов: а, б — импликатора; в, г — равнозначности; д — инвертора; е — ИЛИ —НЕ; ж — И —НЕ; з — повторителя; и — дизъюнктора; к — конъюнктора; л — запрета; м — Исключающее ИЛИ Два источника опорного напряжения (0 и 1) требуются при использовании элементов запрета и Исключающее ИЛИ. Повторители (у3, у5). Логические повторители применяются для согласования по мощности источника входного сигнала с после- дующими элементами, введения временной задержки входного сигнала и ограничения уровня входных помех. Здесь также могут быть использованы все логические элементы. Из рис. 6.4 видно, что наиболее рациональным для создания повторителей является применение собственно логического по- вторителя, дизъюнктора или конъюнктора. Четыре элемента нуж- даются в наличии на одном из входов опорного потенциала: логи- ческий нуль требуется для элементов запрета и нерав позначное- Ч а логическая единица — для импликаторов и элементов рав- нозначности. И, наконец, реализация логического повторителя На основе инвертора, элемента ИЛИ —НЕ и элемента И—НЕ тре- бует их попарного включения. Инверторы (у10, л2). Несмотря на простоту реализуемой логи- ческой функции, способов создания инверторов немного (рис. 6.5). Собственно инвертор и элементы ИЛИ —НЕ и И —НЕ не тре- бУЮт наличия дополнительных опорных напряжений. Импликатор 67
Рис. 6.4. Схемы создания повторителей с использованием различных элементов: а — повторителя; б — дизъюнктора; в — конъюнктора; г — запрета; д — Исклю- чающее ИЛИ; е — импликатора; ж — равнозначности; з — инверторов; и - ИЛИ —НЕ; к - И-НЕ Рис. 6.5. Схемы реализации инверсии на различных элементах: а — инверторе; б — ИЛИ — НЕ; в — И— НЕ; г — импликаторе; д — равнозначно' сти; е — запрета; ж — Исключающее ИЛИ и элемент равнозначности нуждаются в нулевом логическом уроВ' не, а элементы запрета и Исключающее ИЛИ — в уровне единицы Дизъюнкторы (у7). Способов реализации дизъюнкции (рис. 6/1 значительно меньше по сравнению с ранее рассмотренными за- менами. 68
Рис. 6.6. Схемы реализации дизъюнкции на различных элементах: а — дизъюнкторе; б — импликаторах; в — ИЛИ—НЕ; г — И —НЕ; д — запрета Отметим, что проще всего заменить дизъюнкторы элементами ИЛИ —НЕ и импликаторами, которые включают в себя опера- цию дизъюнкции в качестве одной из основных. В этом случае для Замены требуется всего два элемента (см. рис. 6.6, б, в). В случае же Использования элементов И — НЕ и запрета для замены дизъюнк- fopa необходимо иметь три элемента (см. рис. 6.6, г, д). Конъюнкторы (у!>. По составу и структуре схемы конъюнкто- ров (рис. 6.7) похожи на схемы, показанные на рис. 6.6, только Здесь операция дизъюнкции заменена на конъюнкцию, и наобо- рот. I Рис. 6.7. Схемы реализации конъюнкции на различных элементах: ° — конъюнкторе; б — запрета; в — И— НЕ; г — ИЛИ — НЕ; д — импликаторах 69
Рис. 6.8. Схемы реализации импликации на различных элементах: а — импликаторе; б — ИЛИ —НЕ; в — И —НЕ; г — запрета Импликаторы (уп, у13). Для импликаторов вариантов замены еще меньше (рис. 6.8), чем для конъюнкторов. Примечательно то, что даже операция дизъюнкции в элементе ИЛИ — НЕ «не выру- чает», поскольку они требуются в количестве трех штук. Устройства запрета (у2, №)• По числу схем реализации и струк- туре устройства запрета (рис. 6.9) аналогичны импликаторам. Устройства неравнозначности (у6). Иногда в целях согласова- ния требуемой логической функции с функциями применяе- мых логических элементов (т. е. для уменьшения их числа путем более полного использования логических возможностей) при- ходится не упрощать, а усложнять аналитическое выражение реализуемой функции, а следовательно, и схему ее выполне- ния (рис. 6.10). В качестве примера рассмотрим случай, когда функцию нерав- нозначности необходимо выполнить на минимальном числе эле- Рис. 6.9. Схемы реализации запрета на различных элементах: а — запрета; б — И —НЕ; в — ИЛИ—НЕ; г — импликаторах 70
Рис. 6.10. Схемы реализации неравнозначности на различных элементах: ° — Исключающее ИЛИ; б — равнозначности; в — И —НЕ; г — импликаторах; д — ИЛИ —НЕ; е — запрета 71
Рис. 6.11. Способы реализации равнозначности на различных элементах: а — равнозначности; б — Исключающее ИЛИ; в — ИЛИ —НЕ; г — запрета: д — И —НЕ; е — импликаторах 72
iGHTOB И —HE. Произведем последовательно преобразования, обо- в первом разделе: у = • Хо v *1 • *0 = Х1 *0 v *1 • х0 = Х1 • х0 • Х1 • *0 = = Xj • Хо • (Xj V Хо) = Х1 • Хо • X) V Х[ • хо • хо = Х1 • хо • Xj • X] • х0 • х0. Полученная функция (наряду с другими) отображена на с. 6.10, в, где так же, как и на рис. 6.10, г ... е, видно сильное южнение схемы с применением четырех или даже пяти эле- Устройства равнозначности (у9). Конфигурация схем, рассмот- •енных для устройств неравнозначности, сохраняется и для уст- юйств равнозначности, только в используемых элементах опе- ,ация дизъюнкции заменяется на конъюнкцию, и наоборот рис. 6.11). Функционально полные элементы. Рассмотренные примеры по- дзывают, что существует только четыре логических элемента, цособных представлять любую логическую функцию двух пере- <енных: ИЛИ —НЕ, И —НЕ, импликаторы и запрета. Такие эле- <снты называются функционально полными или универсальными. Это «ответствует положению, изложенному в подразд. 5.4, где четы- ре функции двух переменных: ИЛИ —НЕ, И —НЕ, импликации I запрета были определены как универсальные, т. е. функционально юлные. Однако всякое универсальное есть враг хорошего. Так и здесь. Особенно в последних двух случаях (для устройств равнозначнос- и и неравнозначности) видно, что иногда для реализации функ- 1ии требуется целых пять одинаковых элементов, тогда как, имея ютя бы два типа элементов, можно существенно сократить их гбшее число. Например, для реализации устройства равнозначно- гги вместо пяти импликаторов требуется лишь два импликатора и >дин конъюнктор. 6.3. Логические элементы И —ИЛИ и И —ИЛИ —НЕ В схемотехнике ТТЛ очень часто используются сложные ло- ические элементы И —ИЛИ и И —ИЛИ —НЕ [31, 44], кото- Ъ1е позволяют реализовывать логические функции, представ- енные в прямой и (или) инверсной дизъюнктивных нормаль- 1ых формах. Показанный на рис. 6.12, а логический элемент -4-2-ЗИ — 4ИЛИ — НЕ способен производить следующую ло- Ическую операцию: у = х0 • Xi v х2 • х3 • х4 • х5 v х6 • х7 v х8 • х9 • х10. 73
Рис. 6.12. Варианты логических элементов И —ИЛИ и И —ИЛИ —НЕ: а-2-4-2-ЗИ —4ИЛИ —НЕ; б- 2-2-2-2И —4ИЛИ/2-2-2-2И —4ИЛИ — НЕ с воз- можностью расширения по ИЛИ; в — два четырехвходовых логических расши- рителя по ИЛИ В других микросхемах, представляющих собой комбинирован- ные элементы, используются не только расширители по ИЛИ. но и прямые и инверсные выходы одновременно (рис. 6.12, б). Микросхемы, являющиеся расширителями по ИЛИ (рис. 6.12, в), имеют дополнительные выходы коллектора (К) и эмиттера (Э), подключаемые к соответствующим клеммам основного элемента И-ИЛИ/И-ИЛИ-НЕ (см. рис. 6.12, б). Показанные на рис. 6.12 варианты не исчерпывают список ло- гических элементов И — ИЛИ и И — ИЛИ — НЕ, выпускаемых про- мышленностью. Их разновидности приведены в соответствующих справочниках. Рис. 6.13. Схемы устройств Исключающее ИЛИ (а) и равнозначности (6) на основе инверторов и элементов И —ИЛИ —НЕ 74
Рис. 6.14. Схема устройства равнозначности на основе элементов И —НЕ и И-ИЛИ-НЕ Рассмотренные элементы позво- ляют получать устройства различной сложности и реализовывать функ- ции, представленные в дизъюнктив- ной нормальной или инвертирован- ной форме, что согласуется с опе- рацией минимизации по нулям. Широко применяются эти эле- менты с более простыми интеграль- ными микросхемами: инверторами, элементами И —НЕ и др. [ В качестве примера рассмотрим схемы реализации функций равнозначности и неравнозначности на основе элементов И —ИЛИ —НЕ и инверторов (рис. 6.13). Логи- ка построения этих схем следует из взаимной инверсности функ- ций равнозначности и неравнозначности. ! Представляет интерес и вариант реализации функции равно- начности с применением элемента И —НЕ (рис. 6.14). Обоснование этой схемы следует из преобразований основной • юрмулы равнозначности с помощью формул Моргана (см. под- (ЧОД. 5.2): Хо ~ Xj = Хо Х| V Х0 • Xj = Хо X! • хо • Х1 = = Хо • X! • (х0 V X]) = Хо • X! • Хо V Хо X] X]. Положительным свойством схем, показанных на рис. 6.13 и 6.14, является высокое быстродействие реализованных на их основе устройств, т.е. в этих случаях Туст = 2 Контрольные вопросы I 1. Каковы названия основных логических элементов и их условные графические обозначения. I 2. Докажите логическую справедливость замен одних элементов дру- гими по рис. 6.2...6.11. 3. Перечислите четыре универсальных логических элемента. Почему и* так называют? Составьте из этих элементов схемы, реализующие все логические функции двух переменных. 4. Назовите основные параметры логических элементов. 5. Приведите сравнительные характеристики базовых логических эле- ментов, созданных по различным технологиям (ТТЛ, ТТЛШ, ЭСЛ и *МОП). 6. В какой форме лучше представлять логические функции для их реа- ^Зации с помощью элементов И —ИЛИ или И —ИЛИ —НЕ? 75
ГЛАВА 7 МЕТОДИКА АНАЛИЗА И СИНТЕЗА КОМБИНАЦИОННЫХ ЦИФРОВЫХ УСТРОЙСТВ 7.1. Преобразователь кода Грея в натуральный двоичный код Прежде чем предлагать методики анализа и синтеза комбина- ционных цифровых устройств (КЦУ), рассмотрим конкретный пример, позволяющий перейти от живого созерцания к абстракт- ному мышлению, а от него — к практике. Воспользуемся таблицей истинности кода Грея (см. табл. 2.6) для того, чтобы синтезировать преобразователь этого кода в нату- ральный двоичный код. Поскольку исходными в этом случае бу- дут являться символы кода Грея, их обозначим через х, а символы натурального двоичного кода — через у. Для получения логичес- ких функций синтезируемого кодопреобразователя в минималь- ной дизъюнктной нормальной форме, заполним соответствую- щие диаграммы Вейча (рис. 7.1). Объединяя контурами соседние ячейки диаграмм Вейча, за- полненные единицами, получим соответствующие логические функции: У2 = Х2; У1 = Х2-Х1 v х2’^1 = х2 © У() = X2-Xj -Xq v *2’*1 '^0 v Х2-Х\-ХО v *2-*1 '*0 = = (X2-X1 VX2-X])-X0 V (Х2-Х! VX2-X1)-X0 = = (х2® Xj) -Хо v (х2 ® X[)’Xq= (х2 ® X]) ® Хо =У1 ® Хо. Эти функции можно обобщить и для преобразователя с боль- шим числом разрядов: y, = y;+i ®х,-. Используя логические элементы Исключающее ИЛИ, полу- чим схему, изображенную на рис. 7.2. Проанализируем переходные процессы, происходящие в син- тезированном преобразователе, подавая на его входы последова- тельно различные сигналы. У? X) Х1 Х1 Рис. 7.1. Диаграммы Вейча преобразователя кода Грея в натуральный двоичный код 76
Из диаграмм на рис. 7.3 видно, что на выходах у, и у0 преобразователя происходят не только задержки сиг- нала, но и ложные срабатывания (от- мечены серым фоном на выходе у0). Если выходные сигналы восприни- мать сразу же после переключения входных сигналов, то по совокупнос- ти будут определяться следующие но- мера кодовых слов: в 1-м периоде — О (ООО), 3 (011), 2 (010); Рис. 7.2. Схема преобразова- теля кода Грея в натуральный двоичный код во 2-м периоде — 6 (ПО), 5 (101), 4 (100); в 3-м периоде — 0 (000), 2 (010), 3 (011); в 4-м периоде — 7 (111), 4 (100), 5 (101). Самая большая задержка сигнала происходит на выходе у0. Она равна двойной задержке сигнала элементами Исключающее ИЛИ. 'Если после очередного переключения входных сигналов выждать это время, то сигналы на выходах установятся в истинных своих значениях, откуда следует, что переключение входных сигналов можно производить через минимально допустимый период вре- мени (период разрешения), равный двойной задержке элементов Исключающее ИЛИ. Известны три способа борьбы с нестационарностью выходных сигналов, вызванной эффектом состязаний (гонок), которая мо- жет приводить к серьезным ошибкам (погрешностям): 1) выравнивание (компенсация) задержек сигналов в исполь- зуемых элементах; 2) стробирование (селекция) выходных сигналов специальными (синхронизирующими) импульсами с возможным применением запоминающих устройств (триггеров, регистров); 3) введение функциональной избыточности. Рис 7.3. Временные диаграммы сигналов на входах и выходах преобразователя кода Грея в натуральный двоичный код 77
Рис. 7.4. Схема устранения эффек- та гонок выравниванием задер- жек сигнала Рассмотрим эти способы на примере преобразователя кода Грея в натуральный двоичный код. Для того чтобы устранить лож- ные срабатывания в преобразова- теле на выходе у0, достаточно на входе сигнала х0 включить эле- мент, выполняющий функцию логического повторителя (напри- мер, тот же элемент Исключаю- щее ИЛИ). Но возникающие при этом задержки сигнала относи- тельно выхода у2 (двойная задер- жка по выходу у0 и одиночная — по выходу у0 по-прежнему будут оказывать негативное влияние на качество преобразования и только при введении еще трех элемен- тов задержки (одного в средний канал и двух в нижний) на всех выходах с двойной задержкой будет выдаваться одновременно ис- тинное значение кода (рис. 7.4). Схема второго способа устранения эффекта гонок сигналов представлена на рис. 7.5. Функционирование этой схемы объясня- ется с помощью временных диаграмм, показанных на рис. 7.6. Сиг- налы на выходе регистра памяти RG (см. рис. 7.5) сменяются только после подачи на вход сигнала синхронизации С, разрешающего запись положительного перепада напряжения. Дополнительная за- держка выходных сигналов здесь определяется инерционностью регистра памяти. Рис. 7.5. Схема устранения эффекта гонок сигналов применением регистра памяти 78
’ис. 7.6. Временные диаграммы сигналов преобразователя кода Грея в натуральный двоичный код при использовании на выходе стробирован- ного регистра памяти Что касается третьего способа устранения эффекта гонок сиг- :алов, то в данном конкретном примере он оказывается неэф- >ективным, поскольку все три функции преобразователя в СДНФ ие содержат общих минтермов. Теперь, остановившись на первом способе устранения эффек- та гонок, выберем необходимые для его реализации микросхемы см. рис. 7.4), воспользовавшись справочником [44] *. Начинать поиск необходимых ИМС лучше всего с наиболее экономичных комплементарных металл—оксид—полупроводник (КМОП) или металл—диэлектрик—полупроводник (КМДП) эле- ментов. Например, ИМС серии 564ЛП2, содержащие четыре двух- ахоловых схемы сумматора по модулю два (четыре Исключающее ИЛИ), при Un = 5 В и /пот = 0,5 мкА обладают быстродействием (задержкой распространения) Тздр = 300 нс. В два раза более высо- ким быстродействием (Тздр= 150 нс) характеризуются ИМС серии Н564ЛП2, так как рассчитаны они на в два раза большие питаю- щее напряжение (Un = 10 В) и потребляемый ток (1пт = 1мкА). При необходимости большего быстродействия ИМС рассмат- ривают применение элементов транзисторно-транзисторной ло- 1 Вообще говоря, следует применять наиболее свежие издания, поскольку Ихнология производства микросхем постоянно совершенствуется, вследствие Чего параметры ИМС сравнительно быстро улучшаются. 79
гики с диодами Шотки. Например, четыре двухвходовых эле- мента Исключающее ИЛИ серии 1533ЛП5, которые при /пот = = 7мА обеспечивают почти на порядок более высокое по сравне- нию с КМДП быстродействие (Гздр = 27 нс), или серий 533ЛП5 и 555ЛП5, которые при /пот = Ю мА (Рпот= 50 мВт) обеспечивают 7’м.р = 23 нс. При желании еще больше увеличить быстродействие (до Тжр = 10,5 нс) за счет существенного возрастания потребля- емого тока (/Пот= 75 мА) рекомендуется применять ИМС серии 530ЛП5. Наиболее быстродействующими являются элементы эмиттер- но-связанной логики серий 100ЛП107, 500ЛП107, К500ЛП7 и 700ЛП107-2, содержащие три сумматора по модулю два с пара- фазными выходами (Т’зд.р = 3,9 нс; /пот = 28 мА; Рпот = 146 мВт), а также микросхема К1500ЛП107, содержащая пять сумматоров по модулю два (Гм.р = 2,5 нс; /пот = 80 мА). Часто при выборе ИМС важно наиболее полное их использова- ние в проектируемом устройстве. Например, в рассматриваемом случае требуется шесть элементов Исключающее ИЛИ, поэтому здесь подходят (без излишеств) две микросхемы серий 100ЛП107. 500ЛП107, К500ЛП7 или 700ЛП107-2, содержащие три суммато- ра по модулю два. 7.2. Методика синтеза комбинационных цифровых устройств Рассмотрим последовательность действий по реализации син- теза комбинационных цифровых устройств. I. Представление логического функционала (в частном случае отдельной функции) в минимизированной ДНФ. Целесообразно преобразовать функционал сначала из представленного вида (сло- весного, произвольной формы аналитического и др.) в таблицу истинности, а затем в зависимости от его сложности (числа аргу- ментов и функций) с помощью диаграмм или ЭВМ произвести минимизацию. 2. Выбор элементной базы в зависимости от требуемых быстро- действия устройства, потребляемой мощности от источника пи- тания, совместимости с другими устройствами и наличия необ- ходимого арсенала средств. 3. Перевод полученного минимизированного функционала в форму, согласованную с функциональными данными выбранной элементной базы, с целью наиболее полного использования ее логических возможностей, а следовательно, минимизации колИ' чества требуемых логических элементов. 4. Создание принципиальной электрической схемы. 80
5. Проверка отсутствия эффекта гонок сигнала. Если же эффект гонок обнаруживается, принятие мер по его ликвидации. 6. Определение быстродействия устройства по всем входам и выходам и сравнение полученных результатов с заданными пара- метрами. 7. При совпадении полученных результатов с заданными пара- метрами расчет потребляемой мощности и конец синтеза. В про- тивном случае возврат к выбору элементной базы с целью умень- шения потребляемой мощности (в случае слишком большого бы- стродействия) путем перехода, например на КМОП-элементы или увеличения быстродействия путем перехода, например на ЭСЛ- элементы. Следует отметить, что в некоторых конкретных случаях можно обойтись без применения отдельных пунктов данной методики, например составления диаграмм Вейча (см. в гл. 8 синтез шифра- тора). 7.3. Синтез шифратора и дешифратора кода, позволяющего обнаруживать одиночные ошибки В качестве примера рассмотрим код с проверкой на четность, состоящий из трех информационных символов (х2, *i и х0, т = 3) и одного проверочного (у, к= 1), определяемого по формуле у = mod2(x2 + xi +х0), где mod2(x) — операция суммирования числа по модулю два. Эта функция соответствует условию, «чтобы сумма единиц в кодовой комбинации была бы четным числом. В таком коде оди- ночная ошибка изменяет сумму единиц на 1, что нарушает чет- ность» [41]. Приведем соответствующую такому коду таблицу истинности (кодовую книгу) (табл. 7.1). Уже сама показанная здесь формула говорит о том, как следует синтезировать формирователь кода — с применением сумматоров по модулю два. Стандартным способом определения аналитическо- го выражения функции с использованием диаграммы Вейча полу- чают изображение для функции у0 (см. рис. 7.1). Такое же соответ- ствие, конечно, получается и в отношении формулы, считанной с этой диаграммы и упрощенной до двух операций суммирования по Модулю два. Следовательно, и все сказанное о реализации этой Функции однозначно может быть использовано для обсуждаемого Теперь кодирующего устройства. Однако, поскольку здесь функция одна, для компенсации неравенства задержек требуется всего один Дополнительный элемент Исключающее ИЛИ (рис. 7.7). 81
Табл и ца 7.1 Таблица истинности шифратора кода с проверкой на четность Номер кодового слова Х| ЛЮ У 0 0 0 0 0 1 0 0 1 1 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Табл и ца 7.2 Таблица истинности дешифратора кода с проверкой на четность Номер кодового слова *1 Х1 ЛЬ У Уош 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 2 0 1 0 1 0 3 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 4 1 0 0 1 0 5 1 0 1 0 0 1 0 1 1 1 6 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 7 1 1 1 1 0 82
Рис. 7.7. Схема формирователя про- Рис. 7.8. Диаграмма Вейча дня функ- верочного символа кода проверки ции сигнала ошибки дешифратора на четность кода с проверкой четности Обнаружитель ошибки при приеме кода строится по сформу- лированному ранее правилу: если сумма единиц получается не- четной, значит в одном из символов произошло искажение. В таб- лице истинности (табл. 7.2) это искажение фиксируется единицей ® столбце сигнала ошибки (уош). Диаграмма Вейча, соответствующая табл. 7.2, приведена на рис. 7.8. Из этой диаграммы видно, что функция ошибок не содержит соседних минтермов и поэтому ее минимизация путем их склеи- гания невозможна. Серым фоном на диаграмме выделена ячейка с Нулевым значением, соответствующая седьмому кодовому слову. Вокруг нее расположены четыре ячейки с одним искаженным символом (значением 1), также выделенные серым фоном. Запишем искомую функцию уош в СДНФ и произведем ее струк- турное преобразование: Уош = Х2-Х1-Х0-у V X2-X\-XQ-y V X2-X}-XQ-y VXyXi-Xo-yv V х2-хгх0-у V Х2-ХГХ0-у V X2-Xi-XQ-y V X2-Xi-XQ-y= = (X2-XrX0 V х2-хгхь V x2-x,-x0 V X2-XrX0)-y V V (X2-XrX0 V XyXpjQ) V ХуХ^Хо V X2-X!-X0)-y = = [x2-(xrx0 V xrx0) V x2-(xi-x0 V Х1-Хо)]-У v V [x2-(xrx0 V xrx0) V x2-(xi-x0 v xrxb]-y = = [x2- (Xi ©x0) V X2- (Xi © Хо)]-y V [x2. (x, © x0) V x2- (x, ®x0)]-y = = (x2 ©Xj ©x0) -y v (x2 © X[ © Хо) -У = x2 © xt © x0 © y. Как и следовало ожидать, мы получили суммирование по мо- дулю два всех составляющих кода с проверкой на четность. Реали- зовать такой индикатор ошибок можно с помощью схемы, изоб- раженной на рис. 7.7: если вместо U° подавать у, на выходе будет вместо у сигнал уош. При этом схема получается симметричной. Следовательно, эффект гонок сигнала в ней отсутствует. 83
7.4. Шифратор и дешифратор кода Хэмминга, исправляющего одиночную ошибку Каждое слово кода Хэмминга состоит из п двоичных симво- лов, которые группируются в т информационных и к провероч- ных символов. Если задаться числом к проверочных символов, то общее макси- мальное число символов п можно определить по формуле п = 2к - 1. Эта формула вытекает из необходимости с помощью к провероч- ных символов находить один искаженный символ из п возможных при одном событии, если все остальные символы сохраняются неизменными. Число информационных символов определяется разностью т = п - к. Проверочные символы в кодовом слове занимают позиции в соответствии с тем двоичным весом, который они имеют (1,2, 4, 8 и т.д.), чтобы в случае искажения можно было бы сразу опре- делить их позицию. Информационные символы занимают остальные позиции (3, 5, 6, 7, 9 и т.д.). В таблице истинности кода Хэмминга (табл. 7.3), составленной для случая, когда & = 3, и = 7и/л = 4, информационные символы, обозначенные как аргументы х3, х2, -Ч и сгруппированы в ле- вой части, а проверочные символы у2, У1 и у0 ~'в правой. В резуль- тате такой компоновки двоичный код, образованный информа- ционными символами, увеличивается при переходе от строки к строке таблицы на единицу в соответствии с номером кодового слова. Заполнение таблицы проверочными символами лучше начи- нать со строк, соответствующих информационным словам, кото- рые состоят только из одной единицы (1, 2, 4, 8) или нс содер- жат ни одной единицы (0). Тогда проверочный код будет отобра- жать в двоичном коде номер позиции, которую занимает эта еди- ница (номер кодового слова -> номер позиции, занимаемой еди- ницей, -» двоичный код номера позиции): 0 -> ООО, 1 —> 3 —> 011, 2-^5—>101,4—>6—>110, 8-^-7-^111. Остальные проверочные коды вычисляются путем поразрядно- го суммирования по модулю два кодов, отображающих позиции всех единиц в информационном коде. Например, информацион- ный код третьего слова состоит из двух единиц, занимающих по- зиции 3 и 5. Следовательно, можно записать 3®5->011®101 = 110. Проверочные символы седьмого кодового слова можно вычис- лить, сложив по модулю два проверочные символы 1, 2 и 4-го кодовых слов, так как в сумме эти цифры дают как раз число семь. 84
Таблица 7.3 Таблица истинности кода Хэмминга, исправляющего одиночную ошибку Номер кодового слова Номера позиций элементов кода 7 6 5 3 4 2 1 *3 ЛЬ У2 У| Уо 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 2 0 0 1 0 1 0 1 3 0 0 ] 1 1 1 0 4 0 1 0 0 1 1 0 5 0 1 0 1 1 0 1 6 0 1 1 0 0 1 1 7 0 1 ] 1 0 0 0 8 1 0 0 0 1 1 1 9 1 0 0 1 1 0 0 10 1 0 1 0 0 1 0 11 1 0 ] 1 0 0 1 12 1 1 0 0 0 0 1 13 1 1 0 1 0 1 0 14 1 1 ] 0 1 0 0 15 1 1 1 1 1 1 1 Для определения логических функций, по которым можно най- ти элементы проверочного кода и вычислить номер искаженного символа, применяют диаграммы Вейча, показанные на рис. 7.9 [21]. Рис. 7.9. Диаграммы Вейча функций проверочных символов кода Хэмминга, исправляющего одиночные ошибки 85
Объединяя соседние единицы в этих диаграммах контурами, считывают минимизированные функции проверочных симво- лов: У2 = *3'*2‘х1 V*3'X2‘X1 VX3-X2-*1 = = х3(х2 © *i) v х3(х2 ®xi) = х3 © х2 © ; У! = Х3-Х2'Х0 VX3-X2-Xo V Х3-Х2-Хо V Х3-Х2’Х0 = = х2(х3 © х0) v х2(х3 ©х0) = х3 © х2 © х0; Уо = Х3-Х1-^ VX3-X1’XO V Х3-Х1'Хо VX3-X1-XO = = Х[(х3 © Хо) V Х[(х3 ®Х0) = Х3 © X] ® х0. Из приведенных соотношений следует схема формирователя, построенная на основе сумматоров по модулю два (рис. 7.10). В каждое из выражений для проверочных символов входят толь- ко три информационных символа. Для выяснения причины отсут- ствия одного из символов и определения его номера составляют табл. 7.4. В этой таблице номер позиции каждого информационного сим- вола X, представлен двоичным кодом, занесенным в соответству- ющие столбцы проверочных символов у,-. Графы с нулями, выде- ленные серым фоном, определяют отсутствующие информацион- ные символы в соответствующих выражениях для проверочных символов. На вход дешифратора кода Хэмминга поступают информаци- онные (х/ЕХ) и проверочные (уувх) символы. По совокупности при- нятых информационных символов вычисляются проверочные сим- волы: У1 вых = -^3 вх ® -^2 вх ® -^1 вх> Рис. 7.10. Схема формирователя проверочных символов кода Хэмминга 86
Таблица 7.4 Таблица истинности для определения зависимости проверочных символов от информационных Номер позиции 4 2 1 Информационные СИМВОЛЫ Проверочные символы У2 Ti Уо 3 7Q) .0 ] 1 5 *1 1 0 1 ” 6 *2 1 1 0 7 *3 1 1 1 Т1 вых — 7^3 вх ® 7^2 вх ® Тфвх» То вых = Т^з вх ® 7Q вх ® 7Q) вх- Суммирование по модулю два этих символов с проверочными символами на входе дешифратора позволяет определить синдром, значение которого указывает или на отсутствие ошибки, или, если таковая произошла, на позицию символа, подвергшегося иска- жению: 52 = У2 вых ® У1 вх = 7^3 вх ® 7-2 вх ® 7С[ вх ® У2 вх» ‘S'l ~ Т1 вых ® У1 вх = 7р? вх ® ТС2вх ® 7Q)bx ® У1 вх» 50 ~ То вых ® То вх ~ 7-3 вх ® 7^1 вх ® 7-0 вх ® То вх- Истинные значения информационных символов определяются по формуле х/Вых = 7Qbx ® (Mn)z, в которой (Мп),- — минтерм синд- рома, вычисляемый на основе данных табл. 2.4 при условии заме- ны у,-на Sj'. (Мп)о = 52- 5j • »Soi (Mn)i = S2- 5г 50; (Mn)2 = 52-5r50; (Mn)34^-5!-50- Схема комбинационного цифрового устройства для дешифровки Кода Хэмминга представлена на рис. 7.11. Схема содержит: три четырехвходовых сумматора по модулю Два, на выходе которых формируются символы синдрома 5); три ’Фехвходовых элемента запрета и один конъюнктор, вычисляю- щие соответствующие минтермы (Мп),- (их можно заменить одним Дешифратором, см. гл. 8); четыре двухвходовых сумматора по мо- 87
•^Овых •^1 вых •^2 вых Рис. 7.11. Схема приемного устройства семиэлементного кода Хэмминга, исправляющего одиночную ошибку дулю два, на выходе которых и образуются требуемые информа- ционные символы переданного кодового слова. Входные сигналы на схеме обозначены в соответствии с номерами позиций кодо- вых символов. Рассмотрим для примера передачу третьего кодового слова из табл. 7.3 (0011110). Если ни одной ошибки не произошло, то син- дром будет равен нулю, и информационные символы не изменят- ся. Если же, например, искажен символ xQ, то синдром окажется равным 011, что соответствует символу, занимающему в коде тре- тью позицию. Это значит, что Мп0 равен 1, и, следовательно, принятое значение информационного символа хОвх будет исправ- лено соответствующим сумматором по модулю два на истинное *0 вых' Контрольные вопросы 1. Что такое эффект гонок (соревнований) и как с ним бороться? 2. Исходя из каких соображений выбираются серия и тип интеграль- ных микросхем? 3. Какие параметры ИМС являются наиболее важными при выборе их серии и типа? 4. Каков порядок (методика) синтеза цифровых комбинационных ус- тройств? 5. Используя материал подразд. 7.2, синтезируйте четырехразрядный преобразователь натурального двоичного кода в код Грея. 6. Замените четырехвходовые сумматоры по модулю два и трехвходо- вые элементы запрета, изображенные на рис. 7.11, такими, которые вы- пускаются промышленностью, и объясните свой выбор. 88
ГЛАВА 8 ШИФРАТОРЫ И ДЕШИФРАТОРЫ ч 8.1. Шифраторы В узком смысле слова шифратором называют преобразователь кода «1 из т» (т.е. унитарного кода) в натуральный двоичный код (НДК). Математическое описание преобразователя кода «1 из 4» в НДК было рассмотрено в гл. 2 (см. табл. 2.3 и 2.4) и гл. 4 (см. рис. 4.3). Также в гл. 4 представлены минимизированные ана- литические выражения функций этого шифратора: Уо = *1 vx3 = x0vx2; У1 =х2 VX3 = XOVX1. Из этих соотношений видно, что данный шифратор легко реа- лизуется на дизъюнкторах и элементах ИЛИ—НЕ (рис. 8.1). В его условном графическом обозначении буквы CD — сокращение от coder (шифратор). При помощи шифраторов можно сжимать информацию, так как число разрядов НДК меньше числа разрядов унитарного кода. В цифровых системах с помощью шифраторов обеспечива- ется связь между различными устройствами посредством огра- ниченного числа линий связи. Так, например, в клавишных пультах управления ввод числовых данных может выполняться в унитарном коде нажатием одной из десяти клавиш, а ввод данных в микропроцессор производится в двоичном коде. Для преобразования кода клавишного пульта в код микропроцессо- ра также используется шифратор «из 10 в 4». Однако, посколь- ку четырехразрядный двоичный код имеет не 10, а 16 возмож- ных комбинаций, такой шифратор будет недостаточно эффек- тивным [34]. Примером использования шифраторов является также устрой- ство ввода двоичных кодов в цифровое устройство (в частности, Рис. 8.1. Шифратор 4/2: а — схема на дизъюнкторах; б — условное графическое обозначение; в — схема на элементах ИЛИ —НЕ 89
компьютер) с клавиатуры. При нажатии клавиши на одном из входов шифратора появляется логическая 1 и на выходах устанав- ливается двоичный код, соответствующий нанесенному на кла- више знаку (букве, цифре и т.д.) [8]. Рассмотрим синтез шифраторов на примере преобразования восьмиразрядного унитарного кода в трехразрядный НДК. Состо- яние выходов шифратора показано в табл. 8.1. Анализ табл. 8.1 показывает, что для шифраторов должно вы- полняться условие XjXj = 0 при х, * Xj и что в данном случае для получения аналитической записи логических функций в мини- мизированном виде не требуется применения диаграмм Вейча (которые были бы достаточно сложными для восьми аргумен- тов) . I Начнем с младшего разряда yQ. Он принимает значение 1 толь- ко тогда, когда 1 подается на вход с нечетным номером (хь х3, х5, или х7). Отсюда следует, что = VX3VX5VX7. Средний разряд принимает значение 1 в том случае, когда 1 подается на входы х2, х3, х6 или х7. Откуда следует, что У! = х2 V х3 V х6 V х7. : И, наконец, в старшем разряде у2 устанавливается 1 в случае, когда 1 подается на входы х4, х5, х6 или х7. Следовательно, у2 = х4 V Х5 V Х6 V х7. Из сказанного можно сделать вывод, что схема шифратора 8/3 (рис. 8.2) состоит из трех четырехвходовых дизъюнкторов. Таблица 8.1 Таблица истинности шифратора 8/3 х7 *6 Л5 Х4 •^2 *1 Хо 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 У-1 У\ Уо 0 0 0 0 0 1 0 1 0 0 1 1 л 0 0 1 0 1 1 1 0 90
Рис. 8.2. Шифратор 8/3 на дизъюнкгорах: а — схема; б — условное графическое обозначение Можно предложить другой простой вариант синтеза шифрато- ра на основе элементов ИЛИ—НЕ. В этом варианте единицы, по- ступающие на вход элементов ИЛИ—НЕ, будут на выходе инвер- тироваться. Следовательно, при анализе таблицы истинности шиф- ратора (см. табл. 8.1) нужно отобрать такие единицы, которые дают на выходе нули. Легко убедиться в том, что номера позиций этих входов являются взаимно-дополняющими по отношению к пре- дыдущему варианту синтеза: Схема и условное обозначение такого шифратора приведены на рис. 8.3. Эти рассуждения справедливы для шифраторов любой разряд- ности, в частности шифратора 4/2 (соотношения для которого были выведены в гл. 2 и 4, а схемы приведены на рис. 8.1). Рис. 8.3. Шифратор 8/3 на элементах ИЛИ—НЕ: а — схема; б — условное графическое обозначение Го У1 91
8.2. Приоритетные шифраторы В отличие от простых шифраторов, на вход приоритетных шиф- раторов может быть подан произвольный двоичный код, т. е. код, который может содержать произвольное число единиц, располо- женных в любом порядке. На выходе приоритетного шифратора формируется натуральный двоичный код, определяющий номер позиции приоритетной единицы, т. е. единицы, стоящей в самом старшем разряде. Приоритетные (от лат. prior — первый, старший) шифраторы могут использоваться в качестве обычных шифраторов, посколь- ку унитарный код является частным случаем произвольного. Ши- рокое применение приоритетные шифраторы нашли в преобра- зователях двоичных чисел из формата с фиксированной запятой в формат с плавающей запятой (где порядок определяется по поло- жению старшей единицы), а также в аналого-цифровых преобра- зователях параллельного типа. В подразд. 2.4 были рассмотрены таблицы истинности и анали- тические выражения функций, соответствующих приоритетному шифратору 4/2. Проведем синтез приоритетного шифратора 8/3, что имеет практическое значение, поскольку такие шифраторы выпускают- ся промышленностью. Начнем, как всегда, с составления табли- цы истинности (табл. 8.2). Таблица 8.2 Таблица истинности приоритетного шифратора 8/3 EI Л 4 1$ Л h Л Л Л) А Л) GS ЕО 0 * * * * * * * * 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 * 0 0 1 I 0 1 0 0 0 0 0 1 * * 0 1 0 1 0 1 0 0 0 0 1 * * * 0 1 I 1 0 1 0 0 0 1 * * * * 1 0 0 1 0 1 0 0 1 * * * * * 1 0 1 1 0 И 0 1 * * * * * * 1 1 0 1 0 1 1 * * * * * * * 1 1 1 1 0 92
В этой таблице, помимо информационных (входных 7, — от input и выходных Aj — от address, представляющих адрес старшей еди- ницы входного сигнала), используются следующие сигналы: EI (от enable input) — разрешающий вход (0 — выключен, 1 — включен); GS ( от gate signal) — стробирующий сигнал; ЕО (от enable output) — разрешающий выход, который служит для наращивания разрядности шифратора (0 — включен, 1 — выключен). Используя данную таблицу истинности и правила представле- ния логических функций в ^минимальной ДНФ, изложенные в подразд. 2.4, находим [40]: A = (/7v/6vZ5.z4./2v/5v4./3)^/; GS = (I7 V Z6 V /5 V Ц V 7з V I2 V Л V То) • EI. Соответствующая этим выражениям схема приоритетного шиф- ратора представлена на рис. 8.4 [44]. Обратите внимание на то, что все входные и выходные сигналы на схеме являются инвертиро- ванными по отношению к табличным. Это означает, что по суще- ству такой шифратор показывает в обратном коде положение стар- шего нуля. Из рис. 8.4 видно, что приоритетный шифратор 8/3 состоит из элементов ИЛИ—НЕ, И—НЕ, И—ИЛИ—НЕ и инверторов. На рис. 8.5 показано, каким образом можно производить наращива- ние разрядности такого приоритетного шифратора. Шифратор, расположенный на схеме слева, является старшим по приоритету, его работа разрешена подачей логического нуля (U°) на вход EL Если на его информационных входах 7, есть хотя бы один запрос (логический нуль), то разрешения на работу млад- шего шифратора нет, поскольку ЕО= 1. Кстати, этот же сигнал подается на информационный выход у3 в качестве старшего раз- ряда. При этом информационные выходы Ао, и А2 младшего шифратора пассивны, т.е. имеют единичные значения, и элемен- ты И—НЕ играют роль инверторов для информационных сигна- лов старшего шифратора, поэтому на выходах у, формируются числа в пределах от 8 до 15. Если на входах старшего шифратора запросов (нулей) нет, то он разрешает работу младшего шифратора, вырабатывая сигнал ЕО=у3 = 0, и приводит свои выходы Ло, А{ и А2 в пассивное единич- 93
Рис. 8.4. Схема приоритетного шифратора 8/3
Рис. 8.5. Схема наращивания разрядности приоритетного шифратора 8/3 ное состояние. Теперь на информационные выходы устройства в целом передаются через элементы И—НЕ инвертированные сиг- налы с младшего шифратора, и формируются числа от 0 до 7. Выход элемента И—НЕ, на который подаются инвертирован- ные сигналы GS, позволяет получить дизъюнкцию этих стробиру- ющих сигналов, что соответствует его функции. Покажем, как с помощью приоритетного шифратора и компа- раторов можно построить аналого-цифровой преобразователь (АЦП) параллельного действия (табл. 8.3, рис. 8.6). В таком преобразователе измеряемое напряжение Ц13М подается на неинвертирующие входы всех компараторов. На инвертирую- щие входы подаются опорные напряжения, определяемые исходя из требования минимизации погрешности соотношением Uon , = = (7,5 - /)ДС7, где Л/7 — шаг квантования. Таблица 8.3 Таблица истинности АЦП параллельного действия ^кв.отн Условия Й Х4 х2 Xi У2 У\ То 0 ^изм < ^оп7 0 0 0 0 0 0 0 0 0 0 0 1 С4п7 < Ц,зм < *7оп6 1 0 0 0 0 0 0 0 0 0 1 2 С4п6 < ^изм < ^оп5 1 1 0 0 0 0 0 0 0 1 0 3 ^оп5 < ^изм < ^>п4 1 1 1 0 0 0 0 0 0 1 1 4 ^оп4 < ^изм < ^4)пЗ 1 1 1 1 0 0 0 0 1 0 0 5 и , < и < U , 'ЛэпЗ ’-'изм '-уоп2 1 1 1 1 1 0 0 0 1 0 1 6 ^оп2 < ^4i3M < ^onl 1 1 1 1 1 1 0 0 1 1 0 7 ^оп! < ^изм < 1 1 1 1 1 1 1 0 1 1 1 (. 95
Рис. 8.6. Аналого-цифровой преобразователь параллельного действия В зависимости от значения измеряемого напряжения (см. стол- бец «Условия» в табл. 8.3) на выходах одних компараторов уста- навливаются высокие потенциалы, соответствующие логической единице, а на выходах других — низкие, соответствующие логи- ческому нулю. Анализ рис. 8.6 и табл. 8.3 убеждает в том, что двоичный код на выходе представленного квантователя в точности отображает отно- сительное значение квантованного напряжения (С4в.отн = U^^U), несмотря на то, что все входы и выходы приоритетного шифрато- ра являются инвертированными. 8.3. Дешифраторы Дешифраторами называются устройства, преобразующие нату- ральный двоичный код в код «1 из т». Очевидно, что функции дешифраторов являются обратными по отношению к шифрато-
Таблица 8.4 Таблица истинности дешифратора 3/8 Входы Выходы V л2 4 Д) А А А А А А А 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 * * * 0 0 0 0 0 0 0 0 рам. Такой преобразователь уже упоминался после таблицы ис- тинности минтермов (см. табл. 2.1), поскольку в ДНФ функции дешифраторов определяются через одиночные минтермы. Дешифраторы используются в мультиплексорах, демультиплек- сорах (см. гл. 9) и другого рода коммутаторах, в том числе, для управления индикаторами, принтерами и выбора ячеек памяти в запоминающих устройствах при записи и считывании информации. Знакомство с дешифраторами начнем, как всегда, с таблицы истинности (табл. 8.4) [44]. Вход V (от veto — запрет) дешифратора позволяет не только запрещать работу устройства, но и наращивать его разрядность. Когда на этот вход подается логическая едини- ца, независимо от состояния информационных входов на выходе образуются нули. Когда же на вход V дешифратора подается логический нуль, на выходе, номер которого соответствует двоичному коду адреса, обозна- ченного на входе, образуется логическая еди- ница, на других выходах формируется логи- ческий нуль. Как уже упоминалось, логичес- кая функция каждого выхода соответствует минтерму переменных, заданных на входах Л2, Aq. Условное графическое обозначение дешиф- ратора 3/8 (DC — сокращение от decoder — де- шифратор) приведено на рис. 8.7. 4 Нарышкин Рис. 8.7. Условное графическое обо- значение дешиф- ратора 3/8 97
Do D\ D2 D, D4 d5 D6 Di Рис. 8.8. Схема дешифратора 3/8 98
Для того чтобы синтезировать схему, запишем уравнения де- шифратора в ДНФ, непосредственно следующие из табл. 8.4: Из полученных выражений видно, что для синтеза дешифра- тора необходимо восемь конъюнкторов и четыре инвертора. Одна- ко для обеспечения меньшего влияния нагрузки на источники входных сигналов обычно добавляют еще три инвертора (по числу информационных, в данном случае адресных входов). Схема де- шифратора 3/8 приведена на рис. 8.8. Для расширения возможности применения дешифраторов в раз- личных устройствах возможно также увеличение их разрядности путем объединения нескольких ИМС. Один из таких примеров при- веден на рис. 8.9 [34]. В этой схеме используется пять дешифраторов 2/4, а в результате увеличения разрядности получают дешифратор 4/16. Первый дешифратор преобразует сигналы старших двух разря- дов адреса (х2, х3) в сигналы разрешения (EZ) для остальных четы- рех дешифраторов. Эти сигналы разрешения включают на выходе одну из тетрад, внутри которых сигнал выбирается младшими дву- мя разрядами адреса (xq, Xj). Время установления у такого дешиф- ратора оказывается в два раза больше, чем у исходного. *0 *1 Х2 *3 EI A) Л DC I Do Di d2 D3 ^1 EI ^0 EI DC A Di d2 D3 Ло ^1 EI DC Д) Di d2 D3 ^0 ^1 EI DC Do Di d2 D3 Ло ^1 EI DC Do Di d2 D3 Уо У\ У2 Уз У4 Уз Уб У1 У» У9 Ую Ун У12 У13 У14 У15 ( Рис. 8.9. Схема увеличения разрядности дешифратора 99
Контрольные вопросы 1. Что называется шифратором? Где и для чего он применяется? 2. Нужно ли использовать диаграммы Вейча для получения логичес- ких функций шифратора в минимизированном виде? 3. На каких логических элементах можно синтезировать шифраторы? 4. Что называется приоритетным шифратором? В каких устройствах применяется? 5. Используя таблицу истинности приоритетного шифратора 3/8 (см. табл. 8.2), выведите аналитические выражения его логических функций. 6. Объясните работу АЦП параллельного действия, используя его схе- му и таблицу истинности. 7. Приведите таблицу истинности дешифратора 3/8. 8. Каким образом можно увеличивать разрядность дешифратора? 9. В каких устройствах применяются дешифраторы? 10. Приведите аналитические выражения функций дешифратора 3/8 в совершенной дизъюнктивной нормальной форме. ГЛАВА 9 МУЛЬТИПЛЕКСОРЫ И ДЕМУЛЬТИПЛЕКСОРЫ 9.1. Мультиплексоры Мультиплексорами (от англ, multiplexer — коммутатор, multi — много, plex — сеть) называют устройства, передающие сигнал с одного из входов, указанного в адресе, на общий выход, т. е. вы- полняющие роль селектора каналов. Мультиплексоры нашли ши- рокое применение как универсальные переключатели и устрой- ства, реализующие произволыфте логические функции. Познакомимся более подробно с функцией и устройством муль- типлексора, таблица истинности и условное графическое обозна- чение которого приведены на рис. 9.1. Из таблицы истинности на рис. 9.1, а следует логическая фун- кция в СДНФ с вынесенным за скобки сигналом запрета V: у= V-(Dq-A2-A\-Aq v D\• Л2-At-Aq v D2-A2‘A[-Aqv D3-A2-Ai-Aqv v D4-A2-Ai-A()V D^-A2’Ai'Aq\/ D^-A2‘A[-Aqv /^-Дг-ЯрД)). Сравнение этой формулы с формулой, полученной для дешиф- ратора, показывает, что можно синтезировать мультиплексор на основе дешифратора, добавив по одному входу конъюнкторам для логического перемножения информационных сигналов на сигна- лы дешифратора и последующего логического суммирования и применив элемент И —ИЛИ —НЕ (рис. 9.2).
л2 А А у 0 0 0 0 _р»_ 0 0 0 1 0 0 1 0 1^2* 0 0 1 1 Di 0 1 0 0 D, 0 1 0 1 d5 0 1 1 0 D6 0 1 1 1 1 * * * 0 a б Рис. 9.1. Таблица истинности (а) и условное графическое обозначение (б) мультиплексора Как уже отмечалось, мультиплексоры можно применять для реализации логических функций, заданных таблицами истиннос- ти или в СДНФ, подключая к информационным входам соответ- ствующие значения функций, а к адресным — логические пере- менные. В качестве примера рассмотрим реализацию функции трех пе- ременных, заданной в табл. 9.1. Схема соответствующего комбина- ционного устройства приведена на рис. 9.3, а. Используя алгебраические (сокращенные) таблицы истиннос- ти (табл. 9.2 и 9.3) этой логической функции, приходим к воз- можности ее реализации на мультиплексорах меньшей разрядно- сти (рис. 9.3, б, в). Если число адресных входов, несмотря на применение алгеб- раических таблиц истинности, все-таки оказывается меньше чис- ла логических переменных реализуемой функции, прибегают к наращиванию разрядности имеющихся в распоряжении мульти- плексоров. Одним из способов наращивания разрядности является допол- нение группы мультиплексоров (число которых определяется не- обходимым количеством информационных символов) декодером (управляемым старшими разрядами адреса, если его выходные сигналы подаются в инвертированном виде на запрещающие вхо- ды мультиплексоров) и дизъюнктором (если его входы подклю- чаются к прямым выходам мультиплексоров) или элементом И—НЕ (если его входы подключаются к инвертированным выхо- дам мультиплексоров). Выход дизъюнктора или элемента И—НЕ и является общим выходом всего устройства. 101
Рис. 9.2. Схема мультиплексора КП7 Более рациональным является устройство многоразрядного мультиплексора с добавлением одного мультиплексора, устанав- ливаемого на общем выходе (рис. 9.4). В этой схеме выходы муль- типлексоров DD1... DD4 подключены к информационным входам объединяющего мультиплексора DD5, адресными входами кото- рого служат старшие разряды аргументов функции. Достоинством данного устройства является то, что оно состоит из одноименных ИМС — мультиплексоров. 102
Таблица 9.1 Таблица истинности исходной функции трех переменных х2 Х\ ль У 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 Рис. 9.3. Схемы реализации логической функции с помощью мультиплексоров: а — на основе арифметической таблицы истинности; б, в — на основе алгебра- ических таблиц истинности (см. табл. 9.2 и 9.3) Таблица 9.3 Алгебраическая таблица истинности с введением двух аргументов в обозначение функции Таблица 9.2 Алгебраическая таблица истинности с введением одного аргумента в обозначение функции х2 Х1 у 0 0 Хо 0 1 Хо 1 0 0 1 1 1 Х2 у 0 Хо 1 Х\ 103
*0' X]' *2' *3 До «г О Х4 *6 Х7 а0 «1 О *8 *10 *11 «0 «1 О *12 *13 *14 *15 <?о «1 О D. Dx d2 А MX DD1 А -41 V D. В\ d2 Di MX DD2 А ^1 V А Dx d2 D, MX DD3 -4» V А Dx D2 А MX DD4 _4j_ V MX а2 «з V DD5 Рис. 9.4. Схема мультиплексора с разрядностью, наращенной за счет дополнительного мультиплексора Рассмотрим применение мультиплексоров в преобразователях целых чисел из формата с фиксированной запятой в формат с плавающей запятой (рис. 9.5). Напомним, что двоичные числа X в формате с фиксированной запятой связаны с числами в формате с плавающей запятой следу- ющим соотношением: X- М-2Р, где М — мантисса; Р — порядок. В описываемом преобразователе мультиплексоры выполняют роль комбинационного регистра сдвига, управляемого сигналом порядка Р, образованным приоритетным шифратором (см. гл. 8). Сдвиг разрядов исходного числа X необходим для получения нор- мированной мантиссы М. Полагая старший (нулевой) разряд ман- 104
Рис. 9.5. Схема преобразователя целых чисел с фиксированной запятой в формат с плавающей запятой тиссы всегда равным единице, получаем на выходе преобразова- теля разряды ее дробных значений. При необходимости увеличения разрядности мантиссы можно в схему, приведенную на рис. 9.5, добавить еще несколько муль- 105
*0 *1 *2 *3 Ро Pi Pl Рис. 9.6. Схема устройства формирования дополнительных младших разрядов мантиссы типлексоров с меньшей разрядностью, поскольку при малых зна- чениях порядка младшие разряды мантиссы становятся нулевыми. Старший разряд порядка после инвертирования следует подавать на входы запрета (Г) дополнительных мультиплексоров (рис. 9.6). Мультиплексоры применяют также в преобразователях двоич- ных чисел из формата с плавающей запятой в формат с фиксиро- ванной запятой (рис. 9.7). В таких преобразователях сигналы ph отображающие порядок, подаются на соответствующие адресные входы Д мультиплексо- ров MX. Если порядок равен нулю, то преобразуемое число в фор- мате с фиксированной запятой равно мантиссе, поэтому ко вхо- дам Do мультиплексоров, обеспечивающих l-й разряд числа с фик- сированной запятой, подключены /-е разряды мантиссы. В данном примере мантисса принята четырехразрядной (NM= 4), поэтому в соответствии с определением понятия мантиссы ее старший раз- ряд т0 = 1. В общем случае Dhk=mi_k при -NM<l-k<&, Dhk = 1 при /= к; Dhk = 0 при остальных значениях /- к, где к — номер инфор- мационного входа мультиплексора. Число требуемых для преобразования мультиплексоров равно NM+ 2NP- 1. Следовательно, при максимальном значении поряд- ка (Р= 3) сигналы мантиссы должны быть поданы соответствен- но на информационные входы мультиплексоров, расположен- ных на рис. 9.7 слева. К незадействованным информационным входам подключается нулевой потенциал. У1 Рис. 9.7. Схема преобразователя двоичных чисел из формата с плаваю- щей запятой в формат с фиксированной запятой 106
9.2. Демультиплексоры Демультиплексоры, как следует из смысла отрицательной при- ставки де, выполняют функцию, обратную мультиплексорам: переключают сигнал с единственного входа на один из выхо- дов — тот, который указан в адресе. Состоят демультиплексоры из дешифратора, управляемого адресом, и конъюнкторов, уп- равляемых информационным сигналом и выходами дешифра- тора (рис. 9.8). Демультиплексоры используются в системах централизованного оповещения подчиненных и абонентов, а также в линиях связи с временным разделением каналов между постоянными адресатами. В последнем случае система содержит на передающем конце линии связи мультиплексор, а на приемном — демультиплексор (рис. 9.9). Такая система должна обеспечивать также передачу информации об адресе, т. е. номере активизированного канала. D А б Рис. 9.8. Условное графическое обозначение (а) и схема (б) демультиплексора Рис. 9.9. Схема четырехканальной линии связи с временным разделением каналов, в которой используются мультиплексор и демультиплексор 107
Контрольные вопросы 1. Что такое мультиплексор и где он используется? 2. Каким образом следует поступать, если разрядность имеющихся в вашем распоряжении мультиплексоров меньше требуемой? 3. Из каких интегральных микросхем состоит преобразователь чисел формата с фиксированной запятой в формат с плавающей запятой? 4. Как определить разрядность порядка целого числа, если известна разрядность этого числа в формате с фиксированной запятой? 5. Сколько нужно иметь мультиплексоров, чтобы преобразовать число в формате с плавающей запятой (NM= 8, NP=3) в формат с фиксиро- ванной запятой? 6. Какие логические элементы нужно добавить к дешифратору, чтобы получить демультиплексор? ГЛАВА 10 СУММАТОРЫ 10.1. Одноразрядные сумматоры Обычно суммирование двух чисел производят поразрядно, с определением цифры в данном разряде и сигнала переноса в со- седний, более старший разряд. При суммировании младших разрядов требуется одноразряд- ный сумматор с двумя входами, поскольку входного сигнала пе- реноса в этом разряде нет. Такие сумматоры, в отличие от сумма- торов с тремя входами, называют полусумматорами (рис. 10.1). Из таблицы истинности (см. рис. 10.1, а) следуют аналитичес- кие выражения функций суммы S и выходного сигнала переноса CRO (от carry output) в СДНФ: S=a-b v a-b', CRO= a-b. а ь CRO 5 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 а а ь HS S CRO Рис. 10.1. Таблица истинности 'л), схема (6) и условное графическое обозначение ч?) полусумматора 108
По этим формулам синтезирована схема, показанная на рис. 10.1, б. В условном графи- ческом обозначении (см. рис. 10.1, в) под со- кращением HS подразумевается полусумма- тор (от half-summator*, хотя более точным было бы обозначение НА (от half-adder). Одноразрядный полный сумматор в отли- чие от полусумматора имеет три входа: для двух разрядов слагаемых (а и Ь) и входного сигнала переноса (CRI— от carry input). В его условном обозначении (рис. 10.2) надпись SM CRI а ь SM S CRO Рис. 10.2. Условное графическое обозна- чение одноразрядно- го полного сумма- является сокращением от summator. Из анализа таблицы истинности (табл. 10.1) следует, что од- норазрядный полный сумматор можно синтезировать на основе трех одноразрядных полусумматоров по схеме, представленной на рис. 10.3. Причем полусумматор, расположенный на этой схе- ме справа, можно заменить дизъюнктором. Однако есть и другие варианты реализации одноразрядного полного сумматора. Рассмотрим подробнее один из них. Для этого заполним диаграммы Вейча для функций CRO и S (рис. 10.4). В результате минимизации функции CRO получают следующее выражение: CRO = CRIbv CRI-avba. (Ю.1) Функция S не минимизируется, но ее можно представить сум- мой трех аргументов по модулю два, подобно тому, как это было сделано в отношении функции у0 на рис.7.1: 5= CRI®a®b. (Ю.2) Таблица 10.1 Таблица истинности одноразрядного полного сумматора а ь CRI CRO 5 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 ~ 1 0 1 1 1 1 109
CRT a b S CRO t Рис. 10.3. Схема одноразрядного полного сумматора на основе трех полусумматоров CRO CRI CRI а а Рис. 10.4. Диаграммы Вейча функций одноразрядного полного сумматора Из формул (10.1> и (10.2) следуют схемы для реализации од- норазрядного полного сумматора (рис. 10.5). Иногда (например, при обработке видеосигналов) возникает задача суммирования большого числа единиц, принадлежащих од- ному разряду. В этих случаях применяют одноразрядные мульти- сумматоры. На рис. 10.6 представлена схема семивходового одно- разрядного мультисумматора, состоящего из четырех одноразряд- ных полных сумматоров. CRI CRO Рис. 10.5. Варианты схем для реализации одноразрядного полного сумматора CRI а b Рис. 10.6. Схема семивходового одноразрядного мультисумматора а НО
10.2. Многоразрядные арифметические сумматоры Под арифметическими сумматорами будем понимать суммато- ры только положительных чисел. В настоящее время используются два типа многоразрядных сумматоров: с последовательным и ус- коренным переносом сигналов от младших разрядов к более стар- шим. Сумматоры с последовательным переносом образуются путем последовательного соединения одноразрядных полных суммато- ров таким образом, что выходной сигнал переноса предыдущего (более младшего) разряда подается на вход сигнала переноса пос- ледующего (более старшего) разряда (рис. 10.7). Таблица истинности и условное графическое обозначение двухразрядного арифметического сумматора ИМ2 приведены на рис. 10.8 [44]. Существенный недостаток сумматоров с последовательным переносом заключается в большой задержке TCROm выходного сиг- нала цепи переноса, связанной с его последовательным распрос- транением через все одноразрядные сумматоры, каждый из кото- рых имеет задержку переноса TCR0 [24]. В результате TCR0 т = т TCR0, а задержка образования т-го разряда суммы выражается следую- щим уравнением: Tsm~ Ts+{m- 1) TCR0, где Ts — задержка суммы одноразрядного сумматора. При большом числе разрядов (zzz>4 ... 8) задержки TSm, TCROm оказываются весьма значительными, поэтому для повышения быстродействия в сумматорах обычно используются ускоренные способы формирования переноса. Наиболее часто применяется способ одновременного форми- рования переноса для группы из нескольких разрядов [ 1 ]. Известно, что функции суммы S-, и переноса СК О, для z-ro раз- ряда после минимизации имеют вид (10.1) и (10.2). Если вынести за скобку в (10.1) переменную CRI, получим CRO^ G,v Pr CRIb (10.3) Рис. 10.7. Схема двухразрядного арифметического сумматора с последовательным переносом
Входы CRI=0 CRI= 1 Яо Ь\ А) CRO Si So CRO S, So 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 J 0 1 1 1 0 1 1 1 1 1 0 1 1 1 Рис. 10.8. Двухразрядный арифметический сумматор ИМ2: а — таблица истинности; б — условное графическое обозначение где функция генерации переноса (от англ, carry generation) Gi=arbh (10.4) а функция распространения переноса (от англ, carry propagation) P^a^bi. (10.5) При этом G, • Р, = а, • b, • (я, v b) = a, • bj v at • bt = at • bj = Gt. (10.6) Логически введение этих функций объясняется тем, что сиг- нал переноса на выходе (CRO) возникает в зависимости от нали- чия или отсутствия сигнала переноса на входе (CRI). Если входной сигнал переноса отсутствует (CRI - 0), то для наличия выходного сигнала переноса (CRO= 1) необходимо, что- 112
бы сигналы а и b равнялись единице. Этому условию соответствует равенство функции генерации переноса G = a-b= 1. Если входной сигнал переноса в наличии (CRI= 1), то для воз- буждения выходного сигнала переноса достаточно, чтобы сигнал а или сигнал b равнялись единице. Этому условию соответствует зна- чение функции распространения сигнала переноса Р= a v b- 1. Выражение (10.3) можно привести к виду, более удобному для реализации функции сигнала переноса. Применив последователь- но два раза формулу Моргана, получим выражение CROi = G, v Pi -CRIi = Gj Pi CRIj = G, • (Pi vCRr~), раскрывая скобки в котором, запишем CROi = GT^GrCRIi, а с учетом (10.6) CROi=Pi^GiCRIi. Теперь одновременно формируемые сигналы переноса, учиты- вая, что CRIi+i = CRO,, можно выразить следующими соотноше- ниями: CRO. = PQ^ G. CRI.', CROi = Px^Gi CRLi = Pi v^ (^v^ CA7o); CRO2 = P2 v^ CP72 = Л v^-[Pi v^.(^v^ CPTo)] = = ^.(^v^ CP^); CRO. = = = PivG3T^GiG1P^G3GiGl(PoVG9'CRIl)). (Ю.7) Из приведенных формул видно, что для образования сигналов переносов CRО, необходимо получить функции Pz- и 6’/ для каждо- го разряда. К тому же, так как сложность функции и схем форми- рования сигналов переноса быстро возрастает при увеличении чис- ла разрядов, данный способ используется обычно при т < 4. Схема четырехразрядного сумматора с ускоренным переносом (рис. 10.9) реализуется устройством средней степени интеграции (СИС). Из рис. 10.9 видно, что внутри сумматора ИМЗ осуществляется последовательный перенос. Это оправдано тем, что в данном слу- чае выигрыш в быстродействии за счет применения параллельного переноса был бы ничтожно мал (единицы процентов), в то время как усложнение схемы было бы весьма существенным. Зато сигнал переноса на выходе тетрады формируется параллельным способом. ИЗ
CR[ CRO Рис. 10.9. Схема (а), секция ускоренного переноса (б) и условное графическое обозначение (в) четырехразрядного арифметического сумматора ИМЗ 114
В ИМС ИМ6, представляющей собой также четырехразрядный арифметический сумматор, все переносы параллельные [44]. Подставив (10.4) и (10.5) в (10.2), с учетом соотношения Х0 @ *1 © *2 = *0~*1 Ф Х2 - Xq - Xj ~ Х2 получим выражение для функции суммы в следующей форме [33]: 5= CRI- (a~b) = CRI- (а-b va-b) = = CRI- [a-b v (a-b v a-b)] = CRI- [a-bv (а' b-a v a-b-b)] = = CRI- [a-bva-b-(av F)] = CRI-[a-bv (aVb) • (a-T)] = = CRI- P-GvP-G = CRI- P- G. При построении многоразрядных сумматоров (т = 8, 12, 16 и т.д.) обычно по два или четыре разряда объединяют в группы, а затем в зависимости от требований, предъявляемых к быстродей- ствию, используют последовательный или ускоренный перенос между этими группами. Входной сигнал переноса CRI применяют для объединения четырехразрядных интегральных схем в многоразрядную систему. Выходной сигнал переноса CRO, получаемый на выходе чет- вертого разряда, соответствует следующему выражению: CRO = CRGv CRP- CRI, (10.8) где сигнал разрешения группового переноса (от англ, сапу prompting) CRP = Gy ^ Gi Go = G3 v G2 v G, v Go, (Ю.9) а сигнал группового переноса (от англ, carry of group) CRG = = Подставив (10.9) в (10.8), получим CRO = CRG^^G^G^G^CRI). Секции ускоренного переноса серии 500ИП179, позволяющие обеспечить ускоренный перенос второго уровня, объединяют в 64-разрядном АЛУ (от англ. ALU — arithmetic and logic unit — арифме- тико-логическое устройство) 16 больших интегральных схем (БИС) серии К1800ВС1 и пять средних (СИС) серии 500ИП179. Данные, приведенные в [33] относительно эффективности при- менения секций ускоренного переноса, свидетельствуют об их практической бесполезности при одноуровневой организации и о сокращении времени выполнения арифметических операций в двухуровневых структурах примерно в два раза. 115
10.3. Одно- и многоразрядные алгебраические сумматоры Под алгебраическим суммированием будем понимать суммиро- вание чисел с произвольными знаками, т. е. положительных и от- рицательных. Знак положительного числа в двоичном коде при- нято отображать нулем (отсутствием заема), отрицательного — единицей (наличием заема), стоящими в специальном знаковом разряде, расположенном левее самого старшего значащего разря- да, т. е. там, где обычно ставится плюс или минус. I Алгебраическое суммирование чаще всего производится пере- водом отрицательных чисел из прямого (натурального) двоично- го кода в дополнительный код, что позволяет использовать при этом в качестве основного элемента арифметический сумматор. Если в прямом коде используется ^-разрядное двоичное отри- i цательное число Лпр, то в дополнительном коде это число можно выразить следующим образом: Лдоп = 2--Лпр. (10.10) Число 2т как раз и является тем самым заемом, который обычно используется при вычитании и соответствует единице в (т + 1)-м (знаковом) разряде. I Например, число минус шесть (-6) в натуральном двоичном (пря- мом) коде записывается как 1.110, т.е. одна единица в знаковом разряде означает минус, а три значащих разряда (т = 3) соответству- ют шести. Применяя формулу (10.10), находим 23 - 6 = 2, откуда в дополнительном коде число -6 запишем как Д.ю„ =1.010 (табл. 10.2). Число значащих разрядов следует выбирать так, чтобы сумма чи- сел по абсолютному значению не превосходила Т' -1. Если при этом условии в результате сложения образуется перенос в область знако- вого разряда, то и там используется суммирование по модулю два. Например, 5 - 3 = 2 в дополнительном коде будет выглядеть следу- ющим образом: 0.101 +1.101 =0.010. Единица (заем) в знаковом разря- де второго слагаемого, соответствующая числу 2"', здесь компенсиро- валась единицей переноса из старшего значащего разряда суммы. Правило формирования дополнительного кода (10.10) содер- жит процедуру вычитания, которую, как раз, необходимо заме- нить сложением. Для этого используется возможность перехода от натурального двоичного (прямого) кода к дополнительному че- рез так называемый обратный код, все значащие разряды которо- го являются инверсными (обратными) по отношению к одно- именным разрядам прямого кода (см. табл. 10.2). | Действительно, обратный код определяется формулой ЛбР= (2"- 1) -ЛР. (Ю.П) В двоичном коде число (2W- 1) выражается с помощью т еди- ниц, стоящих в значащих разрядах, поэтому, если из него вы- 116
Таблица 10.2 Таблица истинности прямого, дополнительного и обратного кодов Десятичный код Прямой код Дополнительный код Обратный код ^зн «2 «1 «0 ^зн g2 «0 #зн эп «2 «0 -0 1 0 0 0 0 0 0 0 1 1 1 1 —— 1 0 0 1 1 1 1 1 1 1 0 -2 1 0 1 0 1 1 1 0 1 1 0 1 -3 1 0 1 1 1 0 1 1 1 0 0 -4 1 1 0 0 1 1 0 0 1 0 1 1 -5 1 S 0 1 1 0 1 1 1 0 1 0 -6 1 1 1 0 1 0 1 0 1 0 0 1 -7 1 1 1 1 1 0 0 1 1 0 0 0 честь любое т-разрядное число Лпр в двоичном коде, то в тех раз- рядах Лпр, где стояли единицы, в результате появятся нули, а где стояли нули, останутся единицы. Тем самым мы доказали, что при выполнении равенства (10.11) значащие разряды числа Лпр подвергаются инверсии, откуда и название «обратный код». Сравнивая (10.10) и (10.11), находим, что ДдОП - А)бр + 1 • (10.12) Следовательно, применяя инвертирование значащих разрядов прямого кода и последующее суммирование с единицей, можно получить дополнительный код без операции вычитания. Учитывая, что инвертирование разрядов необходимо производить только при наличии единицы в знаковом разряде, его можно реализовать с по- мощью элементов Исключающее ИЛИ. Тогда весь преобразователь числа из прямого кода в дополнительный оказывается содержащим т элементов Исключающее ИЛИ, преобразующих число в обрат- ный код, и сумматор числа в обратном коде со значением знакового разряда (в случае отрицательного числа — с единицей) (рис. 10.10). Поскольку в результате алгебраического суммирования на вы- ходе число получается в дополнительном коде (в случае отрица- тельного значения суммы), необходимо осуществлять обратное преобразование дополнительного кода в прямой. Однако для это- го не надо изобретать новый преобразователь, поскольку прямой и дополнительный коды являются взаимно дополняющими. Дей- ствительно, если в (10.10) поменять местами кодовые значения, т.е. записать пр ДОП 5 117
Рис. 10.10. Схема преобразователя двоичного прямого кода в дополнительный и подставить в эту формулу выражение для Лдоп из (10.10), полу- чим тождество Лпр = Лпр. Теперь очевидно, что после алгебраичес- кого суммирования необходимо использовать преобразователь, I схема которого изображена на рис. 10.10. | Обобщая сказанное, приходим к выводу, что алгебраический сумматор должен содержать помимо основного (арифметическо- го) сумматора еще три преобразователя кода (два до сумматора и один — после), включающие в себя элементы Исключающее ИЛИ и сумматоры. От одного сумматора обратного кода со знаковым разрядом | можно избавиться подачей этого знакового разряда (например, числа а) на вход переноса (CRI) основного сумматора (рис. 10.11). От другого такого же сумматора можно освободиться, используя возможность компенсации недостатка единицы в дополнитель- ^пр 0 ^пр 1 ^пр 2 ^зн =1 =1 =1 пр О пр 1 пр 2 зн а\ CRI ао ^0 а\ «2 CRI «о пр О пр 1 зн Рис. 10.11. Схема алгебраического комбинационного сумматора 118
Номер варианта Д' 3г1 Ь.„ ЗН CRI А) 0 0 0 0 0 0 1 0 0 1 * * 2 0 1 0 0 1 3 0 1 1 0 0 4 1 0 0 1 0 5 1 0 1 1 1 6 1 1 0 * * 7 1 1 1 1 0 Рис. 10.12. Таблица истинности (а) и диаграммы Вейча (б) для определе- ния функций добавления единиц в предварительный и выходной сумма- торы, показанные на рис. 10.11 ном коде второго слагаемого недостатком единицы в прямом коде алгебраической суммы. Рассмотрим все возможные варианты, возникающие при та- кой методике синтеза (рис. 10.12). В столбец CRIтаблицы на рис. 10.12, а заносим информацию о сигналах, подаваемых на вход переноса основного сумматора; в столбец Ь$ — то, что необходимо внести в младший разряд выход- ного сумматора, входящего в состав преобразователя алгебраи- ческой суммы из дополнительного кода в прямой. Начальный вариант. Оба слагаемых положительные. Сумма, ес- тественно, тоже положительная. Следовательно, никаких добав- лений единиц не требуется (в соответствующих столбцах таблицы ставим нули). Вариант 1. Этот вариант является запрещенным, поскольку невозможно, чтобы при положительных слагаемых сумма была отрицательной. Следовательно, в столбцах выходных функций таб- лицы ставим значок факультатива (*). Вариант 2. Например: А =6; В=-2; 5=4. В прямом коде Л = 0.110; В= 1.010. В обратном коде В= 1.101. При суммировании получим 0.110 + 1.101 = 0.011, что на единицу меньше требуемого. Следова- тельно, на выходе необходимо добавить единицу (£0- !)• Вариант 3. Сделаем теперь так, чтобы вычитаемое стало боль- ше уменьшаемого и разность получилась отрицательной. Напри- мер: Л=2; В=-6. В прямом коде Л=0.010; В= 1.110. В обратном коде В= 1.001. При суммировании получим 0.010 + 1.001 = 1.011. Пере- вод в обратный код путем инвертирования значащих разрядов дает значение 1.100, соответствующее истинной алгебраической сум- 119
ме в прямом коде (-4). Следовательно, добавления единицы в вы- ходной сумматор не требуется (Ьо = 0). Вариант 4. Здесь не требуется рассматривать конкретные при- меры, поскольку только одно слагаемое является отрицатель- ным, и добавление единицы осуществляется в основном сумма- торе (CRI= 1). Так как сумма при этом является положительной, на выходе в добавлении единицы нет необходимости. Вариант 5. Поскольку на входе аккуратно оформляется число А в дополнительном коде, на выходе также требуется добавление единицы к сумме, выраженной в обратном коде. Вариант 6. Этот вариант является запрещенным, поскольку два отрицательных числа не могут в сумме давать положительное чис- ло. Отсюда следует факультативность сигналов на входах основно- го и выходного сумматоров. Вариант 7. Возьмем в качестве примера А = -3; В = -2. Сумма чисел А в дополнительном коде (А= 1.101) и В в обратном коде (В= 1.101) соответствует выражению 1.010, переводя которое в обратный код, получим 1.101, что соответствует в прямом коде значению минус пять. Следовательно, в этом варианте добавлять единицу в выходной сумматор не нужно. Занесем данные таблицы истинности, приведенной на рис. 10.12, а, в диаграммы Вейча на рис. 10.12, б. После объединения единиц и факультативов в контуры получим следующие уравнения: Эти уравнения и реализованы в схеме на рис. 10.11. Иногда возникает необходимость суммировать множество еди- ниц с разными знаками. В этих случаях можно использовать ал- гебраические одноразрядные мультисумматоры. В качестве приме- ра на рис. 10.13 приведен семивходовой алгебраический мульти- сумматор. Из представленной схемы видно, что основу устройства со- ставляют трех- и четырехразрядные комбинационные сумматоры. Алгебраическая сумма единиц на выходе сумматора представлена в дополнительном коде. % 10.4. Сумматоры чисел, представленных в формате с плавающей запятой Все схемы сумматоров, рассмотренные ранее, обеспечивали суммирование чисел, выраженных в формате с фиксированной запятой. Постараемся ответить на вопрос, как быть, если слагае- мые подаются в формате с плавающей запятой. Здесь возможны, по крайней мере, два варианта. 120
Рис. 10.13. Схема семивходового алгебраического комбинационного мультисумматора Первый вариант схемы логически очень простой: оба слагаемых (Лп з и Вп 3) переводятся преобразователями формата из формата с плавающей запятой в формат с фиксированной запятой (Лф 3 и Вфз) и подаются на арифметический сумматор, а сумма (5ф.3) при необходимости преобразуется преобразователем формата в формат с плавающей запятой (5п.з) (рис. 10.14). Этот вариант следует применять, если число разрядов мантисс больше или равно наибольшему порядку одного из чисел, а также в случае, когда порядок ограничивается малым числом разрядов (например, четырьмя). (Преобразователи форматов рассмотрены в гл. 9.) При невыполнении условий применения первого варианта схемы, когда для реализации преобразователей формата требу- ется слишком большое число мультиплексоров, предлагается Рис. 10.14. Первый вариант схемы арифметического сумматора двух чисел, представленных в формате с плавающей запятой 121
тв Рл Рв Рис. 10.15. Второй вариант схемы арифметического сумматора двух чисел, представленных в формате с плавающей запятой: 1 — алгебраический сумматор; 2, 3, 6, 7 — комплексы мультиплексоров; 4 — преобразователь формата плавающая запятая/фиксированная запятая; 5, 8 — арифметические сумматоры I второй вариант схемы, логически более сложный, чем первый (рис. 10.15). Я Если у чисел А и В разные порядки (рА*р^, то перед сумми- рованием мантиссу числа с меньшим порядком нужно сдвинуть в сторону меньших разрядов нарА-рв разрядов. Для того чтобы эту разность определить, используется алгебраический сумматор 7, работающий таким образом, что порядок числа В вычитается из порядка числа А. Теперь можно по знаковому разряду разно- сти порядков определить, какую мантиссу необходимо сдвинуть. Если рА>рв, то знаковый разряд разности порядков равен нулю. Этот сигнал, будучи поданным на адресные входы мультиплек- соров 2 и 3, обеспечит на выходе мультиплексоров 2 появление мантиссы числа А, а на выходе мультиплексоров 3 мантиссы числа В. Я В этом случае мантисса числа В с помощью преобразователя формата плавающая запятая/фиксированная запятая 4 смещается на необходимое число разрядов вправо и затем уже суммируется с мантиссой числа А в сумматоре 5. Я Если знаковый разряд разности порядков окажется равным единице, то на выходе мультиплексоров 2 появится мантисса числа В, а на выходе мультиплексоров 3 — мантисса числа А. Я Если на выходе сумматора 5 возникнет сигнал переноса, то необходимо произвести коррекцию как мантиссы (с помощью мультиплексоров 6, на адресный вход которых подается сигнал I переноса), так и порядка. Порядок суммы определяется как наи- больший с помощью мультиплексоров 7, управляемых по адрес- ному входу знаковым разрядом разности порядков, с добавлени- ем единицы переноса из сумматора 5 в сумматор 8, если таковая возникнет. I V) 122
10.5. Арифметические умножители Многоразрядные сумматоры нашли свое применение в ариф- метических умножителях многоразрядных чисел. Пусть необходи- мо получить произведение Р (от англ, product) как результат умно- жения двух двоичных чисел: множимого (multiplicant) /«-разряд- ного числа А и множителя (multiplierfactor) «-разрядного числа В: т-1 л-1 т-1 п-1 = +... + ап_^2п~х +... + axbflx + + 4zoZ>o2o+ am_J\2m+ am_2bl2m~l +... + ап_2Ьх2п Ч... + ^21+... + ^_A_12—2+ + «0^-12я’1. (10.13) Из этого выражения видно, что умножение состоит из двух операций: перемножения разрядных символов а, и Ьк и последую- щего их суммирования с учетом весовых коэффициентов. Поскольку арифметическое умножение одноразрядных двоичных величин полностью соответствует конъюнкции, можно полагать, что мно- горазрядный умножитель должен состоять из двух последователь- но включенных узлов: матричного конъюнкгора и многоразряд- ного сумматора. Схема матричного конъюнкгора размерностью 4x4 приведена на рис. 10.16. Рис. 10.16. Схема матричного конъюнктора 123
aobG CRI «14) я0/>1 С А/ о a2bx CRO Рис. 10.17. Схема арифметического сумматора, представляющего собой часть умножителя двух четырехразрядных чисел -Pi CRI A\ ^2 CRO Рз P4 Pf> CRO Pi —Ps Что касается многоразрядного сумматора, то его построение не является однозначным. Наиболее удобно построчное последо- вательное суммирование с применением обычных многоразряд- ных сумматоров. Схема такого сумматора для случая т = п = 4 при- ведена на рис. 10.17. 1 С другой стороны, следуя обычному (ручному) правилу умно- жения, суммирование можно осуществлять по столбцам формулы (10.13), поскольку весовые коэффициенты внутри каждого столб- ца одинаковы. Здесь вполне возможно применение одноразряд- ных мультисумматоров, упоминавшихся в подразд. 10.1. Однако в этом случае некоторые трудности возникают при организации переносов. ное графическое обозначение че- тырехразрядного умножителя Другие варианты построения многоразряд- ных умножителей рассмотрены в [35]. Их ус- ловное графическое обозначение приведено на рис. 10.18. {MPL — от англ, multiplier — умно- житель.) I Контрольные вопросы 1. Синтезируйте одноразрядный полный сумма- тор на основе элементов И —НЕ. 2. Синтезируйте одноразрядный полный сумма- тор на основе элементов ИЛИ—НЕ. ] 3. Каким образом можно построить одноразряд- ные мульти сум маторы на основе одноразрядных полных сумматоров? 124
4. Какие варианты образования сигналов переноса используются в вычислительной технике при синтезе многоразрядных сумматоров? 5. Что необходимо добавить к арифметическому сумматору, чтобы сделать его алгебраическим? 6. Каким образом производится вычисление суммы двух чисел, выра- женных в формате с плавающей запятой? 7. Из каких двух узлов состоит многоразрядный арифметический ум- ножитель? 8. Определите быстродействие умножителя в схемах на рис. 10.16 и 10.17. ГЛАВА 11 ЦИФРОВЫЕ КОМПАРАТОРЫ 11.1. Одноразрядные компараторы Цифровые компараторы (от лат. сотраго — сравниваю) произ- водят сравнение двух чисел с тем, чтобы выяснить, равны ли они или какое из них больше. Начнем с наиболее простого однораз- рядного компаратора. Из таблицы истинности (табл. 11.1) следуют аналитические выражения функций, реализуемых такими компа- раторами: у(а> Ь) = а-b; у(а = Ь) = а~ Ь; у(а<Ь) = а-Ь. Приведенные формулы определяют два варианта схемы одно- разрядного компаратора, показанных на рис. 11.1. Для обоих вариантов схемы характерны равенства у(а> b) = a-b = a-(av b) - а-а-Ь; у(а< b) = a-b = b\a\/ b) = b-a-b. с В первой схеме (см. рис. 11.1, а) устройство, реализующее фун- кцию равнозначности, представлено в соответствии с рис. 6.14. Во Таблица 11.1 Таблица истинности одноразрядного компаратора а ь У (а > Ь) У(а = Ь) У(а<Ь) 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 125
a y{a > b) y(a = b) y(a < b) a b Рис. 11.1. Два варианта (а, б) схемы одноразрядного компаратора второй схеме (см. рис. 11.1, б) вместо элемента И—ИЛИ—НЕ используются два конъюнктора и один элемент ИЛИ—НЕ, что позволяет несколько упростить компаратор (за счет применения одних и тех же конъюнкторов для формирования всех реализуе- мых функций). I 11.2. Многоразрядные компараторы Я Рассмотрим в качестве примера четырехразрядный цифровой компаратор серии К555СП1 [44], восемь входов которого служат для подключения двух четырехразрядных слов: Ло ... А3, Во ... В3, подлежащих сравнению (рис. 11.2). Управляющие входы 1(А> В), I Л) -41 а2 л3 A>B A=B A<B КА >В) Т( Л- Aft 1{А<В) bo bo bo bo bJ NJ — Рис. 11.2. Условное гра- фическое изображение компаратора типа СП1 126 1(А - В) и 1(А < В) могут быть использо- I ваны для наращивания разрядности ком- I паратора. Предусмотрены три выхода ре- I зультата сравнения: А > В, А = В и А < В. 1 Таблица истинности такого компара- I тора (табл. 11.2) разбита по строкам на три раздела. I Первый раздел (восемь верхних строк I таблицы) определяет тот случай работы компаратора, когда подлежащие сравне- I нию четырехразрядные слова не равны | друг другу. При этом сигналы на входах | наращивания разрядности как реакция на сигналы более младших разрядов сравни- j ваемых слов никакого влияния на резуль- I тат сравнения не оказывают. 1
Т абл ица 11.2 Таблица истинности четырехразрядного компаратора типа СП1 Входы сравнения данных • Входы управления Выходы 7 Вз Ay, By A], B\ Ao, 4 I(A> В) I(A=B) I(A<B) A> В A=B A< В А А 3 > By * * * * * * 1 0 0 з <4 * * * * * * 0 0 1 А з = By 4 > By * * * * * 1 0 0 А з = By 4 < By * * * * * 0 0 1 А з = 4 Ay = By 4 >4 * * * * 1 0 0 А 3=4 Ay = By 4 <4 * * * * 0 0 1 А з = By Ay — By 4 = 4 Ao > Bq * * * 1 0 0 А з = By 4 = By 4 = 4 Aq< Bq * * * 0 0 1 А з = 4 4 = By 4 = 4 Aq= Bq * 1 * 0 1 0 А !3 = By 4 = By 4 = 5i Aq= Bq 1 0 0 1 0 0 А 3 = By 4 = By 4 = 5, Aq= Bq 0 0 1 0 0 1 А 3 = By Ay = By 4 = 4 Aq= Bq 0 0 0 1 0 1 А \у = Ву Ay = By 4 = 4 Aq= Bq 0 1 0 0 0 Три строки второго раздела этой таблицы характеризуют рабо- ту компаратора с последовательным способом наращивания раз- рядности, т. е. когда выходы компаратора младших разрядов под- ключены к управляющим входам компаратора старших разрядов (рис. 11.3). «о «1 «3 О 1 О 4 Ь\ Ьу ^3 Ao A\ Ay A3 A>B A=B A<B I(A>B) I(A=B) I(A<B) bo t» to to UJ NJ — 0 «4 «5 «6 «7 4 ь5 Ьб 4 Aq Aj Ay A3 A>B I(A>B) I(A=B) I(A<B) /1 — JLJ A<B bo bo bo to UJ NJ О У(А>В) у(А=В) У(А<В) Рис. 11.3. Схема последовательного способа наращивания разрядности компаратора 127
При равенстве старших разрядов слов решающую роль играют младшие разряды, а при их неравенстве — старшие (как показано в первом разделе табл. 11.2). На управляющие входы компаратора, осуществляющего сравнение младших разрядов слов, необходимо подавать сигналы, соответствующие равенству нулю еще более младших разрядов, т. е. ДА = В) = 1, ДА > В) = ДА < В) - 0 (первая строка правой части табл. 11.1). Однако последовательное включение четырехразрядных ком- параторов выгодно только при сравнении восьмиразрядных слов. Если же необходимо, скажем, сравнивать трехбайтовые слова (24 разряда), то понадобится 24/4 = 6 четырехразрядных компа- раторов, и время установления при этом окажется тоже в шесть раз больше, чем у одного четырехразрядного. В таком случае це- лесообразно использовать комбинированный способ соединения компараторов (рис. 11.4). Этот способ позволяет при том же чис- ле компараторов (6) сравнивать трехбайтные слова за время, в три раза меньшее, чем при последовательном способе включе- ния. Для этого в табл. 11.2 введены еще две строки, составляющие третий раздел, которые совместно с двумя предыдущими строка- ми второго раздела (где также управляющий сигнал ДА = В) = 0) объясняют работу компаратора при комбинированном способе наращивания разрядности. В этом случае четыре из шести компа- раторов обеспечивают сравнение пяти разрядов путем подклю- чения пятых разрядов к управляющим входам ДА > В) и ДА < В). Компаратор, сравнивающий младшие разряды, и компаратор, объединяющий все выходы этого и остальных компараторов, со- браны по схеме, аналогичной изображенной на рис. 11.3. Отличие заключается в том, что теперь на информационные входы компа- ратора, расположенного справа, подаются не разрядные сигналы сравниваемых слов, а выходные сигналы А > В и А < В дополни- ’ тельных компараторов, служащих для наращивания разрядности. На эти дополнительные компараторы сигналы более старших раз- рядов сравниваемых слов подаются не только, как обычно, на информационные, но и на управляющие входы ДА> В) и ДА< В). При этом только на один управляющий вход ДА=В) подается логический нуль. Выходные сигналы (А = В) дополнительных ком- параторов никуда не подаются. Окончательный результат сравнения снимается с выходов объединяющего компаратора, расположенного на рис. 11.4 справа. Займемся теперь синтезом схемы четырехразрядного компара- тора СП1, используя табл. 11.2 [22]. Проще всего реализуется функция равенства двух сравнивае- мых слов у(А = В), отображаемая в таблице истинности единствен- ной логической единицей в строке, где информационные симво- 128
о 1 о «о «1 Ь\ а2 Z>2 аз #4 о z>4 «5 ь5 ав Ьб а7 Z>7 а& 1(А>В) 1(А=В) 1(А<В) A>B A=B A<B bo Jk Ьо bo to UJ См tQ NJ — cf) (5^ I(A>B) Z(A=B) I(A<B) A>B A=B A<B Л) в0 41 Bi д2 B2 ^3 Вз I(A>B) I(A=B) I(A<B) A>B A=B A<B Q <N y{A>B) y(A=B) у(А<В) Д]9 О Z>19 fl20 ^20 Й21 ^21 fl22 ^22 fl23 ^23 I(A>B) I(A=B) I(A<B) A>B A=B A<B а .о — гч _<ч m Рис. 11.4. Схема комбинированного способа наращивания разрядности компаратора лы поразрядно равны друг другу и управляющий сигнал 1(А = В) также равен единице: у(А = В) = (А} - В}) (А2 ~ В2) (А, ~ В,'.) (4, ~ Во) 1(А = В). Искомая функция реализуется с помощью четырех элементов Равнозначности, синтезированных по одной из схем, приведен- Нарышкин 129
ных на рис. 11.1, и конъюнктора, перемножающего сигналы с выходов элементов равнозначности и 1(А - В). Аналитические выражения двух других функций компаратора могут быть получены также путем считывания соответствующих минтермов с таблицы истинности (см. табл. 11.2) при условии ра- венства этих функций нулю: y(A>B) = a3-b3 v(a3 ~ by)-а2 • b2 v (а3 ~b3)-(a2 v (а3 ~ Ь3) • (а2 ~ Z>2) • (#i ~ Л) ‘ Ц) • v "*v(a3 (а2 -h)-^ -b^^aQ ~bo)-I(A<B)v I ~*v(a3 ~Ь3)-(а2 -Ь2)\а{ ~Л)’(«о ~Ьь)-1(А = 5); I у(А < В) = а3 -b3 v(a3 ~ b3)-a2 -b2 v (я3 ~ Z>j)-(a2 ~ -bi v | v(a3 ~b3)-(a2 ~b2)-(ax ~^)«оьЛ v | ”*v(a3 ~^)-(бг2 ~ А)• («о ~Ьь)-1(А >B)v~* ~*v(a3 -Zb)-(«2 ~ Ьо)1(А = В). J Последние два слагаемых в обеих формулах получены путем склеивания минтермов: в первом случае — 1, 3 и 5-й строк, от- считываемых снизу таблицы истинности (см. табл. 11.2), а во вто- ром — 1, 4 и 5-й. Схема компаратора СП1 состоит из схем одноразрядных ком- параторов, изображенных на рис. 11.1, и элементов И—ИЛИ- НЕ в соответствии с приведенными аналитическими выражения- ми. В большинстве справочников (например, в [44]) для компара- тора СП1 приводится схема, следующая из этих выражений, преоб- разованных по формуле Моргана, а вместо элементов И—ИЛИ- НЕ в ней используются конъюнкторы с инверсными входами. ж Цифровые компараторы позволяют в совокупности с мульти- плексорами или демультиплексорами осуществлять условные ло- гические операции: проверку арифметических условий реализует ком- паратор, а их исполнение — мультиплексор или демультиплексор. В качестве примера рассмотрим схему цифрового ограничителя (рис. 11.5), число Уна выходе которого должно отвечать условию У= if (Л > В, В, А), т.е. если А > В, то Y= В, иначе У= А (полагая, что число А — переменное, а число В — пороговый уровень огра- ничителя). Микросхема КП 11 содержит четыре двухвходовых мультиплек- сора [44]. Каждый из этих мультиплексоров имеет по два входа данных А и В, для выбора которых служит вход адреса данных <5: если на вход S подано напряжение низкого уровня, выбираются? входы А одновременно всех четырех мультиплексоров, если же на 1
Рис. 11.5. Схема цифрового ограничителя на основе компаратора и мультиплексора вход 5 подано напряжение высокого уровня, выбираются входы В всех мультиплексоров одновременно. Контрольные вопросы 1. Выведите уравнения для функций одноразрядного компаратора. 2. Какие способы наращивания разрядности компараторов вы знаете? Сравните их между собой. 3. Какие сигналы необходимо подавать на управляющие входы ком- паратора, обрабатывающего младшие разряды? 4. Сколько четырехразрядных компараторов необходимо для выпол- нения сравнения трехбайтных слов? 5. Приведите условное графическое изображение четырехразрядного компаратора. 6. Из каких разделов состоит таблица истинности компаратора СП1? 7. Изобразите основной раздел таблицы истинности четырехразряд- ного компаратора. 8. Изобразите схему четырехразрядного цифрового ограничителя с использованием компаратора и мультиплексора. ГЛАВА 12 КОМБИНАЦИОННЫЕ ЦИФРОВЫЕ УСТРОЙСТВА НА ОСНОВЕ ПРОГРАММИРУЕМЫХ ИНТЕГРАЛЬНЫХ СХЕМ 12Л. Классификация программируемых интегральных схем В широком смысле слова все интегральные схемы являются Программируемыми. Здесь под программированием понимается про- цесс записи информации в интегральную схему при ее изготовле- нии (в отличие от процесса составления программы — упорядо- ченной последовательности операций для ЭВМ). 131
По способу программирования все интегральные схемы (ИС) делятся на масочные, в которые информация вносится однократ- но на стадии изготовления масочным способом до помещения кристалла ИС в корпус, и электрически программируемые, в кото- рые информация заносится потребителем электрическим спосо- бом через соответствующие выводы в готовом корпусе однократ- но или многократно [24]. 11 Электрически программируемые ИС были разработаны и по- лучили широкое распространение в связи с бурным развитием микропроцессоров и микроЭВМ. Сочетание массовости производ- ства таких ИС с возможностью записи в них индивидуальных фун- кций делает их универсальными и поэтому экономически целесо- образными. Область применения электрически программируемых ИС постоянно расширяется. В настоящее время они используются при построении различных комбинационных цифровых устройств, ЭВМ, блоков микропрограммного управления центральных про- цессоров и различных периферийных устройств, в арифметичес- ких устройствах, а также для хранения «жестких» программ дос- таточно большого размера. В состав высокопроизводительных циф- ровых систем третьего и четвертого поколений входят электри- чески программируемые постоянные запоминающие устройства (ЭППЗУ) емкостью до 106бит с временем выборки менее 50 нс. В США, например, в конце 70-х годов XX в. на долю ЭППЗУ приходилось две трети от общего объема применяемых постоян- ных запоминающих устройств (ПЗУ). Подобные устройства позво- ляют в считанные секунды заносить в постоянную память систем в автоматическом или полуавтоматическом режиме значительные массивы информации (современные компакт-диски имеют объем памяти единицы гигабайт), что обеспечивает гибкость, компакт- ность и высокую надежность различных средств автоматики и вы- числительной техники. I Электрически программируемые ИС разделяются на устройства с однократным программированием путем необратимых изменений их структуры и устройства с репрограммированием, т.е. с много- кратной сменой логической функции. | В микропроцессорных (МП) системах программируемые ПЗУ (ППЗУ) занимают важное место. Особенно эффективно их при- менение на стадии отладки программного обеспечения МП-сис- тем. Дело в том, что оптимизация и отладка конкретной програм- мы в общем случае требуют нескольких десятков ее прогонов в системе, а каждый такой прогон требует записи в ПЗУ нового варианта программы, поэтому наличие ЭППЗУ в составе МП- систем и прототипных комплектах является обязательным. После завершения всех этапов отладки программного обеспечения, т.е| при сборке промышленных образцов систем, эти ПЗУ могут быть заменены более компактными и дешевыми (при массовом произ-
водстве) масочными ПЗУ, идентичными с ЭППЗУ не только в отношении логических функций, но и в отношении разводки выводов, уровней сигналов и питающих напряжений. Для специалистов радиотехнического профиля более важным является применение ЭППЗУ при выпуске мелких партий, в опытном производстве и разработке уникальных систем. В этих случаях их использование более выгодно экономически, посколь- ку масочные ПЗУ требуют больших затрат времени и средств на их создание, что окупается лишь при крупносерийном произ- водстве. Перспективным является применение ЭППЗУ и, в частности, репрограммируемых ПЗУ (РПЗУ) в тех областях, где требуется дистанционное репрограммирование МП-систем, установленных в недоступных или опасных для человека местах, например в кос- мосе. Сигналы репрограммирования могут при этом передаваться на необходимые расстояния радиотехническими средствами пе- редачи информации. В настоящее время однократно программируемые ИС получили самое широкое распространение среди всех электрически програм- мируемых интегральных схем. По принципу действия различают два типа однократно программируемых ИС: резисторные, в кото- рых программирование осуществляется пережиганием плавких перемычек, и диодные, в которые информация вносится за счет пробоя р—«-переходов. Информация, хранящаяся в однократно программируемых ИС резисторного типа, определяется наличием или отсутствием плав- ких перемычек, в качестве которых широко применяют тонкие пленки из нихрома. Отметим, что нихромовые перемычки имеют тенденцию к по- степенному самовосстановлению путем кристаллизации распылен- ного порошка нихрома под действием электрического поля, по- этому в этом случае требуются периодическая проверка целости записанной информации и ее реставрация. Сопротивление перемычки составляет около 10 Ом. В режиме программирования через определенные логической функцией пе- ремычки пропускают импульсы тока плотностью около 107 А/см2, в результате чего они необратимо разрушаются. После изготовле- ния ИС в режиме ее считывания на входы подают соответствую- щие сигналы напряжения и определяют значение записанной фун- кции. Работа ИС диодного типа основана на необратимых явлениях, Происходящих при пробое обратносмещенного р—«-перехода. В исходном состоянии ИС диодного типа обратное сопротивление Диодов очень велико. При программировании к определенным Диодам прикладывается запирающее напряжение повышенного Уровня, под воздействием которого р—«-переходы пробиваются, 133
т. е. происходит короткое замыкание, соответствующее записи за- данной информации. Репрограммируемые ИС различаются как по способу записи новой информации (путем обратимого изменения физической структуры или внесения электрического заряда), так и по спосо- бу стирания записанной ранее информации (с помощью электри- чества или ультрафиолетовых лучей). Изменение физической струк- туры полупроводникового материала может быть произведено пу- тем перевода его из кристаллического состояния в аморфное и обратно (например, путем образования или устранения микропе- ремычек в кремнии между изолированнымиплощадками), что приводит к увеличению или уменьшению электропроводности ма- териала. Я Внесение электрического заряда производится различными способами: заряд накапливается на границе двух слоев диэлект- рика Si3N4 и SiO2 в МНОП-транзисторах (металл—нитрид крем- ния—оксид кремния—полупроводник) или хранится в лавин- но-инжекционных МДП-транзисторах с плавающим затвором (ЛИПЗ МДП). I Принцип действия ЛИПЗ МДП-транзистора основан на обра- зовании проводящего канала, если на плавающем затворе (не име- ющем вывода) находится отрицательный (для ^-канального тран- зистора) или положительный (для л-канального транзистора) заряд, следовательно считывание хранимой информации сводит- ся к определению проводимости транзистора. Л По функционально-структурному признаку программируемые ИС делятся на программируемые постоянные запоминающие уст- ройства, программируемые логические матрицы и программиру- емые логические интегральные схемы. Рассмотрим их подробнее. 12.2. Программируемые постоянные запоминающие устройства | Микросхема ППЗУ {PROM от programmable read-only memory) серии К500РЕ149 представляет собой большую ИС (БИС) на ос- нове эмиттерно-связанной логики, совместимую с микропроцес- сорным комплектом К1800, которая может выполнять роль мик- ропрограммной памяти. БИС К500РЕ149 — это ППЗУ емкостью 1024 бит (1 кбит) с организацией 256 слов на 4 разряда. I Микросхема располагает восемью адресными входами Ао... Ау (рис. 12.1), четырьмя выходами информации BQ...B3 и входом разрешения К, который используется так же, как вход сигнала выбора кристалла. Для программирования запоминающих элемен- тов используется (помимо адресных и информационных выводов) специальный вход разрешения программирования W. 1 134
БИС К500РЕ149 (рис. 12.2) содержит мат- рицу электрически программируемых запо- минающих элементов с внутренней органи- зацией 32 строки на 32 столбца, адресный дешифратор строк (пять входов, 32 выхода), адресный дешифратор столбцов (три входа, восемь выходов), четыре усилителя считыва- ния и четыре выходных управляемых буфер- ных элемента. Каждый запоминающий элемент (ЗЭ), используемый для хранения постоянной ин- формации, имеет легкоплавкую перемычку. Наличие перемычки в элементе эквивалент- но записи в нем высокого уровня напряже- ния, т.е. логического нуля в отрицательной логике. Запись в ЗЭ низкого уровня напряже- графическое обозна- чение ППЗУ серии ния, т. е. логической единицы, осуществляется пережиганием плав- кой перемычки в режиме (строго оговариваемом в нормативно- технической документации), который реализуется специализиро- ванными устройствами — программаторами [19]. Пережигание пе- ремычки в выбранном адресными входами элементе выполняется через внешние выводы калиброванным током в течение опреде- ленного времени. Д3 Д2 Bi Д) Рис. 12.2. Структурная схема БИС ППЗУ К500РЕ149 135
^8 Рис. 12.3. Структурная схема объединения ППЗУ К500РЕ149 для расширения количества адресов в четыре раза В рабочем режиме управление БИС К500РЕ149 осуществляется адресными входами и входом выбора кристалла И При низком напряжении на входе V производится считывание информации; при высоком — на выходе устанавливается низкий уровень на- пряжения. Использование входа Vв качестве дополнительного ад- ресного и объединение его на выходе с другими БИС ППЗУ по- зволяет наращивать объем памяти (рис. 12.3). Легко реализуется также наращивание разрядности запоминаемых слов путем парал- лельного объединения адресных входов и входа разрешения вы- борки. Микросхема К500РЕ149 обладает высоким быстродействием: при потребляемой мощности 540 мВт ее типовое время выборки по адресным входам составляет 20 нс. При работе ППЗУ в качестве комбинационного цифрового ус- тройства сигналы аргументов подаются на адресные входы; сиг- налы логических функций снимаются с выходов. При программи- ровании ППЗУ требуемый функционал необходимо представить в виде таблицы истинности, соответствующей совершенной дизъ- юнктивной нормальной форме. Функционал, заданный в другой форме, следует предварительно преобразовать в СДНФ, для чего удобно использовать ЭВМ, сопряженную с программатором ППЗУ. 12.3. Программируемые логические матрицы Программируемые логические матрицы (ПЛМ), выпускаемые отечественной промышленностью (К556РТ1 и К556РТ2), отно- сятся к однократно программируемым БИС с пережиганием плав- ких перемычек. Преимущество ПЛМ перед ППЗУ с произволь- 136
ным доступом к памяти заключается в более экономном использовании логических эле- ментов. Это объясняется тем, что ППЗУ с произвольным доступом к памяти реализует логическую функцию (или функционал, если организация памяти такова, что по одному ее адресу хранится многоразрядное число — совокупность логических функций) в СДНФ, которая, как известно, обладает избыточно- стью, в то время как ПЛМ реализует логи- ческий функционал в дизъюнктивной нор- мальной форме (ДНФ), минимальная фор- ма которой и дает безызбыточность. Отсюда, кстати, следует, что перед программирова- нием ПЛМ необходимо произвести миними- зацию логического функционала, что целе- сообразно делать с помощью ЭВМ, сопря- женной с программатором ПЛМ. Программируемая логическая матрица се- рии К556РТ1 относится к технологии ТТЛШ и рассчитана на 16 входных переменных, 48 конъюнкций и 8 выходных функций (рис. 12.4). Кроме того, она имеет входы разрешения программирования W и разрешения выборки V. Время задержки составляет 50 нс. Потребляемая мощность 1 Вт. Обозначается PLA (от programmable logic array). БИС ПЛМ серии К556РТ1 (рис. 12.5) состоит из 16 пар инвер- торов (по паре на каждый из входов А), 48 конъюнкторов (каж- дый с 16 парами входов), восьми 48-входовых дизъюнкторов (по чение ПЛМ серии К556РТ1 Рис. 12.5. Принципиальная электрическая схема БИС ПЛМ серии К556РТ1 137
одному входу от каждого конъюнктора) элементов Исключаю- щее ИЛИ (необходимых для получения функций в инверсной фор- ме), элементов запрета и одного повторителя (для сигнала V —- разрешения выборки). Все левые на схеме инверторы выполняют к тому же функцию каскада, согласующего один вход БИС с 48 входами конъюнкто- ров; правые инверторы компенсируют при необходимости логи- ческую функцию левых инверторов. Таким образом, до программирования ПЛМ реализуют следу- ющие функции: где i — номер аргумента; j — номер конъюнктора; к — номер функции. Программирование ПЛМ производится в три этапа: на пер- вом определяется прямая или инверсная форма функции у; на втором — прямая или инверсная форма участия или неучастия каждого аргумента в каждой конъюнкции а; на третьем — нали- чие той или иной конъюнкции в каждой из дизъюнкций р, а соответственно, и в каждой из выходных функций. ПЛМ серии К556РТ2 отличается от ПЛМ серии К556РТ1 толь- ко тем, что имеет выходы с открытым коллектором, позволяю- щие соединять их по схеме Монтажное ИЛИ. 12.4. Программируемые логические интегральные схемы Программируемые логические интегральные схемы появились в результате совершенствования во всех направлениях програм- мируемых логических матриц, когда для многих разработчиков аппаратуры цифровой обработки сигналов (ЦОС) стало ясно, что ПЛИС — удобная в освоении и применении элементная база, аль- тернативы которой зачастую не найти. Последние годы характеризуются резким ростом плотности упа- ковки элементов на кристалле, доведенной до одного миллиона логических вентилей. Цены на ПЛИС неуклонно падают. Следует отметить, что общепринятой оценкой логической емкости ПЛИС является число эквивалентных вентилей, определяемое как числе вентилей 2И —НЕ, необходимых для реализации эквивалентного проекта на ПЛИС и базовом матричном кристалле (БМК). Понят- но, что эта оценка весьма условна, поскольку ПЛИС не содержат вентилей 2И —НЕ в чистом виде, однако для проведения сравни- тельного анализа различных структур она вполне пригодна. Приведем классификацию ПЛИС по структурному признаку; так как она дает наиболее полное представление о классе решае- 138
мых с их помощью задач [39]. Основными критериями такой клас- сификации являются наличие, вид и способы коммутации эле- ментов логических матриц. По этим признакам можно выделить следующие классы ПЛИС. Программируемые логические матрицы — наиболее традицион- ный класс ПЛИС, имеющих программируемые матрицы И и ИЛИ. Недостаток таких схем — слабое использование ресурсов програм- мируемой матрицы ИЛИ. Дальнейшее развитие получают микросхемы, построенные по архитектуре программируемой матричной логики (ПМЛ — PAL — от Programmable Array Logic) — это класс ПЛИС, имеющих про- граммируемую матрицу И и фиксированную матрицу ИЛИ. К этому классу относятся большинство современных ПЛИС не- большой степени интеграции (например, КМ1556ХП4, ХП6, ХП8, ХЛ8). Следующий традиционный класс ПЛИС — программируемая макрологика (ПМЛ). Эти устройства содержат единственную про- граммируемую матрицу И—НЕ или ИЛИ—НЕ, но за счет мно- гочисленных инверсных обратных связей способны формировать сложные логические функции. Перечисленные архитектуры ПЛИС применяются для реализа- ции относительно простых устройств, для которых не существует готовых ИС средней степени интеграции. Интегральные схемы ПМЛ (PLD — от programmable logic devices) имеют архитектуру, весьма удобную для реализации цифровых устройств. Развитием этой архитектуры являются программируе- мые коммутируемые матричные блоки (ПКМБ). В зарубежной ли- тературе они получили название Complex Programmable Logic Devices (CPLD) — это ПЛИС, содержащие несколько матричных логи- ческих блоков (МЛБ), объединенных коммутационной матрицей. Каждый МЛБ представляет собой структуру типа ПМЛ, т.е. программируемую матрицу И, фиксированную матрицу ИЛИ и макроячейки. ПЛИС на основе ПКМБ, как правило, имеют высокую сте- пень интеграции (до 10000 эквивалентных вентилей и 256 макро- ячеек). Другой тип архитектуры ПЛИС — программируемые вентиль- ные матрицы (ПВМ или FPGA — от Field Programmable Gate Array), состоящие из логических блоков (ЛБ) и коммутирующих путей — программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов, в основе которых лежат таблица перекоди- ровки (ТП или L UT — от Look- Up Table), программируемый муль- типлексор, D-триггер, а также цепи управления. Простых элементов в ЛБ может быть достаточно большое ко- личество: у современных ПЛИС емкостью до одного миллиона 139
вентилей число логических элементов достигает нескольких де- сятков тысяч. Такое большое число ЛЭ обусловливает содержа- ние в ПЛИС значительного числа триггеров. Некоторые семей- ства ПЛИС имеют встроенные реконфигурируемые модули памяти (РМП или ЕАВ — от Embedded Array Block), что делает их весьма удобным средством реализации алгоритмов цифровой обработ- ки сигналов, основными операциями в которых являются пере- множение, умножение на константу, суммирование и задержка сигнала. Вместе с тем, возможности комбинационной части та- ких ПЛИС ограничены, поэтому совместно с ПВМ для реализа- ции управляющих и интерфейсных схем применяют ПКМБ (cpzd). Я Множество конфигурируемых логических блоков {Configurable Logic Blocks — CLBs) объединяются с помощью матрицы соединения. Характерными для архитектур FPGA являются элементы ввода/ вывода {Input/Output Blocks — IOBs), позволяющие реализовать дву- направленный ввод/вывод, третье состояние и т. п. Я Особенностью современных ПЛИС является возможность тес- тирования узлов с помощью порта JTAG {B-scari), а также нали- чие внутреннего генератора {Osc) и схем управления последова- тельной конфигурацией. Я Фирма «Альтера» пошла по пути развития архитектур FPGA в семействе FLEX ЮК, так называемой двухуровневой архитектурой матрицы соединений, в которой логические элементы объединя- ются в группы — логические блоки. Внутри логических блоков ЛЭ соединяются посредством локальной программируемой матрицы соединений. Я Логические блоки связаны между собой и с элементами ввода- вывода посредством глобальной программируемой матрицы соеди- нений (ГПМС). Локальная и глобальная матрицы соединений имеют непре- рывную структуру, где для каждого соединения выделяется не- прерывный канал. Дальнейшее развитие ПЛИС идет по пути создания комбиниро- ванных архитектур, сочетающих в себе удобство реализации ал- горитмов ЦОС на базе таблиц перекодировок и реконфигурируе- мых модулей памяти, характерных для структур FPGA и много- уровневых ПЛИС, с удобством реализации цифровых устройств на архитектурах CPLD. 1 Так, ПЛИС серии АРЕХ20К фирмы «Альтера» содержат в себе логические элементы всех перечисленных типов, что позволяет I применять их как основную элементную базу для систем на крис- талле {System-On-Chip — SO С). Я В основе идеи SOC лежит интеграция всей электронной систе- мы в одном кристалле (например, в случае ПК такой чип объеди- няет процессор, память и т.д.). 1Я 140 1-V
Компоненты этих систем разрабатываются отдельно и хранят- ся в виде файлов параметризируемых модулей. Окончательная структура микросхемы SO С выполняется на базе этих «виртуаль- ных компонентов» с помощью программ систем автоматизиро- ванного проектирования (САПР) электронных устройств EDA (от Electronic Design Automation). Благодаря стандартизации в единое целое можно объединять «виртуальные компоненты» от разных разработчиков. Для практического применения ПЛМ и ПЛИС важно уметь их программировать. Одними из первых публикаций в отношении ПЗУ и ПЛМ можно назвать работы [3, 19]. Здесь также снова уместно сделать ссылку на книгу [39], в которой рассматриваются вопро- сы проектирования устройств обработки информации на базе раз- работанных для ПЛИС фирмы «Альтера» версий систем автомати- зированного проектирования. В табл. 12.1 приведены основные ха- рактеристики пакета программ MAX+PLUS II BASELINE ver. 9.3 Таблица 12.1 Основные характеристики пакета программ MAX+PLUS II BASELINE ver. 9.3 Поддерживаемые устройства » EPF10K10, EPF10K10A, EPF10K20, EPF10K30, EPF10K30A, EPF10K30E (до 30000 эквивалентных вентилей), ЕРМ9320, ЕРМ9320А, EPF8452A, EPF8282A, МАХ7000, FLEX6000, МАХ5000, МАХ3000А, Classic Средства описания проекта Схемный ввод, поддержка AHDL, средства интерфейса с САПР третьих фирм, топологический редактор, иерархическая структура проекта, наличие библиотеки параметризируемых модулей Средства компиляции проекта Логический синтез и трассировка, автоматическое обнаружение ошибок, поддержка мегафункций по программам MegaCore и АМРР Средства верификации проекта Временной анализ, функциональное и временное моделирование, анализ сигналов, возможность использования программ моделирования (симуляторов) третьих фирм
фирмы «Альтера», который можно бесплатно «скачать» с сайта или получить на CD «Altera Digital Library», на котором содержит- ся также и полный набор документации по архитектуре и приме- нению ПЛИС. Кроме того, ПЛИС фирмы «Альтера» выпускаются с возмож- ностью программирования в системе непосредственно на плате. Для программирования и загрузки конфигурации устройств опуб- ликованы схемы загрузочного кабеля ByteBlaster и ByteBlasteMV. Следует отметить, что новые конфигурационные ПЗУ ЕРС2 по- зволяют осуществлять программирование с помощью этого уст- ройства, исключая необходимость наличия программатора, что естественно снижает стоимость владения технологией. (Дополни- тельные сведения приведены в [15, 17].) Для систем на кристалле — семейств APEX, Stratix и других фирма «Альтера» разработала специальную САПР, называемую Quartus (позднее QuartusII). В ПЛИС семейства Flashlogic используется относительно про- стая САПР PLDShell, рассмотренная в [17]. Главное меню PLDShell I позволяет вызывать все необходимые программы пакета и зада- вать режимы работы. Рассмотрим назначение основных команд главного меню. Edit — редактирование файлов с расширением .PDS (файлов, содержащих описание проектируемого устройства и алгоритм мо- делирования). При нажатии клавиши [Enter] осуществляется переход к под- меню, в котором указывается редактор. Редактор может быть уста- новлен выбором команды Change Editor. При нажатии клавиши [Пробел], когда выбран пункт *.PDS, все файлы, находящиеся в установленной директории, отобразятся с расширением .PDS. Поместив курсор на необходимый файл и подтвердив выбор, можно вызвать файл в установленном редакторе. | Compile/Sim — компиляция и моделирование устройств, опре- деленных в проектном файле с расширением *.PDS. । Команды подменю: | Input Filename — имя входного файла; Processing — определение варианта установки выполнения (на- жать клавишу [Пробел] и выбрать вариант установки выполнения); Compile then Simulate — компиляция, затем моделирование; Compile only — только компиляция; I Simulate only — только моделирование; Estimate only — только оценка; Estimate then Simulate — оценка, затем моделирование; 1 Compile options — подменю для выбора вариантов компиляции, определяемых установками; | Expand Equation — Yes/No (по умолчанию — Yes) — расшире- ние уравнений до формы SOP (от Sum-of -products — сумма произ- 142
ведений) для обеспечения возможности минимизации, инверсии де-Моргана и трассировки. Вариант без расширения используется для проектов с уравнениями в формате SOP, которые проекти- ровщик не желает изменять; в этом случае минимизация и инвер- сия должны быть поставлены в No; Minimize (Espresso) — Yes/No (по умолчанию — Yes) — миними- зация числа импликант (термов); Automstic Inversion — Yes/No (по умолчанию — Yes) — обеспе- чение сравнения и выбора по числу импликант с инвертирован- ной ДНФ; D/ Т Selection — Yes/No (по умолчанию — Yes) — выбор D/T- триггера. Режим по умолчанию используется в случае применения приборов типа FFGA для генерации входов Т-триггеров; миними- затор в этом случае выбирает какой-либо метод с использованием меньшего числа импликант; Error File — Yes/No (по умолчанию — Yes) — создание файла ошибок; Report file — Yes/No (по умолчанию — Yes) — создание файла отчета; Auto Display Report — Yes/No (по умолчанию — Yes) — автома- тическое отображение на экране файла отчета; если нет места на диске, можно ставить No; Filter Options — определение вариантов трассировки, которые выбираются нажатием клавиши [Пробел]; при этом происходит вход в подменю для выбора контактов ПЛИС; Use Defaults, as specified in Design File — выбор по умолчанию, как определено в проектном файле; Use Design and Previous Pin Assignments, Abort on no Fit — ис- пользование определения в проекте и предыдущего определе- ния контактов. Прекращение работы при невозможности трас- сировки; Use Design and Previous Pin Assignments, but Reassign if Needed — использование определения в проекте и предыдущего определе- ния контактов, но переопределение при невозможности трасси- ровки; Use Design Pin Assignments, but not Previous, Abort on no Fit — ис- пользование определения в проекте, прекращение работы при невозможности трассировки; Use Design Pin Assignments, but not Previous, and Reassign if Needed — использование определения в проекте, но переопределение при невозможности трассировки; Ignore all Pin Assignments — игнорирование всех присвоений кон- тактов; Simulation Options — подменю установок моделирования; Show Asynch. Events — Yes/No (по умолчанию — No) — показ асинхронных событий. Когда установлен режим Yes, генерируют- 143
ся векторы для асинхронных событий, происходящих во время формирования каждого цикла моделирования (например, прояв- ление эффекта гонок в комбинационном устройстве); Max. Asynch. Events — установка максимального числа асинх- ронных событий, которые могут произойти во время каждого цикла моделирования до остановки процесса (целое число от 1 до 32767; по умолчанию — 32); | Save Simulate Options — сохранение выбранных вариантов мо- делирования, которые станут до момента изменения начальными значениями по умолчанию; 1 View — просмотр любых файлов без редактирования (выбор осуществляется с помощью мыши или клавиатуры). I Команды подменю: Source Files — исходные файлы; I Error/Log Files — файлы сообщений о работе программ; Я Report/Estimator Files — файлы рапорта и оценки компиляции; Vector/ Waveform Files — файлы результатов моделирования; Any Other Files — любые другие файлы. 1 При выборе пункта Vector/ Waveform Files происходит вызов подменю вывода результатов моделирования — View Simulation Vector, в котором необходимо задать: | Input Filename^ *.hst — имя файла *.hst с результатами модели- рования; I View Vectors as} Waveform {Graphics) — графический вывод ре- зультатов моделирования или State Table — вывод в виде таблицы. | Для вывода результатов моделирования по выбранному фор- мату необходимо нажать клавишу [Accept]. 1 При выводе результатов моделирования на печать используют- ся следующие установки: I Print Vectors as} Waveform Extended {ASCII) — печать сигналов; I Print Page Length} 66 (0 — for Non-paged Output) — длина стра- ницы; ’ PROGRAM — определение программ работы с ПЛИС; | RUN — меню задания программ для загрузки конфигурации в ПЛИС, их тестирования и т.п.; 1 UTILITES — выбор и запуск утилит преобразования файлов, задания рабочих директорий и т.п.; I DATABOOK — вывод справочной информации по ПЛИС; Q UIT — выход из программы PLDShell. I Контрольные вопросы 1. Какой смысл вкладывается в понятие программирования интег- ральных схем? 1 2. В чем состоит преимущество электрически программируемых ин- тегральных схем? 144
3. Как подразделяются ИС по критерию кратности программирова- ния? 4. Какие существуют типы однократно программируемых ИС? На ка- ких физических принципах они основаны? 5. На каких физических принципах основаны репрограммируемые ИС? 6. Поясните структурную схему ППЗУ К500РЕ149. 7. Каким образом можно реализовать КЦУ на основе ППЗУ? 8. Каким образом можно наращивать объем памяти ППЗУ? 9. Поясните структурную схему и принцип действия ПЛМ серии К556РТ1. 10. К какому виду необходимо привести реализуемую с помощью ПЛМ логическую функцию? 11. Назовите основные классы ПЛИС, различаемые по структурному признаку, и поясните их особенности.
РАЗДЕЛ III ПОСЛЕДОВАТЕЛЬНОСТНЫЕ ЦИФРОВЫЕ УСТРОЙСТВА ГЛАВА 13 ОБЩИЕ СВЕДЕНИЯ О ПОСЛЕДОВАТЕЛЬНОСТНЫХ ЦИФРОВЫХ УСТРОЙСТВАХ 13.1. Определение понятия В отличие от комбинационных цифровых устройств последова- тельностные цифровые устройства (ПЦУ) обладают памятью по предыдущему (предыдущим) состоянию, поэтому они реализуют функцию, зависящую не только от вектора внешних аргументов Хп, действующих в данном и-м такте, но и от внутреннего состо- яния устройства Q"~l в предыдущем (п - 1)-м такте: Qn=f(,Xn, Qn~l). Если последовательно проводить замену Qn~l на f(Xn~\ Qn~2) и т.д. до начального состояния Q0, получим выражение Qn=f(X", Qn~x)=f(Xn, X»-x,Qn-2) = ...=f(Xn, Xn-', ... , X1, Q°), свидетельствующее о том, что функция в данном п-м такте зави- сит от последовательности векторов аргументов, поданных в преды- дущих тактах. Отсюда и произошло название последовательност- ные цифровые устройства. Для учета сигнала, полученного в предыдущем такте в ПЦУ, необходимо наряду с комбинационным цифровым устройством использовать запоминающее устройство (рис. 13.1). На рис. 13.1 косыми штрихами отмечены соединения, которые могут быть многопроводными. При этом обратная связь с выхода ЗУ на вход КЦУ в общем случае может не подаваться, а ЗУ может состоять как из одной, так и из нескольких ячеек памяти. Основным критерием каче- ства ПЦУ является быстродей- ствие, оцениваемое двумя пара- метрами: временем установления (записи, задержки) Т3 — дди- Рис. 13.1. Функциональная схема последовательностного цифрового устройства тельностью задержки изменения выходного сигнала относитель- но момента появления входно- 146
го сигнала и разрешающим временем Тр — минимальным периодом повторения изменений, происходящих в входных сигналах. 13.2. Классификация Последовательностные цифровые устройства классифицируются по следующим признакам: функциональному, способу управле- ния, наличию синхронизации, структуре. По функциональному признаку ПЦУ подразделяются на триггеры, регистры и счетчики. Триггер (от trigger — пусковая схема) — элект- ронная логическая схема с двумя устойчивыми состояниями равно- весия, переключаемая при воздействии внешних управляющих сиг- налов. Регистр (от register — регистр) — радиоэлектронное устрой- ство, осуществляющее прием, хранение, преобразование и выдачу чисел в определенном коде. Счетчик — устройство для счета и запо- минания числа дискретных сигналов, поступивших на его вход. Следует отметить, что триггеры являются основными элемен- тами регистров и счетчиков, а счетчики иногда выполняются на регистрах. По способу управления ПЦУ делятся на управляемые потенциа- лом и управляемые импульсами (перепадами напряжения). В свою очередь, ПЦУ, управляемые потенциалом, могут быть прямого и инверсного управления. Прямое управление потенциалом означает, что активным яв- ляется потенциал Цй(от high — высокий), превосходящий поро- говый уровень, и ему присваивается значение логической едини- цы (рис. 13.2, а). При инверсном управлении потенциалом актив- ен TL "fooo ill 111 ООО 000 ооо ~ГТТ]ооо а *1 11 | ООО 000|И 1 111 111Iооо|1 11 / б uL 1__________0 1____0 Jooo|ooo ооо|ооо ООО ооо|ооо|ооо £ в 4 о___________1 О____1 |ооо|ооо ооо|ооо ООО ооо|ооо|ооо г г Рис. 13.2. Классификация видов управления последовательностными цифровыми устройствами: о — по высокому потенциалу; б — по низкому потенциалу; в — по положитель- ному перепаду напряжения; г — по отрицательному перепаду напряжения 147
ным является потенциал низкого уровня UL (от low — низкий), и ему присваивается значение логической единицы (рис. 13.2, б). Управление потенциалом еще называется статическим. ПЦУ, управляемые по перепаду напряжения, также делятся на две категории: управляемые по положительному (рис. 13.2, в) и отрицательному (рис. 13.2, г) перепадам. (Иначе такое управление называется динамическим, или импульсным.) Динамическое управление необходимо для предотвращения ложных срабатываний устройств. В частности, динамическое уп- равление триггером требуется всегда, если в алгебраической таб- лице истинности (и соответственно в уравнении функционирова- ния) встречается инверсное значение выходного сигнала в пре- дыдущем такте. По наличию синхронизации ПЦУ делятся на синхронные и асин- хронные. Синхронными называются ПЦУ, на которые помимо информационных входных сигналов подаются импульсы синхро- низации (тактирующие импульсы), позволяющие устанавливать соответствие момента переключения данного устройства с опре- деленными событиями в системе и обеспечивать временную упо- рядоченность действий параллельных процессов. В синхронных ПЦУ любые изменения на информационных входах не приводят к из- менению состояния выходов, пока не подан соответствующий сигнал синхронизации. В асинхронных ПЦУ входы синхронизации отсутствуют, поэто- му переключения происходят вслед за изменениями потенциалов на информационных входах. В большинстве случаев синхронные ПЦУ могут переводиться в асинхронный режим путем подачи определенного потенциала на вход синхронизации. Такие комбинированные триггеры характери- зуются наличием в них дополнительных асинхронных входов ус- тановки единицы и сброса. По структурному признаку различают ПЦУ параллельного, пос- ледовательного и смешанного (комбинированного) типов. 13.3. Методика синтеза В основу синтеза последовательностных цифровых устройств по- ложена методика синтеза КЦУ, дополненная некоторыми пунктами. В качестве исходных данных обязательно оговаривается функци- онал, подлежащий реализации, а следовательно, и тип ПЦУ по функциональному признаку. Кроме того, обычно задаются требу- емое быстродействие и часто элементная база. Если в качестве элементной базы заданы элементы запоминающего устройства, то синтез ПЦУ сводится в основном к синтезу КЦУ, согласующе- го входные сигналы с ЗУ. 148
Рассмотрим последовательность синтеза ПЦУ. 1. В соответствии с заданным функционалом составляется табли- ца функционирования, заменяющая в этом случае таблицу истин- ности КЦУ. Их различие заключается в том, что последователь- ность строк в таблице функционирования соответствует последо- вательности реакций ПЦУ на внешние сигналы, поданные в пос- ледовательные такты (что не соблюдается в таблицах истинности). Однако в ряде случаев, когда с помощью ПЦУ реализуются ветвящиеся процессы, можно и целесообразно использовать таб- лицы истинности. В некоторых ПЦУ общее число различных штатных состояний оказывается меньше числа всех возможных состояний. Если при этом по причине воздействия какой-либо помехи происходит пе- реход КЦУ из рабочего состояния в ошибочное (нештатное), не- обходимо предусмотреть дополнительные затраты, которые дол- жны обеспечить автоматическое исправление этой ошибки уст- ройством, что требует внесения соответствующих корректирую- щих данных в таблицу функционирования (или истинности). 2. Решается вопрос о структуре, способах управления и синх- ронизации устройства и отдельных его элементов в зависимости от сложности этого устройства, его функциональных особеннос- тей, элементной базы и требуемого быстродействия. 3. Определяются оптимальные источники синхронизации от- дельных каскадов и разрядов, что позволяет снизить затраты на оборудование при выполнении необходимых требований по быс- тродействию устройства. 4. Выбирается (если не задан) оптимальный тип запоминаю- щих элементов с тем, чтобы минимизировать затраты на КЦУ. 5. Минимизируется заданный функционал ПЦУ. При этом при- меняются обратные функции тех запоминающих элементов, ко- торые заданы или выбраны. Значения этих функций вписываются в дополнительные столбцы таблицы функционирования или для них создаются специальные диаграммы Вейча. 6. Выбирается (если не задан) тип логических элементов для синтеза КЦУ. 7. Полученные функции согласуются с заданным (или выбран- ным) типом логических элементов. 8. Составляется принципиальная электрическая схема. 9. Вычерчиваются временные диаграммы, по которым опреде- ляется соответствие устройства таблице функционирования, и рассчитываются параметры его быстродействия. 10. Если параметры быстродействия не соответствуют задан- ным, возвращаются к п. 2 ... 9 с целью достижения этого соответ- ствия. 11. Определяются требования к источникам входных сигналов и питающих напряжений. 149
Контрольные вопросы 1. В чем заключается отличие последовательностных цифровых уст- ройств от комбинационных? 2. Откуда произошло название последовательностных цифровых уст- ройств? 3. Какими параметрами определяется быстродействие ПЦУ? 4. Назовите основные признаки классификации ПЦУ. 5. Назовите основные виды ПЦУ, выделяемые по функциональному признаку. Поясните их особенности. 6. Как различаются ПЦУ по способу управления? 7. Для чего в ПЦУ используются сигналы синхронизации? 8. В чем состоит основное отличие таблицы функционирования от таб- лицы истинности? 9. Приведите методику синтеза ПЦУ. ГЛАВА 14 ТРИГГЕРЫ 14.1. 7?А-триггеры Рассмотрим сначала асинхронный RS-триггер, у которого пре- дусмотрено два входа: вход S (от set — устанавливать) и вход R (от reset — восстанавливать). Отсюда и второе название ^-триггера — триггер с установочными входами. Приведем описание функции ЛУ-триггеров: если в и-м такте на оба входа триггера поданы сигналы логичес- ких нулей, он сохраняет состояние предыдущего (и - 1)-го такта; если на вход S подан сигнал логической единицы, а на вход R — логического нуля, триггер устанавливается в состояние единицы независимо от того, в каком состоянии он находился в предыду- щем такте; если на вход R подан сигнал логической единицы, а на вход 5 — логического нуля, триггер устанавливается в состояние нуля неза- висимо от того, в каком состоянии он находился в предыдущем такте; одновременная подача логических единиц на оба входа запре- щена. Соответствующая этой функции таблица истинности представ- лена в табл. 14.1. При заполнении обратной таблицы истинности (табл. 14.2) за исходные данные были взяты состояния триггера Q”’1 и Q" в пре- дыдущем и настоящем тактах. Входные сигналы Rn и Sn, необхо- димые для обеспечения заданных выходных состояний, опреде- лялись логическим путем на основании данных табл. 14.1. 150
Т аблица 14.1 Таблица истинности асинхронного АА-триггсра А" S" Q" 0 0 к о 0 1 1 1 0 0 1 1 * Таблица 14.2 Обратная таблица истинности асинхронного AS-триггера to д 0" А" S" 0 0 * 0 0 1 0 1 1 0 1 0 1 1 0 * Условное графическое обозначение асинхронного AS-триггера приведено на рис. 14.1, а. Как правило, у триггеров_помимо ос- новного выхода Q предусмотрен инверсный выход Q. Используя табл. 14.1, выведем уравнение функционирования асинхронного AS-триггера. Для этого составим алгебраическую диаграмму (рис. 14.1, б) и обозначим в ней два контура. Тогда уравнение функционирования можно записать в виде Qn =SnvQn-lR!’. Воспользовавшись известной методикой синтеза комбинаци- онных цифровых устройств, приведем это уравнение к виду, удоб- ному для реализации функции на элементах ИЛИ-HE с помощью формулы Моргана: Qn = Sn v А". Проинвертировав левую и правую части последнего уравне- ния, получим уравнение функционирования в окончательном виде: (F =Sn\fQ^'vRn. В соответствии с этим выражением составим принципиальную схему, показанную на рис. 14.1, в. Устройство с такой схемой пред- Рис. 14.1. Асинхронный AS-триггер: а — условное графическое изображение; б — алгебраическая диаграмма; в — схема дизъюнктивной бистабильной ячейки 151
Таблица 14.3 Таблица функционирования ДБЯ ставляет собой запоминающий элемент, который называется дизъюнктивной бистабильной п 7?" S" Q" ячейкой (ДБЯ). Таким образом, ^5-триггер на основе двух эле- ментов ИЛИ — НЕ состоит толь- 0 0 0 0 1 0 1 1 ко из запоминающего устрой- ства в виде ДБЯ и не содержит КЦУ. Синтезированная схема позволяет получать на выходе необходимый сигнал как в пря- мой, так и инверсной форме, что является ее несомненным 2 0 0 1 3 1 0 0 4 1 1 0 5 0 0 * 6 0 1 1 достоинством. Уточним функционирование ДБЯ, составив ее таблицу фун- изобразив временные диаграммы слить эффект попадания данного эяние и определить параметры его кционирования (табл. 14.3) и (рис. 14.2). Это позволит осмы устройства в запрещенное сост< быстродействия. Из таблицы функционирования и временных диаграмм следу- ет, что при установлении на входе ДБЯ запрещенной комбина- ции Sn = Rn = 1 на обоих ее выходах (прямом и инверсном) образу- ется низкий потенциал — логический нуль. Если же после этого на оба входа одновременно подать логический нуль, то ДБЯ мо- жет перейти в любое состояние (нулевое или единичное) в зави- симости от многих случайных факторов (например, степени не- идентичности передаточных и переходных характеристик элемен- тов ИЛИ— НЕ). На временных диаграммах эта неопределенность отображена серым фоном. На рис. 14.2 в целях упрощения не указаны длительности фрон- тов и срезов исследуемых процессов, а показаны лишь задержки, обозначенные не только временным сдвигом процесса, но и циф- рами, соответствующими числу средних задержек распростране- ния сигнала в элементе ИЛИ —НЕ с условным значком «~»(тиль- Рис. 14.2. Временные диаграммы ДБЯ 152
Рис. 14.3. Схема асинхронного RS-триггера на элементах И—НЕ (а) и ус- ловное графическое обозначение конъюнктивной бистабильной ячейки (5) дой). Легко заметить, что максимальная задержка установления выходного сигнала триггера 7^ равна удвоенной средней задержке распространения сигнала Т^р^ в элементе ИЛИ—НЕ. Поскольку переключение входных сигналов можно производить только пос- ле установления сигналов на выходе, разрешающее время тригге- ра Гтр также равно удвоенной задержке в элементе ИЛИ —НЕ. От- сюда Попробуем теперь синтезировать RS-триггер на элементах И—НЕ. Для этого, используя форму Моргана, преобразуем урав- нение функционирования, заменив в нем дизъюнкцию на конъюнкцию: Qn = Sn • Анализ этой формулы пока- зывает, что схема триггера (рис. 14.3) должна содержать два эле- мента И—НЕ (ДД1 и DD2) в качестве инверторов сигналов S и Rn, а также два элемента (DD3 и 7)7)4) для образования запоми- нающего элемента — конъюнк- тивной бистабильной ячейки. За- метим, что аббревиатура DD происходит от digital device — цифровой элемент. Уточним процесс переключе- ния этого триггера, составив таблицу функционирования (табл., 14.4) и изобразив вре- менные диаграммы (рис. 14.4). Это позволит уяснить эффект in-ly^n Таблица 14.4 Таблица функционирования .RS'-триггера на элементах И—НЕ п R" S” Q" 0 0 0 0 1 0 1 1 2 0 0 1 3 1 0 0 4 1 1 1 5 0 0 * 6 0 1 1 153
Рис. 14.4. Временные диаграммы ЛУ-триггера на элементах И — НЕ попадания триггера в запрещенное состояние и определить пара- метры его быстродействия. Из таблицы функционирования и временных диаграмм следует, что при установлении на входе триггера запрещенной комбинации Sn = Rn = 1 на обоих его выходах (прямом и инверсном) образуется высокий потенциал — логическая единица, что недопустимо. Если же после этого на оба входа одновременно подать логический нуль, то триггер может перейти в любое заранее непредсказуемое состо- яние (нулевое или единичное), что также плохо. На временных ди- аграммах эта неопределенность показана серым фоном. За счет двух инверторов время задержки сигнала и разрешаю- щее время данного триггера увеличиваются по сравнению со схе- мой ДБЯ: Учитывая тот факт, что КБЯ часто используется и в других триггерных структурах в качестве запоминающего элемента, при- ведем ее прямую (табл. 14.5) и обратную (табл. 14.6) таблицы ис- тинности. Эти таблицы свидетельствуют о том, что КБЯ является 7?5-триггером с инвертированными входами. Иногда удобно использовать алгебраическую обратную таблицу функционирования триггеров. В частности, если в табл. 14.6 объе- динить 1-ю и 4-ю строки, а также 2-ю с 3-й, получим табл. 14.7. Таблица 14.5 Прямая таблица истинности КБЯ ^КБЯ ся КБЯ 0й 0 0 * 0 1 0 1 0 1 1 1 ^л-1 Т аблица 14.6 Обратная таблица истинности КБЯ О»'1 О ^"кБЯ ^КБЯ 0 0 * 1 0 1 1 0 1 0 0 1 1 1 1 * 154
Т аблица 14.7 Т аблица 14.8 Алгебраическая обратная таблица функционирования КБЯ G" А"кея 5"кБЯ О"’1 C'-'v* Qn-i v * Q"~' 2я-1 0"-‘ Таблица 14.9 Упрощенная алгебраическая обратная таблица функционирования КБЯ Q" •Я"к.БЯ £кбя О~' 1 1 О^' Таблица 14.10 Прямая таблица истинности синхронного .RS'-триггера е А" S" О' Акбя •5'кбя 0 * * Qn-\ 1 “1 1 0 0 0”'1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 * * * Обратная таблица истинности синхронного RS-триггера О' c A" S” O’-' 0 * * CF' 1 Q”-' (F' В большинстве случаев, без усложнения синтезируемых триггеров можно использовать еще более упрощенные алгебраические табл. 14.8. Теперь займемся синтезом синхронного RS-триггера. Его отли- чие от асинхронного заключается в наличии дополнительного входа синхронизации, обозначаемого на схемах латинской бук- вой с (от англ, clock — часы). Если на этом входе держится низкий потенциал (логический нуль), триггер сохраняет предыдущее состояние независимо от значения информационных сигналов S и R (табл. 14.9 и 14.10). При подаче на вход синхронизации логической единицы триг- гер становится управляемым аналогично асинхронному. Синтезируем синхронный AS-триггер (рис. 14.5, а) с исполь- зованием двух методик, разработанных как для комбинационных, S" а б Рис. 14.5. Условное графическое обозначение синхронного RS-триггера (а) и его алгебраическая диаграмма (б) 155
Рис. 14.6. Схема синхронного 7?/?-триггера на элементах И —НЕ так и последовательностных уст- ройств. Сначала так же, как и для асинхронного /?5-триггсра с целью получения уравнения функциони- рования по данным табл. 14.9 за- полним алгебраическую диаграмму (рис. 14.5, б). Три контура алгебраической диа- граммы позволяют представить уравнение функционирования син- хронного ЛУ-триггера в следующем минимизированном виде: Qn =cnSn vQn-'Rn vQn-'cn =cnSn vQn-'(Rn vcn) = cnSn v Q"-1 Rnc". Для того чтобы это уравнение согласовать с логикой элементов И — НЕ, применим формулу Моргана и получим Q" = cnSn Qn~xRncn. Последней формуле соответствует принципиальная схема, по- казанная на рис. 14.6. Схема синхронного RS-триггера представляет собой слегка измененную схему асинхронного 7?5-триггера (см. рис. 14.3, а). Изменение определяется наличием еще по одному входу у эле- ментов DD\ и DD2 для подачи на них сигнала синхронизации с. В качестве элемента памяти в этой схеме также используется КБЯ. Воспользуемся теперь методом синтеза последовательностных цифровых устройств, полагая, что в качестве элемента памяти будет использована КБЯ. Для синтеза комбинационного цифро- вого устройства, согласующего входы триггера с КБЯ, с учетом обратной таблицы истинности КБЯ (см. табл. 14.6) используем два столбца прямой таблицы истинности синхронного RS-тригге- ра, выделенные в табл. 14.9 серым фоном. С целью получения ло- гических функций КЦУ в минимизированном виде перенесем дан- ные этих столбцов на диаграммы Вейча (рис. 14.7). Минимизация по нулям (см. выделенные контуры на рис. 14.7) приводит к получению простейших формул 5£БЯ = CnSn и /?£БЯ = S" S" Рис. 14.7. Диаграммы Вейча для уравнений входов КБЯ в составе синхронного ЛУ-триггера 156
Q III £ Рис. 14.8. Временные диаграммы синхронного Л5-триггера =CnRn, соответствующих элементам И —НЕ, что и доказывает в данном конкретном случае адекватность обоих рассмотренных методов синтеза (см. рис. 14.6). В общем случае для полной гарантии получения триггера с пря- мым и инверсным выходами {симметричной структуры) необхо- димо использовать для синтеза последний рассмотренный метод, что мы и будем делать в дальнейшем. Быстродействие синтезированного синхронного устройства (рис. 14.8) в точности совпадает с быстродействием асинхрон- ного 7?5-триггера. Предпочтительный порядок чередования изменений сигналов на входах синхронного A.V-триггера следующий. Сначала уста- навливают нуль на входе синхронизации. Примерно через интер- вал времени, равный Гздр ср, можно переключать информацион- ные сигналы S и R. Еще через такой же отрезок времени допус- кается разблокировать устройства подачей высокого потенциала на вход синхронизации. Через отрезок времени, равный 3 Тзд.р.ср, когда новые сигналы установятся на выходе, рекомендуется снова заблокировать триггер подачей низкого потенциала на вход син- хронизации, чтобы при необходимости затем произвести его пе- реключение. Такое чередование изменений сигналов предотвра- щает случайное попадание триггера в запрещенное состояние (например, за счет нестабильности задержки входных сигналов) и уменьшает вероятность воздействия на него всякого рода по- мех. Синхронные 7?5-триггеры чаще всего используются в качестве вспомогательных в двухступенчатых структурах триггеров с дина- мическим управлением (например, в Г- и JA'-триггерах). 157
14.2. Синхронные P-триггеры Синхронный D-триггер работает следующим образом. Когда на вход синхронизации с подается логический нуль, устройство со- храняет предыдущее состояние. При наличии логической едини- цы на входе синхронизации на выходе триггера устанавливается потенциал, равный потенциалу на информационном входе триг- гера D (от delay — задержка). Поскольку сигнал на выходе появля- ется с некоторой задержкой, D-триггеры и называются триггера- ми задержки. Приведем соответственно прямую и обратную алгеб- раические таблицы истинности этих триггеров (табл. 14.11, 14.12). Т аблица 14.12 Таблица 14.11 Прямая алгебраическая таблица истинности синхронного D-триггера с" Q" ^КБЯ ^КБЯ 0 Qn-' 1 " ' 1 1 Dn D” D" Обратная алгебраическая таблица истинности синхронного D-триггера Q" с" D" Q"-' 0 * Dn 1 D" Уравнение функционирования триггера можно получить не- посредственно из табл. 14.11: Qn -cnQn~l vc"D". В соответствии с этим уравнением можно синтезировать схему, например на основе мультиплексора (рис. 14.9; см. также табл. 4.1, 4.2, 4.3 и рис. 4.2,. 9.3, в). Недостатком этой схемы является отсут- ствие инверсного выхода, поэтому используем методику синтеза последовательностных цифровых устройств, основанную на ис- пользовании запоминающего элемента (в данном случае КБЯ). От табл. 14.11 перейдем к алгебраическим диаграммам, показан- ным на рис. 14.10, с целью вывести уравнение функционирования синхронного D-триггера (и этим продемонстрировать эквивалентность методов синтеза) и, взяв из табл. 14.11 столбцы, выделенные серым фоном, синтезировать его схему на основе КБЯ и элементов И — НЕ Считывание с диаграммы, пока- занной на рис. 14.10, а, приводит к уже полученному уравнению функци- онирования синхронного D-триггера, а переходя от прямой диаграммы для 5кбя (см. рис. 14.10, б) к инверсной (см. рис. 14.10, в), находим выраже- ние 5£бя = c”D", которое идеально со- гласуется с функцией элемента И—НЕ- D с Q Рис. 14.9.Схема синхронного D-триггера на основе мульти- плексора 158
Q"x с" ^КБЯ\ с” ^КБЯ\ с” ^КБЯ \ С1 D" С о tJI а 1 D" 0 с С) 1 а б в г Рис. 14.10. Алгебраические диаграммы: а — синхронного D-триггера; б, в — соответственно прямой и инверсной функций ^квя; г — функции Т?КБЯ Используя напрямую диаграмму для /?кбя (см. рис. 14.10, г), получим уравнение 7?кбя = сПВп v с”, которое, будучи преобразо- ванным по формуле Моргана, будет иметь вид: ^"квя = С"-О" ' с" = ^"квя • с"• В соответствии с этим выражением, также отображающим фун- кцию элемента И—НЕ, и выражением для 5КБЯ синтезируем схе- му синхронного D-триггера (рис. 14.11). Анализируя схему, показанную на рис. 14.11, б, по наиболее длинному пути от входов до выходов легко определить параметры (быстродействия этого триггера (рис. 14.12). Наиболее длинный путь Рис. 14.11. Синхронный /(-триггер: а — условное графическое обозначение; б — принципиальная схема на КБЯ и элементах И -НЕ Рис. 14.12. Временные диаграммы напряжений в синхронном D-триггере, реализованном на основе КБЯ и элементов И —НЕ 159
проходит последовательно через элементы DD\, DD2, DD4 и DD3. Таким образом получается, что Тзтр = Tw = 47'-и р ср. Из временных диаграмм следует, что когда активным является импульс синхронизации, Тгтр = Tw = 3 Тм.р.ср. Если же инициатором опрокидывания выступает информационный сигнал D, то макси- мальное время задержки и разрешающее время становятся равны- ми, т.е. 7’зтр= Ттр = 4Тздрср. Это значение обычно и используется в справочниках. Синхронные D-триггеры с потенциальным управлением чаще всего применяют в простых регистрах памяти — оперативных запо- минающих устройствах (ОЗУ). Однако в целом ряде случаев исполь- зование таких триггеров в регистрах памяти, а тем более в регист- рах сдвига, является весьма ненадежным, поскольку при слишком длительном воздействии высокого потенциала на входе синхрони- зации возможны многократные ложные срабатывания. Для устра- нения этого недостатка переходят от триггеров со статическим уп- равлением к триггерам с динамическим управлением, имеющим двух- ступенчатую m—s структуру (от master — хозяин, slave — слуга). Эта структура работает следующим образом: сначала новая информация записывается в основной (master) триггер, при этом вспомогательный триггер (slave) заблокирован инвертированным импульсом синхронизации, и поэтому связь с выходом разорвана. Затем, когда импульс синхронизации кончается, основной триг- гер оказывается заблокированным, информация из него перепи- сывается во вспомогательный триггер и поступает на выход. В качестве вспомогательного обычно используют синхронные RS- триггеры (рис. 14.13, а) или их модификации. В условном графичес- ком обозначении динамическое управление показывают косым штри- хом на входе синхронизации (рис. 14.13, б). Если штрих направлен вниз, это значит, что управление производится по отрицательному перепаду напряжения, если вверх — по положительному. В представленной на рис. 14.13, а схеме есть определенные из- лишества. В частности, в ней содержатся девять элементов И — НЕ (по четыре в D- и RS-триггерах и один в качестве инвертора). Два элемента можно сэкономить, заменив ЛУ-триггер на КБЯ. Учиты- вая, что КБЯ имеет входы, инвертированные по отношению к а б Рис. 14.13. Схема синхронного Д-триггера, управляемого по отрицатель- ному перепаду напряжения (а) и его условное графическое обозначе- ние (б) 160
Рис. 14.14. Схема синхронного D-триггера, управляемого по положитель- ному перепаду напряжения (а) и его условное графическое изображе- ние (б) DS-триггеру, D-триггер при этом придется в схеме поставить «с ног на голову», и переключить сигнал синхронизации на более дальние от входа D элементы И —НЕ. Все эти меры позволяют со- брать триггер всего лишь на шести элементах И — НЕ (рис. 14.14, о). Правда, при этом управление будет происходить по положитель- ному перепаду напряжения (рис. 14.14, б). Логическим путем эта схема синтезируется довольно сложным образом [1], поэтому методика такого синтеза здесь не приводит- ся. Часть схемы на элементах DD3... DD6 (выделенная на рис. 14.14, а утолщенными линиями) полностью соответствует схеме синх- ронного D-триггера со статическим управлением (см. рис. 14.11, б). Дополнительная связь выхода DD4 с входом DD3 придает этой । паре функцию КБЯ. Элементы И —НЕ DD1 и DD2, дополнитель- но введенные в схему, с одной стороны, являются последова- тельными инверторами информационного сигнала D, а с дру- гой, — создают еще пару КБЯ (DD1, DD3 и DD2, DD4)- Для того |чтобы не усложнять восприятие схемы, в ней не обозначены сиг- налы установки в единицу (5, подключаемый к входам DD1 и DD5) и нуль (D, подсоединяемый к входам DD2 и DD6). Рассмотрим временные диаграммы (рис. 14.15) устройства, схема (которого приведена на рис. 14.14, а. Из рисунка видно, что реак- тив на выходе устройства наблюдается после подачи положитель- ,ных перепадов напряжения, создаваемых на входе синхрониза- ции. Причем, эта реакция в наихудшем случае запаздывает на время 7^ = 3 Т’зд.р.ср, что соответствует максимальной задержке триггера с потенциальным (статическим) управлением, когда возбужде- ние производится сигналом синхронизации. Максимальное время установления сигнала синхронизации в схеме после отрицательного перепада напряжения также равно г ^зл.р.ср, откуда следует, что разрешающее время триггера = 6 Т^^р. 6 Нарышкин 161
Рис. 14.15. Временные диаграммы синхронного D-триггера, управляе- мого по положительному перепаду напряжения При низком потенциале на входе синхронизации с на входах КБЯ устанавливаются логические единицы, которые, с одной стороны, обеспечивают КБЯ режим хранения информации, а с другой, — будучи поданными на входы элементов 2)7)1 и DD2. превращают эти элементы в простые инверторы сигнала D. При этом на выходе DD\ образуется сигнал D (как раз в том месте, куда он и должен поступать в соответствии со схемой статическо- го D-триггера). При подаче на вход с высокого потенциала замыкаются цепи двух КБЯ: DD1, DD3 и DD2, DD4, благодаря чему на_входах КБЯ DD5 и DD6 появятся соответственно сигналы 5КБЯ - D и = D, необходимые для установления на выходах сигналов Q = D n_Q = D. При использовании двух пар выходов: DD1, DD2 и Q, Q, пер- вая пара обеспечивает меньшую задержку появления сигналов на выходе относительно информационного сигнала D на входе, и, следовательно, ее можно применять для индикации и других це- лей, но так, чтобы не возникло ложных срабатываний. В заключение приведем схему синхронного D-триггера с дина- мическим управлением на двух мультиплексорах (рис. 14.16). Рис. 14.16. Схема синхронного D-триггера с управлением по отрица- тельному перепаду напряжения на двух мультиплексорах 162
Как видно из рисунка, схема состоит из двух последовательно соединенных статических триггеров, изображенных на рис. 14.9, в одном из которых поменяли местами входы D1Q и DII. Управление по положительному или отрицательному перепадам определяется тем, в каком из триггеров изменены входы и откуда снимаются выходные сигналы. 14.3. Т-триггеры Название 7-триггеры происходит от англ, topple — опрокиды- ваться. Асинхронный Т-триггер функционирует следующим образом: если на информационный вход Т подан логический нуль, триггер сохраняет предыдущее состояние (Qn = Q"-1); при подаче на вход Т логической единицы триггер переключается (опрокидывается) в противоположное состояние (Qn = Q"'1) (табл. 14.13 и 14.14). Из прямой таблицы истинности (см. табл. 14.13) и алгебраичес- кой диаграммы (рис. 14.17, а) следует уравнение функционирова- ния асинхронного Г-триггера: Qn = v _ Тп @ Qn-\, которое является функцией неравнозначности или суммирования по модулю два, вследствие чего эти триггеры применяются в счет- чиках. Отсюда и второе их название — счетные триггеры. Таблица 14.13 Прямая алгебраическая таблица истинности асинхронного Т-триггера г- Q" -^кбя Х’квя 0 О'-' 1 1 1 о^ Таблица 14.14 Обратная алгебраическая таблица истинности асинхронного Т-триггера Q" г о-' 0 О^ 1 рп ЛКБЯ Т Рис. 14.17. Алгебраические диаграммы асинхронного Г-триггера: а — функционирования; б, в — соответственно прямая и инверсная входа .$кБЯ; г, д — соответственно прямая и инверсная входа 7?кбя О 163
Основываясь на уравнении функционирования, можно предло- жить схему Т-триггера на сумматоре по модулю два (рис. 14.18, о). Однако при включении питающего напряжения такое устройство по выходу оказывается в состоянии порогового напряжения (7пор и поэтому не используется. Не лучше обстоит дело и при синтезе схемы на основе КБЯ, который выполняется обычным способом: на основе использова- ния двух столбцов прямой таблицы истинности (см. табл. 14.13), отмеченных серым фоном, в которые внесены данные обратной таблицы истинности КБЯ (см. табл. 14.14). Затем составляются ал- гебраические диаграммы, показанные на рис. 14.17, б... д, и с них считываются функции входов КБЯ: 5"кбя= Т^- Эти функции легко реализуются с помощью двух элементов И- НЕ (DDI и DD2 на рис. 14.18, б). К сожалению, устройство, создан- ное на основе такой схемы, очень критично к длительности ин- формационного сигнала Т, т.е. при относительно большой дли- тельности этого сигнала КБЯ попадает в запрещенное состояние. Выходом из создавшегося положения является применение двухступенчатой структуры триггера с динамическим управле- нием (рис. 14.19). Такой асинхронный Т-триггер состоит из двух синхронных RS- триггеров: основного (DD\ ...DD4) и вспомогательного (DD5...DD8). На вход синхронизации основного триггера подается информа- ционный сигнал Т, на вход_5 — сигнал с инверсного выхода вспомогательного триггера 0В, а на вход R — сигнал с прямого выхода вспомогательного триггера QB. Сигнал синхронизации вспомогательного триггера является совокупностью сигналов, снимаемых с выходов элементов DD\ и DD1 (^кбяо, -Якбяо)- Когда на выходе одного из этих элементов появляется нулевой уровень, опрокидывающий КБЯ основного а б в Рис. 14.18. Асинхронный Т-триггср со статическим управлением: а — схема на основе сумматора по модулю два; б — схема на элементах И —НЕ и КБЯ; в — условное графическое обозначение 164
Рис. 14.19. Схема асинхронного Т-триггера с управлением по отрица- тельному перепаду напряжений (а) и его условное графическое обо- значение (б) триггера, этот же сигнал поступает на соответствующий вход вспомогательного триггера и блокирует приходящую с КБЯ на вход этого же элемента И —НЕ единицу, вследствие чего вспомо- гательный триггер сохраняет предыдущее состояние. Когда же на вход Т основного триггера поступает низкий по- тенциал (логический нуль), вспомогательный триггер приводит- ся в активное состояние, отслеживающее на выходах 0В и QB со- стояния выходов основного триггера 0ои Qo. Поскольку эти сиг- налы подводятся к входам основного триггера, он функциониру- ет как асинхронный Т-триггер. Из приведенных рассуждений сле- дует, что эти сигналы в совокупности есть ничто иное, как ин- версия счетного сигнала Т. Ознакомимся более подробно с работой асинхронного двух- ступенчатого Т-триггера, используя его таблицу функционирова- ния (табл. 14.15). В первой строке табл. 14.15 описано исходное состояние тригге- ра (нулевой такт). Нулевое состояние на информационном входе Тобеспечивает на входах КБЯ основного триггера логические еди- ницы, что соответствует режиму хранения информации КБЯ. До- Таблица 14.15 Таблица функционирования асинхронного Т-триггера с динамическим управлением п — “^КБЯо Л"кБЯо О", 0"о ^"кБЯв КБЯ в Q", ё; 0 0 1 1 0 1 1 0 0 1 1 — 1 о-1 1 I-2 О-3 1 I-2 0 1 0 1-' 1 1 0 О-2 1 I-3 о-4 2 1 1 о-1 О'3 I-2 I-2 1 1 0 0 1 I-1 0 1 1 О'2 О-4 1-3 165
пустим, что в нулевом такте основной триггер находился в нуле- вом состоянии. В соответствии с формулой, выведенной для входа синхронизации вспомогательного триггера, его выходы повторя- ют сигналы, действующие на его информационных входах. В первом такте (см. вторую строку табл. 14.15) подадим на счетный вход логическую единицу — высокий потенциал. Это вызовет следу- ющую реакцию. На выходе DD1 с одной задержкой сигнала на эле- менте И — НЕ образуется низкий потенциал, что обеспечит с двой- ной задержкой появление высокого потенциала на выходе элемента DD3, а это, в свою очередь, приведет к появлению с тройной задер- жкой низкого потенциала на выходе элемента DD4. На этом закан- чивается процесс первого опрокидывания (записи логической еди- ницы) основного триггера, т.е. этот процесс занимает промежуток времени, равный трем задержкам сигнала элементом И — НЕ. Что касается вспомогательного триггера, то в нем произойдет измене- ние сигнала только на выходе элемента DD6, вследствие чего КБЯ вспомогательного триггера окажется в режиме хранения информации. Подадим на информационный вход Т низкий (нулевой) потен- циал, при этом произойдет отрицательный перепад напряжения (см. третью строку табл. 14.15, конец первого такта) и на выходе элемента DDI с одной задержкой сигнала образуется высокий по- тенциал, что обеспечит основному триггеру режим хранения ин- формации. Это изменение еще с одной задержкой сигнала приве- дет к появлению нулевого потенциала на входе 5КБЯ вспомогатель- ного триггера, а следовательно, к переключению этой КБЯ в проти- Рис. 14.20. Временные диаграммы процессов в асинхронном счетном триггере с динамическим управлением 166
Табли ца 14.16 Прямая алгебраическая таблица истинности синхронного Т-триггера ' с" Г Q" •^КБЯ ‘S'kbb 0 * Q"-' 1 : 1 1 0 Qn-i 1 1 1 1 (У* О"'1 Таблица 14.17 Обратная алгебраическая таблица истинности синхронного Т-триггера Q" c" Qn-l 0 * Q^-l 1 ] воположное состояние. Окончательное установление нового состоя- ния происходит через четыре задержки сигнала элементом И —НЕ. Аналогично можно проследить работу триггера в других тактах (рис. 14.20). Из анализа работы асинхронного двухступенчатого Т-триггера можно сделать вывод о быстродействии устройства. Реакция на выходе основного триггера заканчивается через время Тзо = 3 Тзд р ср, а на выходе вспомогательного триггера — через интервал времени 71в = 4Тздрср после подачи отрицательного перепада напряжения на вход Ти через время Тртр = 771здрср после подачи положитель- ного перепада, что соответствует разрешающему времени триг- гера. Откуда можно сделать следующий вывод: при необходимо- сти быстрого использования новой информации о состоянии триг- гера (при отсутствии опасных из-за ложных срабатываний свя- зей), ее можно получить с выхода основного триггера как реак- цию на положительный перепад напряжения на информацион- ном входе Т. Синхронный Т-триггер функционирует следующим образом: если на вход синхронизации с подан логический нуль, триггер сохра- няет предыдущее состояние (Ол = (?л-1) при любом сигнале на информационном входе Г; при подаче на вход с логической еди- ницы триггер работает как асинхронный Т-триггер (табл. 14.16, 14.17). С помощью этих таблиц можно составить алгебраические Диаграммы (рис. 14.21), позволяющие определить уравнение фун- кционирования синхронного счетного триггера и функции КЦУ, согласующие входы триггера с КБЯ. Рис. 14.21. Алгебраические диаграммы синхронного счетного триггера: ° уравнения функционирования; б, в — функций КЦУ, согласующих входы с КБЯ 167
Рис. 14.22. Схема синхронного Г-триггера с управлением по отрица- тельному перепаду напряжения (а) и его условное графическое обо- значение (б) Эти выражения имеют следующий вид: Qn = cnTnQ^i v ^Qn-l v j^Qn-l. 5икбя = c"TnQ^ Rn^ = cnTnQn~{. Уравнения для входов КБЯ отличаются от уравнений для од- ноименных входов асинхронного счетного триггера только сомно- жителем, обозначающим сигнал синхронизации, поэтому все рас- суждения о необходимости применения двухступенчатой структу- ры относятся и к синхронному триггеру. В итоге приходим к схе- ме, изображенной на рис. 14.22, а. На рис. 14.22, б представлено условное графическое обозначение синхронного /’-триггера с ди- намическим управлением по отрицательному перепаду напряже- ния. В силу идентичности входов си Т, при высоком напряжении на входе синхронизации динамическое управление передается на вход Т. Учитывая идентичность этой схемы и схемы асинхронного счет- ного триггера (см. рис. 14.19), можно утверждать, что и быстро- действие данного устройства точно такое же. 14.4. /Х-триггеры Название ZK-триггеры происходит от англ, jark — внезапное включение и kill — аннулирование. Асинхронный JK-триггер функционирует следующим образом: если в и-м такте на оба входа триггера поданы сигналы логи- ческих нулей, то он сохраняет состояние предыдущего (и - 1)-г° такта; если на вход J подан сигнал логической единицы, а на вход логического нуля, триггер устанавливается в состояние единицы 168 А
Таблица 14.18 Таблица 14.19 Прямая таблица истинности асинхронного триггера К" J" Q" 0 0 Q"-1 0 1 1 1 0 0 1 1 0^ Обратная таблица истинности асинхронного /АГ-триггера Qn-l О' К" J" 0 0 * 0 0 1 * 1 1 0 1 * 1 1 0 * (включается) независимо от того, в каком состоянии он находился в предыдущем такте; если на вход К подан сигнал логической единицы, а на вход J — логического нуля, триггер устанавливается в состояние нуля (ан- j купируется) независимо от того, в каком состоянии он находился в предыдущем такте; если на оба входа триггера поданы сигналы логической единицы, он опрокидывается в противоположное предыдущему состояние. Из приведенного описания видно, что /А'-триггер объединяет в себе функции .^-триггера в первых трех позициях и Т-триггера — в последней позиции (табл. 14.18 и 14.19). Поэтому JK-триггер еше называют универсальным. Прямая таблица истинности асинхронного /АГ-триггера совме- стно с обратными таблицами истинности КБЯ позволяет соста- вить алгебраические диаграммы (рис. 14.23) и определить соответ- ствующие уравнения: (2я = J"Q^v F^-1; = KnQn~l. Из прямой таблицы истинности и уравнения функционирова- ния вследствие наличия в них инверсного значения выходного сигнала следует, что схема устройства должна иметь динамичес- кое управление. . Уравнения для КЦУ, с которых выходные сигналы подаются На входы КБЯ, показывают возможность использования в схеме элементов И —НЕ. Рис. 14.23. Алгебраические диаграммы асинхронного JK-триггера: — уравнения функционирования; б, в — функций КЦУ, согласующих входы с КБЯ 169
Рис. 14.24. Схема асинхронного /^-триггера с управлением по отрица- тельному перепаду напряжения (а) и ее условное графическое обозна- чение (б) В итоге получаем схему асинхронного JK-триггера с динами- ческим управлением, показанную на рис. 14.24, из которой следу- ет, что объединение входов J и К приводит к схеме асинхронного Т-триггера (см. рис. 14.19). Это объясняется частичной общностью функций асинхронных JK- и /’-триггеров. Учитывая большую схожесть схем асинхронных JK- и /’-триг- геров, студенту предлагается самому проанализировать работу JA'-триггера, составив таблицы функционирования и временные диаграммы. Эти исследования должны привести к получению следующих известных значений параметров быстродействия. Ре- акция на выходе основного триггера заканчивается через время Т’з.о = 3 Т’и.р.ср, а на выходе вспомогательного триггера — через ин- тервал времени Тзв = 4Тмрср после подачи отрицательного пере- пада на входы J, К и через время Тртр = 7 Тзл р ср после подачи поло- жительного перепада на эти входы, что соответствует разрешаю- щему времени триггера. Синхронный JK-триггер отличается от асинхронного наличием входа сигнала синхронизации. При подаче на этот вход логичес- Т аблица 14.21 Таблица 14.20 Прямая таблица истинности синхронного JK-триггера с" К" J” О’ 2?кбя ^БЯ 0 * * Qn-X 1 1 1 0 0 Q"'1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0^ (F1 е"-1 Обратная таблица истинности синхронного /^-триггера О’ с" К" г оп~- 0 * * 0^ 1 1 1 0 1 1 0я-1 1 1 СТ1 1 170
Рис. 14.25. Алгебраичес- кая диаграмма синхрон- ного /А'-триггера Рис. 14.26. Алгебраические диаграммы для уравнений входов КБЯ в составе синхрон- ного /А''-триггера кого нуля триггер сохраняет состояние предыдущего такта вне зависимости от сигналов, поданных на информационные входы /и АГ(табл. 14.20 и 14.21). При подаче логической единицы на вход синхронизации триг- гер устанавливается в состояние, определяемое прямой таблицей истинности асинхронного 776-триггера. С помощью таблицы истинности можно составить алгебраи- ческую диаграмму функционирования синхронного JAf-триггера (рис. 14.25). Три контура алгебраической диаграммы позволяют представить уравнение функционирования синхронного JK-триггера в следу- ющем виде: Qn = cnJnQ^ xr Qn~l~K" v QnA с". Для синтеза комбинационного цифрового устройства, согласую- щего входы триггера с КБЯ, учтем обратную таблицу истинности КБЯ (см. табл. 14.6) и два столбца прямой таблицы истинности син- хронного JK-триггера (см. табл. 14.20), выделенные серым фоном. С целью получения логических функций этого КЦУ в миними- зированном виде перенесем данные из этих выделенных столбцов табл. 14.20 на алгебраические диаграммы (рис. 14.26). Произведя инверсию функций и объединив контурами остав- шиеся в каждой из диаграмм на рис. 14.26 ячейки с 2Л-1 и Q"~', Получим в результате уравнения, соответствующие операциям эле- ментов И — НЕ: S^=c"JnQn-'-R^=c'’KnQn-'. Эти формулы отличаются от уравнений, присущих асинхрон- ному /А--триггеру, только наличием в качестве сомножителя сиг- нала синхронизации с. Отсюда следует, что схемы синхронного и асинхронного JK-триггеров должны быть идентичны. На рис. 14.27 приведены схема и условное графическое обо- значение комбинированного синхронного /АГ-триггера с дина- мическим управлением по отрицательному перепаду напряже- ния серии ТВ1. 171
Рис. 14.27. Схема комбинированного синхронного /Л'-тригтера с динамичес- ким управлением по отрицательному перепаду напряжения серии ТВ1 (а) и его условное графическое обозначение (б) Микросхема серии ТЕИ имеет инверсные асинхронные вхо- ды установки S и сброса R, т.е. входы с активным низким уров- нем. Если на эти входы подать противоположные уровни (низ- кий — 0 и высокий — 1), то входы J, К и с не будут действовать, а состояния выходов_0 и Q триггера будут определяться сигна- лами на входах S и R. Эти сигналы не обязательно подавать на все элементы И-НЕ, как показано на рис. 14.27. Достаточно (кроме пары 7)7)7, 7)7)8) подать их на пары элементов 7)7)1 ,_7)7)2 или 7)7)7, 7)7)8. Но в этих случаях воздействие сигналов S и R должно быть более продолжительным, т.е. процесс будет более замедленным. Когда на входы S и R поданы напряжения высокого уровня, в триггер можно загружать информацию с входов /и К или хра- нить ее. Каждый из входов J и К имеет по три входа, объединенных между собой операцией конъюнкции, что очень удобно при син- тезе на основе этого триггера различного рода регистров и счет- чиков. Информация с входов J и К загружается в основной триггер при высоком потенциале на входе синхронизации с и переводит- ся во вспомогательный триггер при подаче отрицательного пере- пада напряжения на этот вход. 172
Гис. 14.28. Схема синхронного /Л-триггера, управляемого по положи- тельному перепаду напряжения (а), и его условное графическое обозна- чение (6) Одновременная подача напряжений низких уровней на входы Б и R запрещена, поскольку приводит к установлению на выхо- дах Q и Q высоких потенциалов, соответствующих логическим единицам. В заключение следует упомянуть еще об одном способе реали- Зации синхронного /^-триггера (рис. 14.28) [12], управляемого по Положительному перепаду напряжения, аналогичного по схемно- му построению синхронному Л-триггеру. I Предлагается самостоятельно проанализировать работу этой схемы. 14.5. Взаимозаменяемость триггеров Мы рассмотрели процессы синтеза различных типов триггеров На основе КБЯ. В порядке обобщения методик проанализируем создание одних триггеров на основе других. Причем здесь также будем синтезировать КЦУ, согласованное как с тем триггером, Который необходимо получить, так и с тем, который использует- ся в качестве запоминающего элемента (см. рис. 13.1). Сначала рассмотрим случаи, когда необходимо создать асин- хронный триггер на основе асинхронного или же синхронный 173
на основе синхронного. Эти варианты аналогичны вследствие того, что в последнем из них вход синхронизации синтезируемого триг- гера накоротко соединяется с таким же входом триггера, на осно- ве которого проектируется новый, и поэтому сигнал синхрониза- ции из состава логических аргументов и функций исключается. Естественно, что при синтезе триггеров с динамическим управ- лением необходимо в качестве основы также использовать тригге- ры с динамическим управлением, если же все-таки используется триггер со статическим управлением, необходимо дополнительно к нему ввести еше одну ступень в виде вспомогательного триггера. В качестве исходных возьмем данные сводной обратной табли- цы истинности асинхронных триггеров (табл. 14.22). Начнем синтез различного типа триггеров, взяв за основу 7?5-триггер. Заполним соответствующие диаграммы Вейча, про- изведем считывание с них логических функций КЦУ и по ним построим соответствующие схемы (рис. 14.29). Из полученных формул и схем видно, что КЦУ здесь имеют инвертированные сигналы по отношению к тем, что были, когда за основу брали КБЯ. Например, вместо использовавшихся эле- ментов Й —НЕ теперь необходимо применять конъюнкторы или инверторы. Пустые ячейки на диаграммах Вейча на рис. 14.30, а соответ- ствуют запрещенным состояниям 7?5-триггера. Простота полу- ченной схемы, т.е. отсутствие дополнительных элементов и со единений, объясняется универсальным характером функции JK- триггера. Благодаря этой универсальности функциональных возможнос- тей JA'-триггера получают простые схемы D-триггера (рис. 14.30, 6) и счетного Г-триггера (рис. 14.30, в). На диаграмме Вейча, показанной на рис. 14.31, о, также на- блюдаются две пустые ячейки, соответствующие запрещенным со- стояниям 7?5-триггсра. Следует обратить внимание и на более сложные схемы, по- лучаемые синтезом вследствие простоты функции D-триггера (рис. 14.31, б, в). Таблица 14.22 Сводная обратная таблица истинности асинхронных триггеров С"-1 Q" 2?кбя ^КБЯ R" 5я /с J" О" г 0 0 * 1 * 0 * 0 0 0 0 1 1 0 0 1 * 1 1 1 1 0 0 1 1 0 1 * 0 1 —* 1 1 1 * 0 * 0 * 1 0 174
Рис. 14.29. Диаграммы Вейча, функции, схемы JK-(a). D-(6) и Г-триггсров (в), созданных на основе AS-триггера Рис. 14.30. Диаграммы Вейча, функции, схемы AS-(a), D-(6) и Г-триггеров (в), созданных на основе У А'-триггера Q Q 175
Рис. 14.31. Диаграммы Вейча, функции, схемы RS-(a), JK-(6) и 7-триггеров (в), созданных на основе Д-триггера а Рис. 14.32. Диаграммы Вейча, функции, схемы Л5-(а), JK-(6) и Д-триггеров (в), созданных на основе 7-триггера Г= D"Q"-'vD"Q‘ 176
Рис. 14.33. К синтезу асинхронного Г-триггера на базе синхронного D-триггера с динамическим управлением Показанные на рис. 14.32 диаграммы Вейча и схемы аналогич- ны приведенным на рис. 4.31. Следует отметить, что иногда к серьезному упрощению схемы приводит комбинированное использование синхронного триггера для получения асинхронного. Рассмотрим в качестве такого приме- ра синтез асинхронного счетного триггера на основе синхронного триггера задержки с динамическим управлением для получения триггера с устойчивым срабатыванием (рис. 14.33), используя для краткости анализа алгебраическую прямую таблицу истинности Т- триггера, алгебраическую обратную таблицу истинности D-тригге- ра, выделенную серым фоном, и диаграмму его состояний. Контрольные вопросы 1. Для каких целей в триггерах используется сигнал синхронизации? 2. Для каких целей применяются триггеры с динамическим управле- нием? 3. Приведите таблицу истинности синхронного DS-триггера и пояс- ните ее. 4. С какой целью применяются обратные таблицы истинности и как они составляются? 5. Приведите обратную таблицу истинности асинхронного Dis'-триггера. 6. Назовите известные типы триггеров и приведите их условные гра- фические обозначения. 7. С помощью таблицы истинности и алгебраической диаграммы вы- ведите уравнение функционирования асинхронного /^-триггера. 8. Синтезируйте асинхронный DD-триггер на основе элементов ИЛИ- НЕ. Почему этот триггер называется ДБЯ? 9. Синтезируйте асинхронный DS-триггер на основе элементов И — НЕ. Изобразите его временные диаграммы и приведите параметры быс- тродействия. 10. Чем различаются таблицы истинности и функционирования? И. Изобразите таблицу функционирования асинхронного DD-тригге- ра на основе элементов И —НЕ. Укажите временные задержки на выхо- дах всех его элементов. 12. В чем заключается вредность попадания элемента в запрещенное состояние? 13. Что такое КБЯ, каковы ее свойства и где она используется? 14. Приведите обратную таблицу истинности КБЯ. 177
15. Синтезируйте синхронный RS-триггер на основе КБЯ. Определите параметры его быстродействия. 16. Выведите уравнение функционирования синхронного AS-триггера. 17. Определите понятие симметричной структуры триггера. 18. Приведите временные диаграммы синхронного AS-триггера. 19. Изобразите прямую и обратную таблицы истинности синхронного D-триггера. 20. Выведите уравнение функционирования синхронного D-триг- гера. 21. Синтезируйте схему синхронного D-триггера на основе КБЯ и эле- ментов И —НЕ. 22. Синтезируйте схему синхронного D-триггера на основе мульти- плексора. В чем заключается ее недостаток? 23. Изобразите временные диаграммы синхронного D-триггера на ос- нове КБЯ и элементов И —НЕ и определите параметры его быстродей- ствия. 24. Приведите схему синхронного D-триггера, управляемого по отри- цательному перепаду напряжения, с использованием одноступенчатых синхронных D- и AS-триггеров. 25. В каких случаях и для чего можно использовать выходы основного триггера в двухступенчатых структурах? 26. Приведите прямую и обратную таблицы истинности асинхронных счетных триггеров. Где применяются эти триггеры? 27. Синтезируйте асинхронный счетный триггер на основе КБЯ и эле- ментов И —НЕ. Почему необходимо динамическое управление этим триг- гером? 28. Приведите схему асинхронного счетного триггера, управляемого отрицательным перепадом напряжения, и поясните принцип ее работы. 29. Изобразите временные диаграммы асинхронного счетного тригге- ра, управляемого отрицательным перепадом напряжения, и приведите параметры его быстродействия. 30. Каким образом на условных графических обозначениях можно определить, по какому перепаду напряжения управляется триггер? 31. Приведите алгебраические прямую и обратную таблицы истинно- сти синхронного счетного триггера. 32. Выведите уравнение функционирования синхронного счетного триггера. 33. Приведите прямую и обратную таблицы истинности асинхронно- го JA'-триггера. 34. Выведите уравнение функционирования асинхронного JA-триггера. 35. Изобразите схему асинхронного JK-триггера, управляемого отри- цательным перепадом напряжения. 36. Приведите временные диаграммы асинхронного //^-триггера, уп- равляемого отрицательным перепадом напряжения. Определите параметры быстродействия. 37. Выведите уравнение функционирования синхронного JA-триггера- 38. Приведите условное графическое обозначение комбинированного синхронного JA-триггера с динамическим управлением по отрицатель- ному перепаду напряжения типа ТВ1. 178
39. Проанализируйте работу синхронного /А'-триггера, управляемого 00 положительному перепаду напряжения (см. рис. 14.27). 40. Синтезируйте асинхронный Т-триггер на базе синхронного £>-триг- гера и проанализируйте его работу. ГЛАВА 15 СЧЕТЧИКИ 15.1. Классификация и основные параметры Счетчики классифицируются по характеру производимой ариф- метической операции, модулю счета Ксч, коду записываемого чис- ла, способу подачи счетных импульсов и способу передачи сигна- лов переноса от младших разрядов к старшим. Помимо некоторых параметров, указанных в признаках клас- сификации, необходимо отметить также число разрядов т счет- чика, максимальное число Атах, которое может быть зарегистри- ровано счетчиком, и параметры быстродействия: длительность про- цесса установления (задержки) информации (показаний) счет- чика Тзсч после подачи очередного счетного импульса Тс и разре- шающее время счетчика — минимальный интервал времени меж- ду поступлением соседних счетных импульсов Тр.сч. По характеру производимой арифметической операции счетчики делятся на суммирующие, вычитающие и реверсивные. К р е в е р - сивн ы м счетчикам относятся такие, которые могут в зависимо- сти от состояния сигнала реверса или от того, на какую шину (суммирующую или вычитающую) подан очередной счетный им- пульс, выполнять операцию суммирования или вычитания. Модулем счета Кт называется число счетных импульсов, по- данных на счетчик, при котором он приходит в первоначальное состояние, т. е. это размер замкнутого цикла счетчика. По модулю счета счетчики делятся на двоичные и недвоичные. К двоичным счетчикам относятся такие, у которых модуль счета определяется соотношением Ксч = 2т (где т — число разря- дов счетчика). Среди недвоичных счетчиков особое место за- нимают двоично-десятичные, у которых модуль счета Ксч = 10' (где число декад в счетчике). Кодом записываемого числа называется совокупность весовых множителей ah соответствующих каждому разряду счетчика. По коду записываемого числа N = У счетчики также де- л 7=0 дятся на двоичные и недвоичные. К двоичным относятся счет- чики, у которых весовые множители соответствуют формуле о,= 2'. “апример, у четырехразрядного счетчика код 8-4-2-1. 179
По способу подачи счетных импульсов различают счетчики син- хронные (параллельные) и асинхронные. К синхронным от- носятся такие счетчики, у которых счетные сигналы подаются па- раллельно (одновременно, синхронно) на все разряды. Асинхронные счетчики могут быть сквозного, последова- тельного и смешанного (комбинированного) типов. В асинхрон- ных счетчиках сквозного типа счетный импульс на каждый разряд формируется путем стробирования счетного импульса, приходя- щего на предыдущий разряд, выходным сигналом с этого преды- дущего разряда. В счетчиках последовательного типа счетным им- пульсом каждого разряда является сигнал переноса с выхода пре- дыдущего разряда. В счетчиках смешанного типа одни разряды уп- равляются синхронно, а другие асинхронно. По способу передачи сигналов переноса от младших разрядов к старшим различают счетчики параллельного, сквозного, после- довательного и смешанного типов. Максимальное число, которое может зарегистрировать счетчик, определяется простым соотношением тУтах = Ксч - 1, так как в од- ном из тактов счетчик принимает нулевое состояние. Кроме того, существует предельное значение JVmax, зависящее от суммы весо- вых множителей разрядов счетчика, получаемое подстановкой в формулу для числа А значений Q,= 1: т-1 max пред ~ У. 1=0 Параметры быстродействия определяются быстродействием используемых в счетчике триггеров, структурой счетчика, опре- деляемой способами подачи на разряды счетных импульсов и сигналов переноса, а также быстродействием комбинационных цифровых устройств, согласующих работу отдельных разрядов счетчика. 15.2. Синхронные двоичные счетчики Синхронные счетчики являются самыми быстродействующи- ми. Кроме того, методика их синтеза наиболее простая. К недо- статкам синхронных счетчиков следует отнести их достаточно боль- шую схемную сложность при большом числе разрядов. Методика синтеза синхронных счетчиков практически ничем не отличается от методики синтеза триггеров, которые в данном случае выступают в роли запоминающих устройств. Единствен- ное, пожалуй, отличие состоит в том, что в качестве исходных данных заполняется не таблица истинности, а таблица функцио- нирования счетчика на весь цикл его работы. 180
Таблица 15.1 Таблица функционирования трехразрядного суммирующего двоичного счетчика п Q" QS 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 Проведем сначала синтез синхронного суммирующего дво- ичного счетчика с модулем сче- та Ксч = 8 и кодом 4-2-1, для чего составим соответствую- щую таблицу функционирова- ния (табл. 15.1). Табл. 15.1 составлена таким образом, что номер такта п со- впадает с числом, записанным в счетчике в двоичном коде. В каждой строке подразумевает- ся наличие счетного (тактово- го) импульса, поэтому в це- лях сокращения объема табли- цы столбец с данными о счет- ном импульсе по умолчанию опущен. Данные о предыдущем такте в таблице располагаются на соседней сверху строке. Заполним алгебраические диаграммы выходов всех разрядов счетчика (рис. 15.1). Координатами в каждой диаграмме являются значения разрядов счетчика в п - 1-м такте. В каждую ячейку с данными координатами записывается состояние данного разря- да в предыдущем (л - 1)-м такте в прямой или инверсной форме в зависимости отданных таблицы функционирования. Дальней- шая обработка алгебраических диаграмм ведется обычным обра- зом. Одноименные ячейки заключаются в контуры (или выделя- ются серым фоном) и по ним считываются аналитические вы- ражения соответствующих уравнений функционирования разря- дов счетчика. Итак, получены следующие уравнения: Go" =0Г'; Q” = G0"’I®GI"-1; G2" = Go"-1 • G"’1 • qF v (Qp v gF) • or1 . Рис. 15.1. Алгебраические диаграммы выходов трехразрядного суммиру- ющего двоичного счетчика 181
Рис. 15.2. Схема синхронного суммирующего двоичного счетчика с па- раллельным переносом Теперь, чтобы перейти к схеме, необходимо выбрать тип триг- гера и воспользоваться его обратной таблицей истинности. Наи- более простым в данном случае решением оказывается выбор син- хронного счетного триггера. Напомним, что когда необходимо со- хранить предыдущее состояние, на вход Т-триггера следует пода- вать логический нуль, а когда требуется его проинвертировать — логическую единицу. Воспользовавшись этим правилом и подстав- ляя нуль и единицу в полученные из диаграмм формулы, запишем: 7’0"=1; Т,И=0ОЯ’1; 7?=Q0"-,-Or1. Приведенные формулы можно обобщить на произвольное чис- ло разрядов: TP=Q^-Qr{---Qi-^- графическое обо- значение синхрон- ного суммирующего двоичного счетчика Следовательно, информационный сиг- нал Т, подаваемый на данный разряд, фор- мируется путем конъюнкции выходных сиг- налов всех более младших разрядов, обра- зованных в предыдущем такте. Для того что- бы не вводить в схему дополнительные эле- менты в виде конъюнкторов и не ухудшать этим быстродействие счетчика, можно ис- пользовать универсальные JK-триггеры типа ТВ1. Это позволит, кстати, расширить фун- кцию счетчика путем добавления еще од- ного разряда. Кроме того, можно восполь- зоваться асинхронными входами триггеров 182
Рис 15.4. Временные диаграммы процессов, происходящих в синхрон- ном двоичном суммирующем счетчике S для начального ввода в счетчик произвольных чисел (уста- новка нуля производится подачей нуля на вход А). Таким обра- зом приходим к схеме, представленной на рис. 15.2. Условное графическое обозначение синтезированного счетчи- ка приведено на рис. 15.3. Сокращенное обозначение СТпроисхо- дит от англ, counter — счетчик. На рис. 15.4 показаны временные диаграммы процессов в син- тезированном синхронном суммирующем трехразрядном счетчи- ке. Знаком тильда отмечены задержки, равные задержкам исполь- зованных триггеров. Из синтезированной схемы и временных диаграмм видно, что длительность процесса установления сигналов на выходе синх- ронного счетчика равна длительности задержки применяемых триг- геров, т.е. Т3,сч = Тзтр. Разрешающее время счетчика (минимальный период поступления счетных импульсов) также равняется разре- шающему времени триггеров: 7,ра3р.еч= Тразртр. Однако с увеличени- ем разрядности, т. е. в связи с добавлением необходимых конъюн- кторов и, следовательно, затягиванием процесса записи новой информации в основные триггеры, разрешающее время счетчика увеличивается на значение средней задержки распространения сиг- налов в этом дополнительном элементе: Тразр.сч= Tp^.^-i- Т3.р.ср. Рассмотрим применение синтезированного счетчика в качестве преобразователя временного интервала в двоичный код, используе- мого, например, в радиолокационных станциях [291. Рис. 15.5. Схема преобразователя временного интервала в двоичный код 183
Рис. 15.6. Временные диаграммы преобразователя временного интервала в двоичный код Принцип построения такого преобразователя состоит в подсче- те числа N импульсов тактового генератора G, укладывающихся в преобразуемом (измеряемом) интервале времени Ттм (рис. 15.5): Т = NT где Тп — период повторения тактовых импульсов. До прихода стартового импульса (1) управляющий /?5-триггер находится в нулевом состоянии, поэтому тактовые импульсы не могут пройти через конъюнктор на вход счетчика СТ (рис. 15.6), который также находится в нулевом состоянии, что обеспечива- ется своевременной подачей на него сигнала сброса (4). Старт-импульс (1), отмечающий начало временного интерва- ла, ставит триггер в состояние единицы (6), обеспечивающее про- хождение тактовых импульсов (5) через конъюнктор в счетчик (7). Стоп-импульс (2), приходящий в конце временного интервала, возвращает триггер в исходное нулевое состояние, прекращая по- ступление тактовых импульсов в счетчик. После окончания счета с помощью импульса считывания (3) показания счетчика записываются в D-триггеры, образующие ре- гистр памяти RG. Для подготовки счетчика к измерению нового интервала времени после снятия показаний из него поступает импульс установки всех разрядов в нулевое состояние — импульс сброса (4). 184
Рис. 15.7. Схема преобразователя двоичного кода во временной интервал с использованием суммирующего счетчика Рис. 15.8. Временные диаграммы преобразователя двоичного кода во вре- менной интервал при использовании суммирующего счетчика Рассмотрим теперь применение суммирующего счетчика в пре- образователе двоичного кода во временной интервал (рис. 15.7, 15.8) [16]. Импульс (1) начала временного интервала устанавливает в со- стояние логической единицы асинхронный ЛУ-триггер с управле- нием по отрицательному перепаду (2), и тактовые импульсы (3), следующие с периодом повторения Т„, получают возможность прой- ти через конъюнктор и поступить на счетный вход счетчика СТ (4). Так продолжается до тех пор, пока цифровой компаратор не об- наружит равенство кода А, снимаемого со счетчика, и кода В, задающего длительность временного интервала. В момент совпадения кодов на выходе цифрового компаратора возникнет импульс (5), который после инвертирования (6) оп- рокинет в нулевое состояние RS-триггер, закончив тем самым формирование выходного импульса (2) и прекратив поступление 185
Рис. 15.9. Схема преобразователя двоичного кода во временной интервал с использованием суммирующего счетчика и элемента И —НЕ новых счетных импульсов на счетчик. Этим же импульсом (6) счет- чик переводится в нулевое состояние. Схему, представленную на рис. 15.7, можно несколько упрос- тить, если входной код числа подавать непосредственно на уста- новочные входы счетчика (рис. 15.9). Так как установочные входы счетчика СТ являются инверсны- ми, при подаче в счетчик прямого кода числа в нем будет записы- ваться обратный код. Это значит, что при подаче на счетный вход заданного числа импульсов счетчик придет в состояние, когда на всех его разрядах установятся единицы. При этом на выходе (5) элемента И— НЕ образуется отрицательный перепад напряжения, который и вернет 7?5-триггер в исходное нулевое состояние, за- вершив формирование выходного сигнала (2). Еше одним важным фактором является применение синхрон- ных двоичных счетчиков в качестве делителей частоты повторе- ния импульсов. Если взять любой счетчик с модулем счета Ксч, то частота импульсов на выходе его старшего разряда оказывается в Ксч раз меньше частоты тактовых (счетных) импульсов. Вообще же каждый разряд двоичного счетчика уменьшает частоту повто- рения импульсов в два раза, поэтому, переключая выход с одного разряда на другой, можно изменять коэффициент деления часто- ты повторения импульсов. Этот метод заложен в построении делителей частоты повторе- ния импульсов с управляемым коэффициентом деления, опреде- ляемым следующей формулой: т-1 Л1.ВШ =(^п.вых/2т)1>,2''. /=0 где Гпвых — частота повторения выходных импульсов; Гпвх — час- тота повторения входных сигналов; т — число двоичных разрядов счетчика и сигналов управления; а, — разрядные сигналы управ- ления, принимающие значения 0 или 1. 186
Таблица 15.2 Таблица истинности КЦУ, расставляющего по тактам разрядные сигналы n Q? Q" OS У5 У1" У}" 0 0 0 0 0 0 1 1 0 0 1 0 1 0 2 0 1 0 0 0 1 3 0 1 1 1 0 0 4 1 0 0 0 0 1 5 1 0 1 0 1 0 6 1 1 0 0 0 1 7 1 1 1 0 0 0 В этом случае сигналы, снимаемые с выходов разрядов счетчи- ка, умножаются на соответствующие управляющие сигналы а, и объединяются на общем выходе устройства. Но для того чтобы эти сигналы были распределены по времени, необходимо предусмот- реть специальное комбинационное цифровое устройство. Рассмот- рим пример синтеза такого устройства на основе трехразрядного двоичного суммирующего счетчика. Для этого составим соответ- ствующую таблицу истинности (табл. 15.2). Табл. 15.2 состоит из двух частей: в левой части указаны значе- ния сигналов всех трех разрядов счетчика, а в правой — сигналы, следующие с частотой повторения импульсов каждого из разря- дов, которые если их перемножить на'управляющие и счетные сигналы, будут объединены на общем выходе. Требования, предъяв- ляемые к этим сигналам, заключаются в том, чтобы они не воз- никали одновременно (не более одного в каждом такте) и были максимально равномерно распределены по тактам. Для получения логических функций искомых сигналов произ- ведем их считывание с таблицы в СДНФ с последующей мини- мизацией: yS_=Q2"-QrQo"; X” = Q^QTQSjQ^-QS = (Q^^Q^-Qi-QS = Qi-Q^ у2 = C2” • GT Qfv Qi Q" OS v Q2 OS v Q? Q{" OS = = q2"'(q? v q^-qs v q«.(qF v qo-qs = = Q2)-QS =QS- 187
Рис. 15.10. Схема управляемого делителя частоты повторения импульсов Ч ГЛ ГП ГЛ ГЛ ГЯ ГЯ ГП ГЛ I/ М п п п п I? П_______________□____________; И________________□____________________4 4 п п п п п 1,< Рис. 15.11. Временные диаграммы управляемого делителя частоты повто- рения сигналов Обобщение полученного результата на w-разрядный счетчик приводит к следующему соотношению для произвольного сиг- нала: у? = Q^,, , ' Qi"' Qn Полученные формулы позволяют синтезировать схему управ- ляемого делителя частоты повторения импульсов (рис. 15.10). На рис. 15.11 представлены временные диаграммы, поясняющие работу синтезированного делителя частоты повторения импульсов при управляющем сигнале, соответствующем пяти (а2 = 1; at = 0; о0= 1). В качестве недостатка такого рода делителей частоты повторе- ния следует отметить неравномерное размещение во времени вы- ходных импульсов. Промышленность выпускает подобные шестиразрядные дели- тели частоты повторения импульсов типа К133ИМ8 и К155ИМ8. 188
Таблица 15.3 Таблица функционирования трехразрядного вычитающего двоичного счетчика п N Q? С1" QS 0 7 1 1 1 1 6 1 1 0 2 5 1 0 1 3 4 1 0 0 4 3 0 1 1 5 2 0 1 0 6 1 0 0 1 7 0 0 0 0 Рассмотрим теперь синтез вычитающего синхронного двоичного счетчика, составив соответствующую таблицу функционирования • (табл. 15.3). Легко заметить, что такую таблицу можно получить путем инвертирования сигналов всех разрядов таблицы функцио- нирования суммирующего счетчика (см. табл. 15.1), т.е. вычитаю- щий счетчик можно получить из суммирующего, если выходные сигналы снимать с инверсных выходов его триггеров. Табл. 15.3 в отличие от табл. 15.1 составлена таким образом, что номер такта п не совпадает с записанным в счетчике числом. Верх- нюю строку в ней занимает максимальное число 7. В конце цикла (нижняя строка) счетчик обнуляется. Алгебраические диаграммы выходов всех разрядов вычитаю- щего синхронного счетчика приведены на рис. 15.12. Из этих ал- гебраических диаграмм получим следующие уравнения: Go" =qF-, Q," =Qo"-' ~Qrl; Q? =Qp -Op -Op v (Go"’1 vQ"~l)• Q"• Рис. 15.12. Алгебраические диаграммы выходов трехразрядного вычитаю- щего двоичного счетчика 189
Рис. 15.13. Схема синхронного вычитающего двоичного счетчика Теперь, чтобы перейти к схеме, необходимо выбрать тип триг- гера и воспользоваться его обратной таблицей истинности. Оста- новив свой выбор на синхронном Т-триггере, получим: То« = 1; 7]" = Qp- =Qp-Qp. Эти формулы можно обобщить на произвольный номер разряда: т? =Qp-Qp-...-Q^. Следовательно, информационный сигнал 7), подаваемый на данный разряд, формируется путем конъюнкции инвертирован- ных выходных сигналов всех более младших разрядов, образо- ванных в предыдущем такте. Для того чтобы не вводить в схему дополнительные элементы в виде конъюнкторов (или элементов И — НЕ, если сигналы снимать с неинвертированных выходов раз- рядов) и не ухудшать этим быстродействие счетчика, можно ис- пользовать универсальные/Х-триггеры типа ТВ 1 (рис. 15.13). Рис. 15.14. Схема преобразователя двоичного кода во временной интер- вал с использованием вычитающего счетчика 190
I 'Ln______________________ I 4 i i / I it n n n n n I 4 пип______________i I 4 i i_____; I Рис. 15.15. Временные диаграммы преобразователя двоичного кода во вре- менной интервал с использованием вычитающего счетчика Ввиду идентичности схем суммирующего и вычитающего счет- чиков временные диаграммы последнего и другие аналогичные пояснения здесь не приводятся. Рассмотрим пример использования вычитающего счетчика в ^устройстве преобразования двоичного кода во временной интервал (рис. 15.14, 15.15) [16]. Схема с использованием вычитающего счетчика (см. рис. 15.14) имеет много общего со схемой на рис. 15.9. Существенным отли- Iкием является то, что вместо элемента И —НЕ на выходе вычита- юшего счетчика включен дизъюнктор. Работа схемы происходит следующим образом. Отрицательный перепад напряжения пускового сигнала (1) опрокидывает /^-триггер в состояние единицы. С этого момента начинается формирование выходного сигнала (2), и тактовые импульсы (3) через конъюнктор получают возможность прохо- |дить на вход с вычитающего счетчика СТ (импульсы 4). Это про- должается до тех пор, пока число тактовых импульсов не станет равным числу, предварительно записанному в счетчике, а все раз- I ряды счетчика при этом окажутся в нулевом состоянии, что будет зарегистрировано дизъюнктором. Тогда на его выходе (5) образу- | ется отрицательный перепад напряжения, который вернет 7?5-триг- гер в исходное нулевое состояние, закончив этим формирование длительности выходного сигнала (2). Рассмотрим теперь варианты реализации синхронныхреверсив- ных счетчиков. Если счетные сигналы Тс поступают по двум ши- нам: суммирующей Тси (от count up — считать на увеличение, в прямом направлении) и вычитающей Tcd (от count down — счи- тать на уменьшение, в обратном направлении), то структура реа- лизуемого счетчика следует из объединения с помощью дизъюнк- Ции двух соотношений, выведенных для суммирующего и вычи- тающего счетчиков: Г," = ТД • е0"-’ • СГ* • - • <2"Л* v Tc"d • Qp • Qp ... • Qtf. 191
Рис. 15.16. Схема синхронного реверсивного счетчика с тактовыми сигна- лами, поступающими раздельно на суммирующий и вычитающий входы Этой формуле соответствует схема, изображенная на рис. 15.16, которая лежит в основе счетчиков типа ИЕ7, выпускаемых про- мышленностью [45]. Достоинством этой схемы является то, что в ней используются наипростейшие асинхронные Т-триггеры, не зависящие от номера разряда счетчика. К недостаткам можно от- нести некоторое увеличение задержки переключения за счет вве- дения дополнительных элементов И —ИЛИ —НЕ: Тз.сч = Т’з.тр + Т’з.р.ср, а также тот факт, что эти элементы зависят от номера разряда и усложняются с его увеличением. Рассмотрим вариант реализации счетчика, в котором задержка переключения уменьшена до минимума, определяемого тригге- рами, а элементы И —ИЛИ —НЕ используются одинаковые. При этом возрастают требования, предъявляемые к триггерам (так как с увеличением номера разряда растет требуемое число управляю- щих входов / и К и необходим вход синхронизации). Здесь также Рис. 15.17. Схема реверсивного синхронного счетчика с применением сигнала реверса R 192
Рис. 15.18. Схема каскадов синхронного реверсивного счетчика со сквоз- ным переносом наряду со счетным входом уместно наличие специального сигна- ла реверса R, который берется равным нулю в режиме суммиро- вания и равным единице — в режиме вычитания. Тогда получаем следующую формулу: = К? = F QS'1 0Г1 • - • Qi-i v R" • • Qp • - • Off- В соответствии с теоремой, доказанной в гл. 5, эту формулу можно представить произведением функций неравнозначности: Последнему выражению соответствует схема, изображенная на рис. 15.17. Преодолеть указанные недостатки счетчиков в отношении нео- динаковости разрядных триггеров и их сложности можно путем применения метода сквозного переноса. Однако за такое упроще- ние придется расплачиваться увеличением разрешающего време- ни счетчика и, следовательно, уменьшением максимальной час- тоты повторения счетных сигналов. Идея сквозного переноса основана на том, что необходимые произведения образуются не каждый раз снова на каждом разряде счетчика, а накапливаются постепенно при переходе от младших разрядов к старшим: 7} - 7^_[ • (R Q_t v R Qf_j). Схема двух разрядов такого счетчика приведена на рис. 15.18 [35]. В этой схеме сигналы переноса во время записи информации в основные триггеры разрядов проходят как бы насквозь через элементы И —ИЛИ, начиная с младшего (первого) разряда и кон- чая старшим. При таком способе управления триггерами в /я-раз- Рядном счетчике происходит задержка сигнала, равная времени (w - 1)Тзрср, что увеличивает на это же значение разрешающее 1КИН 193
Рис. 15.19. Структурная схема цифровой следящей системы с использо- ванием реверсивного счетчика время данного счетчика по сравнению со счетчиком с синхрон- ным (параллельным) переносом. Существуют и другие версии сквозного переноса в синхронных счетчиках (например, [30]). Более простым способом на том же принципе реализуется сквозной перенос в суммирующих и вычи- тающих счетчиках. Реверсивные счетчики широко используются в цифровых сле- дящих системах (например, цифровых автодальномерах [9]), где управление производится с помощью стробов, следящих за ка- ким-либо переменным параметром (например, задержкой эхо-сиг- нала, отраженного от сопровождаемой цели). Если значение па- раметра, например, Т3 (рис. 15.19) уменьшается, то наблюдае- мый сигнал попадает в первый строб (Т„р J и дискриминатор выдает импульс TD, поступающий на вычитающую шину счетчи- ка, если значение параметра увеличивается, образуется импульс Ти от второго строба (Т^), идущий на суммирующую шину. 15.3. Асинхронные двоичные счетчики В асинхронном счетчике счетные сигналы поступают не на все триггеры одновременно (параллельно), а только на те, которые не могут срабатывать от других источников, существующих в дан- ном счетчике. В качестве других источников могут выступать выхо- ды различных разрядов асинхронного счетчика, у которых необ- ходимый перепад напряжения (положительный или отрицатель- ный) совпадает с сигналом, требуемым для опрокидывания дан- ного разряда в соответствии с таблицей функционирования. Поскольку на различных разрядах счетчика необходимые пере- пады возникают реже, чем у приходящих счетных импульсов, мень- шее число этих сигналов приходится блокировать, а значит, чис- ло и сложность блокирующих элементов при этом уменьшается. Простота схемы является самым существенным преимуществом асинхронных счетчиков. Но это преимущество оборачивается и одним из важных их недостатков — уменьшением быстродействия из-за того, что между моментом прихода очередного счетного 194
импульса и моментом поступления импульса, опрокидывающего тот или иной разряд, проходит время, равное задержке сигнала в тех разрядах, откуда берутся эти импульсы. При синтезе асинхронных счетчиков к методике синтеза синх- ронных счетчиков добавляется элемент поиска оптимального ис- точника, стимулирующего опрокидывание триггеров каждого из их разрядов. В качестве примера рассмотрим синтез трехразрядного сумми- рующего двоичного счетчика, воспользовавшись его таблицей фун- кционирования (см. табл. 15.1) и алгебраическими диаграммами (см. рис. 15.1). Для удобства перейдем от алгебраических диаграмм к диаграммам, которые условно назовем векторными (рис. 15.20). В этих диаграммах инвертированные сигналы заменены стрелка- ми, направленными вверх (?), если опрокидывание триггера про- исходит из нуля в единицу, и стрелками, направленными вниз (i), — в обратном случае. Необходимые сведения при этом взяты из исходных диаграмм (см. рис. 15.1) в соответствии с координата- ми исследуемых ячеек. Допустим, будем использовать синхронные триггеры с дина- мическим управлением по отрицательному перепаду напряжения. Таких перепадов на младшем разряде четыре, на среднем — два и на старшем — один. Младший разряд, судя по диаграмме, должен опрокидываться при каждом счетном импульсе, т.е. восемь раз в цикле, поэтому ни один из разрядов счетчика в качестве источника запускающих Iимпульсов не подходит. Остается использовать для этого непос- редственно счетные импульсы (т.е. Со = Тс). Средний разряд должен опрокидываться четыре раза. Заметим, сопоставив соответствующие ячейки диаграмм, что отрицатель- Рис. 15.21. Диаграммы Вейча трсхразрядного суммирующего двоичного асинхронного счетчика 195
a a Рис. 15.22. Схема трехразрядного суммирующего последовательного счетчика ные перепады напряжения, необходимые и достаточные для это- го, возникают в младшем разряде. Отсюда можно сделать вывод, что наиболее подходящим источником импульсов, запускающих средний разряд, является выход младшего разряда (С( = Qo). Старший разряд должен опрокидываться всего два раза. Анало- гично предыдущим рассуждениям можно утверждать, что опти- мальным источником импульсов, запускающих его, является сред- ний разряд (С2= &)• Поскольку все импульсы запуска являются необходимыми и достаточными (лишних нет), нет и необходимости их блокиров- ки, что подтверждается диаграммами Вейча (рис. 15.21), постро- енными на основе векторных диаграмм (см. рис. 15.20) и обратных таблиц истинности синхронного Г-триггера. В результате считывания с этих диаграмм получаем ожидаемое тривиальное решение Тол= Т" = Т$ = 1, т.е. в качестве элементов такого счетчика целесообразно использовать асинхронные Т-триг- геры, дающие возможность реализовать наипростейшую схему, показанную на рис. 15.22. Вследствие того, что запуск каждого разряда в реализуемом счет- чике производится путем последовательного запуска предыдущих разрядов отрицательными перепадами напряжения (рис. 15.23), та- кие счетчики называются последовательными. Для них справедливы формулы То = Тс- Q/.J. Быстродействие последовательных счетчиков оценивается по следующим формулам Тзсч = mТ3тр; 7р.еч = Тр.тр; Гтахсч = 1/Тр.сч Рис 15.23. Временные диаграммы процессов, происходящих в последо- вательном двоичном суммирующем счетчике 196
Рис. 15.24. Схема асинхронного реверсивного счетчика последовательно- го действия (где т — число разрядов). Эти соотношения справедливы для того случая, когда показания о полученном числе счетных сиг- налов могут быть сняты после окончания пачки импульсов, а не во время их поступления на счетчик. Если же необходимо получать оперативную информацию в процессе счета, макси- мальную частоту счетных импульсов определяют по сумме вре- мени задержек сигнала во всех разрядах, т.е. FmaxC4 = 1/Тзсч = = 1/(/иТ3,тр). Проведя аналогичные действия по синтезу асинхронного дво- т ичного вычитающего счетчика, получим следующие соотношения: То = Tj= Qf_{, которые определяют его схему и временные диа- граммы. Объединение формул, справедливых для суммирующего и вы- читающего счетчиков, позволяет получить необходимые выраже- ния для синтеза реверсивного асинхронного счетчика: - Тс; 7] - R • Qj_\ где R — сигнал реверса. Эти соотношения соответству- ют схеме, изображенной на рис. 15.24. Быстродействие реверсивно- го счетчика меньше, чем сум- мирующего, из-за введения в него элементов И —ИЛИ: I ^З.СЧ - ^З.тр "* ~ 1) 7зд р Ср — Тр сч, ^тахсч “ 1/^р.сч’ Следует отметить, что двоич- ные счетчики интересны тем, что Могут работать и в дополнитель- ном коде. Для этого необходимо сделать так, чтобы старший их v R = R®Qi_l, Таблица 15.4 Таблица функционирования двоичного счетчика, работающего в дополнительном коде Сзн (21доп (2[)доп 3 0 1 1 2 0 1 0 1 0 0 1 0 0 0 0 -1 1 1 1 -2 1 1 0 -3 1 0 1 197
разряд стал знаковым. Поясним это на примере трехразрядного счетчика. Воспользуемся табл. 15.1, заменив в ней (Л на 0зн и по- меняв расположение строк, как показано в табл. 15.4. В связи с тем, что последняя таблица может использоваться в суммирующих, вычитающих и реверсивных счетчиках, номер такта п исходной таблицы заменен в ней на число, записанное в счет- чике в дополнительном коде. В ней также нет строки с единицей в знаковом и нулями во всех значащих разрядах, поскольку она в дополнительном коде оказывается дублирующей строку с нуле- вым значением во всех разрядах. 15.4. Асинхронные недвоичные счетчики Методика синтеза и схема недвоичных счетчиков сложнее, чем двоичных. Сложность методики обусловлена применением недво- ичного кода, поскольку при этом возникают несколько вариан- тов заполнения таблицы функционирования, каждый из которых приводит к своему, более или менее сложному варианту выпол- нения схемы. Усложнение схемы состоит в необходимости приме- нения универсальных триггеров, а иногда и использовании до- полнительных согласующих комбинационных цифровых устройств. В качестве примера рассмотрим синтез суммирующего счетчика с модулем счета Ксч= 6, работающего в коде 3-2-1. Составим таблицу функционирования (табл. 15.5). В верхней стро- ке этой таблицы приведены значения весовых множителей, соот- ветствующих коду счетчика. Пять информационных строк (0, 1, 2, Т аблица 15.5 Таблица функционирования недвоичного суммирующего счетчика с модулем счета = 6, работающего в коде 3-2-1 Код 3 2 1 п ft" ft" ft" 0 0 0 0 1 0 0 1 2 0 1 0 3 1 0 0 4 1 0 1 5 1 1 0 С" 2" 7? 7? 4, 5) заполняются однозначно в соответствии с заданным ко- дом счетчика. Строка таблицы при п = 3 мо- жет быть заполнена двояко: ОН или 100. Первый вариант запол- нения приводит к более сложной схеме с дополнительным дизъ- юнктором. Мы же рассмотрим оптимальный второй вариант (100). (В принципе вариант за- полнения таблицы может выби- раться из каких-либо своих со- ображений заказчиком, финан- сирующим разработку счетчика.) В самой нижней строке таблицы показаны оптимальные источни- ки сигналов, синхронизирующих работу триггеров соответствую- щих разрядов. 198
При данном выборе предполагалось, что используемые синх- ронные триггеры имеют динамическое управление по отрицатель- ному перепаду напряжения. Младшие два разряда, как видно из таблицы, должны в пределах всего цикла опрокидываться четыре раза, в то время как на выходах этих разрядов возникают всего два отрицательных перепада напряжения, а в старшем разряде — толь- ко один. Отсюда следует вывод, что на первые два разряда следует подавать счетные сигналы Тс. Что касается старшего разряда, то его опрокидывание происходит как раз в те моменты, когда на выходе среднего разряда возникают отрицательные перепады напряжения. При этом, что существенно, лишних перепадов нет, а следова- тельно, и нет необходимости в блокировке этого разряда, т.е. мож- но заранее утверждать, что в старшем разряде можно установить асинхронный Т-триггер, управляемый по отрицательному перепа- ду напряжения. В этом мы еще раз убедимся после проведения до- полнительного анализа и синтеза. 2"-' Q"-' Q”-' Рис. 15.25. Векторные диаграммы выходов трехразрядного суммирующе- го недвоичного счетчика Рис. 15.26. Диаграммы Вейча для уравнений входов синхронных JK-триг- геров суммирующего асинхронного счетчика с Ксч = 6, работающего в коде 3-2-1 199
Составим векторные диаграммы для выходов всех разрядов счетчика (рис. 15.25). На этих диаграммах звездочками отмечены две ячейки, соответствующие запрещенным состояниям счетчи- ка (ОН и 11 1). Серым фоном выделены ячейки, связанные с фор- мированием отрицательных перепадов напряжения на выходе среднего разряда. Теперь (если это не задано заказчиком) выбирается тип триг- гера. Можно начать с самого функционально богатого — синхрон- ного JK-триггера, управляемого по отрицательному перепаду на- пряжения. Используя обратную таблицу истинности 77-триггера (см. табл. 14.19), составим диаграммы Вейча для функций информацион- ных входов триггеров всех разрядов счетчика (рис. 15.26). При заполнении диаграммы старшего разряда учитывалось, что сигналы синхронизации подаются только в двух случаях, отме- ченных серым фоном, и поэтому в остальных ячейках проставле- ны звездочки, обозначающие факультативы. Из представленных диаграмм получаем следующие функции сигналов, подаваемых на управляющие входы триггеров: /оя =oF; J"=QS'1-, j^=k^ = k^k^ = \. Что касается управляющих сигналов J2 и К2 старшего разряда, то (как мы и предсказывали на основе анализа таблицы функци- онирования) они должны быть равны единице. Следовательно, в качестве старшего разряда можно использовать асинхронный 7-триггер, управляемый по отрицательному перепаду напряже- ния, на счетный вход которого следует подавать сигнал с выхода среднего разряда. Анализ полученного результата 70я = Q"'1 и = 1 совместно с таблицей функционирования счетчика выявляет возможность ис- пользования в младшем разряде синхронного Т-триггера с пода- чей на его счетный вход сигнала с инверсного выхода среднего разряда. В итоге получили схему, изображенную на рис. 15.27. Теперь легко убедиться, что схема достаточно простая. По сво- ей структуре она является смешанной (комбинированной), по- 2о Qi Qi Рис. 15.27. Схема асинхронного суммирующего счетчика с Ксч = 6, рабо- тающего в коде 3-2-1 200
Рис. 15.28. Временные диаграммы процессов, происходящих в асинхронном недвоичном суммирующем счетчике скольку первые два разряда работают синхронно (оба входа синх- ронизации подключены к источнику счетных импульсов), а стар- ший — последовательно (его счетный вход питается выходным напряжением среднего каскада). Временные диаграммы на рис. 15.28 позволяют более полно проанализировать работу схемы. Быстродействие этого счетчика оценивается по следующим формулам: ^з.сч = ЗТ’з.тр = Тр.сч» Fтахсч = 1/^р.сч- Синтез и анализ вычитающих и реверсивных асинхронных недво- ичных счетчиков осуществляются аналогичным образом. Только при этом следует учитывать, что в вычитающих счетчиках сигнал синх- ронизации приходится снимать с инверсных выходов разрядов. В заключение рассмотрим синтез счетчика, работающего в коде Грея (см. табл. 2.6, 2.7). Необходимость в таком счетчике может возникнуть в случае невозможности синхронного съема инфор- мации со счетчика относитель- но счетных импульсов. Если счетчик работает в натуральном двоичном коде, и импульс счи- тывания поступает во время пе- реходных процессов в нем, в ре- зультате возможна большая по- грешность считывания из-за того, что одни разряды успеют перейти в нужное состояние, а Другие — нет. Поскольку в коде Грея при переходе от одного такта к со- седнему изменение происходит р одном из разрядов, погреш- ность считывания в этом случае Не превышает единицы младше- го разряда числа. Таблица 15.6 Таблица функционирования счетчика, работающего в коде Грея п Q" QS 0 0 0 0 1 0 0 1 2 0 1 1 3 0 1 0 4 1 1 0 5 1 1 1 6 1 0 1 7 1 0 0 201
Qf' Q^ Qi Рис. 15.29. Векторные диаграммы выходов трехразрядного счетчика, ра- ботающего в коде Грея Конечно, можно подумать, что решить задачу можно с помо- щью устройства, состоящего из счетчика, работающего в нату- ральном двоичном коде, и комбинационного преобразователя этого кода в код Грея. Однако и в этом случае переходный про- цесс в счетчике может вызвать большие погрешности. Рассмотрим два варианта синтеза данного счетчика. Первый начнем обычным образом, составив таблицу функционирования (табл. 15.6). Структура кода Грея такова, что здесь в принципе невозможно применение метода синтеза асинхронных счетчиков, поскольку в каждом из тактов опрокидывание происходит только в одном из разрядов, поэтому будем синтезировать синхронный счетчик. Сформируем векторные диаграммы для всех трех разрядов (рис. 15.29). Возьмем за основу универсальные /АГ-триггеры и перейдем с помощью их обратной таблицы истинности к диаграммам Вейча, составленным для уравнений входов /и К (рис. 15. 30). Рис. 15.30. Диаграммы Вейча для уравнений входов синхронных/^-триг- геров счетчика, работающего в коде Грея 202
Рис. 15.31. Счетчик, работающий в коде Грея Из представленных диаграмм следуют функции сигналов, по- даваемых на управляющие входы триггеров: JS = Qr1 ~ Л” = О?’1 -0Г1; А" = Go’1 -бГ1; коп = Qrl ® Q^-, К" = q0"-] q^- к? =Qp- Qp. Полученным уравнениям соответствует схема счетчика, пока- занная на рис. 15.31. В этой схеме помимо синхронных /А'-тригге- ров, обеспечивающих возможность перемножения сигналов на уп- равляющих входах, используются два элемента: сумматор по мо- дулю два и элемент равнозначно- сти, которые вносят дополнитель- ную задержку при записи новой информации в основной триггер младшего разряда, увеличивая тем самым на столько же разрешаю- щее время счетчика: Тзсч = Т,™; т = т + т *р.сч 1 р.тр ' -'зд.р.ср* Рассмотрим второй вариант синтеза, в котором за счет замены сумматора по модулю два и эле- мента равнозначности асинхрон- ным Т-триггером схема счетчика достаточно сильно упрощается. Этот вариант основан на том фак- те, что в соответствии с таблицей функционирования младший раз- ряд счетчика опрокидывается на Каждый нечетный импульс синх- ронизации, а более старшие раз- ряды — на четные импульсы, но Не на каждый. Таблица 15.7 Таблица функционирования счетчика с вспомогательным триггером, работающего в коде Грея п Qi QS Свеп 0 0 0 0 0 1 0 0 1 1 2 0 1 1 0 3 0 1 0 1 4 1 1 0 0 5 1 1 1 1 6 1 0 1 0 7 1 0 0 1 С" Оп V всп Оп V всп V всп 'Т'П 2 С 203
Рис. 15.32. Векторные диаграммы выходов трехразрядного счетчика с вспо- могательным триггером, работающего в коде Грея Рис. 15.33. Диаграммы Вейча управляющих входов Г-триггеров трехраз- рядного счетчика с вспомогательным триггером, работающего в коде Грея Свеп Qo Ci Qi Рис. 15.34. Схема счетчика, работающего в коде Грея, с применением вспомогательного триггера Дополнив табл. 15.6 справа столбцом, соответствующим вспо- могательному триггеру, а внизу строкой, соответствующей выб- ранным источникам синхронизации разрядов счетчика, получим табл. 15.7. Построим соответствующие векторные диаграммы (рис. 15.32) и выделим в них серым фоном ячейки, в которых не действуют выбранные сигналы синхронизации. Анализ этих диаграмм позво- ляет остановить выбор на Г-триггерах: для младшего разряда на асинхронном, поскольку на соответствующей диаграмме отсут- ствуют стабильные состояния, а для старших разрядов — на син- хронных, поскольку в некоторых тактах требуется блокировка. В соответствии с этим выбором переходим к диаграммам Вейча, показанным на рис. 15.33. 204
Считыванием с диаграмм Вейча получим следующие простые соотношения: Гол = 1; 7]л=(20я-1; TJ Первое из этих равенств подтверждает ранее сделанное пред- положение, что младший разряд можно реализовать на асинхрон- ном, а два остальных — на синхронных Т-триггерах (рис. 15. 34). В итоге получили достаточно простую схему по числу соедине- ний и применяемым триггерам, но с несколько меньшим по срав- нению с первым вариантом синтеза быстродействием счетчика из-за того, что добавилась еще одна ступень в виде вспомогатель- ного Триггера. Тзсч = 27’зтр = Трсч, ^тахсч = 1/^р.сч* Контрольные вопросы 1. По каким признакам классифицируют счетчики? 2. Каковы основные параметры счетчиков? 3. Как счетчики различают по видам арифметических операций? 4. Что такое модуль счета? 5. Какими параметрами должны обладать двоичные счетчики? 6. Как определить максимальное значение числа, которое может быть записано счетчиком? 7. Какая связь существует между модулем счета и максимальным чис- лом, которое может сосчитать счетчик? 8. Назовите основные параметры быстродействия счетчика и раскройте определения этих понятий. 9. Каким образом в реверсивном счетчике происходит переключение с одной арифметической операции на другую? 10. Чем отличаются синхронные счетчики от асинхронных? 11. Что представляют собой счетчики сквозного действия (переноса) и каково их быстродействие по сравнению с синхронными и последова- тельными счетчиками? 12. В чем заключаются преимущества и недостатки синхронных счет- чиков? 13. В чем состоят преимущества и недостатки последовательных счет- чиков? 14. Синтезируйте четырехразрядный суммирующий синхронный дво- ичный счетчик на синхронных УК-триггерах. 15. Приведите схему преобразователя временного интервала в двоич- ный код, основанного на суммирующем счетчике, и поясните его работу. 16. Приведите схему преобразователя двоичного кода во временной интервал, использующего суммирующий счетчик и цифровой компара- тор, и поясните его работу. 17. Приведите схему преобразователя двоичного кода во временной интервал, использующего суммирующий счетчик и его инверсные раз- рядные входы, и поясните его работу. 18. Синтезируйте четырехразрядный делитель частоты повторения импульсов с управляемым коэффициентом деления. 205
19. Синтезируйте четырехразрядный вычитающий синхронный дво- ичный счетчик на основе синхронных /^-триггеров. 20. Приведите схему преобразователя двоичного кода во временной ин- тервал с использованием вычитающего счетчика и поясните его работу. 21. Синтезируйте четырехразрядный двоичный синхронный реверсив- ный счетчик на основе синхронных JK-триггеров и с тактовыми сигнала- ми, поступающими раздельно на суммирующий и вычитающий входы. 22. Синтезируйте четырехразрядный двоичный синхронный реверсив- ный счетчик на основе синхронных ./А-триггеров и со специальным сиг- налом реверса. 23. Синтезируйте четырехразрядный двоичный синхронный реверсив- ный счетчик на основе синхронных /К-триггеров и со сквозным переносом. 24. Приведите схему цифровой следящей системы с использованием реверсивного счетчика и поясните ее работу. 25. Синтезируйте четырехразрядный асинхронный двоичный вычита- ющий счетчик на основе асинхронных Т-триггеров. 26. Почему двоичные счетчики могут работать в дополнительном коде? 27. Синтезируйте асинхронный вычитающий счетчик, работающий в коде 3-2-1, с модулем счета, равным 6. 28. Из каких соображений выбирается вариант заполнения таблицы функционирования асинхронного недвоичного счетчика? 29. Синтезируйте асинхронный счетчик, работающий в коде 3-2-1, с модулем счета, равным 6, выбрав вариант заполнения третьей строки таблицы функционирования 011. Сравните полученный результат с ва- риантом, рассмотренным в подразд. 15.4. 30. Синтезируйте четырехразрядный счетчик, работающий в коде Грея. Поясните свой выбор варианта синтеза. ГЛАВА 16 РЕГИСТРЫ 16.1. Общие сведения Регистром (от позднелатинского registrum — список, перечень) называется элемент ЦВМ, который служит для запоминания ма- шинного слова (или его части) в процессе выполнения вычисли- тельных операций, а также для преобразования слов посредством сдвига их вдоль регистра на один или несколько разрядов. Собира- ют регистры обычно на триггерах или логических элементах, чис- ло которых, как правило, соответствует числу разрядов в машин- ном слове данной ЦВМ [6]. Другим, пожалуй, более полным определением понятия регис- тра является следующее: радиоэлектронное устройство, осуще- ствляющее прием, хранение, преобразование и выдачу чисел в определенном коде [10]. Или еще проще: регистр {register) — ти- повой блок памяти в вычислительном устройстве [32]. 206
По функциональным свойствам различают регистры памяти (параллельные), сдвиговые (последовательные) и комбиниро- ванные. По назначению и цели использования классификация регист- ров очень обширна. Например, адресный {address register) — регистр для хранения адреса; арифметический {arithmetic register) — регистр, предназначенный для размещения операндов и результатов арифметических операций; буферный {buffer register) — регистр, используемый для временного хранения (бу- феризации) данных с целью согласования скоростей работы уст- ройств, участвующих в обмене данными, или регистр, через ко- торый происходит обмен между оперативной памятью и внешним устройством; ит.д. [32]. Как правило, все регистры являются синхронными с динами- ческим управлением. Чаще всего в них применяются D-триггеры с управлением по положительному перепаду напряжения. 16.2. Регистры памяти Структура регистров памяти представляет собой набор триг- геров, соединенных шинами, по которым параллельно подают- Рис. 16.1. Схема трехразрядного регистра памяти {а) и его условное графическое обозначение (б) ₽ис. 16.2. Схема накапливающего сумматора на основе регистра памяти и комбинационного сумматора 207
ся сигналы синхронизации с, установки в нуль R и единицу 5 (рис. 16.1). Раздельно на каждый разряд подаются информационные сиг- налы D. Отдельно с каждого разряда снимаются выходные сигна- лы регистра Q. Такого рода регистр уже упоминался при рассмот- рении преобразователя временно'го интервала в двоичный код (см. рис. 15.5). Параметры быстродействия регистров памяти полностью со- впадают с параметрами используемых триггеров (в данном случае .D-триггеров). Рассмотрим накапливающий арифметический сумматор (counter- type adder), состоящий из комбинационного арифметического сум- матора SM и регистра памяти RG (рис. 16.2). Данное устройство действует следующим образом. Подачей сиг- нала Пуск регистр RG обнуляется. Первое слагаемое поступает на вход В комбинационного сумматора SM, в котором суммируется с нулем, переданным с выхода регистра RG. Результат суммирования (в первом такте — первое слагаемое) с выхода 5 сумматора SM поступает на информационные входы D регистра памяти RG. Через интервал времени, равный задержке сигнала в сумматоре SM и основных триггерах регистра RG, подается положительный пере- пад напряжения тактирующего импульса Такт на вход синхрони- зации с регистра RG. В результате этого через интервал времени Гз рг первое слагаемое появляется на выходе регистра и, следовательно, на входе А сумматора SM. Одновременно на вход В комбинационного сумматора SM мо- жет быть подано второе слагаемое, которое просуммируется с первым, и сумма двух этих слагаемых поступит на информацион- ные входы D регистра памяти RG. При подаче сигнала синхрони- зации Такт сумма окажется записанной в этом регистре. И так далее. Требуемая разрядность комбинационного сумматора и регист- ра памяти в этом устройстве определяется разрядностью слагае- мых тсл и максимальным числом тактов итах: /ирг = тсл + ceil (log2птлх); тсм = трТ-1, где ceil(x) — возвращает наименьшее целое, большее или равное значению х. Задержка появления суммы на выходе устройства относитель- но момента появления очередного слагаемого определяется сум- марной задержкой сигнала комбинационным сумматором и реги- стром, включающей в себя задержки записи этого сигнала в ос- новной и вспомогательный триггеры, т. е. разрешающее время ре- гистра Тр.рг: т ~ Т + Т 1 з.н.см 1 з.к.см ' 1 р.рг 208
Рис. 16.3. Схема накапливающего сумматора на основе регистра памя- ти, комбинационного сумматора и счетчика Этим же соотношением определяется и разрешающее время накапливающего сумматора Гр.н.см. Максимальная частота импуль- сов синхронизации определяется через Тр н см: ^тахн.см= 1/^p.H.cw Если предполагается большая разница между числом разря- дов слагаемых и требуемым числом разрядов регистра памяти, имеет смысл произвести некоторую модернизацию устройства. Сущность этой модернизации заключается в том, чтобы раз- рядность комбинационного сумматора и регистра памяти сде- лать минимальной, т.е. соответствующей числу разрядов слага- емых, а возникающие при сложении переносы суммировать (подсчитывать) счетчиком. Результирующая сумма в этом случае будет складываться следующим образом: младшие разряды — из показаний регистра памяти, а старшие — из показаний счетчика (рис. 16.3). При этом может произойти даже некоторая экономия эле- ментов, поскольку разряды счетчика будут одновременно вы- полнять роль разрядов комбинационного сумматора и регистра памяти. Быстродействие такого устройства зависит, с одной стороны, от типа счетчика (синхронный или последовательный) и, с дру- гой стороны, от того, как снимается информация о сумме: в про- цессе накопления или после поступления всех слагаемых. Если съем информации производится в процессе накопления слагае- мых, применение синхронного счетчика практически не отразит- ся на быстродействии устройства, поскольку дополнительная инер- ционность счетчика будет компенсирована уменьшением разряд- ности, а следовательно, и длительности задержки комбинацион- ного сумматора. 209
Рис. 16.4. Схема алгебраического накапливающего сумматора на основе регистра памяти, комбинационного сумматора и реверсивного счетчика Если же снимать информацию о сумме можно только после поступления всех слагаемых на устройство, частота повторения тактовых импульсов будет определяться исключительно малораз- рядными комбинационным сумматором и регистром памяти. Вслед- ствие этого можно использовать счетчик последовательного типа, поскольку он самый простой по схеме и обеспечивает работу уст- ройства с высокой частотой повторения сигналов синхронизации, а следовательно, дает наибольший выигрыш от применения дан- ной схемы. Рассмотрим еще один вариант накапливающего устройства, позволяющего получать не только арифметическую сумму, но и алгебраическую, т.е. производить не только сложение, но и вычи- тание (рис. 16.4). Работа такого устройства происходит в дополнительном коде, поэтому на его входе предусмотрен преобразователь прямого кода в дополнительный на основе сумматоров по модулю два. Затем пре- Таблица 16.1 Таблица истинности сигналов, управляющих счетчиком *зн CRO Ти т„ 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 образованное число поступает на комбинационный сумматор SM, где суммируется с числом, за- писанным в дополнительном коде в регистре памяти RG, и с единицей через входной сигнал переноса С7?7(если входное чис- ло отрицательное и, следова- тельно, в знаковом разряде со- держит единицу). Младшие четыре разряда об- разованной суммы поступают на 210
вход D регистра памяти, а сигнал переноса CRO вместе со знако- вым разрядом через два элемента запрета подается на реверсив- ный счетчик СТ, информация с которого идет на выход накапли- вающего сумматора. Теперь рассмотрим работу алгебраического накапливающего сумматора более подробно и обоснуем необходимость примене- ния в нем двух элементов запрета. Для этого составим таблицу истинности сигналов, подаваемых на суммирующую и вычитаю- щую шины реверсивного счетчика (табл. 16.1). Начнем с верхней строки таблицы, когда на вход алгебраи- ческого накапливающего сумматора поступает положительное число (хзн = 0), и при этом сигнала переноса на выходе комбина- ционного сумматора не образуется (С7?О = 0). Выходной сигнал переноса отсутствует, если выполняется условие, справедливое для четырехразрядного комбинационного сумматора: В< 15-Л. Естественно, что при этом нет необходимости вводить единицу в младший разряд реверсивного счетчика (Т£/= TD = 0). Вторая строка таблицы соответствует также положительному знаку вводимого числа (хзн = 0), но комбинационный сумматор при этом переполняется и на его выходе образуется сигнал пе- реноса CRO= 1. Это означает, что единица должна прибавиться к старшим разрядам суммы, формируемым накапливающим сумматором, а конкретно к младшему разряду счетчика, независимо от того, какой знак (положительный или отрицательный) к этому мо- менту имела эта сумма. Отсюда следует, что на суммирующий вход реверсивного счетчика необходимо подать единицу (Ти= 1), а на вычитающий — нуль (TD = 0). Если на вход накапливающего сумматора поступает четырех- разрядное отрицательное число (хзн = 1), то это означает, что в дополнительном коде все его разряды старше четвертого будут иметь значение единицы. Если при этом на выходе комбинацион- ного сумматора не возникнет сигнала переноса (CRO= 0, третья строка таблицы истинности), то сложение в счетчике со старши- ми разрядами числа будет эквивалентно вычитанию единицы. Сле- довательно, на вычитающую шину счетчика надо подать сигнал единицы (Тд - 1), а на суммирующую — нуль (Ти= 0). И, наконец (четвертая строка таблицы), если при подаче от- рицательного числа (хзн = 1) на выходе комбинационного сумма- тора образуется сигнал переноса (CRO= 1), это означает, что еди- ница, будучи сложена с числом, образуемым единицами старших разрядов введенцого отрицательного числа в дополнительном коде, дает в результате нуль. Значит, никаких сигналов на счетные шины счетчика подавать не следует (Ти= TD = Q). Читателю предлагается самостоятельно на конкретных приме- рах убедиться в справедливости этих рассуждений. 211
Рис. 16.5. Схема последовательного аналого-цифрового преобразователя «напряжение — код» Из табл. 16.1 следуют аналитические выражения логических функций в СДНФ сигналов, подаваемых на управляющие шины реверсивного счетчика и соответствующих элементам запрета, показанным на рис. 16.4: Ти=x3„CRO' TD = x3liCRO. Преимущество рассмотренного алгебраического накапливающего сумматора с реверсивным счетчиком по сравнению с аналогичным сумматором без реверсивного счетчика, но с комбинационным сумматором, рассчитанным на число разрядов суммы, заключает- ся в необходимости меньшего количества устройств, требуемых для перевода вводимого числа из прямого кода в дополнительный, за счет использования меньшего числа сумматоров по модулю два. Рассмотрим теперь применение регистров памяти в последова- тельном аналого-цифровом преобразователе «напряжение — код». Схема такого преобразователя (рис. 16.5) включает в себя: эле- мент И—НЕ, стробирующий тактовые импульсы; суммирующий счетчик (СТ), считающий эти импульсы; цифроаналоговый пре- образователь (D/А — от digital-analog), преобразующий показания счетчика в напряжение; дифференциальный усилитель (DA — от differential amplifier), сравнивающий преобразуемое напряжение с образцовым на выходе цифроаналогового преобразователя (ЦАП); аналоговый компаратор (АС — от analog comparator), сравниваю- щий напряжение на выходе дифференциального усилителя с по- роговым уровнем для обнаружения приблизительного равенства преобразуемого и образцового напряжений; регистр памяти (RG), фиксирующий полученный результат преобразования в виде дво- ичного кода. Последовательность операций в таком преобразователе сле- дующая (рис. 16.6). На вход подается напряжение UBK в аналого- 212
Рис. 16.6. Временные диаграммы последовательного аналого-цифрового преобразователя «напряжение — код» вой форме, подлежащее преобразованию в двоичный код. В дан- ном рассматриваемом примере UBX = 5,7 MJ. Пусковой импульс Пуск поступает на вход R обнуления счетчика СТ, нули со всех разрядов которого с помошыо цифроаналогового преобразова- теля D/А вырабатывают эталонное напряжение UD/A = Q. На выхо- де дифференциального усилителя DA устанавливается напряже- ние UM = Um- UD/А = Um. В аналоговом компараторе Л С это напря- жение сравнивается с опорным напряжением t/on = &U/2, где ДС7 — шаг квантования напряжения. Если результирующее напряжение на входе аналогового ком- паратора UBX- UDA>MJ/2, то Z= 1. В противном случае Z=0. В нашем примере С7ВХ- UDA= 5,7MJ> MJ/2, поэтому Z= 1. Этот высокий потенциал подается на вход элемента И—НЕ и разре- шает поступление первого тактового импульса на счетный вход счет- чика СТ, после чего его показания становятся соответствующими единице. Полученный код 0001 вызывает на выходе цифроаналого- вого преобразователя D/А появление напряжения UD/A = MJ. В ре- зультате сравнения этого напряжения с измеряемым получим на выходе дифференциального усилителя DA значение UDA = A,7MJ. Из условия 4,7 MJ> MJ/2 находим, что снова Z= 1. Так будет продолжаться до тех пор, пока условие получения на выходе компаратора Z- 1 не перестанет выполняться. В дан- ном примере это произойдет после шестого тактового импульса, т.е. когда на выходе счетчика образуется код ОНО, на выходе цифроаналогового преобразователя UD/A = 6\U, на выходе диф- ференциального усилителя UDA = -J),3MJ, на выходе компаратора Z=0. 213
При изменении сигнала Z с единицы на нуль образуется от- рицательный перепад напряжения, который, будучи поданным на вход синхронизации регистра памяти RG, введет показания счетчика СТ в регистр как результат преобразования напряже- ния в код. С другой (в прямом и переносном смысле) стороны, сигнал Z=0, поступив на вход элемента И —НЕ, запретит про- хождение следующих тактовых импульсов на вход счетчика СТ. На этом один цикл оцифровки значения напряжения Um закон- чится. Максимальная длительность процесса преобразования опреде- ляется разрядностью устройства т и периодом повторения такто- вых импульсов Т„: Тпр=Тп(2'и-1). Период повторения Тп должен превышать суммарную задерж- ку сигнала в элементе И —НЕ, счетчике, цифроаналоговом пре- образователе, дифференциальном усилителе и аналоговом ком- параторе. Выполнение этого условия обеспечивает приход блоки- рующего сигнала Zна элемент И — НЕ до поступления очередно- го тактового импульса и тем самым своевременно его блокирует. Если сравнить рассмотренный аналого-цифровой преобразова- тель последовательного типа с АЦП параллельного типа (см. гл. 8), то его очевидным недостатком будет слишком медленная обра- ботка сигнала, т. е. в нем требуется в (2m- 1) раз большее число периодов повторения тактовых импульсов. Однако при большом числе разрядов существенным преимуществом последовательно- го преобразователя является необходимость только одного ана- логового компаратора, вместо (2m - 1) компараторов в парал- лельном преобразователе. Таким образом, окончательный выбор типа преобразователя зависит от указанных факторов: требуемых быстродействия, разрядности, массы, габаритов и стоимости ус- тройства. При обработке аналоговых сигналов, изменяющихся со скоро- стью, соизмеримой или большей, чем скорость работы АЦП, при- ходится из аналогового сигнала делать отсчеты (выборки). Для этого некоторые значения сигнала в определенные моменты времени запоминаются на интервал, необходимый для его преобразования с помощью АЦП в двоичный код. Эту функцию выполняют уст- ройства выборки и хранения (УВХ) — аналоговые ЗУ [43] {holding sampler — устройство стробирования с хранением мгновенного значения амплитуды стробируемого сигнала). Если же аналоговый сигнал, наоборот, при обработке изменяется со временем так медленно, что выполняется условие dt7BX /с1/<Д[//Тп, то в целях ускорения процесса его оцифровки целесообразно при- менять АЦП следящего типа (рис. 16.7), поскольку уточнение ре- зультата происходит всего лишь за один такт. 214
Рис. 16.7. Схема АЦП следящего типа «биполярное напряжение — допол- нительный код» В таком АЦП вместо суммирующего счетчика применяется ре- версивный, на вычитающую шину которого TD поступают сиг- I налы с дополнительного элемента И —НЕ. На один из входов этого элемента подаются тактовые сигналы, а на другой — сиг- налы Р с выхода дополнительного аналогового компаратора. На один вход компаратора (теперь инвертирующий) в свою очередь подается сигнал с выхода дифференциального усилителя DA, а на другой — опорный сигнал со знаком минус. Если при этом входной сигнал оказывается меньше, чем напряжение на выхо- де ЦАП, срабатывает указанная цепочка и число, записанное в I реверсивном счетчике СТ, уменьшается на единицу. Таким обра- зом осуществляется слежение за размером преобразуемого на- пряжения. В описываемом устройстве аналоговые компараторы АС выпол- няют роль дискриминаторов (в данном случае напряжений), не- обходимого звена любой следящей системы. Условием получения нулевого сигнала на выходе дизъюнктора является следующее со- отношение: -ДЦ/2< t/BX- UD/A<&U/2, или Ud/a-\U/2<U^<Ud/a + \U/2. Указанные пределы служат границами двух стробов следящей системы. Когда в результате коррекции состояния реверсивного счетчи- ка СТ, на выходе дизъюнктора, объединяющего выходные сигна- лы аналоговых компараторов АС, появляется нуль, т.е. возникает 215
отрицательный перепад напряжения на входе синхронизации с регистра памяти RG, показания счетчика записываются в него и становятся доступными получателю. В приведенном АЦП выполняются последовательно два режи- ма работы: режим поиска (аналогичный режиму работы последо- вательного АЦП) и режим слежения. Каждому из этих режимов свойственны свои длительности процессов преобразования, от- меченные ранее. В АЦП следящего типа по сравнению с последовательным АЦП в цепи между выходом старшего разряда счетчика СТ и входом старшего разряда ЦАП добавлен еще один элемент — инвертор. Кроме того, в самом ЦАП предусмотрено дополнительное сме- щение для преобразования цифрового дополнительного кода в напряжения двух полярностей. При этом старший разряд приоб- ретает смысл знакового. Работа счетчиков в дополнительном коде уже рассматривалась в гл. 15. В развитие этого материала можно добавить еще возможность работы ЦАП в биполярном режиме [16]. Проследим за работой синтезированного аналого-цифрового преобразователя, используя его таблицу функционирования (табл. 16.2). Зададимся начальным напряжением, подлежащим оцифровке, Um/\U = -5,2. В нулевом такте благодаря воздей- ствию пускового сигнала состояние счетчика СТ оказывается нулевым (0з= (?2= 21 = С?о = О)> при этом устанавливаются сигна- лы UD/А, UDA, Z, Р и с. При отсутствии тактовых импульсов полагаем Ти= TD=0. Состояние регистра памяти RG определяет- ся результатом цикла преобразования предыдущего отсчета на- Таблица 16.2 Таблица функционирования следящего АЦП, работающего с биполярным сигналом в дополнительном коде п ujmj Ти TD 03 02 0! а Vd/a/MJ Z р с Узн У1 У1 Уо 0 -5,2 0 0 0 0 0 0 0 -5,2 0 1 1 * * * * ] -5,2 0 1 1 1 1 1 -1 -4,2 0 1 1 * * * * 2 -5,2 0 1 1 1 1 0 -2 -3,2 0 1 1 * * * * 3 -5,2 0 1 1 1 0 1 -3 -2,2 0 1 1 * * * * 4 -5,2 0 1 1 1 0 0 -4 -1,2 0 1 1 * * * * 5 -5,2 0 1 1 0 1 1 -5 -0,2 0 0 г 1 0 1 1 0 -4,3 0 0 1 0 1 1 -5 + 0,7 1 0 1 1 0 1 1 1 -4,3 1 0 1 1 0 0 -4 -0,3 0 0 1 1 0 0 216
пряжения Um. В силу неопределенности обозначим это состояние звездочкой (*). С подачей первого тактового импульса переходим на следую- щую строку (и = 1). Этот импульс благодаря сигналу Р= 1 проходит через нижний элемент И — НЕ на вычитающую шину (TD = 1). При этом все разряды реверсивного счетчика переходят в единичное состояние ((?з= Q2 = Q\ = Qo= 1), что соответствует в дополнитель- ном коде -1, и устанавливаются новые сигналы UD/A, UDA. Сигна- лы Z, Р и с остаются прежними. Аналогичным образом происходит работа устройства при по- даче еще трех тактовых импульсов. После пятого импульса (и = 5) сигналы Z, Р и с принимают нулевые значения, что свидетель- ствует об окончании процесса преобразования. При переходе зна- чения с из единичного состояния в нулевое формируется отрица- тельный перепад напряжения, вследствие чего производится за- пись результирующего показания счетчика СТ в регистр памяти RG. На этом этап поиска следящего АЦП заканчивается. Число затраченных на это преобразование тактов оказалось равным (как и должно было быть) округленному значению относительного модуля входного напряжения Цвх (в данном примере, пяти). Дальше начинается этап слежения за изменениями входного напряжения. После нулевого такта, обозначающего введение но- вого входного напряжения, следует первый и единственный такт, корректирующий предыдущее показание преобразователя. 16.3. Регистры сдвига Регистром сдвига (shift register — сдвиговый регистр) называется регистр, в котором возможен поразрядный сдвиг его содержимого. По направлению сдвига различают регистры, сдвигающие в сторону старшего разряда, в сторону младшего разряда и ревер- сивные. Регистры сдвига наиболее часто реализуются на основе синх- ронных £)-триггеров. Синтезируем регистр сдвига в сторону старших разрядов. Это означает, что /-й разряд в и-м такте должен принимать состоя- ние соседнего более младшего (z- 1)-го разряда, которое он имел в предыдущем (и - 1)-м такте, т.е. должно выполняться соотно- шение Q? = Qtf. Учитывая данные обратной таблицы истинности Ц-триггера (см. табл. 14.12 или табл. 14.22), из которой следует, что Dn= Qn, получим выражение 217
Рис. 16.8. Регистр сдвига в сторону старших разрядов: а — схема; б — условное графическое обозначение; в — временные диаграммы откуда легко получить схему и временные диаграммы сдвигового регистра (рис. 16.8). Воспользовавшись обратными таблицами истинности других триггеров (например, RS или JK), приведенными в гл. 14, легко синтезировать регистры сдвига на этих элементах в соответствии с формулами 5," = J? = Q^‘, = К? = Qtf. Таблица 16.3 Таблица функционирования генератора кода «1 из 3» на основе регистра сдвига <2г' ОГ1 Со”1 А" DS 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 * (0) 1 1 1 0 * (1) 0 1 0 1 * (1) 0 0 1 1 * (0) 0 1 1 1 * (1) 0 218
Регистры сдвига применяются в вычислительной технике, пре- образователях кодов и пр. Рассмотрим несколько примеров при- менения регистров сдвига в качестве основы генераторов кодовых последовательностей. Генератор кода «1 из т» характеризуется тем, что в любом так- те за период времени, состоящем из т тактов, или во всей сово- купности т разрядов присутствует только одна единица, а ос- тальные все нули. Такой генератор основан на m-разрядном реги- стре сдвига и может рассматриваться как счетчик с модулем счета Кт=т, работающий в коде т-(т-1)-... -3-2-1. Рассмотрим синтез такого трехразрядного генератора (т = 3). Начнем с составления таблицы функционирования (табл. 16.3). Первые три строки табл. 16.3 соответствуют штатной работе генератора. В левых трех столбцах отображены состояния триггеров регистра сдвига. Два столбца справа показывают, какие сигналы следует подавать в каждом такте на вход младшего разряда регис- тра с тем, чтобы в каждом такте только один из разрядов нахо- l дился в состоянии единицы. Эти сигналы легко подбираются ис- | ходя из правила записи информации в D-триггеры: Dn = Qn. Все следующие строки таблицы функционирования соответ- I ствуют запрещенным комбинациям состояний разрядов регист- ра, поэтому в первом столбце для сигнала D0"+l в этих строках про- ставлены факультативы (*). Запрещенными комбинации являются потому, что в одном случае (первая выделенная серым фоном строка) в комбинации нет ни одной единицы, а в других случаях • указано число избыточных единиц (в трех строках — одна, а в В самой нижней строке, выделенной тоже серым фоном, — две еди- ' ницы). Перенесем данные столбца Do"+I с целью минимизации логичес- кой функции на диаграмму Вейча, показанную на рис. 16.9, а. Объе- динив в диаграмме единственную единицу с тремя подходящими 1 факультативами, получим тривиальное соотношение Do" = Q^'" и, соответственно, простейшую схему (рис. 16.10, а). Однако все не так просто, как хотелось бы. Дело в том, что в целях упрощения логической функции факультативы в некото- рых тактах были заменены на определенные состояния (в соот- ветствующем столбце табл. 16.3 показаны в скобках). Оказывает- ся, что если генератор по каким-либо причинам попадает в зап- рещенное состояние, автоматически он из него не выйдет. Так, попав в состояние всех трех нулей, генератор по цепи обратной связи снова будет в младший разряд регистра записывать нули. Из состояния всех трех единиц генератор тоже самостоятельно не выберется, так как в младший разряд по цепи обратной связи будут все время записываться единицы. И наконец, в случае, когда в регистре присутствуют две единицы, в генераторе будет Циркулировать «один нуль из трех» — тоже код, но не предус- 219
Рис. 16.9. Диаграммы Вейча генератора кода «1 из 3» на основе регистра сдвига для случаев отсутствия (а) и наличия (б) возможности автомати- ческого устранения ошибочной работы Рис. 16.10. Схемы генератора кода «1 из 3» без автоматического исправ- ления ошибки (а) и с автоматическим устранением ошибки (б) мотренный программой. Недаром говорят, что простота хуже воровства. Выходом из создавшейся ситуации является обеспечение логи- ческого определения сигналов, которые необходимо подавать на вход регистра, позволяющего генератору автоматически выходить из нештатного режима. С этой целью в таблице функционирова- ния (см. табл. 16.3) добавлен еще один столбец, выделенный се- рым фоном, в который внесены необходимые данные, т.е. там, где нет ни одной единицы, ее подают на вход, а там, где единицы лишние, на вход подают нули, как бы для вытеснения этих лиш- них единиц из регистра. Полученные данные перенесены на диаграмму Вейча, пока- занную на рис. 16.9, б. Минимизация дает следующий результат: DS = = QS~' vQr1- Следует отметить, что в установившемся рабочем режиме вы- полняется соотношение 0о«-‘V0-1 =02"-1. Это обстоятельство позволяет в схеме генератора обойтись все- го двумя триггерами, а значение старшего разряда в этом случае будет имитировать элемент ИЛИ —НЕ, который согласно выве- денному соотношению необходимо установить в цепи обратной связи для автоматического устранения ошибочной работы гене- ратора (см. рис. 16.10, б). Таким образом выяснилось, что кажуще- 220
a б Рис. 16.11. Кодовые диаграммы кода Грея (а) и кода Джонсона (б) еся поначалу усложнение схемы, привело к упрощению: замене триггера элементом ИЛИ — НЕ. Но вот что касается быстродействия, то оно пострадает, так как сигнал на выходе элемента ИЛИ—НЕ задерживается относи- тельно сигналов на выходах триггеров вследствие инерционности этого элемента. На время этой задержки увеличивается и разреша- ющее время генератора кода «1 из 3» по сравнению с разрешаю- щим временем триггеров, используемых в регистре. Аналогичные результаты получаются и при синтезе генерато- ров кода «1 из т» при большем числе разрядов, которые исполь- зуются для последовательной обработки различных информаци- онных каналов и в качестве генераторов информационных кодов, позволяющих обнаруживать одиночные ошибки. Рассмотрим теперь синтез генератора кода Джонсона. Его при- мечательностью является эволюционность, т.е. свойство, благодаря которому (подобно тому, как это наблюдается в коде Грея, см. табл. 2.6 и 15.6) при переходе от одного такта к другому изменение происходит только в одном из разрядов. Сказанное иллюстрируется с помощью кодовых диаграмм, приведенных на Таблица 16.4 Таблица функционирования генератора кода Джонсона на основе регистра сдвига п Q” Q? QS or' А”’1 0 0 0 0 1 i ’ 1 0 0 1 1 Q 2 0 1 1 1 i 3 1 1 1 0 Г о ; 4 1 1 0 0 0 5 I 0 0 0 0 * 0 I 0 * (D 0(0,1) * 1 : 0 " <1 * (0) 1(0,1) 221
рис. 16.11, из которых видно, что соседние по тактам кодовые слова расположены «территориально» также по соседству [28]. Первые шесть строк таблицы функционирования (табл. 16.4) демонстрируют рабочий цикл этого трехразрядного кода. В общем случае модуль счета Кт = 2т, где т — число разрядов. Здесь так же, как и в предыдущем случае, есть запрещенные состояния, выделенные серым фоном и звездочками. Перенеся данные из таблицы функционирования на диаграмму Вейча (рис. 16.12, а) и выполнив минимизацию функции по нулям, получим формулу Do" = Q"~l и соответствующую ей простейшую схему (рис. 16.13, а). Кстати, учитывая инверсию сигнала в цепи обратной связи и удвоенное значение модуля счета по отношению к числу разрядов регистра, находим интересную аналогию с кольцом Мёбиуса, которое получается путем склеивания начала ленты с переверну- тым (инвертированным) ее концом, а путь вдоль этого кольца до возвращения в начальную точку равняется удвоенной длине ис- пользованной ленты. Анализ работы синтезированного генератора показывает, что в случае попадания в запрещенное состояние он сам не сможет из него выйти, поэтому следует в запрещенных состояниях предус- мотреть подачу на вход Do сигналов, обеспечивающих вход уст- ройства в рабочий цикл. Рис. 16.12. Диаграммы Вейча генератора кода Джонсона на основе регистра сдвига для случаев отсутствия (а) и наличия (б) возможности автомати- ческого устранения ошибочной работы Рис. 16.13. Схемы генератора кода Джонсона без устранения ошибочной работы (а) и с автоматическим выходом из запрещенных состояний (б) 222
Здесь есть два пути: быстрое автоматическое исправление оши- бочной работы, но с большими затратами, и более медленное исправление (за большее число тактов), но с использованием более простой схемы. Данные последнего (выделенного серым фоном) столбца табл. 16.4 определяют три варианта исправления ошибки один быстрый и два медленных (в скобках). Из диаграммы Вейча, соответствующей быстрому варианту исправления ошибки (рис. 16.12, б), следует логическое выраже- ние для функции элемента обратной связи: До" = еГ'б"’1 v 0р0"~[ v QpQ"'1, в соответствии с которым получена схема генератора на основе регистра сдвига и элемента И —ИЛИ —НЕ (рис. 16.13, б). Вхожде- ние устройства в штатный цикл происходит за один такт. Диаграммам Вейча, составленным в соответствии с упрощен- ными вариантами исправления ошибок (здесь не приводятся), со- ответствуют следующие соотношения: 1) До” = 0Г1 v QpQr1 или До" = CpoF v QT1 ёр; 2) щ =Qp v QS~'Qp или DS = ОГ'Ор у QpQ?-1 Из приведенных соотношений видно, что и в этих случаях в качестве звена обратной связи требуется использование элементов И —ИЛИ —НЕ или И —ИЛИ, поэтому в отношении быстродей- ствия все три варианта одинаковые. Время задержки сигнала опре- деляется регистром сдвига, а разрешающее время увеличивается на величину Гзд.р.ср элемента И —ИЛИ —НЕ или И —ИЛИ. В послед- них двух вариантах вхождение в рабочий цикл происходит за один или два такта в зависимости от того, в какое запрещенное состоя- ние попал генератор. Рассмотрим теперь синтез генератора линейной кодовой после- довательности максимальной длительности (М-кода, Л/-последо- вательности). Линейной последовательность называется потому, что отве- чает принципу суперпозиции: при сложении по модулю два двух сигналов, смещенных относительно друг друга на произвольное число тактов, в результате получается та же последовательность, сдвинутая также на несколько тактов. В радиотехнике такие пос- ледовательности позволяют получать автокорреляционные фун- кции сигналов с замечательными свойствами как в отношении сигнал/шум, так и в разрешающей способности по времени. При- чем, поскольку эти свойства улучшаются при увеличении периода последовательности, наибольший интерес представляют последо- вательности максимальной длительности, у которых Ксч = 2т - 1, где т — число разрядов регистра сдвигов. 223
Рис. 16.14. Диаграммы Вейча генератора М-кода для случаев отсутствия (а) и наличия (б) возможности автоматического устранения ошибочной работы Т аблица 16.5 Таблица функционирования генератора Af-кода а б Рис. 16.15. Схемы генератора Af-кода без устранения ошибочной работы (а) и с автоматическим выходом из запрещенных состояний (б) Формула, по которой синтезируется генератор, представляет собой полином (отсюда и еще одно название генератора — поли- номиальный счетчик) [23]: т-1 DS = 1=0 224
где а,— весовые коэффициенты, специальным образом подбира- емые и равные 0 или 1 (причем, всегда ат.\ = I). В качестве примера рассмотрим трехразрядный генератор (при G[ = 0; a0 = fl2= 1)j код которого, кстати говоря, полностью соот- ветствует семизначному коду Баркера (рис. 16.14). Из диаграммы Вейча на рис. 16.14, а, заполненной в соответ- ствии с табл. 16.5, следует ожидаемая на основании исходной фор- мулы М-кода зависимость А” = Go’1gF V oFer1 = QS ' © Q"-1> которая позволяет составить схему генератора М-кода (рис. 16.15, а). Но эта схема не обеспечивает возможность автоматического ис- правления ошибочной работы (выхода из запрещенного состоя- ния), поэтому таблица функционирования дополнена еще одним столбцом, выделенным серым фоном, где в последней строке (зап- рещенном состоянии) проставлен сигнал логической единицы. Из диаграммы Вейча на рис. 16. 14, б, справедливой для послед- него варианта, следует соотношение DS =QS-lQr^QFQr'QF^ которому соответствует схема, представленная на рис. 16.15, б. Быстродействие такого генератора определяется теми же (в силу одинаковой структуры) формулами, что и для генератора кода Джонсона. В заключение синтезируем реверсивный регистр сдвига, объеди- няющий в себе функции регистров сдвига в стороны старших и младших разрядов. Функция регистра сдвига в сторону младших разрядов анало- гична функции, рассмотренной для регистра сдвига в сторону стар- ших разрядов. Это значит, что z-й разряд в л-м такте должен при- нимать состояние соседнего более старшего (/ + 1)-го разряда, ко- торое тот имел в предыдущем (и - 1)-м такте, т.е. должно выпол- няться соотношение Из обратной таблицы истинности D-триггера (см. табл. 14.12 или табл. 14.22) следует, что Dn = Qn, тогда A"=Q^. Объединяя по ИЛИ функции регистров сдвига в сторону стар- шего и младшего разрядов с помощью сигнала реверса V, прихо- дим к искомому соотношению Схемная реализация соответствующих межкаскадных соединений триггеров с помощью элементов И—ИЛИ показана на рис. 16.16. о Нарышки) 225
Рис. 16.16. Фрагмент схемы реверсивного регистра сдвига Применение реверсивных регистров сдвига {bidirectional shift register) достаточно обширно. В качестве одного из примеров приведем модель согласованного нерекурсивного (трансверсаль- ного) цифрового фильтра, реализованного на основе генера- тора сигнала сложной формы и фильтра зеркального отклика (рис. 16.17). На входе устройства включен набор реверсивных регистров сдвига, управляемых сигналами Пуск, Такт, Режим и Прием. Вы- ходные сигналы с регистров, проходя через соответствующие эле- менты, осуществляющие перемножение на весовые коэффициен- ты, поступают в сумматор. На выходе сумматора устанавливается ЦАП, преобразующий цифровой код сигнала в аналоговое изо- бражение. Работа устройства происходит следующим образом. Сначала формируется сигнал сложной формы. Для этого на управляющий вход «Режим» подается высокий потенциал (логическая едини- ца), вследствие чего реверсивные регистры переключаются в ре- жим сдвига в сторону старших разрядов. Сигнал пуска подается в виде импульса высокого потенциала. Поступающие на вход «Такт» импульсы синхронизации записывают этот импульс в младший разряд регистров сдвига и потактно продвигают его в направле- нии старших разрядов. По мере продвижения логической единицы вдоль регистров сдвига сигналы с разрядных выходов подвергаются весовой об- Пуск — Такт — Режим — Прием — Набор реверсивных регистров Набор перемножи- телей Алгебраиче- ский сумматор Цифро- аналоговый преобразо- ватель — Выход Рис. 16.17. Структурная схема устройства формирования (синтеза) и со- гласованного приема сигналов сложной формы с применением ревер- сивных регистров сдвига 226
работке в наборе перемножителей, а затем проходят через сум- матор на цифроаналоговый преобразователь в виде требуемого сигнала сложной формы. Этот сигнал дальше может быть под- вергнут различным преобразованиям в виде переноса на несу- щую частоту, излучения, помех, задержки, детектирования, аналого-цифрового преобразования, записи в запоминающее устройство и т.п. Одним из заключительных преобразований может служить со- гласованная фильтрация, осуществляемая с помощью представ- ленного устройства. Теперь на входе «Режим» реверсивных регис- тров необходимо организовать сигнал низкого уровня с тем, что- бы сдвиг происходил в сторону младших разрядов. В цифровом виде сигнал сложной формы поступает на вход «Прием», под- ключенный к старшему разряду регистров сдвига, благодаря чему совокупность наборов регистров, перемножителей и алгебраичес- кого сумматора превращается в согласованный со сложным сиг- налом цифровой фильтр зеркального отклика. В качестве примера подобного устройства рассмотрим цифро- вой синтезатор семиразрядного кода Баркера и согласованный с ним фильтр. Такой код Баркера можно определить двухразряд- ным кодом, отображающим его знак и амплитуду: В3„ = 0001101; 5амп= ШИН- Следовательно, в устройстве должно быть два семиразрядных реверсивных регистра сдвига. Для формирования (синтеза) сигна- ла необходимо в качестве набора перемножителей использовать три инвертора, расположенных в тех разрядах, где требуется от- рицательный знак у кода Баркера. Вместо инверторов можно в целях упрощения схемы сигналы этих разрядов снимать с инвер- сных выходов соответствующих триггеров реверсивных регистров. Все значащие (амплитудные) разряды и все остальные знаковые разряды с выходов реверсивных регистров подаются напрямую на соответствующие входы алгебраического сумматора, схема кото- рого уже известна (см. рис. 10.13). 16.4. Комбинированные регистры Комбинированными называются регистры, которые в зависимо- сти от управляющего сигнала могут работать как в режиме па- мяти (параллельном), так и в режиме сдвига (последовательном). Регистр типа К155ИР1 (рис. 16.18) [42] состоит из инверторов, элементов И —ИЛИ, И —ИЛИ —НЕ и Д-триггеров. Рассмотрим работу регистра последовательно в двух режимах. Для обеспечения режима параллельного ввода информации на Вход И2 необходимо подать высокий потенциал — логическую еди- ницу. Единица, воздействуя на вход элемента И—ИЛИ—НЕ (ДЛИ), 227
Рис. 16.18. Схема комбинированного регистра типа К.155ИР1 откроет проход сигналу синхронизации этого режима с2, который поступит на входы синхронизации всех .D-триггеров. На управля- ющие входы D этих триггеров будут поданы параллельным кодом информационные сигналы с входов Do... D- регистра, прошедшие через элементы И —ИЛИ под воздействием дважды проинверти- рованного с помощью элементов DD5 и DD6 сигнала И2. Сигнал синхронизации с2 приведет все триггеры в состояния, соответ- ствующие разрядам приложенного кода. Индикация этих состоя- ний производится по выводам регистра Qo... Q3. Режим сдвига в регистре реализуется при подаче на вход V: нулевого потенциала. При этом связь между параллельным входом регистра и триггерами обрывается; также обрывается связь междУ входом сигнала синхронизации регистра с2 и входами синхронй' 228
зации триггеров. Зато проинвертированный с помощью элемента DD6 сигнал V-, открывает путь для прохождения сигнала записи информации = Д) на триггер DD1, с него на триггер DD8 и т.д. Теперь сигнал синхронизации с входа с1; пропущенный через эле- мент DD11, зафиксирует в триггерах информацию, сдвинутую на один разряд в сторону старших разрядов. Рассмотрим одно из возможных применений комбинирован- ных регистров, связанных с кодированием информации при ма- лой вероятности наличия одного из двоичных символов (нулей или единиц) [27]. Здесь предусмотрен анализатор числа маловероятных (р« I) символов к, допустим единиц. Нас интересуют четыре варианта в зависимости от числа единиц в отрезке длиной т исходной бинарной последовательности: к=0, 1, 2иЬ2. Эти варианты можно закодировать в префиксе кода двумя двоичными разря- дами (d=2): 00; 01; 10; 11. Рассмотрим подробнее все эти вари- анты. 1. Если к=0, возможно только одно сочетание, при этом эн- тропия равна нулю и нет смысла формировать многоразрядный корневой код, достаточно знать код числа к (00), выраженный префиксом. 2. При к = 1 информация, помимо кода числа к (01), должна отображать положение единственной единицы на отрезке после- довательности, что определяется за один такт приоритетным шиф- ратором. На эту информацию потребуется ceil [log2(т + 1)] двоич- ных символов в соответствии с тем, что число перестановок на таком отрезке последовательности равно т. 3. При к= 2, помимо кода числа единиц к (10), следует передать информацию о номере одной из перестановок (сочетаний), число которых равно С^= т!/[2! (т - 2)!] = т(т- 1)/2. Для этого потребу- ется g= ceil{log2[т(т - 1)]} - 1 двоичных символов. Более просто, но с удлинением корневого кода на один сим- вол, информацию об отрезке исходной последовательности с двумя единицами можно передать сообщением о местах расположения (номерах) этих единиц на отрезке. Длина такого кода g = 2ceil[log2(m + 1)]. 4. При к> 2 большого выигрыша от применения кодирования не ожидается, поэтому предлагается передавать отрезок исходной Кодовой последовательности без изменений, что потребует, по- мимо префикса кода числа к, условно обозначаемого числом три (11), дополнительно т двоичных символов. Работа кодирующего устройства, построенного по этому прин- ципу (рис. 16.19), заключается в следующем. Сначала подается сиг- нал Пуск, который обнуляет счетчики 7, 3. Символы входного Кода последовательно поступают на двухразрядный счетчик 7, 229
Рис. 16.19. Структурная схема устройства последовательного типа, коди- рующего отрезок двоичной последовательности, в предположении ма- лой вероятности единиц: 1, 3, 9 — счетчики; 2, 4, 5, 6, 12 — регистры; 7 — мультиплексор; 8 — шифратор; 10, И — конъюнкторы считающий количество единиц, и регистр сдвига 4, записываю- щий входной код. С приходом третьей единицы счетчик 1 устанав- ливается в состояние 11, которое дальше не изменяется незави- симо от содержания входной последовательности сигналов. С выхода счетчика 1 двоичный двухразрядный код подается на регистр 2 в качестве префиксной части выходной информации и на мультиплексор 7 в качестве адреса. Когда во входном коде об- наружена первая единица, информация о ее месте во входном коде снимается со счетчика тактов 3 и записывается сигналом первого разряда счетчика единиц 7 в регистре памяти 5. С приходом второй единицы информация о ней снимается с того же счетчика 3 и записывается сигналом старшего разряда счетчика 1 в регистре памяти 6. В зависимости от значения адреса мультиплексор передает на свой выход информацию: при 00 — с корпуса, при 01 — с регистра памяти 5, при 10 — с регистров памяти 5 и 6, при 11 — с регистра 4. При окончании входной последовательности, что фиксирует- ся конъюнктором И с появлением во всех разрядах счетчика так- тов 3 единиц, сигналы с выходов счетчика единиц 1 и мульти- плексора 7 записываются в выходные универсальные регистры 2 и 12 параллельным кодом и становятся доступными для дальней- шего использования. Затем подается новый пусковой импульс, который помимо пре- жних функций осуществляет запись в счетчик 9 числа тактов, необ- ходимых для передачи сжатого сигнала. Это число вырабатывается шифратором 8 в зависимости от числа принятых во входном коде единиц. Помимо двух тактов, необходимых для передачи числа еди- 230
ниц к, хранящихся в регистре 2, требуется: нуль тактов — при отсут- ствии единиц; g тактов — при наличии единственной единицы или при двух единицах; т тактов — при трех или более единицах. Счетчик 9 управляет конъюнктором 10, на который подаются тактовые импульсы. На выходе этого конъюнктора получается необходимое число импульсов, синхронизирующих работу реги- стров 2 и 12, которые теперь образуют единый регистр сдвига. Информация в линию связи снимается с младшего разряда ре- гистра 2 в последовательном коде. 16.5. Регистры последовательных приближений Познакомимся еще с одним (специальным) видом регистров, применяющихся в аналого-цифровых преобразователях и делите- лях двоичных чисел — регистрами последовательных приближений {consecutive approximation registers, step-by-step approach registers'). T аблица 16.6 Таблица истинности чстырехразрядного регистра последовательных приближений к Оз-1 ог1 Со"’1 Q? Q? Q1 Q" 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 V 1 3 0 0 1 1 0 0 1 1 4 0 1 0 0 0 V 1 0 5 0 1 0 1 0 1 0 1 6 0 1 1 0 0 1 V 1 7 0 1 1 1 0 1 1 1 8 1 0 0 0 V 1 0 0 9 1 0 0 1 1 0 0 1 10 1 0 1 0 1 0 V 1 11 1 0 1 1 1 0 1 1 12 1 1 0 0 1 V 1 0 13 1 . 1 0 1 1 1 0 1 14 1 1 1 0 1 1 V 1 15 1 1 1 1 1 1 1 1 231
Регистр последовательных приближений работает следующим образом. По сигналу Пуск или по приходу первого тактового им- пульса старший разряд регистра устанавливается в единичное со- стояние, а все остальные разряды — в нулевое. К приходу следу- ющего тактового сигнала на управляющий вход V подается кор- ректирующий сигнал, выработанный соответствующим устрой- ством. Если этот корректирующий сигнал равен 1, то подтверж- дается правильность введения единицы в старший разряд, и эта единица сохраняется; если он равен 0, то единица в старшем разряде заменяется на нуль. Кроме того, с приходом тактового импульса в регистр записывается единица в следующий за стар- шим разряд. Снова делается проверка, и снова подается на вход V корректи- рующий сигнал, благодаря которому теперь уточняется состояние разряда, в который в предыдущем такте была введена единица. И так продолжается в течение всех т тактов, т. е. пока последняя единица не будет записана в самый младший разряд регистра. Поскольку описанный процесс является ветвящимся, его луч- ше всего изобразить в виде таблицы истинности (табл. 16.6). Первая строка таблицы (£=0) характеризует начальное состо- яние регистра (после подачи сигнала R, обнуляющего счетчик) и переход старшего разряда счетчика в состояние единицы в ре- зультате воздействия первого тактового импульса Т. Строки таб- лицы с нечетными номерами 1, 3, 5, 7, 9, 11, 13 и 15 справедли- вы для регистра после воздействия на него четырех тактовых им- пульсов, когда коррекция состояния младшего разряда уже не требуется. С помощью такой таблицы истинности можно синтезировать четырехразрядный регистр последовательных приближений на основе синхронных JK-триггеров. Для этого необходимо провести минимизацию логических функций сигналов, управляющих триг- герами, например с помощью векторных и алгебраических диаг- рамм (рис. 16.20). На основе проведенной минимизации получим следующие соотношения: /0« = Q”-*; *о = 0; /,я = = ОГН = Qp QpQ3n-' ;К^ =QS~lQrl Й = QpQpQp-, Щ = е-1 е,-1 V. Один из вариантов схемы регистра последовательных прибли- жений, основанный на методе сквозной синхронизации разря- дов, приведен на рис. 16.21. 232
0°\ Q <T' Jn G o""’ ч Q o"-' ОГ' 1 1 4 4 Of ♦ ♦ - 1 1 of 0 0 * * 1 1 1 4 QV ♦ * i 1 Оз"'1 .0 0 * * Оз"'1 1 1 0 0 * ♦ 0 0 0 0, * * • 1 1 0 0 * * 0 0 0 0 * ♦ Q Л-1 Q Л—1 0 Л-1 Q S~' J\ Q o'1 к\ G o"’1 or1 1 1 V V Qf * * ♦ * of 0 0 p T 1 1 V V Q?-' * * ♦ * er1 0 0 V V Оз"’1 0 0 ♦ 0 0 0 1 0 * * * * 0 0 1 0 0 0 1 0 * * * Q Л-1 Q Л-1 0 Л-1 Q o'1 G S'1 0 f Of 0 1 1 0 Q,"-' 0 * * 0 Qf * 0 0 ♦ 0 1 1 0 Qr' 0 * * 0 Оз"-1 * 0 0 * Qf1 0 1 V 4 0 * .1 * 0 V * 0 1 V 0 0 * * 0 * 0 V * Q Л—1 Q Л-1 0 Л—1 Q\ Q Q f к\ Q if Qr' 0 0 0 0 Qf 0 0 0 0 ОГ1 * * * * 1 i 1 1 Q?-' * * * * Оз"’1 0 0 0 0 Of 1 i 1 V ♦ * * ♦ 0 0 0 p 0 0 0 4 0 0 0 1 * * * * Q Л-1 Q Л-Т 0 Л-1 Рис. 16.20. Минимизация функций сигналов, управляющих /^-тригге- рами четырехразрядного регистра последовательных приближений Рис. 16.21. Схема регистра последовательных приближений со сквозной синхронизацией 233
Структура схемы в верхней ее части аналогична схеме регистра сдвига в сторону младших разрядов, поскольку здесь сигнал с выхода каждого разряда передается на вход соседнего более млад- шего разряда. Это делается для того, чтобы единица последова- тельно переходила (распространялась) от самого старшего к са- мому младшему разряду регистра. Нижняя часть схемы похожа на схему вычитающего счетчика сквозного действия, так как тактовые импульсы здесь проходят сквозь конъюнкторы, управляемые инверсными выходами разряд- ных триггеров. Это позволяет последовательно, начиная со стар- шего разряда, производить необходимую коррекцию (последова- тельное приближение) числа, записанного в регистре. Устройство работает следующим образом. Подачей на вход R нулевого потенциала все разряды регистра приводятся в нулевое состояние. Первый тактовый импульс проходит насквозь все три конъ- юнктора (поскольку на вторые входы с инверсных выходов триг- геров поданы высокие потенциалы) и поступает на входы синх- ронизации с триггеров всех четырех разрядов регистра. Однако опрокидывается в состояние единицы только старший из них, поскольку только к его входу J приложена единица, а на все остальные — поступают нули с выходов триггеров более стар- ших разрядов. С приходом следующего тактового импульса могут опрокинуться уже два триггера — старший и соседний с ним более младший. Старший окажется в нулевом состоянии при условии, что на кор- ректирующий вход V регистра последовательных приближений будет подан высокий (корректирующий) потенциал. Соседний триггер опрокинется_в состояние единицы независимо от коррек- тирующего сигнала V. Рис. 16.22. Схема аналого-цифрового преобразователя «напряжение — код» с поразрядным уравновешиванием 234
Таблица 16.7 Таблица функционирования АЦП с поразрядным уравновешиванием п R GT Q" Qf OS U"'d/a/^U Р Я х” У}П Уо 0 0 0 0 0 0 13,2 0 13,2 1 * * * * 1 1 1 0 0 0 13,2 8 5,2 1 * * * 1 2 1 1 1 0 0 13,2 12 1,2 1 * * 1 1 3 1 1 1 1 0 13,2 14 -0,8 0 * 1 1 0 4 1 1 1 0 1 13,2 13 0,2 1 1 1 0 1 Регистр срабатывает аналогичным образом на третий и четвер- тый тактовые импульсы. После четвертого тактового импульса младший разряд оказывается в единичном состоянии, и устрой- ство оказывается заблокированным по отношениюк сигналам с и V, но может реагировать на обнуляющий сигнал R. Регистры последовательных приближений нашли применение в аналого-цифровых преобразователях с поразрядным уравнове- шиванием (АЦП последовательных приближений), которые структурно (рис. 16.22) напоминают АЦП последовательного действия (см. рис. 16.5). Отличие в том, что здесь вместо счетчика на входе установлен регистр последовательных приближений (CARG), а вместо регистра памяти на выходе — регистр сдвига. Для уяснения принципа работы такого преобразователя рас- смотрим конкретный пример, в котором измеряемое напряжение в аналоговой форме UBX = 13,2А С7. Начальная строка (нулевой такт) в таблице функционирования АЦП с поразрядным уравновеши- ванием (табл. 16.7) соответствует началу цикла преобразования, когда на регистр последовательных приближений подан сигнал, его обнуляющий. Следующая строка таблицы показывает состояние устройства после прихода первого тактового импульса. Соотношение между измеряемым напряжением и напряжением на выходе ЦАП тако- во, что единица в старшем разряде подтверждается сигналом с выхода аналогового компаратора АС, который записывается в младший разряд выходного регистра сдвига положительным пе- репадом тактового импульса. После второго тактового импульса происходит процесс, ана- логичный предыдущему. После третьего импульса на входе аналогового компаратора АС образуется напряжение отрицательной полярности (-0,8Л U), вслед- ствие чего сигнал V становится равным нулю и записывается в выходном регистре сдвига. Появление четвертого тактового импульса приводит к коррек- ции состояния 01 и записи последней единицы в младший разряд 235
Такт- Пуск СА RG 0о 0! 02 03 dvs0- dvsi dvsi- dvsy dvdp dvd\- dvdy dvdy dvdt- dvd5- dvde- dvdr a0 MPL a\ ai аз bo b> bl bl Po — P\ — Pi — Pi — Pi — Ps — Pi — Pl — Оо О| аг «з о4 as at, ai bo Ь2 b3 bi b5 bi bl —<7о —Я\ — —03 00 01 02 03 Рис. 16.23. Схема делителя двух чисел с использованием регистра последовательных приближений регистра последовательных приближений. На выходе аналогового компаратора при этом также образуется единица, которая записы- вается в младший разряд регистра сдвига. На этом цикл преобразо- вания аналогового сигнала (напряжения) в цифровую форму за- канчивается. На весь цикл преобразования в данном случае затрачивается т тактов (где т — число разрядов выходного двоичного кода), что гораздо меньше, чем в последовательном АЦП (2т). В этом состо- ит главное преимущество рассматриваемого преобразователя. В срав- нении же с параллельным АЦП происходит существенная эконо- мия числа аналоговых компараторов при меньшем (в т раз) быс- тродействии. Сравнительный анализ показывает предпочтитель- ность применения в большинстве случаев именно АЦП с пораз- рядным уравновешиванием. Рассмотрим еще одно применение регистра последователь- ных приближений: в делителях двух чисел. Схема такого делителя (рис. 16.23) напоминает схему АЦП с поразрядным уравновеши- ванием (см. рис. 16.22), только вместо ЦАП в ней применен пе- ремножитель MPL, а вместо дифференциального усилителя и ана- логового компаратора — цифровой компаратор. На делитель подаются два числа: восьмиразрядное делимое dvd (от dividend) и четырехразрядный делитель dvs (от divisor). На ре- гистр последовательных приближений CARG поступает сигнал Пуск, обнуляющий его разряды. Отрицательный перепад первого 236
тактового импульса приводит старший разряд регистра последо- вательных приближений в состояние единицы. Полученное число 1000 умножается в перемножителе MPL на делитель dvs, и произведение р (от product) сравнивается в цифро- вом компараторе с делимым числом dvd. Если делимое оказывается больше полученного произведения, на выходе компаратора полу- чается нуль, который после инвертора в виде единицы записыва- ется положительным перепадом тактового импульса в младший разряд регистра сдвига RG. Кроме того, сигнал с выхода компара- тора подается на корректирующий вход регистра последовательных приближений CARG, чтобы с приходом следующего тактового импульса сохранить предыдущую единицу в старшем разряде и вве- сти новую единицу в соседний более младший разряд. Если же делимое оказывается меньше полученного произведе- ния, то на выходе компаратора получается единица, которая пос- ле инвертора в виде нуля записывается положительным перепа- дом тактового импульса в младший разряд регистра сдвига RG. Кроме того, эта единица с выхода компаратора подается на кор- ректирующий вход регистра последовательных приближений CARG, чтобы с приходом следующего тактового импульса заме- нить предыдущую единицу в старшем разряде на нуль и ввести новую единицу в соседний более младший разряд. Аналогичным образом происходит работа во всех остальных тактах, в результате чего на выходе регистра сдвига RG получает- ся частное от деления q (от quotieri). Контрольные вопросы 1. Что представляют собой регистры памяти? Какие у них предусмот- рены входы и выходы? Где они применяются? Каково их условное обо- значение? 2. Приведите схему накапливающего арифметического сумматора, созданного на основе регистра памяти и комбинационного сумматора, и поясните его работу. 3. Приведите схему накапливающего сумматора на основе регистра памяти, комбинационного сумматора и счетчика. Поясните принцип его работы. 4. Поясните работу алгебраического накапливающего сумматора, со- зданного на основе регистра памяти, комбинационного сумматора и реверсивного счетчика (см. рис. 16.4). 5. Приведите схему последовательного аналого-цифрового преобра- зователя «напряжение — код», использующего счетчик, ЦАП, диффе- ренциальный усилитель, аналоговый компаратор и регистр памяти, и поясните принцип его работы. Какое максимальное число тактов требу- ется для преобразования напряжения в двоичный код? 6. Поясните принцип работы АЦП следящего типа «биполярное на- пряжение — дополнительный двоичный код» (см. рис. 16.7). Какова дли- тельность процесса преобразования при поиске и слежении? 237
7. Какие регистры называют сдвиговыми и как они классифициру- ются? 8. Синтезируйте трехразрядный регистр сдвига в сторону старших раз- рядов на основе синхронных /^-триггеров. Поясните его работу. Какое управление у применяемых триггеров должно быть: потенциальное или динамическое? 9. Синтезируйте трехразрядный регистр сдвига в сторону младших разрядов на основе синхронных Лб'-триггеров. Поясните его работу. 10. Синтезируйте генератор кода «1 из 4» с автоматическим устране- нием ошибочной работы на основе регистра сдвига, состоящего из /)-триггеров, управляемых по положительному перепаду напряжения. 11. Синтезируйте на основе регистра сдвига, состоящего из синхрон- ных 7)-триггеров, управляемых по положительному перепаду напряже- ния, генератор кода Джонсона с модулем счета, равным восьми, и авто- матическим устранением ошибочной работы. 12. На основе регистра сдвига, собранного из синхронных D-тригге- ров, управляемых по положительному перепаду напряжения, синтези- руйте генератор линейной последовательности с периодом в 15 тактов. Предусмотрите автоматический выход генератора из нештатного со- стояния. (При этом следует принять следующие весовые коэффициен- ты а, = а2 = 0; а0 = д3 = 1.) 13. На основе синхронных Д-триггсров, управляемых по положитель- ному перепаду напряжения, синтезируйте четырехразрядный реверсив- ный регистр. 14. Поясните работу устройства формирования и согласованного при- ема сигналов сложной формы (см. рис. 16.17). 15. На основе реверсивного регистра сдвига синтезируйте устройство формирования и согласованного приема семиразрядного кода Баркера. 16. Поясните работу комбинированного регистра типа К155ИР1 (см. рис. 16.18). 17. Поясните работу устройства, кодирующего отрезок двоичной пос- ледовательности (см. рис. 16.19). 18. Поясните назначение и принцип работы регистра последователь- ных приближений (см. рис. 16.21). 19. Изобразите схему АЦП «напряжение — код» с поразрядным урав- новешиванием (рис. 16.22) и поясните принцип его работы. Сколько тактов требуется в этом случае для оцифровки аналогового напряжения? В чем состоит преимущество такого АЦП перед АЦП последовательного и па- раллельного типов? 20. Поясните работу делителя двух чисел, собранного на основе реги- стра последовательных приближений.
РАЗДЕЛ IV МИКРОПРОЦЕССОРЫ ГЛАВА 17 АРХИТЕКТУРА 17.1. Структура и принцип функционирования ЭВМ Типичная электронная вычислительная машина состоит из про- цессора, устройств ввода и вывода информации и запоминающих устройств (рис. 17.1) [14]. «Сердцем» ЭВМ является процессор, в состав которого входят: устройство управления выборкой команд из запоминающих уст- ройств и их выполнением; арифметико-логическое устройство, производящее операции над введенными в процессор данными; регистры, осуществляющие временное хранение данных и состо- яний процессора; устройства для управления и связи с подсисте- мами памяти, ввода и вывода. Устройства ввода обеспечивают считывание информации (ис- ходных данных и программы решения задачи) с определенных носителей (клавиатур, перфолент, магнитных лент или дисков, дат- чиков состояний управляемых объектов и т. п.) и ее представление в форме электрических сигналов, воспринимаемых другими устрой- ствами ЭВМ (процессором или запоминающими устройствами). Запоминающие устройства - Шины '' памяти Рис. 17.1. Обобщенная структурная схема ЭВМ 239
Устройства вывода представляют результаты обработки инфор- мации в форме, удобной для визуального (индикаторы, печатаю- щие устройства, графопостроители, экран дисплея и т.п.), слу- хового (наушники и громкоговорители) восприятия, запомина- ния на носителях, с которых эти результаты могут быть использо- ваны для дальнейшей обработки, передачи на исполнительные органы управляемого объекта или в линию связи. Запоминающие устройства ЭВМ обеспечивают хранение команд и данных. Эти устройства включают в себя узлы одинакового раз- мера — ячейки памяти, предназначенные для хранения одного слова информации. В свою очередь, ячейка памяти состоит из эле- ментов памяти, состояние каждого из которых соответствует од- ной двоичной цифре (0 или 1). Совокупность нулей или единиц, хранящихся в элементах одной ячейки, представляет собой со- держимое этой ячейки памяти. Ячейки памяти нумеруются числами 0, 1,2, ... , называемыми адресами ячеек. Если необходимо записать в запоминающее уст- ройство слово, следует подать на шину его адреса сигналы, соот- ветствующие адресу ячейки, в которую надо поместить это слово, а само слово — на шину записи. ЗУ устроено так, что заданное слово будет передано в ячейку с указанным адресом и может хра- ниться там сколь угодно долго. В любой момент, обратившись к памяти, можно получить хра- нимое там слово. Для этого в ЗУ посылается адрес, определяю- щий местоположение требуемого слова, и оно выдает по шине вывода (чтения) копию этого слова. При считывании содержимое ячейки остается без изменения, так что один раз записав слово, можно сколько угодно раз получать его копии. 17.2. Классификация микропроцессорных комплектов интегральных схем Все современные микроЭВМ, а также многие устройства, бло- ки и узлы ЭВМ других классов построены с использованием боль- ших интегральных схем, входящих в различные микропроцессор- ные комплекты. Под МПК БИС понимается совокупность микро- процессорных и других интегральных микросхем, совместимых по технологическому и конструктивному исполнению и предназна- ченных для совместного использования при построении различ- ных средств вычислительной техники: микропроцессоров, мик- роконтроллеров (устройств логического управления в интеграль- ном микроэлектронном исполнении), микроЭВМ и т.п. [14]. Основой каждого МПК является микропроцессор — программ- но-управляемое устройство для обработки данных, построенное на одной или нескольких БИС. Однако одного только микропро- 240 А
цессора недостаточно для построения как микроЭВМ, так и раз- личных устройств управления на их основе. Любая МП система должна включать в себя средства для хранения программ, данных и результатов обработки данных, а также средства ввода и вывода информации, в том числе устройства для связи с объектами уп- равления и средствами отображения результатов обработки. Все это обусловило необходимость разработки комплектов БИС, обес- печивающих практические потребности. В настоящее время промышленность выпускает огромное чис- ло МПК БИС, различающихся набором БИС и их функциональ- ной полнотой, конструкцией и технологией изготовления [36]. Различия в МПК БИС обусловливают области их наиболее эф- фективного применения. Именно область применения МПК БИС может служить первым признаком их классификации. По этому признаку все МПК БИС можно разделить на две группы: универ- сальные и специализированные [14]. К универсальным МПК БИС относятся такие комплекты, на основе которых могут быть построены разнообразные средства вычислительной техники — от микроконтроллера до универсаль- ных микроЭВМ различного типа. Эта группа МПК БИС наиболее многочисленна, и в нее входят такие комплекты, как КР580, К582, К587, К1804, К1810 и др. Специализированные МПК БИС предназначаются для построе- ния только одного типа микроЭВМ. В эту группу входят МПК БИС К1808, К1813, К1815 идр. Следующим признаком классификации МПК БИС может слу- жить количество микропроцессорных БИС в комплекте. Здесь мож- но выделить микропроцессоры одно-, многокристальные и с раз- рядно-модульной организацией (секционные). Однокристальный микропроцессор представляет собой функ- ционально и конструктивно законченное устройство для обработки данных фиксированной разрядности, реализующее фиксирован- ную систему команд. Примерами однокристальных микропроцес- соров могут служить БИС КР580ИК80Аи КМ1810ВМ86. В многокристальном микропроцессоре отдельные БИС предназ- начены для выполнения строго определенного набора функций и могут работать автономно. Такой подход к построению МП позво- ляет создать более сложные в функциональном отношении их от- дельные узлы по сравнению с однокристальной реализацией мик- ропроцессора. Многокристальные МП имеют фиксированную раз- рядность. Система команд таких микропроцессоров может быть как фиксированной, так и изменяемой в случае, если память мик- ропрограмм реализуется в отдельной БИС. Типичным примером многокристального МП является МПК БИС серии К581. Микропроцессоры с разрядно-модульной организацией состоят из БИС, которые предназначены для обработки нескольких раз- 241
рядов данных или выполнения определенных управляющих опе- раций. Секционность обеспечивает возможность наращивания раз- рядности обрабатываемых данных или усложнения устройств уп- равления микропроцессором при параллельном включении БИС. Параллельное включение микропроцессорных секций реализует- ся специальными БИС, также входящими в МПК. Примерами отечественных МП с разрядно-модульной организацией могут служить БИС К589ИК02 и К1804ВС1. 17.3. Однокристальные микропроцессоры Микропроцессоры выполняют две основные функции: вычис- ляют (т. е. выполняют над числовыми данными различные ариф- метические и логические операции типа сложения, вычитания, сравнения и др.) и управляют потоками данных, организуя как сами вычисления, так их требуемую последовательность [37]. Однокристальный микропроцессор (рис. 17.2) состоит из ариф- метико-логического устройства (АЛУ), устройства управления (УУ), регистра команд (РК), аккумулятора (А), буферных регис- тров БР1 и БР2, регистров общего назначения (РОН) В, С, D, Е, специализированных регистров косвенного адреса Н (от high — старшие разряды) и L (от low — младшие разряды), программно- го счетчика PC (от program counter), указателя стека SP (от stack pointer), регистра адреса (РА), регистра признаков (РП), буфер- ного регистра адреса (БРА), буферного регистра данных (БРД), магистралей данных (МД), управления (МУ), адреса (МА). Арифметико-логическое устройство — комбинационное циф- ровое устройство, имеющее два входных порта (Вход 1 и Вход 2) Внутренняя МД МУ МЛ МД Внешние магистрали Рис. 17.2. Структурная схема однокристального микропроцессора 242
и один выходной порт (Выход). Каждый входной порт соединен со своим буферным регистром (БР1, БР2), способным хранить слово данных (операнд). Два входных порта позволяют АЛУ принимать данные с внут- ренней магистрали данных микропроцессора или из специально- го регистра, называемого аккумулятором. Единственный выход- ной порт АЛУ служит для пересылки слова данных (результата выполненной АЛУ операции) только в аккумулятор. АЛУ оперирует одним или двумя словами в зависимости от вида выполняемой операции. Например, при сложении использу- ются оба входных порта, а при инвертировании слова данных (за- мене прямого кода на обратный) — один входной порт. Буферные регистры БР1 и БР2 необходимы в МП для времен- ного хранения операндов и промежуточных результатов вычисле- ний. Например, они позволяют легко реализовать обмен содержи- мым любых двух регистров общего назначения микропроцессора. Аккумулятор — главный регистр микропроцессора при различ- ных манипуляциях с данными. Для выполнения любой операции над данными прежде всего необходимо поместить их в аккумуля- тор. Так, при сложении двух чисел (слов) Хи Yодно из них (на- пример, X) засылается в аккумулятор, а другое (У) может содер- жаться в одном из других регистров МП или внешней памяти. Результат сложения вновь заносится в аккумулятор А, заменяя в нем число X. При пересылке данных между двумя областями внешней памя- ти или между областью внешней памяти и портами внешней ма- гистрали (устройства ввода-вывода — УВВ) сначала данные пере- сылаются из источника в аккумулятор А, а затем — из аккумуля- тора в пункт назначения. МП может выполнять некоторые действия над данными не- посредственно в аккумуляторе. Например, аккумулятор может быть «очищен» путем записи нулей во все его разряды или установлен в единичное состояние. Содержимое аккумулятора можно сдви- гать влево или вправо. Регистр признаков, называемый также иногда флаговым регис- тром FR (от flag register), предназначен для хранения результатов контроля, осуществляемого в процессе выполнения программы. Его разряды принимают то или иное значение при выполнении операций, использующих АЛУ и некоторые из регистров МП. При этом меняется порядок выполнения команд. Можно сказать, что микропроцессор принимает решение о том или ином продолже- нии хода вычислений в зависимости от результата предшествую- щей операции. Команды, определяющие переход к новой области памяти, т.е. нарушающие последовательный ее опрос в зависимости от результата предыдущей операции, называют условным переходом. 243
В случае условного перехода выполнение команд начинается с некоторой новой ячейки памяти, т.е. программный счетчик PC загружается новым числом. Наличием данного регистра подлин- ная вычислительная машина отличается от простого калькуля- тора. Наиболее часто используются следующие разряды регистра признаков: переполнение/заем (перенос) — CY (от carry)', нулевой результат — Z (от zero); знак — S (от sign). Значение CY= 1 устанавливается, когда в результате сложения двоичных чисел образуется перенос или заем (отрицательный перенос) при вычитании большего числа из меньшего. В против- ном случае CY= 0. Z= 1, если после окончания операции во всех разрядах резуль- тата оказываются нули. 5=1, если старший бит содержимого регистра, предназна- ченного для записи результата операции, становится равным еди- нице. Заметим, что если вместо наименования регистр признаков ис- пользуется термин флаговый регистр, то признаки в этом случае называют флагами', флаг переноса (CY), флаг нулевого результата (Z) и т.д. Внутренняя магистраль данных соединяет АЛУ с регистрами для передачи между ними данных. Внутренняя МД — линия двусто- ронней связи. По ней передаются не отдельные биты, а слова дан- ных. К этим данным относятся, например, команды, которые дол- жно выполнять АЛУ. Эти команды хранятся в регистре команд. Устройство управления обеспечивает необходимую последова- тельность действий микропроцессора при выполнении команды. Оно содержит дешифратор команд (ДШК) и формирователь сиг- налов управления (ФСУ). По «распоряжению» УУ очередную команду, содержащуюся в регистре команд РК микропроцессора, расшифровывает ДШК и определяет, что делать с данными, а затем ФСУ генерирует уп- равляющие сигналы, под действием которых микропроцессор ре- шает поставленную задачу (на рис. 17.2 шины, по которым пере- даются управляющие сигналы, не показаны). Команда, поступающая из РК, и подающийся на вход УУ так- товый сигнал CLK (от clock — часы) преобразуются ФСУ в двух- тактные сигналы CLK\ и CLK1 (рис. 17.3). При помощи CLK) и CLK2 формирователь сигналов управле- ния генерирует сигналы, которыми управляются как внутрен- ние функциональные узлы МП (регистры, АЛУ), так и внешние объекты, например, запоминающие устройства (считывание из памяти MEMR — от memory read; запись в память MEMW — от 244
CLK CLK\ CLK2 Рис. 17.3. Тактовые сигналы микропроцессора memory write) или устройства ввода/вывода (считывание из уст- ройства ввода/вывода I/OR — от input/output read', запись в уст- ройство ввода/вывода I/OW — от input/output write). Среди других функций устройства управления можно отметить, например, управление последовательностью включения питания, управление процессами прерываний выполнения текущей про- граммы и предоставление магистралей МП системы в распоряже- ние того или иного внешнего устройства, перевод МП в исходное состояние сигналом сброса Reset и др. Информация в регистры общего назначения В, С, D, Е (см. рис. 17.2) может быть занесена непосредственно из аккумулято- ра, внешней памяти или внешнего УВВ. Каждый из них может выступать либо отдельно в качестве восьмиразрядного регистра, либо в паре с другим регистром, образуя шестнадцатиразрядную регистровую пару В— С или D—E. Специализированный регистр косвенного адреса H—L исполь- зуется в МП для реализации команд с косвенной адресацией, т.е. команд без указания номера регистра, хранящего исполни- тельный адрес. Это сдвоенный регистр (регистровая пара), кото- рый программно доступен, как и РОН. Программный счетчик PC — один из наиболее важных регист- ров МП. Для корректного решения поставленной задачи коман- ды, хранимые в памяти микропроцессорной системы (памяти микроЭВМ), должны поступать в МП строго последовательно. Программный счетчик PC следит за тем, какая команда выполня- ется и какая подлежит выполнению следующей. В большинстве восьмиразрядных микропроцессоров, адресую- щихся к памяти емкостью 216 = 65536 = 64 К, число разрядов PC равно 16. Согласно рис. 17.2, программный счетчик PC соединен с внут- ренней МД, т. е. теоретически может получать данные из любого узла микропроцессора. Однако на практике данные обычно посту- пают в программный счетчик из внешней памяти микроЭВМ по магистрали МД через буферный регистр БРД. Программный счетчик работает следующим образом: 1) перед выполнением программы его загружают числом — ад- ресом ячейки памяти, содержащей первую команду программы; 245
2) адрес местоположения первой команды программы посы- лается по магистрали МА микропроцессорной системы к устрой- ствам управления памятью, в результате чего считывается содер- жимое ячейки памяти (команда) с указанным адресом; 3) после извлечения команды из памяти микропроцессор авто- матически дает приращение содержимому программного счетчика (это приращение PC получает как раз в тот момент, когда МП начи- нает выполнять команду, только что извлеченную из памяти), в ре- зультате чего на протяжении всего времени выполнения текущей ко- манды программный счетчик содержит адрес следующей команды. Особая группа команд служит для изменения содержимого счет- чика PC. Это изменение необходимо для перехода к подпрограмме, последовательность команд которой выпадает из основной после- довательности. После записи в PC начального адреса подпрограм- мы содержимое программного счетчика получает приращение по мере выполнения команд этой подпрограммы. Так продолжается до появления команды возврата в основную программу. Указатель стека SP — специализированный регистр, который автоматически увеличивает свое содержимое на единицу (опера- ция инкрементирования) при каждом извлечении слова данных из стековой памяти (обычно внешней по отношению к МП) и уменьшает его на единицу (операция декрементирования) при каждой записи слова данных в ту же память. Указатель стека программно доступен. С его помощью по спе- циальной команде содержимым стековой памяти могут быть заг- ружены аккумулятор и регистр признаков микропроцессора. Регистр адреса при каждом обращении к внешней памяти ука- зывает ячейку памяти, которая подлежит использованию микро- процессором. Выход этого регистра подключен через буферный регистр адреса к магистрали адреса микропроцессорной системы. В процессе выборки команды из памяти РА и счетчика PC имеют одинаковое содержимое. После декодирования выбранной коман- ды программный счетчик получает приращение, а регистр адреса сохраняет свое значение. При выполнении команды содержимое РА зависит от этой команды. Если в соответствии с выбранной коман- дой МП должен произвести еще одно обращение к памяти (напри- мер, для извлечения еще одного операнда), то РА используется по- вторно с содержимым, определяемым выполняемой командой. В большинстве микропроцессоров регистр адреса и программ- ный счетчик имеют одинаковое число разрядов, т.е. у восьмираз- рядных МП количество разрядов РА равно 16. Такой регистр раз- деляется на два отдельных регистра, каждый из которых имеет независимое подключение к восьмиразрядной внутренней магис- трали данных микропроцессора. Один из этих регистров называют регистром старшего байта адреса (СБА), а другой — регистром младшего байта адреса (МБА). 246
Регистр адреса может загружаться от различных источников. Большинство микропроцессоров располагает командами, позво- ляющими загружать этот регистр содержимым программного счет- чика, регистра общего назначения или какой-либо области па- мяти. Некоторые команды позволяют изменять содержимое ре- гистра адреса путем выполнения вычислений: новое значение содержимого РА получается путем сложения или вычитания со- держимого счетчика PC с числом, указанным в самой команде. Адресация такого типа получила название адресации с использо- ванием смещения. Следует подчеркнуть, что загрузка РА тем или иным содержи- мым производится самим микропроцессором в процессе выпол- нения команд программы. Программисту данный регистр для не- посредственного использования недоступен. Буферные регистры адреса и данных служат для повышения на- грузочной способности соответствующих магистралей адреса и данных. При этом БРА передает адрес только в одном направле- нии — от МП к МА, а БРД обеспечивает двусторонний обмен данными между МП и МД. Оба регистра (БРА и БРД) недоступ- ны программисту, но могут быть переведены микропроцессором в высокоомное состояние по выходу, т.е. фактически отключены от магистралей адреса и данных, что позволит внешним устрой- ствам МП системы использовать эти магистрали для непосред- ственного взаимного обмена информацией в режиме так называ- емого прямого доступа, который будет рассмотрен далее. 17.4. Принципы построения модульных микропроцессоров В качестве примера рассмотрим микропроцессорный комплект серии К1800 [24]. Этот комплект состоит из процессорных и ин- терфейсных микросхем, выполненных на основе логических эле- ментов типа ЭСЛ, ЭФЛ1 и ЭПЛ2, и по электрическим парамет- рам совместимых с серией К500. 1 В ЭФЛ операция И выполняется путем включения многоэмиттерного тран- зистора на входе логического элемента. Для эмиттеров выходных транзисторов возможно соединение Монтажное ИЛИ. Поскольку операция НЕ не может быть реализована с использованием только ЭФЛ, приходится применять комбиниро- ванные схемы. Например, комбинация схемы ЭФЛ при транзисторно-последо- вательном соединении с многоуровневой схемой ЭСЛ позволяет получить логи- ческую структуру, обладающую лучшими (по сравнению с обычными схемами ЭФЛ и транзисторно-последовательными схемами ЭСЛ) характеристиками, та- кими как быстродействие, произведение временной задержки на мощность и Занимаемая площадь. 2 ЭПЛ — усовершенствованная комплементарная транзисторная логика, по- зволяющая достигать высокой плотности размещения ЛЭ. Использование техно- логии тройной диффузии позволяет еще более увеличить эту плотность. 247
Высокое быстродействие (среднее время задержки на один ЛЭ составляет 1 ... 1,5 нс) при небольшой потребляемой мощности (4 мВт на каждый ЛЭ) микросхем на ЭСЛ достигается за счет оптимизации их геометрических размеров и расположения ком- понентов на кристалле, а также в результате использования схе- мотехнических усовершенствований (применения ЛЭ на ЭСЛ без эмиттерных повторителей и с напряжением питания -2 В, Мон- тажное ИЛИ и др.). Изоляция элементов в таких МС осуществляется с помощью р—«-переходов. Амплитуда сигнала на входе, выходе и внутри БИС составляет 0,8 В, что позволяет понизить требования к вос- производимости параметров компонентов и облегчает условия эксплуатации при воздействии помех. Рабочий диапазон темпе- ратур -10 ... +75 °C. Состав и классификационные параметры некоторых микросхем серий К1800 и К500 приведены в табл. 17.1. В каждой БИС этих серий имеется возможность наращивания разрядности параллельным каскадированием системы. БИС, об- разующие многоразрядный блок, подключаются параллельно к шинам управления, а одиночные последовательные информа- ционные сигналы (типа переноса из старшего разряда младшей схемы на вход младшего разряда старшей схемы) могут пода- ваться либо непосредственно на вход младшего разряда стар- шей схемы, либо через секцию ускоренного переноса К500ИП179. Особенностью функционального построения БИС является использование мультиплексорных и регистровых схем, а также двунаправленных шин входа/выхода, придающих большую гиб- кость системе. Хорошие вычислительные возможности многопроцессорной системы определяются наличием двух БИС, содержащих внут- реннее арифметико-логическое устройство, и микросхемы сдви- гателя. Данные в этом случае обрабатываются в двоичном и дво- ично-десятичном кодах с фиксированной и плавающей запя- той. Работа микросхем серий К1800 и К500 описывается в отрица- тельной логике: высокому уровню напряжения соответствует ло- гический нуль, а низкому — логическая единица. Функции каждой БИС серий К1800 и К500 легко понять, рас- смотрев типовую схему соединения (рис. 17.4). Все микросхемы КМП работают с использованием сигналов синхронизации, которые формируются синхронизатором К1800ВБ2. Устройство микропрограммного управления К1800ВУ1 снабжа- ет адресом программируемое ПЗУ (устройство микропрограмм- ной памяти) К500РЕ149, выбирая одно микропрограммное сло- 248
Таблица 17.1 Состав и классификационные параметры микросхем серий К1800 и К500 Условное обозначение Наименование Разряд- ность, бит Напряже- ние питания, В Потреб- ляемая мощность, Вт Число эквива- лентных ЛЭ К1800ВС1 Арифметическое логическое устройство 4 -5,2 ±5% -2,0 ± 5% 1,4 342 К1800ВУ1 Устройство микропрограммного управления 4 -5,2 ±5% -2,0 + 5% 1,6 519 К1800ВБ2 Синхронизатор 4 -5,2 ±5% 0,74 101 К1800ВТЗ Устройство управления оперативной памятью 4 -5,2 ±5% -2,0+5% 1,7 614 К1800ВА4 Двунаправленный транслятор уровней Э СП-ТТЛ 4 -5,2 ±5% +5,0+5% 0,7 107 К1800РП6 Устройство двухадресной памяти 9 -5,2 ±5% 1,8 739 К1800ВА7 Двунаправленный магистральный транслятор 5 -5,2 ±5% 0,44 82 К1800ВР8 Программируемый многоразрядный сдвигатель 16 -5,2 ±5% 1,5 299 К500ИП179 Секция ускоренного переноса 4 -5,2 ±5% 0,3 12 К500РЕ149 Программируемое ПЗУ 8x4 -5,2 + 5% 0,54 1024 К500ПУ125 Однонаправленный транслятор уровней ЭСЛ-ТТЛ 4 -5,2 ±5% +5,0+5% 0,38 8 во. Каждое микропрограммное слово делится на группы битов — полей, независимо управляющих работой блоков системы. Так как все поля существуют одновременно, различные устройства системы работают также одновременно, повышая ее быстродей- ствие. 249
Адрес Данные Рис. 17.4. Типовая схема соединения микросхем быстродействующего микропроцессора Устройство микропрограммного управления К1800ВУ1 направ- ляет адрес по выходной шине ОВ (от output bus') к арифметико- логическому устройству К1800ВС1, являющемуся центральным устройством системы, или к устройству управления оперативной памятью К1800ВТЗ, которое обрабатывает и выводит адреса и данные для оперативной памяти. Программируемый многоразрядный сдвигателъ К1800ВР8, распо- лагаемый впереди АЛУ, управляется его микропрограммным по- лем и мало влияет на протяженность цикла микрокоманды. Секция ускоренного переноса К500ИП179 позволяет значитель- но ускорить выполнение арифметических операций в АЛУ при наращивании разрядности до 64 и двухуровневой организации. 250
В качестве блока регистров используется устройство двухадрес- ной памяти К1800РП6. В этом случае одна половина схемы считы- вает содержимое блока через шину ОБ в АЛУ и записывает ре- зультат через входную шину IB (от input bus), а другая половина схемы передает информацию в адресную шину АВ (от address bus) устройств К1800ВС1, К1800ВУ1 или К.1800ВТЗ. БИС К1800РП6 применяется также в качестве буфера. В этом случае она содержит 32 слова данных и совместно с двунаправлен- ным транслятором уровней ЭСЛ-ТТЛК1800ВА4 позволяет схемам ТТЛ работать медленнее системы ЭСЛ. Двойная структура БИС К1800РП6 удобна для подключения к двунаправленным инфор- мационным шинам, так как обеспечивает возможность запоми- нания и входящих, и выходящих данных. Шина данных DB (от data bus) напрямую соединяет буфер К1800РП6 с устройством микропрограммного управления К1800ВУ1. Такая структура экономит время выполнения команды в тех случа- ях, когда нет необходимости прохождения начального адреса через устройство управления оперативной памятью К1800ВТЗ, а прямой путь его от АЛУ К1800В С1 к устройству микропрограммного уп- равления К1800ВУ1 не становится длиннее. При необходимости можно вывести информацию с шин ОВ и IB через двунаправленные магистральные трансляторы К1800ВА7. Устройство управления оперативной памятью К1800ВТЗ соеди- няется с ТТЛ адресной шиной посредством однонаправленного транслятора уровней ЭСЛ-ТТЛ К500ПУ125. В зависимости от области применения схема соединения уст- ройств может изменяться. Длительность микрокомандного цикла для шестнадцатиразряд- ной системы — около 100 нс. Частота повторения тактовых сигна- лов — 30 ... 36 МГц. Контрольные вопросы 1. Из каких основных устройств состоит ЭВМ? 2. Из каких основных устройств состоит процессор? 3. Для чего предназначено АЛУ? 4. Какие носители информации используются в ЭВМ? 5. Для чего служат устройства вывода информации? 6. Что хранят запоминающие устройства ЭВМ? 7. Что понимается под микропроцессорным комплектом? 8. Что такое микропроцессор? 9. Назовите области применения микропроцессоров. 10. По схеме, приведенной на рис. 17.2, поясните назначение и взаи- модействие элементов однокристального микропроцессора. 11. По схеме на рис 17.4 поясните назначение и взаимодействие эле- ментов микропроцессорного комплекта БИС с разрядно-модульной орга- низацией. 251
ГЛАВА 18 СИСТЕМЫ КОМАНД 18.1. Общие сведения Термин команда (instruction, command) имеет двойное значе- ние [22]: 1. Управляющий сигнал, инициирующий выполнение опреде- ленной операции в исполнительном устройстве; 2. В языках программирования — значимое выражение, опреде- ляющее одну операцию и ее операнды (описание операции, ко- торую должна выполнить ЭВМ). Командой микропроцессора называется двоичное слово, которое в отличие от других двоичных слов, будучи «прочитано» микро- процессором, заставляет последний выполнять определенные дей- ствия [37]. Длина команды как двоичного слова всегда кратна длине слова данных микропроцессора. Обычно она равна длине одного, двух или трех слов данных. Так длина команды рассмотренного в гл. 17 восьмиразрядного микропроцессора может составлять 8, 16 или 24 бит, т.е. быть одно-, двух- или трехбайтовой. Команда должна сообщать микропроцессору что делать (вы- полнить сложение, пересылку, сдвиг и т.п.), а также указывать местоположение (адрес) обрабатываемых данных, поэтому команда всегда состоит из двух частей: кода операции (КОП) и адреса. В многобайтовых командах первый байт, содержащий код опера- ции, называют обычно кодом команды, а иногда и просто командой. Число команд МП значительно больше числа различных кодов операций, поскольку один и тот же код может использоваться при различных способах адресации. Команды микропроцессора делятся на группы: команды пере- сылки и загрузки данных, команды обмена данными, арифмети- ческие команды, команды поразрядной обработки данных, ко- манды передачи управления, команды управления микропроцес- сором и специальные [11]. Кодировки всех команд являются подмножеством базового фор- мата команды, показанного в табл. 18.1 [36]. Команда содержит следующие поля: префиксы команды, которые могут следовать в произвольном порядке (необязательно); одно- или двухбайтный код операции; спецификатор адреса, состоящий из байта режима адресации ModR/Mvi байта масштабируемого индекса SIB — Scale Index Byte (необязательно); смещение, если оно необходимо; 252
Таблица 18.1 Базовый формат команды Название поля команды Объем, байт Префикс команды 0 или 1 Префикс размера адреса 0 или 1 Префикс размера операнда 0 или 1 Префикс замещения сегмента 0 или 1 Код операции 1 или 2 ModR/M 0 или 1 SIB 0 или 1 Смещение 0, 1, 2 или 4 Непосредственное значение 0, 1, 2 или 4 поля непосредственного значения, если такое значение при- сутствует. В коде операции могут быть определены меньшие поля: на- правление операции, размер смещения, коды регистров и знак расширения. Эти поля варьируются в зависимости от класса опе- рации. Большинство команд, которые могут ссылаться на операнд в памяти, содержат байт режима адресации, следующий за байтом (байтами) кода операции. Этот байт, называемый ModR/М-бай- том, определяет используемую форму (режим) адресации. Коди- рование определенным образом байта ModR/M указывает на на- личие второго байта спецификатора адреса — 575-байта, распо- лагающегося сразу же за байтом ModR/Мм необходимого для пол- ного описания формы адресации. Формы адресации могут включать в себя смещение, следующее непосредственно за ModR/M или 575-байтом. Такое смещение может быть 8-, 16- или 32-битным. Если в команде присутствует непосредственный операнд, то он всегда находится за байтами смещения, являясь последним полем в команде. Для каждой группы префиксов резервируется не более одного байта, т. е. префикс данной группы может присутствовать или не присутствовать. Префиксы группируются следующим образом: REP, REPE/REPZ, REPNE/REPNZ, LOCK', префиксы команд CS, SS, DS, ES, FS, GS', префиксы замещения сегмента; префиксы замещения размера операнда; префиксы замещения размера адреса. 253
В команде может присутствовать не более одного префикса из каждой группы. Результат использования избыточного их числа не определен и варьируется от процессора к процессору. Порядок следования префиксов может быть любым. 18.2. Команды однокристальных микропроцессоров В [11] приведены команды микропроцессора КР580ВМ80. Ука- жем эти команды. (При описании команд байты разделены штри- хами.) Команды пересылки и загрузки данных Команда пересылки (sending instruction) выполняет пересылку данных из одной области основной памяти в другую. Загрузка (load, loading) — пересылка данных с носителя дан- ных в основную память или из основной памяти в регистровую с целью непосредственного использования их в операциях про- цессора. MOV R1,R2 — пересылка из регистра в регистр (от move — переслать, переместить). LDAX B(D) — пересылка из ячейки памяти, адрес которой записан в регистровой паре BC(DE), в аккумулятор (от load accumulator — загрузить аккумулятор). STAX B(D) — пересылка из аккумулятора в ячейку памяти, адрес которой записан в регистровой паре DC(DE) (от store accumulator — запомнить содержимое аккумулятора). LDA_B2_B3 — пересылка из ячейки памяти, адрес которой записан во втором и третьем байтах команды, в аккумулятор. STA_B2_B3 — пересылка из аккумулятора в ячейку памяти, адрес которой указан во втором и третьем байтах команды. SPHL — пересылка данных из регистровой пары HL в указа- тель стека. PCHL — пересылка данных из регистровой пары HL в счетчик команд. LHLD_B2_B3 — пересылка данных из ячеек памяти с адреса- ми, записанными во втором и третьем байтах команды и на еди- ницу большими, в регистровую пару HL. SHLD_B2_B3 — пересылка данных из регистровой пары HL в ячейки памяти с адресами, записанными во втором и третьем байтах команды и на единицу большими. MVI R_B2 — загрузка второго байта команды в регистр R. LXI В (D,H)_B2_B3 — загрузка второго и третьего байтов ко- манды в регистровую пару DC (DE,HL). 254
Команды обмена данными Обмен данными {data communication) — процедура приема и пе- редачи данных, включая кодирование, декодирование, буфери- зацию и проверку. XCHG — обмен данными между парами регистров HL и DE. XTHL — обмен данными между парой регистров HL и верши- ной стека (L)<->[YC], (H)<-*[YC+1]. Арифметические команды Арифметическая команда {arithmetic instruction) определяет выпол- нение арифметической операции над числами с фиксированной или плавающей запятой. Сложение {addition), вычитание {subtraction). Команды сложения ADD R — сложение содержимого аккумулятора с содержимым регистра R (A)<-(A)+(R). ADI_B2 — сложение содержимого аккумулятора с вторым бай- том команды (А)<-(А)+В2. ADC R — сложение содержимого аккумулятора с содержимым регистра R и признаком С (А)<—(A)+(R)+(C) (от add with carry — сложить с учетом переноса из предыдущей операции). АС1_В2 — сложение содержимого аккумулятора с вторым бай- том команды и признаком С (А)«-(А)+В2+(С). DAD В (D, Н, SP) — сложение содержимого пары регистров HL с содержимым пары регистров ВС (DE или HL, или указателем стека) и запись результата в пару HL (от double add — двойное сложение). Команды вычитания SUB R — вычитание из содержимого аккумулятора содержи- мого регистра R (A)<-(A)-(R) (от subtract — вычесть). SUI_B2 — вычитание из содержимого аккумулятора второго байта команды (А)<-(А)-В2. SBB R — вычитание из содержимого аккумулятора содержи- мого регистра R и признака С (A)<-(A)-(R)-(C) (от subtract with borrow — вычесть с учетом заема из предыдущей операции). SBI_B2 — вычитание из содержимого аккумулятора второго байта команды и признака С (А)<-(А)-В2-(С). Операции инкремента и декремента Команды инкремента и декремента {incremental и decremental instruction) производят увеличение или уменьшение значения со- держимого регистров на единицу. 255
INR R — увеличение содержимого регистра на 1 (R)+1->(R). INX В (D, Н, SP) — увеличение содержимого пары регистров ВС (DE), (HL), (SP) на 1. DCR R — уменьшение содержимого регистра R на 1 (R)—1 —>(R). DCX В (D, Н, SP) — уменьшение содержимого пары регист- ров ВС (DE), (HL), (SP) на 1. Команды поразрядной обработки данных Обработка данных (data pricessing) — систематическое выпол- нение операций над данными. Логические команды Логическая команда (logical instruction) определяет выполнение логической операции. ANA R — операция И между содержимым аккумулятора и со- держимым регистра (A)<-(A)a(R). ANI_B2 — операция И между содержимым аккумулятора и вто- рым байтом команды (А)«-(А)лВ2. ORA R — операция ИЛИ между содержимым аккумулятора и содержимым регистра R (А)<— (A)v(R). ORI_B2 — операция ИЛИ между содержимым аккумулятора и вторым байтом команды (A)<-(A)vB2. XRA R — операция ИЛИ —НЕ между содержимым аккумуля- тора и содержимым регистра R (A)<-(A)v(R). XRI_B2 — операция ИЛИ —НЕ междусодержимым аккумуля- тора и вторым байтом команды (A)«-(A)vB2. СМА — инверсия содержимого аккумулятора (А)<-(А). Команды сравнения Сравнение (comparison) — сопоставление содержимого двух обла- стей памяти с целью установления их идентичности или различия. CMP R — операция (A)-(R); если (A)=(R), то Z=1; если (A)<(R), то С=1. СР1_В2 — операция (А)-В2; если (А)=В2, то Z=l; если (А)<В2, то С=1. Команды сдвига Сдвиг (shift) — одновременное смешение всех элементов поля данных в прямом или обратном направлении без изменения по- рядка их следования и с сохранением границ поля. RLC — сдвиг влево (каждый бит сдвигается на один разряд влево, а седьмой бит переносится в нулевой разряд и одновре- менно записывается в признак С) Dm->Dm+l, D7-*D0, D7-»C. 256
RRC — сдвиг вправо (каждый бит сдвигается на один разряд вправо, а нулевой бит переносится в седьмой бит и одновременно записывается в признак С) Dm+l-»Dm, D0-»D7, D0->C. RAL — сдвиг влево через перенос (каждый бит сдвигается на один разряд влево, седьмой бит записывается в признак С, а бит из С записывается в нулевой разряд) Dm-»Dm+l, D7-»C, C->D0. RAR — сдвиг вправо через перенос (каждый бит сдвигается на один разряд вправо, нулевой бит записывается в признак С, а бит из С записывается в седьмой разряд) Dm+l->Dm, D0-»C, C-»D7. Команды передачи управления Команда передачи управления (Jump (branch) instruction) опреде- ляет передачу управления новой последовательности команд вы- полняемой программы. Команды безусловного перехода Команда безусловного перехода (unconditional jump (unconditional branch) instruction) определяет безусловный переход, т.е. это ко- манда безусловного ветвления. JMP_B2_B3 — запись информации из второго и третьего бай- тов команды в счетчик команд (от jump — перейти). PCHL — запись содержимого пары регистров HL в счетчик команд. Команды условного перехода Команда условного перехода (conditional jump instruction) опре- деляет условный переход и условия, которые должны быть удов- летворены, чтобы условный переход произошел. JNC — если признак Z = 0 (от jump on not carry — перейти по отсутствию переноса). JC — если признак Z = 1 (от jump on carry — перейти по перено- су, т.е. при появлении переноса в старшем разряде результата). JNZ — если признак С = О, JZ — если признак С = 1, JPO — если признак Р = О, JPE — если признак Р = 1, JP — если признак S = О, JM — если признак S = 1, перейти по адресу, записан- ному во втором и третьем бай- * тах команды, иначе перейти к следующей команде. Команды вызова Команда вызова (call instruction) осуществляет вызов стандарт- ной подпрограммы или программы пользователя. Вызов программы (program call) — последовательность действий операционной системы, инициируемая командой пользователя и 9 Нарышкин 257
состоящая из поиска библиотеки на томе, поиска раздела данной библиотеки, в котором размещена программа, и загрузки про- граммы в основную память. Команды условного вызова подпрограммы Команда условного перехода (conditional jump instruction) опреде- ляет условный переход и условия, которые должны быть удовлет- ворены, чтобы условный переход состоялся. CNZ— если Z = 0, CZ — если Z = 1, CNC— если С = 0, » перейти к подпрограмме с началь- СС — если С = 1, ным адресом, указанным во втором СРО— если Р = 0, и третьем байтах команды, иначе СРЕ — если Р = 1, перейти к следующей команде. СР — если S = 0, СМ — если S - 1, «> Команда безусловного вызова подпрограммы CALL_B2_B3 — вызов подпрограммы с начальным адресом, записанным во втором и третьем байтах команды. Команды возврата Команда возврата (return instruction) осуществляет выход из подпрограммы и возврат в вызывающую программу. Команда безусловного возврата из подпрограммы RET Команды условного возврата из подпрограмм RNZ- RZ - RNC- RC - RPO— если если если если если Z = 0, Z = 1, с = о, с= 1, Р = 0, > возвратиться к команде, следующей за командой вызова подпрограммы, иначе продолжить выполнение под- RPE - если р= 1, программы. RP - если s = о, RM - если S=l, «< Команды операций со стеком Стек, (stack) — структура данных, в которой новый элемент всегда записывается в ее начало (вершину) и очередной читае- мый элемент также выбирается из ее начала. Здесь используется 258
принцип «последним пришел — первым вышел». Классический пример стека — магазин пистолета. PUSH B(D,H) — запись содержимого регистровой пары ВС (DE,HL) в стек (B,D,H)->[SP-1], (C,E,L)->[SP-2], (SP)=(SP)-2. PUSH PSW — запись слова состояния в стек (A)->[SP-1] (F)->[SP-2], (SP)=(SP)-2. POP B(D,H) — запись из стека в регистровую пару BC(DE,HL) [SP]—>(C,E,L), [SP+1]->(B,D,H), (SP)=(SP)+2. POP PSW — запись слова состояния из стека [SP]—>(F), [SP+1]^(A), (SP)=(SP)+2. Команды управления микропроцессором Команда управления (управляющая команда, control command) предназначена не для обработки данных, а для организации вы- числительного процесса. СМС — инверсия признака С (С)->(С). STC — запись 1 в признак С 1->(С). EI — разрешение прерываний. DI — запрет прерываний. NOP — команда «нет операции». HLT — останов (halt (breakpoint) instruction) определяет окон- чание выполнения машинной программы. Ввод-вывод через порты МПС осуществляется специальными командами микропроцессора: IN ADDR и OUT ADDR, где ADDR — адрес внешнего устройства. Так как адрес внешнего устройства указывается в одном байте, микропроцессор может обмениваться информацией не более чем с 256 внешними устройствами. Число различных команд микропроцессора составляет 78, и для них зарезервировано 78 имен, перечисленных ранее. Многие базовые команды из этого числа порождают несколько различных кодов операций, поэтому число кодов команд составляет 244. Команды выполняются микропроцессором за 4 ... 18 тактов. Для подавляющего числа команд число тактов есть величина постоян- ная, однако существуют команды, для которых оно может ме- няться. Такими являются команды условного вызова и возврата из подпрограмм. Число тактов в них зависит от того, выполняется условие или нет. Если условие выполняется, длительность про- цесса увеличивается. 18.3. Расширенные наборы команд микропроцессоров К настоящему времени разработано много команд, дополняю- щих те, которые были указаны ранее. Приведем команды, допол- 259
няющие и корректирующие предыдущий список, не претендуя на абсолютную их полноту из-за ограниченности объема данной книги. Это команды для операций с целыми числами. Команды пересылки данных Пересылка данных без преобразования CMOVcc — условная пересылка. РОРА — извлечение из стека значений всех 16-битных регист- ров общего назначения. POPAD — извлечение из стека значений всех 32-битных реги- стров общего назначения. PUSHA — помещение в стек значений всех 16-битных регист- ров общего назначения. PUSHAD — помещение в стек значений всех 32-битных регис- тров общего назначения. BSWAP — перестановка байтов. Пересылка данных с преобразованием MOVSX — пересылка с расширением знака. MOVZX — пересылка с расширением нулями. Команды работы с сегментными регистрами LDS — загрузка полного указателя в DS. LES — загрузка полного указателя в ES. LFS — загрузка полного указателя в FS. LGS — загрузка полного указателя в GS. LSS — загрузка полного указателя в SS. Арифметические операции Операции с обменом XADD — обмен и сложение. CMPXCHG — сравнение и обмен. CMPXCHG8B — сравнение и обмен восьми байтов. Изменение разрядности CWD — преобразование слова в двойное слово. CDQ — преобразование двойного слова в учетверенное слово. CBW — преобразование байтов в слово. CWDE — преобразование слова в двойное слово. 260
Команды двоичной арифметики DIV — деление. DEC — декремент. ID IV — деление со знаком. INC — инкремент. IMUL — знаковое умножение. MUL — беззнаковое умножение. NEG — изменение знака. Команды десятичной арифметики AAA — ASCII коррекция после сложения. AAD — ASCII коррекция АХ перед делением. ААМ — ASCII коррекция АХ после умножения. AAS — ASCII коррекция после вычитания. DAA — десятичная коррекция AL после сложения. DAS — десятичная коррекция AL после вычитания. Логические операции и сдвиги Логические операции AND — логическое И. NOT — двоичная инверсия. OR — логическое ИЛИ. XOR — логическое Исключающее ИЛИ. Команды сдвига и переноса SAL — арифметический сдвиг влево. SAR — арифметический сдвиг вправо. SHL — логический сдвиг влево. SHLD — логический сдвиг влево двойной точности. SHR — логический сдвиг вправо. SHRD — логический сдвиг вправо двойной точности. RCL — циклический сдвиг влево через перенос. RCR — циклический сдвиг вправо через перенос. ROL — циклический сдвиг влево. ROR — циклический сдвиг вправо. Операции с битами и байтами ВТ — проверка бита. BTS — проверка и установка бита. ВТС — проверка и инверсия бита. BTR — проверка и сброс бита. 261
BSF — сканирование битов вперед. BSR — сканирование битов назад. SETcc — установка байта при заданном условии. TEST — логическое сравнение. Операции управления Команды перехода Jcc — условный переход. JMP — переход. RET — возврат из процедуры. RETN — ближний возврат из процедуры. RETF — дальний возврат из процедуры. Команды прерывания JRET — возврат из прерывания при 16-битном размере опе- ранда. JRETD — возврат из прерывания при 32-битном размере опе- ранда. INT —*Ьызов процедуры прерывания. INT3 — вызов процедуры прерывания в контрольной точке. INTO — вызов процедуры прерывания при переполнении. Команды организации циклов LOOP — управление циклом со счетчиком в ЕСХ. LOOPcond — условное управление циклом со счетчиком в ЕСХ. Команды поддержки языка высокого уровня ENTER — создание кадра стека для параметров процедуры. BOUND — проверка индекса на выход за границы массива. LEAVE — выход из процедуры высокого уровня. Команды работы со строками MOVS — пересылка данных из строки в строку. MOVSB — пересылка байта из строки в строку. MOVSW — пересылка слова из строки в строку. MOVSD — пересылка двойного слова из строки в строку. CMPS — сравнение строковых операндов. CMPSB — сравнение строк байтов. CMPSW — сравнение строк слов. CMPSD — сравнение строк двойных слов. 262
SCAS — сравнение строки данных. SCASB — сравнение строки байтов. SCASW — сравнение строки слов. SCASD — сравнение строки двойных слов. LODS — загрузка строкового операнда. LODSB — загрузка строкового операнда в AL. LODSW — загрузка строкового операнда в АХ. LODSD — загрузка строкового операнда в ЕАХ. STOS — сохранение элемента строки данных. STOSB — сохранение элемента строки байтов. STOSW — сохранение элемента строки слов. STOSD — сохранение элемента строки двойных слов. REP — повторение следующей строковой операции. REPE — повторение следующей строковой операции, если равно. REPZ — повторение следующей строковой операции, если нуль. REPNE — повторение следующей строковой операции, если не равно. REPNZ — повторение следующей строковой операции, если не нуль. INS — ввод из порта в строку. INSB — ввод байта из порта в строку. INSW — ввод слова из порта в строку. INSD — ввод двойного слова из порта в строку. OUTS — вывод строки в порт. OUTSB — вывод байта в порт. OUTSW — вывод слова в порт. OUTSD — вывод двойного слова в порт. Команды работы с флагами CLC — очистка флага переноса. CLD — очистка флага направления. CLI — запрет внешних прерываний (очистка флагов прерыва- ний). СМС — инверсия флага переноса. LAHF — загрузка флагов в регистр АН. SAHF — запись содержимого АН в регистр FLAGS. STC — установка флага переноса. STD — установка флага направления. STI — разрешение внешних прерываний (установка флагов прерываний). PUSHF — помещение в стек значения регистра FLAGS. PUSHFD — помещение в стек значения регистра FLAGS. POPF — восстановление из стека регистра FLAGS. POPFD — восстановление из стека регистра FLAGS. 263
Команды дополнительных возможностей управления процессором CPUID — идентификация CPU. LEA — загрузка эффективного адреса. NOP — нет операции. UD2 — неопределенная операция. XLAT — табличное преобразование. XLATB — табличное преобразование байта. Контрольные вопросы 1. Какие значения имеет термин команда^ 2. Какую длину имеет команда в битах? 3. Из каких частей состоит команда? 4. На какие группы делятся команды микропроцессора? 5. Каково назначение команд пересылки и загрузки данных? 6. Какие операции производятся командами обмена данными? 7. Какие операции осуществляются арифметическими командами? 8. Какие операции определяют логические команды? 9. В чем заключаются операции, реализуемые по командам сдвига? 10. Чем различаются команды условного и безусловного переходов? 11. Для чего существуют команды условного и безусловного вызовов программы или подпрограммы? 12. В чем смысл (уманд условного и безусловного возвратов из под- программ в вызывающую программу? 13. Что такое стек и какие существуют команды операций со стеками? 14. Для каких целей предназначены команды управления микропро- цессором? ГЛАВА 19 ШИННЫЕ ПРИЕМОПЕРЕДАТЧИКИ 19.1. Многорежимные буферные регистры Теоретически микропроцессор способен обмениваться инфор- мацией с большим количеством различных внешних устройств, подключаемых к его магистралям адреса и данных. Однако на прак- тике выходы МП не обладают достаточной для этого нагрузочной способностью, что связано с трудностью обеспечения удовлетво- рительного теплового режима БИС при мошных выходных каска- дах [37]. Для увеличения нагрузочной способности магистралей исполь- зуются специальные магистральные усилители на микросхемах средней степени интеграции, называемые обычно многорежим- ными буферными регистрами (МБР), шинными драйверами (ШД). или шинными формирователями. На рис. 19.1 представлено обо- 264
значение одной из таких микросхем — МБР К.589ИР12, имеющей следующие выводы: DI (data input) — вход данных; DO (data output) — выход данных; STB (strobe) — строб сопровождения входных данных; CLR (clear) — очистка; CS (chip select) — выбор микросхемы (кристалла); MD (mode) — режим работы; GRD (ground) — общая шина (земля); INT (interrupt) — запрос прерывания. Загрузка данных в МБР осуществля- ется с входов DI внутренним сигналом записи WR (write), формируемым под воз- действием входных сигналов микросхе- мы в соответствии с логическим выра- жением IVR =CS)-CS2-MD v STB-MD, (19.1) а результат выдается с выходов DO по внутреннему сигналу разрешения EN (enable), определяемому соотношением 3 DI, MBR DO0 4 5 — DO, 6 7 — Dh do-. 8 9 — D/з DO; —10 16 — пц DOt —'15 18 — Dh DO; 17 20 — Dk DOb —19 22— DP DO, — 21 11 — STB 14—< CLR 1—( >CS1 13 CSl INT >—23 2 — MD 24 +5V 12 GRD Рис. 19.1. Условное графи- ческое обозначение мно- горежимного буферного регистра К589ИР12 EN = MD v CSI-CS2. (19.2) Нетрудно заметить, что загрузка и выдача данных могут осу- ществляться одновременно, например при MD = 1 и D51 DS2 = 1, когда в соответствии с (19.1) и (19.2) WR=EN= 1. При EN = 0 выходы DO находятся в третьем (высокоомном) состоянии. Значение выходного сигнала запроса прерывания INT опреде- ляется условием INT = STB v CSl CS2. (19.3) Одним из вариантов использования рассмотренной микросхе- мы является буферный регистр, формирующий сигнал для маги- страли данных более мощный, чем в магистрали данных микро- процессора. Для этого на входы DI подаются сигналы с магистра- ли данных микропроцессора; на входы STB и CLR — логическая единица; на входы 051 и MD — логический нуль. С выходов DO снимаются сигналы для внешней магистрали данных MD. При таких сигналах на входах в соответствии с (19.1) внут- ренний сигнал записи IVR, равный 1, постоянно разрешает за- пись данных в МБР с магистрали данных MD. Выдача же этих данных на выходную магистраль MD разрешена только при еди- ничном значении переключающего сигнала SW (switch), обеспе- 265
чивающего согласно (19.2) значение EN- 1. В противном случае (при SW=Q) выходы порта DO находятся в высокоомном (тре- тьем) состоянии. 19.2. Драйверы двунаправленной магистрали Драйвер двунаправленной магистрали (рис. 19.2) обеспечи- вает передачу данных слева направо (с магистрали данных мик- ропроцессора MD1 на магистраль данных внешнюю MD2) при SW = 1, когда WR = EN = 1 (для MBR\) и WR = EN = 0 (для MBR2), и справа налево (с магистрали внешней данных MD2 на магистраль данных микропроцессора MD1) при SW= 0, ког- да WR = EN = 0 (для MBRI) и WR = EN = 1 (для MBR2). Для организации двунаправленной магистрали данных мик- ропроцессорной системы выпускаются двухпортовые СИС, на- пример, шинные формирователи (ШФ) КР580ВА86, показан- ные на рис. 19.3 (BUBR — от bidirectional unibus buffer register), и KP580BA87, отличающийся от него только инверсией выходных сигналов порта РВ (от port В). Порт РВ обладает большей нагрузочной способностью, чем порт РА (от port А), поэтому обе микросхемы (КР580ВА86 и КР580ВА87) подключаются портом РА к выводам микропроцессора. При SW= 1 информация передается в направлении от порта РА к порту РВ, а при SW- 0 — в обратном направлении. в UBR РА0 РА, РА, РА, РА, PAS РА* РА, SW 1 — 2 — 3 — 4 5 6 7 8 11----' +5 И 20 — 10--GND Рис. 19.3. Условное графи- ческое обозначение дву- направленного шинного формирователя КР580ВА86 ---15 ---14 ---13 —12 Р5о ---19 РВ, ---18 РВ2 ---17 РВ,----16 РВь PPS РВ6 РВ, Рис. 19.2. Схема драйвера двунаправлен- ной магистрали данных 266
Единичным значением входного сигнала CS выходы обоих пор- тов переводятся в высокоомное состояние. Контрольные вопросы 1. Для чего служат и какие функции выполняют буферные регистры? 2. Составьте таблицу истинности многорежимного буферного регист- ра К589ИР12. 3. По формулам (19.1) ... (19.3) синтезируйте схему многорежимного буферного регистра К589ИР12. 4. Составьте таблицу истинности буферной схемы с коммутируемым выходом. 5. Объясните работу схемы, изображенной на рис. 19.2. 6. Объясните назначение всех выводов микросхемы, изображенной на рис. 19.3. 7. Каковы порты микросхемы КР580ВА86 и почему их подключают к тем или иным магистралям? ГЛАВА 20 АРИФМЕТИКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО 20.1. Структура арифметико-логического устройства Рассмотрим арифметико-логическое устройство К1800ВС1 (рис. 20.1, 20.2, табл. 20.1) из микропроцессорной серии К1800 [24], уже упоминавшейся в подразд. 17.4. БИС АЛУ К.1800ВС1 (за исключением двух регистров памяти, выполняющих функции фиксатора и аккумулятора) состоит из следующих комбинационных цифровых устройств: мультиплек- соров (А, X, У, 7, аккумулятора и сдвигателя), дешифраторов (О и /), формирователя кодов, сумматора, узла управления шиной ОБ, сдвигателя. С ее помощью можно выполнять 28 логических операций и 40 арифметических (23 — с числами, представлен- ными в двоичном коде, и 17 — с числами в двоично-десятичном коде). Рассмотрим более подробно функции элементов устройства в зависимости от управляющих сигналов. 20.2. Формирование операндов Хи Yсумматора Сумматор производит действия над операндами X и Y, кото- рые формируются из сигналов, поступающих по шинам АВ, ОБ и из аккумулятора. 267
Рис. 20.1. Структурная схема АЛУ К1800ВС1 268
Мультиплексор А в зависимости от управляющих сигналов COS и С Об, подаваемых на дешифратор О, подключает информацию, поступа- ющую по шине АВ или из аккуму- лятора, к входам мультиплексоров X и Y. Сигналы COS и СОб через де- шифратор О определяют место при- ема информации из аккумулятора (табл. 20.2). При COS = СОб = 0 информация с выхода аккумулятора блокируется узлом управления шиной ОВ. При COS = 0, СОб = I информация из акку- мулятора через соответствующий вход мультиплексора Y поступает на входы Y сумматора. При COS = 1, СОб = 0 мультиплексоры А и Y заблокирова- ны по аккумуляторным входам, и ин- формация передается в шину ОВ. На- конец, при COS = 1, СОб = 1 мульти- плексор А направляет информацию аккумулятора на входы А мультиплек- соров X и Y. Сигналы COQ и СО1 управляют работой мультиплексора Y, через который данные от разных источ- ников поступают на входы Y сум- матора (табл. 20.3). АВ ALU IB 29 0 0 —13 32 1 1 14 34 2 2 15 30 3 3 16 СО OB 31 0 0 — 23 38 1 1 22 40 2 2 — 21 35 3 3 — 20 39 — 4 LBS 8 33 5 MBS — 9 31 — 6 PC — 2 45 7 CRO — 3 28 8 CRG 4 19 — 9 GRP 5 41 10 OF 6 42 11 PR —10 43 12 ZD —11 47 13 Uss? t—7,17 46 14 uss\ s—12,36 18 15 UcCV !—1,24 27 SINI Ucc? i—25,48 26 SIN2 44 CRI Рис. 20.2. Условное графичес- кое обозначение БИС АЛУ К1800ВС1 Таблица 20.1 Обозначение и назначение выводов БИС АЛУ К1800ВС1 и сигналов, используемых в ней Обозначения Номера выводов Назначение ОБО, OB\, OB2, ОВЗ 23, 22, 21, 20 Шина ОВ. Вход/выход разрядов 0 ... 3 IB0, IB\, 1B2, IB3 13, 14, 15, 16 Шина IB. Вход/выход разрядов 0 ... 3 ABO, AB\, AB2, AB3 29, 32, 34, 30 Шина АВ. Вход разрядов 0 ... 3 COO, COl, CO4, 37, 38, 39 Управление мультиплексором Y CO2, CO3 40, 35 Управление мультиплексором X CO5, CO6 33, 31 Управление дешифратором О 269
Окончание табл. 20.1 Обозначения Номера выводов Назначение СО1 45 Управление мультиплексором сдвигателя сок 28 Управление мультиплексором 1 СО9, СО15 19, 18 Управление дешифратором I СОЮ 41 Управление режимом сложение/вычитание СОИ 42 Управление режимом двоичный/двоично-десятичный СОЮ 43 Управление режимом арифметический/логический СОЮ, СОЮ 47, 46 Управление сдвигателем CRG 4 Выход сигнала группового переноса CRI 44 Вход переноса CRO 3 *Выход переноса CRP 5 Выход сигнала разрешения группового переноса LBS 8 Вход/выход младшего разряда сдвигателя MBS 9 Вход/выход старшего разряда сдвигателя OF 6 Выход сигнала переполнения PC 2 Выход сигнала четности переноса PR 10 Выход сигнала четности результата SYN\ 27 Вход синхронизации аккумулятора SYN2 26 Вход синхронизации фиксатора Uqc\ 1, 24 Напряжение источника питания -5,2 В Uca 25, 48 Напряжение источника питания -2,0 В Uss 12, 36 Напряжение источника питания 0 В Usso 7, 17 Напряжение источника питания 0 В для выходных эмиттсрных повторителей ZD 11 Выход сигнала проверки на нуль 270
Таблица 20.2 Таблица истинности сигналов СО5 и СО6 СО 5 СО6 Место приема информации из аккумулятора 0 0 Блокировка передачи узлом управления шиной ОВ 0 1 Входы /сумматора при COO = СО1 = 0 1 0 Шина ОВ 1 1 Входы А мультиплексоров Хи Y Таблица 20.3 Таблица истинности сигналов СОО и СО1 при СО5 • СО6 = 0 СОО СО\ Источник информации для входов /сумматора 0 0 Логический нуль 0 1 Выходы фиксатора (шина ОВ: извне или из аккумулятора) 1 0 Выходы мультиплексора А (шина АВ или аккумулятор) 1 1 Логическая единица Таблица 20.4 Таблица истинности управляющего сигнала СО4 СО4 СОО СО1 Приращение 0 0 0 +2, в двоичном коде 0010 0 1 1 -2, в двоичном коде 1110 1 * * 0, в двоичном коде 0000 Здесь и в дальнейшем символом (*) обозначен факультатив. Сигнал СО4, управляющий мультиплексором Y. позволяет при- бавлять или вычитать константу 2 (табл. 20.4.). В многоразрядном АЛУ, содержащем несколько четырехразряд- ных секций, вход СО4 обычно используется только в БИС, обра- батывающей младшие разряды слова или байта. В общем случае с помощью этого сигнала можно организовать прибавление или вы- читание таких констант, как 2, 32, 34, 512, ... , т.е. ±£CO4fc -24*-3, *=i где к — номер четырехразрядной секции. Фиксатор представляет собой регистр памяти на .О-триггерах, синхронизируемых потенциалом сигнала SYN1. Пришедшая по 271
Таблица 20.5 Таблица истинности сигналов СО2 и СОЗ СО2 СОЗ Выход мультиплексора X 0 0 ОА(О0 АО, О1-А1, 02 А2, 03 АЗ) 0 1 О (выход фиксатора) 1 0 А (выход мультиплексора А) 1 1 OvA(OOvAO, OlvAl, 02 v А2, ОЗ v АЗ) шине ОВ информация запоминается фиксатором и подается на мультиплексоры Д' и К Сигналы СО2 и СОЗ, подаваемые на мультиплексор X, управ- ляют подачей информации на входы X сумматора (через форми- рователь кодов) с шины ОВ (через фиксатор) или с выхода муль- типлексора А, а также обеспечивают маскирование этих данных, объединяя их по И (для маскирования единиц) или по ИЛИ (для маскирования нулей) (табл. 20.5). Маску из лог. 0 (при СО2 = СОЗ =tl для изменения цифры с 1 на 0) или лог. 1 (при СО2= СОЗ = 1 для изменения цифры с 0 на 1) можно накладывать на любой разряд или группу разрядов шин А или О. Наложение маски до сумматора позволяет за один проход осуществить маскирование и сравнение внутри БИС. Сигналы СОЮ и СО11, управляющие формирователем кодов, подготавливают данные для работы сумматора (табл. 20.6). Из табл. 20.6 следует, что сигнал СОЮ определяет арифмети- ческие операции: сложение (при СОЮ = 1) или вычитание (при СОЮ = 0), а сигнал СОН — систему счисления: двоичную (при СО11 = 1) и двоично-десятичную (при СО11 = 0). Причем для вы- читания в двоичном коде данные инвертируются, образуя допол- нение до единицы, тогда как для вычитания в двоично-десятич- ном коде формируется код в виде дополнения до девяти. По таблице истинности (см. табл. 20.6) можно с помощью ди- аграмм Вейча получить в минимизированном виде уравнения для каждого разряда преобразователя кодов: У 0 = СОЮ Ф MUXXOr. XI = СОЮ • MVXX1 v СОЮ • (СО11 Ф MVXXI); Х2 = СОЮ MUXX2 v СОЮ • MUXX2 • СО11 v мСОЮ-СОЛ(ЛПЖПФЛ/СС¥2); ХЗ = СОЮ MUXX3 V СОЮ • MUXX3 СО11V V СОЮ СОЙ • MUXXI MUXX2 миххз. 272
Таблица 20.6 Таблица истинности формирователя кодов Число в десятич- ном коде Прямой код (СОЮ = 1) Обратный код (СОЮ = 0) Двоичное сложение СО11 = 1 Двоично-десятич- ное сложение СО11 = 0 Двоичное вычитание СОН = 1 Двоично-десятич- ное вычитание СО11 = 0 0 0000 0000 1111 1001 1 0001 0001 1110 1000 2 0010 0010 1101 0111 3 ООП ООН 1100 ОНО 4 0100 0100 1011 0101 5 0101 0101 1010 0100 6 ОНО оно 1001 ООН 7 0111 0111 1000 0010 8 1000 1000 0111 0001 9 1001 1001 оно 0000 10 1010 * 0101 * И 1011 * 0100 * 12 1100 * ООН * 13 1101 * 0010 * 14 1110 * 0001 * 15 1111 * 0000 * Эти уравнения и послужили основой для синтеза схемы фор- мирователя кодов. 20.3. Сумматор АЛУ Сигнал СО12 управляет режимом работы четрехразрядного сум- матора. При СО12 = 1, сумматор выполняет арифметические опе- рации (табл. 20.7); при СО12 = 0 — логические (табл. 20.8). _Сумматор формирует сигналы F, PC, CRO, CRG, CRP, X3-Y3 иЛГЗ-КЗ. Четырехразрядный сигнал F, представляющий собой результат суммирования, поступает на входы мультиплексора-сдвигателя. 273
Таблица 20.7 Сводная таблица истинности АЛУ при выполнении арифметических операций Мульти- плексор У Мульти- плексор X Кон- станта +2 Форми- рова- тель кодов Акку- му- лятор Выход сумматора F Двоичная система Двоично- десятичная система СОО СО1 СО2 СОЗ СО4 сою СО5х хСОб СО11 = 1 COl 1 = 0 1 0 0 1 1 1 0 АВ + ОВ + CRI AB + AB + CRI 1 0 0 1 1 0 0 АВ+ ОВ+ CRI AB + Доп. 9OB + + CRI 0 1 1 0 1 0 0 ОВ + АВ + CRI OB + Доп.9ЛД + + CRI 0 0 1 0 1 1 0 АВ + CRI AB + CRI 0 0 0 1 1 1 0 ОВ + CRI OB + CRI 0 0 1 0 1 0 0 АВ+ CRI Доп. 9AB + CRI 0 0 0 1 1 0 0 OB + CRI Доп. 9OB+ CRI 1 1 1 0 1 1 0 AB- 1 + CRI * 1 1 0 1 1 1 0 OB - 1 + CRI * 1 1 1 0 0 1 0 AB - 2 + CRI * 1 1 0 1 0 1 0 OB-2 + CRI * 0 0 1 0 0 1 0 AB+ 2 + CRI AB + 2 + CRI 0 0 0 1 0 1 0 OB+ 2+ CRI OB+2 + CRI 1 0 1 0 1 1 0 AB + AB + CRI AB + AB+ CRI 0 1 0 1 1 1 0 OB + OB + + CRI OB + OB + CRI 0 0 1 0 1 1 1 ACC+AB+ + CRI ACC + AB+ CRI 0 0 0 1 1 1 1 ACC+ OB + + CRI ACC + OB+ CRI 0 0 1 0 1 0 1 ACC + AB + + CRI ACC + Доп. 9AB + +CRI 0 0 0 1 1 0 1 ACC+OB + + CRI ACC + Доп. 9OB + + CRI 0 0 0 0 1 ] 1 ACC + AB-OB + + CRI + CRI 0 0 0 0 1 0 1 ACC + AB-OB + + CRI ACC + Доп. 9 (717? x x OB) + CRI 0 0 1 1 1 1 1 ACC + AB + +OB+ CRI * 0 0 ] 1 1 0 1 ACC+AB + +OB+ CRI * 274
Таблица 20.8 Сводная таблица истинности АЛУ при выполнении логических операций (СО4=СО11 = 1, СО12 = 0) Мультиплексор Y Мультиплексор X Формиро- ватель кодов Аккуму- лятор Выход сумматора СОО СО1 СОЗ СОЗ сою СО5, СОб F 0 1 0 1 1 0 Лог.О 0 0 1 0 1 0 АВ 0 0 0 1 1 0 ОВ 0 0 1 0 0 0 АВ 0 0 0 1 0 0 ОВ 0 0 1 1 1 0 АВу ОВ 0 1 0 0 0 0 АВ у ОВ 1 0 0 0 0 0 АВу ОВ 0 0 0 0 1 0 АВ ОВ 0 1 1 1 1 0 АВ- ОВ 0 1 0 0 1 0 АВ- ОВ 0 1 1 0 I 0 АВ® ОВ 0 1 1 0 0 0 АВ® ОВ 0 0 0 0 0 0 АВ- ОВ 0 0 1 1 0 0 АВу ОВ 0 1 0 1 0 0 Лог.1 1 0 1 0 1 1 АСС- АВ 0 1 0 1 1 1 АСС- ОВ 1 0 1 0 0 1 ACCуАВ 0 1 0 1 0 1 ЯСС v ОВ 0 0 1 0 1 1 АСС® АВ 0 0 1 0 0 1 АСС ©АВ 0 0 0 1 1 1 АСС© ОВ 0 0 0 1 0 1 АСС® ОВ 0 0 0 0 1 1 АСС© АВ- ОВ 0 0 1 0 0 1 АСС© АВ - ОВ 0 0 1 1 1 1 АСС® (АВу ОВ) 0 0 1 1 0 1 АСС© АВ у ОВ 275
При логических операциях блокируется распространение сиг- налов переноса между разрядами внутри сумматора и реализуется функция Суммирования по модулю два (неравнозначности, Ис- ключающее ИЛИ) над сигналами с каждой парой его входов: 77О = А'О® КО, ... , F3 = X3© КЗ. Выход сигнала контроля четности переноса PC используется для контроля правильности работы АЛУ. Один контрольный раз- ряд позволяет обнаружить наличие ошибки в одном разряде или комбинацию ошибок в нечетном числе разрядов. Сигнал PCпред- ставляет собой сумму по модулю два сигналов переноса отдель- ных разрядов внутри БИС: РС= CRI© СО® Cl © С2. Сигнал выхода переноса CRO создается старшим разрядом сум- матора и при последовательной организации переноса подается на вход CR1 секции старших разрядов АЛУ. Сигнал CRO- 1 свиде- тельствует о том, что результат, полученный в сумматоре БИС, превышает максимально возможное четырехразрядное число, а именно: 15 (1111) в двоичной или 9 (1001) в двоично-десятичной системе счисления. Структура АЛУ, как и остальных БИС серии К1800, позволяет наращивать разрядность с кратностью, равной четырем. Наиболее простым способом наращивания разрядности является последо- вательный. Таким образом можно объединять одноразрядные пол- ные сумматоры (см. гл. 10). При большом числе разрядов (да > 4...8) длительности задер- жек оказываются весьма значительными, поэтому для повыше- ния быстродействия в сумматорах обычно используются ускорен- ные способы формирования переноса. В сумматоре АЛУ KI 800ВС1 выходной сигнал переноса CRO, получаемый на выходе четвер- того разряда, образуется именно ускоренным методом. Входной сигнал переноса CR1 применяется для объединения четырехраз- рядных БИС в многоразрядную систему. Сигналы группового переноса CRG (от англ, carry of groups) и разрешения группового переноса CRP (от англ, carry prompting) используются в качестве входных в секциях ускоренного переноса. Сигналы АЗ-УЗ и X3-Y3 необходимы для формирования в сдвигателе сигнала переполнения OF (от англ, overflow). Сигнал переполнения ОТ7 образуется при операциях двоичного сложения или вычитания, а также в сдвигателе при сдвиге в сто- рону старших разрядов (влево) как результат выполнения функ- ции Исключающее ИЛИ над двумя старшими разрядами. Признак переполнения OF формируется только при арифме- тических операциях в дополнительном коде и показывает, что превышена максимально возможная длина слова или байта. В сис- 276
теме используется признак переполнения только в той БИС, в которой расположен старший разряд слова. В дополнение к при- знаку переполнения, вырабатываемому при работе сумматора, сигнал переполнения можно получить в сдвигателе при сдвиге влево в сторону старшего разряда, когда изменяется содержимое знакового разряда. Обычно признаки переполнения, формируе- мые в сумматоре и сдвигателе, объединяются вместе по ИЛИ так, что наличие любого из них вызывает появление общего признака переполнения. Исключение составляет случай, когда выходы сдви- гателя подключены к аккумулятору. При этом признак перепол- нения, формируемый сумматором, отключается от выхода OF. При выполнении двоично-десятичных операций признак переполне- ния не формируется. 20.4. Сдвигатель АЛУ Мультиплексор определяет источник информации для сдвигате- ля. Сигнал СО7 управляет мультиплексором сдвигателя: при СО7 = 0 на входы сдвигателя поступает информация из аккумулятора; при С07 = 1 — из сумматора. Функции сдвигателя определяют сигна- лы СО13 и СО14 (табл. 20.9). Сдвиг информации влево происходит на один разряд по на- правлению к старшему разряду. Логический сдвиг информации вправо происходит на один разряд по направлению к младшему разряду. Эта операция ис- пользуется во всех БИС, образующих многоразрядную систему, за исключением тех, которые оперируют со старшими разрядами слова или байта. При арифметическом сдвиге вправо знак числа, выраженного в дополнительном (дополнение до 2) или обратном (дополнение до 1) коде, должен сохраняться в знаковом разряде. Для выполнения сдвигов в нескольких, связанных между со- бой для увеличения разрядности БИС, предусмотрены выводы младшего LBSw старшего MBS разрядов сдвигателя, которые мо- Таблица 20.9 Таблица истинности сдвигателя СО13 СО14 Функция сдвигателя 0 0 Сдвиг влево (в сторону старших разрядов) 0 1 Логический сдвиг вправо 1 0 Отсутствие сдвига 1 1 Арифметический сдвиг вправо 277
гут быть как входными, так и выходными в зависимости от на- правления сдвига. Вывод LBS является входом для сдвига влево и выходом как для логического, так и для арифметического сдвига вправо. Вывод MBS служит входом для логического сдвига вправо и выходом для всех других операций. Такая особенность позволяет использовать MBS в качестве выхода состояния знакового разря- да, являющегося старшим в разрядной сетке устройства. Сигнал контроля четности переноса PR (от англ, parity of result) используется (так же, как и сигнал PC) для выявления ошибок при обработке информации. Сигнал PR представляет собой сумму по модулю два сигналов на выходах сдвигателя: PR = OSQ © 051 © 052 ® 053. Сигнал ZD (от англ, zero definition — определение нуля) форми- руется сдвигатслем для проверки состояния результата на равен- ство его нулю. Проверка осуществляется при логических, двоич- ных и двоично-десятичных операциях, проводимых в сумматоре и сдвигателе. Сигнал ZD определяется выражением ZD = OSO 051 -0S2 053. Этот сигнал, равно как и MBS, используется как сигнал услов- ного перехода при вычислениях по программе. 20.5. Мультиплексор / и мультиплексор аккумулятора Цифровая информация с выхода сдвигателя подастся на муль- типлексор /и мультиплексор аккумулятора. Мультиплексор / обес- печивает выдачу в шину IB информации из сдвигателя или акку- мулятора, а также их отключение от шины. Последнее позволяет принимать с шины IB информацию в аккумулятор, либо выпол- нять системные функции, не относящиеся к данной БИС. Управ- ление режимом работы мультиплексора I производится сигнала- ми С (99 и С СР 5 через дешифратор / и сигналом СО8. Сигнал С08 управления мультиплексором I закрывает (пере- водит в третье состояние) и открывает в нем формирователи сиг- нала для шины IB. Когда С 08 = 1, формирователи открыты, и информация из сдвигателя или аккумулятора выдастся на шину IB. Когда СО8 = 0, формирователи закрыты, и информация извне по шине IB может приниматься в АЛУ. Сигналы СО9 и СО15 управления дешифратором / обеспечи- вают выбор источника информации для выдачи на шину IB и источника данных для аккумулятора. При комбинации сигналов СО9 = С015 = 0 информация на шину IB поступает с выходов аккумулятора, а при всех других комбинациях — с выходов сдви- гателя. 278
В аккумулятор, представля- ющий собой четырехразряд- ный регистр памяти на ^-триг- герах с управлением по поло- жительному перепаду напряже- ния сигналами синхронизации 5УМ, можно записать данные одного из четырех источников в зависимости от сигналов СО9 и СО15 (табл. 20.10), управля- ющих через дешифратор I мультиплексором I и мульти- Таблииа20.10 Таблица истинности аккумулятора СО9 СОТ 5 Источник информации аккумулятора 0 0 Сдвигатель 0 1 Шина ОВ 1 0 Шина IB 1 1 Аккумулятор плексором аккумулятора. При комбинации сигналов СО9 = СО15 = 1 мультиплексор ак- кумулятора осуществляет замыкание выходов аккумулятора на его входы, в результате чего данные будут храниться в аккумуляторе. Новые данные в аккумулятор можно записать, изменив управля- ющие сигналы СО9, СО15 и подав сигнал синхронизации 5KV1. Когда информация передается из аккумулятора в сдвигатель, син- хронизация аккумулятора теряет свое управляющее действие. 20.6. Операции пересылки информации в АЛУ В БИС АЛУ К1800ВС1 могут выполняться пересылки информа- ции как в сдвигатель и аккумулятор, так и из них. Управление пересылками осуществляется сигналами СО5 ... С 09 и СО15. Сиг- налы СО5 и СО6 определяют место, куда попадают данные с вы- хода аккумулятора. С 07 представляет собой сигнал управления сдвигателсм. Сигнал СО8 отпирает и запирает формирователи шины IB. Сигналы СО9 и СО15 определяют источник данных для этих формирователей и аккумулятора. Действие сигналов СО7, СОК, СО9 и СО15 иллюстрируется табл. 20.11. В первых четырех столбцах таблицы показаны все состояния управляющих сигналов, в пятом — описание источников данных для аккумулятора. Источниками данных для аккумулятора служат: сам аккумуля- тор (когда его выходы замкнуты на входы), шина IB, шина ОВ, выход OS результата, полученного в сдвигателе. В шестом столбце таблицы определены источники данных для сдвигателя, которыми могут быть аккумулятор для операций сдвига и функциональные выходы F сумматора. В последнем столбце таб- лицы показано состояние формирователей магистрали IB. Сигнал С 08 = 0 запирает формирователи, при этом на шину IB можно 279
Т аблицавО.Н Сводная таблица истинности сигналов, определяющих источники информации аккумулятора, сдвигателя и состояние формирователей шины IB Сигналы управления Источники информации Состояние формирова- телей IB сдвига- теля формиро- вателя мультиплексоров I и АСС аккуму- лятора сдвига- теля СО! СО8 СО9 СО15 0 0 0 0 OS АСС Закрыты 0 0 0 1 ОВ АСС Закрыты 0 0 1 0 IB АСС Закрыты 0 0 1 1 АСС АСС Закрыты 0 1 0 0 OS АСС АСС 0 1 0 1 ОВ АСС OS 0 1 1 0 IB АСС OS 0 1 1 1 АСС АСС OS 1 0 0 0 OS F Закрыты 1 0 0 1 ОВ F Закрыты 1 0 1 0 IB F Закрыты 1 0 1 1 АСС F Закрыты 1 1 0 0 OS F АСС 1 1 0 1 ОВ F OS 1 1 1 0 IB F OS 1 1 1 1 АСС F OS вводить информацию, не относящуюся к данной БИС. Когда фор- мирователи открыты, на шину IB можно подавать данные из ак- кумулятора либо результаты, полученные в сдвигателе. 20.7. Быстродействие АЛУ В табл. 20.12 приведены некоторые временные характеристики микросхемы К1800ВС1. При оценке быстродействия АЛУ в целом 280
необходимо учитывать задержки в линиях связи, влияние на временные характеристики БИС активных и реактивных нагру- зок, объединений по линиям связи и отклонения питающих на- пряжений от номинальных значений. Длительность фронтов и сре- зов по уровням 20 и 80% логического перепада напряжения мень- ше или равна 5,5 нс по всем выходам. Для ускоренного переноса между группами устройств, обраба- тывающих несколько разрядов данных, формируют сигналы ус- коренного группового переноса: CRI2 = С4 = CRGX CRPl v CRGX CRIf, CRI3 = C8 = CRG2CRP2 v CRG2 CRGx CRPx v CRG2 CRGx CRIx, CRI< = Cl2 = CRG3 CRP3 v CRG3 CRG2 CRP2 v v CRG3 CRG2 CRGx CRPx v CRG3 CRG2 CRGx CRIx, где CRGX, CRPX, CRG2, CRP2, CRG3, CRP3 — сигналы группово- го переноса и разрешения группового переноса на выходах 1, 2 и 3-й групп. Секции ускоренного переноса (см. подразд. 10.2) выпускаются в виде устройств средней степени интеграции. В [24] показана схе- ма организации шестнадцатиразрядного АЛУ с использованием четырех БИС К1800ВС1 и одной СИС 500ИП179. Секции 500ИП179 позволяют организовать ускоренный перенос второго уровня, объе- диняя в 64-разрядном АЛУ шестнадцать БИС К1800ВС1 и пять СИС 500ИП179. Таблица 20.12 Временные характеристики АЛУ К1800ВС1 Вход Путь прохож- дения сигналов Режим работы Функция Задержка распространения сигнала, нс Ши- на IB CRP, CRG CRO OF, ZD, LBS, MBS PC, PR Ши- на OB Шина АВ, шина ОВ Сумма- тор Арифме- тичес- кий Вычита- ние 41,0 21 23,0 39 36 CRI « « Сложе- ние 19,5 — 7,5 17 19 — СОО ... ...СОб, СОЮ ...0012 « « Сложе- ние, вычита- ние 46,5 30 32,0 46 42 281
Продолжение табл. 20.12 Вход Путь прохож- дения сигналов Режим работы Функция Задержка распространения сигнала, нс Ши- на IB CRP. CRG CRO OF, ZD, LBS, MBS PC, PR Ши- на OB SYN2 « « Вычита- ние 43,0 26 27,5 42 39 — LBS, MBS Сдвига- тель Сдвиг вправо — 9,0 — — — — — СОТ, сои, С 014 « Сдвиг влево, вправо — 16,0 — — — — — С09, С015 Прямо Сдвиг, хране- ние — 11,5 — — — — — С08 « Управ- ление — 9,5 — — — — — С 05, СО6 « « — — — — — — 9,5 SYN1 Ши- на AS, сумма- тор Арифме- тичес- кий Вычи- тание, АС С 51,0 38 40,0 43 46 Сумма- тор « Сложе- ние, АС С 47 — — — — — Сдвига- тель СО7 = 0 Много- кратный сдвиг 18,5 — — 19 21 — Прямо СО7 = 0 АСС на шины IB, ОВ 11 — — — — 12 Шина ОВ Форми- рова- тель кодов Логиче- ский Без допол- нений 35 SYN2 Шина АВ, мульти- плексор X « « 43 « « С допол- нением 47 — — — — — 282
Окончание табл. 20.12 Вход Путь прохож- дения сигналов Режим работы Функция Задержка распространения сигнала, нс Ши- на IB CRP, CRG CRO OF, ZD, LBS, MBS PC, PR Ши- на OB « « С допол- нением 47 — — — — — Шина АВ, мульти- плексор Y « Без допол- нения 41 Контрольные вопросы 1. Используя рис. 20.1, объясните назначение всех элементов АЛУ. 2. Какие обозначения приведены на рис. 20.2? 3. Какие действия над операндами производит сумматор АЛУ? 4. Что представляет собой фиксатор? Как он действует? 5. Для каких целей служат сигналы СОЮ и СОН? 6. С помощью диаграмм Вейча получите уравнения для каждого раз- ряда преобразователя кодов, заданного в табл. 20.6. 7. Какую роль выполняет сигнал СО12 в сумматоре АЛУ? 8. Какие арифметические операции осуществляет сумматор АЛУ? 9. Какие логические операции реализует сумматор АЛУ? 10. На каком комбинационном цифровом устройстве создан сдвига- тель? 11. Какие сигналы управляют сдвигателем? 12. Чем отличается арифметический сдвиг информации от логичес- кого? 13. Для чего служат секции ускоренного переноса? ГЛАВА 21 РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 21.1. Общие сведения Напомним некоторые определения [37]. Алгоритм — последовательность действий по решению постав- ленной задачи. (Несколько алгоритмов, нацеленных на миними- зацию логических функционалов, рассмотрены в гл. 3) Программа — последовательность команд (см. гл. 18), выпол- нение которых микропроцессором реализует заданный алгоритм. 283
Основная Рис. 21.1. Блок-схема подпрограммы с двухуровневым вложением подпрограмм Подпрограмма — последовательность команд, которую исполь- зуют в одной или нескольких программах для выполнения опре- деленных действий. Для обращения к подпрограмме большинство языков програм- мирования располагает командами вызова подпрограмм CALL. Последней выполняемой командой подпрограммы является ко- манда возврата в основную программу RETURN Различают одноуровневые и многоуровневые «вложения» подпрог- рамм в основную программу (рис. 21.1). 21.2. Языки программирования Машинный язык Аппаратура микропроцессора может воспринимать только два уровня напряжения: 0 и 1, поэтому команды для него должны быть представлены в двоичном коде, который и является языком машины. 284
Таблица 21.1 Пример программы на машинном языке Код операции Адрес ячейки памяти Содержание команды МБА СБА 00111010 01100110 00000000 Загрузить в аккумулятор число из ячейки памяти с адресом 0000000001100110 10000110 11001011 00000000 Содержимое аккумулятора сложить с числом из ячейки памяти с адресом 0000000011001011 00110010 01100101 00000000 Записать результат предыдущей операции из аккумулятора в ячейку памяти с адресом 0000000001100101 01110110 - - П рекратить работу Таблица 21.2 Программа в шестнадцатеричном коде Код операции Адрес ячейки памяти МБА СБА ЗА 66 00 86 СВ 00 32 65 00 76 — — В качестве примера рассмотрим программу сложения двух чи- сел, записанную на машинном языке в табл. 21.1 (МБА, СБА — соответственно, младший и старший байты адреса), из которой видно, что двоичные коды достаточно громоздки и неудобны для непосредственного использования, поэтому для записи команд чаше применяют шестнадцатеричную систему счисления, в кото- рой данная программа выглядит, как показано в табл. 21.2. Специ- альная управляющая программа, называемая монитором и храни- мая в постоянном запоминающем устройстве микроЭВМ, пере- водит указанные выражения на язык машины (в объектные коды). Язык ассемблера С увеличением длины программы все труднее становится за- помнить коды различных операций. Некоторую помощь в этом отношении оказывают мнемонические обозначения (см. гл. 18). 285
Язык символического кодирования команд называется ассемб- лером. В его обозначениях приведенная в табл. 21.1 программа сло- жения принимает вил: LDA 00 66 ADD 00 СВ STA 00 65 HLT. Ассемблированием называется преобразование программы с язы- ка ассемблера, т.е. подготовка программы на машинном языке путем замены символических имен операций на машинные коды, а символических адресов — на абсолютные или относительные номера, а также включение библиотечных программ и генерация последовательностей символических команд путем указания кон- кретных параметров в микрокомандах. Данная программа также обычно размещается в ПЗУ микропроцессорной системы или вво- дится в ОЗУ с некоторого внешнего носителя (накопителя на магнитной ленте, дискового ЗУ и др.). Языки высокого уровня Языки высокого уровня позволяют представить программу в виде слов и аналитических выражений, удобных для непосред- ственного восприятия человеком. Например, многие микроЭВМ ориентированы на использование языка программирования Бей- сик (от BASIC — Beginner’s АН-purpose Symbolic Instruction Code — язык символического кодирования общего назначения для начи- нающих). Это язык высокого уровня. Программа сложения двух чисел на нем выглядит, как показано в табл. 21.3. Таблица 21.3 Пример программы сложения двух чисел на языке Бейсик Поряд- ковый номер команды Команда Комментарий 01 LETA=1 Присвоить переменной Л значение 7 02 LET В = 11 Присвоить переменной В значение 11 03 LETC-A+B Присвоить переменной С значение суммы А+В=7+ 11 04 PRINT С Напечатать значение С 05 END Конец программы 286
В таком виде информация не может восприниматься микро- процессором непосредственно, поэтому специальная программа, содержащаяся в ПЗУ (или загруженная в ОЗУ с внешнего носите- ля), преобразует программу на языке высокого уровня в програм- му на языке машины. Отметим здесь, что общее название программы, которая пере- водит произвольный текст на некотором входном языке в текст на другом языке, — транслятор. При этом различают трансляторы интерпретирующего типа, когда процесс трансляции совмещает- ся с выполнением программы, и компилирующего типа, когда в процессе трансляции получают объектную программу, которая затем может выполняться по мере необходимости. Языками высокого уровня являются Алгол, Фортран, Паскаль, Си и др. 21.3. Способы адресации Адресация {addressing) — установление соответствия между мно- жеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта. Существует много типов адресации. Перечислим их [32]. Абсолютная {absolute) — адресация, при которой адресная часть команды содержит абсолютный адрес. Автодекрементная {autodecremental) — адресация, при кото- рой содержимое регистра индекса уменьшается на п. Автоинкрементная {autoincremental) — адресация ячейки па- мяти, при которой содержимое регистра индекса увеличивается не на единицу, а на п, что позволяет вычислять адреса машинных слов, а не байтов. Ассоциативная {assjtiative) — адресация, при которой не ука- зывается точное местоположение данных, а задается значение определенного поля данных, идентифицирующее их. Базисная {basic) — адресация, при которой вычисление адре- сов в машинных командах производится относительно содержи- мого регистра, указанного в качестве базового. Базово-смещенная {base-displacement) — адресация, при кото- рой исполнительный адрес является суммой базового адреса и смещения. Виртуальная {virtual) — адресация, при которой каждая про- грамма рассматривается как ограниченное непрерывное поле ло- гической памяти, а адреса этого поля — как виртуальные. Декрементная {decrement) — адресация, при которой состоя- ние счетчика команд уменьшается на единицу. Динамическая {dynamic) — адресация памяти, при которой пре- образование математических адресов в физические осуществляет- ся в процессе выполнения программы. Программа при этом не 287
• зависит от места размещения в основной памяти и может переме- щаться в ней в процессе выполнения. Иерархическая (hierarchical) — адресация, при которой указа- ние объекта в сети ЭВМ происходит посредством составного иден- тификатора, отражающего структуру сети. Индексная (indexed) — адресация, при которой формирование исполнительного адреса осуществляется путем добавления к ба- зовому адресу содержимого индексного регистра. Инкрементная (incremental) — адресация, при которой состоя- ние счетчика команд увеличивается на единицу. Косвенная (indirect) — адресация, в которой адресная часть ко- манды содержит косвенный адрес, т.е. это адресация посредством косвенных адресов, указываемых в команде. Круговая, циклическая (cyclic) — адресация участка памяти, предусматривающая, что за ячейкой со старшим адресом следует нулевая ячейка. Машинная (machine) — см. физическая адресация. Многотерминальная (multiterminal) — адресация, заключающа- яся в выборе центральным процессором нескольких приемных устройств, принадлежащих разным терминалам, подключенным к одной многоточечной линии, и передаче сообщения, которое будет зарегистрировано всеми выбранными устройствами. Непосредственная, прямая (immediate, direct) — адресация, в кото- рой адресная часть команды содержит непосредственный (прямой) адрес, т.е. это адресация путем указания в команде прямых адресов. Непрямая (nondirect) — адресация данных с помощью указате- лей, ссылок, т.е. это косвенная адресация. Неявная (implied) — адресация, при которой один или несколько операндов или адресов операндов находятся в фиксированных для данной команды регистрах и нс требуют явного указания в команде. Однонаправленная (one-addressing) — неявная адресация, при ко- торой операционная часть команды точно адресуется по операндам в ячейке, следующей за ячейкой операндов предыдущей команды. Относительная (relative) — адресация, в которой адресная часть команды содержит относительный адрес. Адресация относительно счетчика команд (program counter relative addressing) — адресация, при которой в команде указы- вается значение, равное разности исполнительного адреса и адреса выполняемой команды. Отсроченная (deferred) — адресация, при которой один кос- венный адрес заменяется другим, обращение к которому произ- водится заранее определенное число раз или пока не закончится процесс по индикатору. Повторная (one-ahead) — адресация, при которой команда, имеющая нулевой адрес, относится к ячейке, следующей за ячей- кой, к которой обращалась последняя выполняемая команда. 288
Постдекрементная (postdecrement) — автодекрементная адреса- ция, при которой вычитание производится после выборки опе- ранда. Постинкрементная (postincrement) — автоинкрементная адре- сация, при которой прибавление производится после выборки операнда. Предекрементная (predecrement) — автодекрементная адресация, при которой вычитание производится до выборки операнда. Преинкрементная (preincrement) — автоинкрементная адресация, при которой прибавление производится до выборки операнда. Простая (flat) — адресация, при которой указание объекта в сети ЭВМ производится с помощью идентификатора, не имею- щего внутренней структуры. Расширенная (extended) — адресация, обеспечивающая доступ к запоминающему устройству с адресным пространством, большим адресного пространства, предусмотренного форматом команды. Регистровая (register) — адресация, производящая задание ад- ресов операндов в регистрах. Самоопределяющаяся (self-relative) — адресация, в которой ад- ресная часть команды содержит самоопределяющийся адрес. Символическая (symbolic) — адресация, в которой адресная часть команды содержит символический адрес; адресация, посредством которой обращение к какому-либо адресу осуществляется через условный символ. Адресация с использованием счетчика команд — адресация опе- рандов в командах, при которой в качестве регистра задается ре- гистр счетчика команд или программный счетчик. Адресация с повторением (repetitive) — неявная адресация, при- менимая только к безадресным командам, при которой операци- онная часть команды точно адресует операнды в соответствии с адресом из предыдущей выполняемой команды. Адресация с расширяемым адресом (extensible, augmented addressing) — указание объекта в сети ЭВМ, при котором адреса могут иметь различную длину, что позволяет добавлять адресуемые элементы и отражать их структуру. Статическая (static) — адресация памяти, при которой соответ- ствие между математическими и физическими адресами устанавли- вается до начала и не меняется в ходе выполнения программы. Стековая (stack) — адресация посредством регистра указателя стека при программной реализации стека. Адресация с фиксированной длиной адреса (fixed-length addressing) — указание объекта в сети ЭВМ, при котором все адреса имеют оди- наковую длину. Физическая (physical) — адресация, устанавливающая соответ- ствие между физическим адресом и некоторым устройством или его частью. 10 Нарышкин 289
Цепная {chained) — адресация записей в цепном списке с по- мощью адресов связи (указателей). Явная {explicit) — адресация путем явного задания адресов в программе. Рассмотрим более подробно некоторые из приведенных типов адресации [37]. Прямая адресация Адрес ячейки памяти, где расположен операнд, указывается во втором и третьем байтах команды, которые в этом случае явля- ются соответственно младшим и старшим байтами адреса. Использование двухбайтового адреса позволяет адресоваться к любой из 216 = 65536 = 64 К ячеек памяти. Пример. LDA 0066 — загрузить в аккумулятор А число из ячейки памяти с адресом 006616, если команда размещается в памяти МП системы, как показано в табл. 21.4. Команда выполняется за четыре машинных цикла: 1) выборка кода команды LDA (первого байта команды); 2) выборка МБА (второго байта команды); 3) выборка СБА (третьего байта команды); 4) выборка байта данных, адресуемого СБА и МБА, и загрузка его в аккумулятор А. Регистровая адресация В команде задается адрес (условный номер) регистра или ре- гистровой пары, где находится соответственно 8- или 16-битовый операнд. Примеры. 1) ADD В — сложить содержимое аккумулятора А с содержимым регистра В (табл. 21.5). 2) DAD D — к содержимому регистровой пары DE прибавить содержимое регистровой пары HL (табл. 21.6). Таблица 21.4 Размещение команды LDA 0066 в памяти Код команды Фрагмент памяти Номер байта Содержание байта В? Ц D5 д D? д д ЗА16 0 0 1 1 1 0 1 0 1 Код операции 661б 0 1 1 0 0 1 1 0 2 МБА оо16 0 0 0 0 0 0 0 0 3 СБА 290
Таблица 21.5 Размещение команды ADD В в памяти Шестнадцато- ричный код команды Двоичный код Код операции Номер регистра В 07 06 05 04 03 Di 0, 0о 1 0 0 0 0 0 0 0 Таблица 21.6 Размещение команды DAD D в памяти Шестнадцато- ричный код команды Двоичный код КОП Номер DE КОП 07 06 05 04 0з 02 0. 00 19 0 0 0 1 1 0 0 1 Таблица 21.7 Размещение команды STAX D в памяти Шестнадцато- ричный код команды Двоичный код КОП Номер DE КОП 07 06 d5 04 0з 02 01 0о 12 0 0 0 1 0 0 1 0 Таблица 21.8 Размещение команды SUB Нв памяти Шестнадцато- ричный код команды Двоичный код операции 07 06 05 04 0з 02 0. 00 96 1 0 0 1 0 1 1 0 Регистровая косвенная адресация В команде адрес ячейки памяти, где расположен операнд, оп- ределяется содержимым регистровой пары, явно или неявно ука- занной в коде команды. Примеры. 1) STAX D — занести содержимое аккумулятора А в память по адресу, указанному регистровой парой DE (табл. 21.7). 2) SUB Н — вычесть из содержимого аккумулятора А содержи- мое ячейки памяти, адресуемой по умолчанию регистровой па- рой HL (табл. 21.8). 291
Непосредственная адресация Операнд содержится в самой команде: для двухбайтовых ко- манд — во втором байте, для трехбайтовых — во втором и третьем байтах. Примеры. 1) SUT F0 — вычесть байт ГО из содержимого акку- мулятора А (табл. 21.9) 2) LX1 S, 005Л — загрузить в указатель стека SP (как в регист- ровую пару SP) операнд 005Л16 (табл. 21.10). 21.4. Стандартная форма представления программ на языке ассемблера Язык ассемблера индивидуален для каждого микропроцессор- ного комплекта, поэтому для автоматического перевода програм- мы с языка ассемблера на язык машины требуется каждый раз свой транслятор. Более того, даже в пределах одного МП К разра- ботчики часто пользуются различными формами записи програм- мы в расчете на последующее ручное ассемблирование при помощи кодовых таблиц [37]. Стандартно программа на языке любого ассемблера записыва- ется в виде последовательности строк. Каждая строка содержит три фиксированных поля, в которых последовательно располага- ются метка, команда и комментарий. Таблица 21.9 Размещение команды SUI ГО в памяти Код команды Фрагмент памяти Номер байта Содержание байта D6 Ds A А А А А ЗЛ|6 0 0 1 1 1 0 1 0 1 Код операции Г016 0 1 1 0 0 1 1 0 2 Данные Таблица 21.10 Размещение команды LXIS, 005Л16 в памяти Код команды Фрагмент памяти Номер байта Содержание байта А А А D, А Л, А 3116 0 0 1 1 0 0 0 1 1 Код операции 5/4|б 0 1 0 1 1 0 1 0 2 МБ операнда 00,6 0 0 0 0 0 0 0 0 3 СБ операнда 292
Метка представляет собой произвольную последовательность заглавных букв латинского алфавита и цифр, причем первым сим- волом обязательно должна быть буква. Непосредственно за меткой ставится двоеточие. Например: LABEL., START;, М\;, М2; и др. Обычно метками снабжаются команды, к которым произво- дится переход из каких-либо других частей программы. При этом вместо адреса в соответствующих командах перехода записывает- ся метка, что позволяет избежать жесткой привязки текста про- граммы к определенным сегментам памяти. Команда, как уже отмечалось, содержит мнемоническое обо- значение (аббревиатуру) выполняемой операции (первый байт) и, возможно, адресную часть (второй и третий байты). При этом допускается запись адресной части в различных системах счисления. Для указания используемой системы счисления после шест- надцатеричного числа ставится символ Я (от hexadecimal), а если число начинается с букв А, В, ... , F, то перед ним ставится еще и цифра 0; после десятичного числа — символ D (от decimal), кото- рый разрешается опускать; после восьмеричного числа — символ Q (вместо О от octal, чтобы нс путать с цифрой 0) и после двоич- ного числа — символ В (от binary). Например: MVI Е, 1100102? — загрузить регистр Е числом 1100102; LXIН, 0 ДО 1377 — загрузить регистровую пару числом ДС1316; OUT 10 — вывести содержимое аккумулятора А в порт с адре- сом 1010 = 0Л16 = 000010102; IN 10(2 — ввести в аккумулятор А данные из порта с адресом 108 = 0810 = 000010002. Комментарий отделяется от команд точкой с запятой (;). В ком- ментарии из нескольких строк каждая строка должна начинаться с точки с запятой. Например: LDAX В ; Загрузка аккумулятора А ; очередным элементом массива. Приводимые в комментариях записи облегчают понимание программы пользователем, но игнорируются ассемблером при трансляции. Для повышения эффективности трансляции (ассемблирования) используются специальные псевдокоманды (команды ассемблера), не влияющие на результат выполнения операции процессором. С помощью псевдокоманд транслятору можно сообщать, напри- мер, сведения о том, с какого начального адреса следует размес- тить программу в памяти МП системы, нужно ли зарезервировать в ОЗУ ячейки для хранения переменных, какие присвоить имена тем или иным операндам. Примеры. 1) ORG addr 16 — разместить последующие команды программы, начиная (origin) с адреса addr 16. 293
2) TABLE EQU data 8 — переменной с именем TABLE присво- ить {equate) значение data 8. Если это имя используется в коман- дах программы в качестве операнда, при необходимости измене- ния последнего достаточно присвоить новое значение перемен- ной TABLE, изменив лишь одну псевдокоманду. 3) SYN: DB data 8 — 1, data 8 — 2, ..., data 8 — У — зарезерви- ровать У последовательных восьмиразрядных ячеек памяти с сим- волическим начальным адресом SYN, поместив в них соответствен- но байты данных (data byte) data 8 — 1, data 8 — 2, ..., data 8 — N. К указанным данным обращение осуществляется по символичес- ким адресам SYN, SYN + 1, , SYN + N - 1. 4) LAB: DW data 16 - 1, data 16 - 2, ..., data 16 - N - зарезервировать IN последовательных восьмиразрядных ячеек памяти с символическим начальным адресом LAB, поместив в них N двухбайтовых слов данных (data word) data 8 — 1, data 8 — 2, ..., data 8 — N. К указанным двухбайтовым словам обращение осуществляется по символическим адресам LAB, LAB + 2, ... , LAB + + 2(N + 1). 5) ARRY DS 20 — зарезервировать 20 последовательных ячеек памяти (data store) для файла данных с символическим началь- ным адресом ARR1. Эта псевдокоманда позволяет программисту, например отвести определенную область в ОЗУ под буферную память при обмене с внешними устройствами. 6) END — конец. Служит для программного прерывания про- цесса ассемблирования. Фрагмент программы на языке ассемблера в стандартной фор- ме с использованием псевдокоманд может иметь следующий вид. ORGOAQ1QH разместить последующие коман- ды поначальному адресу/101016. RTFEQU5 Дрисвоить имени RTF значе- ние 5. RTSEQU7 Дрисвоить имени RTF значе- ние 7. CONST EQU11Q Дрисвоить имени CONST зна- чение 118 = 9. CKL: DB 51Н, ОАВН ;3аписать в ячейках памяти с символическими адресами •,CKL и CKL+1 данные 5116 и ;АВ16 соответственно. ARR: DW83D, 175Q, 101115, 0 ;В последовательные ячейки па- мяти, начиная с символичес- ;кого адреса ARR, занести по- очередно двухбайтовые опе- ранды 83 = 005316, 1758 = ;007Z>16, 101112 = 001716, 000016. 294
BUF: DS 64 IN RTF ADI CONST IMP Ml Ml: OUT RTS М2: CMP CEL Зарезервировать под буфер данных 64 последовательные ;ячейки ОЗУ с начальным сим- волическим адресом BUF. ; Вести в аккумулятор А байт данных из порта с адресом 0516. ; Прибавить к содержимому ак- ;кумулятора А число 9. ;Перейти к команде, снабжен- ной меткой М2. ;Вывести данные из аккумуля- тора А в порт по адресу 7 = 0716. ; Сравнить содержимое аккуму- лятора Л с константой 5116. Контрольные вопросы 1. Что такое алгоритм? 2. Что такое программа? 3. Что такое подпрограмма? 4. С помощью какой команды можно обращаться к подпрограмме и какая команда возвращает действие в программу? 5. В чем различие одноуровневых и многоуровневых вложений под- программ? 6. Перечислите основные языки ЭВМ и назовите их особенности. 7. Почему при записи команд предпочитают шестнадцатеричную сис- тему счисления? 8. В какой системе счисления необходимо представлять информацию в машинном коде? 9. Переведите число 17 из десятичного кода в двоичный, восьмерич- ный и шестнадцатеричный. 10. Что представляет собой язык ассемблера? Для чего нужны и как составляются мнемонические обозначения? 11. Что называется ассемблированием? 12. Назовите языки высокого уровня. Чем они отличаются от ассемб- лера? 13. Для чего служат трансляторы и какие виды трансляторов вы зна- ете? 14. Назовите основные виды адресации и покажите их особенности. 15. Где указывается адрес ячейки памяти и где расположен операнд при прямой адресации? 16. Что задается в коде команды при регистровой адресации? 17. Что указывается в команде при регистровой косвенной адреса- ции? 18. Где содержится операнд при непосредственной адресации? 19. В чем заключается стандартная форма представления программы на языке ассемблера? 20. Из каких трех элементов состоит строка программы ассемблера? 295
21. Что представляет собой метка программы? С чего она должна на- чинаться и чем заканчиваться? 22. Какими буквами обозначают в программе системы счисления? 23. Для чего служит и как выделяется комментарий программы? ГЛАВА 22 МИКРОКОНТРОЛЛЕРЫ 22.1. Классификация Микроконтроллером (МК) называется контроллер на базе микропроцессора [32]. Второе название МК — однокристальная микроЭВМ. Контроллер {controller) — специализированный процессор, пред- назначенный для управления внешними устройствами: накопите- лями, дисплеями, принтерами. Наличие контроллера освобожда- ет центральный процессор от выполнения этих функций. Различают следующие виды контроллеров: групповой {group controller) — контроллер группы однотипных устройств или механизмов; дисплейный {display controller) — компонент дисплейного про- цессора, непосредственно управляющий выводом данных из бу- фера изображения на экран дисплея; ввода-вывода {периферийный, внешнего устройства) {input-output {peripheral) controller) — процессор, управляющий обменом меж- ду внешним устройством и памятью ЭВМ; интеллектуальный {intelligent controller) — контроллер, выпол- няющий кроме непосредственного управления обменом допол- нительные функции: контроль правильности данных, их редакти- рование, обработку сложных команд; контроллер канала {channel controller) — устройство управления каналом ввода-вывода; коммуникационный {связной) {communications controller) — аппа- ратный интерфейс и микропрограммные средства, используемые в качестве линейного адаптера и реализующие конкретный про- токол связи; местный {встроенный) — контроллер, встроенный в управляе- мое им устройство; передачи данных {data transmission controller) — периферийное устройство, предназначенное для дистанционного подключения к ЭВМ нескольких абонентских пунктов и обеспечивающее рабо- ту с ними под управлением вычислительной системы; разделяемый — контроллер, попеременно выполняющий функ- ции управления несколькими устройствами; 296
контроллер устройства (device controller) — устройство сопря- жения ЭВМ с внешним устройством и управления обменом меж- ду ними. По сравнению с адаптером выполняет более сложные функции. Определение понятия и номенклатура микроконтроллеров адек- ватны (и даже несколько уже) по отношению к интерфейсу. Интерфейс (interface) — совокупность средств и правил, обес- печивающих взаимодействие устройств вычислительной системы и (или) программ; совокупность унифицированных технических и программных средств, используемых для сопряжения устройств в вычислительной системе или сопряжения между системами; гра- ница раздела двух систем, устройств или программ; граница меж- ду двумя функциональными устройствами, определенная их ха- рактеристиками, характеристиками соединения, сигналов обме- на и т.п. [32]. Первые микроконтроллеры (восьмиразрядные МК 8048) были выпущены фирмой Intel в 1976 г. В настоящее время многими по- ставщиками выпускаются 8-, 16- и 32-разрядные МК с емкостью памяти до десятков Кбайт, небольшими ОЗУ данных и набором таких интерфейсных и периферийных схем, как параллельные и последовательные порты ввода/вывода, таймеры, аналого-циф- ровые и цифроаналоговые преобразователи, широтно-импульс- ные модуляторы и др. Среди выпускаемых МК широко известно семейство восьми- разрядных контроллеров MCS-51/151/251 и шестнадцатиразряд- ных MCS-96/196/296 фирмы Intel. Очень многие производители выпускают аналоги этих семейств или совместимые с ними МК. В отечественной номенклатуре — это восьмиразрядные К1816ВЕ51 и К1830ВЕ51. В последнее время фирма Atmel выпускает популяр- ное семейство МК серии АТ89 с флэш-памятью программ, явля- ющееся функциональным аналогом семейства восьмиразрядных МК фирмы Intel (см. подразд. 22.3). Небезынтересно знать, что, несмотря на появление новых 16- и 32-разрядных МК, наибольшим спросом на рынке пользуются восьмиразрядные. Сейчас около половины всего рынка МК (при- близительно 6 млрд долларов) остается за ними, что означает их лидирование с большим отрывом относительно представителей других семейств [40]. 22.2. Программное обеспечение микроконтроллеров Безусловное выполнение всех запланированных функций при небольших габаритах, малых затратах энергии и низкой стоимо- сти — вот основные требования, предъявляемые к микроконт- роллерам, встраиваемым в те или иные изделия. Причем, чем 297
больше их выпуск, тем важнее последние из перечисленных тре- бований [14]. Обеспечить же снижение энергозатрат и стоимости микрокон- троллеров можно за счет не только подбора оптимальных аппа- ратных средств, но и оптимизацией программы их работы. Так как в микроконтроллерах программа записывается в ПЗУ, то ее со- кращение позволяет уменьшить объем ПЗУ и либо сократить ко- личество БИС ПЗУ, либо использовать в нем БИС с меньшей ем- костью (меньшими энергозатратами и стоимостью). Это предоп- ределяет наивысшие требования к процессу разработки программ для микроконтроллеров, встраиваемых в массовые изделия. Но как же отладить и сравнить различные варианты программ, если единственный путь их ввода в микроконтроллер — это нали- чие в МК ПЗУ с программой, записанной на специальной уста- новке? Не идти же по пути выбрасывания ПЗУ с неудачным ва- риантом программы, записи в «чистое» ПЗУ нового варианта про- граммы и т.д.? Да и как проверить эти варианты на ЭВМ, вне- шние устройства которой могут лишь получать сигналы из изде- лия и управлять (правильно или неправильно) его работой? Поскольку сам микроконтроллер (будем называть его прототи- пом) трудно приспособить для создания собственного программ- ного обеспечения, используют специальные средства разработки на универсальных или инструментальных ЭВМ. Инструментальная ЭВМ — это достаточно мощная система, построенная на микроЭВМ, имеющей или эмулирующей архи- тектуру прототипа. В ряде случаев (например, когда не хватает па- мяти машины и эта память уже не может расширяться при суще- ствующей разрядности счетчика команд микроЭВМ) прибегают к использованию электронного диска — полупроводниковой па- мяти (ОЗУ, ПЗУ, ППЗУ или стираемое, перепрограммируемое ППЗУ) с устройством управления, позволяющим организовать между ней и микроЭВМ последовательный обмен данными через контроллер на жестком магнитном диске (НМД). МикроЭВМ «об- манывают»: она «думает», что обменивается данными с очень быстродействующим НМД (в котором время доступа на два по- рядка выше, чем у винчестерских дисков). Такая имитация какой- либо системы получила название эмуляции (от emulate — соревно- вание). Подобным образом (меняя интерпретатор микропрограммно- го устройства управления) из существующей микроЭВМ создают такую, которая имеет систему команд еще не реализованной ЭВМ (для подготовки программного обеспечения новой ЭВМ) или очень старой ЭВМ (чтобы продлить «жизнь» ее программ). Недостаток эмуляторов накопителей на магнитных дисках — их энергозависимость: при выключении питания информация сти- рается с такого диска. 298
Хорошая инструментальная ЭВМ содержит: дисковое ЗУ, сохраняющее большое число системных и при- кладных программ, используемых при проектировании и отладке прототипа; большую оперативную память для размещения монитора (уп- равляющего работой инструментальной ЭВМ), системных и (или) прикладных программ (непосредственно исполняемых на тех или иных этапах работы), моделирование памяти прототипа и т.д.; средства, позволяющие проектировщику вызывать нужные про- граммы, устанавливать режим их выполнения (например, по ко- мандам или тактам), давать необходимую команду на прототип или его модель и ряд других приказов; средства для индикации работы самой инструментальной ЭВМ и связанного с ней прототипа (обычно дисплеи); контроллеры для подключения печатающих устройств, графо- построителей, программаторов ППЗУ и других устройств для до- кументирования и вывода информации; аппаратуру для подключения прототипа и (или) его отдельных частей, а также для управления ими; систему ввода/вывода аналоговых сигналов для общения со сре- дой (моделью среды), в которой будет работать прототип. Кроме этих (а нередко и ряда других) аппаратных средств ин- струментальная ЭВМ снабжена пакетами служебных и приклад- ных программ. Это обязательно хотя бы один редактор текста для создания и модификации текста программ (вариантов программ для прототипа или любых отладочных программ, разрабатывае- мых в процессе проектирования), несколько трансляторов, ре- дактор связей, загрузчик и набор других служебных программ (на- пример, программы для отладки в реальном масштабе времени). Ранее оговаривались причины, обусловливающие необходимость создания минимальных по объему программ, поэтому среди транс- ляторов инструментальных ЭВМ обязательно есть ассемблеры. Однако при начальной отработке программ прототипа и для со- здания отладочных программ могут использоваться языки высо- кого уровня, поэтому инструментальные ЭВМ снабжаются также интерпретаторами и компиляторами языков Бейсик, Фортран, Паскаль, СИ и рядом других (например, языка ПЛ/М, разрабо- танного для написания служебных и прикладных программ мик- ропроцессоров К580). Кроме помощи в создании программного обеспечения прото- типа хорошая инструментальная ЭВМ позволяет произвести со- вместную наладку аппаратных и программных средств. Для этого используется эмулятор — мощное отладочное средство, заменяю- щее дорогие диагностические устройства. Эмулятор заменяет мик- ропроцессор прототипа и выполняет команды микропроцессора в среде прототипа под управлением инструментальной ЭВМ, сле- 299
довательно при отладке прототип может использовать большую часть аппаратных и программных ресурсов инструментальной ЭВМ. Программу можно выполнять по командам и контролировать при этом состояния устройства. Аппаратные средства прототипа (модули памяти, контроллеры ввода-вывода, схемы управления прерываниями) можно проверить и отладить индивидуально с помощью программ инструментальной ЭВМ. Перечисление достоинств инструментальных ЭВМ можно было бы продолжить, но следует упомянуть и об их недостатках. Боль- шинство таких ЭВМ позволяет производить наладку прототипов, построенных на БИС МПК одной серии, значит пользователи, работающие с разными МПК и создающие на их базе микрокон- троллеры, должны иметь несколько инструментальных ЭВМ раз- ных типов или очень мощную (а следовательно, дорогую) систе- му, заменяющую эти машины. Такой путь оправдан лишь для орга- низаций, специализирующихся на разработке различных микро- контроллеров и (или) занимающихся их наладкой. Однако даже эти организации часто подготавливают программы прототипа на универсальных ЭВМ. Универсальные ЭВМ любого типа (большие ЭВМ, мини-ЭВМ или персональные ЭВМ) часто снабжают кросс-ассемблерами и имитаторами для подготовки и отладки программ многих микро- процессорных систем. Кросс-ассемблер выполняет точно такие же функции, как и са- моассемблер: трансляция мнемонических команд в машинный код, выполнение псевдокоманд и директив, обнаружение синтакси- ческих ошибок и обработка макрокоманд. Кросс-ассемблер реали- зуется на ЭВМ, имеющей другую систему команд, отличную от микропроцессора, для которого создается ассемблированная про- грамма (т. е. универсальная ЭВМ преобразует мнемонические коды не в свои машинные коды, а в чужие — коды микропроцессора). Естественно, что при подготовке текста программы на языке ас- семблера и его редактировании могут использоваться все необхо- димые средства универсальной ЭВМ: редакторы текста, печатаю- щие устройства, дисковые ЗУ (для сохранения созданного исход- ного текста и полученной объектной программы) и т.п. Моделирующие программы предназначены для отладки объект- ных программ, полученных после их ассемблирования с помо- щью кросс-ассемблера. В этих программах все регистры разрабаты- ваемой микроЭВМ и ячейки ее памяти представлены ячейками памяти универсальной ЭВМ. Моделирующая программа имити- рует выполнение каждой команды объектной программы с соот- ветствующим преобразованием этих ячеек. Процессом выполне- ния программы можно управлять с помощью клавиатуры дисп- лея, на экран которого выводится вся необходимая для отладки информация. 300
22.3. Структура микроконтроллеров семейства АТ89С В структуре микроконтроллеров семейства АТ89С (рис. 22.1) используются раздельные блоки программной памяти типа флэш (1...20 Кбайт) и ОЗУ (64...256 байт) данных (Гарвардская архи- тектура) [40]. Диапазоны емкостей памяти, как и частот (12...24 МГн) гене- ратора тактовых импульсов (ГТИ) характеризуют параметры пред- ставителей семейства микроконтроллеров от младшего до стар- шего. При необходимости возможно подключение к микроконт- роллерам внешних БИС ПЗУ и ОЗУ для расширения простран- ства памяти. Основу МК составляет центральный процессорный элемент (ЦПЭ). Средства ввода/вывода представлены четырьмя параллельны- ми портами (32 линии) и линиями Тх D (от transmitter — передат- чик) и R х D (от receiver — приемник) для обеспечения последо- вательного ввода/вывода данных. В состав МК входят два-три таймера-счетчика (шестнадцати- разрядных), для создания системных меток времени и отработки интервалов. Для сокращения ширины физического интерфейса МК функ- ции линий параллельных портов Р совмешены и в разных режи- мах имеют разное назначение. Порты Р0 и Р2 соединены с анало- го-цифровыми преобразователями A/D. Система прерываний с пятью источниками запросов радиаль- ного типа обслуживает два внешних запроса (INTO и INTI, от INTO INTI Р0 Р2 Pl РЗ T*D RXD A/D A/D Рис. 22.1. Структура микроконтроллера AT89C 301
interrupt — прерывать) и три внутренних: два — от таймеров и один — от последовательного порта. Восьмиразрядная шина AD служит для передачи адреса и дан- ных. При частоте ГТИ 12 МГц большинство команд выполняется за 1 мкс, а некоторые команды — за 2 мкс. Разработка флэш-памяти {Flash-Memory) считается кульмина- цией десятилетнего развития схемотехники памяти с электричес- ким стиранием информации. В схемах флэш-памяти не предусмотрено стирание отдельных слов, стирание информации осуществляется либо во всей памя- ти одновременно, либо в достаточно больших блоках. Понятно, что это позволяет упростить схемы ЗУ, т.е. способствует дости- жению высокого уровня их интеграции и быстродействия при снижении стоимости. Технология изготовления схем флэш-па- мяти обеспечивает их высокое качество и очень хорошие пара- метры. Термин flash по одной из версий связан с характерной особен- ностью этого вида памяти — возможностью одновременного сти- рания всего ее объема. Согласно этой версии еще до появления флэш-памяти при хра- нении секретных данных использовались устройства, которые при попытках несанкционированного доступа к ним автоматически стирали хранимую информацию и назывались устройствами flash (вспышка, мгновение). Это название перешло и к памяти, обла- дающей свойством быстрого стирания всего массива данных од- ним сигналом. Контрольные вопросы 1. Что называется микроконтроллером? 2. Какие виды контроллеров вы знаете? 3. Что называется интерфейсом? 4. В чем состоит преимущество микроконтроллеров перед микро- ЭВМ? 5. Что представляет собой и для чего служит инструментальная ЭВМ? 6. Что называется эмуляцией и где она применяется? 7. На каких языках могут создаваться отладочные программы для ин- струментальных ЭВМ? 8. Какой недостаток присущ инструментальным ЭВМ? 9. Чем необходимо снабжать универсальные ЭВМ для подготовки и отладки программ микропроцессорных систем? 10. Какие функции выполняет и где реализуется кросс-ассемблер? 11. Для чего предназначены моделирующие программы? 12. Из каких основных элементов состоит микроконтроллер семейства АТ89С? 13. В чем заключаются особенности флэш-памяти? 302
ГЛАВА 23 ФУНКЦИОНАЛЬНЫЕ УЗЛЫ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ 23Л. Устройства кодирования сигналов клавиатуры пульта оператора Для управления микропроцессорной системой и отображения состояний ее регистров и магистралей обычно используется пульт оператора, содержащий клавиатуру (набор цифровых и символь- ных клавиш) и светодиодные индикаторы или дисплей на элект- роннолучевой трубке или жидкокристаллическом экране. При этом формирование кодовых сигналов, соответствующих нажатым кла- вишам, выполняется кодирую- щими устройствами [37]. Рассмотрим в качестве при- мера кодирующее устройство для формирования четырехраз- рядных двоичных кодов шест- надцатеричных цифр в соответ- ствии с табл. 23.1. Наиболее простым способом реализации такого кодопреобра- зователя было бы применение шифратора 16-4, но шифратора такого формата промышлен- ность не выпускает. Можно вос- пользоваться известным мето- дом наращивания разрядности шифраторов, схема которого изображена на рис. 23.1 [34]. На схеме Е, — сигнал включения шифратора (0 — выключен, 1 — включен). Сигнал Ео = 1 свиде- тельствует об отсутствии возбуж- денных входов; G = 1 — сигнал наличия хотя бы одного возбуж- денного входа. С помощью эле- ментов И —НЕ производится объединение выходных сигналов младших разрядов шифраторов, получаемых в инверсной форме, по ИЛИ. Старший разряд фор- мируется аналогичным образом из инверсного сигнала G. Таблица 23.1 Таблица истинности преобразователя кода «1 из 16» в натуральный двоичный код Шестнадцате- ричная цифра Двоичный код D, Di 7)1 7)о 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 А 1 0 1 0 В 1 0 1 1 С 1 1 0 0 D 1 1 0 1 Е 1 1 1 0 F 1 1 1 1 303
Рис. 23.1. Схема нарашивания разрядности шифратора 16-4 на основе шифраторов К551ИВ1 и элементов И—НЕ Другой способ реализации кодопреобразователя заключается в синтезе шифратора необходимого формата на основе дизъюнкто- ров или элементов ИЛИ—НЕ, рассмотренный в подразд. 8.1. Имен- но таким образом синтезирован необходимый кодопреобразова- тель в работе [37], схема которого представлена на рис. 23.2. Кодирующее устройство в схеме состоит из четырех логичес- ких элементов ИЛИ (DD1 ...DD4), входные сигналы каждого из которых выбраны в соответствии с расположением единиц в столб- цах D3...D0 табл. 23.1. Факт нажатия клавиш [1]...[Е| обнаруживается по наличию, как минимум, одной единицы в коде D3D3DxDq, а нажатие клави- ши [0] — по значению единицы сигнала непосредственно на ее выходе, поэтому факт нажатия любой из клавиш [0]... [/] фикси- руется при помощи пятивходового дизъюнктора DD5, из выход- ного сигнала которого при помощи тактовой последовательности CLK D-триггерами DD6 и DD1 формируется импульсный сигнал READYготовности для микропроцессора (рис. 23.3). Нажатие любой последующей клавиши при неотпущенной пре- дыдущей в данной схеме игнорируется (повторный сигнал READY не вырабатывается). Одновременное нажатие двух и более клавиш приводит к генерации ошибочного кода, представляющего собой поразрядную логическую сумму кодов каждой из нажатых клавиш. 304
Рис. 23.2. Схема преобразователя кода «1 из 16» в двоичный на основе дизъюнкторов Рис. 23.3. Временные диаграммы кодирующего устройства, представ- ленного на рис. 23.2 23.2. Устройства и алгоритмы устранения дребезга клавишных контактов Сигналы формируются путем замыкания и размыкания элект- рической цепи с помощью электромеханических переключателей (кнопок, тумблеров, клавиш и др.). Механические колебания эле- 305
Рис. 23.4. Схема выключателя с противодребезговой защитой (а) и его временные диаграммы (б) ментов клавиатуры и выключателей S (от switch — переключатель, коммутатор, ключ, выключатель) иногда приводят вместо фор- мирования одного четкого фронта или среза импульса к много- кратному их повторению, называемому дребезгом контактов и являющемуся своеобразной помехой, подобной эффекту гонок, рассмотренному в подразд. 7.2. Длительность этого процесса зави- сит от конструкции переключателя, но обычно не превышает 2 мс. Для его устранения используются аппаратные (схемные) сред- ства — специальные формирователи [371, которые в совокупнос- Рис. 23.5. Алгоритм программной блокировки дребезга контактов 306
ти с переключателями называются пе- реключателями с противодребезговой защитой {debounced switch) [2]. Еще од- ним способом защиты от дребезга яв- ляются компьютерные программы. Наибольшее распространение полу- чили устройства, основанные на под- ключении контакта дребезжащей кла- виши 5 к информационному входу D-триггера и на его синхронизации тактирующими импульсами CLK с ин- тервалом следования, превышающим длительность процесса дребезга, по- скольку именно на этом интервале (при низком потенциале на входе стриггера, управляемого по положи- тельному перепаду напряжения) про- исходит запись информации в основ- ной триггер (рис. 23.4). При замкнутом ключе S (нажатой клавише) потенциал на ин- формационном входе D-триггера за счет падения напряжения на резисторе R стремится к нулевому значению. При отпускании кла- виши потенциал возрастает и может произойти дребезг контактов. Но запись этой неустойчивой информации в триггер не произво- дится (см. рис. 23.4, б), поскольку на входе синхронизации дей- ствует высокий потенциал. Когда дребезг заканчивается, с помо- щью сигнала низкого потенциала синхронизации CLK записыва- ется сигнал высокого потенциала в основной триггер, а затем Рис. 23.6. Алгоритм подпрог- раммы формирования вре- менной задержки после положительного перепада напряжения сигнала синхрони- зации выход Q вспомогательного триггера переводится в состоя- ние устойчивой логической единицы. При нажатии клавиши (для разнообразия показанном на вре- менных диаграммах при низком потенциале на входе синхрониза- ции) в основной триггер также записывается результирующая (ус- тановившаяся) информация о замкнутом ключе 5, и D-триггер устойчиво срабатывает в направлении, обратном по сравнению с предыдущим. Преимуществом такого способа противодребезговой зашиты является временная привязка выходного сигнала к внутренним процессам МП системы, тактируемой той же последовательно- стью CLK, что и D-триггер. Применяется также программная блокировка дребезга контак- тов клавиатуры, например по алгоритму, представленному на рис. 23.5 [37]. Началом в алгоритме является нажатие оператором ЭВМ соот- ветствующей клавиши, после чего автоматически вводится вспо-
могательный сигнал готовности ЛЕ4ЛУ1 и запускается подпрог- рамма временной задержки (рис. 23.6). Затем снова вводится сигнал READY2, который санкционирует ввод кода нажатой клавиши в ЭВМ. Таким образом, согласно алгоритму на рис. 23.5, клавиша счи- тается нажатой, если единичное значение сигнала READY (готов- ности клавиатуры) будет зафиксировано дважды подряд на неко- тором заданном интервале времени. Простейший алгоритм подпрограммы формирования вре- менного интервала (задержки), показанный на рис 23.6, вклю- чает в себя операции загрузки числа N (пропорционального необ- ходимой задержке времени) циклов декрементирования содер- жимого регистра В. 23.3. Световые индикаторные устройства Индикатор — отдельный светоизлучающий элемент (сигналь- ная лампочка, светодиод и т.п.), являющийся простейшим уст- ройством вывода информации. С его помощью можно сообщать о состоянии какого-либо устройства, подключенного к микропро- цессору, например путем подсветки той или иной надписи на ли- цевой панели устройства или высвечиванием двоичного кода со- держимого регистров устройства и т. п. Гораздо удобнее использовать многоэлементные индикаторы, по- зволяющие выводить данные в привычной буквенно-цифровой форме. В таких индикаторах буквы, цифры и другие символы формируются на сегментном поле, состоящем из 7, 9 или 14 сегментов, либо на матрице, имеющей 5x7, 7x9 или 10 х 14 точек. Причем, точечные матрицы позволяют формировать большее число символов [14]. Из цифровых знаковых индикаторов наибольшее распростра- нение получили семисегментные, в которых стилизованные изоб- ражения цифр шестнадцатеричного кода составляют из семи ли- нейных сегментов (a, b, с, d, е, f, g), расположенных, как пока- зано на рис. 23.7, а. При этом используют строчные буквы h и d (рис. 23.7,6), так как в противном случае их не удалось бы отли- чить от цифр 8 и 0 [37]. Рис. 23.7. Семисегментный индикатор: а — расположение сегментов; б — изображение цифр шестнадцатеричного кода 308
Используя табл. 23.2, можно синтезировать необходимый де- шифратор. Матричные знаковые индикаторы позволяют отображать цифры и буквы алфавита, а также некоторые специальные знаки стан- дартного кода [37]. Простейший универсальный матричный индикатор содержит 36 элементов (семь строк, пять столбцов и одну точку справа вни- зу). Управление элементами такого индикатора производится пос- ледовательно (например, построчно). Для этого с помощью счет- чика, управляемого тактовым генератором, и дешифратора типа «1 из 8» напряжение подается последовательно на выводы /, (от line — строка) (рис. 23.8). С другой стороны, двоичный код номера строки со счетчика поступает на знакогенератор, к семи старшим разрядам которо- Табли ца 23.2 Таблица истинности преобразователя шестнадцатеричного кода в двоичный и управляющий код семисегментного индикатора Шестнадцате- ричный код Двоичный код Входной код семисегментного индикатора Di Di Da а ь с d е f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 I 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 А 1 0 1 0 1 1 1 0 1 1 1 В 1 0 1 1 0 0 1 1 1 1 1 С 1 1 0 0 1 0 0 1 1 1 0 D 1 1 0 1 0 1 1 1 1 0 1 Е 1 1 1 0 1 0 0 1 1 1 I F 1 1 1 1 1 0 0 0 1 1 1 309
го а3... о9 также подводится код операции индикатора (КОИ-7), определяющий знак, высвечиваемый индикатором. Когда пост- рочно на пяти выходах знакогенератора формируются низкие потенциалы (логические нули), они через резисторы R1...R5 подаются на входы с0...с4 столбцов индикатора, в результате чего высвечиваются соответствующие элементы матрицы ин- дикатора. В качестве примера в табл. 23.3 приведена информация, необ- ходимая для высвечивания на индикаторе буквы R (КОИ-7 для которой соответствует № 82, в двоичном коде отображаемому се- миразрядным числом 1010010). В крайней правой части таблицы на пересечениях номеров строк и столбцов наглядно с помощью нулей, выделенных полужир- ным шрифтом, отображается символ — латинская буква R. Таблица 23.3 Фрагмент таблицы истинности знакогенератора для буквы R Номер строки 1 КОИ-7 символа R Код строки Номер столбца а9 б8 «7 Об «5 «4 а3 «2 «1 «О Со С1 сг О <4 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 2 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 3 1 0 1 0 0 1 0 0 ] 1 0 0 0 0 0 4 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 5 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 6 1 0 1 0 0 1 0 1 1 0 0 1 1 I 0 310
Контрольные вопросы 1. Поясните состав и принцип работы преобразователя шестнадцате- ричного кода в двоичный на основе шифраторов и элементов И—НЕ. 2. Поясните состав и принцип работы преобразователя шестнадцате- ричного кода в двоичный на основе дизъюнкторов. 3. Продемонстрируйте на временных диаграммах, в чем заключается эффект дребезга контактов. 4. Объясните по схеме, показанной на рис. 23.4, и с помощью вре- менных диаграмм принцип способа устранения влияния дребезга кон- тактов с использованием синхронного Л-триггера. 5. В чем заключается программная блокировка дребезга контактов? 6. Что такое сегментный индикатор? Как с его помощью индициру- ются символы? 7. Синтезируйте преобразователь четырехразрядного двоичного кода в код семисегментного индикатора для индикации символов шестнадца- теричного кода. 8. Что собой представляют матричные знаковые индикаторы? В чем их преимущество по отношению к сегментным? 9. Поясните работу устройства формирования сигналов управления матричным индикатором.
СПИСОК ЛИТЕРАТУРЫ 1. Алексенко А.Г., Шагурин И.И. Микросхемотехника. — М.: Радио и связь, 1982. 2. Англо-русский словарь по вычислительной технике / В.К.Зейден- берг, А.Н.Зимарев, А.М.Степанов, Е.К.Масловский; Под ред. Е.К.Мас- ловского. — М.: Русский язык, 1990. 3. Андриенко В.В., Куванов В.В., РучкоА.П. Проектирование цифровой аппаратуры на основе программируемых логических матриц. — М.: ОНТИ «Поиск», 1990. 4. Аристотель. Сочинения. Т. 1. Метафизика. О душе. — М.: Мысль, 1975. 5. Ахманов А. С. Логическое учение Аристотеля. М.: Изд-во соц.-эк. лит- ры, 1960. 6. Большой энциклопедический словарь. — М.: Большая Российская энциклопедия, 1998. 7. Бочаров В.А. Аристотель и традиционная логика. Анализ силлоги- стических теорий. — М.: Изд-во Моск, ун-та, 1984. 8. Браммер Ю.А., Пашук И.Н. Импульсные и цифровые устройства. — М.: Высш, шк., 2002. 9. Верчинова В.М., Нарышкин А.К., Проломов М. С., Сыромятников А.Н. Цифровой автоматический дальномер на интегральных схемах. — М.: МЭИ, 1977. 10. Горохов П.К. Толковый словарь по радиоэлектронике. — М.: Рус- ский язык, 1993. 11. Гребенко Ю.А., Раков В.К. Микропроцессоры. — М.: Изд-во МЭИ, 2000. 12. Калабеков Б.А. Цифровые устройства и микропроцессоры. — М.: Радио и связь, 1997. 13. Корн Г, Корн Т. Справочник по математике для научных работни- ков и инженеров. Определения, теоремы, формулы. — М.: Наука, 1970. 14. Майоров С.А., Кириллов В.В., Приблуда А.А. Введение в микроЭВМ. — Л.: Машиностроение. Ленингр. отд-ние, 1988. 15. Матюшин О.Т. Архитектура и функционирование ПЛИС. — М.: МЭИ, 2003. 16. Матюшин А.К., Нарышкин А.К. Цифроаналоговые преобразователи сигналов. — М.: МЭИ, 1987. 17. Матюшин О. Т. Проектирование цифровых устройств на ПЛИС. — М.: МЭИ, 1999. 18. Матюшин О. Т. Цифровые радиотехнические устройства / Под ред. А.К.Нарышкина. — М.: Изд-во МЭИ, 1990. 312
19. МуренкоЛЛ., Бурков В. М., Широков Ю.Ф. Программаторы запоминаю- щих и логических интегральных микросхем. — М.: Энергоатомиздат, 1988. 20. Нарышкин А.К. Алгебраические диаграммы и характеристические таб- лицы логических функций // Радиотехнические тетради. — 1999. — № 18. 21. Нарышкин А.К. Анализ, синтез и прием кодов Хэмминга // Вест- ник МЭИ. - 2001. - №4. 22. Нарышкин А.К. Импульсные устройства ЭВМ, приборов и систем. — М.: Энергоатомиздат, 1991. 23. Нарышкин А.К. Информативность радиолокационных объектов, сигналов и систем. — М.: МЭИ, 1994. 24. Нарышкин А.К. Комбинационные цифровые автоматы на основе больших интегральных схем. — М.: МЭИ, 1988. 25. Нарышкин А.К. Комбинационные цифровые устройства. — М.: МЭИ, 2002. 26. Нарышкин А.К. Основы алгебры логики. — М.: МЭИ, 2002. 27. Нарышкин А.К. Основы статистического кодирования. — М.: МЭИ, 2002. 28. Нарышкин А.К. Представление информационных двоичных блоко- вых кодов с помощью двумерных кодовых диаграмм // Радиотехниче- ские тетради. — 2000. — № 20. 29. Нарышкин А.К. Преобразование радиолокационной информации в цифровую форму. — М.: МЭИ, 1964. 30. Нарышкин А.К. Синхронный реверсивный двоичный счетчик со сквозным переносом // Методы и устройства преобразования и обработ- ки радиосигналов. Межведомственный тематический сборник № 71/1. — М.: МЭИ, 1985. 31. Нефедов А.В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 10. — М.: РадиоСофт, 2000. 32. Першиков В.И., Савинков В.М. Толковый словарь по информатике. — М.: Финансы и статистика, 1991. 33. Применение интегральных микросхем в электронной вычислитель- ной технике: Справочник / Р. В. Данилов, С. А. Ельцова, Ю.П. Иванов и др.; Под ред. Б. Н.Файзулаева, В. В.Тарабрина. — М.: Радио и связь, 1986. 34. Прянишников В.А. Электроника. Курс лекций. — СПб: КОРО- НАпринт, 2000. 35. Пухалъский Г.И., Новосельцева Т.Я. Цифровые устройства. — СПб.: Политехника, 1996. 36. Ровдо А.А. Микропроцессоры от 8086 до Pentium III Хеоп и AMD-K6-3. - М.: ДМК, 2000. 37. Сизов В.П. Основы микропроцессоров / Под ред. А. К. Нарышкина. — М.: Изд-во МЭИ, 1992. 38. Сикорский Р. Булевы алгебры. — М.: Мир, 1969. 39. Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. — М.: ДОДЭКА, 2000. 40. Угрюмое Е.П. Цифровая схемотехника. — СПб.: БХВ-Петербург, 2001. 41. Хэмминг Р.В. Коды с обнаружением и исправлением ошибок // Сб.: Коды с обнаружением и исправлением ошибок / Под ред. А. М. Пет- ровского. — М.: Изд-во иностр, лит., 1956. 313
42. Цифровая и вычислительная техника: Учебник для вузов / Э. В. Ев- реинов, Ю. Т. Бутыльский, И. А. Мамзелев и др.; Под ред. Э. В. Евреино- ва. — М.: Радио и связь, 1991. 43. Цифровые и аналоговые интегральные микросхемы: Справочник. — М.: Радио и связь, 1990. 44. Цифровые интегральные микросхемы: Справочник. — Минск: Бе- ларусь, Полымя, 1996. 45. Шило В.П. Популярные цифровые микросхемы. — Челябинск: Металлургия, 1988. 46. Bool G. The mathematical analysis of logic. Being an essay towards a calculus of deductive reasoning. Cambridge. — L., 1847. 47. Bool G. An investigation of the laws of thought. — L., 1854. 48. Bool G. Studies in logic and probability. — L., 1952.
ОГЛАВЛЕНИЕ Список сокращений...........................................3 Список условных обозначений.................................5 Предисловие.................................................8 Введение...................................................10 РАЗДЕЛ I ОСНОВЫ АЛГЕБРЫ ЛОГИКИ Глава 1. Основные обозначения и постулаты..................17 1.1. Основные высказывания и переменные.................17 1.2. Основные логические операции.......................18 1.3. Основные постулаты алгебры логики..................20 1.4. Обратные логические операции.......................21 Г л а в а 2. Аналитические формы представления логических функций.23 2.1. Совершенная дизъюнктивная нормальная форма.........23 2.2. Сокращенные, тупиковые и минимальные дизъюнктивные нормальные формы представления функций...................28 2.3. Совершенная конъюнктивная нормальная форма................31 2.4. Представление функций с не полностью заданными аргументами в дизъюнктивной нормальной форме............34 Г л а в а 3. Минимизация логических функционалов с помощью ЭВМ....37 3.1. Структура программы минимизации логического функционала.............................................37 3.2. Ввод исходного логического функционала в ЭВМ.......38 3.3. Определение формы представления минимизируемой функции.................................................39 3.4. Склеивание сопряженных минтермов и импликант.......40 3.5. Исключение избыточных импликант....................43 Глава 4. Представление и минимизация логических функций с помощью диаграмм.........................................46 4.1. Диаграммы Вейча и карты Карно......................46 4.2. Алгебраические диаграммы...........................49 4.3. Выполнение операций над логическими функциями с помощью диаграмм Вейча................................51 Г л а в а 5. Логические функции двух переменных............52 5.1. Таблицы истинности, названия, аналитические выражения и свойства функций двух переменных........................52 315
5.2. Принцип двойственности...............................54 5.3. Обратные логические функции двух переменных..........56 5.4. Функциональная полнота логических функций.........57 5.5. Представление логических функций в системе Word...58 РАЗДЕЛ II КОМБИНАЦИОННЫЕ ЦИФРОВЫЕ УСТРОЙСТВА Г л а в а 6. Основные логические элементы.................61 6.1. Базовые логические элементы, реализующие функции двух аргументов.....................................61 6 2. Взаимозаменяемость логических элементов..............65 6.3. Логические элементы И —ИЛИ и И —ИЛИ—НЕ...............72 Глава 7. Методика анализа и синтеза комбинационных цифровых устройств.........................................76 7.1. Преобразователь кода Грея в натуральный двоичный код.76 7.2. Методика синтеза комбинационных цифровых устройств...80 7.3. Синтез шифратора и дешифратора кода, позволяющего обнаруживать одиночные ошибки............81 7.4. Шифратор и дешифратор кода Хэмминга, исправляющего одиночную ошибку........................84 Г л а в а 8. Шифраторы и дешифраторы......................89 8.1. Шифраторы.........................................89 8.2. Приоритетные шифраторы............................92 8.3. Дешифраторы.......................................96 Гл а в а 9. Мультиплексоры и демультиплексоры............100 9.1. Мультиплексоры...................................100 9.2. Демультиплексоры.................................107 Глава 10. Сумматоры......................................108 10.1. Одноразрядные сумматоры.........................108 10.2. Многоразрядные арифметические сумматоры.........111 10.3. Одно- и многоразрядные алгебраические сумматоры.116 10.4. Сумматоры чисел, представленных в формате с плавающей занятой...................................120 10 5. Арифметические умножители.......................123 Глава 11. Цифровые компараторы...........................125 11.1. Одноразрядные компараторы.......................125 11.2. Многоразрядные компараторы......................126 Глава 12. Комбинационные цифровые устройства на основе программируемых интегральных схем.......................131 12.1. Классификация программируемых интегральных схем.....131 12.2. Программируемые постоянные запоминаюшие устройства .... 134 12.3. Программируемые логические матрицы..............136 12.4. Программируемые логические интегральные схемы.......138 РАЗДЕЛ III ПОСЛЕДОВАТЕЛЬНОСТНЫЕ ЦИФРОВЫЕ УСТРОЙСТВА Глава 13. Общие сведения о последовательностных цифровых устройствах...............................................146 13.1. Определение понятия.............................146 13.2. Классификация...................................147 13.3. Методика синтеза................................148 Глава 14. Триггеры.......................................150 14.1. /^-триггеры ....................................150 14.2. Синхронные .О-триггеры..........................158 14 3. 7-триггеры.....................................163 14.4. Л'-триггеры.....................................168 14.5. Взаимозаменяемость триггеров....................173 Глава 15. Счетчики.......................................179 15.1. Классификация и основные параметры..............179 15.2. Синхронные двоичные счетчики....................180 15.3. Асинхронные двоичные счетчики...................194 15.4. Асинхронные недвоичные счетчики.................198 Глава 16. Регистры.......................................206 16.1. Общие сведения..................................206 16.2. Регистры памяти.................................207 16.3. Регистры сдвига.................................217 16.4. Комбинированные регистры........................227 16.5. Регистры последовательных приближений...........230 РАЗДЕЛ IV МИКРОПРОЦЕССОРЫ Глава 17. Архитектура....................................239 17.1. Структура и принцип функционирования ЭВМ .......239 17.2. Классификация микропроцессорных комплектов интегральных схем......................................240 17.3. Однокристальные микропроцессоры.................242 17.4. Принципы построения модульных микропроцессоров..247 Глава 18. Системы команд.................................252 18.1. Общие сведения..................................252 18.2. Команды однокристальных микропроцессоров........254 18.3. Расширенные наборы команд микропроцессоров......259 Глава 19. Шинные приемопередатчики.......................264 19.1. Многорежимные буферные регистры.................264 19.2. Драйверы двунаправленной магистрали.............266 Г л а в а 20. Арифметико-логическое устройство...........267 20.1. Структура арифметико-логического устройства.....267 20.2. Формирование операндов X и Yсумматора...........267 317
20.3. Сумматор АЛУ.......................................273 20.4. Сдвигатель АЛУ.....................................277 20.5. Мультиплексор /и мультиплексор аккумулятора........278 20.6. Операции пересылки информации в АЛУ................279 20.7. Быстродействие АЛУ.................................281 Гл а в а 21. Разработка программного обеспечения............283 21.1. Общие сведения.....................................283 21.2. Языки программирования.............................284 21.3. Способы адресации..................................287 21.4. Стандартная форма представления программы на языке ассемблера......................................292 Г л а в а 22. Микроконтроллеры..............................296 22.1. Классификация......................................296 22.2. Программное обеспечение микроконтроллеров..........297 22.3. Структура микроконтроллеров семейства АТ89С........301 Глав а 23. Функциональные узлы микропроцессорной системы....303 23.1. Устройства кодирования сигналов клавиатуры пульта оператора.........................................303 23.2. Устройства и алгоритмы устранения дребезга клавишных контактов......................................305 23.3. Световые индикаторные устройства...................308 Список литературы...........................................312
Учебное издание Нарышкин Александр Кириллович Цифровые устройства и микропроцессоры Учебное пособие Редактор Б. Н. Махова Технические редакторы О. С. Александрова, Е. Ф.Коржуева Компьютерная верстка: Н. В. Денисова Корректор И. В. Могилевец Изд. Хе A-1038-I. Подписано в печать 03.10.2005. Формат 60x90/16. Гарнитура «Таймс». Печать офсетная. Бумага тип. Хе 2. Усл. печ. л. 20,0. Тираж 5100 экз. Заказ Хе 15575. Издательский центр «Академия», www.academia-moscow.ru Санитарно-эпидемиологическое заключение Хе 77.99.02.953.Д.004796.07.04 от 20.07.2004. 117342, Москва, ул. Бутлерова, 17-Б, к. 360. Тел./факс: (095)330-1092, 334-8337. Отпечатано на Саратовском полиграфическом комбинате. 410004, г. Саратов, ул. Чернышевского, 59.