Вы находитесь на странице: 1из 198

В. И.

Лобанов

АЗБУКА РАЗРАБОТЧИКА
ЦИФРОВЫХ УСТРОЙСТВ

Данное пособие является общедоступным изложением (букварём) инженерных методов разра-


ботки цифровых устройств, без освоения которых разработчик-цифровик не имеет права на звание
инженера. Кроме того, данное пособие является азбукой для матлогиков. Вскрывая противостояние
инженерной и классической логики, автор показывает, что силлогистика Аристотеля, поддержанная
кванторным исчислением, не имеет никакого отношения к логике здравого смысла. Инженерными ме-
тодами решены фундаментальные проблемы классической логики, возраст которых насчитывает 23
века.

Москва

1998

1
Посвящается моим родителям:
Лобанову Ивану Ефимовичу и
Лобановой Ольге Сергеевне.

ПРЕДИСЛОВИЕ

В процессе своего развития классическая логика превратилась в многоаспектную науку. В 1938


г. русский физик В. И. Шестаков впервые в мире доказал возможность описания и преобразования ре-
лейно-контактных схем методами алгебры логики[38]. C этого момента зарождается практическая логи-
ка. Поскольку практическая логика решала чисто инженерные задачи, то вполне естественно назвать
эту логику инженерной. Логики-гуманитарии, да и подавляющее большинство классических «матлоги-
ков» не владеют инженерной логикой. Эта наука профессионально решает такие проблемы, как графи-
ческий и аналитический синтез комбинационных схем (многоаргументные методы минимизации буле-
вых функций), синтез микропрограммных автоматов (МПА) на базе интегральных и релейных схем. К
проблемам инженерной логики относится также создание искусственного интеллекта, фундаментом
которого является силлогистика. Но классическая силлогистика совершенно беспомощна в решении
поставленных перед нею задач.
Впервые проблемы формального анализа и синтеза цифровых устройств были решены русским
ученым М. А. Гавриловым. В 1948г. он защитил докторскую диссертацию по анализу и синтезу много-
тактных схем. Более 20 лет прошло с момента выхода в свет публикаций [2,11,16], популяризирующих
результаты работ М.А.Гаврилова и В.М.Глушкова[10], но абсолютное большинство инженеров-
цифровиков до сих пор проводят разработки МПА только на основе эвристики без привлечения фор-
мальных методов. Обидно, что талантливейшие российские инженеры спотыкаются на таких мелочах.
К слову сказать, уровень зарубежных разработок с точки зрения формального синтеза МПА ещё ниже.
Мало того, даже В.И.Варшавский в предисловии к книге «Апериодические автоматы» признается в сво-
ём бессилии при синтезе асинхронного счетного триггера, хотя весь теоретический аппарат для реше-
ния этой задачи был уже разработан. В «букваре инженера» читатели найдут примеры синтеза многих
МПА, в том числе и счётного триггера. В связи с планомерным уничтожением науки, производства и
образования в России конца 90-х годов XX века профессиональный уровень инженерного корпуса резко
снизился. Автор глубоко убежден в том, что для освоения инженерных методов разработки цифровых
устройств, а также основ логики, включая силлогистику, вполне достаточно начального образования.
Учитывая проблемы подготовки специалистов в области инженерной логики и наметившееся отстава-
ние классической логики от требований практики, автор ставит перед собой следующие задачи:
1)изложить инженерные методы разработки цифровых устройств на языке, доступном понима-
нию школьников;
2)довести до широкого читателя отечественные (поскольку зарубежных не существует) основы
логики здравого смысла и методы решения логических уравнений, а также алгоритмы анализа и синтеза
силлогизмов.
Рекомендуются к освоению следующие разделы части 1 пособия:
школьникам - 1.1 - 1.4,1.9,3.1 - 3.4,4.1 - 4.5,5.1,6.3;
инженерам - 1.1 - 1.10, 2.2, 2.3, 3.1 - 3.4, 4.1 - 4.5, 5.1 - 5.4, 6.1 - 6.4;
вед. инженерам - дополнительно 2.1, 6.5, 6.6;
логикам - 1.1 - 1.4, 1.9.
Из части 2 рекомендуются к освоению следующие главы:
школьникам - 1, 2, 3, 5, 6;
инженерам - 1, 2, 3, 5, 6;
вед. инженерам - 1-7;
логикам - 1-7.
Поскольку вопросам синтеза МПА и силлогистике посвящено огромное количество публикаций,
2
то автор приводит лишь наиболее значимые с точки зрения практического применения работы.
Автор родился и вырос в Осташкове, родине Л.Ф.Магницкого, основателя Российской математи-
ки, на берегу озера Селигер. Поэтому он не мог не упомянуть жителей этого города и самого озера хотя
бы в названиях алгоритмов. Первая часть книги зародилась и вышла в свет в стенах Научно-
исследовательского института радиотехнической аппаратуры (НИИРТА) при активном содействии ве-
дущих специалистов этого оборонного предприятия. Особая благодарность Инженерам от Бога Кашину
Ф.А. и Столярову А.М. Замысел второй части родился благодаря зав. проблемной лаб. ЭВМ МГУ Бру-
сенцову Н.П., ознакомившему автора с проблемами современной логики. Книга не была бы написана
без помощи администрации ф. «РоссЭко» и Тушинского вечернего авиационного техникума (ТВАТ).
Автор выражает свою признательность руководителям этих организаций Докучаеву А.В. и Немченко
Т.П.

3
ЧАСТЬ 1

Практика инженерной логики.

Глава первая

КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ

1.1 Основные положения алгебры логики

Анализ и синтез логических схем осуществляется на базе аппарата алгебры логики или булевой
алгебры [9]. Излагать весь аппарат не имеет смысла, так как в инженерной практике используются два-
три закона алгебры логики.
В алгебре логики переменные могут принимать только два значения, 0 или 1. Для двух аргумен-
тов существуют 16 логических функций (операций, логических действий). Над переменными в основ-
ном производятся три логических действия: сложение, умножение, отрицание (инверсия), что соответ-
ствует функциям ИЛИ, И, НЕ. Все функции в булевой алгебре могут быть описаны с помощью таблицы
истинности. В нижеследующих таблицах описаны функции И(f1), ИЛИ(f2),НЕ(f3).

Аргументы Функции
x2 x1 f1 f2
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

Аргум. Функция
x f3
0 1
1 0

Вместо функции И часто используется термин «конъюнкция», вместо функции ИЛИ - термин
«дизъюнкция». По ЕСКД логические элементы, реализующие функции И(f1), ИЛИ(f2), НЕ(f3), изобра-
жаются так, как представлено на рисунке.

При написании логических формул для функции И используются следующие знаки : &, точка
или ее отсутствие; для функции ИЛИ - ,+. Функция НЕ обозначается штрихом над аргументом.Мы
для обозначения отрицания будем использовать апостроф. Таким образом , можно записать:
f1 = x2&x1 = x2 x1 = x2x1
f2 = x2 x1 = x2+x1
4
f3 = x’

Основные законы алгебры Буля.

Как уже отмечалось, в булевой алгебре все операции осуществляются с логическими перемен-
ными и подчиняются законам алгебры логики.Опишем некоторые из них.
а) Переместительный закон
а+в=в+а; ав = ва
б) Сочетательный закон
( а + в ) + с = а + ( в + с) ; ( ав )с = а(вс)
в) Распределительный закон
а( в + с ) = ав + ас ; а + вс = (а + в)( а + с )
г) Закон поглощения
а + ав = а( 1 + в ) = а ; а( а + в ) = а + ав = а
д) Закон склеивания
ав + ав’ = а ; ( а + в )(а + в’) = а
е) Идемпотентный закон
a + a = a; a&a=a
ё) Правила Де Моргана
Эти правила справедливы для любого числа аргументов.
а + в + с + .... + z = ( а’в’с’...z’ )’
авс... = ( а’ + в’ + с’ + ... + z’ )’
Эти правила можно описать таким алгоритмом.
Для перехода от логической суммы к логическому произведению необходимо проделать сле-
дующие операции :
1) проинвертировать все слагаемые в отдельности;
2) заменить знаки дизъюнкции на знаки конъюнкции;
3) проинвертировать получившееся выражение.
Аналогично выполняется переход от логического произведения к логической сумме.В инженер-
ной практике используются лишь правила Де Моргана и закон склеивания(в виде карт Карно).
Кроме основных функций И, ИЛИ, НЕ в алгебре логики часто используются функции равно-
значности (эквивалентности) и неравнозначности (сумма по модулю 2 ).
Для обозначения этих функций используются следующие знаки : равнозначность - ~ , сумма по
модулю 2 - . Содержание этих функций отражено в таблице .

а в f4 f5
0 0 1 0
0 1 0 1
1 0 0 1
1 1 1 0

Из таблицы получаем:
f4 = а ~ в = а’в’ + ав
f5 = а в = а’в + ав’
Из таблицы видно, что
f4 = f5’ или f5 = f4’
Таким образом,
а’в’ + ав = ( ав’ + а’в )’ , или
а~в = ( а в )’ , а в = (а~в)’

5
1.2 Разновидности логических интегральных схем ( ИС )

Логические ИС, выпускаемые промышленностью, являются функционально полными системами


логических элементов и образуют базис построения логических схем.
Функционально полная система логических элементов - это такой набор элементов, используя
который можно реализовать любую сколь угодно сложную логическую функцию. К числу функцио-
нально полных систем относятся, например, системы, реализованные на элементах «И-НЕ» либо на
элементах «ИЛИ-НЕ».
Наиболее распространены в настоящее время серии 1530 ,1533,555,533,561,1561,
564,1564,1554,176. Различаются эти серии по быстродействию. Наиболее быстродействующей серией
является серия 1530, самой инерционной - серия 176. Задержки в элементах серии 1530 порядка 3 нс,
задержки в таких же элементах серии 176 - порядка 200нс. Максимальным потреблением обладает са-
мая быстродействующая серия 1530, минимальным - серия 1554. Самой популярной серией является
КР1554.
Технические характеристики КР1554.
Широкий набор типономиналов микросхем.
Цоколёвка микросхем совпадает с цоколёвкой микросхем стандартных серий 74(К155, КР1533 и
т. д.) за исключением аналогов серии 4000(К561, К176).
Стандартные КМОП входные/выходные уровни.
Высокая нагрузочная способность по выходу(24 мА).
Тактовая частота до 150 МГц.
Диапазон напряжений питания микросхем (2-6) В ±10%.
Возможность работы на шину с волновым сопротивлением 50 Ом.
Рабочий диапазон температур от –45 до +85 °С.
Высокая устойчивость к статическому электричеству.
Высокая устойчивость к защёлкиванию.
Ток потребления в статическом режиме 4 мкА, на частоте 10 МГц – 4 мА, на частоте 40 МГц – 20
мА.

В состав перечисленных серий входят , например, ИС, представленные на рисунке. На этом ри-
сунке контурными линиями ограничен состав одного корпуса ИС.
Пусть необходимо реализовать функцию f = а + вс в базисе И-НЕ.
Используя правило Де Моргана, получим: f = ( а’(вс)’)’ .Её реализация представлена на рисунке.

6
7
1.3. Синтез комбинационных схем

Синтез комбинационных схем можно проиллюстрировать решением простой задачи.


Задача 1.
Приёмная комиссия в составе трех членов комиссии и одного председателя решает судьбу аби-
туриента большинством голосов. В случае равного распределения голосов большинство определяется
той группой, в которой оказался председатель приемной комиссии. Построить автомат, обеспечиваю-
щий определение большинства голосов.
Решение.
Пусть f - функция большинства голосов. f = 1, если большинство членов комиссии проголосова-
ло за приём абитуриента, и f = 0 в противном случае.
Обозначим через x4 голос председателя комиссии. x4 = 1, если председатель комиссии проголо-
совал за приём абитуриента. x3, x2, x1 - голоса членов приёмной комиссии.
С учётом вышеуказанных допущений условие задачи можно однозначно представить в виде таб-
лицы истинности.
Заполнение таблицы осуществляем с учётом того, что функция f является полностью определён-
ной, т.е. она определена на всех возможных наборах переменных x1 - x4. Для n входных переменных
существует N = 2n наборов переменных. В нашем примере N = 24 = 16 наборов.
Записывать эти наборы можно в любом порядке, но лучше в порядке возрастания двоичного ко-
да.

x4 x3 x2 x1 f
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

Примечание. Здесь и далее под набором будем понимать конъюнкцию всех входных перемен-
ных. Существует множество научных определений для набора(конституента,терм,импликанта,минтерм
и т.д.),но они только вносят путаницу.
Все наборы, на которых функция принимает значение 1 , будем называть единичными, или рабо-
чими. Наборы, на которых функция принимает значение 0, будем называть нулевыми, или запрещен-
ными.
Для того, чтобы по таблице истинности найти функцию f, достаточно выписать все единичные
наборы и соединить их знаком дизъюнкции.
Таким образом,
f = x4’x3x2x1 + x4x3’x2’x1 + x4x3’x2x1’ + x4x3’x2x1 + x4x3x2’x1’ + x4x3x2’x1 + x4x3x2x1’ + x4x3x2x1
8
Полученная форма функции называется совершенной дизъюнктивной нормальной формой
(СДНФ), так как каждое логическое слагаемое представляет собой конъюнкцию всех аргументов.
Очевидно, применяя основные законы булевой алгебры, мы могли бы аналитически уменьшить
сложность полученного выражения. Но это наихудший способ минимизации булевых функций. Пока-
жем это на предыдущем примере. Представим полученную функцию в виде логической суммы цифро-
вых рабочих наборов:
f = 0111+1001+1010+1011+1100+1101+1110+1111 =
= (0111+1111)+(1001+1011)+(1010+1011)+(1100+1101)+(1110+1111) =
= -111+10-1+101-+110-+111- = -111+10-1+(101-+111-)+(110-+111-) =
= -111+10-1+1-1-+11-- = x3x2x1+ x4x3’x1+ x4x2+ x4x3.
Как мы потом увидим, результат минимизации должен быть компактнее. Но при аналитической
минимизации придётся ввести неочевидную группировку: (1101+1111).
f = 0111+1001+1010+1011+1100+1101+1110+1111 =
=(0111+1111)+(1001+1011)+(1010+1011)+(1100+1101)+(1110+1111) + (1101+1111).=
= -111+10-1+101-+110-+111-+11-1 = -111+(10-1+11-1)+(101-+111-)+(110-+111-) =
= -111+1--1+1-1-+11-- = x3x2x1+ x4x1+ x4x2+ x4x3 = x3x2x1+ x4 (x1+ x2+ x3).
После длинных и неочевидных группировок удалось, наконец, получить правильное решение.
При числе аргументов более 4-х аналитический метод минимизации не рационален.

1.4.Минимизация полностью определённых булевых функций.

Существует несколько способов минимизации булевых функций. Прежде всего это метод Квай-
на-Мак-Класки, метод Блека-Порецкого и метод минимизации с помощью карт Карно или диаграмм
Вейча [9,17]. Здесь будет подробно излагаться метод карт Карно, как самый удобный метод, позволяю-
щий быстро решать задачи минимизации булевых функций от достаточно большого числа аргументов
(6-12). При этом получается минимальная форма в базисе И, ИЛИ, НЕ.
Карты Карно и диаграммы Вейча хорошо описаны в [9], но лишь для небольшого числа пере-
менных.
Существуют карты Карно на 2 , 3 , 4 , 5 и 6 переменных[27]. Причем последние стали использо-
ваться достаточно недавно. На рисунке представлены карты Карно для 2, 3, 4, 5 и 6 аргументов.

Карты и прямоугольники Карно.

9
Метод Карно основан на законе склеивания. Склеиваются наборы , отличающиеся друг от друга
значением одного разряда. Такие наборы называются соседними. Карно закодировал клетки своей кар-
ты так ,что в соседних клетках оказались соседние, а значит, склеивающиеся наборы. Соседними могут
быть не только отдельные клетки, которые мы назовем элементарными квадратами Карно, но и целые
группы соседних клеток(назовем их прямоугольниками Карно). Под прямоугольником Карно[18] будем
понимать некоторую, зачастую разрозненную фигуру покрытия, все соседние клетки которой закодиро-
ваны соседними наборами. Например, на вышеприведённом рисунке в поле карты для 4-х переменных
изображён прямоугольник Карно P, состоящий из четырёх элементарных квадратов Карно, описывае-
мых наборами x4’x3’x2’x1’ , x4’x3’x2x1’ , x4x3’x2’x1’ , x4x3’x2x1’ . Если над логической суммой этих четы-
рёх наборов произвести последовательно операции склеивания, то мы аналитически получим результат
в виде импликанты (под импликантой будем понимать неполный набор)x3’x1’. Карта Карно позволяет
получить этот результат графически значительно быстрее и проще. Для решения этой задачи использу-
ем алгоритм графической минимизации.Кстати говоря,сам Карно никакого алгоритма не предложил.

Алгоритм графической минимизации логических функций.

1. Заполнить карту Карно нулями и единицами в соответствии с таблицей истинно-


сти.
2. Покрыть все единичные наборы минимальным количеством прямоугольников Карно, каждый
из которых имеет максимальную площадь.
3. Каждому прямоугольнику Карно соответствует одна импликанта, причём, если в границах
прямоугольника Карно какая-либо переменная принимает значения как 0 , так и 1 , то она склеивается.
Примечание. Если в карте Карно нулей окажется меньше чем единиц, то удобнее прямоугольни-
ками Карно покрыть все нулевые наборы. В результате мы получим инверсию минимизируемой функ-
ции.
Сущность алгоритма достаточно прозрачна. Стремление к минимальному количеству прямо-
угольников Карно приводит в результате к минимальному количеству слагаемых в булевой функции.
Требование получения максимальной площади прямоугольника Карно вызвано стремлением миними-
зировать длину каждого слагаемого булевой функции.
Пусть булева функция Y задана так, что в поле прямоугольников Карно Р и Т вышеприведённого
рисунка оказались все единичные наборы, а в остальных клетках карты Карно разместились все нуле-
вые наборы данной функции. В соответствии с пунктом 3 алгоритма Карно прямоугольник Р будет
представлен импликантой x3’x1’ , а прямоугольник Т - имликантой x2x1. Таким образом, функция
Y=x3’x1’ + x2x1 .

1.5.Карты Карно для 7, 8, 9 и 10 переменных.

До сих пор сохранилось мнение, что карты Карно для 7-10 переменных являются труднообозри-
мыми, поэтому ни в какой литературе,кроме [16,17], нельзя найти не только описания метода работы с
картами Карно на большое количество переменных, но и самих карт. Этим же обстоятельством объяс-
няется тот факт, что до недавнего времени в литературе редко встречались карты Карно даже для 6 пе-
ременных. Прежде,чем приступить к рассмотрению многоаргументных карт Карно,покажем на простых
примерах, как осуществляется соседнее кодирование для произвольного числа переменных. Для одной
переменной существует только соседнее кодирование, так как она кодируется нулём и единицей. Чтобы
перейти к соседнему кодированию для двух переменных x2 и x1 предлагается следующая операцию. На-
пишем в один столбец коды для x1 .Между нулём и единицей для столбца x1 проведём ось, которую
назовём осью симметрии 1-го ранга.
x1
0
----
1
Проведём под этим столбцом ось симметрии , которую в дальнейшем будем называть осью сим-
метрии 2-го ранга, и продолжим столбец кодов для x1 симметрично относительно этой оси (симметрич-
10
но относительно оси симметрии 2-го ранга разместятся и оси симметрии 1-го ранга).
x1
0
----
1
------
1
----
0
Дополним одноразрядный код до двухразрядного, для чего выше оси симметрии впишем для x2
нули , а ниже - единицы.

x2 x1
00
----
01
------
11
----
10
Таким образом , мы осуществили соседнее кодирование для двух переменных. Чтобы построить
соседние коды для трёх переменных , проведём под столбцами двухразрядных кодов ось симметрии 3-
го ранга и продолжим эти столбцы вниз симметрично относительно оси 3-го ранга, т.е. осуществим
симметричное отображение относительно оси 3-го ранга.
x2 x1
0 0
----
0 1
------
1 1
----
1 0
---------
1 0
----
1 1
------
0 1
----
0 0
Дополним двухразрядные коды до трёхразорядных, вписав в третьем разряде нули выше оси
Карно 3-го ранга и единицы ниже этой оси. Получим соседнее кодирование для трёх переменных.
x3 x2 x1
0 0 0
----
0 0 1
-------
0 1 1
----
0 1 0
-------------
1 1 0
11
----
1 1 1
-------
1 0 1
----
1 0 0

Следовательно, для того, чтобы осуществить соседнее кодирование для (Р+1) переменных, если
известно соседнее кодирование для Р переменных, необходимо выполнить следующий алгоритм:
1) под столбцом известного Р-разрядного соседнего кодирования провести ось симметрии (Р+1)-
го ранга ;
2) осуществить симметричное отображение относительно оси симметрии (Р+1) - ранга всех Р-
разрядных кодов и осей симметрии всех рангов до ранга Р включительно ;
3) дополнить Р-разрядные коды слева одним разрядом, в котором записать 0 для всех кодов выше
оси симметрии (Р+1)-го ранга и 1 для кодов, расположенных ниже оси симметрии (Р+1)-го ранга.
Соседнее кодирование карт Карно по вышеизложенному алгоритму производится как для верти-
кальных, так и для горизонтальных сторон карт. Примеры кодирования карт Карно приведены на ри-
сунке. На нём стрелками обозначены оси симметрии, ранг которых отмечен цифрами, стоящими рядом
со стрелками .

Карта Карно на 8 переменных.

Покрытие всех единичных наборов булевой функции, размещённых в карте Карно, прямоуголь-
12
никами Карно не вызывает затруднений, если функция зависит не более, чем от 6 переменных. Обозри-
мость карт Карно для большего числа переменных усложняется, так как становится трудно определить,
соответствует ли данная фигура покрытия понятию прямоугольника Карно. Определение достоверности
прямоугольника Карно основано на принципе симметрии, значительно повышающем обозримость карт
Карно, и осуществляется с помощью приводимого ниже алгоритма.

Алгоритм проверки достоверности прямоугольника Карно


( принцип симметрии )

1. Если предполагаемый прямоугольник Карно (ППК) охватывает одну ось симметрии , либо не
охватывает ни одной, то перейти к п.4.
2. Если ППК располагается по обе стороны от нескольких осей симметрии, то он должен быть
симметричен относительно той из этих осей, которая имеет максимальный ранг, иначе данная фигура
не является прямоугольником Карно.
3. Разбить исходный ППК пополам. Считать любую его половину новым ППК. Перейти к п.1.
4. Конец.
Этот алгоритм необходимо применить дважды : относительно горизонтальных и относительно
вертикальных осей симметрии.
Проверим достоверность прямоугольника Карно А на вышеприведённом рисунке. Прямоуголь-
ник А размещается по обе стороны от горизонтальной оси 4-го ранга. Симметричность его очевидна.
Верхняя половина фигуры А симметрична относительно горизонтальной оси симметрии 1-го ранга. Так
как ППК охватывает одну единственную ось симметрии , то проверка фигуры покрытия А на соответст-
вие принципу симметрии относительно горизонтальных осей закончена.
Приступаем к проверке принципа симметрии относительно вертикальных осей симметрии. Фи-
гура покрытия А размещается по обе стороны от вертикальной оси симметрии 4-го ранга и симметрич-
на относительно этой оси. Левая половина фигуры А симметрична относительно оси симметрии 3-го
ранга. После повторного деления левая половина фигуры покрытия оказалась симметричной относи-
тельно оси симметрии 2-го ранга. После 3-го деления ППК не охватывает ни одной оси симметрии, на
этом проверка достоверности прямоугольника Карно заканчивается. Таким образом, фигура покрытия
А действительно является прямоугольником Карно. Аналогично доказывается, что фигура покрытия В
также является прямоугольником Карно.
На рисунке даны примеры фигур, не являющихся прямоугольниками Карно.Фигуры k, m и n не
являются прямоугольниками Карно в силу нарушения принципа симметрии. Фигура n не симметрична
относительно горизонтальной оси симметрии 2-го ранга, фигура m не симметрична относительно вер-
тикальной оси симметрии 3-го ранга. Фигура k симметрична относительно оси симметрии 3-го ранга, но
её половина не симметрична относительно оси 2-го ранга.

13
Алгоритм «НИИРТА» графической минимизации булевых функций.

1. Заполнить карту Карно нулями и единицами в соответствии с таблицей истинности или задан-
ным алгебраическим выражением.
2. Покрыть все элементарные квадраты Карно, в которых записаны единицы, минимальным ко-
личеством фигур покрытия, каждая из которых имеет максимальную площадь.
3. Проверить каждую фигуру покрытия на соответствие принципу симметрии. В противном слу-
чае изменить контур фигуры покрытия в соответствии с принципом симметрии так, чтобы она превра-
тилась в прямоугольник Карно.
4. Каждому прямоугольнику Карно соответствует одна импликанта, причём если в границах
прямоугольника Карно какая-либо переменная принимает значения как 0 , так и 1 , то эта переменная не
войдёт в импликанту.

Применим карту Карно для решения задачи 1. На рисунке даны два варианта решения.
f = x4x1 + x4x2 + x4x3 + x3x2x1
f’ = x4’x1’ + x4’x2’ + x4’x3’ + x3’x2’x1’
Эти выражения представляют собой пример дизъюнктивной нормальной формы (ДНФ).
В некоторых случаях приведение результата минимизации к скобочной форме позволяет умень-
шить количество ИС , необходимые для реализации булевой функции. Скобочная форма для f имеет
вид:
f = x4(x1 + x2 + x3) + x3x2x1

Карта Карно для решения задачи 1.

1.6.Оценка сложности реализации булевых функций


Приблизительную оценку реализации логической функции можно дать по ДНФ, подсчитав ко-
эффициент сложности Кс, равный общему количеству переменных, входящих в ДНФ,плюс количество
импликант. Например, для СДНФ к задаче 1 Кс = 32+8=40, а для отминимизированной функции Кс =
9+4=13.
При реализации в конкретном элементном базисе обе функции примут вид, представленный на
рисунке.Из рисунка видно , что реализация функции по СДНФ потребовала 5 корпусов ИС, по мини-
мальной форме - 1,58 корпуса ИС , по скобочной форме - 1,16 корпуса. Таким образом, минимизация
по карте Карно дала нам трёхкратный выигрыш по корпусам ИС относительно реализации по СДНФ.
Реализация по скобочной форме уменьшила объём оборудования ещё на 30%.

14
Схема автомата до и после минимизации.

1.7. Анализ комбинационных схем .

В процессе работы с цифровыми схемами иногда возникает задача определения функции, кото-
рую реализует данная структура.
Задача 2.
На рисунке представлена принципиальная схема комбинационного автомата. Определить его
функцию.

15
Схема автомата к задаче 2.

Решение.
Определим вначале прмежуточную функцию
f1 = x1’’ + x2’’ + x3’’ = x1 + x2 + x3
Затем f2 и f3
f2 = (f1x4)’ = ((x1 + x2 + x3 )x4)’
f3 = (x1x2x3)’
Функция f = f2’ + f3’ = (x1 + x2 + x3)x4 + x1x2x3 , т.е. схема реализует скобочную форму автомата,
определяющего большинство голосов.

1.8. Формы задания булевых функций.


Об одной форме задания булевых функций мы уже говорили - это таблица истинности. Иногда
применяется более компактная запись, использующая восьмеричные,десятичные или шестнадцатерич-
ные эквиваленты наборов. Например, набор x4x3x2’x1’ может быть представлен обобщённым кодом 1100
, десятичным эквивалентом которого является число 12.Удобнее всего 8-чные и 16-чные коды.
Задача 3.
Полностью определённая булева функция от 4-х переменных задана десятичными рабочими на-
борами : РН(4) = 5, 6, 7, 8, 9, 10, 11.Число в скобках указывает количество переменных. Найти мини-
мальную форму этой функции.
Решение.
Так как функция является полностью определённой , то запрещёнными наборами ЗН(4) являются
наборы 0 - 4, 12 - 15. Исходя из этой информации , составляем таблицу истинности и осуществляем ми-
нимизацию по карте Карно.

Таблица 4.

РН(4) x4 x3 x2 x1 f
5 0 1 0 1 1
16
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 1
11 1 0 1 1 1

ЗН(4) x4 x3 x2 x1 f
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 0

По карте Карно получаем результат:


f = x4x3’ + x4’x3(x1 + x2)

Решение задачи 3.

Задание 1.
Найти минимальную форму полностью определённых булевых функций, заданных 10-чными ра-
бочим наборами :
1-1) РН(4) = 0, 1, 5, 7 - 9, 13, 15
1-2) РН(5) = 4, 6, 8, 10, 13, 17, 24, 30
1-3) РН(6) = 1 - 8, 16 - 24, 32 - 40
1-4) РН(7) = 7 - 15, 23 - 31, 39 - 47, 50 - 63
1-5) РН(8) = 7 - 15, 100 - 132

1.9. Минимизация недоопределённых булевых функций

Функция от n переменных называется недоопределённой, если она задана не на всех 2n наборах.


Задача минимизации такой функции заключается в оптимальном доопределении, которое позволило бы
покрыть рабочие наборы минимальным количеством прямоугольников Карно, каждый из которых имел
бы максимальную площадь.
Задача 4.
Найти минимальную форму функции y, представленной на рисунке.
Решение.
Функция задана только на 5 наборах. Добавим к трём рабочим наборам ещё пять, а именно :
17
0000, 0011, 1000, 1011, 1010. Все оставшиеся наборы доопределим как запрещённые. В результате тако-
го доопределения получим прямоугольник Карно, состоящий из 8 элементарных квадратов Карно. Это-
му прямоугольнику соответствует функция :
y = b’

Решение задачи 4.

В этом разделе изложен общепринятый подход к минимизации недоопределённых логических


функций(НОЛФ). С точки зрения самодиагностики нужно учитывать входные наборы, на которых
функция не определена. Дело в том, что зачастую вышеназванные наборы не должны появляться в нор-
мально работающем устройстве. Поэтому необходимо фиксировать появление таких наборов с целью
выработки контрольных сигналов, несущих информацию о сбое или отказе.

1.10. Минимизация системы булевых функций.

Существуют достаточно сложные методы минимизации системы булевых функций . Однако все
эти методы не дают оптимального решения, поэтому при инженерном синтезе комбинационных схем
осуществляется раздельная минимизация функций, которая тоже не всегда обеспечивает минимальное
решение, но подкупает простотой.
Задача 5.
Построить преобразователь двоичного кода, получаемого на выходе делителя частоты на 12, в
двоично-десятичный код. Условие задачи отражено в таблице . Делитель работает в коде 8-4-2-1.

x4 x3 x2 x1 y5 y4 y3 y2 y1
0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 1
0 0 1 0 0 0 0 1 0
0 0 1 1 0 0 0 1 1
0 1 0 0 0 0 1 0 0
0 1 0 1 0 0 1 0 1
0 1 1 0 0 0 1 1 0
0 1 1 1 0 0 1 1 1
1 0 0 0 0 1 0 0 0
1 0 0 1 0 1 0 0 1
1 0 1 0 1 0 0 0 0
1 0 1 1 1 0 0 0 1
Решение.
Для каждой функции yi заполняем карту Карно, производим доопределение и осуществляем ми-
нимизацию. Весь процесс отражён на рисунке.
В результате минимизации получаем систему функций:
y1 = x1
18
y2 = x4’x2
y3 = x3
y4 = x4x2’
y5 = x4x2

Карты Карно к задаче 5.

Задача 6.
Построить один разряд многоразрядного сумматора.
Решение.
Пусть ai и вi - значения i-ых разрядов слагаемых а и в , Pi и Si - значения переноса и суммы на
выходе i-го разряда, Pi-1 - значение переноса на выходе предыдущего разряда, тогда работу сумматора
можно описать с помощью таблицы истинности.

ai вi Pi-1 Pi Si
0 0 0 0 0
0 0 1 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 1

Имеем систему полностью определённых булевых функций. Производим раздельную минимиза-


цию (см. рисунок).
Si = ai’вi’Pi-1 + ai’вiPi-1’ + aiвi’Pi-1’ + aiвiPi-1 = Pi-1(ai~вi) + Pi-1’(ai вi) =
Pi = вiPi-1 + aiPi-1 + aiвi

19
Решение задачи 6.

Для реализации лучше Pi = aiвi + Pi-1(ai~вi)’ , так как может быть использован общий для Si и Pi
сомножитель (аi~вi)’. Схема сумматора представлена на рисунке. Здесь же дано условное обозначение
одноразрядного сумматора , где А и В - одноразрядные слагаемые, P0 и P1 - входной и выходной пере-
носы, S1 - сумма.
На этом же рисунке изображён двухразрядный сумматор, выполненный на микросхеме 133ИМ2.
Здесь А1, В1, А2, В2 - соответственно значения первых и вторых разрядов слагаемых А и В; S1 и S2 - 1-
ый и 2-ой разряды суммы; P0 - входной перенос для первого разряда, P2’ - выходной перенос.

Схемы сумматоров.

Задание 2.
2-1. Построить 2/(2-10) преобразователь для делителя частоты на 24 , работающего в коде 16-8-4-
2-1.
2-2. Построить 4-входовой сумматор для суммирования одноразрядных двоичных чисел.

1.11. Синтез комбинационных схем на мультиплексорах и ПЛИС.

Мультиплексором называется такая комбинационная схема(КС), которая реализует функцию:


20
Y = ∪XiAi , где
Xi - i - й входной сигнал,
Ai - i - й адресный код.

Мультиплексор коммутирует вход Xi на выход Y, если на адресном входе установлен код Ai .


Если адресная шина мультиплексора является n - разрядной , то синтез КС по таблице истинности от
(n+1) переменных не требует дополнительных элементов. При синтезе автомата для тайного голосова-
ния(задача 1 из раздела 1.3) были получены следующие функции адресных входов мультиплексора :
A0 = 0;
A1 = A2 = A3 = A4 = A5 = A6 = X4;
A7 = 1.

Удобнее и проще синтезировать КС на базе ПЛИС(программируемых интегральных схем). К их


числу относятся программируемые логические матрицы(ПЛМ), программируемая матричная логи-
ка(ПМЛ), матрицы логических ячеек(МЛЯ) и перепрограммируемые постоянные запоминающие уст-
ройства(ППЗУ).Наиболее популярные ПЛИС:
ПЛМ - К556РТ2
ПМЛ - К15556ХП4
МЛЯ - БИС фирм Xilinx, Altera
ППЗУ - К155РЕ3,К556РТ4,К573РФ5, К573РФ8.
Для ПЛМ, ПМЛ и МЛЯ требуется оязательная минимизация, для ППЗУ необходимо приведение
функции к СДНФ.

Глава вторая

МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ МЕТОДОМ ОБОБЩЁННЫХ КОДОВ

В СДНФ функции от n переменных каждый набор xi можно заменить последовательностью


нулей и единиц. Такая последовательность носит название обобщённого кода.
Метод обобщённых кодов был разработан в конце 60-х годов на 21-й кафедре Академии им.
Дзержинского д. т. н. Лавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведе-
ние его до инженерных методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С.,
к.т.н. Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники", 1972 г.).
Например, набору x4x3’x2x1’ соответствует обобщённый код 1010. Для ДНФ обобщённый код
(ОК) имеет прочерки на местах отсутствующих переменных. Например, для функции от 5 переменных
набору x5x2’ соответствует ОК = 1--0-.
Методом обобщённых кодов удобно работать с функциями, заданными таблицами истинности.
Причём рабочим наборам соответствуют рабочие обобщённые коды (РОК), запрещённым наборам -
запрещённые обобщённые коды (ЗОК).
Введём понятие оценочной функции. Оценочная функция F0p(F1p) определяет количество нулей
(единиц) для одного разряда всех РОК. Оценочная функция F0з(F1з) определяет количество нулей ( еди-
ниц ) для одного разряда всех ЗОК.
21
Функция вида F0 = F0р + F1з называется нулевой оценочной функцией.
Функция вида F1 = F1р + F0з называется единичной оценочной функцией.
В результате минимизации булевой функции получается минимальная ДНФ (МДНФ), состоящая
из простых импликант, т.е. таких импликант, дальнейшая минимизация которых не возможна. В методе
обобщённых кодов простой импликанте соответствует минимальный обобщённый код (МОК). Будем
говорить , что даннный МОК покрывает определённый РОК, если нули и единицы в этом РОК стоят в
тех же разрядах, что и в данном МОК.
Сущность метода ОК заключается в том , чтобы по максимуму оценочных функций выбрать та-
кие переменные , которые чаще всего встречаются в РОК и реже всего в ЗОК , и на их основе построить
такую совокупность минимальных обобщённых кодов , которая покрывала бы все РОК и не покрывала
бы ни одного ЗОК.

2.1. Общий алгоритм определения МОК.

Алгоритм 1.
1. Присвоить индексу МОК значение 1, т.е. i :=1.
2. Подсчитать по таблице истинности F0 и F1 для всех разрядов РОК и ЗОК.
3. В качестве базы МОКi (БМОКi) или дополнение к БМОКi выбрать переменную с максималь-
ной F0 или F1 . Если F0 = max, то переменная входит в БМОКi нулём. Если F1=max , то переменная вхо-
дит в БМОКi единицей. Если несколько переменных имеют максимальные оценочные функции, то вы-
брать в качестве БМОК ту переменную, у которой соответствующая запрещённая оценочная функция
(F0з, F1з) имеет минимальное значение; в противном случае в качестве БМОК взять любую переменную
с максимальной оценочной функцией.
4. Выписать все РОК и ЗОК , покрываемые базой МОКi. Если БМОКi не покрывает ни одного
РОК или покрывает все ЗОК , то приравнять нулю оценочные функции F0 и F1 для данного разряда и
перейти к п.3. Если покрываемых ЗОК нет , то перейти к п.6.
5. Подсчитать F0 и F1 для всех разрядов РОК и ЗОК, покрытых данной базой, кроме тех разрядов,
которые образуют БМОКi . Присоединить к БМОКi переменную (дополнение к БМОКi ) с максималь-
ной оценочной функцией в соответствии с требованиями п.3. Считать этот ОК новой базой МОКi . Если
новая БМОКi покрывает столько же ЗОК , сколько и на предыдущем шаге , то приравнять нулю оце-
ночные функции для дополнения к БМОКi , отбросить присоединённую переменную и добавить к
БМОКi переменную с максимальной оценочной функцией в соответствии с требованиями п.3, считать
полученный ОК новой БМОКi . Если БМОКi покрывает хотя бы один ЗОК, перейти к п.4.
6. Принять в качестве МОКi базу МОКi.
7. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными кода-
ми, перейти к п.9.
8. Выписать из исходной таблицы истинности все ЗОК и те РОК , которые не покрыты мини-
мальными обобщёнными кодами . Считать вновь полученную таблицу исходной таблицей истинности .
Увеличить индекс МОК на единицу, т.е. i :=i+1. Перейти к п.2.
9. Конец.
Поясним положение пп.4 и 5 алгоритма 1. Пусть таблица истинности состоит из одного РОК
1110 и трёх ЗОК : 1010, 0110 и 1111.
1110 РОК
--------------
1010
0110 ЗОК
1111
---------------
2232 F0
2212 F1
---------------
После подсчёта оценочных функций оказалось, что для второго разряда F0 = 3 = max. Если в со-
ответствии с максимумом оценочной функции взять в качестве БМОК код --0- , то этот код не покроет
22
ни одного РОК, что недопустимо, т.к. БМОК обязательно должна покрыть хотя бы один РОК.
Несколько иная ситуация складывается в том случае , когда БМОК, найденная по максимуму
оценочной функции , покрывает часть РОК и все ЗОК. Пусть функция задана пятью РОК и одним ЗОК.
1110
1000
1011 РОК
0111
0010
-------------------
1010 ЗОК
-------------------
3323 F0
3343 F1
Если в соответствии с максимумом взять в качестве БМОК код --1-, то в конце концов мы по-
строим некоторый ОК, не покрывающий ни одного ЗОК , но длина этого ОК не будет минимальной.
Проиллюстрируем выполнение алгоритма 1 примерами.

Задача 7.
Построить МДНФ булевой функции y, заданной таблицей, по методу ОК.
x4x3x2x1 y
0100 1
1100 1
0 1 10 1
1110 1
0000 0
1111 0
2024 F0р
2420 F1р
1111 F0з
1111 F1з
3135 F0
3531 F1
Решение .
1. Выбираем в качестве БМОК1 переменную x3 , т.е. БМОК1 = -1--. Эта БМОК1 покрывает все
РОК и один ЗОК .
2. Выписываем эти РОК и ЗОК (см.след. таблицу ).
3. По максимальному F0 = 5 определяем вторую переменную базы МОК1. Это переменная x1. Она
входит в БМОК инверсным значением , т.е. БМОК1 = -1-0.
4. Так как БМОК1 = -1-0 не покрывает ни одного ЗОК и покрывает все РОК, то минимизацию
считаем законченной и принимаем МОК1 = БМОК1 = -1-0 , т.е.
y = x3x1’ .
Такой же результат получается и по карте Карно .

x4x3x2x1 y
0100 1
1100 1
0110 1
1110 1
1111 0
3-35 F0
2-20 F1

23
Задача 8.

Построить МДНФ функции , заданной таблицей.


x8x7x6x5x4x3x2x1 y
0 0 1 0 0 1 1 1 1
0 0 1 0 0 0 0 0 1
0 0 1 0 0 0 1 0 1
0 0 1 0 0 1 1 0 1
0 0 1 0 0 1 0 0 1
0 0 1 0 1 1 0 0 1
0 0 1 0 1 1 1 0 1
0 0 1 0 1 0 1 0 1
0 0 1 0 1 0 0 0 1
0 0 1 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0
9 9 1 10 5 4 4 9 F0
2 2 10 1 6 7 7 2 F1
Решение.
1. Принимаем БМОК1 по F1 = 10 (можно по F0 =10).
БМОК1 = --1-----
БМОК1 покрывает один ЗОК и все РОК.
2. Выписываем все РОК и ЗОК , покрываемые БМОК1. После подсчёта оценочных функций ока-
зывается, что максимум F0 приходится на x1, поэтому
БМОК1 = --1----0
МОК1 = БМОК1 = --1----0
3.Непокрытым оказался только один РОК. Выписываем этот РОК и все ЗОК в таблицу.

0 0 1 0 0 1 1 1 РОК
0 0 1 0 0 0 0 1 ЗОК
0 0 0 1 0 0 0 0
1 1 1 2 1 0 0 1 F0
2 2 2 1 2 3 3 2 F1

4. Находим БМОК2 = -----1--


МОК2 = БМОК2 = -----1--
Результат минимизации выглядит так :
y = x6x1’ + x3
Такой же результат получен и по карте Карно.
24
Задание 3.
Найти минимальную форму функций , указанных в задании 1, методом обобщённых кодов.

25
2.2. Алгоритм соседнего определения базы МОК.
Алгоритм 1 требует раздельного размещения РОК и ЗОК. Приведение таблицы истинности к та-
кому виду усложняет метод ОК.

Процесс минимизации методом ОК может быть существенно упрощен, если определение БМОК
производить с использованием приводимого ниже алгоритма.

Алгоритм 2.
1. Присвоить индексу МОК значение 1, т.е. i := 1 .
2. Присвоить индексу РОК значение 1 , т.е. j := 1.
3. Взять РОК из исходной таблицы истинности и, сравнивая его со всеми ЗОК , определить пере-
менные , по которым РОК может быть склеен с ЗОК. Эта совокупность переменных и будет базой МОКi
. Перейти к п.7.
4. Если РОКj не имеет соседних ЗОК, то j := j + 1 и перейти к п.3. Если в таблице истинности нет
ни одного РОК, соседнего хотя бы с одним ЗОК , то перейти к п.5.
5. Подсчитать по таблице истинности F0 и F1 для всех разрядов.
6. В качестве базы МОКi (БМОКi ) или дополнения к БМОКi выбрать переменную с максималь-
ной F0 или F1. Если F0 = max, то переменная входит в БМОКi нулём. Если F1 = max , то переменная вхо-
дит в БМОКi единицей . Если несколько переменных имеют одинаковые оценочные (максимальные)
функции , то выбрать в качестве БМОКi ту переменную , у которой соответствующая запрещённая оце-
ночная функция ( F0з или F1з ) имеет минимальное значение, в противном случае в качестве БМОКi
взять любую переменную с максимальной оценочной функцией F0 или F1 .
7. Выписать РОК и ЗОК , покрываемые базой МОКi . Если БМОКi не покрывает ни одного РОК
или покрывает все ЗОК, то приравнять нулю оценочные функции F0 и F1 для данного разряда и перейти
к п.6. Если покрываемых ЗОК нет , то перейти к п.9.
8. Подсчитать F0 и F1 для всех разрядов РОК и ЗОК , покрываемых данной базой, кроме разрядов
(переменных) , образующих БМОКi. Присоединить к БМОКi переменную (дополнение к БМОКi ) с мак-
симальной оценочной функцией в соответствии с требованиями п.6. Считать полученный ОК новой
базой МОКi . Если новая БМОКi покрывает столько же ЗОК, сколько и на предыдущем шаге, то при-
равнять нулю оценочные функции или дополнения к БМОКi , отбросить присоединённую переменную
и добавить к БМОКi переменную с максимальной оценочной функцией в соответствии с положениями
п.6, считать полученный ОК новой БМОКi .Если БМОКi покрывает хотя бы один ЗОК, перейти к п.7.
9. Принять в качестве МОКi базу МОКi .
10. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными ко-
дами, перейти к п.12.
11. Выписать из исходной таблицы истинности все ЗОК и те РОК , которые не покрыты мини-
мальными обобщёнными кодами . Считать вновь полученную таблицу исходной таблицей истинности.
Увеличить индекс МОК на единицу , т.е. i := i+1. Перейти к п.2.
12. Конец.

26
Задача 9.

Произвести минимизацию булевой функции , заданной таблицей.


№п/п x8 x7 x6 x5 x4 x3 x2 x1 y
1 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 0 1
4 0 0 0 0 1 1 0 0 1
5 0 0 0 0 1 0 0 1 1
6 0 0 0 0 1 0 0 0 1
7 0 1 1 0 0 0 0 0 1
8 0 1 1 0 0 0 0 1 1
1 0 0 0 1 0 0 0 1 0
2 0 1 0 1 0 0 0 1 0
3 1 1 0 1 1 0 0 0 0
4 0 0 0 0 0 1 1 0 0

Решение.
1. По алгоритму 2 пп. 1-3 для РОК2 находим соседний ЗОК, т.е. находим БМОК1 = ---0----.
2. По алгоритму 2 пп. 7-9 находим
МОК1 = ---0--0-
Так как МОК1 покрывает все РОК , то в соответствии с п.10 алгоритма 2 получаем
y = x5’x2’
Сущность алгоритма 2 заключается в том , что отыскиваются в первую очередь « необходимые «
МОК, т.е. МОК для тех РОК , развязывание которых с ЗОК максимально затруднено , так как они развя-
зываются только по тем переменным , по которым возможно склеивание данного РОК со всеми ЗОК.
Под развязыванием понимается процесс выявления тех переменных в РОК, которые не встречаются в
ЗОК.
Задача 10.
Произвести минимизацию булевой функции , заданной таблицей.

№ x6 x5 x4 x3 x2 x1 y
1 0 0 1 0 0 0 1
2 0 0 1 0 0 1 1
3 0 1 1 0 1 1 1
4 0 1 1 1 1 0 1
5 1 0 1 0 0 0 1
6 1 1 1 1 1 1 1
1 0 0 1 0 1 1 0
2 0 0 1 0 1 0 0
3 0 0 1 1 0 1 0
4 1 1 0 1 1 0 0
5 1 1 1 0 1 0 0
6 1 1 1 1 0 1 0

Решение .
1. По алгоритму 2 пп.1-3 для РОК1 находим
БМОК1 = ----0-
2. По алгоритму 2 пп.7, 8 строим таблицу.
1 001000 1
2 001001 1
5 101000 1
27
001101 0
111101 0
3. По алгоритму 2 п.8 из таблицы находим БМОК1 = ---00-
4. По алгоритму 2 п.9
МОК1 = БМОК1 = ---00-
5. По алгоритму 2 для непокрытых РОК (для РОК3) находим
БМОК2 = -1----.
6. По алгоритму 2 пп.7, 8 , 11 строим таблицу.

3 011011 1
4 011110 1
6 111111 1
110110 0
111010 0
111101 0
5-2322 F0
1-4344 F1

7. По алгоритму 2 п.9 находим МОК2


МОК2 = 01----
8. По алгоритму 2 пп.7, 8, 11 строим следующую таблицу .

111111 1
001011 0
001010 0
001101 0
110110 0
111010 0
111101 0

9. По алгоритму 2 п.3 находим БМОК3


БМОК3 = ----1-
10. По алгоритму 2 пп. 7, 8, 11 строим таблицу.

111111 1
001011 0
001010 0
110110 0
111010 0
2231-1 F0
3324-4 F1
11. Из таблицы по алгоритму 2 п.8 находим
БМОК3 = ----11
12. По алгоритму 2 пп. 7, 8 строим следующую таблицу.

111111 1
001011 0
0010-- F0
1111-- F1
13. По таблице 17 определяем
МОК3 = -1--11
Таким образом ,
y = x3’x2’ + x5x2x1 + x6’x5
28
На рисунке представлено решение задачи 10 с помощью карты Карно . Функция y представлена
в виде МДНФ.
Из рисунка видно , что результаты минимизации по карте Карно и по методу обобщённых кодов
совпадают.

Карта Карно к задаче 10.

Задача 10а.
Произвести минимизацию логической функции, заданной таблицей истинности.

N% x8x7x6x5x4x3x2x1 y
1 00110011 1
2 00100010 1
3 00110111 1
4 10110111 1
5 00101011 1
6 01101101 1
7 01111110 1
1 01110111 0
2 11010111 0
3 00011110 0
4 11111101 0
5 10101110 0
98377855 F0
34955477 F1
29
Т.к. РОК3 и ЗОК1 являются соседними по x7,то в качестве БМОК1 выбираем х7’,не обращая вни-
мание на абсолютный максимум F0 для х8.БМОК1 покрывает РОК1 - РОК5 и ЗОК3,ЗОК5.Подсчитаем
оценочные функции для выбора дополнения к БМОК1 и получения МОК1.

N% x8x7x6x5x4x3x2x1 y
1 00110011 1
2 00100010 1
3 00110111 1
4 10110111 1
5 00101011 1

3 00011110 0
5 10101110 0
5x136521 F0
2x641256 F1

Дополнение х4’ могло бы привести нас к МДНФ,поэтому мы выберем эквивалентное по оценоч-


ной функции дополнение х1,чтобы убедиться в некоторых недостатках метода. В результате получим
МОК1 = x7’x1. Поскольку МОК1 покрывает РОК с номерами 1,3 - 5,то стартовая таблица для синтеза
БМОК2 выглядит так:

30
N% x8x7x6x5x4x3x2x1 y
2 00100010 1
6 01101101 1
7 01111110 1
1 01110111 0
2 11010111 0
3 00011110 0
4 11111101 0
5 10101110 0
64364655 F0
24524233 F1

Исходя из этой таблицы получаем БМОК2 = x8’. Для нахождения МОК2 строим следующую таб-
лицу.

N% x8x7x6x5x4x3x2x1 y
2 00100010 1
6 01101101 1
7 01111110 1
1 01110111 0
3 00011110 0

х2142333 F0
х3413222 F1

Отсюда получаем МОК2 = х8’x5’, который дополнительно покрывает РОК2 и РОК6. Найдём
БМОК3.

N% x8x7x6x5x4x3x2x1 y
7 01111110 1
1 01110111 0
2 11010111 0
3 00011110 0
4 11111101 0
5 10101110 0
43343544 F0
23323122 F1

F0 для х3 имеет максимальное значение,но использовать x3’ в качестве БМОК3 нельзя,поскольку


единственный РОК не имеет нуля в данном разряде. Принимаем БМОК3 = x8’. Строим очередную таб-
лицу для синтеза последнего МОК.

31
N% x8x7x6x5x4x3x2x1 y
7 01111110 1
1 01110111 0
3 00011110 0

х1121222 F0
х2212111 F1

Из последней таблицы получаем МОК3 = x8’x7x4.Таким образом мы получили тупиковую ДНФ


y = x8’x7x4 + х8’x5’ + x7’x1.
По карте Карно получена минимальная ДНФ
y =х8’x5’ + x7x1’ + x7’x4’.
Т.е. высокая эффективность метода обобщённых кодов не всегда гарантирует получение МДНФ.
Кроме того, если рассмотреть недоопределённую логическую функцию, заданную 8-ичными наборами:
РОК – 67,73,63 и ЗОК – 37,65,66, то окажется, что по первому алгоритму получим избыточное решение.
В этом случае y = x3’ + x6x2x1. При минимизации по второму алгоритму y = x6x2x1.Таким образом, алго-
ритм 2 не только менее трудоёмок, но и более эффективен.

Задача 11.
Для синхронизатора цифрового фильтра синтезировать функции J12, K12, J11, K11, J10, K10 в соот-
ветствии с таблицей 18. Прочерк в таблице означает , что функция на данном наборе не определена.
Таблица 18.

№кода Q12 Q11 Q10 Q9 Q8 Q7 Q6 Q5 Q4 Q3 Q2 Q1 J12 K12 J11 K11 J10 K10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 - 0 -
1 0 0 0 0 0 0 0 0 0 0 0 1 0 - 0 - 0 -
2 0 0 0 0 0 0 0 0 0 0 1 0 0 - 0 - 0 -
3 0 0 0 0 0 0 0 0 0 0 1 1 0 - 0 - 0 -
4 0 0 0 0 0 0 0 0 0 1 0 0 0 - 0 - 0 -
5 0 0 0 0 0 0 0 0 0 1 0 1 0 - 0 - 0 -
6 0 0 0 0 0 0 0 0 0 1 1 0 0 - 0 - 0 -
7 0 0 0 0 0 0 0 0 0 1 1 1 0 - 0 - 0 -
8 0 0 0 0 0 0 0 0 1 0 0 0 0 - 0 - 0 -
9 0 0 0 0 0 0 0 0 1 0 0 1 0 - 0 - 0 -
10 0 0 0 0 0 0 0 0 1 0 1 0 0 - 0 - 0 -
11 0 0 0 0 0 0 0 0 1 0 1 1 0 - 0 - 0 -
12 0 0 0 0 0 0 0 0 1 1 0 0 0 - 0 - 0 -
13 0 0 0 0 0 0 0 0 1 1 0 1 0 - 0 - 0 -
14 0 0 0 0 0 0 0 0 1 1 1 0 0 - 0 - 0 -
15 0 0 0 0 0 0 0 0 1 1 1 1 0 - 0 - 0 -
16 0 0 0 0 0 0 0 1 0 0 0 0 0 - 0 - 0 -
17 0 0 0 0 0 0 0 1 0 0 0 1 0 - 0 - 0 -
18 0 0 0 0 0 0 0 1 0 0 1 0 0 - 0 - 0 -
19 0 0 0 0 0 0 0 1 0 0 1 1 0 - 0 - 0 -
20 0 0 0 0 0 0 0 1 0 1 0 0 0 - 0 - 0 -
21 0 0 0 0 0 0 0 1 0 1 0 1 0 - 0 - 0 -
22 0 0 0 0 0 0 0 1 0 1 1 0 0 - 0 - 0 -
23 0 0 0 0 0 0 0 1 0 1 1 1 0 - 0 - 0 -
24 0 0 0 0 0 0 0 1 1 0 0 0 0 - 0 - 0 -
25 0 0 0 0 0 0 0 1 1 0 0 1 0 - 0 - 0 -
32
26 0 0 0 0 0 0 0 1 1 0 1 0 0 - 0 - 0 -
27 0 0 0 0 0 0 0 1 1 0 1 1 0 - 0 - 0 -
28 0 0 0 0 0 0 0 1 1 1 0 0 0 - 0 - 0 -
29 0 0 0 0 0 0 0 1 1 1 0 1 0 - 0 - 0 -
30 0 0 0 0 0 0 0 1 1 1 1 0 0 - 0 - 0 -
31 0 0 0 0 0 0 0 1 1 1 1 1 0 - 0 - 0 -
32 0 0 0 0 0 0 1 0 0 0 0 0 0 - 0 - 0 -
33 0 0 0 0 0 0 1 0 0 0 0 1 0 - 0 - 0 -
34 0 0 0 0 0 0 1 0 0 0 1 0 0 - 0 - 0 -
35 0 0 0 0 0 0 1 0 0 0 1 1 0 - 0 - 0 -
36 0 0 0 0 0 0 1 0 0 1 0 0 0 - 0 - 0 -
37 0 0 0 0 0 0 1 0 0 1 0 1 0 - 0 - 0 -
38 0 0 0 0 0 0 1 0 0 1 1 0 0 - 0 - 0 -
39 0 0 0 0 0 0 1 0 0 1 1 1 0 - 0 - 0 -
40 0 0 0 0 0 0 1 0 1 0 0 0 0 - 0 - 0 -
41 0 0 0 0 0 0 1 0 1 0 0 1 0 - 0 - 0 -
42 0 0 0 0 0 0 1 0 1 0 1 0 0 - 0 - 0 -
43 0 0 0 0 0 0 1 0 1 0 1 1 0 - 0 - 0 -
44 0 0 0 0 0 0 1 0 1 1 0 0 0 - 0 - 0 -
45 0 0 0 0 0 0 1 0 1 1 0 1 0 - 0 - 0 -
46 0 0 0 0 0 0 1 0 1 1 1 0 0 - 0 - 0 -
47 0 0 0 0 0 0 1 0 1 1 1 1 0 - 0 - 0 -
48 0 0 0 0 0 0 1 1 0 0 0 0 0 - 0 - 0 -
49 0 0 0 0 0 0 1 1 0 0 0 1 0 - 0 - 0 -
50 0 0 0 0 0 0 1 1 0 0 1 0 0 - 0 - 0 -
51 0 0 0 0 0 0 1 1 0 0 1 1 0 - 0 - 0 -
52 0 0 0 0 0 0 1 1 0 1 0 0 0 - 0 - 0 -
53 0 0 0 0 0 0 1 1 0 1 0 1 0 - 0 - 0 -
54 0 0 0 0 0 0 1 1 0 1 1 0 0 - 0 - 0 -
55 0 0 0 0 0 0 1 1 0 1 1 1 0 - 0 - 0 -
56 0 0 0 0 0 0 1 1 1 0 0 0 0 - 0 - 0 -
57 0 0 0 0 0 0 1 1 1 0 0 1 0 - 0 - 0 -
58 0 0 0 0 0 0 1 1 1 0 1 0 0 - 0 - 0 -
59 0 0 0 0 0 0 1 1 1 0 1 1 0 - 0 - 0 -
60 0 0 0 0 0 0 1 1 1 1 0 0 0 - 0 - 0 -
61 0 0 0 0 0 0 1 1 1 1 0 1 0 - 0 - 0 -
62 0 0 0 0 0 0 1 1 1 1 1 0 0 - 0 - 0 -
63 0 0 0 0 0 0 1 1 1 1 1 1 0 - 0 - 0 -
64 0 0 0 0 0 1 0 0 0 0 0 0 0 - 0 - 0 -
65 0 0 0 0 0 1 0 0 0 0 0 1 0 - 0 - 0 -
66 0 0 0 0 0 1 0 0 0 0 1 0 0 - 0 - 0 -
67 0 0 0 0 0 1 0 0 0 0 1 1 0 - 0 - 0 -
68 0 0 0 0 0 1 0 0 0 1 0 0 0 - 0 - 0 -
69 0 0 0 0 0 1 0 0 0 1 0 1 0 - 0 - 0 -
70 0 0 0 0 0 1 0 0 0 1 1 0 0 - 0 - 0 -
71 0 0 0 0 0 1 0 0 0 1 1 1 0 - 0 - 0 -
72 0 0 0 0 0 1 0 0 1 0 0 0 0 - 0 - 0 -
73 0 0 0 0 0 1 0 0 1 0 0 1 0 - 0 - 0 -
74 0 0 0 0 0 1 0 0 1 0 1 0 0 - 0 - 0 -
75 0 0 0 0 0 1 0 0 1 0 1 1 0 - 0 - 0 -
76 0 0 0 0 0 1 0 0 1 1 0 0 0 - 0 - 0 -
77 0 0 0 0 0 1 0 0 1 1 0 1 0 - 0 - 0 -
78 0 0 0 0 0 1 0 0 1 1 1 0 0 - 0 - 0 -
79 0 0 0 0 0 1 0 0 1 1 1 1 0 - 0 - 0 -
33
80 0 0 0 0 0 1 0 1 0 0 0 0 0 - 0 - 0 -
81 0 0 0 0 0 1 0 1 0 0 0 1 0 - 0 - 0 -
82 0 0 0 0 0 1 0 1 0 0 1 0 0 - 0 - 0 -
83 0 0 0 0 0 1 0 1 0 0 1 1 0 - 0 - 0 -
84 0 0 0 0 0 1 0 1 0 1 0 0 0 - 0 - 0 -
85 0 0 0 0 0 1 0 1 0 1 0 1 0 - 0 - 0 -
86 0 0 0 0 0 1 0 1 0 1 1 0 0 - 0 - 0 -
87 0 0 0 0 0 1 0 1 0 1 1 1 0 - 0 - 0 -
88 0 0 0 0 0 1 0 1 1 0 0 0 0 - 0 - 0 -
89 0 0 0 0 0 1 0 1 1 0 0 1 0 - 0 - 0 -
90 0 0 0 0 0 1 0 1 1 0 1 0 0 - 0 - 0 -
91 0 0 0 0 0 1 0 1 1 0 1 1 0 - 0 - 0 -
92 0 0 0 0 0 1 0 1 1 1 0 0 0 - 0 - 0 -
93 0 0 0 0 0 1 0 1 1 1 0 1 0 - 0 - 0 -
94 0 0 0 0 0 1 0 1 1 1 1 0 0 - 0 - 0 -
95 0 0 0 0 0 1 0 1 1 1 1 1 0 - 0 - 0 -
96 0 0 0 0 0 1 1 0 0 0 0 0 0 - 0 - 0 -
97 0 0 0 0 0 1 1 0 0 0 0 1 0 - 0 - 0 -
98 0 0 0 0 0 1 1 0 0 0 1 0 0 - 0 - 0 -
99 0 0 0 0 0 1 1 0 0 0 1 1 0 - 0 - 0 -
100 0 0 0 0 0 1 1 0 0 1 0 0 0 - 0 - 0 -
101 0 0 0 0 0 1 1 0 0 1 0 1 0 - 0 - 0 -
102 0 0 0 0 0 1 1 0 0 1 1 0 0 - 0 - 0 -
103 0 0 0 0 0 1 1 0 0 1 1 1 0 - 0 - 0 -
104 0 0 0 0 0 1 1 0 1 0 0 0 0 - 0 - 0 -
105 0 0 0 0 0 1 1 0 1 0 0 1 0 - 0 - 0 -
106 0 0 0 0 0 1 1 0 1 0 1 0 0 - 0 - 0 -
107 0 0 0 0 0 1 1 0 1 0 1 1 0 - 0 - 0 -
108 0 0 0 0 0 1 1 0 1 1 0 0 0 - 0 - 0 -
109 0 0 0 0 0 1 1 0 1 1 0 1 0 - 0 - 0 -
110 0 0 0 0 0 1 1 0 1 1 1 0 0 - 0 - 0 -
111 0 0 0 0 0 1 1 0 1 1 1 1 0 - 0 - 0 -
112 0 0 0 0 0 1 1 1 0 0 0 0 0 - 0 - 0 -
113 0 0 0 0 0 1 1 1 0 0 0 1 0 - 0 - 0 -
114 0 0 0 0 0 1 1 1 0 0 1 0 0 - 0 - 0 -
115 0 0 0 0 0 1 1 1 0 0 1 1 0 - 0 - 0 -
116 0 0 0 0 0 1 1 1 0 1 0 0 0 - 0 - 0 -
117 0 0 0 0 0 1 1 1 0 1 0 1 0 - 0 - 0 -
118 0 0 0 0 0 1 1 1 0 1 1 0 0 - 0 - 0 -
119 0 0 0 0 0 1 1 1 0 1 1 1 0 - 0 - 0 -
120 0 0 0 0 0 1 1 1 1 0 0 0 0 - 0 - 0 -
121 0 0 0 0 0 1 1 1 1 0 0 1 0 - 0 - 0 -
122 0 0 0 0 0 1 1 1 1 0 1 0 0 - 0 - 0 -
123 0 0 0 0 0 1 1 1 1 0 1 1 0 - 0 - 0 -
124 0 0 0 0 0 1 1 1 1 1 0 0 0 - 0 - 0 -
125 0 0 0 0 0 1 1 1 1 1 0 1 0 - 0 - 0 -
126 0 0 0 0 0 1 1 1 1 1 1 0 0 - 0 - 0 -
127 0 0 0 0 0 1 1 1 1 1 1 1 0 - 0 - 0 -
128 0 0 0 0 1 0 0 0 0 0 0 0 0 - 0 - 0 -
129 0 0 0 0 1 0 0 0 0 0 0 1 0 - 0 - 0 -
130 0 0 0 0 1 0 0 0 0 0 1 0 0 - 0 - 0 -
131 0 0 0 0 1 0 0 0 0 0 1 1 0 - 0 - 0 -
132 0 0 0 0 1 0 0 0 0 1 0 0 0 - 0 - 0 -
133 0 0 0 0 1 0 0 0 0 1 0 1 0 - 0 - 0 -
34
134 0 0 0 0 1 0 0 0 0 1 1 0 0 - 0 - 0 -
135 0 0 0 0 1 0 0 0 0 1 1 1 0 - 0 - 0 -
136 0 0 0 0 1 0 0 0 1 0 0 0 0 - 0 - 0 -
137 0 0 0 0 1 0 0 0 1 0 0 1 0 - 0 - 0 -
138 0 0 0 0 1 0 0 0 1 0 1 0 0 - 0 - 0 -
139 0 0 0 0 1 0 0 0 1 0 1 1 0 - 0 - 0 -
140 0 0 0 0 1 0 0 0 1 1 0 0 0 - 0 - 0 -
141 0 0 0 0 1 0 0 0 1 1 0 1 0 - 0 - 0 -
142 0 0 0 0 1 0 0 0 1 1 1 0 0 - 0 - 0 -
143 0 0 0 0 1 0 0 0 1 1 1 1 0 - 0 - 0 -
144 0 0 0 0 1 0 0 1 0 0 0 0 0 - 0 - 0 -
145 0 0 0 0 1 0 0 1 0 0 0 1 0 - 0 - 0 -
146 0 0 0 0 1 0 0 1 0 0 1 0 0 - 0 - 0 -
147 0 0 0 0 1 0 0 1 0 0 1 1 0 - 0 - 0 -
148 0 0 0 0 1 0 0 1 0 1 0 0 0 - 0 - 0 -
149 0 0 0 0 1 0 0 1 0 1 0 1 0 - 0 - 0 -
150 0 0 0 0 1 0 0 1 0 1 1 0 0 - 0 - 0 -
151 0 0 0 0 1 0 0 1 0 1 1 1 0 - 0 - 0 -
152 0 0 0 0 1 0 0 1 1 0 0 0 0 - 0 - 0 -
153 0 0 0 0 1 0 0 1 1 0 0 1 0 - 0 - 0 -
154 0 0 0 0 1 0 0 1 1 0 1 0 0 - 0 - 0 -
155 0 0 0 0 1 0 0 1 1 0 1 1 0 - 0 - 0 -
156 0 0 0 0 1 0 0 1 1 1 0 0 0 - 0 - 0 -
157 0 0 0 0 1 0 0 1 1 1 0 1 0 - 0 - 0 -
158 0 0 0 0 1 0 0 1 1 1 1 0 0 - 0 - 0 -
159 0 0 0 0 1 0 0 1 1 1 1 1 0 - 0 - 0 -
160 0 0 0 0 1 0 1 0 0 0 0 0 0 - 0 - 0 -
161 0 0 0 0 1 0 1 0 0 0 0 1 0 - 0 - 0 -
162 0 0 0 0 1 0 1 0 0 0 1 0 0 - 0 - 0 -
163 0 0 0 0 1 0 1 0 0 0 1 1 0 - 0 - 0 -
164 0 0 0 0 1 0 1 0 0 1 0 0 0 - 0 - 0 -
165 0 0 0 0 1 0 1 0 0 1 0 1 0 - 0 - 0 -
166 0 0 0 0 1 0 1 0 0 1 1 0 0 - 0 - 0 -
167 0 0 0 0 1 0 1 0 0 1 1 1 0 - 0 - 0 -
168 0 0 0 0 1 0 1 0 1 0 0 0 0 - 0 - 0 -
169 0 0 0 0 1 0 1 0 1 0 0 1 0 - 0 - 0 -
170 0 0 0 0 1 0 1 0 1 0 1 0 0 - 0 - 0 -
171 0 0 0 0 1 0 1 0 1 0 1 1 0 - 0 - 0 -
172 0 0 0 0 1 0 1 0 1 1 0 0 0 - 0 - 0 -
173 0 0 0 0 1 0 1 0 1 1 0 1 0 - 0 - 0 -
174 0 0 0 0 1 0 1 0 1 1 1 0 0 - 0 - 0 -
175 0 0 0 0 1 0 1 0 1 1 1 1 0 - 0 - 0 -
176 0 0 0 0 1 0 1 1 0 0 0 0 0 - 0 - 0 -
177 0 0 0 0 1 0 1 1 0 0 0 1 0 - 0 - 0 -
178 0 0 0 0 1 0 1 1 0 0 1 0 0 - 0 - 0 -
179 0 0 0 0 1 0 1 1 0 0 1 1 0 - 0 - 0 -
180 0 0 0 0 1 0 1 1 0 1 0 0 0 - 0 - 0 -
181 0 0 0 0 1 0 1 1 0 1 0 1 0 - 0 - 0 -
182 0 0 0 0 1 0 1 1 0 1 1 0 0 - 0 - 0 -
183 0 0 0 0 1 0 1 1 0 1 1 1 0 - 0 - 0 -
184 0 0 0 0 1 0 1 1 1 0 0 0 0 - 0 - 0 -
185 0 0 0 0 1 0 1 1 1 0 0 1 0 - 0 - 0 -
186 0 0 0 0 1 0 1 1 1 0 1 0 0 - 0 - 0 -
187 0 0 0 0 1 0 1 1 1 0 1 1 0 - 0 - 0 -
35
188 0 0 0 0 1 0 1 1 1 1 0 0 0 - 0 - 0 -
189 0 0 0 0 1 0 1 1 1 1 0 1 0 - 0 - 0 -
190 0 0 0 0 1 0 1 1 1 1 1 0 0 - 0 - 0 -
191 0 0 0 0 1 0 1 1 1 1 1 1 0 - 0 - 0 -
192 0 0 0 0 1 1 0 0 0 0 0 0 0 - 0 - 0 -
193 0 0 0 0 1 1 0 0 0 0 0 1 0 - 0 - 0 -
194 0 0 0 0 1 1 0 0 0 0 1 0 0 - 0 - 0 -
195 0 0 0 0 1 1 0 0 0 0 1 1 0 - 0 - 0 -
196 0 0 0 0 1 1 0 0 0 1 0 0 0 - 0 - 0 -
197 0 0 0 0 1 1 0 0 0 1 0 1 0 - 0 - 0 -
198 0 0 0 0 1 1 0 0 0 1 1 0 0 - 0 - 0 -
199 0 0 0 0 1 1 0 0 0 1 1 1 0 - 0 - 0 -
200 0 0 0 0 1 1 0 0 1 0 0 0 0 - 0 - 0 -
201 0 0 0 0 1 1 0 0 1 0 0 1 0 - 0 - 0 -
202 0 0 0 0 1 1 0 0 1 0 1 0 0 - 0 - 0 -
203 0 0 0 0 1 1 0 0 1 0 1 1 0 - 0 - 0 -
204 0 0 0 0 1 1 0 0 1 1 0 0 0 - 0 - 0 -
205 0 0 0 0 1 1 0 0 1 1 0 1 0 - 0 - 0 -
206 0 0 0 0 1 1 0 0 1 1 1 0 0 - 0 - 0 -
207 0 0 0 0 1 1 0 0 1 1 1 1 0 - 0 - 0 -
208 0 0 0 0 1 1 0 1 0 0 0 0 0 - 0 - 0 -
209 0 0 0 0 1 1 0 1 0 0 0 1 0 - 0 - 0 -
210 0 0 0 0 1 1 0 1 0 0 1 0 0 - 0 - 0 -
211 0 0 0 0 1 1 0 1 0 0 1 1 0 - 0 - 0 -
212 0 0 0 0 1 1 0 1 0 1 0 0 0 - 0 - 0 -
213 0 0 0 0 1 1 0 1 0 1 0 1 0 - 0 - 0 -
214 0 0 0 0 1 1 0 1 0 1 1 0 0 - 0 - 0 -
215 0 0 0 0 1 1 0 1 0 1 1 1 0 - 0 - 0 -
216 0 0 0 0 1 1 0 1 1 0 0 0 0 - 0 - 0 -
217 0 0 0 0 1 1 0 1 1 0 0 1 0 - 0 - 0 -
218 0 0 0 0 1 1 0 1 1 0 1 0 0 - 0 - 0 -
219 0 0 0 0 1 1 0 1 1 0 1 1 0 - 0 - 0 -
220 0 0 0 0 1 1 0 1 1 1 0 0 0 - 0 - 0 -
221 0 0 0 0 1 1 0 1 1 1 0 1 0 - 0 - 0 -
222 0 0 0 0 1 1 0 1 1 1 1 0 0 - 0 - 0 -
223 0 0 0 0 1 1 0 1 1 1 1 1 0 - 0 - 0 -
224 0 0 0 0 1 1 1 0 0 0 0 0 0 - 0 - 0 -
225 0 0 0 0 1 1 1 0 0 0 0 1 0 - 0 - 0 -
226 0 0 0 0 1 1 1 0 0 0 1 0 0 - 0 - 0 -
227 0 0 0 0 1 1 1 0 0 0 1 1 0 - 0 - 0 -
228 0 0 0 0 1 1 1 0 0 1 0 0 0 - 0 - 0 -
229 0 0 0 0 1 1 1 0 0 1 0 1 0 - 0 - 0 -
230 0 0 0 0 1 1 1 0 0 1 1 0 0 - 0 - 0 -
231 0 0 0 0 1 1 1 0 0 1 1 1 0 - 0 - 0 -
232 0 0 0 0 1 1 1 0 1 0 0 0 0 - 0 - 0 -
233 0 0 0 0 1 1 1 0 1 0 0 1 0 - 0 - 0 -
234 0 0 0 0 1 1 1 0 1 0 1 0 0 - 0 - 0 -
235 0 0 0 0 1 1 1 0 1 0 1 1 0 - 0 - 0 -
236 0 0 0 0 1 1 1 0 1 1 0 0 0 - 0 - 0 -
237 0 0 0 0 1 1 1 0 1 1 0 1 0 - 0 - 0 -
238 0 0 0 0 1 1 1 0 1 1 1 0 0 - 0 - 1 -
239 0 0 0 0 1 1 1 0 1 1 1 1 0 - 0 - - 0
240 0 0 0 0 1 1 1 1 0 0 0 0 0 - 0 - - 0
241 0 0 0 0 1 1 1 1 0 0 0 1 0 - 0 - - 0
36
242 0 0 0 0 1 1 1 1 0 0 1 0 0 - 0 - - 0
243 0 0 0 0 1 1 1 1 0 0 1 1 0 - 0 - - 0
244 0 0 0 0 1 1 1 1 0 1 0 0 0 - 0 - - 0
245 0 0 0 0 1 1 1 1 0 1 0 1 0 - 0 - - 0
246 0 0 0 0 1 1 1 1 0 1 1 0 0 - 0 - - 0
247 0 0 0 0 1 1 1 1 0 1 1 1 0 - 0 - - 0
248 0 0 0 0 1 1 1 1 1 0 0 0 0 - 0 - - 1
249 0 0 0 0 1 1 1 1 1 0 0 1 0 - 0 - 0 -
250 0 0 0 0 1 1 1 1 1 0 1 0 0 - 0 - 0 -
251 0 0 0 0 1 1 1 1 1 0 1 1 0 - 0 - 0 -
252 0 0 0 0 1 1 1 1 1 1 0 0 0 - 0 - 0 -
253 0 0 0 0 1 1 1 1 1 1 0 1 0 - 0 - 0 -
254 0 0 0 0 1 1 1 1 1 1 1 0 0 - 0 - 0 -
255 0 0 0 0 1 1 1 1 1 1 1 1 0 - 0 - 0 -
256 0 0 0 1 0 0 0 0 0 0 0 0 0 - 0 - 0 -
257 0 0 0 1 0 0 0 0 0 0 0 1 0 - 0 - 0 -
258 0 0 0 1 0 0 0 0 0 0 1 0 0 - 0 - 0 -
259 0 0 0 1 0 0 0 0 0 0 1 1 0 - 0 - 0 -
260 0 0 0 1 0 0 0 0 0 1 0 0 0 - 0 - 0 -
261 0 0 0 1 0 0 0 0 0 1 0 1 0 - 0 - 0 -
262 0 0 0 1 0 0 0 0 0 1 1 0 0 - 1 - 0 -
263 0 0 0 1 0 0 0 0 0 1 1 1 0 - - 0 0 -
264 0 0 0 1 0 0 0 0 1 0 0 0 0 - - 0 0 -
265 0 0 0 1 0 0 0 0 1 0 0 1 0 - - 0 0 -
266 0 0 0 1 0 0 0 0 1 0 1 0 0 - - 0 0 -
267 0 0 0 1 0 0 0 0 0 1 1 1 0 - - 0 0 -
268 0 0 0 1 0 0 0 0 1 1 0 0 0 - - 1 0 -
269 0 0 0 1 0 0 0 0 1 1 0 1 0 - 0 - 0 -
270 0 0 0 1 0 0 0 0 1 1 1 0 0 - 0 - 0 -
271 0 0 0 1 0 0 0 0 1 1 1 1 0 - 0 - 0 -
272 0 0 0 1 0 0 0 1 0 0 0 0 0 - 0 - 0 -
273 0 0 0 1 0 0 0 1 0 0 0 1 1 - 0 - 0 -
274 1 0 0 1 0 0 0 1 0 0 1 0 - 0 0 - 0 -
275 1 0 0 1 0 0 0 1 0 0 1 1 - 0 0 - 0 -
276 1 0 0 1 0 0 0 1 0 1 0 0 - 0 0 - 0 -
277 1 0 0 1 0 0 0 1 0 1 0 1 - 0 0 - 0 -
278 1 0 0 1 0 0 0 1 0 1 1 0 - 0 0 - 0 -
279 1 0 0 1 0 0 0 1 0 1 1 1 - 0 0 - 0 -
280 1 0 0 1 0 0 0 1 1 0 0 0 - 0 0 - 0 -
281 1 0 0 1 0 0 0 1 1 0 0 1 - 0 0 - 0 -
282 1 0 0 1 0 0 0 1 1 0 1 0 - 0 0 - 0 -
283 1 0 0 1 0 0 0 1 1 0 1 1 - 0 0 - 0 -
284 1 0 0 1 0 0 0 1 1 1 0 0 - 0 0 - 0 -
285 1 0 0 1 0 0 0 1 1 1 0 1 - 0 0 - 0 -
286 1 0 0 1 0 0 0 1 1 1 1 0 - 0 0 - 0 -
287 1 0 0 1 0 0 0 1 1 1 1 1 - 0 0 - 0 -
288 1 0 0 1 0 0 1 0 0 0 0 0 - 1 0 - 0 -
289 0 0 0 1 0 0 1 0 0 0 0 1 0 - 0 - 0 -
290 0 0 0 1 0 0 1 0 0 0 1 0 0 - 0 - 0 -
291 0 0 0 1 0 0 1 0 0 0 1 1 0 - 0 - 0 -
292 0 0 0 1 0 0 1 0 0 1 0 0 0 - 0 - 0 -
293 0 0 0 1 0 0 1 0 0 1 0 1 0 - 0 - 0 -
294 0 0 0 1 0 0 1 0 0 1 1 0 0 - 0 - 0 -
295 0 0 0 1 0 0 1 0 0 1 1 1 0 - 0 - 0 -
37
296 0 0 0 1 0 0 1 0 1 0 0 0 0 - 0 - 0 -
297 0 0 0 1 0 0 1 0 1 0 0 1 0 - 0 - 0 -
298 0 0 0 1 0 0 1 0 1 0 1 0 0 - 0 - 0 -
299 0 0 0 1 0 0 1 0 1 0 1 1 0 - 0 - 0 -
300 0 0 0 1 0 0 1 0 1 1 0 0 0 - 0 - 0 -
301 0 0 0 1 0 0 1 0 1 1 0 1 0 - 0 - 0 -
302 0 0 0 1 0 0 1 0 1 1 1 0 0 - 0 - 0 -
303 0 0 0 1 0 0 1 0 1 1 1 1 0 - 0 - 0 -
304 0 0 0 1 0 0 1 1 0 0 0 0 0 - 0 - 0 -
305 0 0 0 1 0 0 1 1 0 0 0 1 0 - 0 - 0 -
306 0 0 0 1 0 0 1 1 0 0 1 0 0 - 0 - 0 -
307 0 0 0 1 0 0 1 1 0 0 1 1 0 - 0 - 0 -
308 0 0 0 1 0 0 1 1 0 1 0 0 0 - 0 - 0 -
309 0 0 0 1 0 0 1 1 0 1 0 1 0 - 0 - 0 -
310 0 0 0 1 0 0 1 1 0 1 1 0 0 - 0 - 0 -
311 0 0 0 1 0 0 1 1 0 1 1 1 0 - 0 - 0 -
312 0 0 0 1 0 0 1 1 1 0 0 0 0 - 0 - 0 -
313 0 0 0 1 0 0 1 1 1 0 0 1 0 - 0 - 0 -
314 0 0 0 1 0 0 1 1 1 0 1 0 0 - 0 - 0 -
315 0 0 0 1 0 0 1 1 1 0 1 1 0 - 0 - 0 -
316 0 0 0 1 0 0 1 1 1 1 0 0 0 - 0 - 0 -
317 0 0 0 1 0 0 1 1 1 1 0 1 0 - 0 - 0 -
318 0 0 0 1 0 0 1 1 1 1 1 0 0 - 0 - 0 -
319 0 0 0 1 0 0 1 1 1 1 1 1 0 - 0 - 0 -

Решение.
Применяя алгоритмы 1 и 2, получим :
J10 = Q8Q7Q6Q5’Q4Q3Q2
K10 = Q4Q3’
J11 = Q9Q6’Q5’Q4’Q3Q2
K11 = Q4Q3
J12 = Q9Q6’Q5Q4’Q3’Q2’Q1
K12 = Q6
Результат был получен вручную,поскольку не пришлось подсчитывать оценочные функ-
ции:МОКi были определены на основе соседних кодов.

Проверка результата минимизации булевых функций.

Результат минимизации булевой функции является корректным , если выполняются следующие


условия:
1. Совокупность МОК покрывает все РОК .
2. Совокупность МОК не покрывает ни одного ЗОК.

2.3. Выводы.

Далеко не всегда по методу ОК может быть получена МДНФ. Чаще всего в результате миними-
зации удаётся получить одну из тупиковых ДНФ. В этом недостаток метода. Алгоритм 2 по сравнению
с алгоритмом 1 даёт более компактный результат, т.е. вероятность получения МДНФ по алгоритму 2
выше, чем по алгоритму 1.
Достоинствами метода являются простота и высокая скорость получения результата. Особенно
этот метод эффективен для минимизации булевых функций от большого числа переменных (n≥8).
38
Вполне приемлемым даже без применения ЦВМ является число наборов , на которых задана функция ,
в пределах 1000. Например , 6 булевых функций от 12 переменных, определённые на 320 наборах (см.
задачу 11) были отминимизированы вручную в течение 30 минут. Разумеется , задача такой сложности
может быть решена на ЭВМ. Однако даже только на ввод с последующей проверкой 320 наборов для 6
функций потребуется значительно больше времени, чем на ручное решение. Эффективность данного
алгоритма выше всех других, известных автору.
В соответствии с алгоритмом 2 в 1974г. была написана программа, которая позволяла минимизи-
ровать булевы функции от 36 переменных, определённые на 2000 наборах. Программа осуществляла
контроль правильности ввода исходных массивов. Если функция введена неверно , то выводились на
печать неправильно введённые РОК или ЗОК , а программа переходила к минимизации следующей
функции. Время , затраченное ЦВМ М-220 на минимизацию булевой функции от 36 переменных , оп-
ределённой на 1000 наборах , составило 6 минут .В 1985г. на языке Паскаль эта программа была пере-
писана для ПЭВМ ДВК-2М. Она обрабатывала 16 функций от 32 переменных. Количество наборов
достигало 2000.
Вопрос о минимизации булевых функций вручную или с использованием ПЭВМ решается в за-
висимости от количества наборов, на которых задана функция, количества соседних РОК и ЗОК, а так-
же от частоты чередования РОК и ЗОК в исходной таблице истинности. Чем больше количество набо-
ров, задающих функцию, чем меньше соседних РОК и ЗОК, чем выше частота чередования РОК и ЗОК,
тем предпочтительнее использование ЭВМ. Например, систему из 7 булевых функций от 18 перемен-
ных, заданную на 80 наборах , оказалось рациональнее решать с помощью ЭВМ , так как в этой системе
не нашлось ни одной соседней пары РОК и ЗОК, а частота чередования РОК и ЗОК для отдельных
функций достигала 40.Однако за 25 лет инженерной практики разработки цифровых устройств и систем
автор лишь трижды обращался к услугам ЭВМ при решении задач минимизации булевых функций.
Задание 4.

Методом обобщённых кодов найти минимальное представление функций, заданных на рабочих и


запрещённых наборах.
4-1) РН(4): 0, 4, 6, 10; ЗН(4): 7, 13. Ответ : Кс = 1
4-2) РН(5): 4, 2, 29, 23; ЗН(5): 3, 21. Ответ : Кс = 7 = (1+1+2)+3
4-3) РН(6): 0, 9, 10, 13, 57, 63, 36; ЗН(6): 27, 29, 18, 44, 33.
Ответ : Кс = 9 = (2+2+2)+3
4-4) РН(6): 1, 4, 14, 21, 35, 62; ЗН(6): 3, 7, 30, 9.
Ответ : Кс = 8 = (2+2+1)+3
4-5) РН(8): 16, 49, 35, 41, 253, 167, 158; ЗН(8): 99, 125, 90, 249, 1
Ответ : Кс = 9 = (2+2+2)+3
Примечание: Кс - коэффициент сложности булевой функции.

Глава третья.

Триггеры
Триггером называется логическое устройство с двумя устойчивыми состояниями. Выходной сигнал на
выходе такого устройства зависит не только от входных сигналов , действующих в данный момент , но
и от сигналов , воздействовавших в предыдущий момент времени. Существует несколько видов тригге-
ров.
Наиболее распространёнными из них являются SR- , D- , и JK- триггеры.

3.1 SR- триггеры.


SR- триггер имеет 2 управляющих входа S и R. Если S = 1 , то выход триггера Q = 1 , если R = 1 , то Q = 0. Комбинация S =
1 и R = 1 для SR - триггера является запрещённой. На рисунках представлены две реализации SR - триггера и его условное
обозначение.

39
Схемы и обозначения SR-триггеров.

3.2 D- триггеры.

D- триггер при наличии разрешающего сигнала на тактовом входе устанавливается в состояние , соответствующее потен-
циалу на входе D.
Таким образом , D- триггер является тактируемым элементом памяти. Тактирование может осуществляться как потенциалом
, так и фронтом (передним или задним).
Триггер, тактируемый потенциалом, может изменить своё состояние только при наличии определённого потенциала на так-
товом входе C. Триггер , тактируемый фронтом, меняет своё состояние только с приходом определённого фронта сигнала
на тактовый вход C.
На рисунках представлены тактируемые потенциалом и передним фронтом D- триггеры и их условные обозначения, а также
временные диаграммы работы.

Схема и условное обозначение тактируемого потенциалом D-триггера.

40
Условное обозначение и диаграммы работы переднефронтового D-триггера

3.3 . JK- триггеры.

JK- триггеры являются самыми сложными из рассмотренных элементов памяти. Они обладают большими функциональны-
ми возможностями. JK- триггеры могут быть тактируемыми и нетактируемыми. Универсальный JK- триггер может работать
во всех режимах. Например, для перевода универсального JK- триггера в нетактируемый режим достаточно на вход C по-
дать потенциал C = 1. На рисунке изображён тактируемый задним фронтом JK- триггер серии134 (1ТК343) и временные
диаграммы его работы.

Условное обозначение и диаграммы работы заднефронтового JK-триггера.

Работает JK- триггер следующим образом. При J=1 и K= 1 тактовый импульс переводит триггер в противоположное состоя-
ние (Qn = Qn-1’) . При J = 0 и K = 0 триггер сохраняет предыдущее состояние (Qn = Qn-1). При J = 1 и K = 0 Qn = 1 , при J = 0
и K = 1 Qn = 0.
Работа любого триггера может быть однозначно описана с помощью таблицы переходов.
Таблица переходов для SR-, D- и JK- триггеров.
Вход 1 Вход 2 SR- триггер JK- триггер D- триггер
0 0 Qn-1 Qn-1 0
0 1 0 0 0
1 0 1 1 1
1 1 - Qn-1’ 1

3.4 Анализ работы схем с памятью

Анализ работы схем с памятью может быть графическим или табличным. Наиболее удобным является табличный метод
анализа, так как он позволяет оторваться от принципиальной схемы устройства. Этот способ основан на описании функций
управляющих входов , или функций возбуждения.
Задача 12
Произвести анализ работы устройства, изображённого на рисунке, табличным способом.

41
Схема устройства к задаче 12.

Решение.
Опишем функции возбуждения входов SR- триггера.
S = E1(E1E2)’ = E1(E1’ + E2’) = E1E2’
R = E2(E1’ + E2’) = E1’E2
Зададим исходное состояние SR- триггера. Пусть Q0 = 0. Далее будем изменять входные сигналы E1 и E2 , определять функ-
ции S и R , а по ним находить Qn. Процесс анализа отражён в таблице.
E1 E2 S=E1E2’ R=E1’E2 Qn Примечание
0 0 0 0 0 Q1=Q0 , т.е Qn=Qn-1
0 1 0 1 0 Q2=0
1 0 1 0 1 Q3=1
1 1 0 0 1 Q4=Q3 , т.е. Qn=Qn-1

Даже простой пример показывает,насколько неудобен анализ работы схем с памятью.В главе «Конечные автоматы» мы
познакомимся с более эффективным методом.

42
Глава четвёртая

РЕГИСТРЫ И СЧЁТЧИКИ

Наиболее часто в схемах с памятью используются такие функциональные узлы , как регистры и
счётчики. Регистры разделяются на два типа: параллельные (регистры памяти) и последовательные (ре-
гистры сдвига). Регистры могут быть реализованы на любых триггерах.

4.1 Регистры памяти.

Эти регистры предназначены для хранения информации, представленной в виде двоичного кода.
Регистры памяти осуществляют параллельную запись всего кода с приходом тактового импульса. Запи-
санная информация хранится до прихода следующего тактового импульса. На рисунке представлен
один из вариантов регистра памяти, реализованного на D- триггерах, тактируемых передним фронтом.
Этот регистр предназначен для записи и хранения 4-разрядного кода X.
С приходом переднего фронта тактовой частоты fт регистр запишет код X и будет хранить его до
тех пор , пока код X не изменит своей величины. Но это изменение кода X пройдёт на выход регистра
только с приходом переднего фронта fт.

Схема параллельного регистра.

4..2. Регистры сдвига.


Сдвиговые регистры широко используются в цифровой технике, в частности для преобразования
последовательного двоичного кода в параллельный или наоборот. На рисунке изображён сдвиговый
регистр , реализованный на JK- триггерах.

Схема регистра сдвига.

Благодаря последовательной схеме соединения разрядов регистра каждый задний фронт fт уста-
навливает последующий триггер в состояние, в котором до этого находился предыдущий, осуществляя
сдвиг информации на разряд вправо.
На следующем рисунке представлена ИС типа 533ИР1, которая реализует функции как 4-х раз-
рядного регистра памяти, так и функции регистра сдвига в зависимости от значения сигнала на входе
выбора режима V2:
при V2=0 - режим сдвига,
43
при V2=1 - режим параллельной записи.
На рисунке :
C1- тактовый вход продвижения информации , поступающей по входу V1.
C2- тактовый вход параллельной записи.
Если смена режима для 533ИР1 происходит в процессе работы, то для обеспечения безошибоч-
ной работы регистра необходимо выполнить условие C1’C2’=1.

Условное обозначение универсального регистра.

4..3. Двоичные счётчики.


Двоичные счётчики могут быть синхронными и асинхронными . Двоичный асинхронный счётчик
может быть построен последовательным соединением счётных триггеров, или JK- триггеров , у которых
J=K=1.

Асинхронный и синхронный двоичные счётчики.

Недостатком асинхронных счётчиков является задержка в установлении соответствующего кода


после прихода счётного импульса. Эта задержка, в частности, может приводить к появлению ложных
кодов на выходе счётчика и сбою дешифратора. Например, после кода 011 на выходе счётчика должен
появиться код 100 (коды записаны в порядке Q3Q2Q1). В асинхронном счётчике при последовательном
срабатывании триггеров код будет меняться следующим образом 011-
010-000-100, т.е. во время переходного процесса появляются два ложных кода 010 и 000.
44
В двоичных синхронных счёичиках срабатывание триггеров происходит одновременно или поч-
ти одновременно , так как все тактовые входы триггеров запараллелены . Временная диаграмма двоич-
ного счётчика представлена на рисунке.

Диаграммы работы двоичного счётчика.

Для построения синхронных счётчиков с коэффициентом деления K=2n используется n JK- триг-
геров, функции возбуждения которых определяются соотношением
m-1
Jm=Km=& Qi ,
i=1

где Jm, Km - соответствующие входы JK- триггера, на котором реализован m-ый разряд счётчика.

4.4 . Десятичные счётчики.

Десятичные счётчики строят на основе четырёхразрядных двоичных. Для понижения коэффици-


ента пересчёта четырёразрядного счётчика с 16 до 10 вводят различные логические связи. В зависимо-
сти от вида логической связи одним и тем же десятичным числам в различных счётчиках могут соответ-
ствовать различные четырёхразрядные двоичные коды. В этом случае говорят, что счётчики работают в
различных двоично-десятичных кодах.
Наиболее часто в счётчиках используется взвешенное кодирование. Если любое десятичное чис-
ло А может быть выражено в виде суммы
n
А = ∑ aiQi ,
i=0

где Qi - двоичные числа (0 или 1) в соответствующих разрядах кода,


аi - некоторые постоянные числа (веса разрядов),
то кодирование, построенное на данном соотношении, называется взвешенным.
Чаще других употребляется двоично-десятичный код 8-4-2-1.Здесь и далее цифры 8, 4, 2, 1 обо-
значают веса разрядов двоично-десятичного кода. Преимущество кода в его одназначности. Другие же
коды неодназначны. Например, в коде 4-2-2-1 десятичное число 4 можно представить как 1000 или
0110, поэтому существуют таблицы, однозначно закрепляющие за каждым кодом соответствующее де-
сятичное число [5].
В таблице приводятся наиболее употребительные двоично-десятичные коды. Код с избытком 3
является самодополняющимся. Для этих кодов характерно то, что при их поразрядном инвертировании
получается код числа, дополняющее данное до девяти. Это свойство кода удобно при построении циф-
ровых приборов, измеряющих знакопеременные величины.

45
Q4Q3Q2Q1 код 8-4-2-1 Невзвешенный Код с избытком 3
код
0 0 0 0 0 0 -
0 0 0 1 1 1 -
0 0 1 0 2 2 -
0 0 1 1 3 3 0
0 1 0 0 4 - 1
0 1 0 1 5 - 2
0 1 1 0 6 4 3
0 1 1 1 7 5 4
1 0 0 0 8 - 5
1 0 0 1 9 - 6
1 0 1 0 - - 7
1 0 1 1 - - 8
1 1 0 0 - 8 9
1 1 0 1 - 9 -
1 1 1 0 - 6 -
1 1 1 1 - 7 -

4.5. Элементная база для построения счётчиков.

В настоящее время промышленность выпускает ИС, реализующие асинхронные двоично-


десятичные счётчики (533ИЕ2), счётчики-делители на 12 (533ИЕ4) и делитель на 16 (533ИЕ5). 533ИЕ2
имеет коэффициент деления К = 2 х 5, для 533ИЕ4 К = 2 х 6, для 533ИЕ5 К = 2 х 8.
На рисунке в поле изображения микросхемы использованы следующие обозначения:
С1, С2 - тактовые входы соответственно для 1-го и 2-го разрядов;
R0 - вход обнуления;
R9 - вход установки счётчика в состояние 1001.
Для 533ИЕ4 выходы с весами 2, 4, 6, 12 обозначают выходы соответственно 1-го, 2-го, 3-го и 4-го
разрядов, для счётчиков 533ИЕ2 и 533ИЕ5 выходы с весами 1, 2, 4, 8 обозначают выходы соответствен-
но 1го, 2-го, 3-го и 4-го разрядов. Двоичный и десятичный счётчики изменяют свои состояния в соот-
ветствии с натуральной последовательностью кодов. Счётчик 533ИЕ4(133ИЕ4) изменяет своё состояние
в соответствии со следующей последовательностью десятичных кодов: 0-1-2-3-4-5-8-9-10-11-12-13.Это
связано с тем, что счётчик построен по схеме соединения делителей с коэффициентами деления 2 x 3 x
2 вместо 2 x 2 x 3 . Такую архитектуру можно объяснить лишь безграмотностью разработчиков.

46
Условные обозначения ИС асинхронных счётчиков 133 серии.

Глава пятая

СИНТЕЗ СЧЁТЧИКОВ

Существует несколько методов синтеза счётчиков. Рассмотрим два из них.

5.1 Синтез счётчиков с использованием установочных входов.

Суть этого метода заключается в том, что для построения счётчика с коэффициентом деления К
используется n-разрядный двоичный счётчик (n=Ilog2KC), охваченный обратной связью, которая фор-
мируется с помощью сборки двоичного кода К и подаётся на установочные входы обнуления. Напри-
мер, для построения счётчика с К=10 необходимо использовать 4-х разрядный двоичный счётчик, а на
установочные R-входы подать набор (сборку) - Q4Q3’Q2Q1’. Реализация этого счётчика изображена на
рисунке.

Синхронный двоичный счётчик.

На схеме этого рисунка и в дальнейшем на все незадействованные входы микросхем подавать


47
постоянный потенциал логической 1.
Реализация асинхронного счётчика с К=10 на базе ИС 133ИЕ5 представлена на следующем ри-
сунке. В этой схеме кроме сборки используется так называемый триггер-защёлка. Рекомендуется ис-
пользовать его для надёжного обнуления и для повышения помехозащищённости счётчика. В силу того,
что при данном методе синтеза используется лишь часть состояний двоичного счётчика, сборка может
быть отминимизирована. Например, для счётчика с К=10 сборка соответствует Q4Q2, для счётчика с
К=9 - Q4Q1, с К=12 - Q4Q3, с К=11 - Q4Q2Q1.

Схема десятичного счётчика на базе двоичного.

Синтез многоразрядных счётчиков на базе стандартных ИС имеет некоторую специфику. При


использовании 533ИЕ2(133ИЕ2) коэффициент деления представляется в двоично-десятичном коде и на
его основе формируются обратные связи. Например, для К = 125 получаем 2/10 – код, равный
100100101. Это соответствует установочной функции Q1Q3Q6Q9. Для счётчика 533ИЕ4(133ИЕ4) необ-
ходимо представить коэффициент деления в 2/12 – коде с учётом специфики реализации архитектуры
этой ИС. Синтез счётчика на базе ИС 533ИЕ5(133ИЕ5) наиболее прост: достаточно представить коэф-
фициент деления в двоичном коде, чтобы получить установочную функцию.

Выводы и рекомендации

Счётчики, реализованные с использованием установочных входов, обладают следующими не-


достатками:
1) низкая помехозащищённость по цепи обратной связи: если помеха вызовет сбой в этой цепи,
то счётчик преждевременно обнулится;
2) при синхронной реализации из-за разброса параметров отдельных триггеров возможно появ-
ление ложных комбинаций, которые приведут к преждевременному обнулению счётчика (например,
при переходе от кода 0111 к коду 1000 возможно кратковременное появление кода 1010, что приводит к
обнулению счётчика с К=10).
Неоспоримым преимуществом таких счётчиков является их простота. Рекомендуется примене-
ние их при построении счётчиков с переменным К, а также при синтезе синхронизаторов без жёсткой
привязки фронтов импульсных последовательностей.

Задание 5.
а) Построить асинхронные делители частоты с использованием установочных входов :
5-1) К=12 на 533ИЕ5
5-2) К=8 на 533ИЕ2
5-3) К=80 на 533ИЕ2
б) Построить синхронные делители частоты с использованием установочных входов :
5-4) К=80 на JK-триггерах 533ТВ1
5-5) К=24 на JK-триггерах 134ТВ3.
48
5.2 Синтез счётчиков с использованием управляющих входов.

Этот метод основан на использовании таблицы входов элементов памяти, которая может быть
получена из таблицы переходов. По таблице входов можно определить, какие сигналы необходимо по-
дать на управляющие входы, чтобы перевести элемент памяти из одного состояния в другое. Построим
таблицу входов для JK-триггера.
Из таблицы переходов следует, что для перевода триггера из состояния 0 в состояние 0 на JK-
входы необходимо подать JK=00 или JK=01, т.е. для осуществления этого перехода состояние управ-
ляющего входа К безразлично. Условно операцию определения функций возбуждения для реализации
перехода триггера из состояния 0 в состояние 0 можно записать так :
JK = 00 + 01 = 0- .
Для перевода JK-триггера из состояния 0 в состояние 1 на JK-входы необходимо подать комби-
нацию
JK = 10 + 11 = 1- .
Для перевода JK-триггера из 1 в 0 должна быть подана комбинация
JK = 01 + 11 = -1 ,
а для перевода из 1 в 1
JK = 00 + 10 = -0 .
Аналогично можно получить таблицу входов для SR-триггера и D-триггера.

Таблица входов для JK -, SR - и D -триггеров.

Qn-1 Qn J K S R D
0 0 0 - 0 - 0
0 1 1 - 1 0 1
1 0 - 1 0 1 0
1 1 - 0 - 0 1

5.2.1 Синтез синхронных счётчиков.

Этот метод прекрасно изложен в [11].Для синтеза счётчика необходимо построить совмещённую
таблицу состояний и входов счётчика. Проследим этот процесс на примере синтеза синхронного дели-
теля на 5 (счётчик с К=5).

Совмещенная таблица счетчика с К = 5

N состояния Q3Q2Q1 J3K3 J2K2 J1K1


0 000 0- 0- 1-
1 001 0- 1- -1
2 010 0- -0 1-
3 011 1- -1 0-
4 100 -1 0- 0-

При переходе из 0-го состояния в 1-ое триггер 1-го разряда переходит из состояния 0 в состояние
1. Для осуществления этого перехода по таблице входов для JK-триггера определяем что должны быть
поданы J1=1, K1=-, т.е. уровень сигнала К1 не влияет на выполнение перехода из 0 в 1. Для 2-го и 3-го
разрядов переход из 0-го состояния в 1-ое требует перевода триггеров 2-го и 3-го разрядов из состояния
0 в состояние 0, что соответствует J2K2 = J3K3 = 0-. Аналогично заполняются строки таблицы для 1-го, 2-
го и 3-го состояний.
Для перехода из 4-го состояния в начальное (нулевое) необходимо, чтобы 1-ый и 2-ой триггеры
49
сохранили на своих выходах 0, а 3-ий перешёл из состояния 1 в состояние 0. Для этого необходимо
обеспечить J1K1 = J2K2 = 0-, a J3K3 = -1.
Далее совмещённая таблица интерпретируется как таблица истинности для булевых функций J1,
K1 , J2, K2, J3, K3, зависящих от входных переменных Q3Q2Q1, и синтез счётчика сводится к синтезу буле-
вых функций возбуждения J1, K1, J2, K2, J3, K3.
После минимизации функций возбуждения получаем результат :
J3 = Q2Q1
J2 = K2 = Q1
J1 = Q3’
K3=К1 = 1

В соответствии с этим результатом строим счётчик. Счётчики можно строить на различных эле-
ментах памяти, при этом нужно использовать соответствующую таблицу входов.

Синхронный делитель на 5.

Задача 13.
Построить счётчик с К=3 на D-триггерах.

Решение
Строим совмещённую таблицу и синтезируем функции возбуждения D2 и D1.

Q2 Q1 D2 D1
0 0 0 1
0 1 1 0
1 0 0 0

D2 = Q1 D1 = Q2’Q1’
50
Cхема счётчика представлена на рисунке.

Синхронный делитель на 3.

Весьма важным моментом является кодирование состояний счётчика. При оптимальном кодиро-
вании удаётся получить наиболее компактную реализацию счётчика. Вопросы оптимального кодирова-
ния состояний счётчика полностью не решены. Алгоритмы, предлагаемые в [2] для оптимального коди-
рования состояний микропрограммных автоматов, далеко не всегда дают положительные результаты.
Рассмотрим влияние кодирования состояний счётчика на примере синтеза делителя на 5.
Задача 14
Построить счётчик с К=5 при невзвешенном кодировании состояний на JK-триггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения.

Q3Q2Q1 J3K3 J2K2 J1K1


000 0- 0- 1-
001 1- 0- -0
101 -0 1- -0
111 -0 -0 -1
110 -1 -1 0-

K3 = K2 = Q1’
J2 = Q3 ; J3 = Q1
J1 = Q2’ ; K1= Q2

Делитель на 5 при невзвешенном кодировании.

Из сравнения рисунков видно, что получившийся счётчик имеет оптимальную структуру. Можно
построить, как минимум, ещё 3 различных варианта делителей на 5, имеющих минимальную реализа-
цию. Одна из таких реализаций приводится в [11]. Рассмотренный делитель на 5 был синтезирован с
применением так называемого соседнего кодирования, которое считается оптимальным для построения
конечных автоматов на элементах памяти с раздельными входами, типа JK- или SR-триггеров [2]. Если
для построения синхронного счётчика с К=12 применить соседнее кодирование 0000, 0001, 0011, 0010,
0110, 1110, 1010, 1011, 1001, 1000, 1100, 0100, то коэффициент сложности счётчика, построенного на
JK-триггерах, составит 26, а при использовании взвешенного двоичного кодирования ( 0000, 0001, 0010,
51
0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010,1011) коэффициент сложности схемы будет равен 8.
Практика построения синхронных счётчиков с большими коэффициентами пересчёта показала, что
наилучшие результаты даёт взвешенное двоичное кодирование состояний счётчика.
Методы синтеза счётчиков полностью пригодны для разработки схем различных синхронизато-
ров и распределителей импульсов, так как и те, и другие являются счётчиками с невзвешенным кодиро-
ванием состояний.
Пример синтеза синхронизатора, используемого в цифровом фильтре, рассмотрен в задаче 11,
где Q10 - Q12 - выходы синхронизатора, а Q1 - Q9 - выходы вспомогательного счётчика с К=320. Функции
возбуждения этого счётчика не представляют интереса, так как счётчик состоит из известных делителей
частоты на 32 и на 10.

5.2.2 . Синтез асинхронных счётчиков.

Синтез асинхронных счётчиков[11] возможен при выполнении следующих условий:


1) если хотя бы один разряд обеспечивает формирование заднего фронта для всех тех случаев,
когда другой разряд изменяет своё состояние;
2) задержка, вносимая самой длинной цепью делителя от тактового входа одного разряда до вхо-
да возбуждения другого, должна быть меньше периода тактовой частоты последнего из указанных раз-
рядов.
Синтез асинхронных счётчиков разбивается на 4 этапа :
1) находится совокупность разрядов, в которой один из разрядов мог бы формировать тактовую
частоту для других (этот разряд будем называть тактовым);
2) для тактируемых разрядов из этой совокупности совмещённая таблица для функций возбуж-
дения заполняется только по строкам, соответствующим заднему фронту тактового разряда, а в осталь-
ных строках ставится прочерк;
3) д ля разрядов, на тактовый вход которых поступает основная частота f, синтез осуществляется
по синхронному методу;
4) определяется граничная частота fгр для данной реализации.

Задача 15
Построить асинхронный делитель на 6.
Решение.
Строим совмещённую таблицу.

Q3Q2Q1 J3K3 J2K2 J1K1


000 -- -- 1-
001 0- 1- -1
010 -- -- 1-
011 1- -1 -1
100 -- -- 1-

1. Разряды 1, 2, и 3 образуют совокупность, в которой 1-ый разряд может формировать тактовую


частоту для 2-го и 3-го.
2. Заполняем совмещённую таблицу в соответствии со 2-м и 3-м этапами синтеза асинхронных
счётчиков.
3. Определяем функции возбуждения :
J3=Q2, J2=Q3’, J1=K1=K2=K3=1 , по которым строим счётчик.
4. Определяем граничную частоту, считая, что счётчик реализован на триггерах 134ТВ3 с за-
держкой =100 нс. Наиболее длинная цепь от выхода Q2 до выхода J2. Задержка по этой цепи состав-
ляет 100 нс. Граничная тактовая частота для 2-го и 3-го разрядов равна 1/100 нс = 10 Мгц. Приведённая
к тактовому входу 1-го разряда fгр= 20 Мгц. Реальная граничная частота будет не более 1,5 Мгц, так как
это частотный предел ИС серии 134.
52
Асинхронный делитель на 6.

Выводы и рекомендации.
1. Счётчики, реализованные с использованием управляющих входов, не застрахованы от появле-
ния ложных выходных наборов, но это никогда не приводит к сбою в работе счётчиков, так как измене-
ние состояния счётчиков происходит при установившемся значении выходных наборов.
2. Синхронные счётчики указанного класса позволяют реализовать импульсные последователь-
ности с высокой точностью привязки фронтов.
3.Если высокая степень точности привязки импульсной последовательности не требуется, то
предпочтительнее асинхронная реализация счётчиков.
4. Как синхронные, так и асинхронные счётчики с использованием управляющих входов макси-
мально защищены от сбоев по установочным входам.

Задание 6.
Построить синхронные и асинхронные делители частоты с использованием управляющих входов
на JK - и D -триггерах :
6-1) К = 12
6-2) К = 14
6-3) К = 24
6-4) К = 25

5.3. Реверсивные счётчики

Реверсивные счётчики (РС) могут быть асинхронными и синхронными. И те и другие могут быть
как двоичными так и с произвольным коэффициентом пересчёта К. На рисунке показана схема асин-
хронного двоичного РС без зоны нечувствительности,т.е. такого РС, который с приходом каждого так-
тового импульса изменяет своё состояние.

53
Асинхронный и синхронный реверсивные счётчики.

Изменение направления счёта в РС происходит в зависимости от величины сигнала N. При N = 1


счётчик считает в прямом направлении, при N = 0 - в обратном.
Асинхронный РС практически не может быть использован, так как при изменении направления
счёта может изменяться код, записанный в РС. Например, при переходе от суммирования к вычитанию,
если предыдущий триггер находится в состоянии 1, то сигнал на входе последующего триггера изме-
нится с 1 на 0, что приведёт к его опрокидыванию.
Этого недостатка лишены синхронные счётчики, так как они изменяют своё состояние по задне-
му фронту тактовой частоты,и изменение N в промежутке между фронтами (т.е. на протяжении периода
тактовой частоты) не влияет на состояние РС. Пример синхронного двоичного РС приводится на рисун-
ке.
Построение РС без зоны нечувствительности с произвольным К осуществляется методом синтеза
счётчиков с использованием управляющих входов. Аналогично можно строить РС с зоной нечувстви-
тельности.
Задача 16.
Построить синхронный РС без зоны нечувствительности с К=3 на JK-триггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения J2, K2, J1, K1.

Код состоян. N=1 N=0


Q2Q1 J2K2 J1K1 J2K2 J1K1
0 0 01 1- 1- 0-
0 1 1- -1 0- -1
1 0 -1 0- -1 1-

С помощью карт Карно получаем :


J2 = Q1’N’ + Q1N = (Q1N’+Q1’N)’
J1 = Q2’N + Q2N’ = (Q2N+Q2’N’)’
Схема счётчика и синтез функций возбуждения представлены на рисунке.

54
Синхронный реверсивный счётчик с К=3 без зоны нечувствительности.

Задача 17
Построить синхронные РС с зоной нечувствительности на JK-триггерах. К=3. При R1R2=10 РС
должен считать в прямом направлении, при R1R2= 01 - в обратном, при R1R2=00 РС не изменяет своего
состояния, ситуация R1R2=11 является запрещённой.
Решение.
Строим совмещённую таблицу и синтезируем функции возбуждения.

Код сост. R1R2 = 10 R1R2 = 01 R1R2 = 00


Q2Q1 J2K2 J1K1 J2K2 J1K1 J2K2 J1K1
0 0 0- 1- 1- 0- 0- 0-
0 1 1- -1 0- -1 0- -0
1 0 -1 0- -1 1- -0 0-

J2’ = Q1’R2’ + Q1R1’ J1’ = Q2’R1’ + Q2R2’


K2’= R1*R2 K1’= R1’R2’
В этой задаче минимизацию функций вюзбуждения удобнее проводить по нулям, т.е. получать
минимальную форму инверсии функции возбуждения. В этом случае удаётся применить ИС типа 2И-
2ИЛИ-НЕ, что уменьшает количество корпусов ИС и снижает число связей между элементами.

Задание 7.
Построить РС без зоны нечувствительности и с зоной нечувствительности на JK-, D - и такти-
руемых SR - триггерах :
7-1) К = 10
7-2) К = 12
7-3) К =16

5.4.Распределители импульсов.

В инженерной практике большое значение имеет синтез распределителей импульсов(РИ). Под


распределителем импульсов понимается устройство, работа которого описывается периодической логи-
ческой функцией вида

Qi = Fi(t) , где Qi – i –выход РИ, t – время.

55
Самым простым решением задачи будет построение РИ на основе тактового генерато-
ра(ТГ),счётчика и дешифратора. Однако полученный РИ имеет ряд недостатков. Одним из них является
искажение выходной последовательности в результате возникновения гонок. Избавиться от них можно,
введя дополнительный регистр на выходе дешифратора. Однако, в случае построения быстродейст-
вующих РИ требуется минимальное запаздывание, а дополнительный регистр противоречит предъяв-
ленным требованиям. Выходом из сложившейся ситуации служит синтез синхронного РИ в соответст-
вии с приводимым алгоритмом. Алгоритм излагается параллельно с синтезом конкретного РИ.
Пусть необходимо построить РИ, имеющий две выходные последовательности Q1,Q2 с перио-
дом Тс, представленные на рисунке.

Алгоритм синтеза РИ.

1.Определить величину одной дискреты времени D как наибольший общий делитель(НОД) из


длительностей импульсов Т1 и интервалов между ними Т0 для всех Qi:
Т1: 40,20,30,20 (мкс)
Т0: 20,20,20,30 (мкс).
Из исходных данных получим:
D = НОД(Т1,Т0) = НОД(40,20,30,20,20,20,20,30) = 10мкс.

2.Импульсные последовательности Qi разбить на отрезки величиной D. Для каждого j – го от-


резка записать код вида (Q1*Q2* . . . Qm*)j, где m – количество выходов РИ. Среди m выходных последо-
вательностей не должно быть взаимно инверсных, т. к. инверсные последовательности получаются
автоматически на инверсных выходах элементов памяти. Здесь символ * свидетельствует о том, что
переменная может входить как в прямом, так и в инверсном значении. В примере получены коды
Q1*Q2*: 11,11,11,10,00,01,11,10,00,00.

3. В множестве кодов вида (Q1*Q2* . . . Qm*) подсчитать максимальное число К одинаковых кодов.
Если одинаковых кодов нет, перейти к п. 6.
В нашем примере чаще других повторяется код 11, К = 4.

4. Определить общее количество элементов памяти N по формуле


N = m + ] log2K[
Запись ] log2K[ означает, что, если двоичный логарифм является дробной величиной, то резуль-
тат округляется до ближайшего большего целого числа.
N = 2 + ]log2 4[ = 2 + 2 = 4

5. Доопределить m – разрядные коды (Q1*Q2* . . . Qm*) до N – разрядных таким образом, чтобы


56
среди них не было одинаковых.
Q1Q2Q3Q4: 1100,1101,1110,1000,0000,0100,1111,1001,0001,0010.

6. Используя аппарат синтеза синхронных счётчиков, построить РИ.

5. 5. Cчётчики на сдвиговых регистрах.

При синтезе синхронных счётчиков или РИ на базе ПЛИС возникает необходимость построения
цифровых устройств с минимальной комбинационной частью за счёт некоторого увеличения количест-
ва элементов памяти. Поскольку, например, в МЛЯ Xilinx количество D-триггеров исчисляется сотня-
ми, то потеря даже десяти триггеров не станет ощутимой. Используя метод Девяткова В. В. , можно по-
строить синхронный счётчик с произвольным коэффициентом деления на сдвиговом регистре(ССдР).
Особенностью построения ССдР является то, что синтезу подлежит функция возбуждения лишь одного
разряда вне зависимости от коэффициента пересчёта.

Алгоритм синтеза ССдР.

1.Выполнить П-разбиение всех состояний счётчика.


2.Записать это разбиение в виде столбца состояний младшего разряда счётчика.
3. Произвести сдвиг этого столбца вниз на одну позицию и записать его в виде столбца состоя-
ний очередного разряда счётчика.
4. Сравнить построчно полученные коды состояний счётчика. Выполнять операции 3 и 4 до пол-
ного развязывания кодов состояний.

Пример.

Построить ССдР с коэффициентом пересчёта К=17.

Решение.

1.Выполняем П-разбиение 17 состояний ССдР, распределив их между двумя группами:


0-группа - 1, (4,5,6), (11,12,13,14,15);
1-группа - (2,3), (7,8,9,10), (16,17).

№состояния Q0Q1Q2Q3Q4Q5 8-й код D0


1 011000 30 1
2 101100 54 1
3 110110 66 0
4 011011 33 0
5 001101 15 0
6 000110 06 1
7 100011 43 1
8 110001 61 1
9 111000 70 1
10 111100 74 0
11 011110 36 0
12 001111 17 0
13 000111 07 0
14 000011 03 0
15 000001 01 1
16 100000 40 1
57
17 110000 60 0

Из таблицы истинности получаем:


D0 = Q3’Q4’Q5 + Q2’Q0’Q5’ + Q2Q3’Q4’ + Q0Q1’
D1 = Q0
D2 = Q1
D3 = Q2
D4 = Q3
D5 = Q4

Комбинационная часть ССдР получилась минимальной за счёт увеличения разрядности регистра на


единицу. Рутинная операция развязывания состояний ССдР требует тем не менее внимания, поэтому
её вместе с П-разбиением и формированием таблицы истинности имеет смысл реализовать в виде
простенькой программы.

program ssr;
uses crt;
type vect=array[1..2048] of word;
var
v0,v1,v :vect;
i,j,k,n:integer;
{---------------------------------------------------------}
procedure pirazb(k:integer;var v0:vect);
{Пи-разбиение для младшего разряда счетчика
с коэффициентом деления k}
var
i,j,ik,jk,l:integer;
begin
l:=1;ik:=1;jk:=2;
repeat
for i:=ik to ik+2*(l-1) do v0[i]:=0;
for j:=jk to jk+2*l-1 do v0[j]:=1;
ik:=jk+2*l;
jk:=ik+2*l+1;
l:=l+1;
until (i>k) or (j>k);
end;
{----------------------------------------------------------}
procedure sdwig(n:integer;var v0,v1:vect);
{Сдвиг исходного вектора вниз на один разряд}
var
i,v0n:integer;
begin
for i:=n downto 2 do v1[i]:=v0[i-1];
v1[1]:=v0[n];
end;
{----------------------------------------------------------}
procedure kley(n:integer;var v0,v1,v:vect);
var
i:integer;
begin
for i:=1 to n do v[i]:=v1[i]+2*v0[i];
end;
{----------------------------------------------------------}
58
function razwyaz(k:integer;var v:vect):integer;
label 1;
var
i,j:integer;
begin
razwyaz:=1;
for i:=1 to k-1 do
for j:=i+1 to k do
if v[i] = v[j] then
begin
razwyaz:=0;
goto 1;
end;
1:end;
{----------------------------------------------------------}
procedure formtbl(k:integer;var v0,v:vect;var n:integer);
{Развязывание кодов счётчика.
k - коэффициент пересчёта,
v0 - исходный вектор,
v1 - результирующий вектор кодов состояний счетчика,
n - количество разрядов в коде состояний счетчика,
v1,v2 - промежуточныe векторы,
f - флаг развязки.
}
var
f,i:integer;
v1,v2:vect;
begin
n:=1;
for i:=1 to k do v2[i]:=v0[i];
repeat
sdwig(k,v0,v1);
kley(k,v2,v1,v);
n:=n+1;
f:=razwyaz(k,v);
for i:=1 to k do
begin
v0[i]:=v1[i];
v2[i]:=v[i];
end;
until (f=1) or (n>16);
end;
{=========================================================}
begin
clrscr;
writeln('г================================================¬');
writeln('¦ Синтез счетчиков на сдвиговых ¦');
writeln('¦ регистрах.Коэффициент деления <= 2048 ¦');
writeln('¦ SSR.pas ¦');
writeln('¦ Лобанов В.И. 17-03-1999 ¦');
writeln('L================================================-');
writeln;
write('Введите k<=2048 ');
readln(k);
59
writeln;
pirazb(k,v0);
for i:=1 to k do
write(v0[i]:2);
writeln;
formtbl(k,v0,v,n);
for i:=1 to k do write(v[i]:8);
writeln;
if n>16 then writeln ('Переполнение разрядной сетки');
writeln('n = ',n:2);
writeln('Нажмите Enter ');
readln;
end.
Синтез счетчиков на сдвиговых регистрах(ССР) по программе ssr.pas дал такие результаты:
Коэффициент деления: 10 20 30 40 50 60
Разрядность ССР : 4 8 10 12 14 16
Результаты работы этой программы убедительно доказывают неэффективность синтеза РИ на
сдвиговых регистрах: слишком велик объём памяти.

Глава шестая КОНЕЧНЫЕ АВТОМАТЫ.

КОНЕЧНЫЕ АВТОМАТЫ

6.1 Понятие о конечном автомате. Автоматы Мили и Мура.

Конечным автоматом называется устройство, задаваемое конечным множеством из элементов :


1) множество входных сигналов (входной алфавит) -
х = { х1, ... , хf, ... х } ;
2) множество состояний (алфавит состояний) -
А = { a0,, ... , am, ... aм };
3) множество выходных сигналов (выходной алфавит) -
у = { у1, ... , уg , ... уG } ;
4) функция переходов - δ ;
5) функция выходов - λ ;
6) начальное состояние автомата - а0.
Под состоянием понимается одна из множества отличных друг от друга ситуаций, в которой мо-
жет оказаться конечный автомат. Например, счётчик с К=5 имеет 5 различных состояний, реверсивный
счётчик с К=10 имеет 10 различных состояний.
В общем виде структура конечного автомата представлена на рисунке. Из него видно, что конеч-
ный автомат состоит из комбинационной схемы КС, которая формирует выходной алфавит у и функции
возбуждения ϕ , и элементов памяти ЭП с выходами τ .

60
Обобщённая схема конечного автомата.

Функции возбуждения описывают те сигналы, которые необходимо подать на управляющие вхо-


ды элементов памяти.
На практике наибольшее распространение получили автоматы Мили и Мура.
Автомат Мили задаётся уравнениями :
a(t+1) = δ(a(t), x(t)) ;
у(t) = λ(a(t), x(t)) ;
Автомат Мура описывается соотношениями:
a(t+1) = δ(a(t), x(t) ) ;
у(t) = λ(a(t)).
Из законов функционирования автоматов Мили и Мура видно, что они отличаются только фор-
мированием выходного алфавита. Структурные схемы автоматов Мили и Мура представлены ниже.

Схемы автоматов Мили и Мура.

6.2. Методы задания автоматов. ГСА.

Любой конечный автомат может быть представлен с помощью направленных графов, таблиц пе-
реходов и выходов, граф-схем алгоритмов (ГСА), логических схем алгоритмов (ЛСА) или матричных
схем алгоритмов (МСА). Этот перечень можно было бы продолжить.
Наиболее наглядной формой представления автомата является ГСА[2].
ГСА - ориентированный связный граф, содержащий вершины четырёх типов: начальную, услов-
ную, операторную и конечную.
61
Условные обозначения вершин ГСА.

ГСА удовлетворяет следующим требованиям:


1. Содержит конечное число вершин.
2. Имеет одну начальную и одну конечную вершины.
3. Входы и выходы вершин соединяются дугами, направленными от выхода ко входу.
4. Каждый выход соединён только с одним входом.
5. Любой вход соединяется по крайней мере с одним выходом.
6. Для любой вершины графа существует хотя бы один путь к конечной вершине.
7.В каждой условной вершине записывается один из элементов множества логических условий
(входной алфавит).
х = { x1, .... , xf, ... xF}.
8. В каждой операторной вершине записывается оператор уt - подмножество множества выход-
ных сигналов у.
у = { у1, ... , уg , ... уG }. Допускается уt =∅ .

6.3. Синтез конечных автоматов.

Различают два метода синтеза: эвристический и формальный. Эвристический метод - метод проб
и ошибок, но зачастую он приводит к весьма экономным решениям. Единственный его недостаток за-
ключается в том, что для получения решения эвристическим методом требуется длительное время рабо-
ты высококвалифицированных специалистов. При таком подходе в век НТР достаточно сложное уст-
ройство может морально устареть прежде, чем закончится его эвристическая разработка.
При формальном методе синтеза решение задачи получается чрезвычайно быстро, сроки разра-
боток существенно сокращаются, а саму формальную разработку можно переложить либо на ЭВМ, ли-
бо на технический персонал.
Не следует считать, что формальный метод исключает творческий этап в разработке цифрового
устройства. От того, насколько остроумна была идея, т.е. алгоритм устройства, целиком и полностью
зависит сложность схемы прибора, изделия. Поэтому правильнее считать формальный метод формаль-
но - эвристическим.
Обычно синтез конечных автоматов (цифровых устройств, микропрограммных автоматов) осу-
ществляется по следующей схеме.
1. Проработка идеи реализации конечного автомата, выявление отдельных узлов и связей между
ними. Составление структурной схемы автомата.
2. Составление ГСА, разметка ГСА.
3. Составление по ГСА обратной структурной таблицы.
4. Кодирование состояний. Для асинхронного автомата применяется противогоночное кодирова-
ние, для синхронного применяется кодирование, обеспечивающее минимизацию комбинационной части
устройства.
5. Построение принципиальной схемы по обратной структурной таблице автомата.
Кстати,именно этот формальный метод использует автор уже более четверти века как для разра-
ботки конечных автоматов на базе цифровых интегральных микросхем,так и ,введя в него некоторые
дополнения, для синтеза сложных релейных схем.Возврат к релейным схемам был связан с высокой
помехоустойчивостью и радиационной стойкостью реле.Особенно это стало актуальным после Черно-
быля.
Каждый из 5 пунктов требует обстоятельного разговора. Попытаемся понять суть этих вопросов
62
на примере построения достаточно простых конечных автоматов.

Задача 18.
Очистить от дребезга входной сигнал х, подача которого осуществляется тумблером.
Решение.
Очистку от дребезга можно осуществить, например, с помощью синхронного конечного автома-
та (КА). Задача КА будет заключаться в том, чтобы по заднему фронту тактовой частоты f выходной
сигнал у принимал то же значение, что и входной сигнал х. В этой ситуации выходной сигнал не изме-
нится на протяжении всего периода тактовой частоты, как бы не менялся при этом х1. Для того, чтобы
дребезг входного сигнала не проявлялся на выходе, необходимо иметь тактовую частоту с периодом,
превышающим длительность дребезга. Так как дребезг тумблера длится не более 2 мс, то период такто-
вой частоты должен быть не менее 2 мс. Структурная схема автомата получилась простой.

Идею обработки входного сигнала х и выдачи очищенного от дребезга выходного сигнала у


можно выразить с помощью временной диаграммы.

Из временной диаграммы видно, что при первом же совпадении заднего фронта с х=1 автомат
должен выдать у = 1, а при совпадении заднего фронта с х = 0 автомат должен выдать у = 0.
2. Опишем логику работы автомата, т.е. зададим автомат, с помощью ГСА . Разметим ГСА для
автомата Мура, для чего рядом с каждой операторной вершиной проставим идентификатор состояний,
причём начальная и конечная вершины ГСА отмечаются как одинаковые состояния. В начальной ста-
дии КА находится в начальном состоянии а0 (начальная вершина) и проверяет наличие сигнала х. Если
х=0, то КА не меняет своего состояния, что отображено связью х=0, выходящей из первой условной
вершины и входящей в конечную вершину, которая отмечена начальным состоянием а0. В начальной и
конечной вершинах нет ни одного оператора, т.е. у=0. Если х=1, то КА оказывается в новом состоянии
а1 по связи х=1, выходящей из первой условной вершины и входящей в операторную вершину с опера-
тором у. Если после того, как КА оказался в состоянии а1, входной сигнал х к моменту прихода заднего
фронта тактовой частоты не изменил своего значения, т.е. х=1, то КА останется в состоянии а1 и будет
выдавать на своём выходе сигнал у=1 (связь из второй условной вершины). В том случае, если приход
заднего фронта тактовой частоты совпадает с х=0, то КА вернётся в начальное состояние а0. Таким об-
разом, составление, разметка и проверка ГСА работы КА закончены, так как мы убедились, что выход-
ной сигнал у по заднему фронту тактовой частоты принимает то же значение, что и входной сигнал х.

63
3. Составим для конечного автомата обратную структурную таблицу. Обратная структурная таб-
лица показывает, при каких входных сигналах и из каких состояний осуществляется переход в данное
состояние и какие выходные сигналы выдаются при этом переходе. В столбце состояние перехода
(СП) для автомата Мура указывается не только состояние перехода, но и выходной сигнал, который
соответствует данному состоянию.

Исх.сост. Код исх. сост. Вх.сигн. Сост.перех. Код СП Функ.возб.


(ИС) τ x (СП) (КСП) JK
a0 0 0 a0 0 0-
a1 1 0 (-) 0 -1
a0 0 1 a1 1 1-
a1 1 1 (у) 1 -0

4. Так как синтезируемый конечный автомат имеет только 2 состояния, то его можно построить
на одном элементе памяти.
n = ]log2N[,
где n - количество элементов памяти,необходимое для реализации КА,
имеющего N состояний.
n = ] log22[ = 1
Таким образом, коды состояний будут одноразрядными. Так как автомат очень простой, то коди-
рование может быть произвольным. Кодирование состояний приведено в таблице 29. Выбираем в каче-
стве элемента памяти JK-триггер.
Столбцы для функций возбуждения заполняются в соответствии с таблицей входов конкретного
элемента памяти (в данном случае JK-триггера) для обеспечения перехода из исходного состояния в
состояние перехода.
Функции возбуждения синтезируются как логические функции, зависящие от кода исходного со-
стояния и входного сигнала.
J = x, K = x’
Выходные функции зависят только от кода состояния перехода (для автомата Мура). Поэтому у
= τ, т.е. выходной сигнал формируется на прямом выходе JK-триггера. Синтез функций возбуждения и
принципиальная схема конечного автомата приводятся на рисунке.
Задачу очистки от дребезга можно было решать на любом элементе памяти. В частности для D-
триггера мы получили бы более компактное решение, а именно :
D=x, у=τ

64
Автомат очистки от дребезга.

6.4 Кодирование состояний и сложность комбинационной схемы.

При синтезе счётчика с К=5 мы видели, что сложность комбинационной части счётчика зависит
от кодирования состояний. Это утверждение справедливо для всего класса конечных автоматов.
В [2] приводятся два простых алгоритма оптимального кодирования состояний конечного авто-
мата. Эти алгоритмы хорошо работают при синтезе автоматов, насчитывающих от нескольких десятков
до нескольких сотен функций возбуждения и несколько сотен переменных, когда классические методы
минимизации булевых функций оказываются неприемлемыми.

Алгоритм оптимального кодирования состояний автомата на D-триггерах.

1. Каждому состоянию автомата Qm (m=1, ... , M) ставится в соответствие целое число Nm, равное
числу переходов в состояние аm.
2. Числа N1, ... , Nm, ... Nм сортируются по убыванию.
3. Состояние Qt с максимальным Nt кодируется кодом (00....0).
4. Следующие I состояний (I - число элементов памяти) в упорядоченном в п.2 списке кодирует-
ся кодами, в которых используется одна единица в каком-либо разряде, а во всех остальных разрядах
нули.
5. Для кодирования следующих I состояний используются коды, содержащие две единицы, затем
три единицы и т.д., до тех пор, пока все состояния не будут закодированы.
Суть этого алгоритма заключается в том, что мы стремимся использовать минимальное количе-
ство единиц в кодах тех состояний, переход в которые происходит чаще всего. Таким образом, функции
возбуждения реже принимают значение 1, что приводит к уменьшению количества термов. Так как
классические методы минимизации при синтезе сложных автоматов не применяются, то по алгоритму
кодирования мы получаем коды состояний, обеспечивающие минимальную комбинационную часть
конечного автомата.
Для конечных автоматов, построенных на триггерах с раздельными входами, применяется алго-
ритм кодирования состояний, минимизирующий суммарное число изменений состояний элементов па-
мяти на всех переходах автомата [2]. Соседнее кодирование является частным случаем кодирования
состояний, получаемым по указанному алгоритму.
Задача 20.
Построить 10-разрядный кодовый замок. который открывается последовательным нажатием двух
определённых клавиш. Предусмотреть защиту от посторонних. Замок должен открываться кодом 19.
Решение.
Построим замок, используя автомат Мили. ГСА кодового замка и её разметка представлены на
рисунке. В этой ГСА использованы следующие обозначения :
х0 - не нажата ни одна из клавиш
х1 - нажата только клавиша №1
х2 - нажата только клавиша №9
х3 - снятие сигнализации
у1 - включить соленоид
у2 - включить сирену
По ГСА строим обратную структурную таблицу.
65
ГСА кодового замка.

ИС τ 3τ 2τ 1 Входы СП КСП Вых. J3K3 J2 K 2 J1K1


a0 000 x0x1’ a0 000 - 0- 0- 0-
a3 010 x2’ 000 - 0- -1 0-
a4 100 x1 000 - 01 0- 0-
a0 000 x1 a1 001 - 0- 0- 1-
a1 001 x1 001 - 0- 0- -0
a1 001 x1’ a2 011 - 0- 1- -0
a2 011 x0 011 - 0- -0 -0
a2 011 x2x0’ a3 010 у1 0- -0 -1
a3 010 x2 010 у1 0- -0 о-
a0 000 x1’x0’ a4 100 у2 1- 0- 0-
a2 011 x0’x2’ 100 у2 1- -1 -1
a4 100 x3’ 100 у2 -0 0- 0-

После применения алгоритма оптимального кодирования для триггеров с раздельными входами


получаем коды :
a0 - 000
a1 - 001
a2 - 011
a3 - 010
a4 - 100
После минимизации получим функции возбуждения :
66
J3 = τ2’τ1’x1’x0’ + τ2τ1x2’x0’ ;
K3 = x3 ;
J2 = τ1x1’ ;
K2 = τ1’x2’ + x2’x0’ ;
J1 = τ3’τ2’x1 ;
K1 = τ2x0’ .
Выходные функции для автомата Мили :
у1 = τ2x2x0’ + τ2τ1’x2 ;
у2 = τ3’τ2’τ1’x1’x0’ + τ3τ1x2’x0’ + τ3x3’ ;
Если бы кодовый замок был построен на автомате Мура, то выходные функции приняли бы вид
:
у 1 = τ2τ1’ у 2 = τ3
Далеко не всегда автомат Мура даёт более компактные решения, чем автомат Мили. Например,
если часть ГСА имеет вид, представленный на нижеприведённом рисунке, то реализация этой ГСА с
помощью автомата Мили позволит уменьшить число состояний, а значит, и количество элементов па-
мяти.

6.5 . Гонки и противогоночное кодирование.


При работе автомата могут появиться гонки, вызванные разбросом параметров элементов памя-
ти. Задержки, вносимые триггерами, имеют различные значения, поэтому одни элементы памяти изме-
няют свои состояния быстрее, чем другие. Такие состязания могут привести, например, к тому, что пе-
реход из состояния 011 в состояние 110 может произойти при входном сигнале х двумя путями : 011-
010-110 или 011-111-110.
Если из состояний 010 и 011 есть переход под действием сигнала х в состояние 110, то такие со-
стязания называются некритическими, если же таких переходов нет, то состязания называются критиче-
скими. При критических состязаниях работа автомата нарушается. Считается, что некритические состя-
зания не опасны, но это не совсем так. Автомат, попадая в промежуточные состояния ( в нашем приме-
ре это состояния с кодами 010 и 111 ), может сформировать короткий выходной сигнал, которого ока-
жется вполне достаточно, например для обнуления какого-либо функционального узла, т.е. работа ав-
томата будет искажена.
Следовательно существует проблема защиты как от критических, так и от некритических гонок.
Существует несколько способов защиты от гонок [3], мы рассмотрим только один из них - про-
тивогоночное кодирование.
Противогоночное кодирование заключается в развязывании тех пар состояний, для которых
осуществляется переход под действием одного и того же сигнала. Пусть (α, β) и (γ, δ) - две пары двоич-
ных кодов. Пары (α, β) и (γ, δ) называются развязанными, если некоторый разряд кода принимает одно
67
значение на паре (α, β) и противоположное - на паре (γ, δ).
Мацевитный Л.В. и Денисенко Е.Л. доказали следующую теорему: в автомате, состояния кото-
рого закодированы двоичными кодами конечной длины, гонки отсутствуют тогда, когда для двух лю-
бых переходов (am, as) и (ak, al), as ≠ al . происходящих под действием одного и того же входного сигнала,
пары кодов состояний развязаны. Авторы приводят алгоритм кодирования.

Алгоритм противогоночного кодирования


1. Выписать все пары переходов, подлежащие развызыванию.
2. Закодировать первую пару кодом 00, вторую - 11.
3. Доопределять следующие пары таким образом, чтобы получались коды 0011 или 1100.
4. Проверить развязку состояний и повторным применением алгоритма добиться минимальной
длины кода.
Суть этого алгоритма заключается в том, что, развязывая состояния, мы исключаем критические
состязания.

Задача 21.
Осуществить противогоночное кодирование для счётчика с К=1,5. Переходы, подлежащие развя-
зыванию, заданы массивами М1 и М2.
Решение.
М1 (под действием сигнала х’) M2 (под действием сигнала х)
( а0а0 ) ( а0а1 )
( а5а0 ) ( а2а3 )
( а1а2 ) ( а4а5 )
( а2а2 )
( а3а4 )
Развязывание пар переходов в М1 начнём с первого перехода (а0а0) . Пары (а0а0) и (а5а0) развязы-
вать не нужно, так как состояния переходов совпадают. Переходим ко второй паре. Вводим переменную
τ1 и образуем по этой переменной четвёрку (0011) для состояний а5, а0, а1, а2. Рассматриваемая пара пе-
реходов развязана.

Состояния τ1
а0 0
а1 1
а2 1
а3 -
а4 -
а5 0

Из таблицы видно, что развязана также пара (а5а0) и (а2а2). Приступаем к развязыванию пары
(а5а0), (а3а4).

Развязывание пары (а5а0), (а3а4).

Состояния τ1
а0 0
а1 1
а2 1
а3 1
а4 1
а5 0

68
Из таблицы видно, что для развязывания этих пар нужно закодировать (а3а4) кодом (11).
Пара (а1а2), (а2а2) развязывания не требует. Переходим к развязыванию пары (а1а2), (а3.а4). Развя-
зывание этой пары отражено в следующей таблице.

Развязывание пары (а1а2), (а3а4).

Состояния τ 1τ 2
а0 0-
а1 10
а2 10
а3 11
а4 11
а5 0-

Из таблицы видно, что пришлось добавить переменную τ2. Добавляя переменную τ3, развязыва-
ем оставшиеся пары (а0а1), (а2а3) ; (а0а1), (а4а5) и (а2а3), (а4а5).

Развязывание пар (а0а1), (а2а3) ;


(а0а1), (а4а5) и (а2а3), (а4а5).

Состояния τ 1τ 2τ 3
а0 000
а1 100
а2 101
а3 111
а4 110
а5 010

Задача 22
Построить тактируемый потенциалом D-триггер.

Решение.
1. Строим ГСА, разметку ведём для автомата Мура.
В ГСА использованы обозначения :
x1 - тактовый сигнал
x2 - выходной сигнал на входе
y - выход D - триггера

69
ГСА и схема тактируемого потенциалом D-триггера.

2. Строим обратную структурную таблицу автомата.

ИС τ СП КСП Вх. SR
а0 0 а0 0 х1’ + х2’ 0-
а1 1 (-) 0 х1х2’ 01
а0 0 а1 1 х1х2 10
а1 1 (у) 1 x1’+x1x2 -0

у = а1 = τ
3. После минимизации получаем функции возбуждения :
S = x1x2 ; R = x1x2’ = x1x2’ + x1x1’ = x1(x2’ + x1’) = x1(x1x2)’

Задача 23
Построить синхронный JK-триггер на асинхронных SR-триггерах.
Решение.
Будем строить JK-триггер, тактируемый задним фронтом. Триггер имеет два состояния : 0 и 1, но
в силу того, что изменение этих состояний происходит с приходом заднего фронта тактовой частоты,
каждому выходному состоянию соответствуют 2 промежуточных. Пусть х3 - сигнал тактовой частоты,
тогда при х3=0 триггер устанавливается в одно из выходных состояний, при х3=1 триггер переходит в
состояние подготовки изменения выхода. Таким образом, конечный автомат, реализующий функции
синхронного JK-триггера, должен иметь 4 состояния.
1. Строим ГСА с разметкой для автомата Мура.
В ГСА использованы обозначения :
х1 - сигнал на входе J
х2 - сигнал на входе К
х3 - тактовая частота
у - выход JK-триггера

70
ГСА заднефронтового JK-триггера.

2. Строим обратную структурную таблицу автомата

ИС τ 2τ 1 x3x2x1 СП КСП S2R2 S1R1


а0 00 0-- а0 00 0- 0-
а3 10 01- (-) 00 01 0-
а1 01 0-0 00 0- 01
а0 00 1-- а1 01 0- 10
а1 01 1-- (-) 01 0- -0
а1 01 0-1 а2 11 10 -0
а2 11 0-- (у) 11 -0 -0
а3 10 00- 11 -0 10
а2 1 1 1-- а3 10 -0 01
а3 10 1-- (у) 10 -0 0-

3. После минимизации получим :


у = а2 + а3 = 11 + 10 = 1 - = τ2
S2 = τ1x3’x1 ; R2 = τ1’x3’x2
S1 = τ2’x3 + τ2x3’x2’
71
R1 = τ2’x3’x1’ + τ2x3

Задача 24
Построить автомат, очищающий от дребезга входной сигнал х1. Длительность дребезга не более
2 мс. Передний фронт выходного сигнала формировать с задержкой, не превышающей 20 мкс. Задержка
для заднего фронта не более 8 мс. В нашем распоряжении частоты - 100 Кгц, 250 Гц, 500 Гц, 1 Кгц, 2
Кгц.
Решение.
Строим синхронный автомат, Так как задержка по переднему фронту не должна превышать 20
мкс, то для тактирования используем частоту f =100 Кгц. В силу того, что длительность дребезга не
превышает 2 мс, используем в качестве измерителя этого интервала частоты - 250 Гц, 500 Гц, 1 Кгц и 2
Кгц.
1. Строим ГСА с разметкой для автомата Мура.
В ГСА использованы обозначения :
х1 - входной сигнал
х2 - сигнал с частотой 250 Гц
х3 - логическое произведение сигналов с частотами 250 Гц, 500 Гц, 1 Кгц и 2 Кгц.
у - выходной сигнал.
Данная ГСА не является единственной. Вероятно, это и не лучшее решение. Но полученная ГСА
не имеет ничего лишнего.Предлагается самостоятельно прорисовать временные диаграммы работы ко-
нечного автомата по заданной ГСА для лучшего понимания процесса очистки от дребезга.

ГСА антидребезгового автомата.

2. Строим обратную структурную таблицу.

ИС τ 2τ 1 x3x2x1 СП КСП J2 K 2 J1K1


а0 10 --0 а0 10 -0 0-
а2 01 110 (-) 10 1- -1
а0 10 --1 а1 00 -1 0-

72
а1 00 --1 00 0- 0-
а1 00 -10 (у) 00 0- 0-
а2 01 --1 00 0- -1
а1 00 -00 а2 01 0- 1-
а2 01 0-0 (у) 01 0- -0

После минимизации получим :


у = τ2’
J2 = τ1x3x1’ K2 = x1
J1 = τ2’x2’x1’ K1 = x3 + x1

Задача 25
Построить счётный триггер на асинхронных SR-триггерах.
Решение.
Прежде всего необходимо отметить, что в [2] отрицается возможность формального синтеза
счётного триггера на асинхронных элементах памяти.
1. Строим ГСА, описывающую работу счётного триггера. Размечаем ГСА для автомата Мура.
В ГСА использованы следующие обозначения :
х - входной сигнал
у - выход счётного триггера

ГСА счётного триггера.

2. Строим обратную структурную таблицу.

ИС τ 2τ 1 x СП КСП S2R2 S1R1


а0 00 0 а0 00 0- 0-
а3 10 0 00 01 0-
а0 00 1 а1 01 0- 10
73
а1 01 1 01 0- -0
а1 01 0 а2 11 10 -0
а2 11 0 (у) 11 -0 -0
а2 11 1 а3 10 -0 01
а3 10 1 (у) 10 -0 0-

После минимизации получаем :


у = а2 + а3 = τ2
S2 = τ1x’ ; R2 = τ1’x’
S1 = τ2’x ; R1 = τ2x
Схема счётного триггера представлена на рисунке.

Счётный триггер.

Задача 26.

Построить синхронный SR- триггер на базе переднефронтового D-триггера.


Такая задача может возникнуть, например, при работе с ПЛИС.

Решение.

Блок-схема синтезируемого конечного автомата представлена на рисунке.

74
75
ИС τ SR СП КСП(D)
а0 0 0- а0 0
а1 1 01 (-) 0
а0 0 10 а1 1
а1 1 -0 (у) 1

Из обратной таблицы переходов получаем функцию возбуждения:

D = τ R’ + S

Задание 8.
8-1. Построить тактируемый потенциалом JK-триггер на SR-триггерах.
8-2. Построить тактируемый фронтом D-триггер на SR-триггерах.
8-3. Построить десятиразрядный кодовый замок, срабатывающий при последовательном нажатии
3-х кнопок. Предусмотреть защиту от постороннего. При синтезе использовать как JK-триггеры, так и
D-триггеры, тактируемые фронтом.

6. 6. Синтез релейных автоматов.

Релейные автоматы(РА) и релейные схемы в наше время воспринимаются как анахро-


низм.Однако,после аварии на Чернобыльской АЭС выяснилось,что эта техника может работать там,где
спотыкаются микропроцессоры.Кроме того,оказалось,что не только большие интегральные схе-
мы(БИС),но и микросхемы среднего уровня интеграции(СИС) подвержены сбоям при воздействии жё-
стких промышленных помех.Даже при выполнении всех помехозащитных мероприятий сбой в компью-
терной системе управления в сентябре 1998 г. вывел из строя отечественную ракету с зарубежными
спутниками на борту.Инерционные релейные схемы обладают повышенной помехоустойчивостью.
Синтез релейных автоматов имеет некоторые особенности по сравнению с синтезом МПА на ин-
тегральных микросхемах.Рассмотрим синтез РА на простых примерах.
Задача 26.
Построить РА «кнопочной станции».При нажатии кнопки «Пуск»(x1) РА выдаёт сигнал управле-
ния Y,который может быть снят лишь после нажатия кнопки «Стоп»(x2).Одновременное нажатие кно-
пок «Пуск» и «Стоп» недопустимо.
Решение.

Построим ГСА для «кнопочной станции».

76
ГСА «кнопочной станции».

ГСА для РА тривиальна.По ней построена обратная таблица переходов.

ИС τ x2x1 СП P
a1 1 1- a0 0
a0 0 -0 0
a0 0 -1 a1 1
a1 1 0- 1

Поскольку ситуация x2x1 недопустима,то при различных доопределениях можно получить как
минимум два варианта функции возбуждения P:
1) P = x1 + τx2’;
2) P = (τ + x1)x2’.
Право на жизнь имеют оба варианта,но второй для релейщиков почему-то оказался более
предпочтительным.В данном примере синтез РА ничем не отличается от синтеза МПА на базе D-
триггеров,хотя автомат в данном случае является асинхронным.Однако при разработке более сложных
релейных схем необходимо учитывать возможность проявления гонок и появления генераторного ре-
жима.Поэтому необходимо прежде всего обеспечить противогоночное кодирование.Кроме того,во из-
бежание возникновения генераторного режима нужно при синтезе функций возбуждения так распола-
гать прямоугольники Карно в КК,чтобы они все взаимно перекрывали друг друга,чтобы не было ни од-
ного автономного прямоугольника.
Для построения помехоустойчивых РА необходимо использовать достаточно инерционные реле
с временем переключения порядка 20 - 100 мс.Автор для этой цели применял телевизионное реле КУЦ-
1М.Можно строить РА на электростатических реле,которые выпускаются в стандартных корпусах инте-
гральных схем(ИС).Обычно синтез МПА ведётся на основе синхронных элементов памяти.Весьма же-
лательно иметь такой элемент и для релейных схем.Для упрощения синтеза РА построим синхронный
переднефронтовой релейный D-триггер.Далее этот триггер можно будет использовать в качестве стан-
дартного модуля,синтезируя лишь функции возбуждения и сняв проблему генераторного режи-
ма.Построим ГСА переднефронтового D-триггера.

77
ГСА переднефронтового D-триггера.

По ГСА переднефронтового D-триггера строим обратную таблицу переходов.


ИС τ1τ0 x2x1 СП P1P2
a0 00 -0 a0 00
a3 10 -0 00
a0 00 11 a1 01
a1 01 -1 (Y) 01
a2 11 11 01
a1 01 -0 a2 11
a2 11 -0 (Y) 11
a2 11 01 a3 10
a0 00 01 10
a3 10 -1 10

После минимизации с учётом перекрытия прямоугольников Карно получим:

P1 = τ1τ0x2’ + τ0x1’ + τ0’x2’x1 + τ1x2’x1 + τ1τ0’x1


P0 = τ1’τ0 + τ0x1’ + x2x1(τ1’ + τ0)

Для автоматического обеспечения перекрытия прямоугольников Карно предлагается алгоритм


синтеза РА на базе SR-триггеров.

Алгоритм синтеза РА на базе SR-триггеров.

1. Провести формальный синтез КА на SR-триггерах, обеспечив обязательное противогоноч-


ное кодирование.
2. Заменить все SR-триггеры на эквивалентные релейные схемы, имея в виду, что функция
возбуждения реле имеет вид:
P = (S+τ)R', где

78
P - вход реле,
S, R - входы SR-триггера,
τ - выход реле(нормально-разомкнутые контакты реле).
Для иллюстрации этого алгоритма построим РА кнопочной станции:

ИС τ x2x1 СП P SR
a1 1 1- a0 0 01
a0 0 -0 0 0-
a0 0 -1 a1 1 10
a1 1 0- 1 -0

Cинтез функций возбуждения с учётом недопустимости ситуации x2x1 = 11 позволяет полу-


чить следующие результаты:
S = x1
R = x2
P = (x1+τ)x2'
Т.е. получен один из двух вариантов рабочей функции возбуждения РА.
Поскольку от воздействия помех необходимо защищать в первую очередь элементы памяти,то
всю комбинационную часть РА можно выполнить на ПЛМ или ППЗУ,т.е. РА может быть «гибрид-
ным».Наличие электровакуумных(ламповых) триггеров не оставляет сомнений в том,что формальный
синтез МПА можно распространить и на этот класс радиационностойких приборов.

6.7.Синтез ГСА по функциям возбуждения.

В СССР в 80-е годы к сожалению возобладала технология «цельнотянутого» проектирова-


ния.Автор всегда был ярым противником такой «технологии».Если автомат построен эвристически,то
«вскрыть» его значительно проще,чем формальносинтезированный.Но иногда такое вскрытие формаль-
ного автомата просто необходимо:например,при утрате ГСА даже собственных разработок
МПА.Впервые предлагается алгоритм «РоссЭко» синтеза ГСА по известным функциям возбужде-
ния.Функции возбуждения легко получить из принципиальной схемы МПА.

Алгоритм «РоссЭко».

1.Занести все функции возбуждения в карты Карно так,чтобы горизонтали(строки КК) были от-
мечены кодами состояний МПА ,а вертикали - входными сигналами.
2.Заполнить таблицу прямых переходов (ТПП) таким образом,чтобы одинаковым исходным со-
стояниям и одинаковым входным сигналам соответствовало одинаковое состояние перехода.
3.По ТПП построить ГСА.

Пример.

Даны функции возбуждени РА:


P1 = τ0x1’ + τ1τ0 + τ1x7
P0 = τ1’x7 + τ1’τ0 + τ0x7
Найти ГСА.

Решение.

Построим КК по известным функциям возбуждения.Из КК видно,что из состояния a0 = 00 по


сигналу x7’ осуществляется переход в состояние a0.Аналогично,из a0 по x7 выполняется переход в a1 и
т.д. Заполним ТПП.
ИС τ1τ0 x7x2x1 СП P1P0

79
a0 00 0-- a0 00
a0 00 1-- a1 01
a1 01 --1 a1 01
a1 01 --0 a2 11

a2 11 -0- a3 10
a2 11 -1- a2 11
a3 10 0-- a0 00
a3 10 1-- a3 10

Построение ГСА по ТПП не вызывает затруднений.Кроме основного своего назначения ТПП позволяет
проверить корректность синтеза функций возбуждения по заданной ГСА.

Глава седьмая

МИКРОКОНТРОЛЛЕРЫ

7.1. Простой промышленный микроконтроллер

В настоящее время отечественная промышленность выпускает широкий ассортимент микрокон-


троллеров (МК) для управления технологическими процессами. Среди них наиболее популярными яв-
ляются микропроцессорные приборы семейства «ПРОТАР» производства Московского завода тепловой
автоматики и «ЛОМИКОНТ», «РЕМИКОНТ» разработки НИИТеплоприбор и многоцелевые контрол-
леры КР-300 серии «КОНТРАСТ»(г.Чебоксары). Эти микроконтроллеры обладают большими функцио-
нальными возможностями: позволяют обрабатывать аналоговые и цифровые входные сигналы, обеспе-
чивают многоканальное управление. Все эти неоспоримые достоинства весьма существенны при реше-
нии проблем управления в сложных технологических системах. Однако применение вышеназванных
МК оказывается нерентабельным при решении задач управления простыми технологическими процес-
сами.
Таким образом, оказался неприкрытым класс простых производств так называемого малого
бизнеса, где требуется простой, надёжный, легко перепрограммируемый(т.е. фактически универсаль-
ный) и, что не менее важно, дешёвый промышленный микроконтроллер. Исходя из практики разработ-
ки и 5-летней эксплуатации промышленных контроллеров данного класса, были сформулированы сле-
дующие технические требования :
1. Количество управляющих входов 8
80
2. Количество каналов управления 4
3. Рабочий диапазон температур от +5 до 40°С
4. Питание от сети переменного тока
- напряжение 220 В(+22В, -33В)
- частота 50 Гц(+1 Гц, -1Гц)
5. Потребляемая мощность от сети не более 10 ВА
Наиболее простым решением данной проблемы явилась бы реализация подобного устройства
на базе однокристальной микро-ЭВМ(ОМЭВМ) типа КМ816ВЕ31 (Intel8051), КР1801ВЕ1( 4-разрядная
КМОП ОМЭВМ) или «микро-чип» серии РIC.
Однако у пользователя сразу возникает ряд проблем. Во-первых, необходимо в качестве пла-
ты за «гибкость» МК иметь в наличии отладочную систему, стоимость которой может достигать 5 тыс.
долларов. Во-вторых, для модификации программного обеспечения потребуется квалифицированный
программист. В-третьих, помехозащита МК, работающего в непосредственной близости от магнитных
пускателей и управляющего электродвигателями мощностью до 6 кВт и более при реальных условиях
низкого качества промышленной сети и особенно заземления, оказалась чрезвычайно сложной пробле-
мой для МК на базе ОМЭВМ. Сбои в работе ОМЭВМ могут приводить к катастрофическим последст-
виям. И ни какие «войч-доги» ситуацию не спасают.Это слишком дешёвая, а посему малоэффективная
мера защиты. Опыт эксплуатации станков с числовым программным управлением (ЧПУ) показал,что
только при создании специальной отдельной сети питания для ЧПУ можно надеяться на нормальное
функционирование МК. А это дорогостоящее мероприятие не по карману представителям малого биз-
неса.Кроме того,даже в случае принятия дорогостоящих помехозащитных мер возможны катастрофиче-
ские по своим результатам сбои.Неудачный запуск российской ракеты с зарубежными спутниками на
борту в начале сентября 1998г. был обусловлен сбоем в компьютерной системе.
Надёжность работы МК на базе ОМЭВМ можно обеспечить только за счёт введения диагности-
ческих процессоров (ДП). ДП следит практически за каждым шагом МК по отображению программы
последнего в памяти ДП. В случае отклонения от программы ДП принудительно отправляет МК в бли-
жайшую точку возврата, откуда МК повторяет попытку прохождения сбойного участка с предваритель-
ным восстановлением необходимого фрагмента оперативной памяти. В случае нескольких неудачных
повторных попыток ДП выдаёт сообщение об отказе. Однако реализация ДП в виде микропрограммно-
го автомата для ОМЭВМ КР1816ВЕ35 на традиционной элементной базе потребовала 67 корпусов мик-
росхем(МС). Перевод полученного решения на матрицы логических ячеек (МЛЯ) типа Xilinx позволил
сократить количество МС до 12. Но и такая реализация является слишком громоздкой для МК. состоя-
щего из 3-5 МС. Кардинальным решением является разработка специализированной МС ДП. До на-
стоящего времени эта проблема не решена и едва ли разрешится в ближайшем будущем из-за отсутст-
вия финансирования.Появление в последнее время быстродействующих микропроцессоров и памяти
позволяют надеяться на создание ДП в виде специализированного МК.Сбои такого ДП могут привести
только к одному «катастрофическому» последствию:к одному или нескольким лишним обращениям в
точку возврата.Опасен лишь одновременный сбой МК и ДП,но в такой ситуации не спасает даже пол-
ное резервирование.
В связи с вышеизложенным в качестве альтернативы ОМЭВМ при создании простого и надёжно-
го промышленного МК выступает микропрограммный автомат (МПА). МК на базе МПА(МК-МПА)
реализован на двух микросхемах: К561ЛН2 и КМ1556ХП4. Первая МС обеспечивает генерацию такто-
вой частоты и защиту с фильтрацией трёх входных сигналов, а вторая реализует собственно МПА.
Возможности КМ1556ХП4 таковы, что позволяют запрограммировать любой конечный автомат на 16
состояний. Этого вполне достаточно для реализации абсолютного большинства простейших МК. Кстати
говоря, эта « простота» реализуется на традиционных МК с ОМЭВМ программой объёмом около 1
кбайта. Для индикации состояний МПА на плате предусмотрен монтаж 8 светодиодов типа АЛ307БМ.
Для сопряжения с исполнительными устройствами к четырём выходам КМ156ХП4 подключены оптро-
ны АОТ110А. Такая схема обеспечивает гальваническую развязку и возможность управления однофаз-
ными и трёхфазными двигателями 6 кВт и более. Управляющие воздействия могут подаваться на любое
промежуточное реле(например, КУЦ-1М), а затем на магнитный пускатель. Возможна замена промежу-
точного реле и магнитного пускателя на симисторный блок управления. МК-МПА эксплуатируется в
достаточно сложных условиях( повышенная влажность, широкий диапазон температур) в течение 3 лет
на самых различных объектах без замечаний. Области применения чрезвычайно широки: управление и
81
позиционное регулирование в системах водоподготовки и водоснабжения, в нефтяной, газовой и метал-
лургической промышленности, в энергетике, в сфере обслуживания и других отраслях народного хо-
зяйства.
Симисторный блок управления (СБУ) реализован идентично МК-МПА. Эта идентичность позво-
ляет использовать плату МК-МПА в качестве СБУ. Для уменьшения потребления по цепям управления
симисторными ключами ТСО142-40-6 применяется импульсное воздействие на оптроны. СБУ способен
также изменять фазу отсечки, что обеспечивает возможность регулирования мощности двигателя. В
СБУ введены тепловая защита и защита от пропадания фазы. Переход на СБУ устранил грохот от пере-
ключения магнитных пускателей, значительно снизил уровень помех, что повысило надёжность работы
МК-МПА. СБУ эксплуатируется без замечаний несколько лет.
Печатная плата имеет габариты 90мм х 90мм. Стоимость комплетующих элементов чрезвычайно
низкая. Во всех схемах используется только отечественная элементная база. Простота также очевидна.
Надёжность подтверждена длительной эксплуатацией на промышленных объектах. Весь цикл по созда-
нию новой программы, «прошивке» КМ1556ХП4 и отладке МК-МПА занимает 2-3 дня. Никаких отла-
дочных систем, кроме самого дешёвого программатора, не требуется.

7.2. Микропроцессорная техника.

Для решения задач автоматического контроля наряду с увеличением


производства существующих аналитических приборов необходимо создавать
новые универсальные измерительные системы на основе встроенных микро-
контроллеров(МК).МК участвует в расчете контролируемого свойства ве-
щества или параметра состава,управлении измерительным процессом,авто-
матической компенсацией температурной погрешности.Кроме своих основных
задач измерительного характера МК может решать вопросы автоматического
контроля и диагностики аналитического прибора(АП).Наряду с этим опти-
мально спроектированный МК может служить средством отладки вновь раз-
рабатываемого программного обеспечения при модификации уже существую-
щего АП.Рассмотрим кратко в данном аспекте все проблемы и возможности
МК при проектировании устройств и систем на их основе.

Архитектура микроконтроллера.

В настоящее время номенклатура МК чрезвычайно широка.Остановим


свой выбор на относительно дешевых и достаточно мощных МК семейства
MCS51.Отечественным аналогом этого МК является однокристальная мик-
ро-ЭВМ КМ1816ВЕ51(в дальнейшем для краткости именуемая МК51).
МК51 имеет в своем составе следующие аппаратные средства[34]:
- процессор с 1-байтным АЛУ и схемы аппаратного умножения и деле-
ния;
- стираемое ПЗУ программ емкостью 4 Кбайта;
- ОЗУ данных емкостью 128 байт;
- два 16-битных таймера/счетчика;
- программируемые схемы ввода/вывода(32 линии);
- блок двухуровневого векторного прерывания от 5 источников;
- асинхронный канал дуплексного последовательного ввода/вывода
информации со скоростью 375 Кбод;
- генератор,схема синхронизации и управления.
Структура МК51 и система команд настолько гибки,что идет постоян-
ная модернизация МК данного семейства.MCS552 уже имеет встроенный
8-канальный 10-разрядный АЦП,ПЗУ объемом 8 Кбайт,ОЗУ - 256 байт,5
8-разрядных портов ввода/вывода и один 8-разрядный входной порт,3
16-разрядных таймера/счетчика,структуру вложенных прерываний с 15 ис-
82
точниками и двумя уровнями приоритета,двойной интерфейс ЦАП на основе
ШИМ,два последовательных интерфейса,таймер "будильника"(watch-dog),ре-
жим ожидания и режим пониженной мощности.

Порты ввода/вывода информации.

Все 4 порта МК51 предназначены для ввода или вывода информации


побайтно.Выходные драйверы портов Р0 и Р2,а также входной буфер порта
Р0 используются при обращении к внешней памяти(ВП).При этом через
портР0 в режиме мультиплексирования сначала выводится младший байт ад-
реса ВП,а затем выдается или принимается байт данных.Через портР2 вы-
водится старший байт адреса в тех случаях,когда разрядность адреса
равна 16 бит.
Все выводы порта Р3 могут быть использованы для реализации аль-
тернативных функций.Альтернативные функции могут быть задействованы
путем записи 1 в соответствующие биты регистра-защелки порта Р3.

Таймер/счетчик.

Два программируемых 16-битных таймера/счетчика(Т/С0 и Т/С1) могут


быть использованы в качестве таймеров или счетчиков внешних собы-
тий.При работе в качестве таймера содержимоеТ/С инкрементируется в
каждом машинном цикле,т.е. через каждые 12 периодов генератора такто-
вой частоты.При работе в качестве счетчика содержимое Т/С инкременти-
руется при переходе из 1 в 0 внешнего входного сигнала.
Различают 4 режима работы Т/С.
2Режим 0. 0В этом режиме на вход 8-битного таймера подключается
5-битный предделитель частоты,т.е. таймер имеет разрядность 13 бит.При
переполнениии Т/С устанавливается флаг прерывания TF соответствующего
Т/С.Входной синхросигнал таймера разрешен,когда управляющий бит TR0(1)
установлен в 1 и либо бит блокировки равен 0,либо либо на вход преры-
вания поступает уровень 1.
2Режим 1. 0Работа Т/С в режиме 1 такая же,как в режиме 0,но таймер
имеет разрядность 16 бит.
2Режим 2. 0В режиме 2 работа организована так,что переполнение
8-битного счетчика TL0(1) приводит не только к установке флага,но и
перезагрузке в TL0(1) содержимого старшего байта TH0(1) таймерного ре-
гистра.При перезагрузке содержимое TH0(1) не изменяется.
2Режим 3. 0Можно считать,что в этом режиме МК51 имеет в своем соста-
ве три таймера/счетчика.

Последовательный интерфейс.

Через универсальный асинхронный приемопередатчик(УАПП) осущест-


вляется прием и передача информации,представленной последовательным
кодом(младшими битами вперед).В состав УАПП входят сдвигающие регистры
и специальный буферный регистр SBUF приемопередатчика.УАПП может рабо-
тать в четырех режимах.
2Режим 0. 0Передача и прием информации в объеме 8 бит ведется через
вывод входа приемника RXD.Через внешний вывод выхода передатчика TXD
выдаются импульсы сдвига. 2Частота передачи равна 1/12 частоты резонато-
2ра.
Режим 1. 2В этом режиме осуществляется обмен информацией в объеме
210 бит:старт-бит(0),8 бит данных и стоп-бит(1).
83
2Режим 2. 0Через TXD передаются или через RXD принимаются 11 бит ин-
формации:старт-бит,8 бит данных,программируемый 9-й бит паритета и
стоп-бит.Частота обмена равна 1/32 или 1/64 частоты резонатора в зави-
симости от SMOD.
2Режим 3. 0Этот режим совпадает с предыдущим,за исключением частоты
обмена,которая задается таймером.
Программа вывода данных по каналу RS-232.
;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552 ¦
;¦ Работа с RS-232 ¦
;¦ ¦
;¦ Лобанов В.И. tasm 22.01.99 ¦
;L====================================-
;
;-------------------------------------¬
;¦ Символические имена ¦
;L-------------------------------------
x1 .equ p1.1;Датчик давления 1
x2 .equ p1.2;Датчик давления 2
y1 .equ p4.1;Вкл.ЭМК 1
y2 .equ p4.2;Вкл.ЭМК 6
;===============================================
.ORG 0000H
ljmp start;
;***********************************************
.ORG 0080H
start lcall install ;установка режимов
setb ea;разреш.всех прерываний
setb tr1; Запуск T1
mov a,#55h;
mov p3,#0ffh;Прогр. Р3 на альтернат.ф-ции
start1 lcall spout1;Вывод информации из МКУ
; lcall spin1;Ввод информации в МКУ
lcall delay1;
ljmp start1;
;***********************************************
spout1 jnb ti,$;проверка флага ti послед.порта
clr ti;сброс флага ti
mov sbuf,a;в+дача байта
ret ;
;***********************************************
spin1 jnb ri,$;
clr ri;
mov a,sbuf;
ret ;
;***********************************************
delay mov r6,#255;
djnz r6,$ ;
ret ;
;***********************************************
delay1 mov r7,#255;
dl1 lcall delay;
djnz r7,dl1;
ret ;
84
;***********************************************
#INCLUDE EQU552.ASM
#INCLUDE INST51.ASM
.end
Подпрограмма инсталляции оформляется в виде отдельного файла
inst51.asm.
install nop ;
;г=======================================¬
;¦ П/П ПЕРВОНАЧАЛЬНОЙ УСТАНОВКИ 1816ve31 ¦
;L=======================================-
;----------------------------------------¬
;¦ PCON - управление энергопотреблением ¦
;L----------------------------------------
;----------------------------------------

mov pcon,#00000000b
;----------------------------------------
; I- 1- РЕЖИМ Х/Х(0.15 от номин.)
; I-1-РЕЖИМ МИКОРОПОТРЕБЛЕНИЯ(I < 10 мкА)
; I-ФЛАГ ОБЩЕГО НАЗН
; I- ФОН
; I
; I
; I
; I- 1 - БИТ УДВОЕНИЯ СКОРОСТИ ПЕРЕДАЧИ
;----------------------------------------¬
;¦ TMOD - режимы таймеров ¦
;L----------------------------------------
;GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0
; 7 6 5 4 3 2 1 0
;0-ТАЙМЕР, 1- СЧЕТЧИК
;0-СЧЕТ ОТ INT0 ЗАПРЕЩЕН
; Режимы счетчиков:0 - 13 бит,1 - 16 бит,
; 2 - 8 бит с автоперезагрузкой,
; 3 - 2 по 8 бит.
;----------------------------------------

mov tmod,#00100001b ;Т1 во 2-м режиме,Т0 - в 1-м

;----------------------------------------
;----------------------------------------¬
;¦ TCON - управление таймерами ¦
;L----------------------------------------
;TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
;7 6 5 4 3 2 1 0
;----------------------------------------

mov tcon,#00000101b
mov th0,#0c3h
mov tl1,#0
mov th1,#230 ;Частота обмена инф.=8кбод

;----------------------------------------
;----------------------------------------¬
85
;¦ СТРУКТУРА UART - упр-ние УАППом(RS232)¦
;+ ¦
;¦ SCON REGISTER ¦
;L----------------------------------------
;SM0 SM1 SM2 REN TB8 RB8 TI RI
;7 6 5 4 3 2 1 0
;----------------------------------------

mov scon,#01010010b ;8-битовый УАПП на прием


;и передачу
;----------------------------------------
;----------------------------------------¬
;¦ СТРУКТУРА ПРЕРЫВАНИЙ ¦
;¦ IP REGISTER (ПРИОРИТЕТЫ) ¦
;L----------------------------------------
;XXX XXX XXX PS PT1 PX1 PT0 PX0
;7 6 5 4 3 2 1 0
;PX0,PX1 - приоритет внеш.прерывания INT0,INT1
;PT0,PT1 - приоритет прерыв. по переполн. таймеров T0,T1
;PS0,PS1 - приоритет прерывания SIO0,SIO1(RS-232,I2C)
;----------------------------------------

mov ip,#00010110b ;PT0,PX1,PS

;----------------------------------------
;----------------------------------------¬
;¦ IE REGISTER (РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ) ¦
;L----------------------------------------
;EA EAD ES1 ES ET1 EX1 ET0 EX0
;7 6 5 4 3 2 1 0
;EX0,EX1 - разреш.внеш.прерыв. INT0 и INT1
;ET0,ET1 - разреш.прерыв.таймера Т0 и Т1
;ES,ES1 - разреш.прерыв.УАПП(RS-232) и I2C
;EAD - разреш.прер.АЦП, EA - разреш.всех прерыв.
;----------------------------------------

mov ie,#00010110b ;ET0,EX1,ES


clr tr0
clr tr1
ret ;

В виде отдельного файла equ552.asm оформляется и архитектура


80С552.
;***********************************************
; Прямо-адресуемые регистры RAM 8X552
;***********************************************

p0 .equ 080H ;Port 0 - МХ-шина адреса/данных


sp .equ 081H ;Stack pointer
dpl .equ 082H ;указатель данных
dph .equ 083H ;---- " ------
pcon .equ 087H ;управление энергопотреблением
tcon .equ 088H ;упр-ние таймерами
tmod .equ 089H ;режимы таймеров
86
tl0 .equ 08AH ;регистры таймеров
tl1 .equ 08BH ;----- " -----
th0 .equ 08CH ;----- " -----
th1 .equ 08DH ;----- " -----
p1 .equ 090H ;Port 1 - захват,IIC-шина,управл.таймером Т2
scon .equ 098H ;упр-ние последоват. портом 0
sbuf .equ 099H ;буфер последоват.порта
p2 .equ 0A0H ;Port 2 - ст.байт адреса для внеш.памяти
ie .equ 0A8H ;регистр разрешения прерывания
p3 .equ 0B0H ;Port 3 - RS-232,INT0,INT1,T0,T1,RD,WR
ip .equ 0B8H ;приоритеты прерываний 0
p4 .equ 0C0H ;Port 4 - CMSR0...CMSR5,CMT0,CMT1
p5 .equ 0C4H ;Port 5 - ADC0...ADC7
psw .equ 0D0H ;слово состояния программы
s1con .equ 0D8H ;упр-ние последоват.портом 1
a .equ 0E0H ;Accumulator
b .equ 0F0H ;Secondary Accumulator
ip1 .equ 0F8H ;приоритеты прерываний 1
r0 .equ 00H ;РОН0
r1 .equ 01H ;РОН1
r2 .equ 02H ;РОН2
r3 .equ 03H ;РОН3
r4 .equ 04H ;РОН4
r5 .equ 05H ;РОН5
r6 .equ 06H ;РОН6
r7 .equ 07H ;РОН7
;***********************************************
;Прямо-адресуемые биты RAM
;***********************************************
p0.0 .equ 080H ;port 0 bit 0
p0.1 .equ 081H ;port 0 bit 1
p0.2 .equ 082H ;port 0 bit 2
p0.3 .equ 083H ;port 0 bit 3
p0.4 .equ 084H ;port 0 bit 4
p0.5 .equ 085H ;port 0 bit 5
p0.6 .equ 086H ;port 0 bit 6
p0.7 .equ 087H ;port 0 bit 7

p1.0 .equ 090H ;p1.0/СТ01 - вх.сигнал логики захвата


p1.1 .equ 091H ;p1.1/СТ11 - вх.сигнал логики захвата
p1.2 .equ 092H ;p1.2/СТ21 - вх.сигнал логики захвата
p1.3 .equ 093H ;p1.3/СТ31 - вх.сигнал логики захвата
p1.4 .equ 094H ;p1.4/T2 - вход внеш.такт.имп./вых.генер. Т2
p1.5 .equ 095H ;p1.5/RT2 - сигнал сброса таймера Т2 по п/ф.
p1.6 .equ 096H ;p1.6/SCL -такт.линия послед.порта IIC-шины
p1.7 .equ 097H ;p1.7/SDA - линия данных послед.порта IIC-шины

p2.0 .equ 0A0H ;p2 bit 0


p2.1 .equ 0A1H ;p2 bit 1
p2.2 .equ 0A2H ;p2 bit 2
p2.3 .equ 0A3H ;p2 bit 3
p2.4 .equ 0A4H ;p2 bit 4
87
p2.5 .equ 0A5H ;p2 bit 5
p2.6 .equ 0A6H ;p2 bit 6
p2.7 .equ 0A7H ;p2 bit 7

p3.0 .equ 0B0H ;p3.0/RxD - вход последоват. порта


p3.1 .equ 0B1H ;p3.1/TxD - выход последоват. порта
p3.2 .equ 0B2H ;p3.2/INT0 - вход внеш. прерывания 0
p3.3 .equ 0B3H ;p3.3/INT1 - вход внеш.прерывания 1
p3.4 .equ 0B4H ;p3.4/внеш.вход Т0 - вх.внеш.такт.имп. Т0
p3.5 .equ 0B5H ;p3.5/внеш.вход Т1 - вх.внеш.такт.имп. Т1
p3.6 .equ 0B6H ;p3.6/WR - строб записи во внеш. память
p3.7 .equ 0B7H ;p3.7/RD - строб чтения из внеш. памяти

p4.0 .equ 0C0H ;p4.0/SEPCLK - вых.такт.импульсов порта SEP


p4.1 .equ 0C1H ;p4.1/SEPDAT - вход/вых. данных порта SEP
p4.2 .equ 0C2H ;p4.2/ECI1 - вход внешних такт.имп. PCA1
p4.3 .equ 0C3H ;p4.3/C1EX0 - вх. захв.,вых.PWM/сравн.М0 PCA1
p4.4 .equ 0C4H ;p4.4/C1EX1 - вх. захв.,вых.PWM/сравн.М1 PCA1
p4.5 .equ 0C5H ;p4.5/C1EX2 - вх. захв.,вых.PWM/сравн.М2 PCA1
p4.6 .equ 0C6H ;p4.6/C1EX3 - вх. захв.,вых.PWM/сравн.М3 PCA1
p4.7 .equ 0C7H ;p4.7/C1EX4 - вх. захв.,вых.PWM/сравн.М4 PCA1

; TCON REGISTER - управление таймерами

it0 .equ 088H ;вид прерыв. по INT0(1-уровень,0-задн.фронт)


ie0 .equ 089H ;флаг запроса внеш.прерыв.по INT0
it1 .equ 08AH ;вид прерыв. по INT1(1-уровень,0-задн.фронт)
ie1 .equ 08BH ;флаг запроса внеш.прерыв.по INT1
tr0 .equ 08CH ;бит включения Т0
tf0 .equ 08DH ;флаг переполнения Т0
tr1 .equ 08EH ;бит включения Т1
tf1 .equ 08FH ;флаг переполнения Т1

; SCON REGISTER - управление последоват. портом

ri .equ 098H ;флаг прерыв. приемника


ti .equ 099H ;флаг прерыв. передатчика
rb8 .equ 09AH ;9-й бит принимаемых данных(реж.2 и 3)
tb8 .equ 09BH ;9-й бит передаваемых данных(реж.2 и 3)
ren .equ 09CH ;бит разрешения приема послед. данных
sm2 .equ 09DH ;бит разрешения многопроцессорной работы
sm1 .equ 09EH ;1-й бит определения режима работы
sm0 .equ 09FH ;0-й бит определения режима работы

; IE REREGIER - разрешение прерываний

ex0 .equ 0A8H ;внеш. прерывание INT0


et0 .equ 0A9H ;переполнение 0-го таймера
ex1 .equ 0AAH ;внеш. прерывание INT1
et1 .equ 0ABH ;переполнение 1-го таймера
es .equ 0ACH ;последоват. порт УАПП(RS-232)
es1 .equ 0ADH ;последоват. порт I2C
ead .equ 0AEH ;разреш.прерыв.АЦП
ea .equ 0AFH ;запрещение всех прерываний
88
; IP REGISTER - приоритеты прерываний

px0 .equ 0B8H ;внеш. прерывание INT0(высш.приоритет)


pt0 .equ 0B9H ;переполнение 0-го таймера
px1 .equ 0BAH ;внеш. прерывание INT1
pt1 .equ 0BBH ;переполнение 1-го таймера
ps .equ 0BCH ;последоват. порт
pt2 .equ 0BDH ;переполнение 2-го таймера(низш.приоритет)

; ACCUMULATOR

acc.0 .equ 0E0H ;acc bit 0


acc.1 .equ 0E1H ;acc bit 1
acc.2 .equ 0E2H ;acc bit 2
acc.3 .equ 0E3H ;acc bit 3
acc.4 .equ 0E4H ;acc bit 4
acc.5 .equ 0E5H ;acc bit 5
acc.6 .equ 0E6H ;acc bit 6
acc.7 .equ 0E7H ;acc bit 7

; PSW REGISTER - слово состояния программы

p .equ 0D0H ;флаг четности


ov .equ 0D2H ;флаг переполнения
rs0 .equ 0D3H ;выбор банка регистров
rs1 .equ 0D4H ;----- " -----
f0 .equ 0D5H ;флаг пользователя 0
ac .equ 0D6H ;флаг дополн. переноса
cy .equ 0D7H ;флаг переноса

Пример реализации блока управления и индикации .

89
О
ш
и
б Типовая схема подключения LCD-модуля к микроконтроллерам AVR и MCS-51
к
а!
Фирма КТЦ-МК предлагает широкий выбор жидкокристаллических индикаторов раз-
Н личных типов. Большой популярностью у специалистов пользуются алфавитно-
е цифровые ЖКИ-модули на базе контроллера HD44780 фирмы Hitachi или его аналогов
у производства других фирм: Epson, Philips, Samsung, Sanyo, Toshiba .
к Контроллер HD44780 допускает подключение к микропроцессорам по четырёх битно-
а
з
му или восьми битному интерфейсу. Выбор интерфейса производится пользователем
а исходя из ограничений на время, затрачиваемое на обмен данными с котроллером, или
н количество используемых линий подключения к микро-ЭВМ.
о Специалистами фирмы применялись различные схемы подключения алфавитно-
и цифровых ЖКИ-модулей к микрo-ЭВМ семейства AT89CX051 фирмы Atmel. На Рис.1
м
представлена схема подключения ЖКИ-модуля на базе контроллера HD44780 к микро-
я
з ЭВМ семейства MCS51 в режиме работы с внешней памятью, позволяющая оптимизи-
а ровать процесс обмена данными по времени. Пересылка байта осуществляется по ко-
к мандам:
л MOVX A,@DPTR или MOVX A,@DPTR.
а В этом случае в DPTR следует загружать адрес с учётом того, что младший бит А0
д
к будет обозначать направление передачи (запись/чтение), а бит А1 тип передаваемой
и. информации (команда/данные).

Ниже приведены исходные тексты подпрограммы на языке ассемблера ASM51, позво-


ляющие записывать данные, инструкции в контроллер, считывать данные. Приведен
так же примерный текст подпрограммы инициализации контроллера в режим восьми
битного интерфейса, при работе с двумя строками. Отображение курсора и мигание
отключено. Курсор установлен в начало первой (верхней) строки.

;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552 ¦
;¦ Панель управления и индикации ¦
;¦ pui.asm ¦
;¦ Лобанов В.И. tasm 17.03.99¦
;L====================================-
;
;-------------------------------------¬
;¦ Символические имена ¦
;L-------------------------------------
; p5.0 - Кнопка "Старт"
90
; p5.1 - Кнопка "HC/RPM"
; p5.2 - Кнопка "Печать"
; p5.3 - Кнопка "2/4 такт"
; r0 хранит состояние клавиатуры
; r1 - счетчик на 6 мс
y1 .equ p3.5 ;Звукоиндикатор
wrc_lc .equ 8000h;Адрес регистра команды wrc
rdc_lc .equ 8001h;Адрес регистра команды rdc
wrd_lc .equ 8002h;Адрес регистра данных wrd
rdd_lc .equ 8003h;Адрес регистра данных rdd
;===============================================
.ORG 0000H
ljmp start;
;***********************************************
.ORG 000BH
ljmp intt0;Внутр.прерывание от Т0
;**********************************************
.ORG 0013H
ljmp int1;Внеш.прерывание 1
;***********************************************
.ORG 0080H
start lcall install ;установка режимов
mov r0,#0;
st1 nop ;
ajmp st1;

;***********************************************
install setb p3.3;Альтерн.ф-ция внеш.прер.INT1
setb p3.6;Альтерн.ф-ция записи в РВПД(/WR)
clr y1;Порт P3.5 на вывод
setb et0;Прерыв. от T0
mov tmod,#11h; Режим 1 для T0,T1
setb tr0; Запуск T0
setb ex1; Разреш.внеш.прерыв.INT1
setb it1;Прерывание по заднему фронту INT1(TCON),
setb ea; при этом сброс ie1 вып-ся аппаратно.
acall lcdinit;
ret ;
;***********************************************
;Инициализация HD44780
lcdinit mov a,#38h; 8 бит,2 строки,матр.5х8
acall wrc;
acall tau6 ; Ожидание готовности
mov a,#38h; 8 бит,2 строки,матр.5х8
acall wrc;
acall tau6 ; Ожидание готовности
mov a,#0ch; Вкл.диспл.,откл.курсор,выкл.мерцание
acall wrc;
mov a,#06h;Перемещ.курсора вправо
acall wrc;
cls mov a,#01h;Очистка экрана
acall wrc;
ret ;
91
;Чтение данных из HD44780
rdd_lcd mov dptr,#rdc_lc;
waitdd movx a,@dptr;
jb acc.7,waitdd;
mov dptr,#rdd_lc;
movx a,@dptr;
ret ;

;Запись данных в HD44780 из ACC


wrd push a;
mov dptr,#rdc_lc;
waitrd movx a,@dptr; Ожидание
jb acc.7,waitrd; готовности
mov dptr,#wrd_lc;
pop a;
movx @dptr,a;
ret ;

;Запись команды в HD44780 из ACC


wrc push a;
mov dptr,#rdc_lc;
waitrc movx a,@dptr; Ожидание
jb acc.7,waitrc; готовности
pop a;
mov dptr,#wrc_lc;
movx @dptr,a;
ret ;
;***********************************************
intt0 push psw;
mov th0,#0fdh;Прерывание по Т0
mov tl0,#00h; с частотой 1кГц
dec r1;
lcall opros1;
pop psw;
reti ;
;***********************************************
int1 push psw;
push a;
push b;
push dpl;
push dph;
mov r0,p5;Состояние клавиш в r0
lcall opros;
pop dph;
pop dpl;
pop b;
pop a;
pop psw;
reti ;
;***********************************************
opros mov a,r0;
jb acc.0,kl1;
jb acc.1,kl2;
92
jb acc.2,kl3;
jb acc.3,kl4;
ajmp kl;
kl1 lcall sa1;
ajmp kl;
kl2 lcall sa2;
ajmp kl;
kl3 lcall sa3;
ajmp kl;
kl4 lcall sa4;
kl ret ;
;***********************************************
opros1 mov a,r0;
jnb acc.1,oprend;
lcall sa2;
oprend ret ;
;***********************************************
sa1 acall cls ;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#43h; C
acall wrd;
mov a,#81h;
acall wrc;
mov a,#54h; T
acall wrd;
mov a,#82h;
acall wrc;
mov a,#41h; A
acall wrd;
mov a,#83h;
acall wrc;
mov a,#50h; P
acall wrd;
mov a,#84h;
acall wrc;
mov a,#54h; T
acall wrd;
ret ;
;***********************************************
sa2 nop ;
cpl y1; Звук.частота 1кГц
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#048h; H
acall wrd;
mov a,#043h; C
acall wrd;
mov a,#02fh; /
acall wrd;
mov a,#052h; R
acall wrd;
mov a,#050h; P
acall wrd;
93
mov a,#04dh; M
acall wrd;
ret ;
;***********************************************
sa3 acall cls;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#0a8h; П
acall wrd;
mov a,#045h; Е
acall wrd;
mov a,#0abh; Ч
acall wrd;
mov a,#041h; А
acall wrd;
mov a,#054h; Т
acall wrd;
mov a,#0c4h; Ь
acall wrd;
ret ;
;***********************************************
sa4 acall cls ;
mov a,#80h;Обнуление счетчика
acall wrc; знакоместа
mov a,#032h; 2
acall wrd;
mov a,#02fh; /
acall wrd;
mov a,#034h; 4
acall wrd;
mov a,#054h; T
acall wrd;
mov a,#041h; A
acall wrd;
mov a,#04bh; K
acall wrd;
mov a,#054h; T
acall wrd;
mov a,#0c0h;Переход на 2-ю строку
acall wrc;
mov a,#0aah; Ф
acall wrd;
mov a,#0a5h; И
acall wrd;
mov a,#048h; H
acall wrd;
mov a,#0a5h; И
acall wrd;
mov a,#0ach; Ш
acall wrd;
ret ;
;***********************************************
tau6 mov r1,#06h; tau6=6 ms
t61 mov a,r1;
94
jnz t61;
ret ;
;***********************************************
#INCLUDE EQU552.ASM
.end

7.3. Отладочные средства.

Отладочные средства подразделяются на программные и аппаратные.К


программным относятся кросс-ассемблеры и компиляторы языков высокого
уровня(ЯВУ).К аппаратным средствам можно отнести программаторы, эмуля-
торы ПЗУ,внутрисхемные эмуляторы и адаптируемые отладочные системы.

7.3.1. Программные отладочные средства.

Наиболее популярным представителем этого класса является турбоас-


семблер TASM.Это наиболее гибкий кросс-ассемблер для MCS51.Он позволя-
ет настраиваться на любую систему команд.Программа пишется на ассемб-
лере в любом текстовом редакторе.Затем она обрабатывается турбоассемб-
лером и 16-чный модуль загружается в эмулятор ПЗУ EMD256.Приводим один
из вариантов работы с TASM.

Руководство пользователя TASM.

1.Запустить командный файл comp_51.bat с именем своего ассемблеpного


файла,но без pасшиpения.
2.Будут получены след.файлы:
<name>.lst - листинг,
<name>.obj - объектный файл,
<name>.sym - табл.символов.
3.Переименовать <name>.obj в <name>.hex и переслать его в директорию
EMD256.
4.Загрузить <name>.hex в эмулятор ПЗУ.
Для этого нужно вызвать командный файл tr.bat (name).hex в дирек-
тории EMD256.

Широко применяются также кросс-компиляторы C51 и PAS51 для ЯВУ С


и PASCAL. Особый класс отладочных средств составляют симуляторы,предс-
тавляющие собой математическую модель разрабатываемого МКУ. Недостатком
такого подхода является отсутствие реального масштаба времени.

7.3.2. Аппаратные отладочные средства.

Строго говоря программаторы с большой натяжкой можно отнести к


отладочным средствам.Тем не менее при проектировании микроконтроллер-
ных устройств(МКУ) без программаторов не обойтись.Они нужны для то-
го,чтобы "зашить" в ПЗУ отлаженную программу.Номенклатура программато-
ров достаточно обширна.Они выпускаются различными отечественными фир-
мами:"КТЦ-МК","Фитон","Точка опоры" и др. Среди программаторов наибо-
лее приемлемыми по цене и функциональным возможностям нужно назвать
95
программаторы следующих типов:"Стерх","Unipro","picPROG+".
К апаратным отладочным средствам следует отнести также макет-
но-отладочные платы типа EB-552,KIT-552,KIT-PIC01,KIT-PIC-03 и т.п.Эти
платы предоставляют в распоряжение пользователя аппаратное ядро разра-
батываемого МКУ,избавляют его от необходимости лишних монтажных работ
и "изобретения велосипеда".
Эмулятор микросхем ПЗУ ф."КТЦ-МК" типа EMD256 предназначен для
эмуляции работы микросхем ПЗУ типа 27256 непосредственно в составе от-
лаживаемой схемы,как в качестве программной памяти в микропроцессорных
системах,так и памяти микропрограмм для микропрограммных автоматов.
Класс внутрисхемных эмуляторов настолько обширен,что нет смысла
перечислять все типы.Как правило это узко ориентированные программ-
но-аппаратные устройства,рассчитанные на конкретный тип МК или микроп-
роцессора(МП).Стоимость их относительно высока,поэтому большинство
разработчиков обходятся эмуляторами ПЗУ.

7.3.3. Адаптируемая отладочная система для проектирования микроконтроллеров

Отладочные системы (ОС) разработки микроконтроллерных устройств (МКУ) являются основ-


ным инструментом при проектировании и отладке цифровых устройств на базе микропроцессоров (МП)
и однокристальных микро-ЭВМ(МЭВМ). И если внедрение микропроцессоров (МП) и микроконтрол-
лерных устройств считается основой научно-технической революции, то создание ОС является основой
основ этой революции. Существует несколько типов отладочных систем. Мы будем рассматривать наи-
более эффективную : ОС с внутренней эмуляцией. В этой категории создаются два типа ОС : на базе
специализированных чрезвычайно дорогих и как правило недоступных отладочных кристаллов или на
основе серийных МП и МЭВМ. Разработчики предпочитают ОС на серийных МП и МЭВМ. В настоя-
щее время широкое распространение получили так называемые «микро-чипы» серии РIС. Фирменные
отладочные средства стоят около 10 тыс. долларов и построены на базе отладочного кристалла, который
не поставляется отдельно. Однако данная фирма поставляет на рынок БИС МЭВМ типа РIС 17С42. Эта
БИС имеет открытую шину адреса-данных, что позволяет разработать для всех МЭВМ данной серии
адаптируемый внутрисхемный эмулятор с режимом реального времени. Выбор каналов управления
МЭВМ для обеспечения режимов отладки в традиционных схемах чрезвычайно ограничен. В качестве
таких каналов используется либо вход готовности(Readу), либо вход запроса прерывания (Int). К сожа-
лению, вход Readу имеется далеко не у каждой МЭВМ, а использование входа Int ограничивает воз-
можности целевого МКУ. Кроме того, существуют рMOS-динамические архитектуры, которые в прин-
ципе не допускают остановки МП и организации пошагового режима отладки.
Традиционно под каждый процессор разрабатывается своя специализированная отладочная сис-
тема. Специализация затрагивает не только программное обеспечение, но и всю аппаратную поддержку
Это приводит к тому, что создание отладочных средств под новый микропроцессор затягивается на 1-2
года, а их стоимость достигает 5-10 тыс. долларов.
В связи с этим возникла задача по разработке адаптируемой отладочной системы(АОС) для про-
ектирования МКУ[21]. Эта АОС должна обеспечивать достижение следующих технических результатов
:
- расширение сферы применения за счёт обеспечения отладки любых микропроцессоров, имею-
щих открытую шину адреса данных и хотя бы один из входов :Readу(готовность), с(тактовый) или
Int(прерывание);
- неизменность аппаратной реализации для отладки различных микропроцессоров и микро-ЭВМ
при минимальном объёме корректировки программного обеспечения инструментальной ПЭВМ;
- возможность потактовой и покомандной отладки МКУ, что позволяет диагностировать целевой
процессор ;
- простота реализации.
За последние 10 лет архитектура отладочных средств с внутрисхемной эмуляцией для проекти-
рования микроконтроллерных устройств не претерпела сколько-нибудь заметных изменений. Традици-
96
онно ОС строятся из трёх блоков : блок сопряжения (БС), блок загрузки и управления (БЗУ), блок отла-
дочной модели (БОМ).
БС выполняется либо в виде платы параллельного интерфейса, встраиваемого во внутренний ка-
нал персонального компьютера (ПК) IВМ РС, либо в виде устройства последовательного дрступа, под-
ключаемого к одному из внешних СОМ-портов. Первый вариант реализации предпочтительнее. Разра-
ботка БС прекрасна изложена в [31], однако схемные реализации здесь грешат избыточностю. Около 10
лет автором экссплуатируется параллельный БС на 3-х ИС средней интеграции, обепечивающий по-
байтовое сопряжение с 21 каналом. Габариты БС 105х115 мм. БС встраивается во внутренний канал ПК.
Отладочная модель для каждого типа микропроцессора (МП) или однокристальной микро-
ЭВМ(ОМЭВМ) должна быть уникальной. Связано это с обеспечением режима реального времени. Од-
нако аппаратные затраты на уникальность незначительны : всего 1-2 орпуса. БОМ включает в себя МП
или ОМЭВМ и, возможно, регистр адреса. Схема БОМ традиционна и не создаёт проблем разработчи-
ку. Конструктивно БОМ представляет собой сменный элемент, подключённыё к выходному разъёму
БЗУ. К выходному разъёму БОМ в свою очередь подключается ленточный кабель, оканчивающийся так
называемым сокетом, который вставляется в колодку на отлаживаемом МКУ вместо целевого МП или
ОМЭВМ. Такое подключение позволяет проводить отладку МКУ в реальном масштабе времени.
БЗУ в адаптируемой отладочной системе(АОС) является универсальным узлом. В традиционных
архитектурах БЗУ уникален. БЗУ АОС содержит интерфейсы адреса-данных(ИАД) и управляющих
сигналов(ИУС) для связи с инструментальной персональной ЭВМ, ОЗУ программ пользователя
(ОЗУПП), ОЗУ контрольных точек (ОЗУКТ), формирователь сигнала управления (ФСУ), коммутатор
шины адреса (КША) и коммутатор шины данных (КШД), а также программируемый блок (ПБ), интези-
рующий сигналы управления для целевого МП или МЭВМ.

Блок-схема АОС.

В предпочтительном варианте выполнения программируемый блок может содержать синхрони-


затор(СГ), регистр(РГ) и программируемую комбинационную схему (ПКС). Вышеуказанное выполне-
ние ПБ позволяет расширить номенклатуру отлаживамых МКУ, обеспечить адаптацию под новые типы
микропроцессоров и ОМЭВМ. Причём адаптации подвергается несущественная часть программного
обеспечения, аппаратная поддержка остаётся без изменения. Наличие программируемого блока позво-
ляет по выбору разработчика использовать для отладки входы синхронизации, готовности или преры-
вания целевого микропроцессора. Для этого разработчику необходимо лишь переписать содержимое
ПКС. Наличие дублирующей выходной шины управления позволяет в некоторых случаях обходиться
без регистра и повысить быстродействие АОС. При использовании тактового входа целевого МП для
отладки для отладки МКУ программируемый блок позволяет обеспечить как покомандное, так и потак-
товое исполнение программы пользователя, что делает возможной диагностику не только МКУ, но и
целевого МП.

97
Схема программируемого блока АОС.

Программируемый блок может быть реализован на одной микросхеме программируемой логиче-


ской матрицы (ПЛМ) типа КС1556ХП8 или КС1556ХП6, либо на БИС матрицы логических ячеек
(МЛЯ) типа Хi-linx. Однако ПБ можно выполнить и на трёх микросхемах. Для этого достаточно одного
8-разрядного регистра, одной микросхемы ПКС, в качестве которой можно использовать ПЛМ типа
КР556РТ2, ППЗУ КР556РТ7 или КР556РТ16, а также РПЗУ К573РФ4 или ОЗУ любого типа ёмкостью
не менее 2к х 8 бит; в качестве синхрогенератора можно применить микросхему обычного счётчика.
Назначение блоков, узлов и шин АОС описывается следующим образом. Блок ИАД предназначен
для приёма и передачи адреса и данных от инструментальной ПЭВМ. Блок ИУС передаёт сигналы
управления от инструментальной ПЭВМ на ФСУ и ПКС. Блок ОЗУПП хранит программу пользователя,
а также программу выведения содержимого внутренней памяти целевого процесора, которая загружает-
ся в ОЗУПП лишь на время её исполнения. ФСУ служит для формирования сигналов управления рабо-
той ОЗУПП, ОЗУКТ, КША, МШД. ОЗУКТ хранит информацию о наличии контрольных точек, что по-
зволяет останавливать выполнение программы пользователя при достижении заранее заданных адресов.
ПКС формирует функции возбуждения для регистра и выхъодные функции ДШУВых для ПБ. СГ фор-
мирует синхросигналы для Рг и синхронизированную частоту для МКУ. КША коммутирует ШАВ от
целевого процессора на ША. ШД мультиплицирует и коммутирует ШДВ на ШД в прямом и обратном
направлении. Регистр совместно с ПКС и СГ образуют ПБ, являющийся последовательностным автома-
том.
Посколку даже 8-разрядный регистр допускает построение КА на 256 состояний, то это позволя-
ет утверждать, что практически для любого МКУ может быть реализована своя система булевых функ-
ций для ПКС. Однако для записи булевых функций в ПКС требуется программатор или набор сменных
модулей ПКС. Это не всегда удобно, поэтому ПКС можно выполнить на базе ОЗУ и менять набор буле-
вых функций, переписывая их из инструментальной ПЭВМ непосредственно в ОЗУ. Данная архитекту-
ра при управлении работой МКУ по тактовому входу допускает также возможность неизменной систе-
мы булевых функций в ПКС 6 для некоторых типов процессоров.
Управление работой МКУ по тактовому входу является относительно сложным, но зачастую
единственно возможным. Значительно проще управление по входам Готовность или Прерывание. Тра-
диционные аппаратные реализации такого управления [7] для МП и ОМЭВМ типа Iutel 8080, Iutel 8048,
Z 80 и т.п. свободно вписываются в схему ПБ.
Подобная архитектура позволяет перенастраивать ПБ под любой тип МП или ОМЭВМ. Кроме
того, для управления в пошаговом режиме не занимается вход прерывания базового МП. Необходимо-
сти в применении специальных отладочных МП также не возникает. С помощью описанной АОС были
разработаны и переданы заказчику МКУ на базе ОМЭВМ КР1814ВЕ1(р-МОП с динамической памя-
98
тью), КР1806ВЕ1 (4-разрядная, КМОП), К1868ВЕ1, КР1816ВЕ51, R6504, М6820 и др. Адаптация зани-
мала от 2-х недель до месяца. Архитектура АОС защищена в Роспатенте под №523 от 16.06.1995г. АОС
реализована на 14 корпусах БИС в отдельном конструктиве с размерами 155х125х25 мм.
Программная часть отладочной системы написана в среде ДССП [7] вед.инженером Локтевым
Н.М. Выбор данной cреды объясняется наличием большого опыта работы программиста в данной среде
и наличия определённых программных наработок.
Полная версия программы поддержки отладочного устройства включает в себя следующие про-
граммные компоненты:
- так называемая базисная система,которая гораздо шире базовой системы ДССП за счёт того,что
к ней пристыковано большинство из имеющихся в составе ДССП библиотек :
- программа создания и поддержки параметров настройки и функционирования системы ;
- программа сохранения системы и авторизации доступа ;
- модуль дизассемблера ;
- модуль редактирования памяти ;
- модуль поддержки аппаратной части отладчика ;
- сервисная оболочка системы ;
- кросс-ассемблер ;
- управляющая программа аппаратной части ;
- модуль программатора ПЗУ.
Краткие технические характеристики АОС
1. Разрядность целевых процессоров, бит - 4; 8
2. Объём ОЗУ программ, кбайт -4
3. Количество контрольных точек - 4096
4. Количество корпусов ИМС - 14
5. Основные режимы работы :
- отладка программ ;
- сброс всех контрольных точек ;
- распечатка справочника по системе ;
- запись любого участка ОЗУ программ на магнитный носитель в виде файла ;
- чтение файла программы и запись его в ОЗУ программ ;
- запись-чтение внешней и внутренней памяти МКУ на магнитный искатель.
6. Режим отладки включает в себя автоматический и пошаговый режимы, а также режим кон-
трольных точек.

7.4. Средства контроля и диагностики.

По окончании этапа разработки даже на стадии выпуска опытной партии приборов на базе МКУ
возникают проблемы организации контроля и диагностики. Ручной контроль чрезвычайно обремените-
лен и ненадежен. Организация автоматизированного контроля требует разработки соответствующего
оборудования. Зарубежное стоит чрезвычайно дорого. Цена систем контроля достигает нескольких
десятков тысяч долларов. Поэтому значительно дешевле разработать достаточно простые и надежные
системы на базе персонального компьютера (ПК).Такая система состоит из платы параллельного ин-
терфейса и блока контрольно-диагностического устройства(КДУ).КДУ для проверки любого цифрового
устройства, имеющего не более 24 входов/выходов, реализован автором на 6 микросхемах среднего
уровня интеграции. КДУ позволяет не только проводить входной контроль микросхем, но и проверять
готовые изделия на частотах порядка 500кГц. Переход на более высокие частоты связан с введением
ОЗУ и не представляет сложной проблемы.

99
Программная поддержка проста, но громоздкая база данных потребует значительных усилий по
ее наращиванию, введению данных по новой комплектации. Однако уровень программистов для попол-
нения этой базы данных может быть очень низким. В принципе на основе ПК может быть создано
рабочее место разработчика, включающее в себя средства отладки и контроля. Такой инженерный
комплекс автоматизации разработок (ИКАР) явился бы весьма эффективным инструментом для отече-
ственных приборостроителей.
Более профессиональный подход заключается в использовании крейтов, плат виртуальных изме-
рительных приборов, плат сопряжения и т.п. и соответствующего программного обеспечения. Инже-
нерный язык создания систем контроля должен быть не хуже, чем в LabView.

7.5. Отладка электронного модуля.

Разработка любого электронного блока, модуля, устройства, изделия сопровождается макетировани-


ем и отладкой. Отладка весьма трудоёмкий процесс, который зачастую сопровождается выводом из
строя дорогостоящих комплектующих изделий. Чтобы уменьшить материальные и моральные потери
предлагается следующий алгоритм отладки электронного устройства:
1. Проверить установку элементов на печатной или монтажной плате (положение «ключей» и тип мик-
росхем).
2. Прозвонить цепи питания на отсутствие короткого замыкания. Некоторые «умельцы» прозванивают
все связи на макетной плате до установки на нёё интегральных схем. Это весьма трудоёмко и едва
ли оправдано экономически.
3. Включить питание, проверить напряжение питания, замерить потребление по цепям постоянного и
переменного токов.
4. Проверить питание каждой микросхемы(могут быть обрывы, непропаи и т. п. ).
5. Замерить мультиметром или проверить наощупь температуру ИС, транзисторов и др. элементов.
6. Проверку устройства проводить с помощью КДУ, которое точно имитирует входные и выходные
сигналы и команды как по напряжению, так и по току.
7. Если проверяемый блок предназначен для совместной работы с другим блоком или модулем, то пе-
ред стыковкой необходимо проверить входы и выходы этого блока, а также «прозвонить» соедини-
тельный кабель и убедиться в идентичности цоколёвки разъёмов стыкуемых блоков.
8. В случае возникновения наводок, необходима установка резисторов минимально возможного номи-
нала между защищаемой цепью и схемной «землёй». Номинал резистора должен быть как минимум
в 10 раз выше сопротивления нагрузки данной цепи. Сопротивление изоляции в жгуте или кабеле
должно быть не менее 1 МОм.На практике это сопротивление бывает ниже 100 кОм. Низкое сопро-
тивление изоляции способствует возникновению наводок.
9. Корпуса всех приборов и отлаживаемого устройства должны быть присоединены к общей зазем-
ляющей шине помещения(приборная «земля»). Приборная и схемная «земли» не должны соединять-
ся. Последнее требование не всегда соблюдактся: многие измерительные приборы имеют связь меж-
ду «земляным» штеккером и корпусом. В этом случае необходима внешняя развязка.
10. В разрабатываемом устройстве должна быть предусмотрена защита от ошибочного включения. Для
этой цели используются оптронные и релейные развязки, но многие цепи требуют ещё дополни-
тельной защиты в виде последовательно включённых резисторов, номинал которых на порядок
меньше сопротивления нагрузки.

Безусловно, все эти защитные мероприятия должны проводиться на этапе проектирования, но за-
частую приходится принимать экстренные меры «на ходу». Например ,на пустых нормально-
разомкнутых контактах реле может появиться напряжение наводки порядка 15 В при питании 27 В. Эта
наводка легко снимается резистором 10 кОм на «землю». Следовательно, прежде чем отпаивать вывод
какого-либо элемента, убедитесь в том, что это не наводка. Макет как правило выполняется навесным
монтажом на специальных макетных платах с помощью одножильного провода(«лужёнки») и фторо-
пластовой трубки(«чулка»). Если этот «чулок» предварительно не вытянуть, то монтаж получается
очень объёмным, и добраться к отдельной связи бывает просто невозможно. Количество ошибок мон-
тажа даже у квалифицированных монтажников приближается к показателю одна ошибка на микросхе-
му. Правда, это скорее проблема совести монтажника и финансовой оценки качества его работы. На-
100
пример, при отладке устройства из 45 ИС и 12 ПЛИС было выявлено около 60 ошибок монтажа. Поэто-
му процесс отладки должен проходить с обязательным участием монтажника.

Глава восьмая

ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.

8.1. Структура и характеристики ПЛИС.

Проектирование цировых устройств на базе традиционных серий ИС насчитывает более 30 лет и ста-
ло давно привычным делом даже для радиолюбителей. Однако разработчики сталкиваются с некоторы-
ми проблемами: большой размер плат, невысокая надёжность из-за значительного числа корпусов и
соединений между ними, при которых теряется быстродействие устройства и возрастает энергопотреб-
ление. К тому же отладка и настройка таких устройств сложна, трудоёмка и зачастую приводит к появ-
лению навесных проводников и деталей. Устранить эти проблемы помогает применение новейших тех-
нологий, а в частности использование программируемых логических интегральных схем (ПЛИС, в за-
рубежной аббревиатуре - PLD)[39]. Основным отличием ПЛИС от базовых матричных кристаллов
(БМК) и заказных ИС является возможность проектирования отладки и тиражирования специализиро-
ванной схемы самим разработчиком непосредственно на рабочем месте. Это обусловлено как техноло-
гией изготовления ПЛИС (EPROM/EEPROM), так и наличием развитых средств автоматизации.

Для многих разработчиков аппаратуры ЦОС стало ясно, что программируемые логические инте-
гральные схемы (ПЛИС) — удобная в освоении и применении элементная база, альтернативы которой
зачастую не найти. Последние годы характеризуются резким ростом плотности упаковки элементов на
кристалле, многие ведущие производители либо начали серийное производство, либо анонсировали
ПЛИС с эквивалентной ёмкостью более 1 млн. логических вентилей. Цены на ПЛИС неуклонно падают.
Так, ещё в 1998г. ПЛИС ёмкостью 100 000 вентилей стоила в Москве, в зависимости от производителя,
приёмки и быстродействия, от 1500 до 3000 у.е., а спустя 2 года такая микросхема стоит от 100 до 350
у.е., то есть цены упали практически на порядок, и эта тенденция устойчива. Что касается ПЛИС ёмко-
стью 10000 – 30 000 логических вентилей, то появились микросхемы стоимостью менее 10 у.е.

Приведём известную классификацию ПЛИС [39] по структурному признаку, так как она даёт наибо-
лее полное представление о классе задач, пригодных для решения на той или иной ПЛИС. Следует за-
метить, что общепринятой оценкой логической ёмкости ПЛИС является число эквивалентных вентилей,
определяемое как среднее число вентилей “2И-НЕ”, необходимых для реализации эквивалентного про-
екта на ПЛИС и базовом матричном кристалле (БМК). Понятно, что эта оценка весьма условна, по-
скольку ПЛИС не содержат вентилей “2И-не” в чистом виде, однако для проведения сравнительного
анализа различных архитектур она вполне пригодна. Основным критерием такой классификации явля-
ется наличие, вид и способы коммутации элементов логических матриц. По этому признаку можно вы-
делить несколько классов ПЛИС.

Программируемые логические матрицы — наиболее традиционный тип ПЛИС, имеющий программи-


руемые матрицы “И” и “ИЛИ”. В зарубежной литературе соответствующими этому классу аббревиату-
рами являются FPLA (Field Programmable Logic Array) и FPLS (Field Programmable Logic Sequensers).
101
Примерами таких ПЛИС могут служить отечественные схемы K556PT1, PT2,PT21. Недостаток такой
архитектуры — слабое использование ресурсов программируемой матрицы “ИЛИ”, поэтому дальней-
шее развитие получили микросхемы, построенные по архитектуре программируемой матричной логики
(PAL — Programmable Array Logic) — это ПЛИС, имеющие программируемую матрицу ”И” и фиксиро-
ванную матрицу “ИЛИ”. К этому классу относятся большинство современных ПЛИС небольшой сте-
пени интеграции. В качестве примеров можно привести отечественные ИС КМ1556ХП4, ХП6, ХП8,
ХЛ8, ранние разработки (середина–конец 1980-х годов) ПЛИС фирм INTEL, ALTERA, AMD, LATTICE
и др. Разновидностью этого класса являются ПЛИС, имеющие только одну (программируемую) матри-
цу “И”, например, схема 85C508 фирмы INTEL. Следующий традиционный тип ПЛИС — программи-
руемая макрологика. Они содержат единственную программируемую матрицу “И-НЕ” или “ИЛИ-НЕ”,
но за счёт многочисленных инверсных обратных связей способны формировать сложные логические
функции. К этому классу относятся, например, ПЛИС PLHS501 и PLHS502 фирмы SIGNETICS, имею-
щие матрицу “И-НЕ”, а также схема XL78C800 фирмы EXEL, основанная на матрице “ИЛИ-НЕ”.

Вышеперечисленные архитектуры ПЛИС содержат небольшое число ячеек, к настоящему времени мо-
рально устарели и применяются для реализации относительно простых устройств, для которых не су-
ществует готовых ИС средней степени интеграции. Естественно, для реализации алгоритмов ЦОС они
непригодны. ИС ПМЛ (PLD) имеют архитектуру, весьма удобную для реализации цифровых автоматов.
Развитие этой архитектуры — программируемые коммутируемые матричные блоки (ПКМБ) — это
ПЛИС, содержащие несколько матричных логических блоков (МЛБ), объединённых коммутационной
матрицей. Каждый МЛБ представляет собой структуру типа ПМЛ, то есть программируемую матрицу
“И”, фиксированную матрицу “ИЛИ” и макроячейки. ПЛИС типа ПКМБ, как правило, имеют высокую
степень интеграции (до 10000 эквивалентных вентилей, до 256 макроячеек). К этому классу относятся
ПЛИС семейства MAX5000 и MAX7000 фирмы ALTERA, схемы XC7000 и XC9500 фирмы XILINX, а
также большое число микросхем других производителей (Atmel, Vantis, Lucent и др.). В зарубежной
литературе они получили название Complex Programmable Logic Devices (CPLD). Другой тип архитек-
туры ПЛИС — программируемые вентильные матрицы (ПВМ), состоящие из логических блоков (ЛБ) и
коммутирующих путей — программируемых матриц соединений. Логические блоки таких ПЛИС со-
стоят из одного или нескольких относительно простых логических элементов, в основе которых лежит
таблица перекодировки (ТП, Look-up table — LUT), программируемый мультиплексор, D-триггер, а
также цепи управления. Таких простых элементов может быть достаточно много, например, у совре-
менных ПЛИС ёмкостью до 1 млн. вентилей число логических элементов достигает нескольких десят-
ков тысяч. За счёт такого большого числа логических элементов они содержат значительное число
триггеров, а также некоторые семейства ПЛИС имеют встроенные реконфигурируемые модули памяти
(РМП, embedded array block — EAB), что делает ПЛИС данной архитектуры весьма удобным средством
реализации алгоритмов цифровой обработки сигналов, основными операциями в которых являются пе-
ремножение, умножение на константу, суммирование и задержка сигнала. Вместе с тем, возможности
комбинационной части таких ПЛИС ограничены, поэтому совместно с ПВМ применяют ПКМБ (CPLD)
для реализации управляющих и интерфейсных схем. В зарубежной литературе такие ПЛИС получили
название Field Programmable Gate Array (FPGA). К FPGA (ПВМ) классу относятся ПЛИС XC2000,
XC3000, XC4000, Spartan, Virtex фирмы XILINX; ACT1, ACT2 фирмы ACTEL, а также семейства
FLEX8000 фирмы ALTERA, некоторые ПЛИС Atmel и Vantis. Типичным примером FPGA ПЛИС могут
служить микросхемы семейства Spartan фирмы XILINX (рис. 1). Множество конфигурируемых логиче-
ских блоков (Configurable Logic Blocks — CLBs) объединяются с помощью матрицы соединений. Ха-
рактерными для FPGA-архитектур являются элементы ввода/вывода (input/output blocks — IOBs), по-
зволяющие реализовать двунаправленный ввод/вывод, третье состояние и т. п.

Особенностью современных ПЛИС является возможность тестирования узлов с помощью порта JTAG
(B-scan), а также наличие внутреннего генератора (Osc) и схем управления последовательной конфигу-
рацией.

Фирма Altera пошла по пути развития FPGA-архитектур и предложила в семействе FLEX10K так на-
зываемую двухуровневую архитектуру матрицы соединений (рис. 2). ЛЭ объединяются в группы —
логические блоки (ЛБ). Внутри логических блоков ЛЭ соединяются посредством локальной програм-

102
мируемой матрицы соединений, позволяющей соединять любой ЛЭ с любым. Логические блоки связа-

ны между собой и с

Рис.1

элементами ввода/вывода посредством глобальной программируемой матрицы соединений (ГПМС).


Локальная и глобальная матрицы соединений имеют непрерывную структуру — для каждого соедине-
ния выделяется непрерывный канал. Дальнейшее развитие архитектур идёт по пути создания комбини-
рованных архитектур, сочетающих удобство реализации алгоритмов ЦОС на базе таблиц перекодиро-
вок и реконфигурируемых модулей памяти, характерных для FPGA-структур и многоуровневых ПЛИС
с удобством реализации цифровых автоматов на CPLD-архитектурах. Так, ПЛИС APEX20K фирмы
103
Altera (рис. 3) содержат в себе логические элементы всех перечисленных типов, что позволяет приме-
нять ПЛИС как основную элементную для “систем на кристалле” (system-on-chip, SOC).

В основе идеи SOC лежит интеграция всей электронной системы в одном кристалле (например, в случае
ПК такой чип объединяет процессор, память, и т. д.). Компоненты этих систем разрабатываются от-
дельно и хранятся в виде файлов параметризируемых модулей. Окончательная структура SOC-
микросхемы выполняется на базе этих “виртуальных компонентов” с помощью программ систем авто-
матизации проектирования (САПР) электронных устройств — EDA (Electronic Design Automation). Бла-
годаря стандартизации в одно целое, можно объединять “виртуальные компоненты” от разных разра-
ботчиков.

Как известно, при выборе элементной базы систем обработки сигналов обычно руководствуются
следующими критериями отбора: быстродействие; логическая ёмкость, достаточная для реализации
алгоритма; схемотехнические и конструктивные параметры ПЛИС, надёжность, рабочий диапазон тем-
ператур, стойкость к ионизирующим излучениям и т. п.; стоимость владения средствами разработки,
включающая как стоимость программного обеспечения, так наличие и стоимость аппаратных средств
отладки; стоимость оборудования для программирования ПЛИС или конфигурационных ПЗУ; наличие
методической и технической поддержки; наличие и надёжность российских поставщиков; стоимость
микросхем.

Рассмотрим с этих позиций продукцию ведущих мировых производителей ПЛИС, доступную на рос-
сийском рынке.

Фирма Altera Corporation, (101 Innovation Drive, San Jose, CA 95134, USA, http://www.altera.com/) была
основана в июне 1983 года. В настоящее время High-end продуктом этой фирмы является семейство
APEX20K, особенности архитектуры которого упоминались выше, а в табл. 1 приведены основные па-
раметры ПЛИС этого семейства.

104
Таблица 1. Основные характеристики ПЛИС семейства APEX20K фирмы ALTERA

Кроме того, Altera выпускает CPLD семейств MAX3000, MAX7000, MAX9000 (устаревшие серии спе-
циально не упоминаются) и FPGA семейств FLEX10K, FLEX8000, FLEX6000.

Необходимо подчеркнуть, что емкостная нагрузка выходов ПЛИС Altera составляет не бо-
лее 33 пФ. При этом нужно иметь в виду, что в среднем погонная ёмкость кабеля составляет 1 пФ/см,
т.е. при обычной длине кабеля в 1,5 м требуется буферирование ПЛИС. Токовая нагрузка не превышает
24 мА(I0).

Дополнительным фактором при выборе ПЛИС Altera является наличие достаточно развитых
бесплатных версий САПР. В табл. 2 приведены основные характеристики пакета MAX+PLUS II
105
BASELINE ver. 9.3 фирмы Altera, который можно бесплатно “скачать” с сайта http://www.altera.com/
или получить на CD Altera Digital Library, на котором содержится также и полный набор документации
по архитектуре и применению ПЛИС[40].

Кроме того, ПЛИС фирмы Altera выпускаются с возможностью программирования в системе непосред-
ственно на плате. Для программирования и загрузки конфигурации устройств опубликована схема за-
грузочного кабеля ByteBlaster и ByteBlasteMV. Следует отметить, что новые конфигурационные ПЗУ
EPC2 позволяют программировать с помощью этого устройства, тем самым отпадает нужда в програм-
маторе, что, естественно, снижает стоимость владения технологией. ПЛИС фирмы Altera выпускаются в
коммерческом и индустриальном диапазоне температур.

Компания Xilinx Inc. (2100 Logic Drive, San Jose, CA 95124-3400, USA, http://www.xilinx.com/) была
основана в феврале 1984, её High-end продуктом являются ПЛИС семейства Virtex, основные характе-
ристики которых представлены в табл. 3.

Таблица 2. Основные характеристики пакета MAX+PLUS II BASELINE ver. 9.3.

106
Таблица 3. Основные характеристики ПЛИС семейства Virtex фирмы XILINX

107
Архитектура семейства Virtex характеризуется широким разнообразием высокоскоростных трассиро-
вочных ресурсов, наличием выделенного блочного ОЗУ, развитой логикой ускоренного переноса.
ПЛИС данной серии обеспечивают высокие скорости межкристального обмена — до 200 МГц (стан-
дарт HSTL IV). Кристаллы серии Virtex за счёт развитой технологии производства и усовершенствован-
ного процесса верификации имеют достаточно низкую стоимость (до 40% от эквивалентной стоимости
серии XC4000XL). Помимо семейства Virtex, Xilinx выпускает FPGA семейств XC3000A, XC4000E,
Spartan, XC5200, а также CPLD XC9500 и малопотребляющую серию CoolPLD. Существует бесплатная
версия САПР — WebPACK, поддерживающая CPLD XC9500 и CoolPLD, ввод описания алгоритма с
помощью языка описания аппаратуры VHDL.

Следует заметить, что Xilinx существенно обновил модельный ряд как своих ПЛИС, так и программ-
ного обеспечения, которое теперь разрабатывается с участием фирмы Synopsys. ПЛИС Xilinx выпуска-
108
ются в коммерческом и индустриальном диапазоне температур с военной (Military) и космической
(Space) приёмкой.

Компания Actel Corporation (955 East Arques Avenue, Sunnyvale, CA 94086-4533, USA,
http://www.actel.com/) была основана в 1985 году. Особенностью ПЛИС Actel является применение так
называемой Antifuse-технологии, представляющей собой создание металлизированной перемычки при
программировании. Данная технология обеспечивает высокую надёжность и гибкие ресурсы трасси-
ровки, а также не требуется конфигурационное ПЗУ. По этой технологии выпускаются семейства ACT1,
ACT2, 1200XL, а также новые семейства 54SX, А40МХ и А42МХ (со встроенными модулями памяти),
имеющие хорошие показатели цена/логическая ёмкость (ПЛИС, заменяющая 300–350 корпусов ТТЛ,
стоит 10$, при частоте > 250 МГц).

Данные ПЛИС являются хорошей альтернативой БМК при среднесерийном производстве.Новое се-
мейство ProASIC фирмы Actel обладает ёмкостью до 500 000 эквивалентных логических вентилей. Его
отличительной особенностью является энергонезависимость, благодаря применению FLASH-
технологии, и наличие интегрированного на кристалле запоминающего устройства.

Для проектирования устройств на ПЛИС фирмой Actel бесплатно (до 31.01.2000) распространяется
пакет Actel DeskTOP, содержащий средства ввода проекта, моделирования, генерации тестов разработ-
ки VeriBest и средства синтеза разработки Synplicity. Пожалуй, система проектирования Actel DeskTOP
является наиболее мощным из всех бесплатных пакетов САПР ПЛИС.

К сожалению, микросхемы Actel, выпускаемые по Antifuse-технологии, требуют применения специ-


ального программатора, стоимость которого пока ещё весьма высока. Однако, их отличает высокая на-
дёжность, поэтому они являются весьма перспективной базой для специальных применений. Так,
ПЛИС серии RH1280 имеют следующие характеристики:

допустимая доза облучения 300000 РАД;

логическая ёмкость 16000 эквивалентных вентилей;

быстродействие до 135 МГц.

ПЛИС данного типа были применены в марсоходе в системе управления и обработки изображения
цифровой видеокамеры робота-марсохода и в формирователе кадра для передачи информации на Зем-
лю. В настоящее время выпущены радиационно-стойкие ПЛИС новых семейств.

ПЛИС всех семейств Actel выпускаются в коммерческом и индустриальном диапазоне температур, а


также с военной и космической приёмкой.

8.2. Система проектирования MAX+PLUS ALTERA

В предыдущем разделе были рассмотрены основные архитектуры ПЛИС и дана информация о фир-
мах-производителях. В этом разделе мы рассмотрим работу над проектом в среде системы MAX+PLUS
II фирмы ALTERA. В предыдущем разделе данной главы были приведены основные характеристики
свободно распространяемой через Internet версии MAX+PLUS II Baseline, в дальнейшем изложении мы
будем ориентироваться преимущественно на неё.

Название системы MAX+PLUS II является аббревиатурой от Multiple Array MatriX Programmable Logic
User System. Система MAX+PLUS II имеет средства удобного ввода проекта, компиляции и отладки, а
также непосредственного программирования устройств.

109
Процедуру разработки нового проекта от концепции до завершения можно упрощённо представить
следующим образом:

1.создание нового файла проекта или иерархической структуры нескольких файлов проекта с помо-
щью любого сочетания редакторов в системе MAX+PLUS II, то есть графического, текстового и сиг-
нального редакторов;

2.задание имени файла — проекта верхнего уровня в качестве имени проекта;

3.назначение семейства ПЛИС для проекта;

4.открытие окна компилятора Compiler и выбор кнопки Start для начала компиляции проекта. По же-
ланию пользователя можно подключить модуль извлечения временных параметров проекта Timing SNF
Extractor для создания файла, используемого при временном моделировании;

5. в случае успешной компиляции возможен временной анализ, для чего следует выполнить следую-
щее: для проведения временного анализа задержек открыть окно Timing Analyzer, выбрать режим ана-
лиза и нажать кнопку Start; для проведения симуляции нужно сначала создать векторной тестовый век-
тор в файле канала тестирования (.scf), пользуясь сигнальным редактором, или в файле вектора (.vec),
пользуясь текстовым редактором. Затем открыть окно отладчика Simulator и нажать кнопку Start;

6.открытие окна программатора Programmer с по-следующим выбором одного из двух способов: ис-
пользование программатора MPU (Master Programming Unit) или подключение загрузочных устройств
BitBlaster, Byte-Blaster или FLEX Download Cable к устройству, программируемому в системе;

7. выбор кнопки Program для программирования устройств с памятью типа EPROM или EEPROM ли-
бо выбор кнопки Configure для конфигурации устройства с памятью типа SRAM.

ПО системы MAX+PLUS II содержит 11 приложений и главную управляющую программу. Различны


приложения, обеспечивающие создание проекта, могут быть активизированы мгновенно, что позволяет
пользователю переключаться между ними щелчком мыши или с помощью команд меню. В это же время
может работать одно из фоновых приложений, например, компилятор, симулятор, анализатор синхро-
низации и программатор. Одни и те же команды разных приложений работают одинаково, что облегча-
ет задачу разработки логического дизайна.

Hierarchy Display

Обзор иерархии - отображает текущую инрархичнскую структуру файлов в виде дерева светвями, пред-
ставляющими собой подпроекты

Graphic Editor

Графический редактор - позволяет разрабатывать схемный логический проект в формате реального ото-
бражения на экране WYSIWYG

Symbol Editor

Символьный редактор - позволяет редактировать существующие символы и создавать новые

Text Editor

Текстовый редактор - позволяет создавать и редактировать текстовые файлылогического дизайна, напи-


санные на языках AHDL, VHDL, Verilog HDL

Waveform Editor

110
Сигнальный редактор - выполняет двойную функцию: инструмент для рахработки дизайна и инстру-
мент для ввода тестовых векторов и наблюдения результатов тестирования

Floorplan Editor

Поуровневый планировщик - позволяет графическими средствами делать назначения контактам устрой-


ства и ресурсов логических элементов

Compiler

Компилятор - обрабатывает графические проекты

Simulator

Симулятор - позволяет тестировать логические операции и внутреннюю синхронизацию проектируемой


логической цепи

Timing Analyzer

Временной анализатор - анализирует работу проектируемой логической цепи после того, как она была
синтезирована и оптимизирована компилятором

Programmer

Программатор - позволяет программировать, конфигурировать, проводить верификацию и тестировать


ПЛИС фирмы ALTERA

Message Processor

Генератор сообщений - выдает на экран сообщения об ошибках, предупреждающие и информационные


сообщения

Перед тем как начать работать в системе MAX+PLUS II, следует понять разницу между файлами проек-
та, вспомогательными файлами и проектами.

Файл проекта — это графический, текстовый или сигнальный файл, созданный с помощью графическо-
го или сигнального редакторов системы MAX+PLUS II или в любом другом, использующем промыш-
ленные стандарты, схемном или текстовом редакторе либо при помощи программы netlist writer, имею-
щейся в пакетах, поддерживающих EDIF, VHDL и Verilog HDL. Этот файл содержит логику для проек-
та MAX+PLUS II и компилируется компилятором. Компилятор может автоматически обрабатывать
следующие файлы проекта: графические файлы проекта (.gdf); текстовые файлы проекта на языке
AHDL (.tdf); сигнальные файлы проекта (.wdf); файлы проекта на языке VHDL (.vhd); файлы проекта на
языке Verilog (.v); схемные файлы OrCAD (.sch); входные файлы EDIF (edf); файлы формата Xilinx
Netlist (.xnf); файлы проекта Altera (.adf); файлы цифрового автомата (.smf).

Вспомогательные файлы — это файлы, связанные с проектом MAX+PLUS II, но не являющиеся ча-
стью его иерархического дерева. Большинство таких файлов не содержит логики проекта. Некоторые из
них создаются автоматически приложением системы MAX+PLUS II, другие — пользователем. Приме-
рами вспомогательных файлов являются файлы назначений и конфигурации (.acf), символьные файлы
(.sym), файлы отчета (.rpt) и файлы тестовых векторов (.vec).

Проект состоит из всех файлов иерархической структуры проекта, в том числе вспомогательных и вы-
ходных файлов. Именем проекта является имя файла проекта верхнего уровня без расширения. Система
111
MAX+PLUS II выполняет компиляцию, тестирование, анализ синхронизации и программирование сразу
целого проекта, хотя пользователь может в это время редактировать файлы этого проекта в рамках дру-
гого проекта. Для каждого проекта желательно создавать отдельный подкаталог в рабочем каталоге сис-
темы MAX+PLUS II.

В системе MAX+PLUS II легко доступны все инструменты для создания проекта. Разработка проекта
ускоряется за счёт имеющихся стандартных функций, в том числе примитивов, мегафункций, библио-
теки параметризованных модулей (LPM) и макрофункций устаревшего типа микросхем 74 серии. В
системе MAX+PLUS II есть три редактора для разработки проекта: графический, текстовый и сигналь-
ный, а также два вспомогательных редактора: поуровневый планировщик и символьный редактор.

В иерархической структуре проекта на любом уровне допускается смешанное использование файлов с


расширениями “.gdf .tdf .vhd .v .edf .sch”. Однако файлы с расширением “.wdf .xnf .adf .smf ” должны
быть либо на самом нижнем иерархическом уровне проекта, либо быть единственными.

Во всех приложениях MAX+PLUS II есть возможность с помощью команд из меню Assign вводить,
редактировать и удалять типы назначений ресурсов, устройств и параметров, которые управляют ком-
пиляцией проекта. Пользователь может делать назначения для текущего проекта независимо от того,
открыт ли какой-нибудь файл проекта или окно приложений. Доступны следующие типы назначений.

Clique assignment (Назначение клики) задаёт, какие логические функции должны оставаться вместе в
одном и том же блоке логической структуры LAB, блоке ячеек памяти EAB, в одном ряду или устрой-
стве.

Chip assignment (Назначение кристалла) задаёт, какие логические функции должны быть реализованы в
одном и том же устройстве в случае разделения проекта на несколько устройств.

Pin assignment (Назначение контакта) назначает вход или выход одной логической функции конкрет-
ному контакту или нескольким контактам чипа.

Location assignment (Назначение ячейки) назначает единственную логическую функцию конкретной


ячейке чипа.

Probe assignment (Назначение зонда) присваивает уникальное имя входу или выходу логической функ-
ции.

Connected pin assignment (Назначение соединенных контактов) задаёт внешнее соединение двух или
более контактов на схеме пользователя.

Local routing assignment (Назначение местной разводки) присваивает коэффициент разветвления по


выходу узла логическому элементу, находящемуся в том же блоке LAB, что и узел, или в соседнем
LAB, прилежащем к узлу, с использованием общих местных разводок.

Device assignment (Назначение устройства) назначает тип ПЛИС, на которой реализуется проект.

Logic option assignment (Назначение логической опции) управляет логическим синтезом отдельных ло-
гических функций во время компиляции с применением стиля логического синтеза.

Timing assignment (Назначение временных параметров) управляет логическим синтезом и подгонкой


отдельных логических функций для получения требуемых характеристик для времени задержки tPD
(вход – неподрегистренный выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установ-
ки), fMAX (частота син-хросигнала).

Можно определить глобальные опции устройства для компилятора, чтобы он использовал их для всех
устройств при обработке проекта. Для резервирования дополнительных возможностей на будущее мож-

112
можно задать процентное соотношение контактов и логических элементов, которые должны оставаться
неиспользованными во время текущей компиляции.

С использованием команды Global Project Para-meters можно задать имена и глобальные установки,
которые будут использованы компилятором для параметров всех параметризованных функций в проек-
те.

При помощи команды Global Project Timing Require-ments можно ввести глобальные требования по
синхронизации для поекта, задавая общие характеристики для времени задержки tPD (вход – нерегист-
рируемый выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота
синхросигнала).

Команда Global Project Logic Synthesis позволяет сделать глобальные установки для компилятора в час-
ти логического синтеза проекта.

Все пять редакторов MAX PLUS II и три редактора создания дизайна (графический, текстовый и сиг-
нальный) имеют общие функции, такие как, например, создание, сохранение и открытие файла. Кроме
того, приложения редактора MAX PLUS II имеют следующие общие функции: создание файлов симво-
лов и файлов с прототипами функций (Include-файлы); поиск узлов; траверз иерархического дерева;
всплывающие окна меню, зависящего от контекста; временной анализ; поиск и замена фрагментов тек-
ста; отмена последнего шага редактирования, его возвращения, вырезка, копирование, вставка и удале-
ние выбранных фрагментов, обмен фрагментами между приложениями MAX PLUS II или приложения-
ми Windows; печать.

Графический редактор (Graphic Editor) обеспечивает проектирование в реальном формате изображения


(WYSIWIG). Графические файлы проекта (.gdf) или схемные файлы OrCAD (.sch), созданные в данном
графиче-ском редакторе, могут включать любую комбинацию символов примитивов, мегафункций и
макрофункций. Символы могут представлять собой любой тип файла проекта (.gdf .sch .tdf .vhd .v .wdf
.edf .xnf .adf .smf).

Инструмент выбора (“стрелка”) облегчает разработку дизайна. Он позволяет двигать и копировать объ-
екты, а также вводить новые символы. Когда вы помещаете его на контакт или конец линии, он автома-
тически преобразуется в инструмент рисования ортогональных линий. Если им щелкнуть на тексте, он
автоматически преобразуется в инструмент редактирования текста.

Графический редактор обеспечивает ряд других возможностей. Например, можно увеличивать или
уменьшать масштаб отображения на экране, выбирать гарнитуру и размер шрифта, задавать стили ли-
ний, устанавливать и отображать направляющие, получать зеркальное отображение, поворачивать вы-
деленные фрагменты на 90, 180 или 270 градусов; задавать размер и ориентацию текущего листа схемы.

Символьный редактор (Symbol Editor) позволяет просматривать, создавать и редактировать символ.

Символьный файл имеет то же имя, что и проект, и расширение “.sym”. Команда Creat Default Symbol
меню File, которая есть в графическом, текстовом и сигнальном редакторах, создает символ для любого
файла проекта. Символьный редактор обладает следующими характеристиками: можно переопределить
символ, представляющий файл проекта, создавать и редактировать выводы и их имена, используя вход-
ные, выходные и двунаправленные выводы, а также задавать варианты ввода символа в файл графиче-
ского редактора, задать значения параметров и их значения по умолчанию; сетка и направляющие по-
могают выполнить точное выравнивание объектов, в символе можно вводить комментарии.

Текстовый редактор (Text Editor) является инструментом для создания текстовых файлов проекта на
языках описания аппаратуры: AHDL (.tdf), VHDL (.vhd), Verilog HDL (.v). В этом текстовом редакторе
можно работать также с произвольным файлом формата ASCII. Все перечисленные файлы проекта
можно создавать в любом текстовом редакторе, однако данный редактор имеет встроенные возможно-
сти ввода файлов проекта, их компиляции и отладки с выдачей сообщений об ошибках и их локализа-
цией в исходном тексте или в тексте вспомогательных файлов; кроме того, существуют шаблоны язы-
113
ковых конструкций для AHDL, VHDL и Verilog HDL, выполнено окрашивание синтаксических конст-
рукций. В данном редакторе можно вручную редактировать файлы назначений и конфигурации (.acf), а
также делать установки конфигурации для компилятора, симулятора и временного анализатора. Поль-
зуясь данным текстовым редактором, можно создавать тестовые векторы (.vec), используемые для тес-
тирования, отладки функций и при вводе сигнального проекта. Можно также создавать командные фай-
лы (.cmd — для симулятора и .edc — для EDIF), а также макробиблиотеки (.lmf).

В текстовом редакторе MAX PLUS II обеспечивается контекстная справка. Сигнальный редактор


(Waveform Editor) служит инструментом создания описания проекта, ввода тестовых векторов и про-
смотра результатов тестирования. Пользователь может создавать сигнальные файлы проекта (.wdf), ко-
торые содержат временные диаграммы, описывающие логику работы проекта, а также файлы каналов
тестирования (.scf), которые содержат входные вектора для тестирования и функциональной отладки.
Разработка описания проекта в сигнальном редакторе является альтернативой его созданию в графиче-
ском или текстовом редакторах. Здесь можно графическим способом задавать комбинации входных
логических уровней и требуемых выходов. Созданный таким образом файл WDF может содержать как
логические входы, так и входы цифрового автомата, а также выходы комбинаторной логики, счётчиков
и цифровых автоматов. Способ разработки дизайна в сигнальном редакторе лучше подходит для цепей
с чётко определёнными последовательными входами и выходами, то есть для цифровых автоматов,
счётчиков и регистров. С помощью сигнального редактора можно легко преобразовывать временные
диаграммы сигналов целиком или частично, создавая и редактируя узлы и группы. Простыми команда-
ми можно создавать файл таблицы ASCII-символов (.tbl) или импортировать файл тестовых векторов в
формате ASCII (.vec) для создания файлов тестируемых каналов SCF и сигнального дизайна WDF.
Можно также сохранить файл WDF как SCF для проведения тестирования или преобразовать SCF в
WDF для использования его в качестве файла проекта. Сигнальный редактор имеет следующие отличи-
тельные черты: можно создать или отредактировать узел, задав его тип; при разработке WDF можно
задать тип логики узла, задать значения по умолчанию в логическом узле, а также имя состояния по
умолчанию в узле типа цифрового автомата, для упрощения создания тестового вектора можно легко
добавить в файл тестируемых каналов SCF несколько узлов или все из информационного файла симу-
лятора (.snf), существующего для полностью откомпилированного проекта, можно объединять от 2 до
256 узлов для создания новой группы (шины) или разгруппировывать объединённые ранее в группу
узлы. Можно также объединять группы с другими группами. Значение группы может быть отображено
в двоичной, десятичной, шестнадцатеричной или восьмеричной системе счисления с преобразованием
или без в код Грэя, можно копировать, вставлять, перемещать или удалять выбранную часть (“интер-
вал”) сигнала, а также весь узел или группу. Можно также инвертировать, вставлять, переписывать, по-
вторять, расширять или сжимать интервал сигнала любой длины с любым логическим уровнем, такто-
вым сигналом, последовательностью счёта или именем состояния, задать сетку для выравнивания пере-
ходов между логическими уровнями, в любом месте файла можно вводить комментарии между сигна-
лами, менять масштаб отображения.

Для облегчения тестирования можно сделать наложение любых выходов в текущем файле или нало-
жить второй файл сигнального редактора для сравнения сигналов его узлов и групп с соответствующи-
ми сигналами текущего файла.

Поуровневый планировщик (Floorplan Editor) предназначен для назначения ресурсов физических уст-
ройств и просмотра результатов разводки, сделанных компилятором. В окне поуровневого планиров-
щика могут быть представлены два типа изображения:

Device View (Вид устройства) показывает все контакты устройства и их функции;

LAB View (Вид логического структурного блока) показывает внутреннюю часть устройства, в том чис-
ле все логические структурные блоки (LAB) и отдельные логические элементы.

После выполнения всех назначений и задания проекта приступают к его компиляции. Сначала компи-
лятор извлекает информацию об иерархических связях между файлами проекта и проверяет проект на
простые ошибки ввода описания проекта.
114
Компилятор применяет разнообразные способы увеличения эффективности проекта и минимизации
использования ресурсов устройства. Если проект слишком большой, чтобы быть реализованным в од-
ном устройстве, компилятор может автоматически разбить его на части для реализации в нескольких
устройствах того же самого семейства, при этом число соединений между устройствами минимизирует-
ся. В файле отчёта (.rpt) затем будет отражено, как проект будет реализован в одном или нескольких
устройствах.

Кроме того, компилятор создает программирующие файлы, используемые программатором для про-
граммирования одного или нескольких устройств. У разработчика также есть возможность настроить
обработку проекта. Например, можно задать стиль логического синтеза проекта по умолчанию и другие
параметры логического синтеза в рамках всего проекта, что позволит провести логический синтез в со-
ответствии с вашими потребностями. Кроме того, вы можете ввести требования по синхронизации в
рамках всего проекта, точно задать разбиение большого проекта на части для реализации в нескольких
устройствах и выбрать варианты параметров устройств, которые будут применены для всего проекта в
целом. Загрузку готового проекта в ПЛИС или конфигурационное ПЗУ выполняют с помощью про-
грамматора (Programmer).

Ниже приводится пример текстового файла для проекирования МПА,представленного на ГСА.

115
TITLE "Блок связи и команд";

INCLUDE "tm1";

INCLUDE "tm2";
116
INCLUDE "ctc";

INCLUDE "dff";

SUBDESIGN bsc

f50,reset,z1,z2,z3,z4,z5,z7,z9: INPUT;

y1,y2,y3,y6,q[3..0] : OUTPUT;

y4,y5,y7,y8 : output;

VARIABLE

mtm1 : tm1;

mtm2 : tm2;

mctc : ctc;

rg[3..0] : DFF;

z6,z8,z10,d[3..0] : NODE;

BEGIN

rg[].clk = f50;

rg[].clrn = reset;

rg[].d = d[];

q[] = rg[].q;

mtm1.clk = f50 & y4;

mtm1.reset = !y7;

mtm2.clk = mtm1.ct5;

mtm2.reset = !y7;

z10 = mtm2.ct0;

z6 = mtm2.ct6;

mctc.clk = y5;

mctc.reset = !y8;

z8 = mctc.ct2;

117
table

q[3..0],z10,z9,z8,z7,z6,z5,z4,z3,z2,z1 => d[3..0];

0 , x , 0, x, x, x, x, x, x, x, x => 0;

1 , x , x, x, x, x, x, x, x, 1, x => 0;

12 , x , 0, x, x, x, x, x, x, x, x => 0;

15 , x , x, x, x, x, x, x, x, x, x => 0;

0 , x , 1, x, x, x, x, x, x, x, x => 1;

1 , x , x, x, x, x, x, 0, x, 0, x => 1;

14 , x , x, 0, x, x, x, 1, x, x, x => 1;

1 , x , x, x, x, x, x, 1, x, 0, x => 2;

2 , x , x, x, x, x, x, 1, x, x, 1 => 2;

9 , x , x, x, 0, x, x, x, x, x, x => 2;

11 , x , x, 0, x, 1, x, x, 0, x, 1 => 2;

2 , x , x, x, x, x, x, 1, x, x, 0 => 3;

7 , x , x, x, x, x, x, x, x, x, 0 => 3;

8 , 1 , x, x, x, x, x, x, x, x, x => 3;

11 , x , x, 0, x, 1, x, x, 1, x, x => 3;

11 , x , x, 0, x, 1, x, x, 0, x, 0 => 3;

3 , x , x, x, x, x, x, x, x, x, x => 4;

4 , x , x, x, 0, x, 1, x, 1, x, x => 4;

4 , x , x, x, x, x, x, x, 0, x, x => 5;

5 , x , x, x, x, x, x, x, x, x, x => 6;

6 , 0 , x, x, x, x, x, x, x, x, 1 => 6;

6 , 1 , x, x, x, x, x, x, x, x, x => 7;

7 , x , x, x, x, x, x, x, x, x, 1 => 7;

6 , 0 , x, x, x, x, x, x, x, x, 0 => 8;

8 , 0 , x, x, x, x, x, x, x, x, x => 8;

4 , x , x, x, 1, x, 1, x, 1, x, x => 9;

9 , x , x, x, 1, x, x, x, x, x, x => 9;

118
4 , x , x, x, x, x, 0, x, 1, x, x => 10;

10 , x , x, x, x, x, x, x, x, x, x => 11;

11 , x , x, 0, x, 0, x, x, x, x, x => 11;

11 , x , x, 1, x, x, x, x, x, x, x => 12;

12 , x , 1, x, x, x, x, x, x, x, x => 12;

14 , x , x, 1, x, x, x, 1, x, x, x => 12;

2 , x , x, x, x, x, x, 0, x, x, x => 13;

13 , x , x, x, x, x, x, x, x, x, x => 14;

14 , x , x, x, x, x, x, 0, x, x, x => 14;

end table;

table

q[3..0]=> y1,y2,y3,y4,y5,y6,y7,y8;

0 => 0, 0, 0, 0, 0, 0, 0, 0;

1 => 0, 0, 0, 0, 0, 0, 1, 1;

2 => 0, 0, 0, 0, 0, 0, 1, 1;

3 => 1, 0, 0, 0, 0, 0, 1, 0;

4 => 0, 0, 0, 0, 0, 0, 0, 0;

5 => 0, 1, 0, 0, 0, 0, 1, 0;

6 => 0, 0, 0, 1, 0, 0, 0, 0;

7 => 0, 0, 0, 0, 0, 0, 0, 0;

8 => 0, 0, 0, 1, 0, 0, 0, 0;

9 => 0, 0, 1, 0, 0, 0, 0, 0;

10 => 0, 0, 0, 0, 1, 0, 1, 0;

11 => 0, 0, 0, 1, 0, 0, 0, 0;

12 => 0, 0, 0, 0, 0, 1, 0, 0;

13 => 0, 0, 0, 0, 1, 0, 0, 0;

14 => 0, 0, 0, 0, 0, 0, 0, 0;

15 => 0, 0, 0, 0, 0, 0, 0, 0;

end table;

119
end;

На копии экрана симулятора представлены временные диаграммы работы МПА БСК.

8.3. Общая характеристика СБИС, выпускаемых фирмой ALTERA

СБИС программируемой логики (СБИС ПЛ) - цифровые СБИС высокой степени интеграции, имеющие
программируемую пользователем внутреннюю структуру и предназначенные для реализации сложных
цифровых устройств. Использование СБИС ПЛ и соответствующих средств автоматизации проектиро-
вания позволяет в сжатые сроки создавать конкурентноспособные устройства и системы, удовлетво-
ряющие жестким требованиям по производительности, энергопотреблению, надежности, массо-
габаритным параметрам, стоимости.

Одним из общепризнанных мировых лидеров в области производства СБИС ПЛ являетсяамериканская


фирма ALTERA. Оптимальное сочетание таких параметров как быстродействие, потребление энергии,
степень интеграции, стоимость делает СБИС ПЛ фирмы ALTERA идеальным средством для построения
плат расширения ПЭВМ, систем управления и телекоммуникации, устройств цифровой обработки сиг-
налов для стационарных и мобильных систем связи.

В настоящее время фирма ALTERA выпускает семь семейств СБИС ПЛ. Основные характеристики
наиболее популярных из них приведены в таблице.

120
1) единица измерения - число эквивалентных логических вентилей (вентилей типа 2И-НЕ);

2) при использовании внутренней памяти доступные пользователю логические ресурсы СБИС не


уменьшаются.

Семейство MAX (Multiple Array matriX) 7000 объединяет семь серий СБИС. СБИС этого семейства
позволяют заменить устройство, содержащее до сотни корпусов микросхем средней степени интегра-
ции, и обеспечивают: задержку распространения сигнала от любого входа до выхода СБИС не более 5
нс; устойчивую работу на частотах до 151 МГц; возможность регулирования скорости переключения
выходных буферов; возможность использования четырех режимов работы выходных буферов: вход,
выход, двунаправленный, открытый коллектор; возможность задания режима пониженного энергопо-
требления (Turbo-off) как для всей СБИС в целом, так и для цепей распространения отдельных сигна-
лов; возможность программирования и репрограммирования после распайки на плате; возможность
задания режима секретности разработки (Design Security); работу с пониженным (3.3 В) напряжением
питания. СБИС ряда серий семейства MAX 7000 соответствуют требованиям стандарта шины PCI.

Семейство FLEX (Flexible Logic Element matriX) 8000A объединяет шесть серий СБИС. СБИС этого
семейства позволяют заменить устройство, занимающее десятки плат, выполненных на микросхемах
средней степени интеграции, и обеспечивают возможность: устойчивой работы на частотах до 294 МГц;
эмуляции внутренней шины с тремя состояниями; работы с пониженным напряжением питания (3.3 В);
работы в системах со смешанным напряжением питания (3.3 В, 5.0В); реализации неограниченного
числа циклов реконфигурирования, в том числе "на лету", т.е. без выключения питания СБИС; регули-
рования скорости переключения выходных буферов; использования трех режимов работы выходных
буферов: вход, выход, двунаправленный. Все СБИС этого семейства совместимы со стандартом шины
PCI.

Семейство MAX (Multiple Array matriX) 9000 объединяет четыре серии микросхем. СБИС этого се-
мейства позволяют заменить устройство, занимающее десятки плат, выполненных на микросхемах
средней степени интеграции, и обеспечивают возможность: устойчивой работы на частотах до 117 МГц;
независимого использования логической части и триггера макроячейки; задания режима пониженного
энергопотребления (power-saving mode) как для всей СБИС в целом, так и для цепей распространения
отдельных сигналов; программирования и репрограммирования после распайки на плате; работы в
системах со смешанным напряжением питания (3.3 В, 5.0В); регулирования скорости переключения
выходных буферов; использования трех режимов работы выходных буферов: вход, выход, двунаправ-
ленный. СБИС ряда серий семейства MAX 9000 совместимы со стандартом шины PCI.

Семейство FLEX (Flexible Logic Element matriX) 10K объединяет семь серий СБИС. СБИС этого се-
мейства позволяют заменить устройство, занимающее сотни плат, выполненных на микросхемах сред-
ней степени интеграции, и обеспечивают возможность: устойчивой работы на частотах до 450 Мгц;
реализации на кристалле статической памяти и ПЗУ объемом до 24 Кбит; независимого использования
логической части и триггера каждого логического элемента; эмуляции внутренней шины с тремя со-
121
стояниями; умножения внутренней тактовой частоты; работы в системах со смешанным напряжением
питания (3.3 В, 5.0В); реализации неограниченного числа циклов репрограммирования, в том числе "на
лету", т.е. без выключения питания СБИС; регулирования скорости переключения выходных буферов;
использования четырех режимов работы выходных буферов: вход, выход, двунаправленный, открытый
коллектор. Все СБИС этого семейства совместимы со стандартом шины PCI.

Основными тенденциями развития выпускаемых фирмой Altera семейств СБИС ПЛ являются: увеличе-
ние степени интеграции; повышение гибкости в использовании внутренних ресурсов; уменьшение
энергопотребления в расчете на эквивалентный логический вентиль; повышение быстродействия. Кро-
ме того, еще одной, немаловажной, тенденцией является непрерывное снижение стоимости СБИС.

СБИС семейств FLEX10K и FLEX8000

СБИС данных семейств имеют в целом сходную внутреннюю архитектуру в основе которой лежит ло-
гический элемент (ЛЭ). ЛЭ содержит четырехвходовую таблицу перекодировок (ПЗУ), обеспечиваю-
щую реализацию логических функций, синхронный триггер и некоторую дополнительную логику. ЛЭ
объединяются в группы - логические блоки (каждый из блоков содержит восемь ЛЭ). Внутри логиче-
ских блоков ЛЭ соединяются посредством локальной программируемой матрицы соединений, позво-
ляющей соединять любой ЛЭ с любым. Логические блоки связаны между собой и с элементами ввода-
вывода посредством глобальной программируемой матрицы соединений. Локальная и глобальная мат-
рицы соединений имеют непрерывную структуру - для каждого соединения выделяется единый, непре-
рывный в рамках СБИС (либо логического блока) канал. Двухуровневая архитектура и использование
непрерывной структуры соединений на каждом уровне иерархии обеспечивают: высокое быстродейст-
вие реализуемых устройств; возможность точного предсказания задержки распространения сигналов;
высокую скорость автоматической разводки СБИС; возможность размещения выводов СБИС в соответ-
ствии с требованиями разработчика. Каждый элемент ввода-вывода содержит: триггер, позволяющий
реализовать временное хранение принимаемого и передаваемого бита данных; буфер, работающий в
режимах: ввод, вывод, двунаправленный, выход с открытым коллектором (FLEX 10K) и обеспечиваю-
щий возможность управления его скоростью переключения. Отличительной особенностью семейства
FLEX 10K является наличие модулей памяти общей емкостью до 24 кбит, использование которой не
ведет к уменьшению доступных разработчику логических ресурсов (логических элементов). Основные
характеристики СБИС указанных семейств приведены в таблице 1 и таблице 2.

Таблица 1. СБИС FLEX10K

122
1) единица измерения - число эквивалентных логических вентилей (вентилей типа 2И-НЕ);

2) тестирование проводилось для СБИС с градацией быстродействия -3.

Таблица 2. СБИС FLEX8000A

1) единица измерения - число эквивалентных логических вентилей (вентилей типа 2И- НЕ);

2) тестирование проводилось для СБИС с градацией быстродействия -2.

123
8.4. Сравнительные стоимости ПЛИС фирм Xilinx и ALTERA

Фирма ALTERA производит микросхемы программируемой логики, средства проектирования и про-


граммирования для них и занимает первое место в мире по объему продаж СБИС ПЛ, охватывая свыше
30 процентов рынка, немного опережает своего основного конкурента Ц фирму Xilinx. Используя СБИС
ПЛ и САПР фирмы ALTERA Вы можете: реализовать цифровую часть проекта любой сложности на
одном кристалле; сократить время проектирования, полностью исключив этап макетирования и начав
разработку печатной платы одновременно с разработкой СБИС ПЛ; вносить изменения на любой ста-
дии проектирования или в законченный проект без переразводки печатной платы; обеспечить работу
системы с тактовыми частотами свыше 250 МГц; ускорить и упростить процесс проектирования цифро-
вого устройства, используя настраиваемые библиотечные модули типовых функциональных узлов; вво-
дить проект в схемном виде или используя текстовое описание, использовать возможности других
средств САПР; уменьшить стоимость разработки.

Для проектирования цифровых устройств фирма ALTERA предлагает САПР с различными функцио-
нальными возможностями. Полнофункциональный САПР BASELINE предлагается бесплатно. Устано-
вив его сприлагаемого к письму компакт диска "Altera Digital Library" и зарегистрировавшись на
www.altera.com Вы становитесь пользователем лицензионного программного продукта, который позво-
ляет: использовать СБИС ПЛ логической емкостью до 16 тысяч эквивалентных логических вентилей;
осуществлять графический (схемный) ввод, текстовый ввод на языке AHDL; использовать в качестве
входных файлы формата EDIF и формата .sch (Orcad); использовать широкий набор готовых функцио-
нальных устройств, настраиваемых пользователем (умножающие и делительные устройства, FIFO и
т.д.); проводить временной анализ задержек сигналов и тактовых частот; выполнять функциональное и
временное моделирование на тестах, заданных в виде временных диаграмм, что обеспечивает достовер-
ность результатов проектирования; с помощью программатора или устройств BITBLASTER и
BYTEBLASTER программировать СБИС ПЛ, в том числе программировать и перепрограммировать
микросхемы прямо на плате используя технологический разъем. В таблице 1 приведены данные по ти-
повым системам разработки цифровых устройств (для РС) и простейшим средствам программирования
СБИС ПЛ фирм Xilinx и ALTERA. Выпускаемые фирмой ALTERA СБИС ПЛ имеют логическую ем-
кость от 600 до 1 000 000 эквивалентных логических вентилей и обеспечивают самое высокое быстро-
действие среди микросхем данного класса и низкое энергопотребление. С номенклатурой СБИС ПЛ и
их техническими характеристиками Вы познакомитесь в "Altera Digital Library".

В таблице 2 проведено сравнение близких по логической емкости СБИС ПЛ фирм Xilinx и ALTERA,
упакованных в близкие по числу выводов корпуса и имеющих низшее быстродействие в своем классе.

Анализ данных в Табл. 1 и Табл. 2 показывает: для работы с проектами цифровых устройств сложно-
стью до ~50 микросхем серии 74 ALTERA предоставляет бесплатно полнофункциональные средства
проектирования и возможность простой реализации средств программирования СБИС ПЛ; цена СБИС
ПЛ фирмы ALTERA по большинству позиций существенно ниже сопоставимых по техническим харак-
теристикам СБИС ПЛ фирмы Xilinx.

Таблица 1: Основные системы разработки цифровых устройств и средства программирования СБИС ПЛ


фирм Xilinx и ALTERA

124
Примечание: * Все цены в таблицах приведены с учетом НДС по состоянию на июнь 1999 г.

Таблица 2: Сравнительные стоимости сопоставимых по техническим характеристикам СБИС програм-


мируемой логики фирм Xilinx и ALTERA.

Примечания:* В одном конфигурируемом логическом блоке (CLB) СБИС ПЛ семейства XC4000 содер-
жится две LC (четырехвходовая таблица перекодировки и триггер), в CLB семейства Virtex Ц четыре
LC; ** В СБИС ПЛ семейства XC4000 память использует ресурс LC, выделенные блоки памяти отсут-
ствуют.

8.5. РЕКОМЕНДАЦИИ ПО ПРИМЕНЕНИЮ ПЛИС

Безусловно, самым эффективным решением проблем проектирования микроконтроллеров явля-


ется их микропроцессорная реализация. Резкое расширение номенклатуры БИС семейства 80С51, появ-
ление дешёвых микро-ЭВМ PIC и широкий ассортимент микроконтроллеров вообще, и в частности
125
имеющих системы команд на языках высокого уровня, делает архаичным использование ПЛИС. Одна-
ко, применение микро-ЭВМ имеет ряд ограничений. Прежде всего, это связано со сбоями. Предусмот-
реть все последствия сбоев в программе, насчитывающей десятки килобайт, практически невозможно.
Решает проблему применение диагностических процессоров. Однако отсутствие финансирования не
позволит создать БИС диагностического процессора в ближайшие годы. Кроме того, необходимо про-
ведение сложных мероприятий по помехозащите. Решающим фактором в пользу применения ПЛИС
может явиться высокое быстродействие. Но в последнее время этот параметр утратил своё значение,
поскольку созданы МЭВМ высокой производительности.
Следовательно, ПЛИС следует применять тогда, когда алгоритм работы МКУ относительно
прост(менее 2 кбайт в программном эквиваленте), не решены проблемы помехозащиты и требуется на-
дёжная бессбойная работа микроконтроллера.

126
«Читай и слушай для собственного развлечения
рассказы о хитроумных системах, вникай в
интересные вопросы, поставленные там со всей
изощрённостью, какой только может наделить
их пылкая фантазия, но смотри на всё это толь-
ко как на упражнения для ума и возвращайся
каждый раз к согласию со здравым смыслом...»
(Честерфилд «Письма к сыну»)

ЧАСТЬ 2

Базовые проблемы класической логики.

Глава первая

Всё, о чем далее будет идти речь (комплементарная логика, решение логических уравнений,
русская силлогистика, силлогистика Аристотеля-Жергонна, общеразговорная силлогистика и т. д.)
разработано в России и не известно мировой науке. Поэтому призываю всех читателей воспринимать
мои методы крайне критически и обязательно проверять их с точки зрения здравого смысла. Весьма
показателен пример некритического отношения к теории относительности (ТО), которую к 1998г. не-
мецкие физики Георг Галецки и Петер Марквардт низвели с пьедестала. "Тысячи" экспериментов в за-
щиту ТО оказались фиктивными. Из 5 реальных попыток не было ни одной удачной. В СССР ещё в 60-
е годы также были выступления и публикации учёных, критиковавших ТО. Наиболее ярко отношение
советской науки к ТО выражено в работе В. А. Ацюковского "Логические и экспериментальные основы
теории относительности" – М.: МПИ, 1990 – 56с.
Прежде, чем приступить к рассмотрению базовых проблем, стоит совершить небольшой экскурс
в историю логики. Эта наука как основополагающий раздел философии появилась в конце второго ты-
сячелетия до н. э. в Индии. Затем она перекочевала в Китай, где в 479-381гг до н. э. наблюдался период
расцвета логики и философии, связанный с учением Мо Цзы.
Наибольшего развития логика достигает в Древней Греции. Главные её достижения связываются
с именами Сократа(470-399гг. до н. э.), Платона(428-348 гг. до н. э.), Аристотеля(384-322гг. до н. э.),
стоиков Зенона из Китиона(336-264гг. до н. э.) и Хризиппа(280-205гг. до н. э.), представившего теорию
материальной импликации. Следует хотя бы просто перечислить имена ученых, уделявших самое при-
стальное внимание логике.
Ибн-Сина (Авиценна) – среднеазиатский мыслитель с широким кругом интересов, род. в 980г. в
Афшане, возле Бухары, умер в 1037г. Ему уже была известна формула импликации (возможно, из работ
стоиков).
Михаил Псёлл – византийский логик (1018-1096гг.), автор «квадрата Псёлла».
Роджер Бэкон – английский философ(1214-1294гг.), считал в частности, что «простой опыт учит
лучше всякого силлогизма», т. е. опирался на логику здравого смысла.
Уильям Оккам – английский философ, логик(1300-1349гг.). Ввёл троичную логику за много ве-
ков до Лукасевича. Автор «принципа простоты» ("бритва Оккама").
Антуан Арно(1612-1694) и Пьер Николь(1625-1695) – французские логики, авторы книги «Логи-
ка Пор-Рояля» (монастырь во Франции), последователи Декарта.
Арнольд Гейлинкс – бельгийский логик и философ(1625-1669гг). Опроверг за несколько веков до
официального признания общезначимость модуса DARAPTI для 3-й фигуры силлогизмов. Доказал пра-
вила Де Моргана:
1. ab → a+b
2. (a → b)’ → (b’ → a’)’
127
3. (b→c)(a→c)’ → (a→b)’
4. (a→b)(a→c)’ → (b→c)’
5. ab’ → (a→b)’
Готфрид Вильгельм Лейбниц – немецкий философ, математик, физик(1646-1716). Осовополож-
ник символической логики. Впервые математизировал логику. Задолго до Эйлера использовал «круги
Эйлера». Впервые поставил «техническое задание» для силлогистики. Сформулировал и доказал теоре-
мы:
1. Aab Aac → Aa(bc)
2. Aab Acd → A(ac)(bd)
3. A(ab)a
4. A(ab)b, т. е. все (ab) суть b
Якоб и Иоганн Бернулли(1654-1705 и 1667-1748) – ученики Лейбница. Ввели операцию вычита-
ния множеств.
Леонард Эйлер – математик, физик, астроном(1707-1783). Родился в Швейцарии, но вся научная
жизнь прошла в России. Создатель «кругов Эйлера», основы формальной силлогистики.
Иоганн Генрих Ламберт – швейцарский логик(1728-1777), последователь Лейбница. Предвосхи-
тил ряд работ Джорджа Буля(разложение функции на элементарные составляющие), ввёл скалярные
диаграммы для геометрической интерпретации силлогизмов.
Ж.. Д. Жергонн – французский астроном и логик(1771-1859). Впервые зафиксировал с помощью
кругов Эйлера силлогистический базис Аристотеля.
Август Де Морган – шотландский логик(1806-1871), автор логики отношений, »правил Де Мор-
гана».
Джордж Буль – английский логик(1815-1864),создатель Булевой алгебры. Отец Этель Лилиан
Войнич (автор романа «Овод»).
Платон Сергеевич Порецкий (1846-1907) – профессор Казанского университета. Он опередил не
только своё время, но и Бертрана Рассела. П.Эренфест сказал, что Порецкий намного упростил приёмы
решения логических уравнений по сравнению с Дж. Булем и Шредером. Могу добавить, что русский
логик впервые в мире дал аналитическое представление силлогистических функторов Axy и Exy. Этого
не эаметили ни зарубежные логики, ни, что самое обидное, отечественные учёные.В течение 100 лет
научные результаты великого русского логика не были востребованы наукой, которая до сих пор прозя-
бает в невежестве.
Николай Александрович Васильев(1880-1940, г.Казань) – советский логик и философ, автор мо-
нографии «О частных суждениях», в которой впервые заявляет, что силлогистика Аристотеля не имеет
никакого отношения к здравому смыслу. Сформулировал требования к силлогистическому базису здра-
вого смысла.
Из современных учёных, пытающихся решить фундаментальные проблемы логики, необходимо
в первую очередь отметить Брусенцова Н. П. [4 – 7], Светлова В. А., создавшего элегантные методы
синтеза силлогизмов [33], Кулика Б. А., решающего аналогичные задачи с помощью алгебры множеств
[15].

1,.1. Решение логических уравнений.

Наиболее полно эта проблема рассмотрена в работах П.С.Порецкого [32] и Н.П.Брусенцова [5].
Предлагается более простой и эффективный метод решения логических уравнений[22], основан-
ный на применении таблиц истинности и трёхзначной или четырёхзначной логики. Трёхзначную логику
представим следующими базисными операциями : инверсией, конъюнкцией и дизъюнкцией [5].

Таблица базисных функций 3-значной логики

Аргументы Функции
XY X’ X&Y X+Y
128
Аргументы Функции
XY X’ X&Y X+Y
00 1 0 0
0i 1 0 i
01 1 0 1
i0 i 0 i
ii i i i
i1 i i 1
10 0 0 1
1i 0 i 1
11 0 1 1

Базисные функции определяются следующии соотношениями :


X&Y = min(X,Y)
X+Y = max(X,Y)
Автором впервые предлагается четырехзначная логика.Она полностью соответствует общеразго-
ворной,или бытовой логике.Вышеназванная логика представлена базисными функциями. Значения
этой логики имеют следующий смысл : 0 - нет, j - не может быть никогда, i- может быть, 1 - да.

Таблица базисных функций 4-значной комплементарной логики

XY X’ X&Y X+Y XY X’ X&Y X+Y


00 1 0 0 i0 j 0 1
0j 1 0 j ij j 0 1
0i 1 0 i ii j i i
01 1 0 1 i1 j i 1
j0 i 0 j 10 0 0 1
jj i j j 1j 0 j 1
ji i 0 1 1i 0 i 1
j1 i j 1 11 0 1 1

Следует обратить внимание на комплементарность(взаимодополняемость,взаимоинверсность)


значений переменных : 0+1=1, i+j=1, 0&1=0, i&j=0. В связи с этим вполне естественно назвать такую
логику комплементарной. Для приведённых базисных функций комплементарной логики как и для 3-
значной логики также справедлив закон Де Моргана.
При решении системы логических уравнений вначале определяется так называемая полная еди-
ница задачи (системы), а потом отыскивается решение уравнения относительно одной из переменных.
Под решением здесь и далее понимается преобразование исходного уранения к явному виду относи-
тельно одной из переменных. Поскольку построение полной единицы системы не вызывает затрудне-
ний, рассмотрим решение логического уравнения с помощью таблиц истинности, считая полную еди-
ницу (m) известной.
Пример 1.
Дано : m = ab + cd = 1
Найти : d = f(a,b,c)
Решение.
На основании исходного логического уравнения полной единицы строим таблицу истинности
для разрешённых наборов, т.е. тех наборов, на которых исходное уравнение имеет решение. Перенеся
столбцы a,b,c из исходной таблицы в качестве значений аргументов, а столбец d - в качестве значений
искомой функции, получим таблицу истинности для d = f(a,b,c).

129
dcba m
0011 1
0111 1
1011 1
1111 1
1100 1
1101 1
1110 1

cba d
011 0
11 0
011 1
111 1
100 1
101 1
110 1

По полученной таблице заполним карту Карно, откуда после минимизации выведем соотноше-
ния для d = f(a,b,c). Если на некотором наборе функция принимает значение как 0, так и 1, то в соответ-
ствующую клетку карты Карно вписываем символ i. Если на каком либо наборе функция не определена,
то в соответствующую клетку карты Карно вносим значение j. Здесь и далее апостроф означает отрица-
ние аргумента или функции. Применение карты Карно не имеет принципиального значения : просто
автор считает карты Карно наиболее эффективным инструментом для минимизации булевых функций.
ba
c \ 00 01 11 10
j j i j
1 1 i 1

Клетки карты Карно с координатами 011 и 111 заполнены значением i, т.к. на этих набо-
рах(индивидах,конституентах) d принимает значения как 0, так и 1. Наборы 000, 001 и 010 в таблице
отсутствуют, поскольку при таких значениях аргументов исходное уравнение не имеет решения, поэто-
му соответствующие карты Карно заполнены символом j.
Для трёхзначной логики в этих клетках помещается прочерк [17], т.е. символ недоопределённо-
сти. Доопределение минимизируемой функции единицами позволяет получить компактную формулу.

Для комплементарной логики имеем:

d = cb’ + ca’ + iba + j(c’b’ + c’a’)

Для трёхзначной логики это уравнение выгдядит проще:

d = b’ + a’ + iba

В связи с тем, что при решении логических уравнений приходится зачастую проводить миними-
зацию булевых функций от большого числа переменных, полезно ознакомиться с соответствующими
алгоритмами, изложенными в [16,17] и в диссертации автора[19].
Пример 2.
Рассмотрим 1-ю задачу Порецкого[32]. Между птицами данного зоосада существует 5 отноше-
ний:
1. Птицы певчие - крупные или обладающие качеством Y.
130
2. Птицы, не имеющие качества Y - или не крупные, или не имеют качества Х.
3. Птицы певчие в соединении с крупными объединяют всех птиц с качеством Х.
4. Каждая не-крупная птица есть или певчая, или обладающая качеством Х.
5. Между птиц с качеством Х совсем нет таких птиц с качеством Y, которые не будучи певчими,
были бы крупные.
Определить, были ли птицы качества Х певчие или нет. Узнать то же в отношении птиц качества
Y.Найти, были ли среди качества Х птицы качества Y и наоборот.
Решение.
Пусть Х - птицы качества Х.
Y - птицы качества Y.
S - певчие птицы.
G - крупные птицы.
Тогда условие задачи будет представлено следующими рекурсивными уравнениями [32] :
1. s= (g+ у)s;
2. у’= (g’+x’)у’;
3. s+g+x’=1;
4. g’=(s+x)g’;
5. xуs’g=0.
Эти уравнения Порецкий через эквивалентность приводит к единичной форме:
1. g+у+s’=1
2. g’+x’+у=1
3. s+g+x’=1
4. s+g+x=1
5. x’+у’+s+g’=1
Нетрудно заметить, что система уравнений Порецкого представляет из себя сорит, содержащий
посылки общего характера. Посылки частно-утвердительного характера метод Порецкого обра-
батывать не может.
Кстати, используя силлогистические функторы Аху и Еху (см. главу 3), можно получить эти со-
отношения сразу, не прибегая к рекурсии и эквивалентности. Исходя из вышесказанного можно утвер-
ждать, что аналитическое представление силлогистических функторов Axy, Exy было впервые в мире
дано русским логиком Порецким П.С. Правда, ни Порецкий,ни мировая логика не заметили этого науч-
ного достижения, как не увидели и того,что позже к аналогичному выводу пришел и Л.Кэрролл[16].
Логика до сих пор прозябает в невежестве.

1.As(g+y) = (s(g+y)’)’ = s’+g+y = 1


2. Ay’(g’+x’) = (y’(g’+x’)’)’ = y+g’+x’ = 1
3. Ax(s+g) = (x(s+g)’)’ = x’+s+g = 1
4. Ag’(s+x) = (g’(s+x)’)’ = g+s+x = 1
5. Ex(ys’g) = (x(ys’g))’ = x’+y’+s+g’ = 1
Поэтому, видимо, целесообразно изучать решение логических уравнений после освоения силло-
гистики.
Полная логическая единица всей задачи определится как конъюнкция всех левых частей системы
логических уравнений. Эту рутинную операцию можно заменить на менее утомительную процедуру
построения дизъюнкции нулей. Получим систему:
1. g’у’s=0
2. gxу’=0
3. g’s’x=0
4. g’s’x’=0
5. gs’xу=0
Полный логический нуль системы равен дизъюнкции всех левых частей системы логических
уравнений. Проведём решение задачи Порецкого с использованием карты Карно, а потом сопоставим
результаты. Заполним карту Карно нулями в соответствии с нулевыми термами системы, а в оставшиеся
клетки впишем единицы. Тогда полная логическая единица всей задачи после минимизации примет
вид:
131
m=sу+gx’

xy 00 01 11 10
gs
00 0 0 0 0
01 0 1 1 0
11 1 1 1 0
10 1 1 0 0

Выпишем из карты Карно все единичные термы в виде таблицы истинности. По полученной таб-
лице построим таблицы для х=f1(g, s),y=f2(g,s) и у=f3(х). Если на каком-либо наборе функция прини-
мает значение как 0, так и 1, то в соответствующую клетку карты Карно вписываем 1. Если какой-
нибудь набор отсутствует, то для этого набора в карту Карно вносим значение j при комплементарной
логике или произвольное ( по аналогии с двузначной логикой)- при трёхзначной.

После минимизации получим для комплементарной логики системы уравнений:


x = is + jg’s’
у = g’s + ig + jg’s’
у = x + ix’ = (x + ix) + ix’ = x + i

Трёхзначной логике соответствует система уравнений:


x = is
у = g’ + ig + g’ + i
у = x + ix’ = x + 1

Результаты, полученные Порецким:


x = xs
у = gу + g’s
у=у+x
Сравнивая системы уравнений, можно предположить, что Порецкий фактически использовал
трёхзначную логику для решения логических задач: рекурсивное вхождение функции соответствует
комплементарному значению i . Причём он сделал это впервые в мире. Незначительные расхождения
результатов связаны с тем, что Порецкий непроизвольно доопределил у=f(g,s)нулём на наборе g’s’, что
менее логично с точки зрения минимизации. Результаты Порецкого имеют право на существование,
однако более строгим решением является система на основе комплементарной логики, поскольку она
фиксирует и те ситуации, которые не могут быть никогда. Например, в сложной системе управления

132
своевременное обнаружение таких состояний может предотвратить аварию или отказ. Поэтому можно
надеяться, что вычислительная техника (да и не только она, но и юриспруденция тоже) будет строиться
на трёхзначной [7] или комплементарной логике. Кстати, первая в мире троичная ЭВМ «Сетунь-70»
была создана в России Брусенцовым Н.П. (МГУ). Что касается 4-значной ЭВМ, то аппаратная реализа-
ция комплементарной логики на современной двоичной элементной базе весьма несложна.
Основываясь на примерах 1 и 2, составим алгоритм решения системы логических уравнений.

1.2. Алгоритм «Селигер»

1. Привести систему уравнений к нулевому виду (исходная система).


2. Заполнить карту Карно нулями в соответствии с термами левых частей исходной системы
уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ
полной единицы системы.
3. Произвести минимизацию совокупности единичных термов. Полученное соотношение пред-
ставляет МДНФ уравнения полной единицы системы.
4. Построить сокращённую (только для единичных термов) таблицу истинности уравнения пол-
ной единицы и выписать из неё все значения входных и выходных переменных в виде частных таблиц
истинности для искомых функций.
5. Произвести минимизацию искомых функций.
Алгоритм «Селигер» предполагает не только графическую, но и аналитическую минимизацию
методом обобщённых кодов [5]. Для систем уравнений с числом аргументов не более 10 графический
метод эффективнее. Минимизация в трёхзначной и комплементарной логиках для двоичных аргументов
несущественно отличается от минимизации в двузначной : нужно лишь проводить раздельное склеива-
ние по i, j, 1 или 0.
Пример 3
Рассмотрим 2-ю задачу Порецкого.
Относительно белья в комоде известны 2 положения:
1) часть его состояла из крупных предметов, всё же остальное было тонким, причём часть этого
последнего была поношена, прочая часть дёшево стоила;
2) всё бельё не тонкое, а также всё бельё не новое, но дорогое, принадлежало или к такому тон-
кому белью, которое не было ни крупно, ни дорого, или же к такому крупному белью, которое частью
было ново, частью же, будучи тонким, было дёшево.
Узнать, какое бельё было поношено: крупное или мелкое.

Решение.

Пусть а - тонкое, b - крупное, с - дорогое, d - новое бельё. Тогда имеем следующую систему
уравнний:
1. b + a(d’ + c’) = 1
2. (a’ + d’c) = ab’c’ + b(d + ac’)

В соответствии с алгоритмом «Селигер» получим:


1. a’b’ + b’cd = 0
2. a’b’ + a’d’ + cd’ + 0
Нулевые термы системы уравнений занесём в карту Карно, откуда получим функцию полной
единицы. По полученному соотношению строим сокращённую таблицу истинности и выписываем из
неё значения b и d в виде таблицы, из которой получаем логическую функцию. Из этой функции следу-
ет, что d не зависит от b, что совпадает с результатом Порецкого.

133
При решении логических уравнений иногда возникает необходимость в равносильных преобра-
зованиях. Эта проблема рассмотрена в [3] и решена путём введения понятий парного и непарного инди-
видов. Однако, чёткое определение этих понятий отсутствует.
Докажем раносильность преобразований с помощью традиционных методов. Пусть х, у - логиче-
ские функции, для которых справедливо уравнение х = у, приведённое через эквивалентность к виду.
( х = у ) = ху + х’у’
Требуется найти парный индивид z , т.е. такую функцию, добавление (удаление) которой к обеим
частям равенства х=у не нарушало бы его равносильности. Это требование записывается в виде уравне-
ния.
x+z=у+z
Но полученное выражение через формулу эквивалентности приводится к виду:
(x+z=у+z) = (x+z)(у+z)+(x+z)’(у+z)’ =
= xу+x’у’+z = (х=у)+z
Откуда следует, что z должен принадлежать исходному равенству, и парным индивидом для ис-
ходного уравнения х=у может быть любой терм уравнения или их комбинация, т.е. в данном случае
парными индивидами являются термы ху, х’у’, xу+х’у’.
х=у
х +ху = у + ху
х + х’у’ = у + x’у’
x + ху + x’у’ = у + xу + х’у’

Пример 4.
Пусть х+а = у+b . Найти парные термы (индивиды).
Решение.
Развернём исходное уравнение на основе формулы эквивалентности :
(x+a=у+b)=(х+а)(у+b)+(х+а)’(у+b)’ = xу+ау+bx+ab+a’b’x’у’
Из (20) соледует, что парными термами являются ху, ау, bx, ab, a’b’x’у’ и все их комбинации, ко-
торые более наглядно можно представить на карте Карно.

Любой набор термов из единичных фигур покрытия [5] карты Карно может быть парным инди-
видом. Определим общее количество парных индивидов n. Пусть u - количество переменных, входящих
в уравнение f1=f2. Тогда количество конституент единицы k определится следующими соотношениями.
Для чётного u: k = 1 + [2^(u/2) - 1]^2
Для нечётного u: k = 1+(2^[(u+1)/2]-1)
134
Эти соотношения легко выводятся из анализа карты Карно для уравнения х+а = у+b .Общее ко-
личество парных индивидов равно сумме биноминальных коэффициентов для бинома степени k без
единицы:
n = 2^k - 1
На основе метода, заложенного в алгоритме «Селигер», можно вывести соотношения для опера-
ций, обратных конъюнкции и дизъюнкции. Поскольку эти операции часто называются соответственно
логическими умножением и сложением, то логично обратным операциям присвоить имена логического
деления и логического вычитания. Впервые формулы для логического частного и логической разности
для троичной логики получены Н.П.Брусенцовым[5].
Если логическое уравнение вида z=f(x1, x2, x3 .....xi .....xn) решается относительно одной из своих
переменных, например, отыскивается обратная функция x1=fi(z, x2, x3 .....xi ..... xn), то можно восполь-
зоваться более простым алгоритмом «Селигер-С» решения задачи.
Алгоритм «Селигер-С».
1. Построить таблицу истинности для уравнения z=f(x1, x2 ..... xn).
2. По исходной таблице истиннсти построить таблицу истинности для обратной функции вида
x1=fi(z, x2 ......xn) простой перестановкой столбцов z и х1.
3. По полученной таблице истинности построить обратную функцию x1=fi(z, x2, ..... xn) и про-
вести её минимизацию.

Пример 5.
Дано: z = xу , v = x + у.
Найти: у = z/x , у = v-x .
Решение.
На основе формулы эквивалентности преобразуем исходную формулу z=xу. Тогда получим
(z=xу) = zxу + z’(x’+у’). В соответствии с пп.4, 5 алгоритма «Селигер» получим у = xz+ix’z’+jx’z.
Решим ту же задачу посредством алгоритма «Селигер-С». Исходные уравнения представим в ви-
де таблицы истинности. Тогда в соответствии с п.2 алгоритма «Селигер-С» построим частные таблицы
истинности для у= z/x и у=v-x.

xy z v
00 0 0
01 0 1
10 0 1
11 1 1

xz y=z/x
00 i
01 j
10 0
11 1

xv y=v-x
00 0
01 1
10 j
11 i

В соответствии с п.3 алгоритма «Селигер-С проведём минимизацию искомых функций в трёх-


значной и комплементарной логиках.
135
Для комплементарной логики получим:
у = z/x = xz + ix’z’ + jx’z
у = u-x = x’v + ixv + ixv’
Для трёхзначной логики уравнения имеют вид:
у = z/x = xz + ix’
у = v-x = x’v + ix
Однозначным и более строгим решением являются уравнения комплементарной логики.

Пример 5.

Дана система логических уравнений (В. С. Левченков «Булевы уравнения» – М.:1999 ):


ax = bc
bx = ac
Найти х.

Решение .
Напрашивается простой и “очевидный” метод решения: сложить левые и правые части уравнений
и сократить на общий множитель. В результате получим (a+b)x = (a+b)c. Откуда x = c, a = b. Ответ на-
стораживает, тем более, что что решение противоречит принципу отыскания парных индивидов, поэто-
му проверим его на основе разработанных алгоритмов.
. Действительно, сложить левые и правые части уравнений мы имеем право на основании прави-
ла (9П) Порецкого[35,стр,376]. Кстати, заодно и проверим это правило:
(9П) (e=c) → (e+b=c+b) = ec’+e’c+(e+b)(c+b)+(e+b)’(c+b)’ = ec’+e’c+ec+b+e’b’c’ = 1;
Да, Порецкий не ошибся. Однако относительно сокращения на общий множитель великий рус-
ский логик нам ничего не сообщил. А так хочется это сделать, тем более что всё очевидно, и обычная
алгебра нам не запрещает подобные операции. Проверим допустимость сокращения на общий множи-
тель с помощью алгоритма “Импульс”:
(cx=cy) → (x=y) = cx(cy)’+(cx)’cy+xy+x’y’ = cxy’+cx’y+xy+x’y’ ≠ 1.
Оказывается, что алгебра логики не разрешает нам этакие вольности
По алгоритму “Селигер” :
M = (ax = bc)( bx = ac)
M’ = (ax ⊕ bc) + ( bx ⊕ ac) = ab’x+ac’x+a’bc+bcx’+a’bx+bc’x+acx’+ab’c.
После занесения M’в карту Карно получим
M = a’b’+abcx+c’x’.
Откуда решение системы логических уравнений в соответствии с алгоритмом «Селигер» примет
вид:
x = abc+ia’b’+jc(ab’+a’b).
a = bcx+ic’x’+jb(cx’+c’x).
Заданная система уравнений может быть представлена графически при помощи скалярных диа-
грамм .

a ------==----=
b ------===----

136
c ----==-------- Заданная система уравнений может быть представлена графически при помощи скалярных диа-
грамм .

a ------==----=
b ------===----
c ----==--------
d --===--------

d --===--------

Подтвердим корректность метода на решении более прозрачной задачи.

Пример 6.

Дана система логических уравнений:


x=y
u=v
Найти решение системы.
Решение.
M = (x = y)(u = v) = (xy + x’y’)(uv + u’v’) = u’v’(x’y’ + xy)+uv(x’y’ + xy)
По алгоритму «Селигер» получим
y(x,u,v) = x(u = v)+j(u ⊕ v)
Для перехода к y(x) достаточно в таблице истинности для полной единицы М вынести столбец
значений y в графу функций и произвести синтез y(x) по вышеизложенным алгоритмам. В результате
мы подтвердим исходное уравнение системы
y(x) = x. Аналогично можно показать,что u(v) = v.

1.3. Отыскание обратных функций.

Используя алгоритм «Селигер» или «Селигер-С», можно получить полную систему обратных
функций для двоичной логики. В таблице приведена полная система функций двоичной логики.

xy z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15


00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Перестановкой столбцов у и z исходной таблицы строим таблицу истинности для полной систе-
мы обратных функций.

xz y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15


00 I i i i 0 0 0 0 1 1 1 1 j j j j
01 J j j j 1 1 1 1 0 0 0 0 i i i i
10 I 0 1 j i 0 1 j i 0 1 j i 0 1 j
11 J 1 0 i j 1 0 i j 1 0 i j 1 0 i

Из таблицы обратных функций получаем полную симметричную систему обратных функций y =


f1(x,z),а по алгоритму «Селигер» – y = f2(x):
у0 = iz’+jz y0 = j
у1 = xz+ix’z’+jx’z y1 = x+jx’
у2 = xz’+ix’z’+jx’z y2 = jx’
у3 = i(xz+x’z’)+j(xz’+x’z) y3 = ix+jx’
137
у4 = x’z+ixz’+jxz y4 = x’+jx
у5 = z y5 = 1
у6 = xz’+x’z y6 = x’
у7 = x’z+ixz+jxz’ y7 = x’+ix
у8 = x’z’+ixz’+jxz y8 = jx
у9 = xz+x’z’ y9 = x
у10= z’ y10 = 0
у11= x’z’+ixz+jxz’ y11 = ix
у12= i(xz’+x’z)+j(xz+x’z’) y12 = ix’+jx
у13= xz+ix’z+jx’z’ y13 = x+ix’ - импликация
у14= xz’+ix’z+jx’z’ y14 = ix’
у15= iz+jz’ y15 = i

Кстати, переход от левой системы уравнений к правой легко выполняется простой заменой z на 1
и z’ на 0. Аналогичные результаты мы получим, если таблицу прямых функций заменим скалярными
диаграммами, а из них по алгоритму ТВАТ выведем соотношения y = f(x). Самой примечательной из
полученных функций является y13 = x+ix’ – импликация. Из этого выражения легко про-
сматривается физический смысл импликации: из истинности x следует истинность y.
Решая 1-ю задачу Порецкого, мы заметили аналогию между рекурсивным вхождением функции
и комплементарным значением i. Резонно предположить, что такая аналогия существует между ком-
плементарным j и рекурсивным значением инверсии функции. Проверим это предположение на полу-
ченных одноаргументных функциях и убедимся в их обратимости с помощью формулы эквивалентно-
сти.

0) (y = j) ≡ (y = y')
M = (y=y') = yy'+y'y = 0
1) (y = x+jx') ≡ (y = x+x'y') = (y = x+y')
M = (y=x+y') = y(x+y')+y'(x+y')' = xy+y'x'y = xy
2) y = jx' ≡ x'y'
M = (y=x'y') = yx'y'+y'(x'y')' = y'(x+y) = xy'
3) y = ix+jx' ≡ xy+x'y'
M = (y=xy+x'y') = y(xy+x'y')+y'(xy'+x'y) = xy+xy' = x
4) y = x'+jx ≡ x'+xy' = x'+y'
M = (y=x'+y') = y(x'+y')+y'(x'+y')' = x'y
5) y = 1
M = (y=1) = y&1+y'&0 = y
6) y = x'
M = (y=x') = xy'+x'y
7) y = x'+ix ≡ x'+xy = x'+y
M = (y=x'+y) = y(x'+y)+y'(x'+y)' = y+xy' = x+y
8) y = jx ≡ xy'
M = (y=xy') = yxy'+y'(xy')' = x'y'
9) y = x
M = (y=x) = x'y'+xy
10)y = 0
M = (y=0) = y&0+y'&1 = y'
11)y = ix ≡ xy
M = (y=xy) = yxy+y'(xy)' = xy+y' = x+y'
12)y = ix'+jx ≡ x'y+xy'
M = (y=x'y+xy')=y(x'y+xy')+y'(x'y'+xy)=x'y+x'y' = x'
13)y = x+ix' ≡ x+x'y = x+y
M = (y=x+y) = y(x+y)+y'(x+y)' = y+x'y' = x'+y
14)y = ix' ≡ x'y
M = (y=x'y) = yx'y+y'(x'y)' = x'y+y' = x'+y'
138
15)y=i ≡ y
M = (y=y) = y&y+y'&y' = y+y' = 1
После обращения были получены все 16 прямых функций от двух аргументов без какого-либо
искажения. Это подтверждает правильность всех алгоритмов решения логических уравнений и кор-
ректность комплементарной логики.

Заключение.
1. Простота метода, заложенного в алгоритме «Селигер», позволяет решать логические уравне-
ния от большого числа переменных.
2. Минимизация функций в 3-значной и комплементарной логиках для двоичных аргументов не-
существенно отличается от традиционных методов двузначной логики.
3. Парные термы для равносильных преобразований определяются набором термов, полученных
на основе применения формулы эквивалентности к исходному логическому уравнению.
4. Применение метода при выводе обратных логических функций показало, что однозначное ре-
шение для двоичных аргументов может быть получено лишь в комплементарной логике.
5.Впервые получены все 16 обратных логических функций для двух аргументов.
6. Комплементарная логика при аппаратной реализации позволяет значительно упростить реше-
ние проблемы самодиагностирования вычислительной техники: например появление j на любом
выходе может свидетельствовать о сбое или отказе.

Глава вторая

2.1.Законы логики суждений

Автор не открывает здесь ничего нового, но, излагая данный материал, хочет показать всю про-
стоту аналитических выводов данных законов, следовательно, и их никчёмность: незачем заучивать
полтора десятка правил, если доказательство столь примитивно. Всё дело в том, что в классической
логике доказательство построено на громоздком аппарате таблиц истинности и словесной казуисти-
ке[9,13,22,28].Трудно назвать грамотным такое решение проблемы. Инженерная логика использует бо-
лее совершенный инструмент для анализа и синтеза законов[26].

Алгоритм «Импульс».
Алгоритм инженерного анализа законов логики суждений чрезвычайно прост:
1)произвести замену всех знаков импликации на символы дизъюнкции в соответствии с извест-
ной формулой x → y = x’ + y;
2)привести полученное выражение к ДНФ;
3)занести ДНФ в карту Карно и убедиться, что она вся покрыта единицами – это свидетельствует
о истинности проверяемого закона или суждения.

Воспользуемся перечнем законов из[9] для апробации алгоритма «Импульс».


1.Закон исключённого третьего: p или неверно, что p.
В переводе на язык логики этот закон выглядит так: p + p’ = 1.Это тривиальное равенство, не тре-
бующее доказательства.
2.Закон непротиворечивости: неверно, что [р и не р].
На языке логики:p & p’ = 0. Это равенство верно по определению.
3.Закон двойного отрицания: если [не (не р)], то р.
Необходимо доказать, что (p’)’ → p = 1.Доказательство основано на двойном отрицании и им-
пликации: (p’)’ → p = p → p = p’ + p = 1.
4.Обратный закон двойного отрицания: если р, то [не (не р)].
p → (p’)’= p’ + p = 1.
5.Закон контрапозиции: если (если р, то q), то [если (не q), то(не р)].
139
(p → q) → (q’ → p’) = (p’ + q) → (q + p’) = pq’ + p’ + q = 1.
6.Законы, характеризующие конъюнкцию.
6.1.Если (р и q), то (q и р): pq → qp = (pq)’ + pq = 1.
6.2.Если (р и q),то р: (pq) → p = (pq)’ + p = p’ + q’ + p = 1.
6.3.Если р и q, то q: (pq) → q = (pq)’ + q = p’ + q’ + q = 1.
6.4.Если р, то [если q, то (p и q)]: p → (q → pq) = p’ + q’ + pq = 1.
7.Законы импликативных силлогизмов.
7.1.Если [(если р, то q) и (если р,то r)], то [если р, то(q и r )].
[(p → q)(p → r)] → (p → qr) = [(p’ + q)(p’ + r)]’ + p’ + qr =
= (p’+qr)’+p’+qr = 1.
7.2.Если [(если р, то q) и (если r,то s)],то [если(р и r),то (q и s)].
[(p→q)(r→s)] → (pr→qs) = [(p’+q)(r’+s)]’+p’+r’+qs = pq’+rs’+p’+r’+qs = 1.
7.3.Если [(если р, то q) и (если q, то r)],то (если р, то r).
[(p→q)(q→r)] → (p→r) = pq’+qr’+p’+r = 1.
7.4.Если [(если р, то q) и (если r, то q)],то [если (р или r), то q].
[(p→q)(r→q)] → [(p+r) →q] = pq’+rq’+p’r’+q = 1.
8.Законы, характеризующие дизъюнкцию.
8.1.Если (р или q), то (q или p).
(p+q) → (q+p) = (p+q)’+(p+q) = 1.
8.2.Если (р или q), то (если не р, то q).
(p+q) → (p’→q) = p’q’+p+q = 1.
Как видит читатель, такие законы можно «изобретать» и доказывать десятками. Во всех выводах
применялась аналитическая минимизация логических функций. Однако значительно проще для этой
цели использовать карты Карно.

Алгоритм «Импульс-С»
Алгоритм инженерного синтеза импликативных силлогизмов по заданным посылкам немногим
отличается от предыдущего алгоритма:
1)найти полную единицу системы М посылок, заменив импликацию по формуле x → y = x’ + y;
2)привести полученное выражение к ДНФ;
3)подставляя в полученное выражение необходимые аргументы и отбрасывая лишние, т.е. заме-
няя их логической единицей[32], выводим соответствующие заключения как функции интересующих
нас аргументов. Если в результате подстановки будет получена единица, то однозначного заключения
не существует.

Задача 2.1.

Рассмотрим задачу из [9] о крокодиле. Когда крокодил похитил ребёнка одной египтянки и та
попросила его не есть ребёнка, то крокодил ответил: " Я верну тебе ребёнка, если ты отгадаешь, что я с
ним сделаю". Найти ответ египтянки.

Решение.

В [9] даётся пространное, на 5 страницах, словесное толкование различных ситуаций. Решим эту
задачу аналитически.
Обозначим через х - "крокодил съест ребёнка", через у - ответ египтянки: " Ты съешь ребёнка".
Тогда условие крокодила будет описано следующей формулой:
[(x∼y)→x'][(x⊕ y)→x] = ((x⊕ y)+ x’)(( x∼y)+x) = (xy'+x'y+x')(x'y'+xy+x) = (x'+y')(x+y') = y'
Следовательно, условие крокодила непротиворечиво лишь при ответе: " Ты не съешь ребёнка".
Значит, египтянка должна ответить: " Ты съешь ребёнка" - тогда крокодил умрёт от противоречий.
Аналогично решается задача о путнике на мосту, которого за правдивый ответ должны повесить,
а за ложный - утопить.

Задача 2.2.
140
В тёмной комнате находятся 3 мудреца. На столе лежат 2 белых и 3 чёрных шляпы. Каждый
мудрец надевает наугад одну из шляп, затем все "кильватерной колонной" выходят в освещённое по-
мещение. 3-й мудрец видит шляпы 1-го и 2-го мудрецов, 2-й - только шляпу 1-го. На вопрос о цвете
шляп 3-й и 2-й мудрец ответили : " Не знаю" . Что сказал 1-й мудрец ?

Решение.

Пусть х1, х2, х3 означают, что чёрные шляпы надеты соответственно 1-м,2-м и 3-м мудрецами.
Ответ 3-го мудреца означает, что на на 1-м и 2-м - не белые шляпы
(х1' х2')'. Если бы на первом мудреце была белая шляпа, то 2-й по ответу 3-го определил бы, что на нём
чёрная шляпа . Т. к. 2-й мудрец не нашёл ответа, то имеем (х1' х2)'. В итоге получим: (х1' х2')'(х1' х2)' =
(х1 + х2)(х1 + х2') = х1. Значит, на первом мудреце чёрная шляпа.

Задача 2.3.
В [32,стр.284] приводится закон замкнутых (гауберовых) систем. Проверим его состоятельность.
По алгоритму “Импульс” получим следующие соотношения.
М = (a→b)(c→d)(e→f)(b→d’)(d→f’)(f→b’)(a+c+e) → (a’→b’)(c’→d’)(e’→f’) =
= (a’+b)(c’+d)(e’+f)(b’+d’)(d’+f’)(f’+b’)(a+c+e) → (a+b’)(c+d’)(e+f’) =
= ab’+cd’+ef’+bd+df+bf+a’c’e’+ad’e+ad’f’+b’d’e+b’d’f’+b’ce+b’cf’+acf’ = 1.
Таким образом, мы доказали истинность закона. Однако проверим его физическую реализуе-
мость. Ведь совершенно ясно, что (a→b) → (a’→b’) ≠ 1. Поэтому проверим, какие выводы на самом
деле следуют из заданных посылок. По алгоритму “Импульс - C” найдём полную единицу системы, а из
неё сможем получить любые интересующие нас функции от необходимых аргументов.
М = (a→b)(c→d)(e→f)(b→d’)(d→f’)(f→b’)(a+c+e) = (a’+b)(c’+d)(e’+f)(b’+d’)(d’+f’)(f’+b’)(a+c+e)
M’ = ab’+cd’+ef’+bd+df+bf+a’c’e’
После занесения M’ в карту Карно и заполнения оставшихся пустыми клеток карты единицами
получим:
M = a’b’c’d’ef+a’b’cde’f’+abc’d’e’f’, откуда
M(a,b) = a’b’+ab = (a ∼ b)
M(c,d) = c’d’+cd = (c ∼ d)
M(e,f) = e’f’+ef = (e ∼ f)
Это отнюдь не согласуется с выводами Гаубера. Для большей наглядности проиллюстрируем
закон замкнутых систем скалярными диаграммами. С целью облегчения построения диаграмм выведем
ещё некоторые зависимости между аргументами.
M(a,c) = a’c’+a’c+ac’ = a’+c’
M(a,e) = a’+e’
M(c,e) = c’+e’
В главе, посвящённой базису силлогистики, будет показано, что Exy = x’+y’.
Поэтому
M(a,c) = a’c’+a’c+ac’ = a’+c’ = Eac
M(a,e) = a’+e’ = Eae
M(c,e) = c’+e’ = Ece
a =====----------------
b =====----------------
c --------=====--------
d --------=====-------
e -----------------====
f -----------------====
Графические результаты подтверждают наши аналитические выкладки. Функции импликации и
равнозначности не идентичны. Как будет показано в дальнейшем, импликация аналогична силлогисти-
ческому общеутвердительному функтору. Поэтому результаты Гаубера некорректны. Суть его ошибки
заключается в том, что были заданы очень жёсткие исходные уловия, которые могут быть выполнены
лишь с некоторыми ограничениями.
Задача 2.4.
141
В [28,стр. 432] приведена аксиоматическая система Фреге. Непонятно, почему эта система носит
название аксиоматической. Аксиома – это исходное положение, принимаемое без доказательств при
дедуктивном построениее теории(“Толковый математический словарь” – М.:Рус.яз.,1989 – 244с.). До-
кажем все “аксиомы” с помощью алгоритма “Импульс”.
1. M = a → (b → a) = a’+b’+a = 1
2. M = (c → (a→b)) → ((c→a) → (c→b)) = (c’+a’+b) → (a’c+c’+b) =
(c’+a’+b) → (a’+c’+b) = 1
3. M = (a→(b→c)) → (b→(a→c)) = (a’+b’+c) → (b’+a’+c) = 1
4. M = (a→b) → (b’→ a’) = (a’+b) → (a’+b) = 1
5. a’’ → a = a’+a = 1
6. a → a’’ = a’+a = 1
Таким образом, мы подтвердили корректность всех “аксиом “ (теорем ? ) Фреге.
Арнольд Гейлинкс – бельгийский логик и философ(1625-1669гг) доказал правила Де Моргана:
6. ab → a+b
7. (a → b)’ → (b’ → a’)’
8. (b→c)(a→c)’ → (a→b)’
9. (a→b)(a→c)’ → (b→c)’
10. ab’ → (a→b)’
Докажем эти правила современными методами(алгоритм “Импульс”).
ab → a+b = (ab)'+a+b = a'+b'+a+b = 1
11. (a → b)' → (b'→a')' = (a → b)+(b+a')' = (a'+b)+(a'+b)' = 1
(b→c)(a→c)' → (a→b)' = bc'+a'+c+ab' = 1
(a→b)(a→c)' → (b→c)' = ab'+a'+c+bc' = 1
ab' → (a→b)' = (a'+b)+(a'+b)' = 1
Позднеримский философ Боэций (480-524) [28, стр. 100] выявил следующее соотношение: (x →
y) ≡ (x’y’ ⊕ xy ⊕ x’y). Классическая логика доказывает этот закон с помощью таблиц истинности[32,
стр. 100], что и громоздко, и непрофессионально. С помощью алгоритма “Импульс” доказательство ук-
ладывается в две строчки.

2.2. Практикум по логике суждений.

Прекрасным примером применения логики суждений для доказательства законов в различных


областях науки являются задачи, предложенные Сергеем Леонидовичем Катречко(С.Л.Катречко. Вве-
дение в логику. Программа курса. – М.:УРАО, 1997). Речь идёт о таких науках как математика, физика,
химия, грамматика, богословие и др. Сам автор решает эти задачи на основе рассуждений. Однако алго-
ритм “Импульс” существенно упрощает выводы.

Задача 2.5.
Если равнодействующая всех сил, действующих на движущееся тело, не равна 0, то оно движется
неравномерно или непрямолинейно, так как известно, что если эта равнодействующая равна 0, то тело
движется раномерно и прямолинейно.
Решение.
Проверим это утверждение. Введём следующие обозначения:
X – равнодействующая всех сил равна 0,
Y – движение равномерно,
Z - движение прямолинейно.
Тогда по алгоритму “Импульс” получим:
(x → yz) → (x’ → (y’+z’)) = (x’+yz) → (x+y’+z’) = x(y’+z’)+x+y’+z’ =
= x+y’+z’ ≠ 1.
Т.е. мы доказали несостоятельность данного утверждения.

Задача 2.6.
142
Если все посылки истинны и рассуждение правильно, то заключение правильно. В данном рас-
суждении заключение ложно. Значит, или рассуждение неправильно, или не все посылки истинны.
Решение.
X – посылки истинны,
Y – рассуждение правильно,
Z - заключение верно.
(xy → z)z’ → (y’+x’) = (x’+y’+z)z’ → (y’+x’) = xy+z+y’+x’ = 1.

Задача 2.7.
Если в суффиксе данного полного прилагательного или причастия пишется два н, то они пишут-
ся и в соответствующем наречии. Неверно, что в суффиксе данного наречия пишется два н. Следова-
тельно, в суффиксе полного прилагательного или причастия, из которого образовалось наречие, пишет-
ся одно н.
Решение.
X – в причастии два н,
Y – в полном прилагательном два н,
Z – в наречии два н.
((x+y) → z)z’ → x’y’ = (x’y’+z)z’ → x’y’ = x’y’z’ → x’y’ = x+y+z+x’y’ = 1.
Мы доказали даже более сильное утверждение.

Задача 2.8.
Бог или бессилен предотвратить зло, или он не желает предотвращать его(зло существует на Зем-
ле). Если бог всемогущ, то неверно, что он бессилен предотвратить зло. Если бог всеблаг, то неверно,
что он не желает предотвращать зло. Следовательно, неверно, что бог всемогущ и всеблаг.
Решение.
X – бог всемогущ,
Y – бог всеблаг,
U – зло существует,
V – бессилен против зла,
W – желает предотвратить зло.
u(u → (v+w’))(x → v’)(y → w) → (xy)’ = u(u’+v+w’)(x’+v’)(y’+w) → (xy)’ =
= u’+uv’w+xv+yw’+x’+y’ = 1.
Таким образом, мы чисто аналитически(математически) доказали, что бог не всемогущ и не все-
благ.

Задача 2.9.
Если каждый раз в полдень солнце находится в зените и сейчас полдень, то сейчас солнце нахо-
дится в зените.
Решение.
X – сейчас полдень,
Y – солнце в зените.
(x → y)x → y = (x’+y)x → y = xy → y = x’+y’+y = 1.
Однако обратное утверждение неверно:
(x → y)y → x = (x’+y)y → x = y → x ≠ 1.
Это заключение не согласуется со здравым смыслом. Ошибка вызвана тем, что X и Y связаны от-
ношением эквивалентности, а не следования. Поэтому формальный вывод должен выглядеть так:
(x ≈ y)x → y = xy → y = x’+y’+y = 1
(x ≈ y)y → x = xy → x = x’+y’+x = 1

Задача 2.10.
Если нельзя получить воду, то неверно, что имеется в наличии водород и оксид магния. Если
имеется углерод, но углекислого газа получить не удалось, то не было в наличии кислорода. Если име-
ется углекислый газ и вода, то можно получить углекислоту. Можно ли получить углекислоту, если
имеется в наличии оксид магния, кислород, водород и углерод.
143
Решение.
X – нет воды,
Y – есть водород и оксид магния,
Z – есть углерод,
U – есть углекислый газ,
V – есть кислород,
W – есть углекислота.
(x → y’)(zu’ → v/)(ux’ → w) → (yvz → w) = (x’+y’)(z’+u+v’)(u’+x+w) → (y’+v’+z’+w) =
xy+zu’v+ux’w’+y’+v’+z’+w = 1.

Задача 2.11.(18)
Он сказал, что придёт, если не будет дождя.(а на его слова можно полагаться). Но идёт дождь.
Значит, он не придёт.
Решение.
X – он придёт,
Y – нет дождя.
(y → x)y’ → x’ = (y’+x)y’ → x’ = y’ → x’ = y+x’ ≠ 1.

Задача 2.12.(19)
Джонс утверждает, что не встречал этой ночью Смита. Если Джонс не встречал этой ночью Сми-
та, то либо Смит был убийцей, либо Джонс лжёт. Если Смит не был убийцей, то Джонс не встречал его
этой ночью, а убийство было совершено после полуночи. Если убийство было совершено после полу-
ночи, то либо Смит был убийцей, либо Джонс лжёт. Следовательно, убийцей был Смит.
Решение.
X – Джонс не встречал Смита,
X’ – Джонс лжёт, т.е. он встречал этой ночью Смита,
Y – Смит – убийца,
Z – убийство было совершено после полуночи.
(x → ( y+x’))(y’ → xz)(z → (y+x’)) → y = (x’+y)(y+xz)(z’+y+x’) → y =
xy’+y’(x’+z’)+xy’z+y = 1.

Задача 2.13.(23)
Если элементарная частица имеет античастицу или не относится к числу стабильных, то она име-
ет массу покоя. Следовательно, если элементарная частица не имеет массы покоя, то она относится к
числу стабильных.
Решение.
X – наличие античастицы,
Y – частица нестабильна,
Z – наличие массы покоя.
((x+y) → z) → (z’ → y’) = (x’y’+z) → (z+y’) = (x+y)z’+z+y’ = xz’+yz’+z+y’ = 1.

Задача 2.14.(26)
Прямые a и b или параллельны, или пересекаются, или скрещиваются. Если прямые a и b лежат
в одной плоскости, то они не скрещиваются. Прямые a и b лежат в одной плоскости и не пересекаются.
Следовательно, прямые a и b параллельны.
Решение.
X – прямые параллельны,
Y – прямые пересекаются,
Z – прямые скрещиваются,
U – прямые лежат в одной плоскости.
(xy’z’+x’yz’+x’y’z)(u → z’)uy’ → x = (xy’z’+x’yz’+x’y’z)(u’+z’)uy’ → x =
(xy’z’+x’yz’+x’y’z)’+uz+u’+y+x = 1.
Эта задача может быть упрощена за счёт того, что z = (x+y)’:
(u → (x+y))uy’ → x = (u’+x+y)uy’ → x = xy’u → x = x’+y+u’+x = 1
144
Дополнительно решим ещё одну задачу из геометрии:
M = (y → u)y’ = (y’+u)y’ = y’
M(u) = 1, т.е. нельзя сказать ничего определённого относительно плоскостей в том случае, когда
прямые не пересекаются.

Задача 2.15.(28)
Если философ – дуалист, то он не материалист. Если он не материалист, то он диалектик или ме-
тафизик. Он не метафизик. Следовательно, он диалектик или дуалист.
Решение.
X – дуалист,
Y – материалист,
Z – диалектик,
U – метафизик.
(x → y’)(y’ → (z+u))u’ → (z+x) = (x’+y’)(y+z+u)u’ → (x+z) = xy+u’y’z’+u+x+z ≠ 1.
Следовательно, заключение неверно. А каков же правильный ответ? По алгоритму «Импульс –
С» получим следующие результаты.
M = (x → y’)(y’ → (z+u))u’ = (x’+y’)(y+z+u)u’.
M’ = xy+u’y’z’+u.
Из карты Карно получим M = u’y’z+u’x’y. Откуда выводятся правильные заключения: f1(x,z) =
x’+z ; f2(y,z) = y+z.

Задача 2.16.(34)
Перед последним туром футбольного чемпионата сложилась турнирная ситуация, позволяющая
утверждать следующее. Если «Динамо» проиграет свой последний матч, то в случае выигрыша «Спар-
така» он станет чемпионом. Если же «Спартак» выиграет матч и станет чемпионом, то «Торпедо» зай-
мёт второе место. В последнем туре первыми стали известны результаты встреч с участием «Динамо» и
«Спартака»: «Динамо» проиграло, а «Спартак» выиграл. Можно ли в этом случае, не дожидаясь резуль-
татов других встреч, утверждать, что «Спартак» стал чемпионом, а «Торпедо» заняло второе место?
Решение.
A – выиграет «Динамо»,
B – выиграет “Спартак”,
C – “Спартак” – чемпион,
D – “Торпедо” на втором месте.
(a’b → c)(bc → d)a’b → cd = ( a+b’+c)(b’+c’+d)a’b +cd = 1

Задача 2.17.(37)
Докажите следующую теорему: если прямая l, принадлежащая плоскости P, не перпендикулярна
прямой n, то она не перпендикулярна проекции m прямой n на плоскость P, если верна следующая тео-
рема: если прямая l принадлежит плоскости P и перпендикулярна проекции m прямой n на плоскость P,
то прямая l перпендикулярна прямой n.
Решение.
X – l перпендикулярна m,
Y – l перпендикулярна n.
(x → y) → (y’ → x’) = (x’+y) → (y+x’) = 1.

Задача 2.18.(38)
Известно, что, если данный многоугольник правильный, то в него можно вписать окружность.
1. Данный многоугольник правильный, следовательно, в него можно вписать окружность.
2. В данный многоугольник нельзя вписать окружность, следовательно, он неправильный.
3. В данный многоугольник можно вписать окружность, следовательно, он правильный.
Проверить эти утверждения.
Решение.
X – многоугольник правильный,
145
Y – в многоугольник можно вписать окружность.
1. (x → y)x → y = (x’+y)x → y = xy → y x’+y’+y = 1.
2. (x → y)y’ → x’ = (x’+y)y’ → x’ = x’y’+x’ x+y+x’ = 1.
3. (x → y)y → x = (x’+y)y → x = y → x y’+x ≠ 1.

Задача 2.19.(39)
Если число делится на 4, то оно чётное. Число – чётное. Значит,оно делится на 4.
Решение.
X – число делится на 4,
Y – число чётное.
(x → y)y → x = (x’+y)y → x = y → x = y’+x ≠ 1.

Задача 2.20.
Если целое число больше 1, то оно простое или составное. Если целое число больше 2 и чётное,
то оно не является простым. Следовательно, если если целое число больше 2 и чётное, то оно состав-
ное(здесь присутствует скрытая посылка).
Решение.
x – число больше 1
y – число простое
z – число составное
u – число больше 2 и чётное.
Скрытая посылка зыключена в том, что число может быть или простым, или составным, третьего
не дано,т.е. y’ = z.
(x → (y+z))(u → y’)(y’=z) → (u → z) = (x’+y+z)(u’+y’)(y’=z) → (u’+z ) =
xy’z’+uy+yz+y’z’+u’+z = 1

Задача 2.21.
Если бы он не пошёл в кино, то он не получил бы двойки. Если бы он подготовил домашнее за-
дание, то не пошёл бы в кино. Он получил двойку. Значит, он не подготовил домашнее задание.
Решение.
x – пошёл в кино
y – получил двойку
z – подготовил домашнее задание.
(x’ → y’)(z → x’)y → z’ = (x+y’)(z’+x’)y → z’ = x’y+xz+y’+z’ = 1.

Задача 2.22.
Я люблю Бетти или я люблю Джейн. Если я люблю Бетти, то я люблю Джейн. Следовательно, я
люблю Джейн.
Решение.
х – люблю Бетти
у – люблю Джейн
(x+y)(x → y) → y = (x+y)(x’+y) → y = y → y = y’+y = 1.

Задача 2.23.
Если аргументы некоторого рассуждения истинны, а его тезис не является таковым, то рассуж-
дение не является правильным. Данное рассуждение правильно и его аргументы истинны. Следователь-
но, его тезис является истинным.
Решение.
X – аргументы верны
Y – тезис верен
Z – рассуждение верно.
(xy’ → z’)xz → y = (x’+y+z’)xz → y = xyz → y = x’+y’+z’+y = 1.

Задача 2.24.
146
Докажите, что если натуральное число оканчивается на 0 и сумма цифр кратна 3, то само это
число кратно 15. Используйте при этом следующие посылки: если число оканчивается на 0, то оно
кратно 5; если сумма цифр числа кратна 3, то число кратно 3; если число кратно 3 и кратно 5, то оно
кратно 15.
Решение.
X – число кратно 5
Y – число кратно 3
Z – число кратно 15
U – число оканчивается на 0
V – сумма цифр числа кратна 3.
(u → x)(v → y)((xy → z) → (uv → z) = (u’+x)(v’+y)(x’+y’+z) → (u’+v’+z) =
ux’+vy’+xyz’+u’+v’+z = 1.

Задача 2.25.
Если студент знает логику, то он сможет проверить выводимость формулы из посылки. Если
студент не знает логику, но он прослушал курс "Логика" и освоил математический анализ в логике суж-
дений, то он также сможет установить выводимость формулы. Значит, если студент или знает логику,
или прослушал курс "Логика" и освоил матанализ в логике суждений, то он может проверить выводи-
мость формулы из посылок.
Решение.
X – знает логику
Y – сможет проверить выводимость формулы из посылки
Z – прослушал курс логики и освоил матанализ в логике суждений.
(x → y)(x’z → y) → ((x+x’z) → y) = (x’+y)(x+z’+y) → (x’z’+y) =
xy’+x’zy’+x’z’+y = 1.

Задача 2.26.
Если каждое действительное число есть алгебраическое число, то множество действительных
чисел счётно. Множество действительных чисел несчётно. Следовательно, не каждое действительное
число есть алгебраическое число.
Решение.
X – действительное число
Y – алгебраическое число
Z – счётное множество чисел.
((x → y) → (x → z))(x → z)’ → (x → y)’ = ((x’+y) → (x’+z))(x’+z)’ → (x’+y)’ =
(xy’+x’+z)(x’+z)’ → xy’ = (x’+y)xz’+x’+z +xy’ = xyz’+x’+z+xy’ = 1.

Задача 2.27.
Курс акций падает, если процентные ставки растут. Большинство владельцев акций разоряется,
если курс акций падает. Следовательно, если процентные ставки растут, то большинство владельцев
акций разоряется.
Решение.
X – курс акций падает
Y – процентные ставки растут
Z – акционеры разоряются.
(y → x)(x → z) → (y → z) = (y’+x)(x’+z) → (y’+z) = x’y+xz’+y’+z = 1

Задача 2.28.
Если капиталовложения останутся постоянными, то возрастут правительственные расходы или
возникнет безработица. Если правительственные расходы не возрастут, то налоги будут снижены. Если
налоги будут снижены и капиталовложения останутся постоянными, то безработица не возрастёт. Сле-
довательно, правительственные расходы не возрастут.
Решение.
X – капиталовложения постоянны
147
Y – правительственные расходы растут
Z – растёт безработица
U – снижаются налоги.
(x → (y+z))(y’ → u)(ux → z’) → y’ = (x’+y+z)(y+u)(u’+x’+z’) → y’ =
xy’z’+y’u’+xzu+y’ ≠ 1.
Следовательно, заключение неверно.

Задача 2.29.
Проверьте правильность рассуждения средствами логики суждений: "Если человек осуждён су-
дом, то он лишается избирательных прав. Если человек признан невменяемым, то он также лишается
избирательных прав. Следовательно, если человек обладает избирательным правом, то он здоров и не
был осуждён судом".
Решение.
X – осуждён судом
Y – лишён избирательных прав
Z – невменяем.
(x → y)(z → y) → (y’ → x’z’) = (x’+y)(z’+y) → (y+x’z’) =
xy’+zy’+y+x’z’ = 1.

Задача 2.30.
Если Джон - автор этого слуха, то он глуп или беспринципен. Следовательно, если Джон не глуп
или не лишён принципов, то он не является автором этого слуха.
Решение.
X – Джон – автор слуха
Y – Джон глуп
Z – Джон беспринципен.
(x → (y+z)) → ((y’+z’) → x’) = (x’+y+z) → (yz+x’) = xy’z’+yz+x’ ≠ 1.

Глава третья

Базисы силлогистики.

Современная логика суждений давно вызывает неудовлетворен-


ность как своим несоответствием Аристотелевой логике[1],так и
нечеткостью описания с точки зрения математической логики. Введе-
ние кванторов не разрешило этих проблем.
Рассмотрим вначале логику непосредственных умозаключе-
ний[14]. Для выражения любого умозаключения или посылки достаточно
двух конструкций (в скобках представлена краткая форма записи суж-
дений):
1)Все X суть Y(Axy);
2)Некоторые X суть Y(Ixy);
Однако традиционно в логике используются 4 базовых сужде-
148
ния (силлогистических функтора):
1)Все X суть Y(Axy);
2)Ни один X не есть Y(Exy);
3)Некоторые X суть Y(Ixy);
4)Некоторые X не суть Y(Oxy).
Из диаграмм Венна с помощью таблиц истинности на основе классического синтеза логических
функций могут быть тривиально получены следующие соотношения [23]:
Axy = (xy')' = x'+y
Exy = (xy)'= x'+y'
Здесь и далее апостроф означает отрицание.
Эти соотношения не вызывают сомнений, тем более, что подтверждение тому можно найти при вни-
мательном прочтении Порецкого П.С.[32]. Используя метод рекурсии по – Порецкому для описания
общеутвердительного функтора, получим следующий результат:
Axy = (x = xy) = xy + x’(xy)’ = xy + x’(x’ + y’) = xy + x’ = x’ + y. Аналогично выводится и соотношение
для Exy.
Что касается суждений Ixy,Oxy,то здесь сложилась спорная ситуация. Во-первых, ни в одном
источнике нет аналитического представления силлогистического функтора (квантора[37]) Ixy, т.е. фак-
тически нет аналитического описания базиса силлогистики. Это и понятно: для решения данной задачи
требуется многозначная логика. В классической силлогистике все авторы стремились использовать дву-
значную логику. Во-вторых, здравый смысл и булева алгебра утверждают, что Oxy =(Ixy)', а в тради-
ционной логике[14] Oxy = (Axy)' и Ixy = (Exy)', что отнюдь не бесспорно и не убедительно.Однако при-
мем на веру эти формулы, поскольку именно их рекомендуют для запоминания студентам.
На этом основании мы получим следующие формулы для Ixy,Oxy:
Ixy = (Exy)' = xy
Oxy = (Axy)' = xy'
Прежде всего эти соотношения противоречат друг другу. По определению "Некоторые Х суть Y" и
"Некоторые Х не суть Y" взаимно инверсны, т.е. Ixy = (Oxy)',Oxy = (Ixy)'. А из приведённых формул
следует эквивалентность суждений "Некоторые Х не суть Y" и "Некоторые Х сутьне-Y", что совсем
не соответствует действительности. Кроме того,частноотрицательное суждение вообще не имеет
самостоятельного
смысла, поскольку является тривиальным отрицанием частноутвердительного высказывания.
Выборочная проверка при помощи кругов Эйлера "правильных" модусов EIO 1-й - 4-й фигур, EAO,
OAO 3-й фигуры и AAI, EAO 4-й фигуры также подтвердила всю несостоятельность соотношений
Ixy, Oxy.Аналитический метод контроля силлогизмов дал такие же результаты.
Неудовлетворенность трактовкой частных суждений высказывалась еще русским логиком Василье-
вым Н.А.[8]:"...частное суждение представляет для логики значительные трудности, употребление
его полно двусмысленности".
Попытаемся прояснить содержательный смысл соотношения (3), из которого следует,что без-
условно существуют лишь ситуация x=y=1.Круги Эйлера не в состоянии отобразить такое
суждение. Поскольку логические аргументы представляют собой скаляры, максимальная длина
которых не может превышать "полной единицы" (универсума), т.е. x+x'=1, введем понятие ска-
лярных диаграмм и заменим ими круги Эйлера. Необходимо отметить, что впервые геометриче-
скую интерпретацию (интервальный метод изображения множеств ) силлогистических функторов
применил Иоганн Генрих Ламберт(1728-1777гг. ), немецкий философ, математик, физик и астро-
ном . Однако, он допустил ряд ошибок, главной из которых явилось отсутствие фиксации универ-
сума. Эта ошибка на несколько столетий похоронила идею математической силлогистики.
x
======
y
======
Ixy = xy

Из рисунка видно, что такая "логика" не имеет никакой практической ценности. "Бытовой" логике,
вероятно, более соответствует нижеприведённая скалярная диаграмма.
149
x' x
----------=======
y y'
a)=======----------
y' y y'
b)-----======-------
Ixy = x+y+ix'y'.

Скалярная диаграмма не только определяет суждение Ixy как пересечения множеств X и Y, но и


отмечает различные ситуации этого пересечения. Все аналитические соотношения получены на основе
четырёхзначной комплементарной логики.
B аристотелевой силлогистике под Ixy понимается любая комбинация понятий x,y, лишь бы пересе-
чение этих понятий не было пустым[1,35]. Аристотелевой трактовке этого суждения соответствуют
следующие скалярные диаграммы.

x' x
----------=======
y y'
a)=======----------
y' y y'
b)-----====-----------
y' y
c)------==========
y' y
d)---------------=====
y' y
e)----------========
Ixy = xy+i(xy)'.

Вновь введенные скалярные диаграммы отличаются от диаграмм Ламберта[35] следующими прин-


ципиальными характеристиками:
1)наличие фиксации универсума;
2)размещение силлогистического функтора Еxy на двух, а не на
одном уровне;
3)возможность "дробного" (разрывного) представления понятия в
пределах универсума;
4)возможность графической и аналитической(4-значной компле-
ментарной) интерпретации результатов анализа и синтеза
силлогизмов.
Наличие даже одного из перечисленных отличий привело к переименованию кругов Эйлера в
диаграммы Венна.
С аристотелевским определением частного суждения Ixy не согласны многие логики. В работе [8]
автор утверждает,что "научное употребление слова "некоторые" совпадает с общеразговорным", т.е. с
бытовым,а не аристотелевским. Кроме того,Васильев Н.А. считает,что Ixy и Oxy должны считаться
одним суждением. Он также заявляет: "В математике так называемые частные суждения сводятся ... к
общим, и она прекрасно обходится без этого нелепого в совершенной науке слова "некоторые". К это-
му же должна стремиться и всякая наука... Частное суждение нужно рассматривать вовсе не как какой-
то вывод из общего суждения, а как особый вполне самостоятельный вид суждения, вполне координи-
рованный с общими суждениями, исключающий их и исключаемый любым из них". С точкой зрения
150
такого известного ученого трудно не согласиться.
Имеет некоторый практический смысл и такая трактовка суждения Ixy, как представленная на ска-
лярных диаграммах.

x' x
---------=======
y y'
=======---------
Ixy = x+y

Под базисом силлогистики будем понимать всевозможные варианты представления суждений Axy, Exy,
Ixy.Суждение Oxy получается автоматически из Ixy, поскольку является его отрицанием.

3.1. Все x суть y(Axy).


1.Традиционное представление этого суждения изображено на скалярной диаграмме, по которой
заполнена таблица истинности.

x x'
=====------------
y y'
=======--------

xy Axy
00 1
01 1
10 0
11 1

По таблице истинности синтезируем логическую функцию Axy:

Axy = (xy')' = x'+y = Ay'x' = Exy' = (x→y) = (y'→x')


(Axy)' = xy'
Здесь уместно сделать одно замечание. Много копий было сломано при выяснении физической сущно-
сти импликации. Из таблицы истинности этот смысл не вырисовывался, более того, вызывал недоуме-
ние. Но ведь x → y = x’ + y = Axy. А если все Х суть Y, то в этом случае понятен смысл импликации,
выраженный в суждении «из истинности Х следует истинность Y».
Если использовать рекурсивный метод Порецкого [32], то можно подтвердить полученные соот-
ношения для Axy:
Axy = (x = xy) = xy+x’(xy)’ = xy+x’+x’y’ = x’+y.
2.Традиционное представление Axy не исчерпывает все ситуации. Вторая комбинация аргументов
x,y представлена на диаграмме.

x' x
------------======
y' y
a)-----=========
y
b)============

xy Axy
00 i

151
01 1
10 0
11 1

Ситуация, представленная на рисунке под символом b,может быть проиллюстрирована следующим


высказыванием: "Все люди смертны". Это справедливо при условии, что "мир"(универсум) - все живые
существа,т.к.все живое-смертно. С учетом вышеизложенного выражение для функции Axy примет
вид:
Axy = y+ix'y'
(Axy)' = xy'+jx'y'
3.Третий вариант суждения Axy изображен на скалярных диаграммах. По сравнению со вторым вари-
антом здесь добавлено суждение "x эквивалентно y".
x' x
----------=======
y' y
a)---==========
y
b)============
y' y
c)----------=======

xy Axy
00 i
01 i
10 0
11 1

Для ситуации на рисунке под символом c справедливо высказывание "Все люди владеют словом".
Если весь "мир" - живые существа, то понятия "люди" и "говорящие живые существа" эквивалентны.
Из таблицы получаем следующее соотношение:
Axy = xy+ix'
(Axy)' = xy'+jx'

Эти три варианта базиса для Axy не исчерпывают всех ситуаций, но в силлогистике оставшиеся за
пределами рассмотрения комбинации аргументов не являются решающими.

3.2. Ни один x не есть y(Exy).

1.Классическое представление Exy изображено на скалярных диаграммах.


x x'
=====------------
y' y
------------=====

xy Exy
00 1
01 1
152
10 1
11 0

Из таблицы имеем:

Exy = (xy)' = x'+y' = Axy' = Ayx' = Eyx = (x→y') = (y→x')


(Exy)' = xy
По рекурсивному методу Порецкого [32] с использованием формулы равнозначности получим:
Exy = (x = xy’) = xy’+x’(xy’)’ = xy’+x’ = x’+y’.
2.Второй вариант суждения Exy представлен на рисунке.

x' x
---------=======
y y'
a)===----------------
y y'
b)====--------------

xy Exy
00 i
01 1
10 1
11 0

Для иллюстрации диаграммы рисунка под символом b подходит высказывание "Ни один живой не
есть мертвый".
Из таблицы имеем:
Exy = x'y+xy'+ix'y'
(Exy)' = xy+jx'y'

3.Третий вариант суждения Exy изображен на скалярных диаграммах.

x' x
-----------======
y y'
a)===----------------
y y'
b)=====------------
y'
c)----------------------

xy Exy
00 i
01 1
10 1
11 0

Высказывание "Ни один человек не бессмертен" иллюстрирует ситуацию на диаграмме под симво-
лом c.Здесь "мир" - живые существа, а бессмертных существ не бывает. Из таблицы выводим соотно-
шение:
153
Exy = xy'+ix'
(Exy)' = xy+jx'

3.3. Некоторые x суть y.

Лобачевский Н.И. создал "воображаемую геометрию". По образу и подобию великого русского гео-
метра не менее великий русский логик Васильев Н.А. разработал "воображаемую логику". Мы попро-
буем разобраться хотя бы в общеразговорной(бытовой) логике, тем более что в [8] частному суждению
Ixy уделено недостаточное внимание.
1.Первый вариант суждения Ixy представлен на рисунке.

x
===========
y y'
======----------
xy Ixy
00 0
01 0
10 1
11 1

Иллюстрацией для этого варианта служит высказывание "Некоторые люди(x) - мудрые люди(y)"("мир"
- люди). Из таблицы получим соотношение:
Ixy = x
(Ixy)' = x'
Кстати, именно в этом базисе выполняется требование Васильева[8] :
Ixy -> Ixy' = x'+x = 1.

2.Второй вариант суждения Ixy представлен на рисунке.

x' x
----------=======
y' y y'
a)-----======------
y y'
b)========-------

xy Ixy
00 i
01 1
10 1
11 1

Из таблицы получим соотношение:


Ixy = x+y+ix'y'
154
(Ixy)' = jx'y'
Здесь метод Порецкого бессилен, т. к. он расчитан лишь на описание общеутвердительных или общеот-
рицательных суждений.

3.Третий вариант суждения Ixy представлен на рисунке. Этот базис соответствует Аристотелевскому
[35].

x' x
-----------======
y y'
a)========------
y' y y'
b)-----======-----
y' y
c)------========
y’ y
d)--------------====
y' y
e)===========

xy Ixy
00 i
01 i
10 i
11 1

Из таблицы получим соотношение:


Ixy = xy+i(x'+y')
(Ixy)' = j(x'+y')

4.Четвёртый вариант суждения Ixy представлен на рисунке.


Этот базис получил название несимметричного.

x' x
----------=======
y' y
a)------------======
y' y y'
b)----======--------

xy Ixy
00 1
01 i
10 1
11 1

Ситуация на рисунке под символом а иллюстрируется высказыванием "Некоторые юристы(x) - вы-


пускники юридических вузов(y)"(не-юристов юридические вузы не выпускают).

155
Из таблицы получим соотношение:
Ixy = x+y'+ix'y
(Ixy)' = jx'y

5.Пятый вариант суждения Ixy представлен на рисунке.

x' x
----------=======
y' y
a)------------======
y' y y'
b)-----=====--------
y y'
c)========--------
xy Ixy
00 i
01 i
10 1
11 1

Ситуация на рисунке под символом c иллюстрируется высказыванием "Некоторые люди(x) суть не-
говорящие существа(y)" (не - люди тем более не разговаривают). Универсум - "живые существа". Из
таблицы получим соотношение:
Ixy = x+ix'
(Ixy)' = jx'
6.Шестой вариант суждения Ixy представлен на рисунке.

x' x
-----------========
y y'
========----------

xy Ixy
00 0
01 1
10 1
11 1

Из таблицы получим соотношение:


Ixy = x+y
(Ixy)' = x'y'

7. Седьмой вариант функтора Ixy выглядит так:


x' x
----------=======
y' y
a)------=========
y' y y'
b)-----=====--------
y y'
c)========--------

156
xy Ixy
00 i
01 1
10 i
11 1

Ixy = y + iy'
(Ixy)' = jy'

8. Восьмой вариант функтора Ixy(базис Васильева Н. А. ) .

В работе [8] утверждается, что в общеразговорном базисе из Ixy обязательно следует Ixy', т.е. Ixy ->
Ixy'. Попытаемся решить это логическое уравнение с целью синтеза суждения Ixy, удовлетворяющего
критерию Васильева.
Ixy -> Ixy' = (Ixy)'+Ixy' = 1
Из анализа всех возможных вариантов базиса Ixy ясно, что на наборах 00,01,10 искомая функция Ixy
принимает неизвестные значения a,b,c. На наборе 11 функция Ixy строго определена:еезначение равно
1. Таким образом имеем следующее соотношение:
Ixy = ax'y'+bx'y+cxy'+xy
Из двух предыдущих соотношений на основе формулы Де Моргана, а ещё лучше карты Карно, полу-
чим выражение:

a'x'y'+b'x'y+c'xy'+0+ax'y+bx'y'+cxy+xy' = 1

Полученные значения на основании последнего соотношения занесем в карту Карно и решим сис-
тему трех уравнений с тремя неизвестными.

\y 0 1
x\
a’ b’
0 ---- -----
b a
c’ 0
1 ----- -----
1 c

Из КК получаем систему уравнений:

a'+b = 1
b'+a = 1
c=1

Решая систему,получаем следующие корни уравнений:

1)a = b = 0
2)a = b = 1
3)a = b = i

Этим корням соответствуют следующие формулы для Ixy:

1)Ixy = x
2)Ixy = x+y+x'y' = 1
157
3)Ixy = x+ix'

Уравнение (1) соответствует первому базису для Ixy, уравнение (3) - третьему базису,а уравнение
(2) - общеразговорному базису (базису Васильева).

x' x
-----------======
y' y y'
-----======------

9.Девятый вариант суждения Ixy представлен на рисунке.

x' x
-----------======
y y'
a)=======--------
y' y y’
b)----======------
y' y
c)-------========
y' y
d)--------------====

xy Ixy
00 1
01 i
10 i
11 1

Из таблицы получим соотношение:


Ixy = xy+x'y'+i(xy'+x'y)
(Ixy)' = j(xy'+x'y)

Вопрос о выборе базиса должен решаться отдельно для каждого конкретного силлогизма. Нередко ча-
стноутвердительное суждение бездумно употребляется вместо общеутвердительного. Если для сужде-
ния "Некоторые животные - млекопитающие" мы будем использовать любой симметричный базис, то
придем к абсурдному заключению "Некоторые млекопитающие - животные", поскольку на самом деле
исходное суждение имеет вид "Все млекопитающие - животные". Именно такую ошибку дважды до-
пустили преподаватели Кэмбриджа и Оксфорда, авторы хорошего учебного пособия по философии, на
стр.170 и 174[36].
Для указания используемого базиса автор применяет нумерацию, состоящую из вариантов сужде-
ний в порядке Axy-Exy-Ixy.Например, для анализа силлогизмов в общем (неконкретном) виде автор
предпочитает общеразговорный базис 1-1-2, который описывается следующими соотношениями:
Axy = (xy')'
Exy = (xy)'
Ixy = x+y+ix'y' = x+y+i
Этот базис назван автором русским базисом, т.к. он частично удовлетворяет требованиям русского
логика Васильева Н.А. относительно научного и общеразговорного смысла силлогистического функ-
тора Ixy. Вполне естественно, что силлогистика,основанная на русском базисе, названа русской силло-
158
гистикой.

Заключение.

1.Анализ современного состояния логики показал полное отсутствие аналитического представления


базиса силлогистики, а также несостоятельность классического силлогитического базиса который не
является ни Аристотелевским, ни общеразговорным(бытовым).
2.Впервые показано, что даже общие суждения имеют неоднозначную структуру и аналитическое
описание.
3.Впервые представлено все многообразие базиса частноутвердительного суждения и дано его ана-
литическое представление.
4.Впервые найдены аналитические выражения для всех частноутвердительных суждений, удовлетво-
ряющих критерию Васильева.

Глава четвёртая

Силлогистика Аристотеля - Жергонна.

В [35] приведены так называемые "жергонновы отношения". С помощью этих отношений


Ж.Д.Жергонн(1771-1859) представил все классы суждений (силлогистические функторы), выделенные
Аристотелем, на языке теории множеств. Автор пока не может дать однозначного заключения о кор-
ректности проделаннной Жергонном операции. Поэтому данная силлогистика носит двойное имя.
Переведем "жергонновы отношения" на язык скалярных диаграмм [24].

x x' x x'
======----------- ======-----------
y y' y' y
========------- --------------====
y y'
======----------- Exy.
Axy
x' x x' x
------------====== -----------======
y y' y y'
a)========------- a)========-------
y' y y' y' y y'
b)------======----- b)-------=====------
y' y y y'
c)-------======== c)====---------------
y' y y' y
d)----------------==== d)---------------====
y' y Oxy.
e)------------======
Ixy.
По скалярным диаграммам были построены соответствующие таблицы истинности.

xy Axy
00 1
159
01 i
10 0
11 1

xy Exy
00 1
01 1
10 1
11 0

xy Ixy
00 i
01 i
10 i
11 1

xy Oxy
00 i
01 i
10 1
11 i

Из таблиц истинности получаем следующие соотношения:


"Все X суть Y" : Axy = xy+x'y'+ix'y
"Ни один X не есть Y" : Exy = x'+y'= (xy)'
"Некоторые X суть Y" : Ixy = xy+i(xy)'
"Некоторые X не суть Y": Oxy = xy'+i(xy')'
В связи с тем, что при проверке силлогизмов потребуются отрицания функций, то на основе форму-
лы Де Моргана выведем следующие формулы:
(Axy)' = xy'+jx'y
(Exy)' = xy
(Ixy)' = j(xy)'
(Oxy)' = j(xy')'
Такой же результат может быть получен табличным методом, для чего необходимо проин-
вертировать значения соответствующих силлогистических функторов в таблицах. Полученные соот-
ношения позволяют построить силлогистику без кванторов [23]. Очень интересные решения этой про-
блемы имеются в[5,14,15,26]. Известны попытки решения задач силлогистики с помощью кванторного
аппарата исчисления предикатов[28]. Однако, судя по современному состоянию силлогистики, эти по-
пытки успеха не имели. Это обстоятельство ставит под сомнение всё исчисление предикатов, тем более,
что введение кванторов противоречит принципу «бритвы Оккама». С помощью формул для силлоги-
стических функторов A, E, I, O можно выполнять все операции над силлогизмами, т.е. находить
аналитическое решение задач, связанных с силлогизмами. Для того, чтобы проверить силлогизм, нуж-
но выполнить алгоритм "Осташ-Т" [24].

4.1. Алгоритм "Осташ-Т" (тест)

1.Заменить посылки и заключение выражениями в соответствии с формулами для функторов


A, E, I, O.
2.Получить выражение в виде конъюнкции всех посылок, имплицирующей заключение.
3.Проверить это выражение на тождественность единице, занеся его в карту Карно (КК).
160
Если выполняется тождественность единице, то заключение истинно. Если хотя бы одна из посылок
или заключение являются частным суждением, то силлогизм яв ляется истинным даже при получении
модальной единицы (т.е. в некоторых клетках КК проставлены символы модальности i) при условии,
что m=1 или m'=1 (в этом случае строка m или соответственно m' должна содержать не менее 3-х
целых единиц и только одну составную, т.е.1=i+j). В противном случае заключение не имеет места.
Для синтеза заключения по заданным посылкам также можно использовать алгоритм "Осташ-
Т", несколько изменив его.

Алгоритм "Осташ-С" (синтез)

1.Заменить посылки выражениями в соответствии с формулами для функторов A,E,I,O.


2.Получить выражение в виде конъюнкции всех посылок и проинвертировать его. Занести
полученное выражение в карту Карно (КК).
3.Доопределить полученную функцию одним из выражений для силлогистических функторов
A, E, I, O таким образом, чтобы получить тождественую или модальную единицу. При доопределе-
нии иметь в виду, что из частной посылки должно следовать частное заключение. Перед доопределени-
ем в одной строке КК(m или m') должно быть не менее 2-х, а после доопределения не менее 3-х целых
единиц. Доопределяемое заключение должно содержать минимально необходимое количество единиц.
Функция доопределения является искомым заключением. Если в доопределяемой строке КК имеется 2
полных единицы и 2 значения j, то доопределение невозможно.
4.Если вышеуказанное доопределение невозможно, то из данных посылок нельзя вывести
никакого заключения.
Синтез посылок от синтеза заключений отличается лишь тем, что доопределение КК выпол-
няется в этом случае для отрицания посылки.
Аналитические методы на основе алгоритмов "Осташ-Т" и "Осташ-С" дополняются графиче-
ским методом на базе скалярных диаграмм. Алгоритм ТВАТ (Тушинский вечерний авиационный тех-
никум) прост и нагляден.

4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов).

1.Изобразить все возможные ситуации для исходных посылок с помощью скалярных


диаграмм.
2.Занести в таблицу истинности все значения f(x,y) для входных наборов xy: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(x,y) в четырёхзначной ком-
плементарной логике.
4.Полученный результат представить в виде силлогистического функтора в соответствии с из-
вестным базисом.

Простота графического алгоритма анализа и синтеза силлогизмов наводит на мысль о том, что
и скалярные диаграммы, и алгоритм могли быть открыты 23 века назад Аристотелем. Во всяком случае,
скаляры были известны Евклиду, современнику Аристотеля.
Алгоритмы «Осташ» и «ТВАТ» дают одинаковые по полноте и корректности результаты. Суще-
ствует более простой и эффективный аналитический метод, позволющий получать корректные, но для
некоторых частных силлогизмов не всегда полные результаты. Этот метод оформлен автором в виде
алгоритма «ИЭИ» (Ивановский энергетический институт). Предпочтительная область применения дан-
ного алгоритма - силлогистика здравого смысла, т.е. русская и общеразговорная. Кроме того, алгоритм
«ИЭИ» незаменим при аналитическом синтезе соритов (многопосылочных силлогизмов).

4.3. Алгоритм "ИЭИ "(синтез заключения)

161
1.Заменить посылки выражениями в соответствии с формулами для функторов
A,E,I,O.
2.Получить выражение для полной единицы М системы в виде конъюнк- ции всех посылок.
3. Получить из М функцию М(х,у), заменив средний член m или m' на 1.Если средний член
m/m' входит в силлогизм автономно, то заменить его на i. Полученная функция М(х,у) является заклю-
чением силлогизма. Если в М встречается терм im или im’, то заключения не существует.
Алгоритм «ИЭИ» можно считать частным случаем алгоритма «Селигер» для решения логиче-
ских уравнений.
Пример.
Ни один x не есть m
Некоторые m суть y
Найти f(x,y)
Решение.
По алгоритму ИЭИ получим:
M = ExmImy(3) = (x’+m’)(my+im’+iy’) = mx’y+im’x’+im’+ix’y’+im’y’ =
= mx’y+im’+ix’y’
F(x,y) = x’y+i = Ix’y(3)
По алгоритму ТВАТ получим:

m =======-------------
x ------------------====
y1 ========-----------
y2 =============---
y3 ===-------------------
y4 ===---------======
xy f(x,y)
00 i
01 1
10 i
11 i

F(x,y) = x’y+i = Ix’y(3)


Используя приведённые методы, проверим некоторые модусы для 4-х фигур категорического
силлогизма. Синтез силлогизмов проведём графическим методом в связи с его простотой и наглядно-
стью. В результате получим следующие заключения. Здесь и далее под обозначением N.n понимается
номер фигуры и номер модуса в данной фигуре. Например, 1.6 означает 6-й модус первой фигуры.
Фигура 1.
1.1. AmxAym -> f(x,y) = mx'+jm'x+m'y+jmy'+f(x,y) = 1

m =======--------
x1 ========-------
x2 =======---------
y1 ====--------------
y2 =======---------

xy f(x,y)
00 1
01 0
10 i
11 1

Алгоритм «ТВАТ» и алгоритм "Осташ-С" дали одинаковый ре-


зультат:f(x,y) = xy+x'y'+ixy' = Ayx.
162
Для алгоритма «ИЭИ» получим:
M = AmxAym = (m’x’+mx+im’x)(y’m’+ym+iy’m) = m’x’y’+ixy’+mxy
M(x,y) = x’y’+xy+iy’x = Ayx
Таким образом, все три алгоритма дали одинаковый результат.

1.6. EmxEym -> f(x,y) = mx+my+f(x,y) = 1(i)

m ---------------====
x ======-----------
y1 ------------==-------
y2 ========-------
y3 ====---------------

xy f(x,y)
00 1
01 i
10 i
11 i

f(x,y) = x'y'+i = Ix'y'.


По алгоритму «ИЭИ»
M = EmxEym = (m’+x’)(y’+m’) = m’+x’y’
M(x,y) = x’y’+i = Ix’y’.

Фигура 2.

2.4. AxmOym -> f(x,y) = m'x+jmx'+j(m'y)'+f(x,y) = 1(i)


m ======----------
x1 ====--------------
x2 ======----------
y1 ----------------===
y2 --------=======
y3 =======--------

xy f(x,y)
00 i
01 1
10 i
11 i
f(x,y) = Ix'y.
По алгоритму «ИЭИ»
M = AxmOym = (x’m’+xm+ix’m)(ym’+iy’+im) = m’x’y+im+ix’y’
M(x,y) = x’y+i = Ix’y

Фигура 3.
3.2. AmxEmy -> f(x,y) = mx'+jm'x+my+f(x,y) = 1(i)
m =====------------
x1 =======--------
x2 =====------------
y1 ----------------===
y2 -----------======

163
y3 ----------==--------

xy f(x,y)
00 i
01 i
10 1
11 i

f(x,y) = xy'+i(xy')' = Ixy'.

Фигура 4.

4.1.AxmAmy -> f(x,y) = m’x+jmx’+my’+jm’y+f(x,y) = 1


m =====------------
x1===----------------
x2=====------------
y1=========----
y2=====------------

xy f(x,y)
00 1
01 i
10 0
11 1

f(x,y) = xy+x’y’+ixy’ = Axy.


У Аристотеля этому модусу соответствует заключение Ixy, что не согласуется ни со здравым смыс-
лом, ни с формальным выводом. Кроме того, из анализа фигур 1 и 4 видно, что они идентичны, а следо-
вательно должны давать одинаковые модусы. Например, модусу AII 1-й фигуры должен соответство-
вать модус IAI 4-й фигуры, модусу EIO 1-й фигуры – модус IEO 4-й фигуры. Таких несоответствий
между модусами 1-й и 4-й фигур насчитывается не менее четырёх. Указанные несоответствия можно
было бы заметить 23 века назад, поскольку для этого не требуется ничего, кроме начального образова-
ния.
4.5. ExmAmy -> f(x,y) = mx+my'+jm'y+f(x,y) = 1(i)

m =====------------
x ----------------===
y1=========----
y2=====------------
y3=====----====

xy f(x,y)
00 i
01 1
10 i
11 i
f(x,y) = Ix'y.
В результате полной проверки традиционных 64-х силлогизмов получим следующие правильные
модусы:
1-я фигура: AAA,AEO,AII,EAE,EEI,EII,IEO,OEI.
2-я фигура: AAI,AEE,AOI,EAE,EEI,EII,IEI,OAI.
3-я фигура: AAI, AEI, AII, AOI, EAI, EEI,
164
EII,EOI,IAI,IEI,OAI,OEI.
4-я фигура: AAA, AEE, EAO, EEI, EIO, EOI, IAI, IEI.
Кстати, на самом деле проверять нужно было бы 256 модусов даже для случая двухфункторной
(A,I) силлогистики.
Полученные результаты очевидны, однако в большей своей части данные модусы являются
абсолютно новыми для аристотелевой силлогистики[14].Кроме того, аристотелевский модус AAI в 4-й
фигуре является некорректным.
Проверим теперь традиционную логику[14] с помощью алгоритмов «Осташ».Её базис явно от-
личается от базиса Аристотеля-Жергонна. Попробуем описать этот базис аналитически. Из логиче-
ского квадрата[14] следуют традиционные соотношения:
Axy = (Oxy)',Exy = (Ixy)'.
Поскольку Axy = (xy')',то Oxy = xy'.Для Ixy определяем фор-
мулу,исходя из того, что Exy = (xy)'.Откуда получаем Ixy = xy.
Разумеется,подобный базис никакого отношения к здравому смыслу не имеет. Тем не менее про-
верим на основе этого базиса некоторые традиционные "правильные" модусы.Проверку проведем в
соответствии с алгоритмом "Осташ-Т".
1-я фигура
EIO: (mx)'my -> xy' = mx+m'+y'+xy' ≠ 1
2-я фигура
EIO:(mx)'ym -> xy' = mx + m'+y'+xy' ≠ 1
3-я фигура
EAO:(mx)'(my')' -> xy' = mx+my'+xy' ≠ 1
OAO:mx'(my')' -> xy' = m'+x+my'+xy' ≠ 1
EIO:(mx)'my -> xy' = mx + m'+y'+xy' ≠ 1
4-я фигура
AAI:(xm')'(my')' -> xy = xm'+my'+xy ≠ 1
EAO:(xm)'(my')' -> xy' = mx+my'+xy' ≠ 1
Аналитическая и графическая проверки выбранных "правильных" модусов выявили некоррект-
ность последних. Соотношения (1) - (4) описывают аристотелевскую логику, которая не соответствует
требованиям, предъявленным русским ученым Васильевым Н.А.[8] к частным суждениям с научной
точки зрения и с позиции логики здравого смысла.
Автор с глубочайшим уважением относится к Аристотелю, впервые в истории человечества
предложившему формальные методы анализа и синтеза силлогизмов. Однако нельзя признать, что ло-
гика Аристотеля является логикой здравого смысла, а его «правильные» модусы исчерпывают все дос-
товерные ситуации силлогистики. Поэтому логика Аристотеля-Жергонна представляет интерес с чисто
научно-исторической точки зрения.
Наряду с этим необходимо подчеркнуть пассивную роль кванторного исчисления, предназна-
ченного, казалось бы для защиты аристотелевой силлогистики. В [29] приводится пример элегантного
доказательства достоверности первого модуса первой фигуры (AmxAym -> Ayx) с применением кван-
торного исчисления. Однако этот модус самый примитивный из всех,и легко доказывается даже в
обычной двоичной логике без привлечения кванторов(«лишних сущностей» по Оккаму). Кванторный
механизм создавался, в первую очередь, для того, чтобы проверить силлогистику Аристотеля. Однако
до сих пор такой проверки не произошло. Отсюда можно сделать следующий вывод: либо кванторным
исчислением матлогики не владеют настолько, чтобы доказать или опровергнуть правоту Аристотеля,
либо само кванторное исчисление является ущербным. Автор склоняется ко второму выводу.
Некоторые дополнительные аспекты проблем современной силлогистики изложены в [20].

Заключение

165
1.Предложен простой и надежный способ графической и аналитической проверки силлогиз-
мов и синтеза заключений для любых базисов.
2.Применение предложенного метода избавляет от необходимости запоминания множества
логических правил и законов.
3.Предложенный метод ставит под сомнение всё исчисление предикатов,кванторный аппарат
которого не справился с задачами анализа и синтеза силлогизмов.
4.Впервые аналитически описан базис логики Аристотеля-Жергонна.
5.Впервые на основе базиса Аристотеля-Жергонна разработана силлогистика,существенно
отличающаяся от классической.
6.Впервые проверены все 64 модуса силлогистики Аристотеля-Жергонна.Доказано,что
аристотелев модус AAI в 4-й фигуре не является правильным.
7.Впервые доказано, что ни силлогистика Аристотеля-Жергонна, ни кла- ссическая силлоги-
стика[14] не укладываются в прокрустово ложе 19 «правильных» модусов.
8.Доказано, что ни силлогистика Аристотеля,ни силлогистика Аристотеля-Жергонна не имеют
никакого отношения к логике здравого смысла.

166
Глава пятая

Русская силлогистика.

Русская силлогистика построена на русском базисе, который описывает логику здравого смысла
[23].

"Все X суть Y": v = y+x' = (xy')'


"Ни один X не есть Y":w = x'+y'= (xy)'
"Некоторые X суть Y": z = x+y+ix'y'
Необходимо заметить,что соотношения для Axy, Exy впервые были получены русским уче-
ным Порецким П.С. методом рекурсии. При аналитическом анализе и синтезе силлогизмов потребуется
отрицание для Ixy:
z'=(x+y+ix'y')'=(x+y)'(ix'y')'=x'y'(i'+x+y)=jx'y'
Выражение для z’ соответствует суждению "Некоторые X не суть
Y(Oxy)".

Пример 1.

Ни один студент(x) не имеет ученой степени(m)


Некоторые ученые со степенью(m) суть математики(y)
____________________________________________
Найти возможное заключение f(x,y)

В соответствии с пп.1 и 2 алгоритма "Осташ-С" получим


(xm)'(m+y+im'y') -> f(x,y) = xm+jm'y'+f(x,y) = 1(i)
Это уравнение справедливо при f(x,y) = x'+ix=x'+i,что соответс-
твует суждению Ix'yIx'y' в русском базисе.

x =====-----------

m -------------====

y1 -----------===----

y2 ----=======---

y3 =========---

xy f(x,y)
00 1
01 1
10 i
11 i

Из скалярных диаграмм в соответствии с алгоритмом ТВАТ также следует


f(x,y)=x'+ix=Ix'yIx'y'.
Пример 2.
Проведём синтез заключения для сорита [26,с.165] на основе алгоритма «ИЭИ»,определяя взаи-
мосвязь между a и b.
M = EcdAadAbc = (cd)’(ad’)’(bc’)’ = a’b’c’+b’c’d+a’cd’
167
M(a,b) = a’b’+b’+a’ = a’ + b’ = (ab)’ = Eab.
Для алгоритма «ИЭИ» не имеет значения количество посылок в сорите.Правда, при этом возрас-
тает сложность минимизации функции М, но для прграммы минимизации это не проблема.Указанный
недостаток с лихвой перекрывается преимуществом синтеза заключений для любых аргументов задан-
ного сорита. В примере 2 можно найти заключение для аргументов a и c:
M(a,c) = a’c’+c’+a’c = a’+c’ = Eac.

Пример 3[26,c.172].
Найти заключение для аргументов a,e заданного сорита:
M = Eab’Ecd’AehEdbEc’h.
Решение.
Заменим умножение сложением по Де Моргану:
M’ = ab’+cd’+eh’+bd+c’h.
Внесём в карту Карно нули для M’ , а в остальные клетки впишем единицы - получим M =
bc’d’e’h’+a’b’c’e’h’+a’b’cd(e’+h).
Откуда M(a,e) = e’+a’e’+a’e’+a’ = a’+e’ = Eae.
В [33] этот ответ единственный, а по алгоритму «ИЭИ» можно теперь практически даром полу-
чить все заключения для пар (a,d),(a,c),(a,h),(b,c),(b,h),(b,e),(d,c),(d,h),(d,e),(c,e).
M(a,d) = d’+a’+a’d = a’+d’ = Ead.
M(a,c) = c’+a’c’+a’c = a’+c’ = Eac.
M(c,e) = c’e’+ce’+c = e’+c = Aec.

Пример 4.

Дано: M = AbaIbcEad
Найти: M(a,c),M(b,d),M(c,d).

Решение.
Найдём искомые функции графически по алгоритму ТВАТ и аналитически по алгоритму ИЭИ.
a =========-----------
b ======----------------
d -------------------====
c1 ----=====-------------
c2 ----========---------
c3 ----==========-----
c4 ----=============
По алгоритму ТВАТ из скалярных диаграмм получены следующие таблицы.

ac f(a,c)
00 i
01 i
10 1
11 1

bd f(b,d)
00 1
01 1
10 1
11 0

cd f(c,d)
168
00 1
01 i
10 1
11 i
Из приведённых таблиц выводим искомые соотношения:
f(a,c) = a+i = Iac(3)Iac’(3)
f(b,d) = b’+d’ = Ebd
f(c,d) = d’+i = Icd’(3)Ic’d’(3),
где цифра 3 в скобках указывает на 3-й базис, т. е. Ixy = xy+i(x’+y’).
По алгоритму ИЭИ выводим следующие формулы.
M = (b’+a)(b+c+ib’c’)(a’+d’) = a’b’c+abd’+acd’+ia’b’c’
M(a,c) = a’c+a+ac+ia’c’ = a+c+ia’c’ = Iac(2)
M(b,d) = b’+bd’+d’+ib’ = b’+d’ = Ebd
M(c,d) = c+d’+cd’+ic’ = c+d’+ic’ = Icd’(2),
где цифра в скобках указывает на 2-й базис, т. е. Ixy = x+y+ix’y’.
Из сравнения результатов графического и аналитического синтеза заключений видно,что графи-
ческий алгоритм ТВАТ даёт более полные решения.

Используя приведенные методы, проверим некоторые модусы для 4-х фигур категорического
силлогизма. В результате получим следующие заключения.
Фигура 1.

1.1. AmxAym -> f(x,y) = mx'+ym'+f(x,y) = 1


m =====-------------
x =======----------
y ===----------------

xy f(x,y)
00 1
01 0
10 1
11 1
Агоритмы «ТВАТ» и «Осташ-С" дали одинаковый ре-
зультат:f(x,y) = (yx')' = Ayx.
По алгоритму «ИЭИ» получим:
M = AmxAym = (m’+x)(y’+m) = m’y’+xy’+mx
M(x,y) = y’+x = Ayx.

1.2. AmxEym -> f(x,y) = mx'+my+f(x,y) = 1(i)

m =====------------
x ========-------
y1 ------------=====
y2 -----------------==
y3 ----------==-------

xy f(x,y)
00 i
01 i
10 1
11 i

f(x,y) = xy'+i = Ixy'(3).


169
Индекс (3) говорит о том, что заключение соответствует 3-му базису, т.е. базису Аристотеля -
Жергонна.
По алгоритму «ИЭИ»
M = AmxEym = (m’+x)(y’+m’) = m’y’+xy’+m’ = m’+xy’
M(x,y) = xy’+i = Ixy’(3)

Фигура 2.

2.1. AxmAym -> f(x,y) = m'x+m'y+f(x,y) = 1(i)

x =====-------------
m ========------
y1 ----------==--------
y2 -----=====-------
y3 ====--------------
y4 ======----------

xy f(x,y)
00 1
01 i
10 i
11 i

f(x,y) = x'y'+i = Ix'y'(3).


По алгоритму «ИЭИ»
M = AxmAym = (x’+m)(y’+m) = x’y’+my’+mx’+m = m+x’y’
M(x,y) = x’y’+i = Ix’y’(3)

170
Фигура 3.

3.2. AmxEmy -> f(x,y) = mx'+my+f(x,y) = 1(i)


m =====--------------
x ========---------
y1 -----------------===
y2 -----------==-------
y3 ------------======

xy f(x,y)
00 i
01 i
10 1
11 i

f(x,y) = xy'+i = Ixy'(3).


M = AmxEmy = (m’+x)(m’+y’) = m’+xy’
M(x,y) = xy’+i = Ixy’(3)
Фигура 4.

4.1. AxmAmy -> f(x,y) = m'x+my'+f(x,y) = 1


x =====-------------
m ========--------
y ==========-----

xy f(x,y)
00 1
01 1
10 0
11 1

f(x,y) = x'+y = (xy')' = Axy.


M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my
M(x,y) = x’+y = Axy.

После снтеза всех 64 силлогизмов получим следующие правильные модусы:


1-я фигура:AAA,AEI[3],AII[3],AOO,EAE,EEI[3],EII[3],EOO,IAI[3],
IEI[3],IOO,OAO,OEO,OIO,OOO.
2-я фигура:AAI[3],AEE,AII[3],AOO,EAE,EEI[3],EII[3],EOO,IAI[3],
IEI,IOO,OAO,OEO,OIO,OOO.
3-я фигура:AAI,AEI[3],AII[3],AOO,EAI[3],EEI[3],EII[3],EOO,
IAI,IEI[3],IOO,OAO,OEO,OIO,OOO.
4-я фигура:AAA,AEE,AII(3),AOO,EAI[3],EEI[3],EII[3],EOO,IAI[3],
IEI,IOO,OAO,OEO,OIO,OOO.

171
Заключение

1.Впервые разработан общеразговорный логический базис, названный


автором русским базисом.
2.Впервые на основе русского базиса разработана силлогисти-
ка, названная автором русской силлогистикой.

Глава шестая

Общеразговорная силлогистика.

В главе, посвящённой рассмотрению различных силлогистических базисов, были получены вы-


ражения для силлогистических функторов Ixy, удовлетворяющих требованию Ixy -> Ixy’[8].Наиболее
интересным из них является общеразговорный функтор , выражающийся следующей формулой [25]:
Ixy = Ixy’ = Ix’y’ = Ix’y = x+y+x’y’ = 1.
Скалярные диаграммы для всех вариантов представлена на рисунке.

x =====-------------
y -----======------
Ixy

x =====-------------
y’ ==-------------===
Ixy’

x’ ----------=======
y’ ==--------------===
Ix’y’

x’ ----------=======
y -----======-------
Ix’y

Из скалярных диаграмм видно, что выполняется следующее соотношение, которое абсолютно


соответствует логике здравого смысла:
Ixy → Ixy’→ Ix’y’ → Ix’y.
На основе этого функтора можно построить базис общеразговорной силлогистики, которая как и
русская силлогистика, служит основанием логики здравого смысла. Предлагаемый базис соответствует
всем требованиям Н. А. Васильева и имеет вид:
Axy = (xy’)’
Exy = (xy)’
Ixy = x+y+x’y’ = 1
Вполне естественно, что этот базис носит имя русского логика. Заключения, полученные при
просмотре всех модусов в общеразговорной силлогистике , отличаются от заключений, полученных в
русской силлогистике, лишь для двух модусов.Рассмотрим некоторые модусы.
1.9.ImxAym -> f(x,y) = 1(i)
m =====-------------
x -----=======-----
y1 ==-------------------
172
y2 =====-------------
y3 -----===------------
xy f(x,y)
00 1
01 i
10 1
11 i

f(x,y) = y'+iy= Ixy’(7) = Ix'y'(3)Ixy’(3).


По алгоритму ИЭИ получен такой же результат.
M = ImxAym = 1(y’+m) = y’+m
F(x,y) = y’+i = Ixy’(7)
Индекс 3 в скобках указывает на то,что функтор принадлежит аристотелеву базису. В русской
силлогистике ImxAym -> Ixy’(3), где индекс 3 соответствует 3-му базису (Ixy = xy+ix’+iy’). В связи с
симметричностью Ixy модус 2.9 по заключению совпадает с модусом 1.9.
2.10.IxmEym -> f(x,y) = 1(i)
m =====-------------
x -----=======-----
y1 -------------------==
y2 -------------=====
y3 -----------===------

xy f(x,y)
00 1
01 i
10 1
11 i
f(x,y) = y'+iy= Ixy’(7) = Ix'y'(3)Ixy’(3).
Здесь результаты в обоих базисах совпали.
Синтез силлогизмов в базисе Васильева более прост по сравнению с базисом Аристотеля-Жергонна.
Для модусов, содержащих частноотрицательные посылки, графический синтез заключений невозможен,
поскольку не существует скалярного представления частноотрицательного суждения. В результате гра-
фического синтеза заключений по алгоритму ТВАТ были получены следующие модусы.
1-я фигура: AAA, AEI[3],AII[3],EAE,EEI[3],EII[3],IAI[3],
IEI[3].
2-я фигура: AAI[3], AEE,AII[3],EAE,EEI[3],EII[3],IAI[3],
IEI.
3-я фигура: AAI(AAA), AEI[3],AII[3], EAI[3],EEI[3],EII[3], IAI,IEI[3].
4-я фигура: AAA, AEE,AII(3),EAI[3],EEI[3],EII[3],IAI[3],
IEI[3].
Расссмотрим несколько содержательных примеров.
Пример 1.
Все квадраты(m) суть прямоугольники(x)
Все квадраты(m) суть ромбы(y)
f(x,y) = ?
Решение.
По алгоритму ИЭИ получим:
M = AmxAmy (m=xy) = (m’+x)(m’+y)(mxy+m’x’+m’y’) = mxy+m’x’+m’y’
f(x,y) = xy+x’+y’ = Ixy(8)
В качестве третьей посылки мы ввели определение квадрата как прямоугольного ромба.
Если в качестве универсума используем понятие “параллелограммы”, то получим по алгоритму ТВАТ
аналогичный результат.
m =====-------------
173
x ==========-----
y =====----------==

xy f(x,y)
00 1
01 1
10 1
11 1
Если в качестве универсума выберем лишь множество, состоящее из прямоугольников и ромбов, то
получим иной результат.

m ---====------
x ---========
y ======-----

xy f(x,y)
00 0
01 1
10 1
11 1

f(x,y) = x+y = Ax’y = Ay’x


Если в силлогизме
Все люди(x) смертны(m)
Сократ(y) – смертен(m)
в качестве универсума примем множество живых существ,т. е. только смертных, то ,не зная,что Сократ
– человек, получим следующее решение.
M = AxmAym = (x’+m)(y’+m) = x’y’+m
F(x,y) = x’y’+i = Ix’y’(3)
Проверим этот результат по алгоритму ТВАТ:
m =============
x =======-----------
y1 ---------------------=
y2 =---------------------

Xy f(x,y)
00 1
01 i
10 1
11 i

f(x,y) = y’+iy = Ixy’(7)


Мы получили менее жёсткий результат, но он логически обоснован: Сократ не может быть одно-
временно и человеком, и животным,поэтому у нас в скалярных диаграммах отсутствует ситуация Ixy.
Этот пример ещё раз подтверждает мысль о бесполезности модусов, о необходимости абсолютно кон-
кретного аналитического или графического представления каждой посылки. К сожалению, в аналитике
обе посылки данного силлогизма идентичны, что не соответствует действительности. В этом заключа-
ется один из недостатков аналитического синтеза силлогизмов.
Пример 2.
Провести синтез силлогизма:
Все люди (m) смертны (x)
Некоторые люди (m) неграмотны (y)
------------------------------------------------
174
f(x,y) = ?
Решение.
Пусть в универсум входят люди,животные и боги. Богов будем считать грамотными.
M = AmxImy(8) = (m'+x) & 1 = m'+x
f(x,y) = x+i = Ixy(5)
Проверим заключение по алгоритму ТВАТ.
m =======-----------------
x ==========------------
y1 ----========-----------

xy f(x,y)
00 1
01 0
10 1
11 1

f(x,y) = y'+x = Ayx


Если мы посчитаем богов неграмотными, то заключение снова изменится.
m =======-----------------
x ==========------------
y1 ----===============

xy f(x,y)
00 0
01 1
10 1
11 1

f(x,y) = x+y = Ax'y = Ay'x


Рассмотрим этот же силлогизм,но в отсутствии богов,т.е. не включим их в универсум.
m =======-----------------
x =================
y1 ----===============

xy f(x,y)
00 0
01 0
10 1
11 1

f(x,y) = x = Ayx(4)
Этими вариантами не исчерпываются все ситуации: можно считать некоторых животных грамот-
ными(дрессированными) или некторых богов неграмотными.
Пример 3.
Найти заключение следующего силлогизма.
Некоторые люди(m) неграмотны(x)
Некоторые люди(m) не знают русского языка(y)
f(x,y) = ?
Решение.
Примем в качестве универсума смертных живых существ.
M = Imx(4)Imy(4) = (m+x)(m+y) = xy+m
f(x,y) = xy+i = Ixy(3)
m =======-----------
175
x ----============
y1 ====--=========
y2 --=============
y3 -------==========

xy f(x,y)
00 i
01 i
10 i
11 1

f(x,y) = y’+iy = Ixy’(7)


В этом силогизме нарушено 3-е (главное) правило посылок: из двух частных посылок заключения с
необходимостью не следует[14]. На многих других примерах мы убедились, что и остальные правила
посылок не безусловны. Тем не менее ещё раз проверим корректность этих правил.
Первое правило посылок звучит так: из двух отрицательных посылок заключение не следует.
Пример 4.
Найти заключение для отрицательных посылок.
M = EmxEym = (m’+x’)(y’+m’) = x’y’+m’
f(x,y) = x’y’+i = Ixy(3)
m ====----------------
x ---------------=====
y1---------==------------
y2 -----------====------
y3 ----------========
y4 ------------------===

xy f(x,y)
00 1
01 i
10 i
11 i

fx,y) = x’y’+i = Ixy(3)


Алгоритмы «ИЭИ» и «ТВАТ» дали одинаковые результаты, опровергающие 2-е правило посылок.
Второе правило посылок формулируется следующим образом: если одна из посылок отрицательна,
то и заключение должно быть отрицательным. Проверим и это правило.
Пример 5.
M = EmxAmy = (m’+x’)(y+m’) = x’y+m’
f(x,y) = x’y+i = Ix’y(3)
m ====----------------
x ---------------=====
y1=======------------
y2 ====-----=======
y3 ==========-------

xy f(x,y)
00 i
01 1
10 i
11 i
176
f(x,y) = x’y+i = Ix’y(3)
Аналитический и графический алгоритмы дали одинаковые заключения, не подтверждающее 2-е
правило посылок.
Третье правило мы уже рассмотрели, поэтому проверим четвёртое правило, которое выглядит так:
если одна из посылок – частное суждение, то и заключение должно быть частным.
Пример 6.
M = AmxImy(4) = (m’+x)(y+m) = xy+m’y+mx
f(x,y) = x+y = Ax’y = Ay’x
m ====----------------
x =======------------
y ---=============

xy f(x,y)
00 0
01 1
10 1
11 1

f(x,y) = x+y = Ax’y = Ay’x


Опять алгоритмы «ИЭИ» и «ТВАТ» дали одинаковые результаты, опровергающие правила посы-
лок. Таким образом, мы доказали, что правила посылок не безупречны.
Для корректного синтеза силлогизмов требуется выполнение определённых условий.
1. Правильная формулировка посылок("Нек.животные - олени", силлогизм о сахаре и т.п. ляпсусы).
2. Строгий выбор базиса("англичане - трусы").
3. Выбор универсума ("ромб - прямоугольник - квадрат"+примеры 1 и 2).
4. Учёт всех необходимых условий(квадрат - прямоугольный ромб+пример 2).
5. Модусы, даже правильные, далеко не всегда эталон правильного синтеза заключения.
6. Все 4 классических правила посылок [14] не абсолютны.
Пример 7.
В [30,стр.164] дан следующий силлогизм.
Некоторые сорта герани(a) красного цвета(b).
Все эти цветы(c) – красные(b).
Найти заключение.
Решение.
M = IabAcb = c'+b
f(a,c) = c'+i = Iac'(7)

b======-------------
a -----=======-----
c1 ==-------------------
c2 ====---------------
c3 ------==-------------

Ac f(a,c)
00 1
01 I
10 1
11 I
f(x,y) = c'+ic= Iac'(7). Аналитический и графический алгоритмы дали одинаковые результаты. В
[30,стр.165] утверждается, что заключения нет.
Пример 8.
177
Проверим один из соритов Л.Кэрролла, который в [30,стр.172] приведён к следующему виду.
1. Ни одно А не есть не-В.
2. Ни одно С не есть не-D.
3. Все Е суть Н.
4. Ни одно D не есть В.
5. Ни одно не С не есть Н.
6. ---------------------------------
Все А есть не-Е
Все Е есть не-А
Решение.
По алгоритму ИЭИ получим:
М = Eab'Ecd'AehEdbEc'h = AabAcdAehEbdAhc = (a'+b)(c'+d)(e'+h)(b'+d')((c+h').
M' = ab'+cd'+eh'+bd+c'h, откуда с помощью карты Карно получаем:
M = a'b'c'e'h'+a'b'cdh+a'b'de'h'+bc'd'e'h'.
Из полученного выражения можно вывести несколько заключений, связывающих различные
аргументы, в том числе и указанные Кэрроллом.
f(a,e) = a'e'+a'+e' = a'+e' = Aae' = Aea' = Eae
Однако данный сорит проще решается по алгоритму ТВАТ.
a =======------------------------
b ============---------------
d ------------------------=======
c --------------------------======
h ----------------------------=====
e ------------------------------====
Из скалярных диаграмм абсолютно очевидна вся тривиальность сорита и легко выводится за-
ключение f(a,e) = a'+e' = Eae.
Пример 9.
Рассмотрим ещё один сорит[30,стр.172]. Приведём его аналитическое представление, описав
предварительно все термины данного сорита .
U – поэмы
A – интересные
B – признанные
C – современные
D – аффектированные
E – ваши
H – написанные о мыльных пузырях
M = Eab’Ecd’AehEbdEc’h
Чтобы не производить громоздких вычислений, применим формулу Де Моргана и карту Карно, в кото-
рую занесём значения термов функции M’:
M’ = ab’+cd’+eh’+bd+c’h
В пустые клетки карты Карно запишем единицы, после чего получим значение функции M:
M = c’d’e’h’(a’+b)+a’b’cdh+a’b’de’h’
Из этого уравнения мы можем получить множество интересных заключений, заменяя лишние перемен-
ные единицами (алгоритм «Импульс – С» и [32]).
M(a,e) = e’a’+e’+a’ = e’+a’ = Eae
M(c,e) = e’+c = Aec
M(b,e) = e’+b’ = Ebe
M(d,e) = e’+d = Aed
Из этих заключений следует весьма нелестный вывод о «ваших» поэмах: все они неинтересные,
непризнанные, излишне аффектированные, в чём и проявляется их современность. Можно бесконечно
(в пределах определённого числа сочетаний) продолжать список заключений, каждое из которых выво-
дится в считанные секунды, но мы остановимся на вышеприведённом перечне. Необходимо подчерк-
нуть, что автор этого сорита получил лишь одно-единственное заключение. Почему-то традиционная
силлогистика считает, что из каждого сорита можно получить лишь один вывод.
178
Пример 10.
Задача Дж. Венна.
Все члены совета (a) были или владельцы облигаций (b)или владельцы акций (c), но не те и
другие вместе; случилось так, что все владельцы облигаций были в совете. Найти f(a,c).
M = Aa(bc’+b’c)Aba = (a’+bc’+b’c)(b’+a) = a’b’+b’c+abc’
F(a,c) = a’+c+ac’ = 1 = Iac(8)
Т. е. некоторые члены совета были владельцами акций. Проверим результат по алгоритму ТВАТ.
Под универсумом будем понимать предпринимателей.

b======-------------
a =========-------
c1 ---------======---
c2 ---------========
c3 ---------===--------

Ac f(a,c)
00 i
01 i
10 1
11 1
f(a,c) = a+ia’= Iac (5)
Графическое решение имеет более строгий результат.

Готфрид Вильгельм Лейбниц сформулировал и доказал теоремы [35]:


Aab Aac → Aa(bc)
Aab Acd → A(ac)(bd)
A(ab)a
A(ab)b, т. е. все (ab) суть b
Докажем эти теоремы на основе русской силлогистики.
AabAac → Aa(bc) = ab'+ac'+a'+bc = 1
AabAcd → A(ac)(bd) = ab'+cd'+(ac)'+bd = ab'+cd'+a'+c'+bd = 1
A(ab)a = (ab)'+a = a'+b'+a = 1
A(ab)b = (ab)'+b = a'+b'+b = 1
Поскольку все вышеизложенные алгоритмы просты и прозрачны, то не составят труда для
квалифицированного программиста при реализации программы “логической машины” [32,
стр. 350]. Автором были созданы соответствующие программы для первых версий алгоритмов
анализа и синтеза силлогизмов. Три программы были написаны за неделю, но оказались отно-
сительно громоздкими и устарели в связи с модернизацией алгоритмов синтеза силлогизмов.

Заключение

1.Впервые разработан базис общеразговорной силлогистики, названный


автором базисом Н. А. Васильева.
2.Впервые на основе указанного базиса разработана общеразговорная силлоги-
стика.
3.Впервые обнаружена зависимость заключения от объёма универсума.
4.Доказано, что все 4 классических правила посылок [14] не абсолютны.

Глава седьмая

179
Атомарная силлогистика.

Внимательный анализ силлогизмов приводит к выводу о том, что даже базисы логики здравого
смысла не всегда корректно выражают содержание посылок. Проиллюстрируем это следующим силло-
гизмом (см. пример 5).
Все солдаты (х) храбрые(m)
Некоторые англичане(y) храбрые(m)
----------------------------------
Некоторые англичане - солдаты
m' m
----------===========
y' y y'
a)-----==========------
y y'
b)==============-----
Правомерно ли использование во второй посылке русского базиса[16]? По меньшей мере, допу-
щена некорректность по отношению к англичанам и нарушена достоверность посылки. Исходя из ска-
лярной диаграммы для Imy(2) и полагая универсумом все человечество, приходим к выводу, что воз-
можны ситуации, когда все трусы - англичане. Это несправедливо. Правильным в этом случае будет
использование базиса Васильева. Рассмотрим посылку, которая не вписывается ни в один из базисов.
Суждение "Все люди (х) смертны (у)" при условии, что универсумом являются живые существа, опи-
сывается следующей формулой: Axy = y. Посылка "Ни один живой человек(x) не есть труп(y)" также
имеет нестандартное аналитическое представление: Exy = xy'+x'y. Многообразие базисов приводит к
мысли о том, что разумнее иметь некий элементарный базис, на основе которого можно как из кирпи-
чиков (атомов) строить описание любой посылки. Автор предлагает следующий "атомарный" базис.

Все Х суть Y.
a)
x x'
===========----------

y y'
==============-------

xy f(x,y)
00 1
01 1
10 0
11 1

Axy(a) = x'+y
Иллюстрация: "Все квадраты(x) суть прямоугольники(y)".В данном случае универсум - параллело-
граммы.

b)

x x'
180
===========----------------
y
=====================

xy f(x,y)
00 0
01 1
10 0
11 1

Axy(b) = y
Иллюстрация: "Все люди(x) смертны(y)" при условии, что универсум – смертные существа.

Ни один X не есть Y.

a)
x x'
=======--------------
y' y
--------------=======

xy f(x,y)
00 1
01 1
10 1
11 0

Exy(a) = (xy)' = x'+y'


Иллюстрация: "Ни один круг(x) не есть квадрат(y)"(универсум - геометрические фигуры).
b)

x x'
===========-----------
y' y
-----------------=======

xy f(x,y)
00 0
01 1
10 1
11 0

Exy(b) = xy'+x'y
Иллюстрация: "Ни один живой (х) не есть труп (у)"

Некоторые X суть Y.

a)
181
x' x
----------===========
y' y y'
-----==========------

xy f(x,y)
00 1
01 1
10 1
11 1
Ixy(a) = x+y+x'y' = 1
Иллюстрация: " Некоторые ромбы (х) суть квадраты (у)". Универсум параллелограммы.

b)

x' x
----------===========
y y'
===============----

xy f(x,y)
00 0
01 1
10 1
11 1
Ixy(b) = x+y
Иллюстрация: "Некоторые люди (х) неграмотны (у)". Универсум – смертные существа.
На основе атомарного базиса может быть построен любой другой. Например, функтор Ixy(2)
представляет собой объединение Ixy(a),Ixy(b).Функтор Axy(3) является комбинацией
функторов Axy(a),Axy(c).Все эти объединения легко выполняются с помощью скалярных диаграмм.
Для фиксации и компактного описания введем операцию сцепления (конкатенации) функторов, обозна-
чив ее символом ||. Тогда вышеприведенные словесные описания могут быть представлены в виде сле-
дующих выражений.
Ixy(2) = Ixy(a) || Ixy(b)
Axy(3) = Axy(a) || Axy(c)
Можно ли сделать атомарный базис более компактным, более элементарным? Да, безусловно. Не-
обходимо произвести следующие замены.
Axy(b) = Axy(a)Ax'y(a);
Axy(c) = (y=x) - равнозначность;
Exy(a) = Axy'(a);
Exy(b) = (y=x') - неравнозначность;
Ixy(b) = Ax'y(a).
Таким образом, элементарный атомарный базис в качестве фундамента имеет всего лишь два силло-
гистических функтора:
Axy = x'+y,
Ixy = x+y+x'y' = 1
Опишем на основе этих формул все базисы здравого смысла и базис Аристотеля.
Русский базис.

182
Axy(2) = Axy = x'+y
Exy(2) = Axy' = x'+y'
Ixy(2) = Ixy || Ax'y = x+y+ixy'
Базис Васильева.
Axy(8) = Axy = x'+y
Exy(8) = Axy' = x'+y'
Ixy(8) = Ixy = x+y+x'y' = 1
Базис Аристотеля-Жергонна.
Axy(3) = Axy || (x=y) = xy+x'y'+ix'y
Exy(3) = Axy' = x'+y'
Ixy(3) = Ixy || Ax'y || Axy || Ayx || (x=y) = xy+i(x'+y')
Oxy(3) = Ixy || Ax'y || Axy' || Ayx = xy'+i(x'+y) = Ixy'(3)

Для синтеза силлогизмов в атомарном базисе пригодны все разработанные автором алгоритмы: "Ос-
таш", "ИЭИ", "ТВАТ" .

Пример 1.
Все люди(m) смертны (х)
Некоторые люди(m) неграмотны (у)
_______________________________
Найти f(x,y)
Решение.
В данном случае универсум - существа.
M = Amx(b)Imy(b) = x(m+y) = xm+xy
f(x,y) = xy+x = x = Ayx(b)

Число в скобках (индекс) указывает вариант базиса. Базис заключения может быть не только атомар-
ным, но и смешанным (русский, общеразговорный, Аристотеля и т.д.). Базис посылок, как правило,
должен быть атомарным. Рассмотрим синтез соритов, т.е. многопосылочных силлогизмов. Никаких
проблем здесь не существует, если логик хорошо знает карту Карно или метод обобщенных кодов
для минимизации логических функций[11,12].При числе посылок более 10 разумнее использовать
программы минимизации для любого ПК.

Пример 2.

Пусть в атомарном базисе в варианте "a" задан сорит из 6 посылок:


M = AabAbcAcdAdeAexExy = (ab')'(bc')'(cd')'(de')'(ex')'(xy)'.Найти заключения для различных комби-
наций аргументов.
Решение.
Перемножать все эти функторы слишком утомительно. Инженерная логика в таких ситуациях ис-
пользует формулу Моргана и работает с M'.
M' = ab'+bc'+cd'+de'+ex'+xy.
Заполнив карту Карно для М', сразу из нее получим выражение для М:
M = a'b'c'd'(e'x'+xy') + dexy'(a'b'+bc).
Отсюда можем получить заключение для любых аргументов. Вся операция занимает не более 5 мин
при условии, что под рукой бланки карт Карно на 6-8 переменных.
f(a,y) = a'+a'y'+y'a'+y' = a'+y' = Eay
f1(a,x) = a'x'+a'x+xa'+x = a'+x = Aax
f2(b,d) = b'd'+db'+db = b'+d = Abd и т.д.
Все заключения получены в атомарном базисе (вариант "а").

Пример 3.

Пусть первые 5 посылок сорита заданы в атомарном базисе, а шестая - в русском.


183
M = AabAbcAcdAdeAexIxy
Найти заключение f(a,y).

Решение.
Используя решение предыдущего примера для f1(a,x),получим:
M = AabAbcAcdAdeAexExy = AaxIxy = (a'+x)(x+y+ix'y') =x+a'y+ia'x'y'
f(a,y) = a'y+i = Ia'y(3).
Заключение получено в 3-м (Аристотелевом) базисе. Скалярные диаграммы подтверждают получен-
ные результаты.

Пример 4.
Все добрые люди – честные
Все недобрые люди – агрессивные
Найти заключение f(x,y).
Решение.
Добрые люди – m.
Честные люди – x.
Агрессивные люди – y.
Люди – универсум U.
По алгоритму «ИЭИ»
M = AmxAm’y = (m’+x)(m+y) = mx+m’y.
F(x,y) = x+y = Ixy(6) = Ax’y = Ay’x.
m ======------------
x =========--------
y ------==========

xy f(x,y)
00 0
01 1
10 1
11 1

F(x,y) = x+y = Ixy(6) = Ax’y = Ay’x, т.е. результаты всех методов синтеза совпали.

7.1. Практикум по силлогистике.

В своей книге “Логика для студентов” О. А. Солодухин приводит большое количество задач.Это
первый гуманитарий, который пытается привлечь математику для анализа силлогизмов. Проверим эти
задачи алгоритмами ИЭИ и ТВАТ.
В дальнейшем все примеры будут построены на базисе Васильева,пос-
кольку именно он более всего отражает логику здравого смысла. Напомним, что этот базис имеет сле-
дующее аналитическое представление:
Axy = x'+y = (xy')'
Exy = x'+y' = (xy)'
Ixy(8) = x+y+x'y' = 1, где в скобках указан номер базиса для частно-утвердительного суждения, а апо-
строф означает отрицание.
Для частно-утвердительного суждения были получены следующие выражения:
1. Ixy = x
2. Ixy = x+y+ix’y’ – русский базис
3. Ixy = xy + i(x’+y’) – базис Аристотеля
4. Ixy = x+y’+ ix’y
5. Ixy = x+ix’
184
6. Ixy = x+y
7. Ixy = y+iy’
8. Ixy = x+y+x’y’ = 1 – базис Васильева
Пример[1,стр.150]
Только философы эгоисты.
Нет циника, который не был бы эгоистом.
Следовательно, все циники – философы.
Решение.
Пусть x – философы, y – циники, m – эгоисты. Универсум – люди. Тогда по алгоритму ИЭИ
получим:
M = AmxAym = (m’+x)(y’+m) = m’y’+xy’+mx
F(x,y) = y’+x = Ayx, т.е. наш результат подтвердил истинность заключения.
Проверим решение по алгоритму ТВАТ.
m ======------------
x =========-------
y =====--------------

xy f(x,y)
00 1
01 0
10 1
11 1

F(x,y) = y’+x = Ayx, т.е. результаты по алгоритмам ИЭИ и ТВАТ совпали.

Задача 2[1,стр.150]
Лишь глупые люди верят в конец света.
Тот, кто верит в гармонию мира, не верит в конец света.
Всегда найдётся глупец, который не верит в гармонию мира.
Решение.
Пусть х – глупые люди, m – верящие в конец света, у – верящие в гармонию мира. Универсум –
люди.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’
f(x,y) = xy’+i = Ixy’(3)
m ======------------
x =========-------
y1 ----------------====
y2 ------------==-------
y3 -----------=======

xy f(x,y)
00 i
01 i
10 1
11 i

F(x,y) = xy’+i = Ixy’(3).


Если трактовать заключение как “Все глупцы не верят в гармонию мира”, то такой вывод
ошибочен.

Задача 3[1,стр.150]
Каждого, кто верит в себя, можно считать Человеком.
Никто, ни один Человек не верит политикам.
185
Все, кто верит политикам, не верит в себя.
Решение.
Пусть х – кто верит в себя, m – Человек, у – кто верит политикам. Универсум – люди.
M = (x ≈ m)Emy = (xm+x’m’)(m’+y’) = x’m’+xmy’
f(x,y) = x’+y’ = Exy.
m ======------------
x ======------------
y -----------------====

xy f(x,y)
00 1
01 1
10 1
11 0

F(x,y) = x’+y’ = Exy = Ayx’ = Axy’.

Задача 5[1,стр.151]
Нет таких членов парламента, которые не участвовали бы в законотворчестве.
Только 12% членов парламента составляют юристы.
Не все, кто создают законы, являются юристами.
Решение.
Пусть x – законотворцы, m – члены парламента, y – юристы. Универсум – люди.
M = EmxImy(8) = (m’+x’)&1 = m’+x’
F(x,y) = x’+i = Ix’y(5).
m ======-----------
x ---------------====
y1 ------=====-------
y2 ------========--
y3 ===----------====

xy f(x,y)
00 1
01 1
10 i
11 i

F(x,y) = x’+i = Ix’y(5), т.е. алгоритмы ИЭИ и ТВАТ дали одинаковые результаты,формально не
подтверждающие заключение, поскольку в нём не указан базис.

Задача 7[1,стр.151]
Среди юристов имеются профессиональные бизнесмены.
Настоящий бизнесмен не боится инфляции.
Некоторые юристы не опасаются инфляции.
Решение.
Пусть x – юристы, m – бизнесмены, y – не боящиеся инфляции предприниматели. Универсум –
люди.
M = IxmAmy = 1*(m’+y) = m’+y
F(x,y) = y+i = Ixy(7).
m ======-----------
x -------======----
y1 ===========---
y2 ========--------
186
y3 =======---====

xy f(x,y)
00 i
01 1
10 i
11 1
F(x,y) = y+i = Ixy(7).
Опять формальное несовпадение исходного заключения с полученными результатами, поскольку
в заключении не указан базис.

Задача 8[1,стр.151]
Только политики верят в пользу насилия.
Не всякий любитель насилия любит собственных детей.
Некоторые политики не любят своих детей.
Решение.
Пусть x – политики, m – любители насилия, y – не любящие своих детей родители.Универсум –
люди.
M = AmxImy(8) = (m’+x)&1 = m’+x
F(x,y) = x+i = Ixy(5)
m ======-----------
x ==========-----
y1 -----======-------
y2 ===-------======

xy f(x,y)
00 i
01 i
10 1
11 1
F(x,y) = x+i = Ixy(5)
Опять формальное несовпадение результатов с исходным заключением.

Задача 9[1,стр.151]
Только в споре рождается истина.
Никто не станет спорить, кроме глупца или мошенника.
Лишь глупец или мошенник могут достичь истины.
Решение.
Пусть x – “родители истины”, m – спорщики, y – глупец или мошенник. Универсум – люди.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my
F(x,y) = x’+y = Axy.
m ======-----------
x ====---------------
y ===========---

xy f(x,y)
00 1
01 1
10 0
11 1
F(x,y) = x’+y = Axy.

Задача 12[1,стр.151]
187
Боязливый к прекрасному полу – боязлив и в жизни.
Тот, кто знает логику, не боится женщин.
Трус не разбирается в логике.
Решение.
Пусть x – боязливый в жизни, m – боящийся женщин, y – знающий логику. Универсум – мужчи-
ны.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’,
F(x,y) = xy’+i = Ixy’(3).
m ======-----------
x ===========---
y1 -------------==-----
y2 -------------=====
y3 ------------------==

xy f(x,y)
00 i
01 i
10 1
11 i
F(x,y) = xy’+i = Ixy’(3).
В данном случае исходное заключение кардинально ошибочно.

Задача 13[1,стр.152]
Среди болтунов нет логиков.
Только болтун может стать политиком.
Ни один логик не станет политиком.
Решение.
Пусть x – логик, m – болтун, y – политик. Универсум – люди.
M = EmxAym = (m’+x’)(y’+m) = m’y’+x’y’+mx’
F(x,y) = x’+y’ = Exy.
m ======-----------
x --------------====
y ===----------------

xy f(x,y)
00 1
01 1
10 1
11 0
F(x,y) = x’+y’ = Exy.

Задача 14[1,стр.152]
Иногда проходимец может оказаться ясновидцем.
Если ты ясновидец, то не должен лгать.
Существуют проходимцы, которые обязаны говорить правду.
Решение.
Пусть x – проходимец, m – ясновидец, y – честный. Универсум – люди.
M = IxmAmy = 1&(m’+y) = m’+y
F(x,y) = y+i = Ixy(7)

Задача 15[1,стр.152]
Лишь двоечник по убеждению – лентяй.
Ни один студент не любит получать двойки.
188
Значит, среди студентов нет лентяев.
Решение.
Пусть x – лентяй, m – двоечник, y – студент.Универсум – учащиеся.
M = AxmEym = (x’+m)(y’+m’) = x’y’+my’+m’x’
F(x,y) = x’+y’ = Exy.
m ======-----------
x =====-------------
y -------------=====

xy f(x,y)
00 1
01 1
10 1
11 0
F(x,y) = x’+y’ = Exy.

Задача 16[1,стр.152]
Лишь в правовом государстве реализуются права граждан.
Только демократическое государство может быть правовым.
Права граждан могут быть реализованы лишь в демократическом государстве.
Решение.
Пусть x – реализующее права граждан государство, m – правовое государство, y – демократиче-
ское государство. Универсум – государство.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my = m’x’+my
F(x,y) = x’+y = Axy.
m ======-----------
x =====-------------
y ========--------

xy f(x,y)
00 1
01 1
10 0
11 1
F(x,y) = x’+y = Axy.

Выводы.

1. Анализ силлогистик здравого смысла (русской и общеразговорной) привел к выводу о том, что
наряду с использованием этих силлогистик необходимо построение атомарной силлогистики.
2. Впервые разработана атомарная силлогистика и даны методы синтеза атомарных силлогизмов и
примеры их использования для решения конкретных задач.
3. Впервые представлены методы синтеза соритов.
4. Показано, что для каждой содержательной посылки нужно использовать свой конкретный базис.

189
Глава восьмая

Естественный вывод и кванторы.

В главе под таким названием в [29] излагается вывод умозаключений из нескольких посылок.
Это может быть непосредственное умозаключение, простой категорический силлогизм или сорит. Но
суть не в названии, а в методах получения результатов. В [29] для анализа умозаключений (доказатель-
ства корректности формулы) применяются кванторы. Автор при доказательстве применяет вспомога-
тельные выводы с достаточно обременительными правилами. Приведём пример одного такого доказа-
тельства[26,стр.299].Необходимо проверить формулу:
∀x(A(x) ⇒ B(x)) & ∃x A(x) ⇒ ∃x B(x)
Цепочка вспомогательных выводов выглядит следующим образом.
∀x(A(x) ⇒ B(x)) & ∃x A(x)
A(c1)
A(c1) ⇒ B(c1)
B(c1)
∃x B(x)
∀x(A(x) ⇒ B(x)) & ∃x A(x) ⇒ ∃x B(x)
Во-первых, сложно, а во-вторых не очевидно. Поскольку здесь налицо простой категорический
силлогизм (две посылки и одно заключение), то можно применить алгоритм «Осташ-Т». Для экономии
заменим А(х) на a и В(х) на b. Не применяя кванторов, получим в русском базисе следующее выраже-
ние.
Ax(a → b)Ixa → Ixb = x(a → b)’ + jx’a’ + x + b + ix’b’ = 1(i), что доказывает истинность исходной
формулы. Более очевидным является доказательство в обычной логике суждений.
M = (a → b) & ia → ib = (a’+b)ia → ib = iab → ib = (iab)’+ ib = a’+b’+jab+ib = 1

Без кванторов также можно анализировать сориты, т.е. умозаключения с тремя и более посылка-
ми. Из [26,стр.301] позаимствуем для доказательства формулу, которая без кванторов примет вид:
Ax(a+b)Ix(a → c)Ax(b → c) → Ixc = x(a+b)’+jx’(a’+c)’+x(b’+c)’+x+c+ix’c’ =
= x+c+x’ac’+ix’ac’ = 1(i).

a ======-------------
b -----======--------
x =======------------
c1 -----=====----------
c2 -----===========

xc f(x,c)
00 i
01 1
10 1
11 1
f(a,c) = x+c+ix’c’= Ixc (2)
Полученные по алгоритмам «Осташ-Т» и «ТВАТ» результаты подтверждают достоверность ана-
лизируемого сорита. Поскольку каждый сорит, в конце концов, приводится к силлогизму, то анализ и
синтез соритов можно проводить по алгоритмам «Осташ», »ИЭИ» и «ТВАТ». В данном сорите после
приведения его к силлогизму средним термином является переменная a.
Доказательство ложности непосредственного умозаключения «поскольку все люди - мужчины
или женщины, то все люди - мужчины или все люди - женщины» сопровождается в [26,стр.300] слож-
ными вспомогательными выводами и пространными рассуждениями, что отнюдь не делает доказатель-
ство убедительным. Более того, подобные попытки обречены на неудачу, поскольку в данной ситуации
требуется не двоичная, а комплементарная логика. Словесная формулировка данного умозаключения
190
чрезвычайно аморфна. Это неотъемлемая черта любого естественного языка, с которой приходится ми-
риться. Поэтому для анализа умозаключения прежде всего необходимо корректно аналитически пред-
ставить посылку и заключение, для чего изобразим посылку на скалярной диаграмме. Здесь x - люди, m
- мужчины, g - женщины.
x ==========---------
m =====----------------
g -------=====---------

xmg f(x,m,g)
000 1
101 1
110 1
111 j
100 j
001 j
010 j
011 j
Дело в том, что в посылке на основе здравого смысла предполагается исключение ситуации, ко-
гда человек является одновременно и мужчиной и женщиной (гермафродит). Кроме того,человек не
может быть одновременно не мужчиной и не женщиной. И уж тем более не может быть никогда(j) муж-
чины или женщины не-человека. Поэтому в таблице истинности данные ситуации отмечены как невоз-
можные. Отсюда получаем выражение для посылки f:
f = x(mg’+m’g)+x’m’g’+j(x’m+x’g+mg+xm’g’)
Для заключения никаких ограничений не введено, поэтому не будем их придумывать. Исходя из
этих соображений, получим формулу для заключения z:
z = xmg’+x’m’g’+xm’g+x’m’g’ = xmg’+xm’g+x’m’g’
По алгоритму «Осташ-Т» получим:
f → z = f’+z = i(x’m+x’g+mg+xm’g’)+xmg’+xm’g+x’m’g’ ≠ 1, что и требовалось доказать.
По алгоритму «ИЭИ» получим:
AmxAgx → Axm + Axg = mx’+gx’+x’+m+x’+g ≠ 1, что подтверждает предыдущий результат.
На самом деле в этой задаче условие и доказательство должны были выглядеть так:AmxAgx →
Amx+Agx = (Amx)’+(Agx)’+Amx+Agx = 1
В примере 11.2.3.4[26,стр.301] требуется доказать кванторное соотношение:
∀x(A(x) + B(x)) & ∃x (A(x) ⇒ C(x)) &∀x(B(x) ⇒ C(x)) ⇒ ∃x C(x).
На основе русской силлогистики получим следующее доказательство:
A(a+b)x Ix(a→c) A(b→c)x → Ixc = (a+b)x’+jx’ac’+(b’+c)x’+x+c+i = x’+x+c+i = 1
На основе инженерной логики суждений доказательство выглядит ещё проще:
(a+b) i(a→c) (b→c) → ic = a’b’+ac’+j(a’+c)+bc’+ic = 1.
В примере 11.2.3.1[26,стр.301] заменим кванторное выражение
∃x (A(x)B(x)) ⇒ ∃x (A(x)) ∃x (B(x)) на бескванторное и проведём доказательство:
iab → ia ib = iab → iab = 1.
Проведём аналогичные замены в примерах 11.2.3.2 – 11.2.3.6[29].Получим следующие доказа-
тельства.
11.2.3.2. ∀x(A(x) + B(x)) & ∃x(A(x))’ ⇒ ∃xB(x)
(a+b) ia’ → ib = a’b’+a+ja’+ib = 1.
11.2.3.3. ∃x (A(x) + B(x)) & ∀x(A(x))’ ⇒ ∀xB(x)
i(a+b) a’ → b = (i(a+b))’+a+b = a’b’+j(a+b)+a+b = 1.
11.2.3.5. ∀x(A(x) + B(x)) & ∀x(A(x) ⇒ C(x)) & ∀x(B(x) ⇒ D(x)) ⇒ ∀x(C(x)+D(x)).
(a+b)(a→c)(b→d) → (c+d) = a’b’+ac’+bd’+c+d = 1.
11.2.3.6. ∃xA(x)+∃xB(x) ⇒ ∃x (A(x)+B(x))
ia+ib → i(a+b) = i(a+b) → i(a+b) = 1.
В книге В. Ф. Беркова “Логика: задачи и упражнения” (М. : 1998, стр. 122) приведена задача из
191
логики отношений, которую предлагается решать с помощью многоместных предикатов. Попытаемся
её решить без привлечения кванторного исчисления.
Задача 8б.
Иван дружит с Марьей, Марья дружит с Петром.
Решение.
Примем в качестве универсума множество дружественных отношений(круг друзей). Введём
следующие обозначения: m – множество друзей Марьи, x – множество друзей Ивана, y – множество
друзей Петра.
Тогда по алгоритму ТВАТ получим следующие скалярные диаграммы.

m ===========----------
x1 --------========-------
x2 =============-------
x3 --------=====------------
x4 ---------============
y1 ===-----------------------
y2 ===============----
y3 --------==========----
y4 ===--------------======
y5 --------=============

xy f(x,y)
00 i
01 i
10 i
11 i
f(x,y) = i.
Кстати, по алгоритму ИЭИ мы получим такой же результат.
M = Ixm(3)Imy(3) = (mx+im’+ix’)(my+im’+iy’) = mxy+im’+ix’y’
f(x,y) = i.
Следовательно, никакого заключения из этих посылок сделать невозможно. На скалярных диаграм-
мах изображены не все возможные «дружественные» ситуации, но даже представленных скаляров хва-
тило для корректного решения задачи.

Заключение.

Автор не считает предложенные методы, алгоритмы и полученные по ним результаты истиной в


последней инстанции. Однако эти результаты хорошо согласуются со здравым смыслом. Автор видит
пути ревизии изложенных методов и собирается критически переосмыслить их при более благоприят-
ных обстоятельствах. Но некоторые итоги не вызывают сомнения:
- силлогистика Аристотеля не является полной;
- некоторые «правильные» модусы Аристотеля ошибочны (наиболее очевидная ошибка - модус
AAI 4-й фигуры);
- правила посылок некорректны;
- модусы не имеют смысла, поскольку не учитывают универсум и конкретное содержание по-
сылок;
- исчерпывающее решение логических уравнений возможно только на основе 4-значной ком-
плементарной логики;
- аналитическое представление силлогистических функторов Axy,Exy впервые дано русским
логиком П. С. Порецким;
- кванторы не решают проблем анализа и синтеза силлогизмов;
- общеразговорная логика не является двоичной.

192
Глава девятая

Дисциплина мышления.

Человеческое мышление по своей природе хаотично, неорганизованно, аморфно, недисциплини-


рованно. Автор не является исключением из общего правила. Стоит ли огорчаться по данному поводу?
Вероятно, с этим нужно смириться как с неизбежностью. Ведь мы не бьём тревогу относительно того,
что не в силах состязаться с ЭВМ в шахматах и прочих рутинных вычислительных операциях. Человек
– это изумительное по совершенству создание, его предназначение состоит в решении творческих, эв-
ристических задач, где «неорганизованность» мышления возможно играет главную роль. Заставлять
человека решать шахматные задачки – это то же самое, что забивать микроскопом гвозди. Однако воо-
ружить человека инструментом, дисциплинирующем мышление так же необходимо, как и повально
компьютеризировать всё население. Правда, зачастую компьютеризация превращает нас в «мартышек с
арифмометром», а дисциплинирование мышления такой катастрофой не грозит. К тому же если «знание
– это сила», то «мышление – это могущество». Поэтому игра стоит свеч. В качестве такого «мысли-
тельного инструмента» выступает русская логика.
Проиллюстрируем её возможности на конкретном примере. Бертран Рассел в своей работе «История
западной философии»(М.:2000 –768с.) на стр.194 приводит силлогизм:
Все люди разумны.
Некоторые животные – люди.
Некоторые животные – разумны.
Покажем на этом примере недостатки мышления Б.Рассела. Во-первых, отсутствие дисциплины
мышления проявляется в отсутствии универсума, хотя даже 100 лет назад Льюис Кэрролл[16] не позво-
лял себе такого невежества. Определим, например, в качестве универсума весь животный и раститель-
ный мир. Во-вторых, вторая посылка с позиции русской логики просто безграмотна: в силу симметрии
частно-утвердительного функтора мы должны считать, что некоторые люди – животные, а остальные -
растения. В соответствии с русской логикой и здравым смыслом вторую посылку необходимо заменить
суждением «Все люди – животные». В-третьих, по теории великого русского физиолога И.П. Павлова
разумными могут быть люди и только люди, т.е. «люди» и «разумные существа» – эквивалентные поня-
тия.. Следовательно, и первая посылка некорректна. Отредактировав Б.Рассела, получим следующие
посылки.
Все люди(m) и только люди разумны(x).
Все люди(m) – животные(y).
F(x,y) = ?
Решение.
Пусть x – разумные существа, m – люди, y – животные. Универсум – животный и растительный
мир.
M = (x≈m)Amy = (xm+x’m’)(m’+y) = m’x’+xmy+x’m’y = m’x’+xmy
F(x,y) = x’+y = Axy.
m =====-------------
x =====-------------
y ========--------

xy f(x,y)
00 1
01 1
10 0
11 1
F(x,y) = x’+y = Axy.
Таким образом мы получили правильное заключение «Все разумные – животные», что вполне
согласуется со здравым смыслом. Кстати, вся аморфность мышления Б. Рассела, как и любого другого
«мыслителя», сразу проявляется при прорисовке скалярных диаграмм. Именно они принудительно дис-

193
циплинируют мышление. Автор и сам без скалярных диаграмм и русской логики становится беспомощ-
ным при анализе и синтезе силлогизмов.

Перечень сокращений

БИС - большая интегральная схема


БМОК – база минимального обобщённого кода
ВК - выбор корпуса(CE,CS)
ВПД - внешняя память данных
ВПП - внешняя память программ
ГСА - граф-схема алгоритма
ДНФ - дизъюнктивная нормальная форма
ЗОК - запрещённый обобщённый код
ИС - интегральная схема
КА - конечный автомат
КК - карта Карно
КДУ - контрольно-диагностическое устройство
КС - комбинационная схема
ЛСА - логическая схема алгоритма
МКУ - микроконтроллерное устройство
МЛЯ - матрица логических ячеек
МОК - минимальный обобщённый код
МПА - микропрограммный автомат
МСА - матричная схема алгоритма
МДНФ – минимальная ДНФ
НИИРТА – НИИ радиотехнической аппаратуры(Москва)
НТР - научно-техническая революция
ОЗУ - оперативное запоминающее устройство(RAM)
ПЗУ - постоянное запоминающее устройство (ROM)
ПЛИС - программируемая логическая интегральная схема
ПЛМ - програмируемая логическая матрица
ПМЛ - программируемая матричная логика
ППК - предполагаемый прямоугольник Карно
РОК - рабочий обобщённый код
ССдР - счётчик на сдвиговом регистре
ТВАТ - Тушинский вечерний авиационный техникум(Москва)
ЭП - элемент памяти
ЭППЗУ – электрически перепрограммируемое ПЗУ

Литература
1.Аристотель. Сочинения. В 4-х томах. Т.2- М.: Мысль,1978.
2.Баранов С.И. Синтез микропрограммных автоматов. - Л.: Энергия,1974.
3.Бахтияров К.И. Логические основы компьютеризации умозаклю-
чений. - М.:МИИСП,1986.
4.Брусенцов Н. П. Диаграммы Льюиса Кэрролла и аристотелева сил-
логистика. -В кн. Выч. техника и вопросы кибернетики .Вып.13. - М.:МГУ,1977.
5.Брусенцов Н.П. Начала информатики. - М: Фонд "Новое тысячелетие",1994.
6.Брусенцов Н. П. Полная система категорических силлогизмов
Аристотеля. -В кн. Вычислительная техника и вопросы киберне-
194
тики . Вып.19. - М.: МГУ,1982.
7.Брусенцов Н.П. Микрокомпьютеры. - М.:Наука,1985.
8.Васильев Н.А.О частных суждениях. - Казань:Университет,1910.
9.Гжегорчик А. Популярная логика. - М.:Наука,1979.
10.Глушков В.М. Синтез цифровых автоматов. - М.:Физматгиз,1962.
11.Гутников В.С. Интегральная электроника в измерительных приборах. - Л.:Энергия,1974.
12.Дербунович Л. В. ,Лобанов В.И. Диагностические процессоры в системах управления технологиче-
ским оборудованием.//Энергетика. Известия вузов,№9,1988.
13. Катречко С. Л. Введение в логику. – М.: УРАО, 1997.
14.Кириллов В.И. Старченко А.А. Логика. - М.: Юрист,1995.
15.Кулик Б.А. Логические основы здравого смысла. - СПб.:Политехника,1997.
16. Кэрролл Л. История с узелками. - М.:Мир,1973.
17.Лобанов В.И. Инженерные методы разработки цифровых уст-
ройств. - М.: НИИРТА,1977.
18.Лобанов В.И. Метод минимизации булевых функций от большого
числа переменных с помощью карт Карно. - Инф. листок
N54-87,М: МособлЦНТИ,1987.
19.Лобанов В.И. Отказоустойчивый микроконтроллерный регулятор с программируемой структурой
обработки данных. Диссертация на соискание ученой степени канд. техн. наук. - Харьков, ХПИ,1989.
20.Лобанов В.И. Кризис логики суждений и некоторые пути выхо-
да из него.//Современная логика: проблемы теории, истории и
применения в науке (Материалы V Общероссийской научной кон-
ференции) - СПб: 1998.
21.Лобанов В.И. Адаптируемая отладочная система для проектирования микроконтролле-
ров.//Приборы и системы управления, №7, 1998
22.Лобанов В.И. Решение логических уравнений. //Научно-техническая информация. Сер. 2. N%9,
1998, с. 40 - 46.
23.Лобанов В.И. Многозначная силлогистика без кванторов. //Научно-техническая информация.
Сер.2. N%10, 1998, с. 26 -36.
24.Лобанов В.И. Силлогистика Аристотеля-Жергонна. //НТИ, сер.2, Информационные процессы и
системы, N9, 1999, с. 11 - 27.
25. Лобанов В. И. Фундамент искусственного интеллекта. //НТИ, сер. 2, Информационные процессы
и системы, №5, 2000, с. 6-18.
26. Лобанов В.И. Базовые проблемы классической логики.//Современная логика:Проблемы
теории,истории и применения в науке(Материалы VI Общероссийской научной конференции),
СПбГУ, 2000 — с.499 — 504.
27. Лобанов В.И. Синтез и минимизация комбинационных схем//Информатика и
образование,N5,2000, стр. 60 – 63.
28.Логический подход к искусственному интеллекту. - М.:Мир,1990.
29.Непейвода Н.Н. Прикладная логика. - Ижевск: Удмурт.университет,1997.
30.Новиков П.С. Элементы математической логики. - М.:Наука,1973.
31.Новиков Ю.В. и др. Разработка устройств сопряжения. - М.: ЭКОМ,1997.
32Порецкий П.С. О способах решения логических равенств и об одном обратном способе математи-
ческой логики. - Казань:1881.
33.Светлов В.А. Практическая логика. - СПб: Изд. Дом »МиМ»,1997.
34.Сташин В.В. и др. Проектирование цифровых устройств на однокристальных микроконтроллерах.
- М.:Энергоатомиздат,1990.
35.Стяжкин Н.И. Формирование математической логики. - М: 1967.
36.Тейчман Д. , Эванс К. Философия. - М.: Весь Мир,1997.
37.Шачнев В.А. Математическая логика. - М: 1991.
38.Шестаков В.И. Некоторые математические методы конструирования и упрощения двухполюсных
схем класса А. Диссертация на соискание ученой степени канд. физ. - мат. наук. - М.:МГУ,1938.

195
39. Шипулин С.Н., Храпов В.Ю. Особенности проектирования цифровых схем на ПЛИС // Chip News.
—1996. — № 5. — С. 40–43.

40. Шипулин С.Н., Храпов В.Ю. Основные тенденции развития ПЛИС // Электронные компоненты. —
1996. — № 3-4. — С. 26.

ИНЖЕНЕРНАЯ ЛОГИКА ПРОТИВ КЛАССИЧЕСКОЙОШИБКА! ЗАКЛАДКА НЕ ОПРЕДЕЛЕНА.

ПРЕДИСЛОВИЕ 2

ЧАСТЬ 1 4

ПРАКТИКА ИНЖЕНЕРНОЙ ЛОГИКИ. 4

Глава первая 4

КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ 4


1.1 Основные положения алгебры логики 4
1.2 Разновидности логических интегральных схем ( ИС ) 6
1.3. Синтез комбинационных схем 8
1.4.Минимизация полностью определённых булевых функций. 9
1.5.Карты Карно для 7, 8, 9 и 10 переменных. 10
Алгоритм «НИИРТА» графической минимизации булевых функций. 14
1.6.Оценка сложности реализации булевых функций 14
1.7. Анализ комбинационных схем . 15
1.8. Формы задания булевых функций. 16
1.9. Минимизация недоопределённых булевых функций 17
1.10. Минимизация системы булевых функций. 18

Глава вторая 21

МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ МЕТОДОМ ОБОБЩЁННЫХ КОДОВ 21


2.1. Общий алгоритм определения МОК. 22
2.2. Алгоритм соседнего определения базы МОК. 26
2.3. Выводы. 38

Глава третья. 39

Триггеры 39
3.1 SR- триггеры. 39
3.2 D- триггеры. 40
3.3 . JK- триггеры. 41
3.4 Анализ работы схем с памятью 41

Глава четвёртая 43

РЕГИСТРЫ И СЧЁТЧИКИ 43
4.1 Регистры памяти. 43
4..2. Регистры сдвига. 43
4..3. Двоичные счётчики. 44
4.4 . Десятичные счётчики. 45
4.5. Элементная база для построения счётчиков. 46

Глава пятая 47

196
СИНТЕЗ СЧЁТЧИКОВ 47
5.1 Синтез счётчиков с использованием установочных входов. 47
5.2 Синтез счётчиков с использованием управляющих входов. 49
5.3. Реверсивные счётчики 53
5.4.Распределители импульсов. 55
5. 5. Cчётчики на сдвиговых регистрах. 57

Глава шестая КОНЕЧНЫЕ АВТОМАТЫ. 60

КОНЕЧНЫЕ АВТОМАТЫ 60
6.1 Понятие о конечном автомате. Автоматы Мили и Мура. 60
6.2. Методы задания автоматов. ГСА. 61
6.3. Синтез конечных автоматов. 62
6.4 Кодирование состояний и сложность комбинационной схемы. 65
6.5 . Гонки и противогоночное кодирование. 67
6. 6. Синтез релейных автоматов. 76
6.7.Синтез ГСА по функциям возбуждения. 79

Глава седьмая 80

МИКРОКОНТРОЛЛЕРЫ 80
7.1. Простой промышленный микроконтроллер 80
7.2. Микропроцессорная техника. 82
7.3. Отладочные средства. 95
7.4. Средства контроля и диагностики. 99
7.5. Отладка электронного модуля. 100

Глава восьмая 101

ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ. 101

8.1. Структура и характеристики ПЛИС. 101

8.2. Система проектирования MAX+PLUS ALTERA 109

8.3. Общая характеристика СБИС, выпускаемых фирмой ALTERA 120

8.4. Сравнительные стоимости ПЛИС фирм Xilinx и ALTERA 124

8.5. РЕКОМЕНДАЦИИ ПО ПРИМЕНЕНИЮ ПЛИС 125

ЧАСТЬ 2 127

БАЗОВЫЕ ПРОБЛЕМЫ КЛАСИЧЕСКОЙ ЛОГИКИ. 127

Глава первая 127


1,.1. Решение логических уравнений. 128
1.2. Алгоритм «Селигер» 133
1.3. Отыскание обратных функций. 137

Глава вторая 139

2.1.Законы логики суждений 139


Алгоритм «Импульс». 139
2.2. Практикум по логике суждений. 142

Глава третья 148

Базисы силлогистики. 148


3.1. Все x суть y(Axy). 151
3.2. Ни один x не есть y(Exy). 152
3.3. Некоторые x суть y. 154

197
Глава четвёртая 159

Силлогистика Аристотеля - Жергонна. 159


4.1. Алгоритм "Осташ-Т" (тест) 160
4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов). 161
4.3. Алгоритм "ИЭИ "(синтез заключения) 161
Заключение 165

Глава пятая 167

Русская силлогистика. 167

Заключение 172

Глава шестая 172

Общеразговорная силлогистика. 172

Заключение 179

Глава седьмая 179

Атомарная силлогистика. 180


7.1. Практикум по силлогистике. 184
Выводы. 189

Глава восьмая 190

Естественный вывод и кванторы. 190

Глава девятая 193

Дисциплина мышления. 193

Перечень сокращений 194

Литература 194

198

Вам также может понравиться