Русская логика для &quot

advertisement
18.05.2005.
В. И. Лобанов, к. т. н.,член РФО РАН
РУССКАЯ ЛОГИКА ДЛЯ «ФИЗИКОВ» И «ЛИРИКОВ»
Аннотация
Данное пособие является общедоступным изложением
(букварём) инженерных методов разработки цифровых
устройств, без освоения которых разработчик-цифровик не
имеет права на звание инженера. Кроме того, данное пособие
является азбукой для матлогиков. Вскрывая противостояние
инженерной и классической логики, автор показывает, что
силлогистика Аристотеля, поддержанная кванторным «исчислением», не имеет никакого отношения к логике здравого
смысла. Инженерными методами решены фундаментальные
проблемы классической логики, возраст которых насчитывает
25 веков. Популяризаторские работы по Русской логике представлены на сайте http://ruslogic.narod.ru.
Москва
2005

Посвящается
моим родителям,
Лобанову И.Е. и Лобановой О.С. .
УДК 621.3.049.77:681.518.3
УДК 681.32.001.2
УДК 161:162
ББК 87.4
Л..
3
ПРЕДИСЛОВИЕ
В процессе своего развития классическая логика превратилась в многоаспектную науку. В 1910 г. петербургский инженер Пётр Эренфест впервые в мире доказал возможность
описания и преобразования релейно-контактных схем методами алгебры логики, а в 1938 г. русский физик В. И. Шестаков
впервые в мире применил математическую логику для синтеза
релейных схем. C этого момента зарождается практическая
логика. Поскольку практическая логика решала чисто инженерные задачи, то вполне естественно назвать эту логику инженерной. Логики-гуманитарии, да и подавляющее большинство классических «матлогиков» не владеют инженерной логикой. Эта наука профессионально решает такие проблемы, как
графический и аналитический синтез комбинационных схем
(многоаргументные методы минимизации булевых функций),
синтез микропрограммных автоматов (МПА) на базе интегральных и релейных схем. К проблемам инженерной логики
относится также создание искусственного интеллекта, фундаментом которого является силлогистика. Но классическая
силлогистика совершенно беспомощна в решении поставленных перед нею задач.
Впервые проблемы формального анализа и синтеза
цифровых устройств были решены русским ученым М. А. Гавриловым. В 1948г. он защитил докторскую диссертацию по
анализу и синтезу многотактных схем. Более 20 лет прошло с
момента выхода в свет публикаций [3,14,22], популяризирующих результаты работ М.А.Гаврилова и В.М.Глушкова, но абсолютное большинство инженеров-цифровиков до сих пор
проводят разработки МПА только на основе эвристики без
привлечения формальных методов. Обидно, что талантливейшие российские инженеры спотыкаются на таких мелочах.
К слову сказать, уровень зарубежных разработок с точки зрения формального синтеза МПА ещё ниже. Мало того, даже
академик В.И.Варшавский в предисловии к книге «Апериодические автоматы» признается в своём бессилии при синтезе
асинхронного счетного триггера, хотя весь теоретический аппарат для решения этой задачи был уже разработан. В «букваре инженера» читатели найдут примеры синтеза многих
МПА, в том числе и счётного триггера. В связи с планомерным
4
уничтожением науки, производства и образования в России с
начала 90-х годов XX века и по настоящее время(2005г.) профессиональный уровень инженерного корпуса резко снизился.
Ощущается острая нехватка разработчиков-схемотехников.
Автор глубоко убежден в том, что для освоения инженерных
методов разработки цифровых устройств, а также основ логики, включая силлогистику, вполне достаточно начального образования. Учитывая проблемы подготовки специалистов в
области инженерной логики и наметившееся отставание классической логики от требований практики, автор ставит перед
собой следующие задачи:
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, 9 - 11;
инженерам - 1, 2, 3, 5 - 11;
вед. инженерам - 1-12;
логикам - 1- 10.
Поскольку вопросам синтеза МПА и силлогистике посвящено огромное количество публикаций, то автор приводит
лишь наиболее значимые с точки зрения практического применения работы.
Автор родился и вырос в Осташкове, родине
Л.Ф.Магницкого, основателя Российской математики, на берегу озера Селигер. Поэтому он не мог не упомянуть жителей
этого города и самого озера хотя бы в названиях алгоритмов.
Первая часть книги зародилась и вышла в свет в стенах Научно-исследовательского института радиотехнической аппаратуры (НИИРТА) при активном содействии ведущих специалистов этого оборонного предприятия. Особая благодарность
Инженерам от Бога Кашину Ф.А. и Столярову А.М. Замысел
второй части родился благодаря зав. проблемной лаб. ЭВМ
5
МГУ Брусенцову Н.П., ознакомившему автора с проблемами
современной логики. Книга не была бы написана без помощи
администрации ф. «РоссЭко» и Тушинского вечернего авиационного техникума (ТВАТ). Автор выражает свою признательность руководителям этих организаций Докучаеву А.В. и
Немченко Т.П.
6
ЧАСТЬ 1. Букварь разработчика цифровых устройств.
Практика инженерной логики.
Глава первая
КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ
1.1 Основные положения алгебры логики
Анализ и синтез логических схем осуществляется на базе аппарата алгебры логики или булевой алгебры [14]. Излагать весь аппарат не имеет смысла, так как в инженерной
практике используются два-три закона алгебры логики.
В алгебре логики переменные могут принимать только
два значения, 0 или 1. Для двух аргументов существуют 16 логических функций (операций, логических действий). Над переменными в основном производятся три логических действия:
сложение, умножение, отрицание (инверсия), что соответствует функциям ИЛИ, И, НЕ. Все функции в булевой алгебре могут быть описаны с помощью таблицы истинности. В нижеследующих таблицах описаны функции И(f1), ИЛИ(f2),НЕ(f3).
Аргументы
x2 x1
0 0
0 1
1 0
1 1
Аргум.
x
0
1
Функции
f1
0
0
0
1
f2
0
1
1
1
Функция
f3
1
0
7
Вместо функции И часто используется термин «конъюнкция», вместо функции ИЛИ - термин «дизъюнкция». По ЕСКД
логические элементы, реализующие функции И(f1), ИЛИ(f2),
НЕ(f3), изображаются так, как представлено на рисунке.
При написании логических формул для функции И используются следующие знаки : &, 
для функции ИЛИ - V ,+. Функция НЕ обозначается штрихом
над аргументом. Мы для обозначения отрицания будем использовать апостроф. Таким образом , можно записать:
f1 = x2 & x1 = x2  x1 = x2x1
f2 = x2 V x1 = x2+x1
f3 = x’
Основные законы алгебры Буля.
Как уже отмечалось, в булевой алгебре все операции
осуществляются с логическими переменными и подчиняются
законам алгебры логики.Опишем некоторые из них.
а) Переместительный закон
а+в=в+а;
ав = ва
б) Сочетательный закон
( а + в ) + с = а + ( в + с) ;
( ав )с = а(вс)
в) Распределительный закон
а( в + с ) = ав + ас ;
а + вс = (а + в)( а + с )
г) Закон поглощения
а + ав = а( 1 + в ) = а ;
а( а + в ) = а + ав = а
д) Закон склеивания
ав + ав’ = а ;
( а + в )(а + в’) = а
е) Идемпотентный закон
a + a = a;
a&a=a
ё) Правила Де Моргана
Эти правила справедливы для любого числа аргументов.
а + в + с + .... + z = ( а’в’с’...z’ )’
авс... = ( а’ + в’ + с’ + ... + z’ )’
Эти правила можно описать таким алгоритмом.
Для перехода от логической суммы к логическому произведению необходимо проделать следующие операции :
8
1) проинвертировать все слагаемые в отдельности;
2) заменить знаки дизъюнкции на знаки конъюнкции;
3) проинвертировать получившееся выражение.
Аналогично выполняется переход от логического произведения к логической сумме. В инженерной практике используются лишь правила Де Моргана и закон склеивания(в виде
карт Карно).
Кроме основных функций И, ИЛИ, НЕ в алгебре логики
часто используются функции равнозначности (эквивалентности) и неравнозначности (сумма по модулю 2 ).
Для обозначения этих функций используются следующие
знаки : равнозначность - ~ , сумма по модулю 2 -  . Содержание этих функций отражено в таблице .
а
0
0
1
1
в
0
1
0
1
f4
1
0
0
1
f5
0
1
1
0
Из таблицы получаем:
f4 = а ~ в = а’в’ + ав
f5
Из таблицы видно, что
f4 = f5’ или f5 = f4’
Таким образом,
а’в’ + ав = ( ав’ + а’в )’ , или
а ~ в = ( а  в )’ , а  в = (а~в)’
Алгебра множеств.
Обычно множества изображаются в виде окружностей,
эллипсов, прямоугольников, квадратов и других фигур. Однако
переход от двумерности к одномерности, т.е. к скалярным
диаграммам, позволяет существенно расширить возможности
анализа и синтеза в алгебре множеств. Попробуем доказать
идентичность функций и законов в алгебре логики и алгебре
множеств.
9
Полная система булевских функций для двух аргументов
показана в таблице.
xy z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z1
0
00 0 0 0 0 0 0 0 0 1 1 1
01 0 0 0 0 1 1 1 1 0 0 0
10 0 0 1 1 0 0 1 1 0 0 1
11 0 1 0 1 0 1 0 1 0 1 0
z1
1
1
0
1
1
z1
2
1
1
0
0
z1
3
1
1
0
1
z1
4
1
1
1
0
z1
5
1
1
1
1
Эти функции для алгебры множеств можно представить
с помощью скалярных диаграмм, которые служат основным
инструментом алгебры множеств. Здесь и далее в том случае,
если аргумент или функция равны нулю, то они изображается
тонкой линией, в противном случае – толстой.
X
Y
Z0
Z1
Z2
Z3
Z4
Z5
Z6
Z7
Z8
Z9
Z10
Z11
Z12
Z13
Z14
Z15
Все вышеперечисленные законы булевой алгебры легко
и просто доказываются с помощью алгебры множеств. Приведем, к примеру, графическое доказательство правила де Моргана для двух аргументов x+y = (x’y’)’.
10
X
Y
X+Y
X’
Y’
X’Y’
(X’Y’)’
Из скалярных диаграмм видно, что x+y = (x’y’)’. Далее
будет показано, что минимизация функций в алгебре множеств не отличается от минимизации логических функций в
алгебре логики. Таким образом, мы доказали, что алгебра логики и алгебра множеств идентичны.
1.2 Разновидности логических интегральных схем ( ИС )
Логические ИС, выпускаемые промышленностью, являются функционально полными системами логических элементов и образуют базис построения логических схем.
Функционально полная система логических элементов это такой набор элементов, используя который можно реализовать любую сколь угодно сложную логическую функцию. К
числу функционально полных систем относятся, например,
системы, реализованные на элементах «И-НЕ» либо на элементах «ИЛИ-НЕ».
Наиболее распространены в настоящее время серии
1530 ,1533,555,533,561,1561, 564,1564,176. Различаются эти
серии по быстродействию. Наиболее быстродействующей серией является серия 1530, самой инерционной - серия 176.
Задержки в элементах серии 1530 порядка 3 нс, задержки в
таких же элементах серии 176 - порядка 200нс. Максимальным
потреблением обладает самая быстродействующая серия
1530, минимальным - серия 1564.
В состав перечисленных серий входят , например, ИС,
представленные на рисунке. На этом рисунке контурными линиями ограничен состав одного корпуса ИС.
11
Пусть необходимо реализовать функцию f = а + вс в базисе И-НЕ.
Используя правило Де Моргана, получим: f = ( а’(вс)’)’ .Её
реализация представлена на рисунке.
12
1.3. Синтез комбинационных схем
Синтез комбинационных схем можно проиллюстрировать
решением простой задачи.
Задача 1.
Приёмная комиссия в составе трех членов комиссии и
одного председателя решает судьбу абитуриента большинством голосов. В случае равного распределения голосов
большинство определяется той группой, в которой оказался
председатель приемной комиссии. Построить автомат, обеспечивающий определение большинства голосов.
Решение.
Пусть f - функция большинства голосов. f = 1, если большинство членов комиссии проголосовало за приём абитуриента, и f = 0 в противном случае.
Обозначим через x4 голос председателя комиссии. x4 = 1,
если председатель комиссии проголосовал за приём абитуриента. x3, x2, x1 - голоса членов приёмной комиссии.
С учётом вышеуказанных допущений условие задачи
можно однозначно представить в виде таблицы истинности.
Заполнение таблицы осуществляем с учётом того, что
функция f является полностью определённой, т.е. она определена на всех возможных наборах переменных x1 - x4. Для n
входных переменных существует N = 2n наборов переменных.
В нашем примере N = 24 = 16 наборов.
Записывать эти наборы можно в любом порядке, но лучше в порядке возрастания двоичного кода.
x4
0
0
0
0
0
0
0
0
1
1
x3
0
0
0
0
1
1
1
1
0
0
x2 x1
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
0 0
0 1
f
0
0
0
0
0
0
0
1
0
1
13
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
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
Полученная форма функции называется совершенной
дизъюнктивной нормальной формой (СДНФ), так как каждое
логическое слагаемое представляет собой конъюнкцию всех
аргументов.
Очевидно, применяя основные законы булевой алгебры,
мы могли бы аналитически уменьшить сложность полученного
выражения. Но это наихудший способ минимизации булевых
функций.
1.4.Минимизация полностью определённых булевых функций.
Существует несколько способов минимизации булевых
функций. Прежде всего это метод Квайна-Мак-Класки, метод
Блека-Порецкого и метод минимизации с помощью карт Карно
или диаграмм Вейча [14]. Здесь будет подробно излагаться
метод карт Карно, как самый удобный метод, позволяющий
быстро решать задачи минимизации булевых функций от достаточно большого числа аргументов (6-12). При этом получается минимальная форма в базисе И, ИЛИ, НЕ.
14
Карты Карно и диаграммы Вейча хорошо описаны в [9],
но лишь для небольшого числа переменных.
Существуют карты Карно на 2 , 3 , 4 , 5 и 6 переменных.
Причем последние стали использоваться достаточно недавно.
На рисунке представлены карты Карно для 2, 3, 4, 5 и 6 аргументов.
Карты и прямоугольники Карно.
Метод Карно основан на законе склеивания. Склеиваются наборы , отличающиеся друг от друга значением одного
разряда. Такие наборы называются соседними. Карно закодировал клетки своей карты так ,что в соседних клетках оказались соседние, а значит, склеивающиеся наборы. Соседними
могут быть не только отдельные клетки, которые мы назовем
элементарными квадратами Карно, но и целые группы соседних клеток(назовем их прямоугольниками Карно). Под прямоугольником Карно будем понимать некоторую, зачастую разрозненную фигуру покрытия, все соседние клетки которой закодированы соседними наборами. Например, на вышеприведённом рисунке в поле карты для 4-х переменных изображён
прямоугольник Карно P, состоящий из четырёх элементарных
квадратов Карно, описываемых наборами x4’x3’x2’x1’ , x4’x3’x2x1’
, x4x3’x2’x1’ , x4x3’x2x1’ . Если над логической суммой этих четырёх наборов произвести последовательно операции склеивания, то мы аналитически получим результат в виде импликан15
ты (под импликантой будем понимать неполный набор)x3’x1’.
Карта Карно позволяет получить этот результат графически
значительно быстрее и проще. Для решения этой задачи используем алгоритм графической минимизации.Кстати говоря,сам Карно никакого алгоритма не предложил.
Алгоритм графической минимизации логических функций.
1. Заполнить карту Карно нулями и единицами в соответствии с таблицей
истинности.
2. Покрыть все единичные наборы минимальным количеством прямоугольников Карно, каждый из которых имеет максимальную площадь.
3. Каждому прямоугольнику Карно соответствует одна
импликанта, причём, если в границах прямоугольника Карно
какая-либо переменная принимает значения как 0 , так и 1 , то
она склеивается.
Примечание. Если в карте Карно нулей окажется меньше
чем единиц, то удобнее прямоугольниками Карно покрыть все
нулевые наборы. В результате мы получим инверсию минимизируемой функции.
Сущность алгоритма достаточно прозрачна. Стремление
к минимальному количеству прямоугольников Карно приводит
в результате к минимальному количеству слагаемых в булевой функции. Требование получения максимальной площади
прямоугольника Карно вызвано стремлением минимизировать
длину каждого слагаемого булевой функции.
Пусть булева функция Y задана так, что в поле прямоугольников Карно Р и Т вышеприведённого рисунка оказались
все единичные наборы, а в остальных клетках карты Карно
разместились все нулевые наборы данной функции. В соответствии с пунктом 3 алгоритма Карно прямоугольник Р будет
представлен импликантой x3’x1’ , а прямоугольник Т - имликантой x2x1. Таким образом, функция Y=x3’x1’ + x2x1 .
1.5.Карты Карно для 7, 8, 9 и 10 переменных.
До сих пор сохранилось мнение, что карты Карно для 710 переменных являются труднообозримыми, поэтому ни в какой литературе,кроме [14], нельзя найти не только описания
метода работы с картами Карно на большое количество пере16
менных, но и самих карт. Этим же обстоятельством объясняется тот факт, что до недавнего времени в литературе редко
встречались карты Карно даже для 6 переменных. Прежде,чем приступить к рассмотрению многоаргументных карт
Карно,покажем на простых примерах, как осуществляется соседнее кодирование для произвольного числа переменных.
Для одной переменной существует только соседнее кодирование, так как она кодируется нулём и единицей. Чтобы перейти к соседнему кодированию для двух переменных x2 и x1
предлагается следующая операцию. Напишем в один столбец
коды для x1 .Между нулём и единицей для столбца x1 проведём ось, которую назовём осью симметрии 1-го ранга.
x1
0
---1
Проведём под этим столбцом ось симметрии , которую в
дальнейшем будем называть осью симметрии 2-го ранга, и
продолжим столбец кодов для x1 симметрично относительно
этой оси (симметрично относительно оси симметрии 2-го ранга разместятся и оси симметрии 1-го ранга).
x1
0
---1
-----1
---0
Дополним одноразрядный код до двухразрядного, для
чего выше оси симметрии впишем для x2 нули , а ниже - единицы.
x2 x1
00
---01
-----11
---10
17
Таким образом , мы осуществили соседнее кодирование
для двух переменных. Чтобы построить соседние коды для
трёх переменных , проведём под столбцами двухразрядных
кодов ось симметрии 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
---1 1 1
------1 0 1
---1 0 0
18
Следовательно, для того, чтобы осуществить соседнее
кодирование для (Р+1) переменных, если известно соседнее
кодирование для Р переменных, необходимо выполнить следующий алгоритм:
1) под столбцом известного Р-разрядного соседнего кодирования провести ось симметрии (Р+1)-го ранга ;
2) осуществить симметричное отображение относительно оси симметрии (Р+1) - ранга всех Р-разрядных кодов и осей
симметрии всех рангов до ранга Р включительно ;
3) дополнить Р-разрядные коды слева одним разрядом, в
котором записать 0 для всех кодов выше оси симметрии (Р+1)го ранга и 1 для кодов, расположенных ниже оси симметрии
(Р+1)-го ранга.
Соседнее кодирование карт Карно по вышеизложенному
алгоритму производится как для вертикальных, так и для горизонтальных сторон карт. Примеры кодирования карт Карно
приведены на рисунке. На нём стрелками обозначены оси
симметрии, ранг которых отмечен цифрами, стоящими рядом
со стрелками .
19
Карта Карно на 8 переменных.
Покрытие всех единичных наборов булевой функции,
размещённых в карте Карно, прямоугольниками Карно не вызывает затруднений, если функция зависит не более, чем от 6
переменных. Обозримость карт Карно для большего числа переменных усложняется, так как становится трудно определить,
соответствует ли данная фигура покрытия понятию прямоугольника Карно. Определение достоверности прямоугольника
Карно основано на принципе симметрии, значительно повышающем обозримость карт Карно, и осуществляется с помощью приводимого ниже алгоритма.
20
Алгоритм проверки достоверности прямоугольника Карно
( принцип симметрии )
1. Если предполагаемый прямоугольник Карно (ППК)
охватывает одну ось симметрии , либо не охватывает ни одной, то перейти к п.4.
2. Если ППК располагается по обе стороны от нескольких
осей симметрии, то он должен быть симметричен относительно той из этих осей, которая имеет максимальный ранг, иначе
данная фигура не является прямоугольником Карно.
3. Разбить исходный ППК пополам. Считать любую его
половину новым ППК. Перейти к п.1.
4. Конец.
Этот алгоритм необходимо применить дважды : относительно горизонтальных и относительно вертикальных осей
симметрии.
Проверим достоверность прямоугольника Карно А на
вышеприведённом рисунке. Прямоугольник А размещается по
обе стороны от горизонтальной оси 4-го ранга. Симметричность его очевидна. Верхняя половина фигуры А симметрична
относительно горизонтальной оси симметрии 1-го ранга. Так
как ППК охватывает одну единственную ось симметрии , то
проверка фигуры покрытия А на соответствие принципу симметрии относительно горизонтальных осей закончена.
Приступаем к проверке принципа симметрии относительно вертикальных осей симметрии. Фигура покрытия А
размещается по обе стороны от вертикальной оси симметрии
4-го ранга и симметрична относительно этой оси. Левая половина фигуры А симметрична относительно оси симметрии 3-го
ранга. После повторного деления левая половина фигуры покрытия оказалась симметричной относительно оси симметрии
2-го ранга. После 3-го деления ППК не охватывает ни одной
оси симметрии, на этом проверка достоверности прямоугольника Карно заканчивается. Таким образом, фигура покрытия А
действительно является прямоугольником Карно. Аналогично
доказывается, что фигура покрытия В также является прямоугольником Карно.
На рисунке даны примеры фигур, не являющихся прямоугольниками Карно.Фигуры k, m и n не являются прямоугольниками Карно в силу нарушения принципа симметрии. Фигура
n не симметрична относительно горизонтальной оси симметрии 2-го ранга, фигура m не симметрична относительно вертикальной оси симметрии 3-го ранга. Фигура k симметрична от21
носительно оси симметрии 3-го ранга, но её половина не симметрична относительно оси 2-го ранга.
Алгоритм «НИИРТА» графической минимизации булевых
функций.
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
22
Карта Карно для решения задачи 1.
1.6.Оценка сложности реализации булевых функций
Приблизительную оценку реализации логической функции можно дать по ДНФ, подсчитав коэффициент сложности
Кс, равный общему количеству переменных, входящих в
ДНФ,плюс количество импликант. Например, для СДНФ к задаче 1 Кс = 32+8=40, а для отминимизированной функции Кс =
9+4=13.
При реализации в конкретном элементном базисе обе
функции примут вид, представленный на рисунке.Из рисунка
видно , что реализация функции по СДНФ потребовала 5 корпусов ИС, по минимальной форме - 1,58 корпуса ИС , по скобочной форме - 1,16 корпуса. Таким образом, минимизация по
карте Карно дала нам трёхкратный выигрыш по корпусам ИС
относительно реализации по СДНФ. Реализация по скобочной
форме уменьшила объём оборудования ещё на 30%. Кстати,
ориентировочную оценку аппаратной реализации по коэффициенту сложности можно вычислить по формуле: N = Кс/8, где
N – количество корпусов ИС.
23
Схема автомата до и после минимизации.
1.7. Анализ комбинационных схем .
В процессе работы с цифровыми схемами иногда возникает задача определения функции, которую реализует данная
структура.
Задача 2.
На рисунке представлена принципиальная схема комбинационного автомата. Определить его функцию.
24
Схема автомата к задаче 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-чные коды. Ниже приведена
Паскаль-программа синтеза псевдослучайных кодов для задания произвольных булевых функций.
program nabor;
uses crt;
type stroka = string[4];
txt = file of stroka;
var f1:txt;
x,y,i,j,n,m,b:integer;
st:stroka;
{-------------------------------------------------------------}
function intchar(m:integer):char;
var
ch:char;
25
begin
case m of
0..9: ch:=chr(m+ord('0'));
10..35: ch:=chr(ord('A')+m-10);
else
begin
writeln('Ошибка ввода');
halt;
end;
end{case};
intchar:=ch;
end;
{--------------------------------------------------------------}
function int10(a:longint;b:integer):string;
{Пеpевод целого 10-ичного числа в (2..36)-ичные системы}
{a,b - исх. 10-ичн. число и основание сист. счисл. соотв-енно}
var s:string;
m,i,j:integer;
chrarr:array[0..30] of string;
begin
i:=0;
for j:=0 to 30 do chrarr[j]:=' ';
repeat
m:=(a mod b);
chrarr[i]:=intchar(m);
a:=a div b;
i:=i+1;
until (a=0);
s:=chrarr[i];
for j:=i-1 downto 0 do
s:=s + chrarr[j];
int10:=s;
end;
{=================================================}
begin
{$I-} {Внутр.проверка правильности операции с файлом отключена}
writeln('**************************************************************');
writeln('* Фоpмиpование файла случайных
*');
writeln('* 2-pазpядных 4,8,16-ичных чисел для каpт Каpно *');
writeln('* Pезультиpующий файл - rnd.txt
*');
writeln('*
Лобанов В.И. 16-09-1997
*');
writeln('**************************************************************');
26
writeln;
write('Введите длину файла n и количество пеpеменных
m(4,6,8) ');
readln(n,m);
assign(f1,'rnd.txt');{Связь f1 с pезультиpующим файлом }
{$I+}
{Включить внутр.проверку}
rewrite(f1); {Открыть файл для записи}
case m of
4: begin b:=4; x:=15; end;
6: begin b:=8; x:=63; end;
8: begin b:=16;x:=255; end;
end;{case}
randomize;
for i:=1 to n do
begin
y:=random(x);
st:=int10(y,b);
write(st:8);
write(f1,st);
end;
close(f1);
writeln;
writeln('Файл rnd.txt сфоpмиpован');
writeln('Нажмите клавишу пpобела');
repeat until keypressed;
end.
Задача 3.
Полностью определённая булева функция от 4-х переменных задана десятичными рабочими наборами : РН(4) = 5,
6, 7, 8, 9, 10, 11.Число в скобках указывает количество переменных. Найти минимальную форму этой функции.
Решение.
Так как функция является полностью определённой , то
запрещёнными наборами ЗН(4) являются наборы 0 - 4, 12 - 15.
Исходя из этой информации , составляем таблицу истинности
и осуществляем минимизацию по карте Карно.
27
Таблица 4.
РН(4)
5
6
7
8
9
10
11
x4
0
0
0
1
1
1
1
x3
1
1
1
0
0
0
0
x2 x1
0 1
1 0
1 1
0 0
0 1
1 0
1 1
f
1
1
1
1
1
1
1
ЗН(4)
0
1
2
3
4
12
13
14
15
x4
0
0
0
0
0
1
1
1
1
x3
0
0
0
0
1
1
1
1
1
x2 x1
0 0
0 1
1 0
1 1
0 0
0 0
0 1
1 0
1 1
f
0
0
0
0
0
0
0
0
0
По карте Карно получаем результат:
f = x4x3’ + x4’x3(x1 + x2)
28
Решение задачи 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 наборах. Добавим к трём рабочим наборам ещё пять, а именно : 0000, 0011, 1000, 1011,
1010. Все оставшиеся наборы доопределим как запрещённые.
В результате такого доопределения получим прямоугольник
Карно, состоящий из 8 элементарных квадратов Карно. Этому
прямоугольнику соответствует функция :
y = b’
29
Решение задачи 4.
В этом разделе изложен общепринятый подход к минимизации недоопределённых логических функций(НОЛФ). С
точки зрения самодиагностики нужно учитывать входные
наборы, на которых функция не определена. Дело в том, что
зачастую вышеназванные наборы не должны появляться в
нормально работающем устройстве. Поэтому необходимо
фиксировать появление таких наборов с целью выработки
контрольных сигналов, несущих информацию о сбое или отказе.
1.10. Минимизация системы булевых функций.
Существуют достаточно сложные методы минимизации
системы булевых функций . Однако все эти методы не дают
оптимального решения, поэтому при инженерном синтезе
комбинационных схем осуществляется раздельная минимизация функций, которая тоже не всегда обеспечивает минимальное решение, но подкупает простотой.
Задача 5.
Построить преобразователь двоичного кода, получаемого на выходе делителя частоты на 12, в двоично-десятичный
код. Условие задачи отражено в таблице . Делитель работает
в коде 8-4-2-1.
x4
0
0
0
0
0
x3
0
0
0
0
1
x2 x1
0 0
0 1
1 0
1 1
0 0
y5
0
0
0
0
0
y4
0
0
0
0
0
30
y3
0
0
0
0
1
y2
0
0
1
1
0
y1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0 1 0 1
0
0 1 1 0
0
0 1 1 1
0
1 0 0 0
0
1 0 0 1
1
0 0 0 0
1
0 0 0 1
Решение.
Для каждой функции yi заполняем карту Карно, производим доопределение и осуществляем минимизацию. Весь процесс отражён на рисунке.
В результате минимизации получаем систему функций:
y1 = x1
y2 = x4’x2
y3 = x3
y4 = x4x2’
y5 = x4x2
Карты Карно к задаче 5.
Задача 6.
Построить один разряд многоразрядного сумматора.
Решение.
31
Пусть ai и вi - значения i-ых разрядов слагаемых а и в , Pi
и Si - значения переноса и суммы на выходе i-го разряда, Pi-1 значение переноса на выходе предыдущего разряда, тогда
работу сумматора можно описать с помощью таблицы истинности.
ai
0
0
0
0
1
1
1
1
вi
0
0
1
1
0
0
1
1
Pi-1
0
1
0
1
0
1
0
1
Pi
0
0
0
1
0
1
1
1
Si
0
1
1
0
1
0
0
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
Решение задачи 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’ - выходной перенос.
32
Схемы сумматоров.
Задание 2.
2-1. Построить 2/(2-10) преобразователь для делителя
частоты на 24 , работающего в коде 16-8-4-2-1.
2-2. Построить 4-входовой сумматор для суммирования
одноразрядных двоичных чисел.
2-3. Провести тренировку по применению карт Карно с
использованием программы nabor.pas.
1.11. Синтез комбинационных схем на мультиплексорах
и ПЛИС.
Мультиплексором называется такая комбинационная
схема(КС), которая реализует функцию:
Y = XiAi , где
Xi - i - й входной сигнал,
33
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.
Для ПЛМ, ПМЛ и МЛЯ требуется оязательная минимизация, для ППЗУ необходимо приведение функции к СДНФ.
34
Глава вторая
МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ МЕТОДОМ
ОБОБЩЁННЫХ КОДОВ
В СДНФ функции от n переменных каждый набор
xi
можно заменить последовательностью нулей и единиц. Такая
последовательность носит название обобщённого кода.
Метод обобщённых кодов был разработан в конце 60-х
годов на 21-й кафедре Академии им. Дзержинского д. т. н.
Мавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н.
Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники", 1972 г.). Этот метод до сих пор является самым эффективным методом минимизации логических функций.
Например, набору x4x3’x2x1’ соответствует обобщённый
код 1010. Для ДНФ обобщённый код (ОК) имеет прочерки на
местах отсутствующих переменных. Например, для функции
от 5 переменных набору x5x2’ соответствует ОК = 1--0-.
Методом обобщённых кодов удобно работать с функциями, заданными таблицами истинности. Причём рабочим
наборам соответствуют рабочие обобщённые коды (РОК), запрещённым наборам - запрещённые обобщённые коды (ЗОК).
Введём понятие оценочной функции. Оценочная функция F0p(F1p) определяет количество нулей (единиц) для одного
разряда всех РОК. Оценочная функция F0з(F1з) определяет количество нулей ( единиц ) для одного разряда всех ЗОК.
Функция вида F0 = F0р + F1з называется нулевой оценочной функцией.
Функция вида F1 = F1р + F0з называется единичной оценочной функцией.
В результате минимизации булевой функции получается
минимальная ДНФ (МДНФ), состоящая из простых импликант,
т.е. таких импликант, дальнейшая минимизация которых не
возможна. В методе обобщённых кодов простой импликанте
соответствует минимальный обобщённый код (МОК). Будем
говорить , что даннный МОК покрывает определённый РОК,
35
если нули и единицы в этом РОК стоят в тех же разрядах, что
и в данном МОК.
Сущность метода ОК заключается в том , чтобы по максимуму оценочных функций выбрать такие переменные , которые чаще всего встречаются в РОК и реже всего в ЗОК , и на
их основе построить такую совокупность минимальных обобщённых кодов , которая покрывала бы все РОК и не покрывала бы ни одного ЗОК.
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.
36
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- , то
этот код не покроет ни одного РОК, что недопустимо, т.к.
БМОК обязательно должна покрыть хотя бы один РОК.
Несколько иная ситуация складывается в том случае ,
когда БМОК, найденная по максимуму оценочной функции ,
покрывает часть РОК и все ЗОК. Пусть функция задана пятью
РОК и одним ЗОК.
1110
1000
1011
РОК
0111
0010
------------------1010
ЗОК
------------------3323
F0
3343
F1
Если в соответствии с максимумом взять в качестве
БМОК код --1-, то в конце концов мы построим некоторый ОК,
37
не покрывающий ни одного ЗОК , но длина этого ОК не будет
минимальной. Проиллюстрируем выполнение алгоритма 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
0100
1100
0110
1110
1111
3-35
2-20
y
1
1
1
1
0
F0
F1
38
Задача 8.
Построить МДНФ функции , заданной таблицей.
x8x7x6x5x4x3x2x1
0 0 1 0 0 1 1 1
0 0 1 0 0 0 0 0
0 0 1 0 0 0 1 0
0 0 1 0 0 1 1 0
0 0 1 0 0 1 0 0
0 0 1 0 1 1 0 0
0 0 1 0 1 1 1 0
0 0 1 0 1 0 1 0
0 0 1 0 1 0 0 0
0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 0
9 9 1 10 5 4 4 9
2 2 10 1 6 7 7 2
y
1
1
1
1
1
1
1
1
1
0
0
F0
F1
Решение.
1. Принимаем БМОК1 по F1 = 10 (можно по F0 =10).
БМОК1 = --1----БМОК1 покрывает один ЗОК и все РОК.
2. Выписываем все РОК и ЗОК , покрываемые БМОК1.
После подсчёта оценочных функций оказывается, что максимум F0 приходится на x1, поэтому
БМОК1 = --1----0
МОК1 = БМОК1 = --1----0
3.Непокрытым оказался только один РОК. Выписываем
этот РОК и все ЗОК в таблицу.
0
0
0
1
2
0
0
0
1
2
1
1
0
1
2
0
0
1
2
1
0
0
0
1
2
1
0
0
0
3
1
0
0
0
3
РОК
ЗОК
1
1
0
1
2
F0
F1
4. Находим БМОК2 = -----1-МОК2 = БМОК2 = -----1-Результат минимизации выглядит так :
y = x6x1’ + x3
Такой же результат получен и по карте Карно.
39
Задание 3.
Найти минимальную форму функций , указанных в задании 1, методом обобщённых кодов.
40
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 переменную (допол41
нение к БМОКi ) с максимальной оценочной функцией в соответствии с требованиями п.6. Считать полученный ОК новой
базой МОКi . Если новая БМОКi покрывает столько же ЗОК,
сколько и на предыдущем шаге, то приравнять нулю оценочные функции или дополнения к БМОКi , отбросить присоединённую переменную и добавить к БМОКi переменную с максимальной оценочной функцией в соответствии с положениями
п.6, считать полученный ОК новой БМОКi .Если БМОКi покрывает хотя бы один ЗОК, перейти к п.7.
9. Принять в качестве МОКi базу МОКi .
10. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными кодами, перейти к п.12.
11. Выписать из исходной таблицы истинности все ЗОК и
те РОК , которые не покрыты минимальными обобщёнными
кодами . Считать вновь полученную таблицу исходной таблицей истинности. Увеличить индекс МОК на единицу , т.е. i :=
i+1. Перейти к п.2.
12. Конец.
Задача 9.
Произвести минимизацию булевой функции , заданной
таблицей.
№п/п
1
2
3
4
5
6
7
8
1
2
3
4
x8 x7 x6 x5 x4 x3 x2 x1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 0 0 1 1 0 0
0 0 0 0 1 0 0 1
0 0 0 0 1 0 0 0
0 1 1 0 0 0 0 0
0 1 1 0 0 0 0 1
0 0 0 1 0 0 0 1
0 1 0 1 0 0 0 1
1 1 0 1 1 0 0 0
0 0 0 0 0 1 1 0
y
1
1
1
1
1
1
1
1
0
0
0
0
Решение.
1. По алгоритму 2 пп. 1-3 для РОК2 находим соседний
ЗОК, т.е. находим БМОК1 = ---0----.
42
2. По алгоритму 2 пп. 7-9 находим
МОК1 = ---0--0Так как МОК1 покрывает все РОК , то в соответствии с
п.10 алгоритма 2 получаем
y = x5’x2’
Сущность алгоритма 2 заключается в том , что отыскиваются в первую очередь « необходимые « МОК, т.е. МОК для
тех РОК , развязывание которых с ЗОК максимально затруднено , так как они развязываются только по тем переменным ,
по которым возможно склеивание данного РОК со всеми ЗОК.
Под развязыванием понимается процесс выявления тех переменных в РОК, которые не встречаются в ЗОК.
Задача 10.
Произвести минимизацию булевой
таблицей.
№
x6 x5 x4 x3 x2 x1
1
0 0 1 0 0 0
2
0 0 1 0 0 1
3
0 1 1 0 1 1
4
0 1 1 1 1 0
5
1 0 1 0 0 0
6
1 1 1 1 1 1
1
0 0 1 0 1 1
2
0 0 1 0 1 0
3
0 0 1 1 0 1
4
1 1 0 1 1 0
5
1 1 1 0 1 0
6
1 1 1 1 0 1
функции , заданной
y
1
1
1
1
1
1
0
0
0
0
0
0
Решение .
1. По алгоритму 2 пп.1-3 для РОК1 находим
БМОК1 = ----02. По алгоритму 2 пп.7, 8 строим таблицу.
1
001000
1
2
001001
1
5
101000
1
001101
0
111101
0
3. По алгоритму 2 п.8 из таблицы находим БМОК1 = ---004. По алгоритму 2 п.9
43
МОК1 = БМОК1 = ---005. По алгоритму 2 для непокрытых РОК (для РОК3) находим
БМОК2 = -1----.
6. По алгоритму 2 пп.7, 8 , 11 строим таблицу.
3
4
6
011011
011110
111111
110110
111010
111101
5-2322
1-4344
1
1
1
0
0
0
F0
F1
7. По алгоритму 2 п.9 находим МОК2
МОК2 = 01---8. По алгоритму 2 пп.7, 8, 11 строим следующую таблицу
.
111111
001011
001010
001101
110110
111010
111101
1
0
0
0
0
0
0
9. По алгоритму 2 п.3 находим БМОК3
БМОК3 = ----110. По алгоритму 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 строим следующую таблицу.
44
111111
1
001011
0
0010-F0
1111-F1
13. По таблице 17 определяем
МОК3 = -1--11
Таким образом ,
y = x3’x2’ + x5x2x1 + x6’x5
На рисунке представлено решение задачи 10 с помощью
карты Карно . Функция y представлена в виде МДНФ.
Из рисунка видно , что результаты минимизации по карте
Карно и по методу обобщённых кодов совпадают.
Карта Карно к задаче 10.
Задача 10а.
Произвести минимизацию логической функции, заданной
таблицей истинности.
45
N%
1
2
3
4
5
6
7
1
2
3
4
5
x8x7x6x5x4x3x2x1
00110011
00100010
00110111
10110111
00101011
01101101
01111110
01110111
11010111
00011110
11111101
10101110
98377855
34955477
y
1
1
1
1
1
1
1
0
0
0
0
0
F0
F1
Т.к. РОК3 и ЗОК1 являются соседними по x7,то в качестве
БМОК1 выбираем х7’,не обращая внимание на абсолютный
максимум F0 для х8.БМОК1 покрывает РОК1 - РОК5
и
ЗОК3,ЗОК5.Подсчитаем оценочные функции для выбора дополнения к БМОК1 и получения МОК1.
N%
1
2
3
4
5
3
5
x8x7x6x5x4x3x2
x1
00110011
00100010
00110111
10110111
00101011
y
1
1
1
1
1
00011110
10101110
5x136521
2x641256
0
0
F0
F1
Дополнение х4’ могло бы привести нас к МДНФ,поэтому
мы выберем эквивалентное по оценочной функции дополнение х1,чтобы убедиться в некоторых недостатках метода. В
результате получим МОК1 = x7’x1. Поскольку МОК1 покрывает
46
РОК с номерами 1,3 - 5,то стартовая таблица для синтеза
БМОК2 выглядит так:
N%
2
6
7
1
2
3
4
5
x8x7x6x5x4x3x2
x1
00100010
01101101
01111110
01110111
11010111
00011110
11111101
10101110
64364655
24524233
y
1
1
1
0
0
0
0
0
F0
F1
Исходя из этой таблицы получаем БМОК2 = x8’. Для
нахождения МОК2 строим следующую таблицу.
N%
2
6
7
1
3
x8x7x6x5x4x3x2
x1
00100010
01101101
01111110
01110111
00011110
y
1
1
1
0
0
х2142333
х3413222
F0
F1
Отсюда получаем МОК2 = х8’x5’, который дополнительно
покрывает РОК2 и РОК6. Найдём БМОК3.
N%
7
1
2
x8x7x6x5x4x3x2
x1
01111110
01110111
11010111
47
y
1
0
0
3
4
5
00011110
11111101
10101110
43343544
23323122
0
0
0
F0
F1
F0 для х3 имеет максимальное значение,но использовать
x3’ в качестве БМОК3 нельзя,поскольку единственный РОК не
имеет нуля в данном разряде. Принимаем БМОК3 = x8’. Строим очередную таблицу для синтеза последнего МОК.
N%
7
1
3
x8x7x6x5x4x3x2
x1
01111110
01110111
00011110
y
1
0
0
х1121222
х2212111
F0
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 не только менее трудоёмок, но и более эффективен.
Проверка результата минимизации булевых функций.
Результат минимизации булевой функции является корректным , если выполняются следующие условия:
48
1. Совокупность МОК покрывает все РОК .
2. Совокупность МОК не покрывает ни одного ЗОК.
2.3. Выводы.
Далеко не всегда по методу ОК может быть получена
МДНФ. Чаще всего в результате минимизации удаётся получить одну из тупиковых ДНФ. В этом недостаток метода. Алгоритм 2 по сравнению с алгоритмом 1 даёт более компактный
результат, т.е. вероятность получения МДНФ по алгоритму 2
выше, чем по алгоритму 1.
Достоинствами метода являются простота и высокая
скорость получения результата. Особенно этот метод эффективен для минимизации булевых функций от большого числа
переменных (n8). Вполне приемлемым даже без применения
ЦВМ является число наборов , на которых задана функция , в
пределах 1000. Например , 6 булевых функций от 12 переменных, определённые на 320 наборах (см. задачу 11) были отминимизированы вручную в течение 30 минут. Разумеется ,
задача такой сложности может быть решена на ЭВМ. Однако
даже только на ввод с последующей проверкой 320 наборов
для 6 функций потребуется значительно больше времени, чем
на ручное решение. Эффективность данного алгоритма выше
всех других, известных автору.
В соответствии с алгоритмом 2 в 1974г. была написана
программа, которая позволяла минимизировать булевы функции от 36 переменных, определённые на 2000 наборах. Программа осуществляла контроль правильности ввода исходных
массивов. Если функция введена неверно , то выводились на
печать неправильно введённые РОК или ЗОК , а программа
переходила к минимизации следующей функции. Время , затраченное ЦВМ М-220 на минимизацию булевой функции от
36 переменных , определённой на 1000 наборах , составило 6
минут .В 1985г. на языке Паскаль эта программа была переписана для ПЭВМ ДВК-2М. Она обрабатывала 16 функций от
32 переменных. Количество наборов достигало 2000.
Вопрос о минимизации булевых функций вручную или с
использованием ПЭВМ решается в зависимости от количества
наборов, на которых задана функция, количества соседних
РОК и ЗОК, а также от частоты чередования РОК и ЗОК в исходной таблице истинности. Чем больше количество наборов,
задающих функцию, чем меньше соседних РОК и ЗОК, чем
49
выше частота чередования РОК и ЗОК, тем предпочтительнее
использование ЭВМ. Например, систему из 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
Примечание: Кс - коэффициент сложности булевой функции.
50
Глава третья.
Триггеры
Триггером называется логическое устройство с двумя устойчивыми состояниями. Выходной сигнал на выходе такого
устройства зависит не только от входных сигналов , действующих в данный момент , но и от сигналов , воздействовавших
в предыдущий момент времени. Существует несколько видов
триггеров.
Наиболее распространёнными из них являются SR- , D- , и JKтриггеры.
3.1 SR- триггеры.
SR- триггер имеет 2 управляющих входа S и R. Если S = 1 , то
выход триггера Q = 1 , если R = 1 , то Q = 0. Комбинация S =
1 и R = 1 для SR - триггера является запрещённой. На рисунках представлены две реализации SR - триггера и его условное обозначение.
Схемы и обозначения SR-триггеров.
При синтезе схем на ПЛИС используется САПР
MAX+PLUS II, которая требует предварительной установки
всех элементов памяти в строго определённое состояние. Для
этого необходимо ввести хотя бы вход сброса. Простое решение этой проблемы выглядит так.
51
52
Полученный SR-триггер работает без замечаний, что видно из приведённых диаграмм. Разумеется, нельзя подавать
одновременно S=R=1: это приводит к самовозбуждению.
Однако представленная схема обладает большой задержкой распространения сигнала. При построении схем с высоким быстродействием необходимо более компактное решение. Оно может быть таким.
За быстродействие пришлось заплатить: инверсный выход триггера нельзя использовать в режиме сброса. Как и в
первой схеме запрещается одновременная подача S=R=1.
53
3.2 D- триггеры.
D- триггер при наличии разрешающего сигнала на тактовом
входе устанавливается в состояние , соответствующее потенциалу на входе D.
Таким образом , D- триггер является тактируемым элементом
памяти. Тактирование может осуществляться как потенциалом
, так и фронтом (передним или задним).
Триггер, тактируемый потенциалом, может изменить своё состояние только при наличии определённого потенциала на
тактовом входе C. Триггер , тактируемый фронтом, меняет
своё состояние только с приходом определённого фронта
сигнала на тактовый вход C.
На рисунках представлены тактируемые потенциалом и передним фронтом D- триггеры и их условные обозначения, а
также временные диаграммы работы.
54
Схема и условное обозначение тактируемого потенциалом Dтриггера.
Условное обозначение и диаграммы работы переднефронтового D-триггера
3.3 . JK- триггеры.
JK- триггеры являются самыми сложными из рассмотренных
элементов памяти. Они обладают большими функциональными возможностями. JK- триггеры могут быть тактируемыми и
нетактируемыми. Универсальный JK- триггер может работать
во всех режимах. Например, для перевода универсального JKтриггера в нетактируемый режим достаточно на вход C подать
потенциал C = 1. На рисунке изображён тактируемый задним
фронтом JK- триггер серии134 (1ТК343) и временные диаграммы его работы.
55
Условное обозначение и диаграммы работы заднефронтового
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
Произвести анализ работы устройства, изображённого на рисунке, табличным способом.
56
Схема устройства к задаче 12.
Решение.
Опишем функции возбуждения входов SR- триггера.
S = E1(E1E2)’ = E1(E1’ + E2’) = E1E2’
R = E2(E1’ + E2’) = E1’E2
Зададим исходное состояние SR- триггера. Пусть Q0 = 0. Далее будем изменять входные сигналы E1 и E2 , определять
функции S и R , а по ним находить Qn. Процесс анализа отражён в таблице.
E1 S=E1E2’
E2
0 0
0
0 1
0
1 0
1
1 1
0
R=E1’E2
0
1
0
0
Qn Примечание
0
0
1
1
Q1=Q0 , т.е Qn=Qn-1
Q2=0
Q3=1
Q4=Q3 , т.е. Qn=Qn-1
Даже простой пример показывает,насколько неудобен ручной
анализ работы схем с памятью.В главе «Конечные автоматы»
мы познакомимся с более эффективным методом. Однако не
нужно забывать, что существует множество САПР, позволяющих проводить анализ работы не только цифровых, но и аналоговых схем.
57
Глава четвёртая
РЕГИСТРЫ И СЧЁТЧИКИ
Наиболее часто в схемах с памятью используются такие
функциональные узлы, как регистры и счётчики. Регистры
разделяются на два типа: параллельные (регистры памяти) и
последовательные (регистры сдвига). Регистры могут быть
реализованы на любых триггерах.
4.1 Регистры памяти.
Эти регистры предназначены для хранения информации,
представленной в виде двоичного кода. Регистры памяти осуществляют параллельную запись всего кода с приходом тактового импульса. Записанная информация хранится до прихода следующего тактового импульса. На рисунке представлен
один из вариантов регистра памяти, реализованного на Dтриггерах, тактируемых задним фронтом. Этот регистр предназначен для записи и хранения 4-разрядного кода X.
С приходом заднего фронта тактовой частоты fт регистр
запишет код X и будет хранить его до тех пор, пока код X не
изменит своей величины. Но это изменение кода X пройдёт на
выход регистра только с приходом заднего фронта fт.
Схема параллельного регистра.
4..2. Регистры сдвига.
Сдвиговые регистры широко используются в цифровой
технике, в частности для преобразования последовательного
двоичного кода в параллельный или наоборот. На рисунке
изображён сдвиговый регистр , реализованный на JK- триггерах.
58
Схема регистра сдвига.
Благодаря последовательной схеме соединения разрядов регистра каждый задний фронт fт устанавливает последующий триггер в состояние, в котором до этого находился
предыдущий, осуществляя сдвиг информации на разряд вправо.
На следующем рисунке представлена ИС типа 533ИР1,
которая реализует функции как 4-х разрядного регистра памяти, так и функции регистра сдвига в зависимости от значения
сигнала на входе выбора режима V2:
при V2=0 - режим сдвига,
при V2=1 - режим параллельной записи.
На рисунке :
C1- тактовый вход продвижения информации , поступающей по входу V1.
C2- тактовый вход параллельной записи.
Если смена режима для 533ИР1 происходит в процессе
работы, то для обеспечения безошибочной работы регистра
необходимо выполнить условие C1’C2’=1.
Условное обозначение универсального регистра.
59
4..3. Двоичные счётчики.
Двоичные счётчики могут быть синхронными и асинхронными . Двоичный асинхронный счётчик может быть построен
последовательным соединением счётных триггеров, или JKтриггеров , у которых J=K=1.
Асинхронный и синхронный двоичные счётчики.
Недостатком асинхронных счётчиков является задержка
в установлении соответствующего кода после прихода счётного импульса. Эта задержка, в частности, может приводить к
появлению ложных кодов на выходе счётчика и сбою дешифратора. Например, после кода 011 на выходе счётчика должен
появиться код 100 (коды записаны в порядке Q3Q2Q1). В асинхронном счётчике при последовательном срабатывании триггеров
код
будет
меняться
следующим
образом
011-010-000-100, т.е. во время переходного процесса появляются два ложных кода 010 и 000.
В двоичных синхронных счёичиках срабатывание триггеров происходит одновременно или почти одновременно , так
как все тактовые входы триггеров запараллелены . Временная
диаграмма двоичного счётчика представлена на рисунке.
60
Диаграммы работы двоичного счётчика.
Для построения синхронных счётчиков с коэффициентом
деления K=2n используется n JK- триггеров, функции возбуждения которых определяются соотношением
m-1
Jm=Km=& Qi ,
i=1
где Jm, Km - соответствующие входы JK- триггера, на котором реализован m-ый разряд счётчика.
61
4.4 . Десятичные счётчики.
Десятичные счётчики строят на основе четырёхразрядных двоичных. Для понижения коэффициента пересчёта четырёразрядного счётчика с 16 до 10 вводят различные логические связи. В зависимости от вида логической связи одним и
тем же десятичным числам в различных счётчиках могут соответствовать различные четырёхразрядные двоичные коды. В
этом случае говорят, что счётчики работают в различных двоично-десятичных кодах.
Наиболее часто в счётчиках используется взвешенное
кодирование. Если любое десятичное число А может быть выражено в виде суммы
n
А =  aiQi
,
i=0
где Qi - двоичные числа (0 или 1) в соответствующих разрядах кода,
аi - некоторые постоянные числа (веса разрядов),
то кодирование, построенное на данном соотношении,
называется взвешенным.
Чаще других употребляется двоично-десятичный код 8-42-1.Здесь и далее цифры 8, 4, 2, 1 обозначают веса разрядов
двоично-десятичного кода. Преимущество кода в его одназначности. Другие же коды неодназначны. Например, в коде 42-2-1 десятичное число 4 можно представить как 1000 или
0110, поэтому существуют таблицы, однозначно закрепляющие за каждым кодом соответствующее десятичное число [5].
В таблице приводятся наиболее употребительные двоично-десятичные коды. Код с избытком 3 является самодополняющимся. Для этих кодов характерно то, что при их поразрядном инвертировании получается код числа, дополняющее данное до девяти. Это свойство кода удобно при построении цифровых приборов, измеряющих знакопеременные величины.
62
Q4Q3Q2Q1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
код 8-4-2-1
0
1
2
3
4
5
6
7
8
9
-
Невзвешенный Код с избытком
код
3
0
1
2
3
0
1
2
4
3
5
4
5
6
7
8
8
9
9
6
7
-
63
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-34-5-8-9-10-11-12-13.Это связано с тем, что счётчик построен по
схеме соединения делителей с коэффициентами деления 2 x
3 x 2 вместо 2 x 2 x 3 . Такую архитектуру можно объяснить
лишь безграмотностью разработчиков.
Условные обозначения ИС асинхронных счётчиков 133
серии.
64
Глава пятая
СИНТЕЗ СЧЁТЧИКОВ
Существует несколько методов синтеза счётчиков. Рассмотрим два из них.
5.1 Синтез счётчиков с использованием установочных входов.
Суть этого метода заключается в том, что для построения счётчика с коэффициентом деления К используется nразрядный двоичный счётчик (n=Ilog2KC), охваченный обратной связью, которая формируется с помощью сборки двоичного кода К и подаётся на установочные входы обнуления.
Например, для построения счётчика с К=10 необходимо использовать 4-х разрядный двоичный счётчик, а на установочные R-входы подать набор (сборку) - Q4Q3’Q2Q1’. Реализация
этого счётчика изображена на рисунке.
Синхронный двоичный счётчик.
65
На схеме этого рисунка и в дальнейшем на все незадействованные входы микросхем подавать постоянный потенциал
логической 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) наиболее прост: достаточно представить коэффициент деления в двоичном коде, чтобы получить установочную функцию.
66
Выводы и рекомендации
Счётчики, реализованные с использованием установочных входов, обладают следующими недостатками:
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.
67
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
0
0
1
1
5.2.1
Qn
0
1
0
1
J K
0 1 - 1
- 0
S
0
1
0
-
R
0
1
0
D
0
1
0
1
Синтез синхронных счётчиков.
Этот метод прекрасно изложен в [14].Для синтеза счётчика необходимо построить совмещённую таблицу состояний
68
и входов счётчика. Проследим этот процесс на примере синтеза синхронного делителя на 5 (счётчик с К=5).
Совмещенная таблица счетчика с К = 5
N состояния
0
1
2
3
4
Q3Q2Q1
000
001
010
011
100
J3K3
0001-1
J2K2
01-0
-1
0-
J1K1
1-1
100-
При переходе из 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-ой триггеры сохранили на своих
выходах 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
69
В соответствии с этим результатом строим счётчик.
Счётчики можно строить на различных элементах памяти, при
этом нужно использовать соответствующую таблицу входов.
Синхронный делитель на 5.
Задача 13.
Построить счётчик с К=3 на D-триггерах.
Решение
Строим совмещённую таблицу и синтезируем функции
возбуждения D2 и D1.
Q2
0
0
1
Q1
0
1
0
D2 = Q1
D2
0
1
0
D1
1
0
0
D1 = Q2’Q1’
70
Cхема счётчика представлена на рисунке.
Синхронный делитель на 3.
Весьма важным моментом является кодирование состояний счётчика. При оптимальном кодировании удаётся получить наиболее компактную реализацию счётчика. Вопросы оптимального кодирования состояний счётчика полностью не
решены. Алгоритмы, предлагаемые в [3] для оптимального кодирования состояний микропрограммных автоматов, далеко
не всегда дают положительные результаты.
Рассмотрим влияние кодирования состояний счётчика на
примере синтеза делителя на 5.
Задача 14
Построить счётчик с К=5 при невзвешенном кодировании
состояний на JK-триггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции
возбуждения.
Q3Q2Q1
000
001
101
111
110
J3K3
01-0
-0
-1
J2K2
001-0
-1
K3 = K2 = Q1’
J2 = Q3
; J3 = Q1
J1 = Q2’
;K1= Q2
71
J1K1
1-0
-0
-1
0-
Делитель на 5 при невзвешенном кодировании.
Из сравнения рисунков видно, что получившийся счётчик
имеет оптимальную структуру. Можно построить, как минимум,
ещё 3 различных варианта делителей на 5, имеющих минимальную реализацию. Одна из таких реализаций приводится в
[14]. Рассмотренный делитель на 5 был синтезирован с применением так называемого соседнего кодирования, которое
считается оптимальным для построения конечных автоматов
на элементах памяти с раздельными входами, типа JK- или
SR-триггеров [3]. Если для построения синхронного счётчика с
К=12 применить соседнее кодирование 0000, 0001, 0011, 0010,
0110, 1110, 1010, 1011, 1001, 1000, 1100, 0100, то коэффициент сложности счётчика, построенного на JK-триггерах, составит 26, а при использовании взвешенного двоичного кодирования ( 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000,
1001, 1010,1011) коэффициент сложности схемы будет равен
8. Практика построения синхронных счётчиков с большими коэффициентами пересчёта показала, что наилучшие результаты даёт взвешенное двоичное кодирование состояний счётчика.
Методы синтеза счётчиков полностью пригодны для разработки схем различных синхронизаторов и распределителей
импульсов, так как и те, и другие являются счётчиками с невзвешенным кодированием состояний.
Пример синтеза синхронизатора, используемого в цифровом фильтре, рассмотрен в задаче 11, где Q10 - Q12 - выходы синхронизатора, а Q1 - Q9 - выходы вспомогательного счётчика с К=320. Функции возбуждения этого счётчика не представляют интереса, так как счётчик состоит из известных делителей частоты на 32 и на 10.
72
5.2.2 . Синтез асинхронных счётчиков.
Синтез асинхронных счётчиков[14] возможен при выполнении следующих условий:
1) если хотя бы один разряд обеспечивает формирование заднего фронта для всех тех случаев, когда другой разряд
изменяет своё состояние;
2) задержка, вносимая самой длинной цепью делителя
от тактового входа одного разряда до входа возбуждения другого, должна быть меньше периода тактовой частоты последнего из указанных разрядов.
Синтез асинхронных счётчиков разбивается на 4 этапа :
1) находится совокупность разрядов, в которой один из
разрядов мог бы формировать тактовую частоту для других
(этот разряд будем называть тактовым);
2) для тактируемых разрядов из этой совокупности совмещённая таблица для функций возбуждения заполняется
только по строкам, соответствующим заднему фронту тактового разряда, а в остальных строках ставится прочерк;
3) д ля разрядов, на тактовый вход которых поступает
основная частота f, синтез осуществляется по синхронному
методу;
4) определяется граничная частота fгр для данной реализации.
Задача 15
Построить асинхронный делитель на 6.
Решение.
Строим совмещённую таблицу.
Q3Q2Q1
000
001
010
011
100
J3K3
-0-1--
J2K2
-1--1
--
73
J1K1
1-1
1-1
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.
Асинхронный делитель на 6.
Выводы и рекомендации.
1. Счётчики, реализованные с использованием управляющих входов, не застрахованы от появления ложных выходных наборов, но это никогда не приводит к сбою в работе
счётчиков, так как изменение состояния счётчиков происходит
при установившемся значении выходных наборов.
2. Синхронные счётчики указанного класса позволяют
реализовать импульсные последовательности с высокой точностью привязки фронтов.
3.Если высокая степень точности привязки импульсной
последовательности не требуется, то предпочтительнее асинхронная реализация счётчиков.
4. Как синхронные, так и асинхронные счётчики с использованием управляющих входов максимально защищены от
сбоев по установочным входам.
74
Задание 6.
Построить синхронные и асинхронные делители частоты
с использованием управляющих входов на JK - и D -триггерах
:
6-1) К = 12
6-2) К = 14
6-3) К = 24
6-4) К = 25
5.3. Реверсивные счётчики
Реверсивные счётчики (РС) могут быть асинхронными и
синхронными. И те и другие могут быть как двоичными так и с
произвольным коэффициентом пересчёта К. На рисунке показана схема асинхронного двоичного РС без зоны нечувствительности,т.е. такого РС, который с приходом каждого тактового импульса изменяет своё состояние.
Асинхронный и синхронный реверсивные счётчики.
Изменение направления счёта в РС происходит в зависимости от величины сигнала N. При N = 1 счётчик считает в
прямом направлении, при N = 0 - в обратном.
Асинхронный РС практически не может быть использован, так как при изменении направления счёта может изменяться код, записанный в РС. Например, при переходе от
суммирования к вычитанию, если предыдущий триггер нахо-
75
дится в состоянии 1, то сигнал на входе последующего триггера изменится с 1 на 0, что приведёт к его опрокидыванию.
Этого недостатка лишены синхронные счётчики, так как
они изменяют своё состояние по заднему фронту тактовой частоты,и изменение N в промежутке между фронтами (т.е. на
протяжении периода тактовой частоты) не влияет на состояние РС. Пример синхронного двоичного РС приводится на рисунке.
Построение РС без зоны нечувствительности с произвольным К осуществляется методом синтеза счётчиков с использованием управляющих входов. Аналогично можно строить РС с зоной нечувствительности.
Задача 16.
Построить синхронный РС без зоны нечувствительности
с К=3 на JK-триггерах.
Решение.
Строим совмещённую таблицу и синтезируем функции
возбуждения J2, K2, J1, K1.
Код состоян.
Q2Q1
0 0
0 1
1 0
N=1
J2K2
01
1-1
N=0
J1K1
1-1
0-
J2K2
10-1
J1K1
0-1
1-
С помощью карт Карно получаем :
J2 = Q1’N’ + Q1N = (Q1N’+Q1’N)’
J1 = Q2’N + Q2N’ = (Q2N+Q2’N’)’
Схема счётчика и синтез функций возбуждения представлены на рисунке.
76
Синхронный реверсивный счётчик с К=3 без зоны нечувствительности.
Задача 17
Построить синхронные РС с зоной нечувствительности
на JK-триггерах. К=3. При R1R2=10 РС должен считать в прямом направлении, при R1R2= 01 - в обратном, при R1R2=00 РС
не изменяет своего состояния, ситуация R1R2=11 является запрещённой.
Решение.
Строим совмещённую таблицу и синтезируем функции
возбуждения.
Код
сост.
Q2Q1
0 0
0 1
1 0
R1R2 = 10
J2K2
01-1
J1K1
1-1
0-
R1R2 = 01
J2K2
10-1
J1K1
0-1
1-
R1R2 = 00
J2K2
00-0
J1K1
0-0
0-
J2’ = Q1’R2’ + Q1R1’
J1’ = Q2’R1’ + Q2R2’
K2’= R1*R2
K1’= R1’R2’
В этой задаче минимизацию функций вюзбуждения
удобнее проводить по нулям, т.е. получать минимальную
форму инверсии функции возбуждения. В этом случае удаётся
применить ИС типа 2И-2ИЛИ-НЕ, что уменьшает количество
корпусов ИС и снижает число связей между элементами.
77
Задание 7.
Построить РС без зоны нечувствительности и с зоной
нечувствительности на JK-, D - и тактируемых SR - триггерах :
7-1) К = 10
7-2) К = 12
7-3) К =16
5.4.Распределители импульсов.
В инженерной практике большое значение имеет синтез
распределителей импульсов (РИ). Под распределителем импульсов понимается устройство, работа которого описывается
периодической логической функцией вида
Qi = Fi(t) , где Qi – i –выход РИ, t – время.
Самым простым решением задачи будет построение РИ
на основе тактового генератора (ТГ),счётчика и дешифратора.
Однако полученный РИ имеет ряд недостатков. Одним из них
является искажение выходной последовательности в результате возникновения гонок. Избавиться от них можно, введя
дополнительный регистр на выходе дешифратора. Однако, в
случае построения быстродействующих РИ требуется минимальное запаздывание, а дополнительный регистр противоречит предъявленным требованиям. Выходом из сложившейся ситуации служит синтез синхронного РИ в соответствии с
приводимым алгоритмом. Алгоритм излагается параллельно с
синтезом конкретного РИ.
Пусть необходимо построить РИ, имеющий две выходные последовательности Q1,Q2 с периодом Тс, представленные на рисунке.
78
Алгоритм синтеза РИ.
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 – разрядных таким образом, чтобы среди них не было одинаковых.
Q1Q2Q3Q4:
1100,1101,1110,1000,0000,0100,1111,1001,0001,0010.
6. Используя аппарат синтеза синхронных счётчиков, построить РИ.
79
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
ия
1
011000
2
101100
3
110110
4
011011
5
001101
8-й
код
30
54
66
33
15
80
D0
1
1
0
0
0
6
7
8
9
10
11
12
13
14
15
16
17
000110
100011
110001
111000
111100
011110
001111
000111
000011
000001
100000
110000
06
43
61
70
74
36
17
07
03
01
40
60
1
1
1
1
0
0
0
0
0
1
1
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;
81
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;
{----------------------------------------------------------}
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);
{Развязывание кодов счётчика.
82
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);
writeln;
pirazb(k,v0);
for i:=1 to k do
write(v0[i]:2);
writeln;
formtbl(k,v0,v,n);
83
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
Результаты работы этой программы убедительно доказывают неэффективность синтеза РИ на сдвиговых регистрах:
слишком быстро растёт объём памяти.
84
Глава шестая.
КОНЕЧНЫЕ АВТОМАТЫ.
6.1 Понятие о конечном автомате. Автоматы Мили и Мура.
Конечным автоматом называется устройство, задаваемое конечным множеством из элементов :
1) множество входных сигналов (входной алфавит) х = { х1, ... , хf, ... х } ;
2) множество состояний (алфавит состояний) А = { a0,, ... , am, ... aм };
3) множество выходных сигналов (выходной алфавит) у = { у1, ... , уg , ... уG } ;
4) функция переходов -  ;
5) функция выходов -  ;
6) начальное состояние автомата - а0.
Под состоянием понимается одна из множества отличных друг от друга ситуаций, в которой может оказаться конечный автомат. Например, счётчик с К=5 имеет 5 различных состояний, реверсивный счётчик с К=10 имеет 10 различных состояний.
В общем виде структура конечного автомата представлена на рисунке. Из него видно, что конечный автомат состоит
из комбинационной схемы КС, которая формирует выходной
алфавит у и функции возбуждения  , и элементов памяти ЭП
с выходами  .
85
Обобщённая схема конечного автомата.
Функции возбуждения описывают те сигналы, которые
необходимо подать на управляющие входы элементов памяти.
На практике наибольшее распространение получили автоматы Мили и Мура.
Автомат Мили задаётся уравнениями :
a(t+1) = (a(t), x(t)) ;
у(t) = (a(t), x(t)) ;
Автомат Мура описывается соотношениями:
a(t+1) = (a(t), x(t) ) ;
у(t) = (a(t)).
Из законов функционирования автоматов Мили и Мура
видно, что они отличаются только формированием выходного
алфавита. Структурные схемы автоматов Мили и Мура представлены ниже.
Схемы автоматов Мили и Мура.
86
6.2. Методы задания автоматов. ГСА.
Любой конечный автомат может быть представлен с помощью направленных графов, таблиц переходов и выходов,
граф-схем алгоритмов (ГСА), логических схем алгоритмов
(ЛСА) или матричных схем алгоритмов (МСА). Этот перечень
можно было бы продолжить.
Наиболее наглядной формой представления автомата
является ГСА[2].
ГСА - ориентированный связный граф, содержащий вершины четырёх типов: начальную, условную, операторную и
конечную.
Условные обозначения вершин ГСА.
ГСА удовлетворяет следующим требованиям:
1. Содержит конечное число вершин.
2. Имеет одну начальную и одну конечную вершины.
3. Входы и выходы вершин соединяются дугами, направленными от выхода ко входу.
4. Каждый выход соединён только с одним входом.
5. Любой вход соединяется по крайней мере с одним выходом.
6. Для любой вершины графа существует хотя бы один
путь к конечной вершине.
7.В каждой условной вершине записывается один из
элементов множества логических условий (входной алфавит).
х = { x1, .... , xf, ... xF}.
8. В каждой операторной вершине записывается оператор уt - подмножество множества выходных сигналов у.
у = { у1, ... , уg , ... уG }. Допускается уt = .
Наиболее наглядно алгоритм работы КА описывается с
помощью граф-схемы алгоритма (ГСА). Однако рисование
ГСА – утомительный процесс, поэтому иногда используется
логическая схема алгоритма (ЛСА). Ниже приведена ЛСА ра87
боты контроллера для установки режимов синтезатора частоты (СЧ) AD9854. Здесь использованы следующие обозначения:
X1 – UDCLK с выхода СЧ,
X2 – «укороченный» ГИП,
Y1 – СБРОС для СЧ,
Y2 – разрешение записи в СЧ (EWR),
Y3 – UDCLK для фиксации записанных данных в СЧ.
A0(Y1)A1(Y1)A2(Y1)A3(21/00,Y2)A4(22/00,Y2)A5A6(Y3)A7(1D/14,
Y2)A8(1E/46,Y2)
A9(1F/C6,Y2)A10(20/00,Y2)A11A12(Y3)A13(1F/03,Y2)A14A15(Y3)A1
6(04/1A,Y2)
A17(05/E1,Y2) A18(06/47,Y2) A19(07/AE,Y2) A20(08/14,Y2)
A21(09/7B,Y2)A22A23(Y3)
1 A24(11/K4,Y2) A25(12/K3,Y2) A26(13/K2,Y2) ) A27(14/K1,Y2) )
A28(15/K0,Y2)A29
A30(Y3) A31(1A/ V2,Y2) A32(1B/ V1,Y2) A33(1C/ V0,Y2) A34A35(Y3)
2 A36x12x2
1 A0(Y1)
В скобках рядом с состояниями указаны выходные сигналы, адреса и данные для СЧ.
88
6.3. Синтез конечных автоматов.
Различают два метода синтеза: эвристический и формальный. Эвристический метод - метод проб и ошибок, но зачастую он приводит к весьма экономным решениям. Единственный его недостаток заключается в том, что для получения решения эвристическим методом требуется длительное
время работы высококвалифицированных специалистов. При
таком подходе в век НТР достаточно сложное устройство может морально устареть прежде, чем закончится его эвристическая разработка.
При формальном методе синтеза решение задачи получается чрезвычайно быстро, сроки разработок существенно
сокращаются, а саму формальную разработку можно переложить либо на ЭВМ, либо на технический персонал.
Не следует считать, что формальный метод исключает
творческий этап в разработке цифрового устройства. От того,
насколько остроумна была идея, т.е. алгоритм устройства, целиком и полностью зависит сложность схемы прибора, изделия. Поэтому правильнее считать формальный метод формально - эвристическим.
Обычно синтез конечных автоматов (цифровых
устройств, микропрограммных автоматов) осуществляется по
следующей схеме.
1. Проработка идеи реализации конечного автомата, выявление отдельных узлов и связей между ними. Составление
структурной схемы автомата.
2. Составление ГСА, разметка ГСА.
3. Составление по ГСА обратной структурной таблицы.
4. Кодирование состояний. Для асинхронного автомата
применяется противогоночное кодирование, для синхронного
применяется кодирование, обеспечивающее минимизацию
комбинационной части устройства.
5. Построение принципиальной схемы по обратной
структурной таблице автомата.
Кстати,именно этот формальный метод использует автор
уже более четверти века как для разработки конечных автоматов на базе цифровых интегральных микросхем,так и ,введя в
него некоторые дополнения, для синтеза сложных релейных
схем.Возврат к релейным схемам был связан с высокой поме-
89
хоустойчивостью и радиационной стойкостью реле.Особенно
это стало актуальным после Чернобыля.
Каждый из 5 пунктов требует обстоятельного разговора.
Попытаемся понять суть этих вопросов на примере построения достаточно простых конечных автоматов.
Задача 18.
Очистить от дребезга входной сигнал х, подача которого
осуществляется тумблером.
Решение.
Очистку от дребезга можно осуществить, например, с
помощью синхронного конечного автомата (КА). Задача КА
будет заключаться в том, чтобы по заднему фронту тактовой
частоты f выходной сигнал у принимал то же значение, что и
входной сигнал х. В этой ситуации выходной сигнал не изменится на протяжении всего периода тактовой частоты, как бы
не менялся при этом х1. Для того, чтобы дребезг входного сигнала не проявлялся на выходе, необходимо иметь тактовую
частоту с периодом, превышающим длительность дребезга.
Так как дребезг тумблера длится не более 2 мс, то период
тактовой частоты должен быть не менее 2 мс. Структурная
схема автомата получилась простой.
Идею обработки входного сигнала х и выдачи очищенного от дребезга выходного сигнала у можно выразить с помощью временной диаграммы.
Из временной диаграммы видно, что при первом же совпадении заднего фронта с х=1 автомат должен выдать у = 1, а
при совпадении заднего фронта с х = 0 автомат должен выдать у = 0.
90
2. Опишем логику работы автомата, т.е. зададим автомат, с помощью ГСА . Разметим ГСА для автомата Мура, для
чего рядом с каждой операторной вершиной проставим идентификатор состояний, причём начальная и конечная вершины
ГСА отмечаются как одинаковые состояния. В начальной стадии КА находится в начальном состоянии а0 (начальная вершина) и проверяет наличие сигнала х. Если х=0, то КА не меняет своего состояния, что отображено связью х=0, выходящей из первой условной вершины и входящей в конечную
вершину, которая отмечена начальным состоянием а0. В
начальной и конечной вершинах нет ни одного оператора, т.е.
у=0. Если х=1, то КА оказывается в новом состоянии а1 по связи х=1, выходящей из первой условной вершины и входящей в
операторную вершину с оператором у. Если после того, как КА
оказался в состоянии а1, входной сигнал х к моменту прихода
заднего фронта тактовой частоты не изменил своего значения,
т.е. х=1, то КА останется в состоянии а1 и будет выдавать на
своём выходе сигнал у=1 (связь из второй условной вершины).
В том случае, если приход заднего фронта тактовой частоты
совпадает с х=0, то КА вернётся в начальное состояние а0. Таким образом, составление, разметка и проверка ГСА работы
КА закончены, так как мы убедились, что выходной сигнал у
по заднему фронту тактовой частоты принимает то же значение, что и входной сигнал х.
3. Составим для конечного автомата обратную структурную таблицу. Обратная структурная таблица показывает, при
каких входных сигналах и из каких состояний осуществляется
переход в данное состояние и какие выходные сигналы выда-
91
ются при этом переходе. В столбце состояние перехода (СП)
для автомата Мура указывается не только состояние перехода, но и выходной сигнал, который соответствует данному состоянию.
Исх.сост.
(ИС)
a0
a1
a0
a1
Код исх.
сост.

0
1
0
1
Вх.сигн. Сост.пере Код СП Функ.возб.
х.
x
(СП)
(КСП)
JK
0
a0
0
00
(-)
0
-1
1
a1
1
11
(у)
1
-0
4. Так как синтезируемый конечный автомат имеет только 2 состояния, то его можно построить на одном элементе
памяти.
n = ]log2N[,
где n - количество элементов памяти,необходимое для
реализации КА,
имеющего N состояний.
n = ] log22[ = 1
Таким образом, коды состояний будут одноразрядными.
Так как автомат очень простой, то кодирование может быть
произвольным. Кодирование состояний приведено в таблице
29. Выбираем в качестве элемента памяти JK-триггер.
Столбцы для функций возбуждения заполняются в соответствии с таблицей входов конкретного элемента памяти (в
данном случае JK-триггера) для обеспечения перехода из исходного состояния в состояние перехода.
Функции возбуждения синтезируются как логические
функции, зависящие от кода исходного состояния и входного
сигнала.
J = x,
K = x’
Выходные функции зависят только от кода состояния перехода (для автомата Мура). Поэтому у = , т.е. выходной сигнал формируется на прямом выходе JK-триггера. Синтез
функций возбуждения и принципиальная схема конечного автомата приводятся на рисунке.
Задачу очистки от дребезга можно было решать на любом элементе памяти. В частности для D-триггера мы получили бы более компактное решение, а именно :
D=x,
у=
92
Автомат очистки от дребезга.
93
6.4 Кодирование состояний и сложность комбинационной схемы.
При синтезе счётчика с К=5 мы видели, что сложность
комбинационной части счётчика зависит от кодирования состояний. Это утверждение справедливо для всего класса конечных автоматов.
В [3] приводятся два простых алгоритма оптимального
кодирования состояний конечного автомата. Эти алгоритмы
хорошо работают при синтезе автоматов, насчитывающих от
нескольких десятков до нескольких сотен функций возбуждения и несколько сотен переменных, когда классические методы минимизации булевых функций оказываются неприемлемыми.
Алгоритм оптимального кодирования состояний автомата на D-триггерах.
1. Каждому состоянию автомата Qm (m=1, ... , M) ставится
в соответствие целое число Nm, равное числу переходов в состояние аm.
2. Числа N1, ... , Nm, ... Nм сортируются по убыванию.
3. Состояние Qt с максимальным Nt кодируется кодом
(00....0).
4. Следующие I состояний (I - число элементов памяти) в
упорядоченном в п.2 списке кодируется кодами, в которых используется одна единица в каком-либо разряде, а во всех
остальных разрядах нули.
5. Для кодирования следующих I состояний используются коды, содержащие две единицы, затем три единицы и т.д.,
до тех пор, пока все состояния не будут закодированы.
Суть этого алгоритма заключается в том, что мы стремимся использовать минимальное количество единиц в кодах
тех состояний, переход в которые происходит чаще всего. Таким образом, функции возбуждения реже принимают значение
1, что приводит к уменьшению количества термов. Так как
классические методы минимизации при синтезе сложных автоматов не применяются, то по алгоритму кодирования мы получаем коды состояний, обеспечивающие минимальную комбинационную часть конечного автомата.
94
Для конечных автоматов, построенных на триггерах с
раздельными входами, применяется алгоритм кодирования
состояний, минимизирующий суммарное число изменений состояний элементов памяти на всех переходах автомата [2].
Соседнее кодирование является частным случаем кодирования состояний, получаемым по указанному алгоритму.
Задача 20.
Построить 10-разрядный кодовый замок. который открывается последовательным нажатием двух определённых клавиш. Предусмотреть защиту от посторонних. Замок должен открываться кодом 19.
Решение.
Построим замок, используя автомат Мили. ГСА кодового
замка и её разметка представлены на рисунке. В этой ГСА использованы следующие обозначения :
х0 - не нажата ни одна из клавиш
х1 - нажата только клавиша №1
х2 - нажата только клавиша №9
х3 - снятие сигнализации
у1 - включить соленоид
у2 - включить сирену
По ГСА строим обратную структурную таблицу.
95
ГСА кодового замка.
ИС
321
a0
a3
a4
a0
a1
a1
a2
a2
a3
a0
a2
a4
000
010
100
000
001
001
011
011
010
000
011
100
Входы
x0x1’
x2’
x1
x1
x1
x1’
x0
x2x0’
x2
x1’x0’
x0’x2’
x3’
СП
КСП
Вых.
J3K3
J 2 K2
J1K1
a0
000
000
000
001
001
011
011
010
010
100
100
100
у1
у1
у2
у2
у2
0001
00000011-0
0-1
0001-0
-0
-0
0-1
0-
0001-0
-0
-0
-1
о0-1
0-
a1
a2
a3
a4
96
После применения алгоритма оптимального кодирования
для триггеров с раздельными входами получаем коды :
a0 - 000
a1 - 001
a2 - 011
a3 - 010
a4 - 100
После минимизации получим функции возбуждения :
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
Далеко не всегда автомат Мура даёт более компактные
решения, чем автомат Мили. Например, если часть ГСА имеет
вид, представленный на нижеприведённом рисунке, то реализация этой ГСА с помощью автомата Мили позволит уменьшить число состояний, а значит, и количество элементов памяти.
97
6.5 . Гонки и противогоночное кодирование.
При работе автомата могут появиться гонки, вызванные
разбросом параметров элементов памяти. Задержки, вносимые триггерами, имеют различные значения, поэтому одни
элементы памяти изменяют свои состояния быстрее, чем другие. Такие состязания могут привести, например, к тому, что
переход из состояния 011 в состояние 110 может произойти
при входном сигнале х двумя путями : 011-010-110 или 011111-110.
Если из состояний 010 и 011 есть переход под действием сигнала х в состояние 110, то такие состязания называются
некритическими, если же таких переходов нет, то состязания
называются критическими. При критических состязаниях работа автомата нарушается. Считается, что некритические состязания не опасны, но это не совсем так. Автомат, попадая в
промежуточные состояния ( в нашем примере это состояния с
кодами 010 и 111 ), может сформировать короткий выходной
сигнал, которого окажется вполне достаточно, например для
обнуления какого-либо функционального узла, т.е. работа автомата будет искажена.
Следовательно существует проблема защиты как от критических, так и от некритических гонок.
Существует несколько способов защиты от гонок [3], мы
рассмотрим только один из них - противогоночное кодирование.
Противогоночное кодирование заключается в развязывании тех пар состояний, для которых осуществляется переход под действием одного и того же сигнала. Пусть (, ) и (,
) - две пары двоичных кодов. Пары (, ) и (, ) называются
развязанными, если некоторый разряд кода принимает одно
значение на паре (, ) и противоположное - на паре (, ).
Мацевитный Л.В. и Денисенко Е.Л. доказали следующую
теорему: в автомате, состояния которого закодированы двоичными кодами конечной длины, гонки отсутствуют тогда, когда для двух любых переходов (am, as) и (ak, al), as  al . происходящих под действием одного и того же входного сигнала,
пары кодов состояний развязаны. Авторы приводят алгоритм
кодирования.
98
Алгоритм противогоночного кодирования
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. Рассматриваемая
пара переходов развязана.
Состояния
а0
а1
а2
а3
а4
а5
1
0
1
1
0
Из таблицы видно, что развязана также пара (а5а0) и
(а2а2). Приступаем к развязыванию пары (а5а0), (а3а4).
99
Развязывание пары (а5а0), (а3а4).
Состояния
а0
а1
а2
а3
а4
а5
1
0
1
1
1
1
0
Из таблицы видно, что для развязывания этих пар нужно
закодировать (а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).
Состояния
а0
а1
а2
а3
а4
а5
123
000
100
101
111
110
010
100
Задача 22
Построить тактируемый потенциалом D-триггер.
Решение.
1. Строим ГСА, разметку ведём для автомата Мура.
В ГСА использованы обозначения :
x1 - тактовый сигнал
x2 - выходной сигнал на входе
y - выход D - триггера
ГСА и схема тактируемого потенциалом D-триггера.
2. Строим обратную структурную таблицу автомата.
ИС
а0
а1
а0
а1

0
1
0
1
СП
а0
(-)
а1
(у)
КСП
0
0
1
1
Вх.
х1’ + х2’
х1х2’
х1х2
x1’+x1x2
SR
001
10
-0
у = а1 = 
3. После минимизации получаем функции возбуждения :
S = x1x2 ; R = x1x2’ = x1x2’ + x1x1’ = x1(x2’ + x1’) = x1(x1x2)’
101
Задача 23
Построить синхронный JK-триггер на асинхронных SRтриггерах.
Решение.
Будем строить JK-триггер, тактируемый задним фронтом.
Триггер имеет два состояния : 0 и 1, но в силу того, что изменение этих состояний происходит с приходом заднего фронта
тактовой частоты, каждому выходному состоянию соответствуют 2 промежуточных. Пусть х3 - сигнал тактовой частоты,
тогда при х3=0 триггер устанавливается в одно из выходных
состояний, при х3=1 триггер переходит в состояние подготовки
изменения выхода. Таким образом, конечный автомат, реализующий функции синхронного JK-триггера, должен иметь 4 состояния.
1. Строим ГСА с разметкой для автомата Мура.
В ГСА использованы обозначения :
х1 - сигнал на входе J
х2 - сигнал на входе К
х3 - тактовая частота
у - выход JK-триггера
102
ГСА заднефронтового JK-триггера.
2. Строим обратную структурную таблицу автомата
ИС
x3x2x1
СП
КСП
S2R2
S1R1
21
а0
00
0-а0
00
00а3
10
01(-)
00
01
0а1
01
0-0
00
001
а0
00
1-а1
01
010
а1
01
1-(-)
01
0-0
а1
01
0-1
а2
11
10
-0
а2
11
0-(у)
11
-0
-0
а3
10
0011
-0
10
а2
1 1
1-а3
10
-0
01
а3
10
1-(у)
10
-0
0-
103
3. После минимизации получим :
у = а2 + а3 = 11 + 10 = 1 - = 2
S2 = 1x3’x1 ;
R2 = 1’x3’x2
S1 = 2’x3 + 2x3’x2’
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 Кгц.
у - выходной сигнал.
Данная ГСА не является единственной. Вероятно, это и
не лучшее решение. Но полученная ГСА не имеет ничего
лишнего.Предлагается самостоятельно прорисовать временные диаграммы работы конечного автомата по заданной ГСА
для лучшего понимания процесса очистки от дребезга.
104
ГСА антидребезгового автомата.
2. Строим обратную структурную таблицу.
ИС
а0
а2
а0
а1
а1
а2
а1
а2
21
10
01
10
00
00
01
00
01
x3x2x1
--0
110
--1
--1
-10
--1
-00
0-0
СП
а0
(-)
а1
(у)
а2
(у)
КСП
10
10
00
00
00
00
01
01
J2K2
-0
1-1
00000-
на
асинхронных
J1K1
0-1
000-1
1-0
После минимизации получим :
у = 2’
J2 = 1x3x1’
K2 = x1
J1 = 2’x2’x1’
K1 = x3 + x1
Задача 25
Построить
триггерах.
счётный
триггер
105
SR-
Решение.
Прежде всего необходимо отметить, что в [3] отрицается
возможность формального синтеза счётного триггера на асинхронных элементах памяти.
1. Строим ГСА, описывающую работу счётного триггера.
Размечаем ГСА для автомата Мура.
В ГСА использованы следующие обозначения :
х - входной сигнал
у - выход счётного триггера
ГСА счётного триггера.
2. Строим обратную структурную таблицу.
ИС
а0
а3
а0
а1
а1
а2
а2
а3
21
00
10
00
01
01
11
11
10
x
0
0
1
1
0
0
1
1
СП
а0
а1
а2
(у)
а3
(у)
106
КСП
00
00
01
01
11
11
10
10
S2R2
001
0010
-0
-0
-0
S1R1
0010
-0
-0
-0
01
0-
После минимизации получаем :
у = а2 + а3 = 2
S2 = 1x’ ;
R2 = 1’x’
S1 = 2’x ;
R1 = 2x
Схема счётного триггера представлена на рисунке.
Счётный триггер.
При синтезе цифрового фазового детектора(ЦФД) возникла задача слежения за фазой двух сигналов с частотой 10
МГц с точностью не хуже 2%. Поскольку запаздывание элементов составляло не более 2 нс, а тактовых частот выше 10
МГц не было в распоряжении разработчика, то пришлось
строить асинхронный МПА на быстродействующей ПЛИС
EP1K10TC100-1.
Первоначально ГСА МПА ЦФД состояла всего из 5 операторных вершин, но в процессе противогоночного, соседнего
кодирования пришлось добавить 6-ю вершину. Этого оказалось мало: тупиковые, неиспользуемые состояния приносили
немало хлопот, появляясь время от времени при симуляции
ЦФД. Пришлось их тоже ввести в основной цикл ГСА. ЦФД работает без замечаний, если разность фаз сравниваемых сигналов превышает 2 нс/100 нс * 360 = 7,2 градуса. В качестве
элементов памяти были использованы быстродействующие
SR-триггеры со сбросом.
107
108
На нижеприведённых рисунках представлен асинхронный делитель частоты с коэффициентом деления, равным 1,5.
109
110
Задание 8.
8-1. Построить тактируемый потенциалом JK-триггер на
SR-триггерах.
8-2. Построить тактируемый фронтом D-триггер на SRтриггерах.
8-3. Построить десятиразрядный кодовый замок, срабатывающий при последовательном нажатии 3-х кнопок. Предусмотреть защиту от постороннего. При синтезе использовать
как JK-триггеры, так и D-триггеры, тактируемые фронтом.
111
6. 6. Синтез релейных автоматов.
Релейные автоматы (РА) и релейные схемы в наше время воспринимаются как анахронизм. Однако, после аварии на
Чернобыльской АЭС выяснилось,что эта техника может работать там, где спотыкаются микропроцессоры. Кроме того,оказалось,что не только большие интегральные схемы(БИС), но и микросхемы среднего уровня интеграции(СИС)
подвержены сбоям при воздействии жёстких промышленных
помех. Даже при выполнении всех помехозащитных мероприятий сбой в компьютерной системе управления в сентябре
1998 г. вывел из строя отечественную ракету с зарубежными
спутниками на борту. Инерционные релейные схемы обладают повышенной помехоустойчивостью. Синтез релейных автоматов имеет некоторые особенности по сравнению с синтезом МПА на интегральных микросхемах. Рассмотрим синтез
РА на простых примерах.
Задача 26.
Построить РА «кнопочной станции». При нажатии кнопки
«Пуск»(x1) РА выдаёт сигнал управления Y, который может
быть снят лишь после нажатия кнопки «Стоп»(x2). Одновременное нажатие кнопок «Пуск» и «Стоп» недопустимо.
Решение.
Построим ГСА для «кнопочной станции».
ГСА «кнопочной станции».
112
ГСА для РА тривиальна. По ней построена обратная
таблица переходов.
ИС
a1
a0
a0
a1

1
0
0
1
x2x1
1-0
-1
0-
СП
a0
a1
P
0
0
1
1
Поскольку ситуация x2x1 недопустима, то при различных
доопределениях можно получить как минимум два варианта
функции возбуждения P:
1) P = x1 + x2’;
2) P = ( + x1)x2’.
Право на жизнь имеют оба варианта, но второй для
релейщиков почему-то оказался более предпочтительным. В
данном примере синтез РА ничем не отличается от синтеза
МПА на базе D-триггеров, хотя автомат в данном случае является асинхронным. Однако при разработке более сложных релейных схем необходимо учитывать возможность проявления
гонок и появления генераторного режима. Поэтому необходимо прежде всего обеспечить противогоночное кодирование.
Кроме того,во избежание возникновения генераторного режима нужно при синтезе функций возбуждения так располагать
прямоугольники Карно в КК,чтобы они все взаимно перекрывали друг друга, чтобы не было ни одного автономного прямоугольника.
Для построения помехоустойчивых РА необходимо использовать достаточно инерционные реле с временем переключения порядка 20 - 100 мс. Автор для этой цели применял
телевизионное реле КУЦ-1М.Можно строить РА на электростатических реле, которые выпускаются в стандартных корпусах интегральных схем(ИС). Обычно синтез МПА ведётся на
основе синхронных элементов памяти. Весьма желательно
иметь такой элемент и для релейных схем. Для упрощения
синтеза РА построим синхронный переднефронтовой релейный D-триггер. Далее этот триггер можно будет использовать
в качестве стандартного модуля, синтезируя лишь функции
возбуждения и сняв проблему генераторного режима.Построим ГСА переднефронтового D-триггера.
113
ГСА переднефронтового D-триггера.
По ГСА переднефронтового D-триггера строим обратную
таблицу переходов.
ИС
10
x2x1
СП P1P
2
a0
a3
a0
a1
a2
a1
a2
a2
a0
a3
00
10
00
01
11
01
11
11
00
10
-0
-0
11
-1
11
-0
-0
01
01
-1
a0
a1
(Y)
a2
(Y)
a3
00
00
01
01
01
11
11
10
10
10
После минимизации с учётом перекрытия прямоугольников Карно получим:
114
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', где
P - вход реле,
S, R - входы SR-триггера,
 - выход реле(нормально-разомкнутые контакты реле).
Для иллюстрации этого алгоритма построим РА кнопочной станции:
ИС
x2x1 СП P SR

a1
1
1a0
0
01
a0
0
-0
0
0a0
0
-1
a1
1
10
a1
1
01
-0
Cинтез функций возбуждения с учётом недопустимости ситуации x2x1 = 11 позволяет получить следующие результаты:
S = x1
R = x2
P = (x1+)x2'
Т.е. получен один из двух вариантов рабочей функции
возбуждения РА.
Поскольку от воздействия помех необходимо защищать в
первую очередь элементы памяти,то всю комбинационную
часть РА можно выполнить на ПЛМ или ППЗУ,т.е. РА может
быть «гибридным».Наличие электровакуумных(ламповых)
триггеров не оставляет сомнений в том,что формальный синтез МПА можно распространить и на этот класс радиационностойких приборов.
115
6.7.Синтез ГСА по функциям возбуждения.
В СССР в 80-е годы к сожалению возобладала технология «цельнотянутого» проектирования. Автор всегда был ярым
противником такой «технологии». Если автомат построен эвристически, то «вскрыть» его значительно проще, чем формальносинтезированный. Но иногда такое вскрытие формального автомата просто необходимо: например, при утрате ГСА
даже собственных разработок МПА. Впервые предлагается
алгоритм «РоссЭко» синтеза ГСА по известным функциям
возбуждения. Функции возбуждения легко получить из принципиальной схемы МПА.
Алгоритм «РоссЭко».
1.Занести все функции возбуждения в карты Карно так,
чтобы горизонтали(строки КК) были отмечены кодами состояний МПА , а вертикали - входными сигналами.
2.Заполнить таблицу прямых переходов (ТПП) таким образом,чтобы одинаковым исходным состояниям и одинаковым входным сигналам соответствовало одинаковое состояние перехода.
3.По ТПП построить ГСА.
Пример.
Даны функции возбуждени РА:
P1 = 0x1’ + 10 + 1x7
P0 = 1’x7 + 1’0 + 0x7
Найти ГСА.
Решение.
Построим КК по известным функциям возбуждения.Из КК
видно,что из состояния a0 = 00 по сигналу x7’ осуществляется
переход в состояние a0.Аналогично,из a0 по x7 выполняется
переход в a1 и т.д. Заполним ТПП.
116
ИС
a0
a0
a1
a1
10 x7x2x1
00
0-00
1-01
--1
01
--0
СП
a0
a1
a1
a2
P1P0
00
01
01
11
a2
a2
a3
a3
11
11
10
10
a3
a2
a0
a3
10
11
00
10
-0-10-1--
Построение ГСА по ТПП не вызывает затруднений. Кроме основного своего назначения ТПП позволяет проверить корректность синтеза функций возбуждения по заданной ГСА.
117
Глава седьмая
МИКРОКОНТРОЛЛЕРЫ
7.1. Простой промышленный микроконтроллер
В настоящее время отечественная промышленность выпускает широкий ассортимент микроконтроллеров (МК) для
управления технологическими процессами. Среди них наиболее популярными являются микропроцессорные приборы семейства «ПРОТАР» производства Московского завода тепловой автоматики и «ЛОМИКОНТ», «РЕМИКОНТ» разработки
НИИТеплоприбор и многоцелевые контроллеры КР-300 серии
«КОНТРАСТ»(г.Чебоксары). Эти микроконтроллеры обладают
большими функциональными возможностями: позволяют обрабатывать аналоговые и цифровые входные сигналы, обеспечивают многоканальное управление. Все эти неоспоримые
достоинства весьма существенны при решении проблем
управления в сложных технологических системах. Однако
применение вышеназванных МК оказывается нерентабельным
при решении задач управления простыми технологическими
процессами.
Таким образом, оказался неприкрытым класс простых
производств так называемого малого бизнеса, где требуется
простой, надёжный, легко перепрограммируемый (т.е. фактически универсальный) и, что не менее важно, дешёвый промышленный микроконтроллер. Исходя из практики разработки
и 5-летней эксплуатации промышленных контроллеров данного класса, были сформулированы следующие технические
требования :
1. Количество управляющих входов
8
2. Количество каналов управления
4
3. Рабочий диапазон температур
от +5 до 40С
4. Питание от сети переменного тока
- напряжение
220 В(+22В, -33В)
- частота
50 Гц(+1 Гц, -1Гц)
5. Потребляемая мощность от сети не более 10 ВА
Наиболее простым решением данной проблемы явилась бы реализация подобного устройства на базе однокри118
стальной микро-ЭВМ (ОМЭВМ) типа КМ816ВЕ31 (Intel8051),
КР1801ВЕ1( 4-разрядная КМОП ОМЭВМ) или «микро-чип» серии РIC.
Однако у пользователя сразу возникает ряд проблем.
Во-первых, необходимо в качестве платы за «гибкость» МК
иметь в наличии отладочную систему, стоимость которой может достигать 5 тыс. долларов. Во-вторых, для модификации
программного обеспечения потребуется квалифицированный
программист. В-третьих, помехозащита МК, работающего в
непосредственной близости от магнитных пускателей и управляющего электродвигателями мощностью до 6 кВт и более
при реальных условиях низкого качества промышленной сети
и особенно заземления, оказалась чрезвычайно сложной проблемой для МК на базе ОМЭВМ. Сбои в работе ОМЭВМ могут
приводить к катастрофическим последствиям. И никакие
«войч-доги» ситуацию не спасают.Это слишком дешёвая, а
посему малоэффективная мера защиты. Опыт эксплуатации
станков с числовым программным управлением (ЧПУ) показал, что только при создании специальной отдельной сети питания для ЧПУ можно надеяться на нормальное функционирование МК. А это дорогостоящее мероприятие не по карману
представителям малого бизнеса. Кроме того,даже в случае
принятия дорогостоящих помехозащитных мер возможны катастрофические по своим результатам сбои. Неудачный запуск российской ракеты с зарубежными спутниками на борту в
начале сентября 1998г. был обусловлен сбоем в компьютерной системе.
Надёжность работы МК на базе ОМЭВМ можно обеспечить только за счёт введения диагностических процессоров
(ДП). ДП следит практически за каждым шагом МК по отображению программы последнего в памяти ДП. В случае отклонения от программы ДП принудительно отправляет МК в ближайшую точку возврата, откуда МК повторяет попытку прохождения сбойного участка с предварительным восстановлением необходимого фрагмента оперативной памяти. В случае
нескольких неудачных повторных попыток ДП выдаёт сообщение об отказе. Однако реализация ДП в виде микропрограммного автомата для ОМЭВМ КР1816ВЕ35 на традиционной элементной базе потребовала 67 корпусов микросхем
(МС). Перевод полученного решения на матрицы логических
ячеек (МЛЯ) типа Xilinx позволил сократить количество МС до
12. Но и такая реализация является слишком громоздкой для
МК. состоящего из 3-5 МС. Кардинальным решением является
119
разработка специализированной МС ДП. До настоящего времени эта проблема не решена и едва ли разрешится в ближайшем будущем из-за отсутствия финансирования. Появление в последнее время быстродействующих микропроцессоров и памяти позволяют надеяться на создание ДП в виде
специализированного МК. Сбои такого ДП могут привести
только к одному «катастрофическому» последствию: к одному
или нескольким лишним обращениям в точку возврата.Опасен
лишь одновременный сбой МК и ДП, но в такой ситуации не
спасает даже полное резервирование.
В связи с вышеизложенным в качестве альтернативы
ОМЭВМ при создании простого и надёжного промышленного
МК выступает микропрограммный автомат (МПА). МК на базе
МПА(МК-МПА) реализован на двух микросхемах: К561ЛН2 и
КМ1556ХП4. Первая МС обеспечивает генерацию тактовой
частоты и защиту с фильтрацией трёх входных сигналов, а
вторая реализует собственно МПА. Возможности КМ1556ХП4
таковы, что позволяют запрограммировать любой конечный
автомат на 16 состояний. Этого вполне достаточно для реализации абсолютного большинства простейших МК. Кстати говоря, эта « простота» реализуется на традиционных МК с
ОМЭВМ программой объёмом около 1 кбайта. Для индикации
состояний МПА на плате предусмотрен монтаж 8 светодиодов
типа АЛ307БМ. Для сопряжения с исполнительными устройствами к четырём выходам КМ156ХП4 подключены оптроны
АОТ110А. Такая схема обеспечивает гальваническую развязку
и возможность управления однофазными и трёхфазными двигателями 6 кВт и более. Управляющие воздействия могут подаваться на любое промежуточное реле (например, КУЦ-1М),
а затем на магнитный пускатель. Возможна замена промежуточного реле и магнитного пускателя на симисторный блок
управления. МК-МПА эксплуатируется в достаточно сложных
условиях( повышенная влажность, широкий диапазон температур) в течение 3 лет на самых различных объектах без замечаний. Области применения чрезвычайно широки: управление и позиционное регулирование в системах водоподготовки
и водоснабжения, в нефтяной, газовой и металлургической
промышленности, в энергетике, в сфере обслуживания и других отраслях народного хозяйства.
Симисторный блок управления (СБУ) реализован идентично МК-МПА. Эта идентичность позволяет использовать
плату МК-МПА в качестве СБУ. Для уменьшения потребления
по цепям управления симисторными ключами ТСО142-40-6
120
применяется импульсное воздействие на оптроны. СБУ способен также изменять фазу отсечки, что обеспечивает возможность регулирования мощности двигателя. В СБУ введены
тепловая защита и защита от пропадания фазы. Переход на
СБУ устранил грохот от переключения магнитных пускателей,
значительно снизил уровень помех, что повысило надёжность
работы МК-МПА. СБУ эксплуатируется без замечаний несколько лет.
Печатная плата имеет габариты 90мм х 90мм. Стоимость
комплетующих элементов чрезвычайно низкая. Во всех схемах используется только отечественная элементная база.
Простота также очевидна. Надёжность подтверждена длительной эксплуатацией на промышленных объектах. Весь
цикл по созданию новой программы, «прошивке» КМ1556ХП4
и отладке МК-МПА занимает 2-3 дня. Никаких отладочных систем, кроме самого дешёвого программатора, не требуется.
121
7.2. Микропроцессорная техника.
Для решения задач автоматического контроля наряду с
увеличением
производства существующих аналитических приборов необходимо создаватьновые универсальные измерительные системы на основе встроенных микроконтроллеров (МК). МК
участвует в расчете контролируемого свойства вещества или
параметра состава, управлении измерительным
процессом,автоматической компенсацией температурной погрешности.Кроме своих основныхзадач измерительного характера МК
может решать вопросы автоматическогоконтроля и диагностики аналитического прибора (АП). Наряду с этим оптимально спроектированный МК может служить средством отладки
вновь разрабатываемого программного обеспечения при модификации уже существующего АП. Рассмотрим кратко в данном аспекте все проблемы и возможности МК при проектировании устройств и систем на их основе.
Архитектура микроконтроллера.
В настоящее время номенклатура МК чрезвычайно широка. Остановим свой выбор на относительно дешевых и достаточно мощных МК семейства MCS51.Отечественным аналогом этого МК является однокристальная микро-ЭВМ
КМ1816ВЕ51(в дальнейшем для краткости именуемая МК51).
МК51 имеет в своем составе следующие аппаратные средства:
- процессор с 1-байтным АЛУ и схемы аппаратного умножения и деле
ния;
- стираемое ПЗУ программ емкостью 4 Кбайта;
- ОЗУ данных емкостью 128 байт;
- два 16-битных таймера/счетчика;
- программируемые схемы ввода/вывода(32 линии);
- блок двухуровневого векторного прерывания от 5 источников;
- асинхронный канал дуплексного последовательного
ввода/вывода
информации со скоростью 375 Кбод;
- генератор,схема синхронизации и управления.
122
Структура МК51 и система команд настолько гибки, что
идет постоянная модернизация МК данного семейства.
MCS552 уже имеет встроенный 8-канальный 10-разрядный
АЦП, ПЗУ объемом 8 Кбайт,ОЗУ - 256 байт,5 восьмиразрядных портов ввода/вывода и один 8-разрядный входной
порт, 3 16-разрядных таймера/счетчика, структуру вложенных
прерываний с 15 источниками и двумя уровнями приоритета,двойной интерфейс ЦАП на основе ШИМ, два последовательных интерфейса, таймер "будильника"(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 соответствующего Т/С.Входной
синхросигнал таймера разрешен,когда управляющий бит
123
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 приемопередатчика.УАПП может работать в четырех режимах.
Режим 0. 0Передача и прием информации в объеме 8 бит
ведется через вывод входа приемника RXD.Через внешний
вывод выхода передатчика TXD выдаются импульсы сдвига. Частота передачи равна 1/12 частоты резонатора.
Режим 1. 2В этом режиме осуществляется обмен информацией в объеме
210 бит: старт-бит(0), 8 бит данных и стоп-бит(1).
Режим 2. 0Через TXD передаются или через RXD принимаются 11 бит информации:старт-бит,8 бит данных,программируемый 9-й бит паритета и стоп-бит.Частота
обмена равна 1/32 или 1/64 частоты резонатора в зависимости
от SMOD.
Режим 3. 0Этот режим совпадает с предыдущим,за исключением частоты
обмена,которая задается таймером.
Программа вывода данных по каналу RS-232.
;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552
¦
;¦
Работа с RS-232
¦
;¦
¦
;¦ Лобанов В.И. tasm
22.01.99
¦
;L====================================;
124
;-------------------------------------¬
;¦ Символические имена ¦
;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 ;
;***********************************************
#INCLUDE EQU552.ASM
#INCLUDE INST51.ASM
125
.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
126
;7 6 5 4 3 2 1 0
;---------------------------------------mov tcon,#00000101b
mov th0,#0c3h
mov tl1,#0
mov th1,#230 ;Частота обмена инф.=8кбод
;---------------------------------------;-----------------------------------------------------------------¬
;¦ СТРУКТУРА 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
127
;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 ;режимы таймеров
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
128
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.1 .equ 091H
p1.2 .equ 092H
p1.3 .equ 093H
p1.4 .equ 094H
Т2
p1.5 .equ 095H
п/ф.
p1.6 .equ 096H
шины
p1.7 .equ 097H
IIC-шины
;p1.0/СТ01 - вх.сигнал логики захвата
;p1.1/СТ11 - вх.сигнал логики захвата
;p1.2/СТ21 - вх.сигнал логики захвата
;p1.3/СТ31 - вх.сигнал логики захвата
;p1.4/T2 - вход внеш.такт.имп./вых.генер.
p2.0
p2.1
p2.2
p2.3
p2.4
p2.5
p2.6
p2.7
;p1.5/RT2 - сигнал сброса таймера Т2 по
;p1.6/SCL -такт.линия послед.порта IIC;p1.7/SDA - линия данных послед.порта
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0A0H
0A1H
0A2H
0A3H
0A4H
0A5H
0A6H
0A7H
;p2 bit 0
;p2 bit 1
;p2 bit 2
;p2 bit 3
;p2 bit 4
;p2 bit 5
;p2 bit 6
;p2 bit 7
p3.0 .equ
0B0H
;p3.0/RxD - вход последоват. порта
129
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0B1H
0B2H
0B3H
0B4H
0B5H
0B6H
0B7H
;p3.1/TxD - выход последоват. порта
;p3.2/INT0 - вход внеш. прерывания 0
;p3.3/INT1 - вход внеш.прерывания 1
;p3.4/внеш.вход Т0 - вх.внеш.такт.имп. Т0
;p3.5/внеш.вход Т1 - вх.внеш.такт.имп. Т1
;p3.6/WR - строб записи во внеш. память
;p3.7/RD - строб чтения из внеш. памяти
p4.0 .equ
SEP
p4.1 .equ
SEP
p4.2 .equ
p4.3 .equ
PCA1
p4.4 .equ
PCA1
p4.5 .equ
PCA1
p4.6 .equ
PCA1
p4.7 .equ
PCA1
0C0H
;p4.0/SEPCLK - вых.такт.импульсов порта
0C1H
;p4.1/SEPDAT - вход/вых. данных порта
0C2H
0C3H
;p4.2/ECI1 - вход внешних такт.имп. PCA1
;p4.3/C1EX0 - вх. захв.,вых.PWM/сравн.М0
0C4H
;p4.4/C1EX1 - вх. захв.,вых.PWM/сравн.М1
0C5H
;p4.5/C1EX2 - вх. захв.,вых.PWM/сравн.М2
0C6H
;p4.6/C1EX3 - вх. захв.,вых.PWM/сравн.М3
0C7H
;p4.7/C1EX4 - вх. захв.,вых.PWM/сравн.М4
p3.1
p3.2
p3.3
p3.4
p3.5
p3.6
p3.7
; TCON REGISTER - управление таймерами
it0 .equ 088H
задн.фронт)
ie0 .equ 089H
it1 .equ 08AH
задн.фронт)
ie1 .equ 08BH
tr0 .equ 08CH
tf0 .equ 08DH
tr1 .equ 08EH
tf1 .equ 08FH
;вид прерыв. по INT0(1-уровень,0;флаг запроса внеш.прерыв.по INT0
;вид прерыв. по INT1(1-уровень,0;флаг запроса внеш.прерыв.по INT1
;бит включения Т0
;флаг переполнения Т0
;бит включения Т1
;флаг переполнения Т1
; SCON REGISTER - управление последоват. портом
ri .equ 098H ;флаг прерыв. приемника
ti .equ 099H ;флаг прерыв. передатчика
rb8 .equ 09AH ;9-й бит принимаемых данных(реж.2 и 3)
tb8 .equ 09BH ;9-й бит передаваемых данных(реж.2 и 3)
130
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 ;запрещение всех прерываний
; 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
acc.1
acc.2
acc.3
acc.4
acc.5
acc.6
acc.7
.equ
.equ
.equ
.equ
.equ
.equ
.equ
.equ
0E0H
0E1H
0E2H
0E3H
0E4H
0E5H
0E6H
0E7H
;acc bit 0
;acc bit 1
;acc bit 2
;acc bit 3
;acc bit 4
;acc bit 5
;acc bit 6
;acc bit 7
; PSW REGISTER - слово состояния программы
p
ov
rs0
rs1
.equ 0D0H ;флаг четности
.equ 0D2H ;флаг переполнения
.equ 0D3H ;выбор банка регистров
.equ 0D4H ;----- " ----131
f0
ac
cy
.equ 0D5H ;флаг пользователя 0
.equ 0D6H ;флаг дополн. переноса
.equ 0D7H ;флаг переноса
Пример реализации блока управления и индикации .
132
E
r
r
o Фирма КТЦ-МК предлагает широкий выбор жидкокристалличеrских индикаторов различных типов. Большой популярностью у спе!циалистов пользуются алфавитно-цифровые ЖКИ-модули на базе
контроллера HD44780 фирмы Hitachi или его аналогов производства
других фирм: Epson, Philips, Samsung, Sanyo, Toshiba .
N
Контроллер HD44780 допускает подключение к микропроцессорам
o
по четырёх битному или восьми битному интерфейсу. Выбор интерфейса производится пользователем исходя из ограничений на вреb
мя, затрачиваемое на обмен данными с котроллером, или количеo
ство используемых линий подключения к микро-ЭВМ.
o
kСпециалистами фирмы применялись различные схемы подключения
алфавитно-цифровых ЖКИ-модулей к микрo-ЭВМ семейства
m
aAT89CX051 фирмы Atmel. На Рис.1 представлена схема подключеrния ЖКИ-модуля на базе контроллера HD44780 к микро-ЭВМ семейkства MCS51 в режиме работы с внешней памятью, позволяющая оптимизировать процесс обмена данными по времени. Пересылка байта осуществляется по командам:
n
aMOVX A,@DPTR или MOVX A,@DPTR.
В этом случае в DPTR следует загружать адрес с учётом того, что
m
eмладший бит А0 будет обозначать направление передачи (запись/чтение), а бит А1 тип передаваемой информации (команда/данные).
g
i
vНиже приведены исходные тексты подпрограммы на языке ассемeблера ASM51, позволяющие записывать данные, инструкции в контроллер, считывать данные. Приведен так же примерный текст подn
.программы инициализации контроллера в режим восьми битного интерфейса, при работе с двумя строками. Отображение курсора и мигание отключено. Курсор установлен в начало первой (верхней)
строки.
133
;г====================================¬
;¦ ПРОГРАММА КОНТРОЛЛЕРА 80C552
¦
;¦ Панель управления и индикации
¦
;¦
pui.asm
¦
;¦ Лобанов В.И. tasm
17.03.99
¦
;L====================================;
;-------------------------------------¬
;¦ Символические имена ¦
;L------------------------------------;
p5.0 - Кнопка "Старт"
;
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
134
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 ;
;Чтение данных из 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;
135
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;
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;
136
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
137
acall wrd;
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;
138
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;
jnz t61;
ret ;
;***********************************************
#INCLUDE EQU552.ASM
.end
139
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. Особый класс отладочных
средств составляют симуляторы,представляющие собой математическую модель разрабатываемого МКУ. Недостатком
такого подхода является отсутствие реального масштаба времени.
140
7.3.2. Аппаратные отладочные средства.
Строго говоря программаторы с большой натяжкой можно
отнести к отладочным средствам. Тем не менее при проектировании микроконтроллерных устройств (МКУ) без программаторов не обойтись.Они нужны для того, чтобы "зашить"
в ПЗУ отлаженную программу. Номенклатура программаторов
достаточно обширна. Они выпускаются различными отечественными фирмами: "КТЦ-МК", "Фитон", "Точка опоры" и др.
Среди программаторов наиболее приемлемыми по цене и
функциональным возможностям нужно назвать программаторы следующих типов: "Стерх","Unipro", "picPROG+".
К апаратным отладочным средствам следует отнести
также макетно-отладочные платы типа EB-552,KIT-552,KITPIC01,KIT-PIC-03 и т.п. Эти платы предоставляют в распоряжение пользователя аппаратное ядро разрабатываемого МКУ,
избавляют его от необходимости лишних монтажных работ и
"изобретения велосипеда".
Эмулятор микросхем ПЗУ ф. "КТЦ-МК" типа EMD256
предназначен для эмуляции работы микросхем ПЗУ типа
27256 непосредственно в составе отлаживаемой схемы, как в
качестве программной памяти в микропроцессорных системах,так и памяти микропрограмм для микропрограммных автоматов.
Класс внутрисхемных эмуляторов настолько обширен, что
нет смысла перечислять все типы. Как правило это узко
ориентированные программно-аппаратные устройства, рассчитанные на конкретный тип МК или микропроцессора
(МП).Стоимость их относительно высока, поэтому большинство разработчиков обходятся эмуляторами ПЗУ.
7.3.3. Адаптируемая отладочная система для проектирования микроконтроллеров
Отладочные системы (ОС) разработки микроконтроллерных устройств (МКУ) являются основным инструментом при
проектировании и отладке цифровых устройств на базе микропроцессоров (МП) и однокристальных микро-ЭВМ(МЭВМ). И
если внедрение микропроцессоров (МП) и микроконтроллерных устройств считается основой научно-технической революции, то создание ОС является основой основ этой революции. Существует несколько типов отладочных систем. Мы бу141
дем рассматривать наиболее эффективную: ОС с внутренней
эмуляцией. В этой категории создаются два типа ОС: на базе
специализированных чрезвычайно дорогих и как правило недоступных отладочных кристаллов или на основе серийных
МП и МЭВМ. Разработчики предпочитают ОС на серийных МП
и МЭВМ. В настоящее время широкое распространение получили так называемые «микро-чипы» серии РIС. Фирменные
отладочные средства стоят около 10 тыс. долларов и построены на базе отладочного кристалла, который не поставляется
отдельно. Однако данная фирма поставляет на рынок БИС
МЭВМ типа РIС 17С42. Эта БИС имеет открытую шину адреса-данных, что позволяет разработать для всех МЭВМ данной
серии адаптируемый внутрисхемный эмулятор с режимом реального времени. Выбор каналов управления МЭВМ для
обеспечения режимов отладки в традиционных схемах чрезвычайно ограничен. В качестве таких каналов используется
либо вход готовности(Readу), либо вход запроса прерывания
(Int). К сожалению, вход Readу имеется далеко не у каждой
МЭВМ, а использование входа Int ограничивает возможности
целевого МКУ. Кроме того, существуют рMOS-динамические
архитектуры, которые в принципе не допускают остановки МП
и организации пошагового режима отладки.
Традиционно под каждый процессор разрабатывается
своя специализированная отладочная система. Специализация затрагивает не только программное обеспечение, но и всю
аппаратную поддержку Это приводит к тому, что создание отладочных средств под новый микропроцессор затягивается на
1-2 года, а их стоимость достигает 5-10 тыс. долларов.
В связи с этим возникла задача по разработке адаптируемой отладочной системы(АОС) для проектирования МКУ[24].
Эта АОС должна обеспечивать достижение следующих технических результатов :
- расширение сферы применения за счёт обеспечения
отладки любых микропроцессоров, имеющих открытую шину
адреса данных и хотя бы один из входов :Readу(готовность),
с(тактовый) или Int(прерывание);
- неизменность аппаратной реализации для отладки различных микропроцессоров и микро-ЭВМ при минимальном
объёме корректировки программного обеспечения инструментальной ПЭВМ;
- возможность потактовой и покомандной отладки МКУ,
что позволяет диагностировать целевой процессор ;
- простота реализации.
142
За последние 10 лет архитектура отладочных средств с
внутрисхемной эмуляцией для проектирования микроконтроллерных устройств не претерпела сколько-нибудь заметных
изменений. Традиционно ОС строятся из трёх блоков : блок
сопряжения (БС), блок загрузки и управления (БЗУ), блок отладочной модели (БОМ).
БС выполняется либо в виде платы параллельного интерфейса, встраиваемого во внутренний канал персонального
компьютера (ПК) IВМ РС, либо в виде устройства последовательного дрступа, подключаемого к одному из внешних СОМпортов. Первый вариант реализации предпочтительнее. Разработка БС прекрасно изложена в периодике, однако схемные
реализации здесь грешат избыточностю. Около 10 лет автором экссплуатируется параллельный БС на 3-х ИС средней
интеграции, обепечивающий побайтовое сопряжение с 21 каналом. Габариты БС 105х115 мм. БС встраивается во внутренний канал ПК.
Отладочная модель для каждого типа микропроцессора
(МП) или однокристальной микро-ЭВМ(ОМЭВМ) должна быть
уникальной. Связано это с обеспечением режима реального
времени. Однако аппаратные затраты на уникальность незначительны : всего 1-2 орпуса. БОМ включает в себя МП или
ОМЭВМ и, возможно, регистр адреса. Схема БОМ традиционна и не создаёт проблем разработчику. Конструктивно БОМ
представляет собой сменный элемент, подключённыё к выходному разъёму БЗУ. К выходному разъёму БОМ в свою очередь подключается ленточный кабель, оканчивающийся так
называемым сокетом, который вставляется в колодку на отлаживаемом МКУ вместо целевого МП или ОМЭВМ. Такое
подключение позволяет проводить отладку МКУ в реальном
масштабе времени.
БЗУ в адаптируемой отладочной системе(АОС) является
универсальным узлом. В традиционных архитектурах БЗУ уникален. БЗУ АОС содержит интерфейсы адреса-данных(ИАД) и
управляющих сигналов(ИУС) для связи с инструментальной
персональной ЭВМ, ОЗУ программ пользователя (ОЗУПП),
ОЗУ контрольных точек (ОЗУКТ), формирователь сигнала
управления (ФСУ), коммутатор шины адреса (КША) и коммутатор шины данных (КШД), а также программируемый блок (ПБ),
интезирующий сигналы управления для целевого МП или
МЭВМ.
143
Блок-схема АОС.
В предпочтительном варианте выполнения программируемый блок может содержать синхронизатор(СГ), регистр(РГ)
и программируемую комбинационную схему (ПКС). Вышеуказанное выполнение ПБ позволяет расширить номенклатуру
отлаживамых МКУ, обеспечить адаптацию под новые типы
микропроцессоров и ОМЭВМ. Причём адаптации подвергается несущественная часть программного обеспечения, аппаратная поддержка остаётся без изменения. Наличие программируемого блока позволяет по выбору разработчика использовать для отладки входы синхронизации, готовности или
прерывания целевого микропроцессора. Для этого разработчику необходимо лишь переписать содержимое ПКС. Наличие
дублирующей выходной шины управления позволяет в некоторых случаях обходиться без регистра и повысить быстродействие АОС. При использовании тактового входа целевого
МП для отладки для отладки МКУ программируемый блок позволяет обеспечить как покомандное, так и потактовое исполнение программы пользователя, что делает возможной диагностику не только МКУ, но и целевого МП.
144
Схема программируемого блока АОС.
Программируемый блок может быть реализован на одной
микросхеме программируемой логической матрицы (ПЛМ) типа КС1556ХП8 или КС1556ХП6, либо на БИС матрицы логических ячеек (МЛЯ) типа Altera или Хilinx. Однако ПБ можно выполнить и на трёх микросхемах. Для этого достаточно одного
8-разрядного регистра, одной микросхемы ПКС, в качестве которой можно использовать ПЛМ типа КР556РТ2, ППЗУ
КР556РТ7 или КР556РТ16, а также РПЗУ К573РФ4 или ОЗУ
любого типа ёмкостью не менее 2к х 8 бит; в качестве синхрогенератора можно применить микросхему обычного счётчика.
Назначение блоков, узлов и шин АОС описывается следующим образом. Блок ИАД предназначен для приёма и передачи адреса и данных от инструментальной ПЭВМ. Блок
ИУС передаёт сигналы управления от инструментальной
ПЭВМ на ФСУ и ПКС. Блок ОЗУПП хранит программу пользователя, а также программу выведения содержимого внутренней памяти целевого процесора, которая загружается в
ОЗУПП лишь на время её исполнения. ФСУ служит для формирования сигналов управления работой ОЗУПП, ОЗУКТ,
КША, МШД. ОЗУКТ хранит информацию о наличии контрольных точек, что позволяет останавливать выполнение программы пользователя при достижении заранее заданных адресов. ПКС формирует функции возбуждения для регистра и
выхъодные функции ДШУВых для ПБ. СГ формирует синхросигналы для Рг и синхронизированную частоту для МКУ. КША
145
коммутирует ШАВ от целевого процессора на ША. ШД мультиплицирует и коммутирует ШДВ на ШД в прямом и обратном
направлении. Регистр совместно с ПКС и СГ образуют ПБ, являющийся последовательностным автоматом.
Посколку даже 8-разрядный регистр допускает построение КА на 256 состояний, то это позволяет утверждать, что
практически для любого МКУ может быть реализована своя
система булевых функций для ПКС. Однако для записи булевых функций в ПКС требуется программатор или набор сменных модулей ПКС. Это не всегда удобно, поэтому ПКС можно
выполнить на базе ОЗУ и менять набор булевых функций, переписывая их из инструментальной ПЭВМ непосредственно в
ОЗУ. Данная архитектура при управлении работой МКУ по
тактовому входу допускает также возможность неизменной системы булевых функций в ПКС 6 для некоторых типов процессоров.
Управление работой МКУ по тактовому входу является
относительно сложным, но зачастую единственно возможным.
Значительно проще управление по входам Готовность или
Прерывание. Традиционные аппаратные реализации такого
управления для МП и ОМЭВМ типа Iutel 8080, Iutel 8048, Z 80
и т.п. свободно вписываются в схему ПБ.
Подобная архитектура позволяет перенастраивать ПБ
под любой тип МП или ОМЭВМ. Кроме того, для управления в
пошаговом режиме не занимается вход прерывания базового
МП. Необходимости в применении специальных отладочных
МП также не возникает. С помощью описанной АОС были разработаны и переданы заказчику МКУ на базе ОМЭВМ
КР1814ВЕ1(р-МОП с динамической памятью), КР1806ВЕ1 (4разрядная, КМОП), К1868ВЕ1, КР1816ВЕ51, R6504, М6820 и
др. Адаптация занимала от 2-х недель до месяца. Архитектура
АОС защищена в Роспатенте под №523 от 16.06.1995г. АОС
реализована на 14 корпусах БИС в отдельном конструктиве с
размерами 155х125х25 мм.
Программная часть отладочной системы написана в среде ДССП [8] вед.инженером Локтевым Н.М. Выбор данной
cреды объясняется наличием большого опыта работы программиста в данной среде и наличия определённых программных наработок.
Полная версия программы поддержки отладочного
устройства включает в себя следующие программные компоненты:
146
- так называемая базисная система, которая гораздо шире базовой системы ДССП за счёт того,что к ней пристыковано
большинство из имеющихся в составе ДССП библиотек :
- программа создания и поддержки параметров настройки и функционирования системы ;
- программа сохранения системы и авторизации доступа ;
- модуль дизассемблера ;
- модуль редактирования памяти ;
- модуль поддержки аппаратной части отладчика ;
- сервисная оболочка системы ;
- кросс-ассемблер ;
- управляющая программа аппаратной части ;
- модуль программатора ПЗУ.
Краткие технические характеристики АОС
1. Разрядность целевых процессоров, бит - 4; 8
2. Объём ОЗУ программ, кбайт
-4
3. Количество контрольных точек
- 4096
4. Количество корпусов ИМС
- 14
5. Основные режимы работы :
- отладка программ ;
- сброс всех контрольных точек ;
- распечатка справочника по системе ;
- запись любого участка ОЗУ программ на магнитный носитель в виде файла ;
- чтение файла программы и запись его в ОЗУ программ ;
- запись-чтение внешней и внутренней памяти МКУ на
магнитный искатель.
6. Режим отладки включает в себя автоматический и пошаговый режимы, а также режим контрольных точек.
147
7.4. Средства контроля и диагностики.
По окончании этапа разработки даже на стадии выпуска
опытной партии приборов на базе МКУ возникают проблемы организации
контроля и диагностики. Ручной контроль чрезвычайно обременителен и ненадежен. Организация автоматизированного
контроля требует разработки соответствующего оборудования. Зарубежное стоит чрезвычайно дорого. Цена систем
контроля достигает нескольких тысяч долларов. Поэтому значительно дешевле разработать достаточно простые и надежные системы на базе персонального компьютера (ПК). Такая
система состоит из платы параллельного интерфейса и блока контрольно-диагностического устройства (КДУ). КДУ для
проверки любого цифрового устройства, имеющего не более
24 входов/выходов, реализован автором на 6 микросхемах
среднего уровня интеграции. КДУ позволяет не только проводить входной контроль микросхем, но и проверять готовые
изделия на частотах порядка 500 кГц. Переход на более высокие частоты связан с введением ОЗУ и не представляет сложной проблемы.
Программная поддержка проста, но громоздкая база данных потребует значительных усилий по ее наращиванию,
введению данных по новой комплектации. Однако уровень
программистов для пополнению этой базы данных может быть
очень низким. В принципе на основе ПК может быть создано
рабочее место разработчика, включающее в себя средства
отладки и контроля. Такой инженерный комплекс автоматизации разработок (ИКАР) явился бы весьма эффективным инструментом для отечественных приборостроителей. В качестве такой универсальной контрольно-диагностической системы (УКОС) может быть использована схема, представленная
на рисунке. УКОС может работать как в автономном режиме,
так и в системе с персональным компьютером. Она легко перепрограммируется из средства контроля в систему отладки
микроконтроллеров.
148
БЛОК-СХЕМАУКОС - вар.15.04.2004
8
D
КП1554АП6
(74АС245)
Упр
2
ADM
488AR
RDY
P4
Int0
0
1
2
3
4
5
6
7
8
9
А
B
C
D
E
F
RDY
ТГ
75МГц
СУ
AD8138AR
C
Int1
18
УПР
+
-
CLK DLC
УПР
CLK 6МГц
CЧ
(1к)
R3 510
R2 100
3
R1
1к
32
логические
вх/вых
74АС14ТТR
авт / ручн
ТШ
P1
Сброс
по питанию
ЖКИ 4 х 20
DV-20400S1FBLY/R
Аудио-2
I/O
JTG1
8
Согласующее устр-во
FT8U245AM
Аудио-1
Примечания
1.СУ - согласующее устроиство
2.Задействованы около 100 из 147 выводов пользователя
3.Для запоминания одного ТВ-поля требуется не менее
20мс/20нс = 1Мслово по 14 бит.
4.Для одного из логических вх/вых резистор R1 заменить
со 100 Ом на 510 Ом.
5.При включении питания обеспечить высокоимпедансное
состояние по выходу UDClk
6.Номинальная скорость передачи по LPT- порту 2 Мбайт/с.
7. Время записи в RAM2 равно int[4 Мслов х 18бит/слово / (2М х8)бит/с] = 5 с
UDClk
R4
1к
CLK
JTG1
8
+
-
ФНЧ
AD
8138
Int1
XTAL1
2
USB-МК
AT89C5131-S3SIL
3
75МГц
2
Синх
8
AD9854ASQ
P0
EP1K100QC208-1
MPU
P3
RS-485
PLA1
Коммутатор
2
ST232BW
RAM - 49 кбит
users pin = 147
3
RS-232
9
8
USER
Reset 88
ТШ
10
4
P2
PLA2
Reset
VD6 +5В,-5В,
+3,3В,+2,5В
2
USB-ПЛИС
R6 100
R5
330
LPT
16
LPT
4
SRAM
JTAG1
f50
DA1
3 JTG1
ADC
AD
9244
BST-40
D2
DA2
37,5МГц
+
-
DAC
+
-
ФНЧ
AD
9755
УПР
Видео
АТТ
AD
8009
AT65-0106
50дБ,6бит,2ГГц
18
18
ADR
CE1
D1E
WE1
WE2
AD USER DE2
CE2
144
ADClk
14
AD
8138
AR
Вход аналоговый
EPC2LC20
C
D1
21
А0-20
RAM1
2
JTG2
2 корп.
СУ
75МГц
2
14
14
3
4
JTAG2
6
АТТ
3
R7
10к
RAM - 49 кбит
users pin = 147
Релейный
блок вкл.
питания
. . . . . .
EP1K100QC208-1
8
75 МГц
75 МГц
CE
DE
WE
D
(2кор.)
7,5нс
K7N321801M
21
А0-20 RAM2
2
75 МГц
2
CE
DE
WE
D
логические
входы
(2кор.)
7,5нс
K7N321801M
Для отладки схемы УКОС рекомендуется использование
простого контрольно-диагностического устройства (КДУ), блоксхема которого представлена на рис.
Блок-схема мини-КДУ - вар.15.04.04
Разъём модулятора 1
R1 100
Входы/
выходы ПК
24
D
R2
10к
ТГ
50МГц
B689-V5
Управление
R3 1к
CLK
4
4
4
ТШ
147 МГц, 2,5 нс, EPM7128SLC84-15
Занято 63 из 68 вх/вых.
PLA1
LPT-разъём
логические
вх/вых
Разъём модулятора 2
логические
вх/вых
Цепи питания
32
R6 100
внешнее
питание
Разъём связи с ОК
32
I/O
логические
вх/вых
R5
10к
Упр
+5В
Сброс
4
R4 1к
ТШ
JTAG
JTAG
СБР
R7
1к
+5В
D+5 В
Сброс
по питанию
Примечания
1.Питание +5В/1А.
2.Задействованы 63 из 68 выводов пользователя
3.Для одного из логических вх/вых(UDClk) резистор R5 заменить
со 100 Ом на 510 Ом.
4.При включении питания обеспечить высокоимпедансное
состояние по выходу UDClk
5.Внешнее питание: D+5В,D+3,3В,А+5В,А-5В,А+3,3В.
Reset
149
program generat;
uses crt;
var m:array[0..255] of integer;
i,n,t:integer;
{==================================================
=======}
begin
clrscr;
writeln('╔════════════════════════════════════════╗');
writeln('║ Программа управления "Генератор".
║');
writeln('║ Для выхода из программы нажмите "ENTER".
║');
writeln('║
Лобанов В.И. 19-03-2004.
║');
writeln('╚════════════════════════════════════════╝');
writeln;
write('Введите задержку(t в мс) и длину массива(n) ');
readln(t,n);
for i:=0 to n-1 do
m[i]:=i;
i:=0;
repeat{имитация работы 8-разрядного двоичного счётчика}
delay(t);
port[$378]:=m[i]; {посылка в порт 378h байт из массива m[]}
if i=n-1 then i:=0 else inc(i);
until keypressed;
clrscr;
end.
150
7.5. Синтез проверяющих тестов для комбинационных схем.
Подавляющее большинство разработчиков ограничивает
свои притязания функциональным контролем изделия. Этого
безусловно недостаточно для гарантии работоспособности
цифрового устройства (ЦУ). Кроме функционального существует ещё и тестовый контроль, который в свою очередь подразделяется на проверяющий и диагностический. Фундаментальные результаты в области синтеза тестов для ЦУ были
получены в Институте проблем управления (см. работы Пархоменко П.П., «Основы технической диагностики» - М.: Энергия,1978). Даже построение проверяющих тестов представляет собой весьма сложную проблему. Поэтому ограничимся
расссмотрением синтеза проверяющих тестов для комбинационных схем.
Существуют формальные методы построения проверяющих тестов, обнаруживающих кратные неисправности, существуют и программные пакеты синтеза таких тестов. Однако в
настоящее время всё это либо слишком дорого, либо не удовлетворяет требований разработчиков. При соблюдении условий управляемости и наблюдаемости любое ЦУ может быть
разбито на комбинационные узлы и элементы памяти, к которым при использовании контролепригодных регистров типа
LSSD обеспечивается непосредственный доступ. Контроль ЦУ
представляет в этом случае раздельное тестирование комбинационных схем и элементов памяти. Здесь будут кратко рассмотрены лишь вопросы контроля «комбинаторики».
Наибольшей проверяющей способностью для комбинационных схем обладает так называемый тривиальный тест, обнаруживающий максимальное количество неисправностей. Однако длина такого теста весьма велика и составляет 2n , где n
– количество входов комбинационной схемы. Для некоторых
регулярных устройств эта величина может быть существенно
уменьшена.
В 1978г. при разработке прибора 20 изделия 83В6 оборонного назначения автором был построен тест, эквивалентный
тривиальному, для многовходового сумматора с последовательным переносом. Черновик статьи был представлен Халчеву В.Ф. (ИПУ) и далеко не сразу встретил его понимание.
В связи с тем, что сумматор обладает регулярной структурой, имеется возможность построения короткого теста, экви151
валентного тривиальному и не зависящему от разрядности
объекта контроля. Для этого построим такой тест, который для
каждого разряда сумматора обеспечит тривиальное тестирование. Поскольку каждый разряд сумматора имеет три входа,
то длина тривиального теста не превысит 8 наборов.
Покажем на частном примере синтеза проверяющего теста
для 6-разрядного сумматора, что длина общего теста не зависит от разрядности и равна 8 наборам. Пусть вход переноса
для млашего разряда сумматора обнулён, т.е. соединён с
«землёй». Синтез теста иллюстрируется таблицами 1 и 2. В
табл.1 представлены проверяющие наборы и их номера для 6разрядного сумматора, в табл.2, в левой её части расписаны
наборы тривиального теста для одного разряда сумматора, а
в правой части отмечено, каким проверяющим набором из
табл.1 создаётся для данного разряда каждый набор тривиального теста. В таблицах идентификаторы ai, bi обозначают
соответственно i-ые разряды первого и второго слагаемых, а
pi-1 – входной перенос i-го разряда, т.е. эти переменные описывают все входы i-го разряда сумматора. Из табл. 2 видно,например, что пабором 1 из табл.1 создаётся набор 000
тривиального теста для всех разрядов сумматора. Набор 5 создаёт набор 001 для 3-го и 5-го разрядов сумматора и набор
110 для 2-го, 4-го и 6-го разрядов сумматора. Таким образом,
для построения проверяющего теста, эквивалентному тривиальному, необходимо, чтобы правая часть табл.2 была полностью покрыта номерами проверяющих наборов из табл.1.
Таблица 1.
Номер
набора
1
2
3
4
5
6
7
8
aaaaaa
654321
000000
111111
000000
111111
101010
010101
111111
000001
bbbbbb
654321
000000
000000
111111
111111
101010
010101
000001
111111
152
Таблица 2.
Тривиальный
тест
aibipi-1
000
001
010
011
100
101
110
111
Разряды сумматора
s6s5s4s3s2s1
111111
65656333333
83838222222
77777565656
44444-
В нашем случае непокрытым оказался первый разряд на
наборах 001,011,101 и 111, т.е. на тех наборах, на которых
входной перенос 1-го разряда должен принять значение 1. Эти
4 набора физически нереализуемы, т.к. вход переноса 1-го
разряда соединён с «землёй». Следовательно, тест, эквивалентный тривиальному, построен.
Очевидно, что предлагаемый подход можно применить к
синтезу проверяющих тестов для сумматоров любой разрядности. В табл.3 приводится тест для 11-разрядного сумматора,
из которой видно, что изменилась только длина каждого набора, а порядок чередования нулей и единиц в наборах остался
прежним. Естественно, это не единственный тест для проверки сумматора, но вполне очевидно, что длина его минимальна.
Таблица 3.
Номер
набора
Входы a11 –
a1
Входы b11 –
b1
1
2
3
4
5
6
7
8
00000000000
11111111111
00000000000
11111111111
01010101010
10101010101
11111111111
00000000001
00000000000
00000000000
11111111111
11111111111
01010101010
10101010101
00000000001
11111111111
153
В том случае, если входной перенос младшего разряда
может принимать значения 0 и 1, то длина теста может увеличиться, но не более, чем на 4 набора. Если немного подумать,
то, вероятно, и для этого случая можно найти тривиальный
тест длиной 8 наборов. Синтез неоптимального тривиального
теста для 3-разрядного сумматора приводится в табл.4 и
табл.5.
Таблица 4.
Номер
Входы a3 –
набора
a1
1
000
2
111
3
000
4
111
5
010
6
101
7
111
8
001
9
000
A
000
B
001
C
001
Таблица 5.
Тривиальный
тест
aibipi-1
000
001
010
011
100
101
110
111
Входы b3 – b1
Вход p0
000
000
111
111
010
101
001
111
000
001
000
001
0
0
0
0
0
0
0
0
1
1
1
1
Разряды сумматора
s3s2s1
111
569
333
38A
222
77B
656
44C
Анализ приводимых примеров позволяет утверждать, что
предлагаемая методика обеспечивает синтез проверяющих
тестов эквивалентных тривиальным в области обнаружения
как минимум одиночных неисправностей, для параллельных
154
многоразрядных сумматоров с последовательным переносом.
Длина этих тестов не превышает 12 наборов и не зависит от
разрядности сумматора. Время построения теста вручную для
20-разрядного сумматора не превышает 30 минут.
155
Глава восьмая
ПРОЕКТИРОВАНИЕ МПА НА БАЗЕ ПЛИС.
8.1. ОПТИМАЛЬНОЕ ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ
СИСТЕМ УПРАВЛЕНИЯ.
Международный валютный фонд (МВФ) потребовал от
России ликвидации ведущих технических вузов: МВТУ им. Баумана, МЭИ, МАИ, ЛПИ, НПИ и др. (р/с «Резонанс»,
23.09.2003). В настоящее время идёт медленное тотальное
уничтожение Российского образования и науки. «Вымирают»
целые кафедры технических вузов, т.е. целые, зачастую уникальные, научные направления, Плодятся лишь псевдонаучные гуманитарные «академии» по выращиванию болтунов и
демагогов. В этих условиях минимальной задачей старшего
поколения советских инженеров и учёных, проспавших Советский Союз, является неукоснительная передача всего накопленного опыта и знаний новой генерации инженеров и учёных.
Нельзя забывать, что в «технари» даже в советские времена
шла наиболее талантливая молодёжь, тем более теперь. Это
будущее России.
В связи с разгромом советской электроники все разработчики лихо набросились на зарубежную элементную базу, поскольку здесь не нужно напрягать интеллект. Однако требования безопасности России диктуют безусловный переход на
отечественную элементную базу. В цифровой и даже аналоговой электронике такой переход возможен лишь за счёт базовых матричных кристаллов (БМК).
Мне как инженеру с 30-летним стажем хотелось бы помочь в деле проектирования молодым проектировщикам
цифровой электроники. Разумеется, все мои рекомендации
следует воспринимать критически, пытаясь найти альтернативное, возможно, более приемлемое решение. Разработчик –
это прежде всего мыслитель, притом талантливый.
Частотный детектор.
Частотный детектор (ЧД) сравнивает частоту на выходе
синтезатора частоты (СЧ) с эталонной частотой 10 МГц и выдаёт результат в виде сигналов «больше», «меньше» или
156
«равно». Схема ЧД состоит из двух счётчиков и конечного автомата (КА).
157
158
Начало
Y5
a0
0
Z0
1
Y4
a1
0
Z1
1
1
Z0
0 a
2
Конец
159
Y1 – «больше»,
Y2 – «меньше»,
Y3 – «равно»,
Y4 – разрешение счёта,
Y5 – сброс счётчиков.
Фазовый детектор.
Фазовый детектор (ФД) определяет сдвиг по фазе между
опорным сигналом 10 МГц и сигналом на выходе синтезатора
частоты.
Для нормальной работы КА требуется высокое быстродействие ПЛИС. Поскольку необходимо отслеживать разность
фаз не хуже 2нс за период 100нс, а тактовая частота не превышает 38 МГц, то КА должен быть асинхронным. Пришлось
создать предельно «отжатые» SR-триггеры со входом сброса
(они представлены на рисунке). У этого триггера есть незначительный недостаток в режиме обнуления, но к нему нет претензий в рабочем режиме. Кроме того, во избежание гонок,
пришлось применить оригинальное противогоночное кодирование, когда состояния не просто развязываются по-Баранову,
160
а обеспечивается переход в любое состояние при изменении
только одного бита в кодах состояний.
161
162
163
Последняя диаграмма свидетельствует о срыве работы
КА по причине недостаточного быстродействия ПЛИС. Если
разность фаз не превышает 1нс, то КА не успевает отслеживать переходы из одного состояния в другое.
164
a0
Началоо
1
Z1
0
a1
0
Z1
1
1
Z2
0
a4
1
Y1
Z2
a2
0
0
Z2
Y2
1
a5
1
Z1
a7
0
a6
a3
Конец
a0
ГСА КА фазового детектора
165
Приёмопередатчик RS-485.
Для обеспечения обмена информацией между ПК и КДУ-2
на рассстоянии не менее 300 м используется интерфейс RS485. Микроконтролер для выполнения этой задачи в режиме
полудуплекса реализован на ПЛИС в САПР MAX+PLUS II
v.10(файл prmprdrs.gdf).
166
167
SUBDESIGN kars485
(
reset,z1,z2,z3 : INPUT;%сброс
RG,последоват.вход,прошёл Старт,прошли 9 имп. по 6,3 мкс%
clk
: input; % тактовая частота 1,5873 МГц с
периодом 630 нс%
y1,y2
: output;%разрешение работы делителю
на 10,разрешение счёта для информационного СТИ %
q[1..0]: OUTPUT; % выходы RG %
)
VARIABLE
q[1..0],qy[1..0] : DFF;
d[1..0],dy[1..0] : NODE;% D- входы RG, RGY %
BEGIN
q[].clk = clk;
q[].clrn = !reset;
q[].prn = VCC;
q[] = d[];
qy[].clk = clk;
168
qy[].clrn = !reset;
qy[].prn = VCC;
qy[] = dy[];
table
q[1..0], z3, z2, z1 => d[1..0];
3 , 1 , x , x => 0 ;
0 , x , x , 0 => 0 ;
0 , x , x , 1 => 1 ;
1 , x , x , 1 => 1 ; % ТОП МПА %
1 , x , x , 0 => 2 ;
2 , x , 0 , x => 2 ;
2 , x , 1 , x => 3 ;
3 , 0 , x , x => 3 ;
end table;
table
q[1..0] => dy0,dy1;
0 =>0, 0;
1 => 0, 0;% выходные функции %
2 =>1, 0;
3 =>1, 1;
end table;
y1 = qy0;
y2 = qy1;
end;
subdesign paritet
(
d[8..0] : input;
p
: output;
)
begin
p = d0 $ d1 $ d2 $ d3 $ d4 $ d5 $ d6 $d7 $ d8;
end;
169
170
SUBDESIGN trans485
(
reset,z1,z2 : INPUT;%сброс RG,Пуск,прошли 12 имп.
по 6,3 мкс%
clk
: input; % тактовая частота 1,5873 МГц с периодом 630 нс%
y0,y1,y2 : output;%разрешение работы делителей
на 10 и 12,загрузка,строб записи данных в сдвиговый RG %
q[1..0]: OUTPUT; % выходы RG КА %
)
VARIABLE
q[1..0],qy[2..0] : DFF;
d[1..0],dy[2..0] : NODE;% D- входы RG КА, RGY %
BEGIN
q[].clk = clk;
q[].clrn = !reset;
q[].prn = VCC;
q[] = d[];
qy[].clk = clk;
171
qy[].clrn = !reset;
qy[].prn = VCC;
qy[] = dy[];
table
q[1..0], z2, z1 => d[1..0];
2 , 1 , x => 0 ;
0 , x , 0 => 0 ;
0 , x , 1 => 1 ;
1 , x , x => 3 ; % ТОП МПА %
3 , x , x => 2 ;
2 , 0 , x => 2 ;
end table;
table
q[1..0] => dy0,dy1,dy2;
0 =>0 , 0 , 0 ;
1 =>0 , 1 , 0 ;% выходные функции %
3 =>0 , 1 , 1 ;
2 =>1 , 0 , 0 ;
end table;
y0 = qy0;
y1 = qy1;
y2 = qy2;
end;
Проект приёмопередатчика RS-485 занял всего 1% от
объёма ПЛИС EP1K100Qc208-1.
172
173
Телевизионный генератор испытательных сигналов.
Блок-схема ТВ-ГИС.
Структурная схема телевизионного генератора испытательных сигналов (ТВ-ГИС) представлена на рисунке.
Выход
Сумматор
КДУКДУ-2
ФНЧ-1
УМ-1
ФНЧ-2
УМ-2
СЧ
КДУ
174
На схеме использованы следующие обозначения:
КДУ – контрольно-диагностическое устройство,
СЧ – синтезатор частоты,
ФНЧ – фильтр нижних частот,
УМ – усилитель мощности.
КДУ.
БЛОК: КОНФИГУРАЦИОННОЕ ПЗУ
БЛОК: ДВА МОДУЛЯТ ОРА
+3.3VD2
DD4
R76 1,8к
БЛОК: ГЕНЕРАТ ОР ЧАСТ ОТ Ы
VCC
G
OUT
AGND
FC
4
3
7
+5VA1
6
7
2
R2
-5VA1
C3
0.1
+3.3VD2
3
VD1
C5 0.1
1
4
GND
R32 51
C6
0.1
Цепь
R31
100
R5 390
R74
1,8к
XP1
Конт
1
2
3
4
5
6
7
8
9
10
R75
1,8к
R80 1,8к
XDQB4
XDQB5
XDQB6
XDQB7
XDQB8
XA8_M
XA9_M
XA10_M
XA11_M
XA12_M
XA13_M
XA14_M
XA15_M
DD3
9
11
19
3
+5B
R77
1,8к
VPP
VCC
GND
5
VCCS
14
VPPS
C9
0.1
R4
100
2
SRAM DATA
4
DCLK
8
OE
12
CASC
13
CONF
1
TDO
CS
TDI
TMS
TCK
+5 B
1
15
IDC10MS
р о зе тки пр и бо р н ые xlr
C2
0.1
R30
100
2
DA1
AD8009
R1 22
Q0
CNFDN
Q2
Q3
+3.3VD2
R79 1,8к
C4 0.1
ZQ1
2
C1
10.0x10B
+5VA1
R3
51
+5VA1
CNFDN
+5VA1
DATA0
DCLK
NSTATUS
NCONFIG
18
20
10
+5B
C14
0.1
+3.3VD2
0.1
EPC2LC20
4
+2.5VD1
+3.3VD2
XA16_M
XA17_M
XA18_M
XWE_M
XDQA1
XDQA2
XDQA3
XDQA4
CLK75
RESET_PLIS
R78
22
+5B
C7
0.1
DD1:7
+5B
14
DD1:1
1
C8
10.0x10B
7
R81
1,8к
+2.5VD1
+3.3VD2
R73
30к
DD1:2
2
3
DD1:3
4
5
6
9
R82 22
XDQA5
XDQA6
XDQA7
XDQA8
XCS_M
XA0_M
+3.3VD2
10
74AC14
74AC14
74AC14
R83
30к
XA1_M
XA2_M
XA3_M
XA4_M
+2.5VD1
Q15
Q16
NSTATUS
Q1
XA0_M
22 R29
A0_M
XWE_M
1,8к R27
XA1_M
22 R28
R6 22
A1_M
XOE_M
R7 22
R8 22
A2_M
XCS_M
R9 22
A3_M
XUB_M
R10 22
XLB_M
R11 22
R12 22
R13 22
XA17_M
R14 22
XA16_M
R15 22
R25 1,8к
R58 22
DQA1
DQA2
XDQA3
R35 22
R36 22
R37 22
R38 22
R59 22
XDQA4
LB_M
XDQA5
A18_M
XDQA7
A17_M
XDQA8
XDQB1
R60 22
DQA3
R61 22
R62 22
R63 22
R64 22
R65 22
DQA4
DQA5
A0_M
A1_M
A2_M
A3_M
A4_M
A5_M
A6_M
A7_M
A8_M
A9_M
A10_M
A11_M
A12_M
A13_M
A14_M
A15_M
A16_M
A17_M
A18_M
DQA6
5
4
3
2
1
44
43
42
28
27
26
25
24
23
22
21
20
19
18
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
IO1
IO2
IO3
IO4
IO5
IO6
IO7
IO8
IO9
IO10
IO11
IO12
IO13
IO14
IO15
IO16
VCC
VSS
DQA7
DQA8
DQB1
OE_M
CS_M
LB_M
UB_M
WE_M
41
OE
6
CS
39
LB
40
UB
17
WE
VCC
VSS
7
8
9
10
13
14
15
16
29
30
31
32
35
36
37
38
33
DQA8
DQA7
DQA6
DQA5
DQA4
DQA3
DQA2
DQA1
A8_M
XA15_M
R39 22
XA14_M
R40 22
XDQB2
XDQB3
XDQB4
A14_M
XDQB5
XDQB6
XA13_M
R41 22
A13_M
XDQB7
R51 1,8к
A11_M
XA12_M
R42 22
F
E
R6
+3.3VD2
D
R7
DP
B
C
+2.5VD1
G
S12
S7
+3.3VD1
34
11
CLK75
+3.3VD1
12
R66 22
R67 22
+3.3VD2
Q5
Q6
S8
+3.3VD2
DQB2
DQB3
A15_M
R50 1,8к
A10_M
Q4
K6X8016T3B
A16_M
R49 1,8к
A9_M
R5
A
DQB8
DQB7
DQB6
DQB5
DQB4
DQB3
DQB2
DQB1
R48 1,8к
R24 1,8к
XA11_M
R57 22
UB_M
R47 1,8к
A7_M
R23 1,8к
XA10_M
R34 22
R46 1,8к
A6_M
R22 1,8к
XA9_M
XDQA2
XDQA6
XA18_M
R21 1,8к
XA8_M
CS_M
R45 1,8к
A5_M
R20 1,8к
XA7_M
R33 22
R44 1,8к
A4_M
R19 1,8к
XA6_M
OE_M
R43 1,8к
R18 1,8к
XA5_M
22 R55
XDQA1
R17 1,8к
XA4_M
WE_M
1,8к R53
R16 1,8к
XA3_M
22 R56
1,8к R54
1,8к R26
XA2_M
R4
R3
R0
R1
R2
DD2
A12_M
XDQB8
R68 22
R69 22
R70 22
R71 22
R72 22
DQB4
ОЗУ фирмы SAMSUNG 512Kx16 bit:
K6X8016T 3B-F в корпусе 44-T SOP2-400F
DQB5
DQB6
БЛОК: ОЗУ 512Кx16
DQB7
DQB8
R52 1,8к
S9
S11
S10
R8
RESET_PLIS
S6
+2.5VD1
S5
S4
Q7
S3
S2
S1
+3.3VD2
RD_RS
DE_RS
Q22
TD_RS
Q8
Q9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
TCK
CONF_DONE
nCEO
TDO
VccIO
GND
I/O
I/O
I/O
CLKUSR
I/O
I/O
I/O
I/O
I/O
RDYnBSY
I/O
I/O
INIT_DONE
GND
VccINT
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
GND
VccINT
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
VccINT
GND
TMS
TRST
nSTATUS
I/O
I/O
I/O
I/O
I/O
I/O
GND
I/O
I/O
LOCK
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
VccINT
I/O
I/O
I/O
GND
Vcc_CKLK
Ded_IN1
Ded_CP1
Ded_IN2
GND_CKLK
GND
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
VccINT
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
nCS
CS
nWS
I/O
nRS
I/O
I/O
VccINT
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
GND
I/O
Dev_OE
VccINT
Ded_IN4
Ded_CP2
Ded_IN3
GND
Dev_CLRn
I/O
VccIO
I/O
I/O
I/O
I/O
I/O
I/O
GND
I/O
I/O
I/O
I/O
DATA7
VccIO
DATA6
I/O
DATA5
DATA4
I/O
DATA3
DATA2
DATA1
DATA0
DCLK
nCE
TDI
VccINT
GND
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccINT
GND
I/O
I/O
I/O
I/O
VccINT
GND
I/O
I/O
I/O
I/O
VccIO
GND
I/O
I/O
I/O
I/O
I/O
I/O
VccIO
GND
MSEL0
MSEL1
VccINT
nCONFIG
EP1K100QC208-1
175
208
207
206
205
204
203
202
201
200
199
198
197
196
195
194
193
192
191
190
189
188
187
186
185
184
183
182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
XDQB3
XDQB2
XDQB1
XLB_M
XUB_M
XOE_M
XA7_M
+2.5VD1
XA6_M
XA5_M
DT1
DT2
XRESET-G1
XF75+2
+3.3VD2
XF75-2
XRESET-G2
XD7
XD6
XD5
XF75+2
XF75-2
+5B
-5B
XF75+1
XF75-1
XRAMP2
Q10
+2.5VD1
Q11
Q12
Q13
Q14
XRD2
+3.3VD2
XUDCLK2
XHOLD2
XWR2
XA0
XA1
XA2
XA3
XA4
XA5
XD0
XD2
+3.3VD2
XD1
XD4
XD3
XWR1
XF75+1
XF75-1
XUDCLK1
XRAMP1
DATA0
DCLK
+5B
-5B
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q10
Q17
Q18
+2.5VD1
Q11
XRE8
XRE4
XRE7
XRE3
+3.3VD2
Q13
XRE6
XRE2
XRE5
XRE1
DRDY
RD
+3.3VD2
Q16
CLKI
ADC15
ADC16
ADC13
ADC14
ADC11
+2.5VD1
Q20
ADC12
ADC9
ADC10
ADC7
+2.5VD1
ADC8
ADC5
ADC6
ADC3
+3.3VD2
ADC4
ADC1
ADC2
Q19
Q20
Q21
+3.3VD2
+2.5VD1
NCONFIG
Q12
Q14
Q15
Q17
Q18
Q19
Q21
Q22
XT1
1
3
5
7
9
11
13
15
17
19
21
23
XT3
2
4
6
8
10
12
14
16
18
20
22
24
DT2
+3.3VD2
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR2
XHOLD2
XT2
1
3
5
7
9
11
13
15
17
19
21
23
10к R218
10к R214
10к R217
10к R213
10к R212
10к R216
10к R211
10к R210
10к R215
10к R208
10к R209
10к R206
10к R205
10к R207
10к R203
10к R204
10к R198
10к R199
10к R200
10к R201
10к R219
10к R202
10к R220
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
+3.3VA1
XRESET-G2
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK2
XRD2
XRAMP2
XT4
2
4
6
8
10
12
14
16
18
20
22
24
DT1
+3.3VD2
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR1
XHOLD2
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
+3.3VA1
XRESET-G1
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK1
XRD2
XRAMP1
C34
47MKF X 16B
XT 6
C36
10MKF X 16B
Конт
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+5B
C49
1,0
НА ПЛИС
RE3
RE4
R89 1,8к
R86 22
XRE5
RE5
RE6
R87 22
ADC10
R97 22
XRE4
ADC11
R98 22
XRE6
RE7
RE8
R99 22
AD9
AD1
R109 22
XRE8
ADC12
AD10
AD2
R117 1,8к
R110 22
R126 22
AD11
R111 22
ADC13
AD3
AD4
AD13
R113 22
AD5
AD14
ADC16
R114 22
R127 22
ADC4
R128 22
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
ADC5
AD6
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
AD2
AD4
AD6
AD8
AD10
AD12
AD14
AD16
UDCLK4
DRDY7723
RE5
RE6
RE7
RE8
+3.3VA1
+3.3VD2
-5VA1
C35
1,0
+3.3VD2
C48
0,1
+3.3VD2
L2
1
2
R129 22
3
ADC6
C54
1,0
R121 1,8к
AD15
AD7
R130 22
R106 1,8к
R122 1,8к
R115 22
R131 22
AD16
R107 1,8к
AD8
4 SF0905 S01YS
C51
0,1
PBD-32
R120 1,8к
R105 1,8к
ADC15
ADC3
R119 1,8к
R104 1,8к
ADC14
+5VA2
-5B
+3.3VA1
AD1
AD3
AD5
AD7
AD9
AD11
AD13
AD15
RD7723
RE1
RE2
RE3
RE4
ADC2
R118 1,8к
AD12
R112 22
ADC1
R125 22
R101 1,8к
R103 1,8к
R95 1,8к
R124 22
R116 1,8к
R102 1,8к
R94 1,8к
R91 1,8к
R108 22
R100 1,8к
R93 1,8к
R90 1,8к
XRE7
ADC9
XRE2
+5B
R85 22
XRE3
R96 22
R92 1,8к
ADC7
L3
1
ADC8
4 SF0905 S01YS
C52
0,1
R123 1,8к
2
3
C55
1,0
UDCLK4
RD7723
DRDY7723
RD
+5VA2
C61
10.0x10B
C58
0,1
CLKI
750 R135
+5VA2
22 R133
1,8к R136
22 R134
1,8к R137
+3.3VD2
БЛОК: ВНЕШНИЕАЦП
DRDY
22 R132
+5VA1
C60
10.0x10B
C57
0,1
+5B
RE2
C50
0,1
-5B
L1 100мкГ
+3.3VA1
RE1
R88 1,8к
C32 10MKF X 16B
R84 22
XRE1
XT 5
MF-16MRB
Цепь
+3.3VD2
0.1
L4
1
SF0905 S01YS
2
3
C56
1,0
DA2
1
C15
1,0
Vin
3
5
Vout
GND
C33
4.7
4
BYPASS
+3.3VD1
C62
10.0x10B
C59
0,1
+2.5VD1
ON/OFF
2
4
C53
0,1
15
0.1
10
LP2992
C31 0,01
БЛОК: 20 КНОПОК
И СЕМИСЕГМЕНТНЫЙ
4-ХРАЗРЯДНЫЙ
ИНДИКАТОР
+5B
R154 ... R158
1,8к
R164 ... R171
1,8к
R181
1,8к
R182
1,8к
R184
1,8к
R189
1,8к
DD5:7
DD5:1
R159 100
2
DD5:2
R1
R160 100
4
R161 100
SB6
SB11
SB16
SB2
SB7
SB12
SB17
SB3
SB8
SB13
+5B
7
6
SB18
A
B
C
D
E
F
G
DP
5
SB19
SB4
SB9
SB14
SB5
SB10
SB15
DD5:4
R3
R162 100
8
9
SB20
DD5:5
R163 100
10
LPT 1
WRIT E
R139 100
S1
S8
R149 100
D7
R138 10k
D1
D2
R140 100
R141 100
S2
S3
S9
S10
R150 100
R151 100
D8
DAT AST B
WRIT E
D1
D2
D3
D4
D5
D6
D7
D8
R146 10k
D3
R142 100
S4
S11
R152 100
RESET 1
DAT AST B
R147 10k
D4
R143 100
S5
S12
R153 100
ADDRST B
R148 10k
D5
D6
R144 100
R145 100
S6
S7
RESET 1
БЛОК: LPT-порт
ADDRST B
Конт
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
R6
R7
R8
C65
0,47
C63
0,47
C64
0,47
X1
Цепь
Конт
1
2
RD
3
TD
4
DT R
5
GND
6
DSR
7
RT S
8
CT S
9
DRB_9MA
R166 R176
100
+5VA3
R168
DA3
1
C2+
2
GND
3
C24
V5
DOUT 1
6
DOUT 2
7
DOUT 3
8
RIN1
9
RIN2
10
DOUT 4
11
RIN3
12
DOUT 5
13
FON
14
FOFF
28
C1+
27
V+
26
VCC
25
C124
DIN1
23
DIN2
22
DIN3
21
ROUT 1
20
ROUT 2
19
DIN4
18
ROUT 3
17
DIN5
16
ROUT 1B
15
ERR
C66
0,47
1
C67
0,47
22
22
R188
+5B
Конт
1
2
3
4
5
6
7
8
9
DRB_9FA
R178
1к
Цепь
DAVAIL
176
R169
22
R179
100
+5VA3 DA4
8
VCC
7
B
6
A
5
GND
1
RO
2
RE
3
DE
4
DI
R185
22
R186
22
R187
22
ADM485
22
R177
R180
1к
L5
2
SN75C3238
22
X2
БЛОК: RS232-порт, RS485-порт.
A
B
C
D
E
F
G
DP
DPY
LED
SF0905 S01YS
4
C68
0.1
3
C69
1.0
R183
HG1
11
7
4
2
1
10
5
3
12
Dig1
9
Dig2
8
Dig3
6
Dig4
+5VA3
CEN36F
Цепь
INT R
WAIT
ACK
XFIAG
R5
R6
R7
R8
11
R5
R190 ... R197
100
+5B
R4
14
3
DD5:3
R2
SB1
1
+5VA3
R0
RD_RS
DE_RS
T D_RS
C70
0.1
C71
10.0x10B
Телевизионный цифровой синхрогенератор.
177
178
title "comparator";
constant c32=20;
constant c64=40;
SUBDESIGN cmp1
(
a[9..0],b[2..0]: input; % вход от Т64,вход от СТИ %
z2,z3,z4,z7 : output;%32мкс,64мкс,5имп.,пауза>25мкс%
)
BEGIN
z2 = (a[] > 255-c32)&(a[] < 255+c32);
z3 = (a[] > 511-c64)&(a[] < 511+c64);
z4 = (b[] == 5);
z7 = (a[] > 200);
end;
title "cmp2";
constant t4=30;% 4мкс %
constant t64=479;% 60мкс %
constant t672=5376;% 672мкс %
179
constant t640=5120;%640мкс %
SUBDESIGN cmp2
( a[14..0] : input; % вход от Т1280 %
z3,z4,z5,z6 : output;% 672мкс,640мкс,60мкс,4мкс%
)
BEGIN
z3 = a[] == t672;
z4 = a[] == t640;
z5 = a[] == t64;
z6 = a[] == t4;
end;
end;
TITLE "Timer";
parameters (width = 15);
assert (width >= 0)
report "Значение параметра должно быть больше чем %"
width
severity error;
subdesign cnt_sum
(
clk
: input;
reset
: input;
dout[width..0] : output;
)
variable
rg[width..0] : dff;
begin
rg[].clrn = !reset;
rg[].clk = clk;
rg[].d = rg[].q+1;
dout[] = rg[].q;
end;
INCLUDE "dff";
SUBDESIGN ka1
(
reset,z1,z2,z3,z4 : INPUT;%сброс
RG,видеосмесь,32мкс,64мкс,5имп.%
z7, clk
: input; % пауза>25мкс,входная частота
8Мгц%
y1,y2,y3,y4,y5: output;%сброс Т64,имп-с счёта для
СТИ,сброс СТИ,%
% СИП-1,СИП-2%
180
y7,y8,q[4..0]: OUTPUT;%уст.флаг,сбросить флаг,выходы
RG%
)
VARIABLE
q[4..0] : DFF;
d[4..0] : NODE;% D- входы RG %
BEGIN
q[].clk = clk;
q[].clrn = reset;
q[].prn = VCC;
q[] = d[];
table
q[4..0], z7, z4, z3, z2, z1 => d[4..0];
0 , x , x , x , x , 0 => 0;
0 , x , x , x , x , 1 => 1;
1 , x , x , x , x , 1 => 1;
1 , x , x , x , x , 0 => 2;
2 , x , x , x , x , 0 => 2;
4 , x , x , x , x , x => 2;
14 , x , x , x , x , x => 2;
2 , x , x , x , x , 1 => 3;
3 , x , x , x , x , 1 => 3;% ТОП МПА %
3 , x , x , 0 , x , 0 => 4;
3 , x , x , 1 , x , 0 => 5;
5 , x , x , x , x , x => 6;
6 , x , x , x , x , 0 => 6;
7 , x , x , x , 0 , 0 => 5;
6 , x , x , x , x , 1 => 7;
7 , x , x , x , x , 1 => 7;
7 , x , x , x , 1 , 0 => 8;
10 , x , x , x , x , 0 => 8;
8 , x , x , x , x , x => 9;
9 , x , x , x , x , 0 => 9;
9 , 0 , x , x , x , 1 => 10;
10 , x , x , x , x , 1 => 10;
9 , 1 , 1 , x , x , 1 => 11;
18 , x , x , x , x , x => 12;
12 , x , x , x , x , 0 => 12;
13 , x , 0 , x , x , 0 => 12;
12 , x , x , x , x , 1 => 13;
13 , x , x , x , x , 1 => 13;
13 , x , 1 , x , x , 0 => 14;
17 , x , 1 , x , x , 0 => 14;
181
9 ,1,0,x,x,1
19 , x , x , x , x , x
16 , x , x , x , x , 0
17 , x , 0 , x , x , 0
16 , x , x , x , x , 1
17 , x , x , x , x , 1
11 , x , x , x , x , x
15 , x , x , x , x , x
=>
=>
=>
=>
=>
=>
=>
=>
15;
16;
16;
16;
17;
17;
18;
19;
end table;
table
q[4..0] => y1,y2,y3,y4,y5,y7,y8;
0 =>1, 0, 1, 0, 0, 0, 1;
1 =>1, 0, 0, 0, 0, 0, 0;
2 =>0, 0, 1, 0, 0, 0, 0;
3 =>0, 0, 0, 0, 0, 0, 0; % выходные функции %
4 =>1, 0, 0, 0, 0, 0, 0;
5 =>1, 0, 0, 0, 0, 0, 0;
6 =>0, 0, 0, 0, 0, 0, 0;
7 =>0, 0, 0, 0, 0, 0, 0;
8 =>1, 1, 0, 0, 0, 0, 0;
9 =>0, 0, 0, 0, 0, 0, 0;
10 =>
0, 0, 0, 0, 0, 0, 0;
11 =>
0, 0, 1, 0, 1, 1, 0;
12 =>
0, 1, 0, 0, 1, 0, 0;
13 =>
0, 0, 0, 0, 1, 0, 0;
14 =>
1, 0, 0, 0, 0, 0, 0;
15 =>
0, 0, 1, 1, 0, 0, 1;
16 =>
0, 1, 0, 1, 0, 0, 0;
17 =>
0, 0, 0, 1, 0, 0, 0;
18 =>
0, 0, 0, 0, 1, 0, 0;
19 =>
0, 0, 0, 1, 0, 0, 0;
end table;
end;
title "FSSI";
INCLUDE "dff";
SUBDESIGN ka2
(
reset,clk,z1,z2 :INPUT;%сброс RG,вх.частота
8Мгц,СИП-1,СИП-2%
z3,z4,z5,z6
:input;% 672мкс,640мкс,60мкс,4мкс%
y1,y2,q[3..0]:output;%сброс Т1280,ССИ,вых.RG%
)
VARIABLE
182
q[3..0]
d[3..0]
: DFF;
: NODE;% D- входы RG %
BEGIN
q[].clk = clk;
q[].clrn = reset;
q[].prn = VCC;
q[] = d[];
table
q[3..0], z6, z5, z4, z3, z2, z1 => d[3..0];
0 , x , x , x , x , 0 , 0 => 0;
0 , x , x , x , x , x , 1 => 1;
1 , x , x , x , x , x , 1 => 1;
10 , x , x , x , x , x , 1 => 1;
1 , x , x , x , x , x , 0 => 2;
2 , x , x , x , 0 , x , x => 2;
2 , x , x , x , 1 , x , x => 3;
5 , x , 1 , x , x , 0 , x => 3;
3 , x , x , x , x , x , x => 4;
4 , 0 , x , x , x , x , x => 4;
4 , 1 , x , x , x , x , x => 11;
11 , x , x , x , x , x , x => 5;% ТОП МПА %
5 , x , 0 , x , x , x , x => 5;
5 , x , 1 , x , x , 1 , x => 6;
0 , x , x , x , x , 1 , 0 => 6;
6 , x , x , x , x , 1 , x => 6;
6 , x , x , x , x , 0 , x => 7;
7 , x , x , 0 , x , x , x => 7;
7 , x , x , 1 , x , x , x => 8;
10 , x , 1 , x , x , x , 0 => 8;
8 , x , x , x , x , x , x => 9;
9 , 0 , x , x , x , x , x => 9;
9 , 1 , x , x , x , x , x => 12;
12 , x , x , x , x , x , x => 10;
10 , x , 0 , x , x , x , x => 10;
end table;
table
q[3..0]
=> y1,y2;
0
=> 1, 0;
1
=> 1, 0;
2
=> 0, 0;
3
=> 1, 0;
4
=> 0, 0;
5
=> 0, 1; % выходные функции %
183
6
7
8
9
10
11
12
=>
=>
=>
=>
=>
=>
=>
1, 0;
0, 0;
1, 0;
0, 0;
0, 1;
1, 1;
1, 1;
end table;
end;
Синтезатор частоты.
Синтезатор частоты (СЧ) построен на ИМС фирмы Analog
Device AD9854. Она имеет два выхода, один из них квадратурный. По двум каналам установлены ФНЧ и усилители мощности. Этот узел обладает высокой универсальностью. Он
может быть использован в цифровых телевизионных и радиопередатчиках, в телевизионных генераторах испытательных
сигналов (ГИС). Принципиальная схема СЧ представлена на
рисунке.
184
C1 2*
R2 22
F75+2
XF75+2
R24 22
XF75-2
F75-2
-5V
R13 1k8
R35 1k8
L13
4 SF0905 S01YS
1
R3 22
RAMP2
XRAMP2
XA5
R14 1k8
R4 22
HOLD2
XD0
R15 1k8
RD2
R6 270
XRD2
XD1
XUDCLK2
XD2
XD3
R7 22
XWR2
XD4
R8 22
XA0
XD5
XA1
XD6
XA2
XD7
R11 22
XA3
XRESET-G
A4
R28 22
D0
D1
D2
D3
D4
D5
D6
D7
8
7
6
5
4
3
2
1
A0
A1
A2
A3
A4
A5
19
18
17
16
15
14
UDCLK2
WR2
RD2
HOLD2
20
21
22
29
70
69
68
64
71
30
D1
R29 22
D4
R30 22
D3
R31 22
D6
R32 22
D5
R33 22
F75-2
F75+2
D7
R44 1k8
R21 1k8
R12 22
XA4
R34 22
RESET_G
RAMP2
D0
D1
D2
D3
D4
D5
D6
D7
RESET_G
3
2
XF75-2
AGND
+5V
-5V
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
12pF
IOT2
IOT2B
VOUT
VINN
VINP
DACR
DT
D+3.3V
XD7
XD5
XD3
XD1
XD0
XA4
XA2
XA0
XWR2
XHOLD2
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
8.2pF
52
R53
50
51
43
42
56
C9
47pF
2.2pF
C6
27pF
C13
39pF
C12
12pF
L4 68nH
C10
47pF
C17
22pF
R55
50
C16
8.2pF
L6 68nH
5
AGND
кабель рд-50-0.87-21
C14
39pF
+5V
L14
22pF*
C19
R54 50
A1+5V
AGND
C18
27pF
C20
0.1
SF0905 S01YS
4
1
C43
0.1
A1+5V
2
3
C44
1.0
C21
0.1
C45
0.1
C46
10.0x10B
AGND
A1-5V
AGND
AGND
R48 100 *
R49 100 *
C24
2.2pF
C28
12pF
C32
8.2pF
2
AGND
C3 0.1
55
D+3.3V
A1+5V
R50 3k9 *
A+3.3V
R58
50
L9 68nH
7
L15
DA3
AD8009
1
R63 50
6
L11 68nH
3
C22
27pF
C26
47pF
C30
39pF
C34
22pF
61
R61
50
D1+3.3V
2
кабель рд-50-0.87-21
3
C48
1.0
AGND
A1-5V
4 SF0905 S01YS
C47
0.1
6
7
4
C49
0.1
C50
10.0x10B
R62 120 *
R46
1k3
C25
C4 0.01
2.2pF
L8 82nH
A+3.3V
R59
50
C23
27pF
C29
12pF
L10 68nH
C27
47pF
C33
8.2pF
L12 68nH
C31
39pF
C36
R60 50
22pF*
A1+5V
AGND
C35
27pF
C37
0.1
C38
0.1
C7 ... C12
D+3.3V
AGND
A1-5V
A+3.3V
XRESET-G
XD6
XD4
XD2
XA5
XA3
XA1
XUDCLK2
XRD2
XRAMP2
C42
10.0x10B
4
AGND
A1-5V
R47 50
L7 82nH
PLLF
R57 50
3
R56 120 *
C8
49
36
7
C41
0.1
DA2
AD8009
6
L5 68nH
48
R51 3k9 *
DACBR
L3 68nH
XT2
AGND
C15
4
C5
27pF
L2 82nH
AD9854ASQ
1
C2 0.1
IOT1
IOT1B
UDCLK
WRB
RDB
FSK
S/P
CLKA
CLK
CLKB
CLKEN
MASR
SK
R45 1k8
D+3.3V
XF75+2
DAC
A0
A1
A2
A3
A4
A5
R22 1k8
XT1
R52
50
DA1
R43 1k8
R20 1k8
A3
D2
R42 1k8
R19 1k8
R10 22
A2
C11
2
R41 1k8
R18 1k8
R9 22
2.2pF
L1 82nH
R27 22
R40 1k8
R17 1k8
A1
C7
3
C40
1.0
A1+5V
D0
R39 1k8
R23 3k6
A0
R26 22
R38 1k8
R1 3k6
WR2
A1-5V
2
R37 1k8
R16 1k8
UDCLK2
C39
0.1
A5
R36 1k8
XHOLD2
R5 22
R25 22
AGND
0.1
6
C57
10.0x10B
DD1
DT
D1+3.3V
1
3
2
DG
# t°C
VCC
GND
DS1822
C13 ... C20
A+3.3V
0.1
8
C66
10.0x10B
AGND
Power Table
Ref Des Device(Type)
Package
GND
DA1
AD9854ASQ LQFP_ED-80 78,77,76,75,72,28,27,
26,12,11
185
D+3.3V
80,79,74,73,25,24,23,
10,9
AGND
67,66,62,59,53,47,46,
45,41,40,39,34,33
A+3.3V
65,60,54,50,44,38,37,
32,31
Особенности создания проекта для БМК.
Прежде, чем приступать к проектированию цифрового
устройства (ЦУ) на БМК, необходимо разработать его на основе ПЛИС. Поскольку у меня есть опыт работы с ПЛИС лишь ф.
Altera, то речь будет идти о комплектующих и инструментарии
этой фирмы. Для относительно несложных проектов вполне
достаточно САПР MAX+PLUS II. Если в вашем ЦУ предполагается использование нескольких быстродействующих процессоров, то, учитывая требования технологии «система на
кристалле» (System on Chip – SoC), следует отдать предпочтение САПР Excalibur.
Проект должен быть выполнен в тексто-графическом
формате [26], что обеспечит его «прозрачность». Разработка
ЦУ является микропрограммированием, т.е. ей присущи все
недостатки мини-, миди- и макропрограммирования (ассемблеры и языки высокого уровня): невозможно создать «прозрачную» текстовую программу, особенно, если её листинг
превышает сотню страниц. Тексто-графическое исполнение
облегчает выполнение требований по структурированному
программированию. Кстати, обязательное требование размещения любого блока, модуля и т.п. в одном экране. Это облегчит восприятие проекта в целом.
В качестве языков микропрограммирования используются
AHDL, VHDL, VeryLog. Самым простым и самым популярным
из них является AHDL. Автор также отдаёт предпочтение этому языку (чем проще, тем талантливее). Однако в качестве
стандарта принят VHDL. Фирмы, владеющие технологиями
БМК, весьма неохотно берут проекты, выполненные на AHDL.
Фирма «Ангстрем», наиболее серьёзное предприятие, имеющее многолетний опыт разработок на основе БМК, разместила
информацию
о
своих
возможностях
на
сайте
http://www.angstrem.ru.
186
187
Прежде, чем передавать проект для реализации на БМК,
рекомендуется проверить его в макетном исполнении на
ПЛИС. И только при остром цейтноте можно пропустить этот
этап. Перевод проекта из системы MAX+PLUS II в OrCAD
представляет дополнительную головную боль. Правда, если
вам удастся договориться с ф. «Ангстрем», то эту неблагодарную работу за дополнительную плату фирма возьмёт на
себя. Полная верификация проекта с учётом реальных задержек также выполняется в OrCAD. Вполне возможно, что после
верификации вам придётся заняться подгонкой схемы под заданное быстродействие.
При бортовом исполнении проекта следует обратить самое пристальное внимание на радиационную стойкость: этот
параметр должен быть 2У, во всяком случае не хуже 1У.
Контролепригодность.
Появление стандарта на контролепригодность [4,54]
ПЛИС, БМК и т.п. предопределило введение тестового порта с
сигналами: CLK (тактовая частота тестирования), TMS (раз-
188
решение тестирования), TDI (вход тестовых данных) и TDO
(выход тестовых данных).
Схема одного из вариантов тестируемого триггера [34]
представлена на рисунке 1, счётчик на основе этого триггера
изображён на рис. 2.
Рис.1. Схема тестируемого D-триггера.
189
Рис.2. Схема тестируемого счётчика.
На рис.1 использованы следующие обозначения: С (рабочая частота тактирования), ТC (тактовая частота тестирования), TЕ (разрешение тестирования), D (вход рабочих данных),
TI (вход тестовых данных) и TDO (выход тестовых данных), NR
(активно-низкий сброс).
Разумеется, на основе тестируемого триггера можно построить не только счётчик, но и любой микропрограммный автомат (МПА). Однако, пока не будет создана соответствующая
библиотека стандартных тестируемых элементов с оптимальной топологией, все усилия разработчика по обеспечению
контролепригодности будут тщетны.
Использование сквозной линии : CLK и TMS требует использование глобальных связей. Такая возможность предусмотрена в ПЛИС ф. “Altera”, но её нет в БМК ф. «Ангстрем».
Кроме того, в САПР «Ангстрем» до сих пор в библиотеке стандартных элементов нет контролепригодных элементов памяти (ЭП). С большим трудом удалось доказать безусловную
190
необходимость таких программ. Такая «недальновидность»
характерна для всех известных мне отечественных разработчиков. Всё, что реализовано на БМК с использованием ЭП
(более 100 проектов), неконтролепригодно. Кстати, это в
первую очередь должен знать Заказчик, поскольку в противном случае все заверения разработчика о том, что он гарантирует хоть какую-то полноту контроля, являются блефом.
Обычно наш Заказчик требует 80%-полноту контроля. САПР
моделирования неисправностей и проверки полноты контроля
типа CAMELOT не всем по карману, поэтому мы всю жизнь
обманывали друг друга. Заказчик же делал вид, что нам верил. В настоящее время такое положение вещей недопустимо.
Раньше мы оправдывали свою беспомощность большими аппаратными затратами, теперь этого «козыря» у разработчиков
нет.
Несколько слов о JTAG-интерфейсе. Несмотря на все его
достоинства [34], он не обеспечивает входной контроль БМК.
Поэтому, получив БМК от изготовителя, вы не сумеете убедиться в его исправности, если не выполните все те требования, о которых говорилось выше.
До сих пор все разработки с точки зрения контролепригодности вопиюще безграмотны. При проектировании топологии заказных КМОП БИС даже не рассматривается структура тестируемого триггера (“Chip News, №2, 2003, с.5-13). Разработки на БМК даже у профессионалов советской выучки
грешат подобными недостатками. Поэтому я настоятельно рекомендую руководителям разрабатывающих подразделений
введение аттестации цифровиков хотя бы в объёме «Азбуки
разработчика цифровых устройств» [37]. Более того, вполне
допустим анализ уровня исполнения проекта внешними разработчиками-профессионалами. Требуется введение вневедомственной ревизионной службы по контролю технического
уровня исполнения проекта (цифровой и аналоговой части,
помехозащите, стыковке ПЛИС и БМК с МП и т.п.), в том числе
и по контролепригодности с полнотой тестирования.
Вслед за контролепригодностью возникает проблема синтеза тестов. Имея контролепригодную схему, можно автоматизировать в определённой степени синтез тестов. Для этого
САПР должна уметь на основе введённой схемы строить тест
для заранее заданных наборов сигналов на входах определённого элемента схемы. Теоретически можно построить тест,
эквивалентный тривиальному, т.е. со 100% - полнотой контроля. Длина такого теста может быть вполне разумной. Од191
новременно с решением вопросов контролепригодности,
необходимо предусмотреть и самодиагностируемость(LSSD,
BILBO). Все эти проблемы подробно рассмотрены в прекрасной книге Беннетса [4], перевод которой выполнил профессионал в области диагностики, проф. ХПИ Леонид Викторович
Дербунович.
192
8.2. О недостатках САПР MAX+PLUS II.
Широкое внедрение ПЛИС фирмы Altera в практику цифровых разработок связано не только с достоинствами этих
микросхем, но и не в последнюю очередь с появлением отечественной литературы по данному вопросу[2]. Десять лет тому
назад появление САПР ПЛИС Xilinx сопровождалось такими
сложностями, что применять эту систему в практических разработках не было ни малейшего желания. В прекрасном практическом курсе [2] не только разобран весь процесс проектирования, но ещё и приложен компакт-диск с самой САПР. Это
уже выше всех ожиданий, поскольку покупка MAX+PLUS II
обошлась бы разработчику в $1000.
Но как же поступают наши и зарубежные разработчики,
получив в руки такое мощное оружие. Очень просто: они рисуют схемы в графическом редакторе. В МИФИ такой подход
называют вентильным мышлением. Я называю подобный метод технологией мартышки с арифмометром. Обиднее всего
то, что данную «технологию» используют безусловно талантливые и высокопрофессиональные разработчики с прекрасной
математической подготовкой.
Слабым утешением может служить тот факт, что зарубежные цифровики ещё более безграмотны. У отечественных
разработчиков начинает просыпаться интерес к синтезу микропрограммных автоматов, хотя это и происходит спустя 30
лет после выхода в печать популяризаторских работ[3,22].
А «передовой Запад» демонстрирует своё невежество
даже в таком суперважном программном продукте как
MAX+PLUS II. На рис. 1 представлен файл ka2.tdf(в оригинале
moore2.tdf) микропрограммного автомата(МПА), позаимствованный из фирменных материалов. После трансляции файла
ka2.tdf и симуляции файла ka2.scf были получены временные диаграммы работы этого МПА(рис.2). Если не полениться
и вручную проверить работу описанного в файле ka2.tdf МПА,
то мы получим иные временные диаграммы (рис.3). Кстати,
пришлось вначале формально построить МПА, а потом нарисовать его схему в графическом редакторе (рис.4). Симулятор
и в данном случае подтвердил промашку фирмы. После анализа огрехов фирмы Altera был найден способ автоматического решения проблемы. Это фундаментальная ошибка, поскольку она не позволяет использовать формальный синтез
193
МПА. Подобная оплошность свидетельствует не только о беспомощности разработчиков фирмы, но и о безграмотности западных цифровиков, т.к. вопиющая ошибка не была обнаружена за рубежом вплоть до появления САПР в России, т.е. в
течение по меньшей мере 5 лет.
SUBDESIGN ka2
(
clk : INPUT;
reset : INPUT;
y : INPUT;
z : OUTPUT;
)
VARIABLE
ss : MACHINE WITH STATES (s0,s1,s2,s3);
zd : NODE;
BEGIN
ss.clk = clk;
ss.reset = reset;
z = DFF(zd, clk, VCC, VCC);
TABLE
%
current
current
next
next %
%
state
input
state
output %
ss,
y
=>
ss,
zd ;
s0,
0
=> s0,
0;
s0,
1
=>
s2,
1;
s1,
0
=>
s0,
0;
s1,
1
=>
s2,
1;
s2,
0
=>
s2,
1;
s2,
1
=>
s3,
0;
s3,
0
=>
s3,
0;
s3,
1
=>
s1,
1;
END TABLE;
END;
194
Рис. 1
Рис. 2
195
Рис. 3
196
Рис.4
Проверим работу САПР на примере минимизации логической функции от 8 переменных. Функция У задана таблицей истинности в виде 10-чных и двоичных наборов z(10), z(2)
соответственно.
Z(10)
Z(2)
Y
1
00000001
1
17
00010001
1
64
01000000
1
208
11010000
1
144
10010000
1
48
00110000
0
96
01100000
0
240
11110000
0
После минимизации по методу обобщённых кодов[22] получаем результат:
Y = z5’, где апостроф означает инверсию, что в 25 раз проще
функции, выданной САПР MAX+PLUS II.
Дополнительный недостаток САПР заключается ещё и в
том, что некоторые мегафункции некорректно работают в
197
определённых ситуациях(например, LPM_COUNTER в проектах fssi.gdf, fsip.gdf). Приходится заменять их на стандартные
счётчики. Иногда и эта мера не спасает – приходится менять
алгоритм работы автомата, вводя лишний, ничем не мотивированный сброс.
198
199
200
201
Кроме того, реализация SR-триггера на элементах ИЛИНЕ также привела к непредсказуемым эффектам. Пришлось
заменить на стандартный SR-триггер из библиотеки элементов(см. fsip.gdf).
Вызывает нарекания пользователей и работа с двухпортовой памятью(см. probaram.tdf). При трансляции, например,
запрашивается количество выводов ПЛИС.
202
Мой опыт работы с САПР MAX+PLUS II относительно
невелик. Однако он не помешал в течение одной недели выловить глобальную погрешность САПР ф. Altera. Это говорит,
во-первых, о простоте AHDL и САПР в целом, а во-вторых, о
жёсткой необходимости владения инструментом формального
синтеза МПА. Общий стаж цифровых разработок составляет
более четверти века, что позволяет мне высказать некоторые
рекомендации.
Во-первых, профессионал – это не тот, кто всё знает, а
тот специалист, кто умеет ориентироваться в море информации и осваивать новые перспективные направления.
Во-вторых, при освоениии новых технологий, дабы не
превратиться в мартышку с арифмометром, нужно знать азбуку своей профессии. Для цифровика эта азбука заключается в
следующем:
1. Алгебра логики.
2. Карты Карно на 8 - 12 переменных как наиболее эффективный способ ручной минимизации Булевых функций.
3. Метод обобщённых кодов как наиболее эффективный машинный метод минимизации Булевых функций от большого
числа переменных(32 и более).
4. Формальный синтез МПА.
5. Эвристические методы синтеза последовательностных
схем.
Без знания этих основ цифровик не имеет права на звание инженера. Синтез МПА фундаментально и элегантно изложен в [3]. Однако эта элегантность и математическая строгость не позволили подавляющему большинству инженеров
освоить формальный синтез. Эвристические методы прекрасно и просто описаны у Гутникова[14].
Метод обобщённых кодов был разработан в конце 60-х
годов на 21-й кафедре Академии им. Дзержинского д. т. н.
Мавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н.
Кузнецовым Н.В. и к.т.н. Салтыковым Ю.А.(см. "Вопросы оборонной техники", 1972 г.).
Все 5 пунктов «цифрового букваря» достаточно просто
изложены в техническом руководстве по материалам лекций,
прочитанных автором в 1976г. для ведущих специалистов
НИИРТА[22], а также в “Азбуке разработчика цифровых
устройств”[37].
203
Кроме вышеперечисленного ликбеза разработчикуцифровику необходимо осваивать и классическую логику.
Связано это с тем, что 21 век называют веком искусственного
интеллекта (ИИ). Задачи ИИ будут решать цифровики. Но
фундаментом ИИ являются логика суждений и силлогистика.
Классическая мировая логика в этом плане дремуче невежественна. Проблемы этих дисциплин с инженерной точки зрения абсолютно прозрачны и впервые решены в России[27 –
43], а также на сайте http://ruslogic.narod.ru], посему их результатами первыми должны воспользоваться российские инженеры.
На вышеприведённом рисунке представлен проект цифрового
фильтра второго порядка. После трансляции он занял 25%
объёма ПЛИС EPF10K20. После добавления к нему аналогичного фильтра FLTR1.GDF, т.е. тоже 25% объёма EPF10K20,
была получена схема:
204
205
Вместо ожидаемых 50% транслятор выдал сообщение о нехватке
памяти.
После
замены
EPF10K20
на
ACEX1K(EP1K30TC144-1) трансляция прошла успешно.
** DEVICE SUMMARY **
Chip/
Input Output Bidir Memory Memory
LCs
POF
Device
Utilized
Pins Pins Pins Bits % Utilized LCs %
filtr
EP1K30TC144-1
26 %
32
User Pins:
53
§
Project Information
32
53
0
3008
12 %
452
0
d:\lvi\altera\project\redan\filtr\filtr.rpt
206
Из распечатки файла filtr.rpt видно, что проект занял бы не более 50% ПЛИС EPF10K20.
Работа 2-портового ОЗУ вызывает много вопросов(см. ramridp
в otv81int, we & !clk = we & clk)
Групповые операции присвоения тоже иногда приводят к
неожиданностям.
SUBDESIGN karam1
% контроллер динамической памяти %
(
z1,z2,z3,z4,z5
: input;% RESET,прошли 4096
тактов,2 тактa,WRITE,READ %
z6,z7,z8,clk
: input;% прошли 3 тактa,прошли
507 тактов,kr %
y1,y2,y3,y4,y5,y6,y8 : output;%
nWE,nRAS,nCAS,nCS,DQM,CKE,запуск таймера %
207
y9,y10,y11,y12,y13,y14 : output; % A10,READY - готовность к работе,выдать адрес 0227h,выдать AdrStr,выдать
AdrBank,выдать AdrStlb %
y15,y16,y17,y18,y19 : output; % сигнал готовности
данных для записи в ОЗУ,EOW-End of Write,EOR-End of
Read,A[10..9]/A[1..0],Fcta %
q[5..0]
: output;% вых. регистра КА %
)
VARIABLE
q[5..0],qy[19..1] : DFF;
d[5..0],dy[19..1],f[19..1] : NODE;% d - входы RG %
BEGIN
q[].clk = clk;
q[].clrn = !z1;
q[].prn = VCC;
q[].d = d[];
qy[].clk = clk;
qy[].clrn = !z1;
qy[].prn = VCC;
qy[].d = dy[];
table
q[5..0],z8,z7,z6,z5,z4,z3,z2,z1 => d[5..0];
11 , x, x, x, x, x, x, x, 1 => 0;
0 , x, x, x, x, x, x, x, 1 => 0;
0 , x, x, x, x, x, x, x, 0 => 1;
1 , x, x, x, x, x, x, 0, x => 1;
1 , x, x, x, x, x, x, 1, x => 2;
2 , x, x, x, x, x, x, x, x => 3;
3 , x, x, x, x, x, x, x, x => 4;
4 , x, x, x, x, x, 0, x, x => 4;
4 , x, x, x, x, x, 1, x, x => 5;
5 , x, x, x, x, x, x, x, x => 6;
6 , x, x, x, x, x, 0, x, x => 6;
6 , x, x, x, x, x, 1, x, x => 7;
7 , x, x, x, x, x, x, x, x => 8;
8 , x, x, x, x, x, x, x, x => 9;
9 , x, x, x, x, x, x, x, x => 10;
10 , x, x, x, x, x, 0, x, x => 10;
10 , x, x, x, x, x, 1, x, x => 11;
11 , x, x, x, 0, 0, x, x, 0 => 11;
18 , x, x, x, x, x, x, x, x => 11;
37 , x, x, x, x, x, x, x, x => 11;
11 , x, x, x, 0, 1, x, x, 0 => 12;
208
12
13
13
14
15
16
17
17
11
19
20
20
21
22
23
24
25
25
30
26
27
28
29
30
30
31
32
32
33
34
35
36
, x, x, x, x, x, x, x, x => 13;
, x, x, x, x, x, 0, x, x => 13;
, x, x, x, x, x, 1, x, x => 14;
, x, x, x, x, x, x, x, x => 15;
, x, x, x, x, x, x, x, x => 16;% ТОП МПА %
, x, x, x, x, x, x, x, x => 17;
, x, x, x, x, x, 0, x, x => 17;
, x, x, x, x, x, 1, x, x => 18;
, x, x, x, 1, x, x, x, 0 => 19;
, x, x, x, x, x, x, x, x => 20;
, x, x, x, x, x, 0, x, x => 20;
, x, x, x, x, x, 1, x, x => 21;
, x, x, x, x, x, x, x, x => 22;
, x, x, x, x, x, x, x, x => 23;
, x, x, x, x, x, x, x, x => 24;
, x, x, x, x, x, x, x, x => 25;
, x, 0, x, x, x, x, x, x => 25;
, x, 1, x, x, x, x, x, x => 26;
, 0, 1, x, x, x, x, x, x => 26;
, x, x, x, x, x, x, x, x => 27;
, x, x, x, x, x, x, x, x => 28;
, x, x, x, x, x, x, x, x => 29;
, x, x, x, x, x, x, x, x => 30;
, x, 0, x, x, x, x, x, x => 30;
, 1, 1, x, x, x, x, x, x => 31;
, x, x, x, x, x, x, x, x => 32;
, x, x, x, x, x, 0, x, x => 32;
, x, x, x, x, x, 1, x, x => 33;
, x, x, x, x, x, x, x, x => 34;
, x, x, x, x, x, x, x, x => 35;
, x, x, x, x, x, x, x, x => 36;
, x, x, x, x, x, x, x, x => 37;
end table;
table
q[5..0] => f19,f18,f17,f16,f15,f14,f13,f12,f11,f10,f9,f8,f6,f5,f4,f3,f2,f1;
0 => 0 , 0 , 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, 1, 1, 0, 1, 1, 1;
2 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 1, 0, 0;
3 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
4 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
5 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
6 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
7 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
8 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
9 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 1;
10 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 0, 0, 1, 1, 1, 1;
11 => 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0, 0, 0, 0, 1, 1, 1, 1;
209
12
13
14
15
16
17
18
ходных функций %
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
end table;
=>
=>
=>
=>
=>
=>
=>
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 0;
0 , 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, 1, 1, 1, 1;
0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;% таблица вы-
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0, 0, 1, 0, 0, 1, 0, 1;
0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1, 0, 1, 0, 0, 0, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 0, 0, 0, 1;
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 1, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 1, 1, 0, 1, 1, 1, 1;
0 , 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, 0, 0, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 1, 1, 1, 1;
dy[6..1] = f[6..1];
dy[19..8] = f[19..8];
dy8 = f8;
dy7 = gnd;
y1 = qy1;
y2 = qy2;
y3 = qy3;
y4 = qy4;
y5 = qy5;
y6 = qy6;
y8 = qy8;
y9 = qy9;
y10= qy10;
y11= qy11;
y12= qy12;
y13= qy13;
y14= qy14;
y15= qy15;
y16= qy16;
y17= qy17;
y18= qy18;
y19= qy19;
end;
210
8.3. О повышении технического уровня отечественных разработок.
В настоящее время остро ощущается разрыв поколений
разработчиков, резко снизился технический уровень НИОКР.
Это результат целенаправленного уничтожения морали, культуры, образования, науки, экономики, политики и обороноспособности России, осуществляемого «пятой колонной» по указанию так называемого Всемирного правительства (США). Бороться с этой предательской политикой фактически оккупационного правительства необходимо на всех фронтах, в том
числе и на научно-техническом. Задачей старшего поколения
инженеров и учёных является передача накопленных знаний
молодому поколению патриотов, строителей новой России.
Автор более 30 лет занимался разработками цифровых
систем управления, длительное время возглавлял отдел в
ЦННИИ «Циклон» (головной институт Минэлектронпрома
СССР), внедрял микропроцессоры и вычислительную технику
в народное хозяйство, поэтому о советских разработках знает
не понаслышке. Если даже в СССР технический уровень проектов был недостаточно высоким, то теперь он опустился до
радиолюбительства. Задача старшего поколения проектировщиков заключается в повышении уровня современных разработок и передаче накопленного опыта молодой генерации
конструкторов.
В НИИ Дальней Радиосвязи (НИИДАР) сложилась группа
разработчиков-профессионалов, имеющих 30 – 40-летний
опыт создания систем управления оборонного назначения.
Возглавляет группу зам.руководителя НПП «Полигонные системы ПВО» Кашин Ф.А. На его счету разработки систем
управления радиовзрывателями (РВ) для ракет (изделия
83В6, 88В6, 98В6, 3В46, 9ЖБ920 – изделие «Крым» и т.п.), а
также систем спутниковой навигации и систем полигонных испытаний для головок самонаведения и РВ при работе по движущейся цели. При создании этих систем использовалась как
отечественная, так и современная зарубежная элементная база (ПЛИС, микроконтроллеры, синтезаторы частоты и т.п.). В
группе обобщён опыт проведения работ НИИРТА (НПО «Импульс», Минсредмаш СССР), ЦНИИ «Циклон» (Минэлектрон-
211
пром СССР), НПП «Полигонные системы», НПП «Редан» (при
ГУП НПП «Регион») и НИИДАР. Эта группа в состоянии выявить недостатки проекта в объёме изделия 88В6 и предложить решения по устранению недостатков в течение 5 дней.
Скопившиеся за последнее десятилетие претензии к
уровню цифровых разработок изложены в работах автора
[26,31,34,37]. В основном это незнание инженерных и формальных методов синтеза микропрограммных автоматов
(МПА), неумение построить тестопригодную систему и тем более разработать тест со 100% - полнотой контроля. Элементарным признаком безграмотной разработки является использование «рассыпной» элементной базы вместо разрешённых к
применению БМК, ПЛМ и ПМЛ. В случае применения зарубежных ПЛИС по незнанию игнорируются вопросы стыковки ПЛИС
с входными и выходными сигналами. Не решаются вопросы
повышения надёжности при спецвоздействиях хотя бы на таком уровне как это сделано в изделии 5Е50.
Многолетний стаж разработок цифровых систем управления в Минсредмаше, разработка и внедрение в народное хозяйство микропроцессорных систем, а также участие в разработках изделий других ведомств оборонного характера позволили накопить определённый практический и теоретический
багаж. Программирование на языках высокого уровня (ЯВУ):
Фортран, Алгол, Паскаль, Си, Форт, РАЯ и использование не
менее двух десятков ассемблеров привело к выводу, что далеко не всё благополучно в стане программистов. Опыт схемотехнического проектирования и постоянные контакты с разработчиками Советского Союза выявили слабую теоретическую подготовку отечественных разработчиков в области синтеза микропрограммных автоматов (МПА). Непродолжительное, к сожалению, взаимодействие с ведущими специалистами СССР в области диагностики, такими как проф. Дербунович
Л.В.(ХПИ, г. Харьков), к.т.н. Мызь А.Н.(ХПИ), тем не менее
привело к мысли о низком профессиональном уровне разработчиков цифровых систем управления в области обеспечения контролепригодности своих разработок и их тестировании
(автор не является исключением).
212
Уровень современных разработок и элементная база: ПЛИС,
сигнальные процессоры и отечественные аналоги.
Сложность современных задач по цифровой обработке
информации достигла такого уровня, что говорить о реализации этих проектов на традиционной «рассыпной» элементной
базе не приходится. Одна из плат НИР–овского варианта модуля цифровой обработки сигнала имеет в своём составе 6
сигнальных процессоров типа ADSP2181 и 6 ПЛИС
FLEX10K20. Использование указанной элементной базы позволило обеспечить массогабаритные и надёжностные требования к изделию. Однако бортовые системы категорически
должны строиться на базе отечественных микросхем. МИД в
лице своего министра заявило 26.01.03 о возврате к холодной
войне. За прошедшие два года ситуация только обострилась.
Проектирование современных цифровых и аналоговых
систем управления напоминает зачастую процесс построения
домиков из кубиков в детском саду. В целом такая тенденция
прогрессивна. Беда лишь в том, что «кубики» эти зарубежные.
Однако требования безопасности России диктуют безусловный переход на отечественную элементную базу. Свежий
пример: при создании цифрового телевизионного передатчика
были использованы весьма неплохие ИС АЦП AD9244,
AD7723 и синтезатор AD9854. А теперь наш ОМТС столкнулся с проблемой эмбарго. В советские времена мы с гордостью
говорили: «Только СССР и Америка делают всю номенклатуру
электронной техники». Ушли те времена, а проблема обеспечения электронной безопасности осталась. В своих разработках мы столкнулись с тем, что Заказчик (а это люди в погонах,
защитники России) справедливо и жёстко потребовал от нас
перевода предыдущих разработок на отечественную элементную базу. В цифровой и даже аналоговой электронике такой
переход возможен лишь за счёт базовых матричных кристаллов (БМК).
Что может в настоящее время предложить разгромленная
электронная промышленность России?
В области сигнальных процессоров разработаны в ГУП
НПЦ ЭЛВИС двухпроцессорные (RISC – и DSP – ядро) микросхемы Мультикор-11хх (МС-11хх) на основе 0,54-мкм (3 ме-
213
талла) библиотеки отечественного изготовителя ОАО «Ангстрем». Микросхема МС-11Т имеет интеграцию около 2 млн.
вентилей и размеры кристалла 10,1х10,1мм. Функциональные
возможности Мультикор-11 на уровне сигнального 32разрядного процессора TMS320VC5470. Опытные образцы
МС-11Т получены в IV квартале 2002г. На их основе созданы
платы KIT, с помощью которых проверяется работа САПР отладки программного обеспечения для МС-11Т. Автор присутствовал при демонстрации процесса отладки САПР. В конце
2003г. была создана базовая версия инструментального программного обеспечения MCS для СБИС на базе платформы
«Мультикор». Демо-версия MCS была любезно предоставлена
автору руководством. Вся стратегия проектирования ГУП НПЦ
ЭЛВИС чётко вписывается в требования технологии разработок «система на кристалле» (СнК, или SoC).
В настоящее время серийные образцы «Мультикоров»
содержат уже 15 млн. транзисторов. Кристаллы были изготовлены по технологии 0,25 мкм и содержат RISC - и DSP – ядро.
Производительность процессоров – порядка 600 Мflops.
Напомню, что такую производительность имеет сигнальный
процессор SHARC ADSP21160N компании Analog Devices, являющейся флагманом в создании компонентов для построения систем ЦОС. В середине 2004 г. был создан процессор по
технологии «Мультикор» с производительностью 2400 Mflops и
свыше 14 млрд. оп./с. для байтовых форматов данных, что соответствует характеристикам самого мощного чипа DSP Tiger
SHARC (TS201, 0,13-мкм, 3600 Mflops).
Но мало освоить технологию разработки кристаллов –
нужно дать проектировщикам инструментарий для создания
систем ЦОС на базе «Мультикор». Фирма ЭЛВИС блестяще
справилась и с этой задачей. Создан системный «Мультикорконструктор» на основе набора СБИС, позволяющий разработчику РЭА легко создавать как связанные, так и распределённые системы. В конструктор входят разнообразные средства отладки и моделирования, инструментальные платы и
мощное программное обеспечение. Запад не продаёт системы
такого интеллектуального уровня (эмбарго). Процессоры
«Мультикор» будут продаваться без ограничений. Кроме того,
тестовое инструментальное ПО для чипов «Мультикор» передаётся бесплатно.
В области БМК достаточно широкая номенклатура от
Н1806ХМ1 (1,5 тыс. вентилей) до 1592ХМ1 (100 тыс. вентилей,
50 МГц). Более подробную информацию можно получить на
214
сайте http://www.angstrem.ru. Могу лишь отметить, что отечественные БМК в настоящее время решают все проблемы по
замене ПЛИС фирмы “Altera” вплоть до реализации проектов,
выполненных на EP1K50 . Перевод одной ПЛИС в настоящее
время обходится в 440 тыс.руб. Это относительно дорого, но
альтернатива отсутствует: кто не любит свою армию – кормит
чужую. Кстати по западным меркам цена чрезвычайно низкая.
Популярная в последнее десятилетие технология проектирования «система на кристалле» (СнК, SoC) поддержана
отечественной электроникой выпуском СБИС 1879ВМ3. Эта
СБИС содержит два 6-разрядных АЦП и четыре 8-разрядных
ЦАП (быстродействие 600 Мвыборок/с.), выпускается в радиационностойком исполнении с пятой Приёмкой Заказчика. Эта
же фирма выпускает и сигнальный процессор Л1879ВМ1. Так
что «ещё не вечер» для русской электроники, а интеллектом
Россия не обижена.
215
Проблемы проектирования современных цифровых систем
управления.
Современное проектирование цифровых устройств и систем предъявляет к разработчику повышенные требования,
что вызывает появление ряда проблем. Использование ПЛИС
и БМК только обострило эти проблемы. Постараемся рассмотреть их комплексно.
Во-первых, необходимо отметить, что советские инженеры – самые талантливые и образованные в мире. По роду
своей предыдущей деятельности мне приходилось общаться
почти со всеми разработчиками в СССР и анализировать зарубежные проекты.
Во-вторых, современные разработки предъявляют более
жёсткие требования к проектировщикам, поэтому поговорим о
наших недостатках.
Формализация ТЗ.
Пять лет назад, выполняя какую-то разработку для фирмы
МиГ, я с удивлением обнаружил, что опытные профессионалы, описывая работу МПА, рисуют многочисленные циклограммы. Во-первых, это не гарантирует полного и корректного
описания работы МПА, во-вторых, обременительно. Попытался привить им культуру задания МПА с помощью граф-схем
алгоритмов (ГСА). Кажется, удалось обратить их в свою веру.
Спустя два года, сотрудничая со специалистами «Полигонных
систем ПВО», я столкнулся с необходимостью введения некоторого более мощного формального языка описания работы
МПА. В качестве такого инструмента может использоваться Пкод («Дисциплина программирования» Дзержинского Ф.Я. и
Завгороднего Н.В. – М.:1983 г.) или Псевдо-Паскаль. Заманчиво с этой целью использовать просто Паскаль или Си: можно
получить вместе с ТЗ и математическую модель проектируе-
216
мого МПА. Однако, при этом теряется прозрачность ТЗ. Тем
не менее решение этой проблемы желательно.
Вот как выглядит частичное описание на Псевдо-Паскале
работы МПА для управления БИС динамической памяти на
256 Мбайт.
Program rdram1;
{ Процедура чтения из ОЗУ1: инициируется командой READ от
RS232. }
{READ=1 пока не появится EOR=0}
Begin
repeat nop; until (read = 1) and (ready=1) and (write=0);
eosrf:
cke := 1; #we := #ras := #cas := 1; #cs := 0;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1;
delay(2);
i:=0;
repeat
act: A[12..0]:=AdrStr; BA0..BA1:=AdrBank; #we:=cke:=
#cas :=1;#ras:=#cs := 0;
delay(1);
reada: A[9..0]:=AdrStb; A10:=1; BA0..BA1:=AdrBank;
#we:=#ras:=cke:=1;#cas:=#cs:=0; dqm:= 0;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1;
delay(1);
cbr:
подать без присвоения AD[10..9]-1;
if i>0 then
begin
#we := 1; #ras := #cas := #cs :=0; cke :=1; dqm := 0;
end;
delay(1);
cke := 1; #we := #ras := #cas := 1; #cs := 1;
AD[25..0]:=AD[25..0]+1;
delay(508);
i :=1;
until kr = 1;
delay(3);
slfr: #we := 1; #ras := #cas := #cs := cke := 0;
delay(3);
eor := 0;
delay(1);
eor:=1;
217
end.
Примерно такие же по объёму алгоритмы подготовки к
работе ОЗУ и записи в ОЗУ, поэтому ГСА получается довольно громоздкой. Кстати, традиционная эвристическая реализация такого МПА, выглядит уже неразумной, поскольку очевиден явно программный характер задачи.
Программирование и микропрограммирование.
Уже в 70-е годы прошлого столетия стала проявляться
тенденция превращения цифровых схемотехников в программистов. Во-первых, потому, что в разработки был внедрён
синтез микропрограммных автоматов , а во-вторых, потому,
что каждый инженер обязан владеть программированием (но
не обязательно программировать!), поскольку для него это то
же самое, что в 19 веке счёты для бухгалтера. В настоящее
время синтез цифровых систем выполняется на формальных
микро-языках VHDL, AHDL, VERILOG. Схемотехники стали
микропрограммистами. А следовательно, и проблемы схемотехников и программистов стали общими. Например, программисты не умеют верифицировать свои программы, схемотехники тоже недолюбливают схемную диагностику.
Простой тест для программистов: из файла триадами поступают целые числа, которые интерпретируются как длины
сторон треугольника. Программа определяет тип треугольника. Ни один из программистов не определил все 14 наборов
тестов. Ни программисты, ни схемотехники ничего не знают о
диагностическом процессоре.
Кроме того, наше программное обеспечение (ПО) построено на западных операционных системах (ОС) и языках программирования, не защищено от взлома, вскрытия, т.е. не соблюдается элементарная информационная безопасность. Выход из тупика в использовании отечественных технологий.
Примером такой технологии является ДССП и язык РАЯ
218
(МГУ,Брусенцов Н.П.,http://www.trinitas.ru ). Кстати, язык РАЯ в
ДССП позволяет писать в 5 – 7 раз более компактные программы, чем это способен делать ЯВУ Си. Сегодня переход на
отечественные программные технологии не реален, но когдато нужно опомниться. Кстати, в настоящее время в МГУ ведутся работы по реализации ДССП-процессора на ПЛИС
EP1K100QC208-1. Автор в свободное от основной работы
время участвует в этих работах.
Далее, технология структурированного программирования
мало что даёт, если объём ПО превышает 1000 стр. текста на
языке Си. Микропрограммисты решают проблему создания
относительно прозрачной схемы текстографическим проектированием. Возможно, на этом же пути находится решение
проблем дисциплины программирования: лет 30 тому назад
существовал графический Паскаль. В качестве примера текстографического проектирования приводится частичное описание видеоконтроллера цифрового телевизионного передатчика (ЦТВП), управляющего синтезатором частоты AD9854.
Здесь верхние уровни иерархии представлены в графическом
виде, а микропрограммы нижнего уровня создаются в текстовом формате. На рис.1 и 2 представлены схемотехника, микропрограммы и результат симуляции работы видеоконтроллера.
Для отладки видеотракта ЦТВП используется примитивное контрольно-диагностическое устройство (КДУ), состоящее
из ПЛИС EP1K100QC208-1, конфигурационного ПЗУ и БИС
ОЗУ ёмкостью 2 ТВ-экрана. Габариты платы КДУ составляют
100 х 100 мм. КДУ связано с ПК по интерфейсам USB, LPT,
RS-232, RS-485. Программа для управления видеоконтроллером amvideo.pas работает под MS DOS в ПК. Скорость обмена
между ПК и КДУ не превышает 200 кбайт в сек.
program amvideo;
{программа амплитудной модуляции для СЧ типа AD9854}
uses printer,dos,crt;
const base = $378;{базовый адрес регистра данных}
strobe = $01;{маска бита STROBE регистра управления}
autofd = $02;{маска бита AUTOFD регистра управления nWR для СЧ}
init = $04;{маска бита INIT регистра управления - UdClk для
СЧ}
slctin = $08;{маска бита SELECTIN регистра управления}
219
busy = $10;{маска бита BUSY регистра состояния}
type vect=array[0..1023] of real;
massiv=array[0..9] of byte;
var n,nr :longint;
bytemas:massiv;
ni,i,j:longint;
tau:word;
ch :char;
nis,nrs,ns:string;
c1,c2 :array[1..32] of real;
m:array[0..6143] of byte;
c,f,fh,h,ftw,fsys:real;
addr,data:byte;
csys:double;
{addr,data - адрес и данные для СЧ,
f - несущая частота,
h - шаг по частоте,
ftw - код установки частоты для AD9854,
fiint - нач. фаза в дискретах времени,
шина управления(порт $37A) для записи из компьютера:
nSTROBE - запись в регистры адреса и данных КДУ,
nAUTO_FD - сигнал записи для СЧ,
nINIT - сигнал обновления информации(UdClk) для СЧ,
nSLCT_IN - выбор регистра адреса(0) или регистра данных(1) }
{-------------------------------------------------------------}
function intchar(m:integer):char;
var
ch:char;
begin
case m of
0..9: ch:=chr(m+ord('0'));
10..35: ch:=chr(ord('A')+m-10);
else
begin
writeln('Ошибка ввода');
halt;
end;
end{case};
intchar:=ch;
end;
{-------------------------------------------------------------}
220
function stpn(x,y:real):real;
begin
stpn:=exp(y*ln(x));
end;
{--------------------------------------------------------------}
function int10(a:longint;b:integer):string;
{Пеpевод целого 10-ичного числа в (2..36)-ичные системы}
{a,b - исх. 10-ичн. число и основание сист. счисл. соотв-енно}
var s:string;
m,i,j:integer;
chrarr:array[0..30] of string;
begin
i:=0;
for j:=0 to 30 do chrarr[j]:=' ';
repeat
m:=(a mod b);
chrarr[i]:=intchar(m);
a:=a div b;
i:=i+1;
until (a=0);
s:=chrarr[i];
for j:=i-1 downto 0 do
s:=s + chrarr[j];
int10:=s;
end;
{--------------------------------------------------------------}
procedure int256(f:real;var mass:massiv);
{Разделение целого 10-ичного числа на байты}
{f - исх. 10-ичн. число}
var fi,fri,m:longint;
ff,fr:real;
i:integer;
begin
ff:=f/65536;{масштабирование}
fr:=frac(ff)*65536;
fri:=trunc(fr);
fi:=trunc(ff);
mass[1]:=fri mod 256;
mass[2]:=fri div 256;
i:=3;
repeat
m:=fi mod 256;{m:=a mod 256}
mass[i]:=m;
221
fi:=fi div 256;{a div 256}
i:=i+1;
until (fi=0);
end;
{---------------------------------------------------------}
procedure ustanow;
begin
port[base]:=0; {0 -> регистр данных LPT1}
port[base+2]:=0; {0 -> регистр управления LPT1}
writeln;
end;
{--------------------------------------------------------------}
procedure ustreg;
{Установка АМ-режима работы СЧ}
var i:integer;
begin
port[base]:=$1f; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$c6; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$1f; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=06; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
222
end;
port[base]:=$1d; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$10; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$1e; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$44; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=$20; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$40; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
223
end;
{--------------------------------------------------------------}
procedure ustfreq(var bytemas:massiv);
{Установка частоты}
{bytemas - массив кодов задаваемой частоты}
var i:integer;
begin
port[base]:=04; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[5];{посылка в порт 378h байта данных
для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=05; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[4]; {посылка в порт 378h байта данных
для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=06; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[3]; {посылка в порт 378h байта данных
для СЧ}
port[base+2]:=strobe xor slctin;
224
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=07; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[2]; {посылка в порт 378h байта данных
для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
port[base]:=08; {посылка в порт 378h байтa адреса}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=bytemas[1]; {посылка в порт 378h байта данных
для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
end;
{--------------------------------------------------------------}
procedure lptend;
{Окончание работы с LPT}
225
var i:integer;
begin
port[base]:=$5f; {посылка в порт 378h признака конца работы с
LPT}
port[base+2]:=strobe;
port[base+2]:=0;
port[base]:=$c6; {посылка в порт 378h байта данных для СЧ}
port[base+2]:=strobe xor slctin;
port[base+2]:=slctin;
port[base+2]:=0;
for i:=1 to 10 do
begin
port[base+2]:=autofd;{nWR для СЧ}
port[base+2]:=0;
port[base+2]:=init;{UdClk для СЧ}
port[base+2]:=0;
end;
end;
{==================================================
=======}
begin
clrscr;
ustanow;
writeln('Подайте напряжение +5 В, затем нажмите ENTER');
readln;
writeln('╔═══════════════════════════════╗');
writeln('║
Амплитудно-частотная модуляция на
║');
writeln('║
основе СЧ с помощью КДУ и ПК
║');
writeln('║
Лобанов В.И. 18-11-2004
║');
writeln('╚═══════════════════════════════╝');
ustreg;
csys:=stpn(2,40);
writeln('Системная константа csys = 2^40 = ',csys);
write('Введите системную и несущую частоты диапазона в
МГц ');
readln(fsys,f);
ftw:=f/fsys*csys;
writeln('Десятичный код частоты f = ',f:10:6,' равен ftw = ',ftw);
for j:=0 to 9 do bytemas[j]:=0;
writeln;
int256(ftw,bytemas);
writeln('Байты кода = ');
for j:=5 downto 0 do write(bytemas[j]:6);
226
writeln;
ustfreq(bytemas);
lptend;
writeln('Нажмите ENTER');
readln;
clrscr;
end.
Конечно, эту программку на Паскаль можно сократить в несколько раз, но спешка при отладке аппаратуры не позволила
внести изменения.
Рис.1. Структурная схема видеоконтроллера ЦТВП.
227
228
Рис.2. Микропрограммы
деоконтроллера ЦТВП.
229
конечных
автоматов
ви-
Формальный синтез МПА при использовании ПЛИС.
Широкое внедрение ПЛИС фирмы Altera в практику цифровых разработок связано не только с достоинствами этих
микросхем, но и не в последнюю очередь с появлением отечественной литературы по данному вопросу. Десять лет тому
назад появление САПР ПЛИС Xilinx сопровождалось такими
сложностями, что применять эту систему в практических разработках не было ни малейшего желания. В прекрасном практическом курсе Антонова А.П., не только разобран весь процесс проектирования, но ещё и приложен компакт-диск с самой САПР MAX+PLUS II. Эта САПР имеет ряд существенных
недостатков, но позволяет даже радиолюбителю решать серьёзные задачи.
Однако, перевод полученного решения на БМК требует
знания формальных методов синтеза МПА. Прежде всего это
связано с минимизацией булевых функций, поскольку такая
операция не только экономит ресурсы, но и минимизирует за230
держку комбинационной схемы. Аппарат минимизации в САПР
реализован из рук вон плохо. Следовательно, цифровику
необходимо знать азбуку своей профессии: на калькулятор
надейся, а таблицу умножения не забывай. Кто умеет работать с картами Карно на 8-10 переменных? Никто. А ведь это
азбука. Не всегда есть под рукой эффективная программа
минимизации, да зачастую (в 99% всех случаев) она и не требуется. Кстати, самым эффективным алгоритмом минимизации обладает метод обобщённых кодов. Он был проверен автором в конце 70-х годов прошлого века при минимизации булевых функций от 45 переменных. До сих пор ничего более
элегантного не появилось. Этот метод разработан в конце 60х годов 20-го века на 21-й кафедре Академии им. Дзержинского полковником, д. т. н. Мавренковым Леонидом Трофимовичем. Дальнейшее развитие метода и доведение его до инженерных методик было выполнено сотрудниками этой кафедры к.т.н. Кустенко А.С., к.т.н. Кузнецовым Н.В. и к.т.н.
Салтыковым Ю.А.(см. "Вопросы оборонной техники", 1972 г.).
В открытой печати этот метод появился в 1977г.[22].
Формальный синтез МПА в САПР также имеет дефекты[25]. Недостатков в САПР слишком много, но это тема для
отдельного разговора. Т.е. САПР MAX+PLUS II не удовлетворяет запросы профессиональных разработчиков. При работе с
БМК проектировщик всегда должен быть готов к тому, что некоторые элементы и модули ему придётся строить формально. В частности цифровик обязан уметь создавать любую
элементную базу на основе И-НЕ (функционально полный
элемент ИЛИ-НЕ в OrCAD не позволит создать SR-триггер изза гонок). Например, при работе на предельных частотах для
синтеза асинхронных МПА требуется SR-триггер со сбросом,
иначе не удастся провести симуляцию в пакете MAX+PLUS II.
Этот элемент памяти необходимо построить чисто формально, причём с предельно высоким быстродействием. Сплошь и
рядом приходится синтезировать МПА, работающие по самым
причудливым алгоритмам. Применять эвристику для решения
подобных задач всё равно, что забивать микроскопом гвозди.
Вообще цифровик должен уметь формально строить МПА на
любых элементах, в том числе и на лампах, и на реле. Это потребовалось в Чернобыле.
Применение микропроцессоров породило проблему помехоустойчивости. Сбои в работе процессора могли приводить к
катастрофическим последствиям. Поэтому появились всевоз-
231
можные «войч-доги», которые контролировали время выполнения циклических участков программы. Однако этот приём
оказался малоэффективным. На смену «сторожевым собачкам» пришёл диагностический процессор (ДП) CERBERUS-16.
Но высокая сложность устройства, большой латентный период
обнаружения ошибки и сложность подготовки программы ДП
не позволили внедрить его в производство. В ХПИ им. В.И.
Ленина, на кафедре автоматики и телемеханики в 1985 г. был
разработан отечественный ДП, лишённый вышеуказанных недостатков. Работами по созданию и испытаниям ДП руководил
проф. Леонид Викторович Дербунович. Кроме самой схемы
был разработан транслятор с ассемблера КМ1816ВЕ48 на
язык диагностического процессора. ДП успешно прошёл испытания и был рекомендован в 1990 г. к производству в виде
специализированной БИС. Отсутствие финансирования и развал Советского Союза похоронили перспективный проект. Автор попытался перевести схему ХПИ на ПЛИС Xilinx, но низкий
уровень интеграции позволил сократить объём с 66 корпусов
лишь до 12. Такой результат не имеет практической ценности.
Появление ПЛИС и БМК высокой интеграции позволяют возродить надежду на реализацию идей харьковчан в виде одной
ПЛИС, а возможно и одного отечественного БМК.
Макетирование проектов.
Несмотря на то, что САПР MAX+PLUS II при симуляции
выдаёт достаточно корректные результаты, макетирование
проектируемой схемы остаётся насущной необходимостью.
Поэтому имеет смысл разработки макетной платы, которая
содержит одну или несколько различных ПЛИС, несколько
АЦП и ЦАП с возможностью коммутации связей. Это позволит
проверять работу различных ПЛИС с различными периферийными устройствами. Такая предварительная проверка позволит подготовить проект для реализации его на БМК с минимальным количеством ошибок. В большинстве случаев можно
воспользоваться готовыми платами для макетирования, так
называемыми KIT.
Кроме того, необходимо аналогичное макетирование для
обеспечения входного контроля получаемых БМК. Полагаться
на гарантии поставщика было бы неразумно.
232
Математическая логика и искусственный интеллект.
Как заявил директор ГУП НПЦ «ЭЛВИС» Петричкович Я.Я.
Россия не может конкурировать с Китаем в области бытовой
электроники: слишком дёшев труд в КНР . А вот в области высоких технологий Россия вне досягаемости Китая, Индии и абсолютного большинства других стран. «ЭЛВИС» уже «наступает на пятки» Америке в создании элементной базы для систем ЦОС. Но в России остался ещё невостребованным потенциал огромной мощности. Все советские инженеры прекрасно владели математикой, а это фундамент искусственного
интеллекта.
21 век называют веком искусственного интеллекта (ИИ),
но отсутствие математической логики (взамен аристотелевской) препятствует решению фундаментальных проблем ИИ в
том числе и для целей обороны. По степени решения проблем
ИИ судят о научном потенциале державы. В 21-м веке будут
соревноваться не технологии, а интеллекты. Самой высокой
технологией станет ИИ.
В России создана Русская логика для решения задач ИИ.
Решены проблемы, над которыми трудилось всё человечество
(и «физики», и «лирики») 25 веков. Эта истинно математическая логика, созданная в России, прошла проверку на различных конференциях, симпозиумах и конгрессах, в том числе и
международных. С 1998 г. не прозвучало ни одного критического замечания в адрес логики России. В свободное от основной работы время автор преподавал Русскую логику в
школах, гимназиях, техникумах, колледжах и вузах, а также в
обществе «Знание». Эта логика легко осваивалась даже семиклассниками. Основы Русской логики изложены на сайтах
http://ruslogic.narod.ru, http://ruslogic.by.ru, http://www.trinitas.ru .
И тем не менее преподаваемая в России логика дремуче
невежественна и вопиюще безграмотна. Работы автора переведены за рубежом. Есть опасение, что там освоят Русскую
логику раньше, чем мы. По докладу автора на «КС» по военной безопасности при Комитете по обороне ГД РФ 13.11.2003
было принято решение «о ликвидации логической необразованности всего российского общества в целом, как в 20-е годы
прошлого века была ликвидирована начальная неграмотность
в Советской России». Поэтому инженерному корпусу России
придётся поголовно осваивать Русскую логику.
233
Заключение.
У России есть шанс подняться с колен. Нужна лишь политическая воля. Что касается решения чисто инженерных и
научных проблем, то имеет смысл изложить некоторые рекомендации. Для Заказчика и руководителей НИИ, ОКБ и НПО
предлагается производить прикидочный анализ уровня
НИОКР по следующим признакам отсутствия квалификации:
 использование «рассыпной» элементной базы вместо технологии СнК (SoC) или хотя бы использования разрешённых к применению БМК, ПЛМ, ПМЛ и
ПЛИС;
 чисто эвристические решения при синтезе всех МПА;
 применение асинхронных МПА на низких частотах;
 «игра» на задержках вместо построения синхронного
МПА;
 отсутствие контролепригодности;
 отсутствие самодиагностики;
 отсутствие обоснования полноты тестирования.
Необходимый минимум знаний и умений разработчикацифровика можно определить следующим перечнем :
 умение работать с картой Карно на большое число
переменных (не менее 8);
 владение методом обобщённых кодов Мавренкова
для ручной и машинной минимизации булевых функций;
 знание инженерных методов разработки цифровых
устройств;
 умение синтезировать счётчики с любыми, в том
числе с дробными, коэффициентами деления и распределители импульсов любого вида;
 умение превратить любую циклограмму в ГСА для
последующего формального синтеза МПА;
 умение формально построить любой элемент памяти на ИС типа И-НЕ, ИЛИ-НЕ, лампах и реле;
 владение формальными методами синтеза МПА на
ИС, лампах и реле;
 знание вопросов диагностики на уровне, обеспечивающем контролепригодность, самодиагностику,
контроль и диагностику разрабатываемого прибора;
 знание математической логики, фундамента ИИ.
234
Экспресс-анализ технического уровня НИОКР может быть
также произведён вневедомственной группой профессионалов-электронщиков.
В связи с чрезвычайно низким уровнем разработок современных инженеров России предлагается проведение следующих оргмероприятий:
1.
Создать вневедомственную группу (подразделение) по
контролю технического уровня НИОКР (КТУ) по анализу проекта и выработке предложений по устранению выявленных
недостатков в составе не более 10 человек с рабочим циклом
на одну НИОКР в 1 – 2 недели. Группа КТУ будет выявлять
наиболее характерные ошибки и давать заключение о техническом уровне НИОКР. Естественно, такой анализ целесообразнее проводить на этапе НИР.
2.
Проведение технического обучения ведущих специалистов разрабатывающих организаций и подразделений Приёмки Заказчика (не более 40 часов);
3.
Издание технического руководства по разработке
цифровых устройств.
4.
Аттестация инженеров-цифровиков в объёме «АРЦУ»
[37].
5.
Перестройка преподавания гуманитарной и математической логики в средних и высших учебных заведениях России.
235
ЧАСТЬ 2. Русская логика (азбука математической логики)
«…И может собственных Платонов
И быстрых разумом Невтонов
Российская земля рождать. »
М.В.Ломоносов.
ВВЕДЕНИЕ
В конце 1980-х — начале 1990-х годов руководимый мною
отд.450 ЦНИИ «Циклон» (головной институт Минэлектронпрома СССР) имел тесные контакты с проблемной лабораторией
ЭВМ МГУ, возглавляемой талантливым русским инженером и
учёным Н.П.Брусенцовым. Это именно ему и его сподвижникам удалось создать и запустить в производство единственную в мире троичную ЭВМ "Сетунь" и "Сетунь-70". На чествовании юбилея Н.П.Брусенцова 2.03.95г. я получил в подарок
от юбиляра его только что изданную книгу «Начала информатики», которая и открыла передо мной проблемы классической
логики. Поэтому я имею честь считать себя учеником Николая
Петровича Брусенцова. Некоторые проблемы логики показались мне надуманными. В частности алгоритм решения логических уравнений был разработан мною в течение 5 мин в
присутствии учителя. Николай Петрович согласился с таким
решением, но его положительную рецензию я получить не сумел. Публикация моей статьи состоялась лишь спустя 3 года в
журнале «НТИ»,сер.2,N9,1998 [28] благодаря положительной
рецензии Вороничева П.П.(ИПУ). Мною была впервые предложена 4-значная комплементарная логика для решения логических уравнений.
На основе 4-значной логики была решена в течение года
проблема силлогистики. Силлогистика – это раздел логики,
занимающийся силлогизмами. А силлогизм – это умозаключение, состоящее из двух посылок и следующего из них заключения. Пример такого силлогизма:
Все люди талантливы.
Все студенты – люди.
Все суденты талантливы.
В этом силлогизме заключение выводится просто. Но
большинство силлогизмов, встречающихся в быту, в любой из
наук, «физической» или «лирической», не имеют такого про236
зрачного решения. А потому и не решаются современной мировой логикой.
В 1997г. я уже излагал русскую силлогистику и решение
логических уравнений студентам. Поскольку все алгоритмы
чрезвычайно просты, то студенты осваивали новую логику (логику нового тысячелетия) довольно успешно. Мною за 1997—
2000гг. были разработаны силлогистики здравого смысла
(русская и общеразговорная), а также приведена в порядок,
т.е. практически создана заново силлогистика АристотеляЖергонна. Совершена революция в классической логике,
впервые она поставлена на математическую основу. Впервые
болтологика превращена в истинно математическую логику,
которая полностью соответствует логике здравого смысла.
Впервые решены проблемы Аристотеля и Лейбница, их мечты
реализованы в России. Фактически построен фундамент искусственного интеллекта. А ведь 21-й век станет веком искусственного интеллекта (ИИ). По уровню решения проблем ИИ
судят о научном потенциале державы. Этот революционный
прорыв в логике снова возвращает Россию в число научных
лидеров. Произошла третья научно-техническая революция.
Если первые две автоматизировали труд рабочих и инженеров, то третья рационализирует труд учёных. Строго говоря
это научная, интеллектуальная революция.
В июле 1998г. результаты своей работы я доложил на Общероссийской научной конференции «Современная логика:
проблемы теории, истории и применения в науке» в Петербургском университете[27]. Я стремился обострить обсуждение и попросил назначить самого агрессивного оппонента. Не
прозвучало ни одного критического замечания в адрес докладчика. Более того, официальный оппонент д.ф.н., проф.
Маркин В.И. (МГУ) фактически выступил на стороне докладчика. Тезисы доклада опубликованы в материалах конференции.
В октябрьском номере ж. «НТИ»,сер.2 за 1998г. опубликована
моя статья по русской силлогистике(2-й базис).Вслед за этими
публикациями появляются зарубежные переводы[32], [33] и
другие статьи, пополняющие Русскую логику. В июне 2000г. я
снова участвую в конференции "Современная логика" (г.
Санкт-Петербург). Умудряюсь выступить на двух секциях, чтобы расшевелить спящую официозную науку. Учёные мужи
слушают с интересом, замечаний нет, но нет до сих пор и никаких сдвигов в научном мышлении и образовании. Более того, я с удивлением узнаю, что никто из официальной профессуры не понял гениальных работ выдающегося русского учё237
ного Порецкого П.С. Именно он предвосхитил создание истинно математической силлогистики. Спустя 15 лет к таким же результатам в силлогистике пришёл Л. Кэрролл: он получил такие же математические выражения для кванторов "Все х суть
y" и "Ни один х не есть y". И его работ никто не понял ни в
России, ни за рубежом. Пусть Порецкий и Кэрролл не сумели
решить всех проблем Аристотеля и Лейбница, но они заложили прочный аналитический фундамент, который так и не был в
течение 120 лет востребован классической логикой из-за
невежества "так называемых логиков". Я думаю, что саркастическое отношение Л. Кэрролла к "логикам" можно смело перенести на наших современников, которые до сих пор не сумели
разобраться в достижениях своих великих предшественников.
В море макулатуры, издаваемой сегодня по логике, лишь работы Брусенцова Н.П., Кузичева А.С. и Светлова В.А. заслуживают внимания. Преподавание логики (основных её разделов) ведётся невежественно, как и 25 веков тому назад. Можно констатировать тот факт, что официальная наука встала
железобетонной стеной на пути Русской логики. Подавляющее
большинство (вполне возможно, что даже все без исключения)
официальных учёных не приемлет Русскую логику. Истина
определяется не большинством голосов, но эти голоса обрекают отечественную логику на плачевное дремотное состояние, а студентов на унылую зубрёжку.
Поскольку вновь созданная логика опирается в основном
на работы русских логиков Давыдова И.И. , Порецкого П.С. ,
Васильева Н.А., Брусенцова Н.П., Кузичева А.С., Светлова
В.А. и др., то автор назвал её Русской логикой. Популяризаторские работы по Русской логике размещены на моих сайтах
http://ruslogic.narod.ru, http://ruslogic.by.ru. Там же размещена и
биография автора.
Русская логика получила положительную оценку читателей.
Часть
этих
отзывов
размещена
на
сайте
http://ruslogic.narod.ru, другая часть оказалась на незнакомых
мне сайтах http://www.trinitas.ru (Академия тринитаризма) и
http://lord-n.narod.ru. Я бесконечно благодарен авторам этих
сайтов за распространение достижений русской науки в области математической логики и инженерных методов разработки
цифровых устройств. За период с 1998г. по 2005г. появился
лишь один отрицательный отзыв [17], но в нём ничего, кроме
эмоций, не содержалось. Автор также бросил вызов современным математикам, обвинив их в невежестве и безграмотности [http://www.physics.nad.ru/cgi-bin/forum.pl?forum=mat, со238
общение №4963 от 3.09.2002] – никто не поднял «перчатку»,
кроме двух молодых людей, которые тоже противопоставили
Русской логике лишь эмоции.
О значении вновь созданной логики говорится в фундаментальной работе А.Г.Войтова «История и философия
науки» [11, с.356] :
«…Булева алгебра – следующий шаг к собственно математической логике, а затем разработки Порецкого и Кэрролла.
Но они не привлекли внимания исследователей, а потому
остались скорее в потенции. Далее пошёл В.И.Лобанов. В результате создан определённый математический аппарат для
исчисления качества объектов. И этот инструментарий практичен для решения частных проблем.
Математическую логику Лобанова следует считать всего
лишь первым шагом к решению проблемы, осмысленной Лейбницем. Главная же сейчас задача – пройти от идей Лейбница
до идей Лобанова, показав кумулятивно процесс:
Лейбниц – Буль – Порецкий – Кэрролл – Лобанов…»
Я считаю, что читатель должен сам сформировать своё
отношение к Русской логике и автору. В науке нет и не может
быть авторитетов, кроме истины.
Никакое образование немыслимо без изучения логики.
Этот предмет в качестве основного впервые ввёл в гимназиях
и Академии великий русский учёный М.В. Ломоносов. С тех
пор логику в обязательном порядке изучали в гимназиях России и по указанию Сталина в 1946 – 1957 гг. в школах СССР.
В связи с этим поразительна безграмотность современных
матлогиков:
 «изобретено» кванторное исчисление, которое ровным счётом ничего не исчисляет;
 «придумана» алгебра множеств, с задачами которой прекрасно справляется алгебра логики;
 единая математическая логика расчленена на логику суждений и логику предикатов с бесполезными
субъектами, предикатами, фигурами и модусами, с
некорректными правилами посылок и прочей
наукообразной зубрёжной чепухой;
 доктора физматнаук не знают математической логики и бравируют своим невежеством;
 ни один логик не сумеет объяснить, почему (x y) =
x’+y – здесь апостроф означает отрицание;
 более 120 лет математики и логики не могут осво-
239
ить результатов П.С. Порецкого и Л. Кэрролла;
 ни один академик не умеет решать задачи силлогистики;
 математики не умеют мыслить (см. мои сайты).
Логика дисциплинирует мышление. Ещё Гераклит говорил, что учить нужно многомыслию, а не многознанию. Над
проблемой формализации мышления ВСЁ ЧЕЛОВЕЧЕСТВО
(и «физики», и «лирики») трудилось 25 веков. И тем не менее
классическая логика, которую изучают во всём мире, вопиюще
безграмотна и дремуче невежественна. С задачей формализации, чётко поставленной Лейбницем, справляется только
Русская логика.
Если вы устали от зубрёжки силлогистики Аристотеля,
хотите чуточку поумнеть и превзойти в логике П.С. Порецкого,
Л. Кэрролла, Дж. Буля и Лейбница, если вас интересует истинно математическая, понятная четверокласснику логика
здравого смысла, то осваивайте эту науку по следующим источникам:
1. Сайты в Internet: http://ruslogic.narod.ru, http://ruslogic.by.ru.
2. Лобанов В.И. Русская логика против классической (азбука
математический логики). – М.: Компания Спутник+, 2002 –
126с.
3. Лобанов В.И. Решебник по Русской логике. – М.: Компания
Спутник+, 2002 – 133с.
4. Лобанов В.И. Русская логика для школьников (и академиков). – М.: Издательство «Эндемик», 2004 – 110с.
240
«Читай и слушай для собственного развлечения рассказы о хитроумных системах, вникай в
интересные вопросы, поставленные там со всей
изощрённостью, какой только может наделить
их пылкая фантазия, но смотри на всё это только как на упражнения для ума и возвращайся
каждый раз к согласию со здравым смыслом...»
(Честерфилд «Письма к сыну»)
Глава первая
Базовые проблемы класической логики.
Всё, о чем далее будет идти речь (комплементарная логика, решение логических уравнений, русская силлогистика,
силлогистика Аристотеля-Жергонна, общеразговорная силлогистика и т. д.) разработано в России и не известно мировой
науке. Поэтому призываю всех читателей воспринимать мои
методы крайне критически и обязательно проверять их с точки
зрения здравого смысла. Весьма показателен пример некритического отношения к теории относительности (ТО), которую
к 1998г. немецкие физики Георг Галецки и Петер Марквардт
низвели с пьедестала. "Тысячи" экспериментов в защиту ТО
оказались фиктивными. Из 5 реальных попыток не было ни
одной удачной. В СССР ещё в 60-е годы также были выступления и публикации учёных, критиковавших ТО. Наиболее
ярко отношение советской науки к ТО выражено в работе В. А.
Ацюковского "Логические и экспериментальные основы теории
относительности" – М.: МПИ, 1990 – 56с.
Прежде, чем приступить к рассмотрению базовых проблем, стоит совершить небольшой экскурс в историю логики.
Эта наука как основополагающий раздел философии появилась в конце второго тысячелетия до н. э. в Индии. Затем она
перекочевала в Китай, где в 479-381гг до н. э. наблюдался период расцвета логики и философии, связанный с учением Мо
Цзы.
241
Наибольшего развития логика достигает в Древней Греции. Главные её достижения связываются с именами Сократа(470-399гг. до н. э.), Платона(428-348 гг. до н. э.), Аристотеля(384-322гг. до н. э.), стоиков Зенона из Китиона(336-264гг.
до н. э.) и Хризиппа(280-205гг. до н. э.), представившего теорию материальной импликации. Следует хотя бы просто перечислить имена ученых, уделявших самое пристальное внимание логике[52].
Ибн-Сина (Авиценна) – среднеазиатский мыслитель с
широким кругом интересов, род. в 980г. в Афшане, возле Бухары, умер в 1037г. Ему уже была известна формула импликации (возможно, из работ стоиков).
Михаил Псёлл – византийский логик (1018-1096гг.), автор
«квадрата Псёлла».
Роджер Бэкон – английский философ(1214-1294гг.), считал в частности, что «простой опыт учит лучше всякого силлогизма», т. е. опирался на логику здравого смысла.
Уильям Оккам – английский философ, логик(13001349гг.). Ввёл троичную логику за много веков до Лукасевича.
Автор «принципа простоты» ("бритва Оккама").
Антуан Арно(1612-1694) и Пьер Николь(1625-1695) –
французские логики, авторы книги «Логика Пор-Рояля» (монастырь во Франции), последователи Декарта.
Арнольд Гейлинкс – бельгийский логик и философ(16251669гг). Опроверг за несколько веков до официального признания общезначимость модуса DARAPTI для 3-й фигуры силлогизмов. Доказал правила Де Моргана:
1. ab  a+b
2. (a  b)’  (b’  a’)’
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
242
Якоб и Иоганн Бернулли(1654-1705 и 1667-1748) – ученики Лейбница. Ввели операцию вычитания множеств.
Леонард Эйлер – математик, физик, астроном(1707-1783).
Родился в Швейцарии, но вся научная жизнь прошла в России.
Создатель «кругов Эйлера», основы формальной силлогистики.
Иоганн Генрих Ламберт – швейцарский логик(1728-1777),
последователь Лейбница. Предвосхитил ряд работ Джорджа
Буля(разложение функции на элементарные составляющие),
ввёл скалярные диаграммы для геометрической интерпретации силлогизмов.
Ж.. Д. Жергонн – французский астроном и логик(17711859). Впервые зафиксировал с помощью кругов Эйлера силлогистический базис Аристотеля.
Август Де Морган – шотландский логик(1806-1871), автор
логики отношений, »правил Де Моргана».
Джордж Буль – английский логик(1815-1864),создатель
Булевой алгебры. Отец Этель Лилиан Войнич (автор романа
«Овод»).
Платон Сергеевич Порецкий (1846-1907) – профессор Казанского университета. Он опередил не только своё время, но
и Бертрана Рассела. П.Эренфест сказал, что Порецкий намного упростил приёмы решения логических уравнений по сравнению с Дж. Булем и Шредером. Могу добавить, что русский
логик впервые в мире дал аналитическое представление силлогистических функторов Axy и Exy. Этого не эаметили ни зарубежные логики, ни, что самое обидное, отечественные учёные. В течение 100 лет научные результаты великого русского
логика не были востребованы наукой, которая до сих пор прозябает в невежестве. Основополагающие результаты Порецкого[46] до сих пор непонятны отечественной науке. Аналитическая силлогистика зародилась 100 лет назад, но до сих пор
не вошла в учебники логики.
Николай Александрович Васильев(1880-1940) – советский
учёный, автор монографии «О частных суждениях», в которой
впервые заявляет, что силлогистика Аристотеля не имеет никакого отношения к здравому смыслу. Сформулировал требования к силлогистическому базису здравого смысла.
Из современных учёных, пытающихся решить фундаментальные проблемы логики, необходимо в первую очередь отметить Брусенцова Н. П. [6 – 8], Светлова В. А., создавшего
элегантные методы синтеза силлогизмов [48], Кулика Б. А.,
решающего аналогичные задачи с помощью алгебры мно243
жеств [18]. Особенно отрадно, что наряду с изяществом решения проблем силлогистики Светлов В.А. насытил свой труд
огромным количеством примеров. Это характерно лишь для
Профессионалов.
1.1. Решение логических уравнений.
Наиболее полно эта проблема рассмотрена в работах
П.С.Порецкого [47] и Н.П.Брусенцова [5].
Предлагается более простой и эффективный метод решения логических уравнений[28, 36], основанный на применении таблиц истинности и трёхзначной или четырёхзначной логики. Трёхзначную логику представим следующими базисными
операциями : инверсией, конъюнкцией и дизъюнкцией [28].
Таблица базисных функций 3-значной логики
Аргументы
XY
00
0i
01
i0
ii
i1
10
1i
11
Функции
X’
1
1
1
i
i
i
0
0
0
X&Y
0
0
0
0
i
i
0
i
1
X+Y
0
i
1
i
i
1
1
1
1
Базисные функции определяются следующии соотношениями :
XY = min(X,Y)
X+Y = max(X,Y)
Автором впервые предлагается четырехзначная логика.Она полностью соответствует общеразговорной,или бытовой логике.Вышеназванная логика представлена базисными
функциями. Значения этой логики имеют следующий смысл : 0
- нет, j - не может быть никогда, i- может быть, 1 - да.
244
Таблица базисных функций 4-значной комплементарной
логики
XY
00
0j
0i
01
j0
jj
ji
j1
X’
1
1
1
1
i
i
i
i
X&Y
0
0
0
0
0
j
0
j
X+Y
0
j
i
1
j
j
1
1
XY
i0
ij
ii
i1
10
1j
1i
11
X’
j
j
j
j
0
0
0
0
X&Y
0
0
i
i
0
j
i
1
X+Y
1
1
i
1
1
1
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).
245
dcba
0011
0111
1011
1111
1100
1101
1110
cba
011
111
011
111
100
101
110
m
1
1
1
1
1
1
1
d
0
0
1
1
1
1
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.
Для трёхзначной логики в этих клетках помещается прочерк [36], т.е. символ недоопределённости. Доопределение
246
минимизируемой функции единицами позволяет получить
компактную формулу.
Для комплементарной логики имеем:
d = cb’ + ca’ + iba + j(c’b’ + c’a’)
Для трёхзначной логики это уравнение выгдядит проще:
d = b’ + a’ + iba, а после минимизации - d = b’ + a’ + i.
Формула d = b’ + a’ + iba более информативна, поскольку
в ней точно указывается, что при a=b=1 переменная d может
принимать любые значения (0 или 1).
В связи с тем, что при решении логических уравнений
приходится зачастую проводить минимизацию булевых функций от большого числа переменных, полезно ознакомиться с
соответствующими алгоритмами, изложенными в [22,23] и в
диссертации автора[24].
Пример 2.
Рассмотрим 1-ю задачу Порецкого[46]. Между птицами
данного зоосада существует 5 отношений:
1. Птицы певчие - крупные или обладающие качеством Y.
2. Птицы, не имеющие качества Y - или не крупные, или
не имеют качества Х.
3. Птицы певчие в соединении с крупными объединяют
всех птиц с качеством Х.
4. Каждая не-крупная птица есть или певчая, или обладающая качеством Х.
5. Между птиц с качеством Х совсем нет таких птиц с качеством Y, которые не будучи певчими, были бы крупные.
Определить, были ли птицы качества Х певчие или нет.
Узнать то же в отношении птиц качества Y.Найти, были ли
среди качества Х птицы качества Y и наоборот.
Решение.
Пусть Х - птицы качества Х.
Y - птицы качества Y.
S - певчие птицы.
G - крупные птицы.
247
Тогда условие задачи будет представлено следующими
рекурсивными уравнениями [46] :
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 было впервые в мире дано
русским логиком Порецким П.С. Правда, мировая логика не
заметила этого научного достижения, как не увидела и того,что позже к аналогичному выводу пришел и Л.Кэрролл[46].
Логика до сих пор прозябает в невежестве.
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
248
4. g’s’x’=0
5. gs’xу=0
Полный логический нуль системы равен дизъюнкции всех
левых частей системы логических уравнений. Проведём решение задачи Порецкого с использованием карты Карно, а потом сопоставим результаты. Заполним карту Карно нулями в
соответствии с нулевыми термами системы, а в оставшиеся
клетки впишем единицы. Тогда полная логическая единица
всей задачи после минимизации примет вид:
m=sу+gx’
xy
gs
00
01
11
10
00
01
11 10
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
Выпишем из карты Карно все единичные термы в виде
таблицы истинности. По полученной таблице построим таблицы для х=f1(g, s),y=f2(g,s) и у=f3(х). Если на каком-либо
наборе функция принимает значение как 0, так и 1, то в соответствующую клетку карты Карно вписываем 1. Если какойнибудь набор отсутствует, то для этого набора в карту Карно
вносим значение j при комплементарной логике или произвольное ( по аналогии с двузначной логикой)- при трёхзначной.
249
После минимизации получим для комплементарной логики системы уравнений:
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 + i
Результаты, полученные Порецким:
x = xs
у = gу + g’s
у=у+x
Сравнивая системы уравнений, можно предположить, что
Порецкий фактически использовал трёхзначную логику для
решения логических задач: рекурсивное вхождение функции
соответствует комплементарному значению i . Причём он
сделал это впервые в мире. Незначительные расхождения результатов связаны с тем, что Порецкий непроизвольно доопределил у=f(g,s)нулём на наборе g’s’, что менее логично с
точки зрения минимизации. Результаты Порецкого имеют право на существование, однако более строгим решением является система на основе комплементарной логики, поскольку
она фиксирует и те ситуации, которые не могут быть никогда.
Например, в сложной системе управления своевременное обнаружение таких состояний может предотвратить аварию или
отказ. Поэтому можно надеяться, что вычислительная техника
(да и не только она, но и юриспруденция тоже) будет строиться на трёхзначной или комплементарной логике. Кстати, первая в мире троичная ЭВМ «Сетунь-70» была создана в России
Брусенцовым Н.П. (МГУ). Что касается 4-значной ЭВМ, то аппаратная реализация комплементарной логики на современной двоичной элементной базе весьма несложна.
Основываясь на примерах 1 и 2, составим алгоритм решения системы логических уравнений.
250
1.2. Алгоритм «Селигер» (решение системы логических уравнений)
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ полной единицы системы.
3. Произвести минимизацию совокупности единичных
термов. Полученное соотношение представляет МДНФ уравнения полной единицы системы.
4. Построить сокращённую (только для единичных термов) таблицу истинности уравнения полной единицы и выписать из неё все значения входных и выходных переменных в
виде частных таблиц истинности для искомых функций.
5. Произвести минимизацию искомых функций.
Алгоритм «Селигер» предполагает не только графическую, но и аналитическую минимизацию методом обобщённых
кодов . Для систем уравнений с числом аргументов не более
10 графический метод эффективнее. Минимизация в трёхзначной и комплементарной логиках для двоичных аргументов
несущественно отличается от минимизации в двузначной :
нужно лишь проводить раздельное склеивание по i, j, 1 или 0.
Пример 3
Рассмотрим 2-ю задачу Порецкого.
Относительно белья в комоде известны 2 положения:
1) часть его состояла из крупных предметов, всё же
остальное было тонким, причём часть этого последнего была
поношена, прочая часть дёшево стоила;
2) всё бельё не тонкое, а также всё бельё не новое, но
дорогое, принадлежало или к такому тонкому белью, которое
не было ни крупно, ни дорого, или же к такому крупному белью, которое частью было ново, частью же, будучи тонким,
было дёшево.
Узнать, какое бельё было поношено: крупное или мелкое.
Решение.
Пусть а - тонкое, b - крупное, с - дорогое, d - новое бельё.
Тогда имеем следующую систему уравнний ( по-Порецкому):
251
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, что совпадает с результатом Порецкого.
1.3. Решение системы логических уравнений.
В некоторых случаях требуется найти решение системы логических уравнений в обычном понимании, т. е. найти все варианты комбинаций переменных, удовлетворяющие заданным
уравнениям. В отличие от обычных линейных алгебраических
систем уравнений, имеющих один единственный вариант решения, логическая система уравнений имеет множество решений.
Пример.
Дана система логических уравнений:
abc = 0;
a+b = 1;
b+c = 1.
Найти a,b,c.
252
Решение.
Полная единица системы
M = (abc)’ & (a+b) & (b+c) = a’b+bc’+ab’c.
Развернув МДНФ системы в СДНФ, получаем 4 различных
варианта решения системы:
Номер варианта
1
2
3
4
a
b
c
0
0
1
1
1
1
0
1
1
0
1
0
Каждая строчка таблицы соответствует одному логическому
слагаемому (конституенте единицы) в СДНФ. Подставляя любой из вариантов решения в систему, убеждается в корректности метода.
Пример.
Дана система логических уравнений:
a+b+c = 1
bcd = 0
c+d+e = 1
def = 0
a+e+f = 1
aef = 0
Найти a, b, c, d, e, f.
Решение.
M = (a+b+c) & (bcd)’ & (c+d+e) & (def)’ & (a+e+f) & (aef)’.
В этом случае система имеет 29 вариантов решения.
Алгоритм «НИИДАР» решения системы логических уравнений.
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ полной единицы системы.
253
3. По СДНФ системы находятся все варианты решения,
причём каждая конституента единицы соответствует одному
варианту решения системы.
Кстати, решая уравнения по алгоритму «Селигер», мы попутно находим и все варианты решений относительно переменных системы. Например, во второй задаче Порецкого получены 7 вариантов решения системы логических уравнений
для 4-х переменных. В алгебраической системе уравнений количество уравнений точно соответствует количеству переменных, в логической системе такое соответствие не обязательно.
1.4. Равносильные преобразования.
При решении логических уравнений иногда возникает
необходимость в равносильных преобразованиях. Эта проблема рассмотрена в [7] и решена путём введения понятий
парного и непарного индивидов. Однако, чёткое определение
этих понятий отсутствует.
Докажем раносильность преобразований с помощью
традиционных методов. Пусть х, у - логические функции, для
которых справедливо уравнение х = у, приведённое через эквивалентность к виду.
( х = у ) = ху + х’у’
Требуется найти парный индивид z , т.е. такую функцию,
добавление (удаление) которой к обеим частям равенства х=у
не нарушало бы его равносильности. Это требование записывается в виде уравнения.
x+z=у+z
Но полученное выражение через формулу эквивалентности приводится к виду:
(x+z=у+z) = (x+z)(у+z)+(x+z)’(у+z)’ =
= xу+x’у’+z = (х=у)+z
Откуда следует, что z должен принадлежать исходному
равенству, и парным индивидом для исходного уравнения х=у
может быть любой терм уравнения или их комбинация, т.е. в
данном случае парными индивидами являются термы ху, х’у’,
xу+х’у’.
х=у
х +ху = у + ху
х + х’у’ = у + x’у’
x + ху + x’у’ = у + xу + х’у’
254
Пример 4.
Пусть х+а = у+b . Найти парные термы (индивиды).
Решение.
Развернём исходное уравнение на основе формулы эквивалентности :
(x+a=у+b)=(х+а)(у+b)+(х+а)’(у+b)’ = xу+ау+bx+ab+a’b’x’у’
Из (20) соледует, что парными термами являются ху, ау,
bx, ab, a’b’x’у’ и все их комбинации, которые более наглядно
можно представить на карте Карно.
Любой набор термов из единичных фигур покрытия [7]
карты Карно может быть парным индивидом. Определим общее количество парных индивидов n. Пусть u - количество переменных, входящих в уравнение f1=f2. Тогда количество конституент единицы k определится следующими соотношениями.
Для чётного u: k = 1 + [2^(u/2) - 1]^2
Для нечётного u: k = 1+(2^[(u+1)/2]-1)
Эти соотношения легко выводятся из анализа карты
Карно для уравнения х+а = у+b .Общее количество парных
индивидов равно сумме биноминальных коэффициентов для
бинома степени k без единицы:
n = 2^k - 1
На основе метода, заложенного в алгоритме «Селигер»,
можно вывести соотношения для операций, обратных конъюнкции и дизъюнкции. Поскольку эти операции часто называются соответственно логическими умножением и сложением,
то логично обратным операциям присвоить имена логического
деления и логического вычитания. Впервые формулы для логического частного и логической разности для троичной логики
получены Н.П.Брусенцовым[7].
Если логическое уравнение вида z=f(x1, x2, x3 .....xi .....xn)
решается относительно одной из своих переменных, например, отыскивается обратная функция x1=fi(z, x2, x3 .....xi .....
xn), то можно воспользоваться более простым алгоритмом
«Селигер-С» решения задачи.
255
Алгоритм «Селигер-С».
1. Построить таблицу истинности для уравнения z=f(x1,
x2 ..... xn).
2. По исходной таблице истиннсти построить таблицу истинности для обратной функции вида x1=fi(z, x2 ......xn) простой перестановкой столбцов z и х1.
3. По полученной таблице истинности построить обратную функцию x1=fi(z, x2, ..... xn) и провести её минимизацию.
Простота алгоритма «Селигер-С» обусловлена тем, что
наличие уравнения z=f(x1, x2 ..... xn) автоматически представляет полную единицу системы М=F(x1, x2 ..... xn,z). Для этого
достаточно к столбцам (x1, x2 ..... xn) присоединить столбец z.
Пример 5.
Дано: z = xу , v = x + у.
Найти: у = z/x , у = v-x .
Решение.
На основе формулы эквивалентности преобразуем исходную формулу z=xу. Тогда получим M=(z=xу) = zxу + z’(x’+у’).
В соответствии с пп.4, 5 алгоритма «Селигер» получим у =
xz+ix’z’+jx’z.
На основе формулы эквивалентности преобразуем исходную формулу v=x+у. Тогда получим M=(v=xу) = vx+vу +
v’x’у’. В соответствии с пп.4, 5 алгоритма «Селигер» получим y
= vx’+ivx+jv’x.
Решим ту же задачу посредством алгоритма «СелигерС». Исходные уравнения представим в виде таблицы истинности. Тогда в соответствии с п.2 алгоритма «Селигер-С» построим частные таблицы истинности для у= z/x и у=v-x.
Xy
00
01
10
11
Xz
00
01
10
11
z
0
0
0
1
v
0
1
1
1
y=z/x
i
j
0
1
256
Xv
00
01
10
11
y=v-x
0
1
j
i
В соответствии с п.3 алгоритма «Селигер-С проведём
минимизацию искомых функций в трёхзначной и комплементарной логиках.
Для комплементарной логики получим:
у = z/x = xz + ix’z’ + jx’z
у = u-x = x’v + ixv + ixv’
Для трёхзначной логики уравнения имеют вид:
у = z/x = xz + ix’
у = v-x = x’v + ix
Однозначным и более строгим решением являются уравнения комплементарной логики. Как и следовало ожидать, алгоритмы «Селигер» и «Селигер-С» дали одинаковые результаты.
Пример 5.
Дана система логических уравнений :
ax = bc
bx = ac
Найти х.
Решение .
Напрашивается простой и “очевидный” метод решения:
сложить левые и правые части уравнений и сократить на общий множитель. В результате получим (a+b)x = (a+b)c. Откуда
x = c, a = b. Ответ настораживает, тем более, что что решение
противоречит принципу отыскания парных индивидов, поэтому
проверим его на основе разработанных алгоритмов.
257
. Действительно, сложить левые и правые части уравнений мы имеем право на основании правила (9П) Порецкого[46,стр,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;
Да, Порецкий не ошибся. Но в нашем примере несколько иная ситуация: нам нужно доказать, что (a=b)(c=d)  ((a+c)
= (b+d)). Это соотношение также легко доказывается, дополнительно подтверждая правоту Порецкого. Однако относительно сокращения на общий множитель великий русский логик нам ничего не сообщил. А так хочется это сделать, тем более что всё очевидно, и обычная алгебра нам не запрещает
подобные операции. Проверим допустимость сокращения на
общий множитель с помощью алгоритма “Импульс”:
(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
C
X
258
Скалярные диаграммы дают полное представление о системе уравнений. Более того, эти диаграммы наглядно демонстрируют связи между всеми переменными. Например, из них
легко просматриваются троичные соотношения
x = abc+ia’b’
a = bcx+ic’x’.
Подтвердим корректность метода на решении более прозрачной задачи.
Пример 6.
Дана система логических уравнений:
x=y
u=v
Найти решение системы в виде y(x,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,u,v) = x(u = v)+j(u  v) значение 1. В результате мы подтвердим исходное уравнение системы y(x) = x. Аналогично
можно показать,что u(v) = v.
1.5. Отыскание обратных функций.
Используя алгоритм «Селигер» или «Селигер-С», можно
получить полную систему обратных функций для двоичной логики. В таблице приведена полная система функций двоичной
логики.
xy z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z1
0
00 0 0 0 0 0 0 0 0 1 1 1
01 0 0 0 0 1 1 1 1 0 0 0
10 0 0 1 1 0 0 1 1 0 0 1
11 0 1 0 1 0 1 0 1 0 1 0
259
z1
1
1
0
1
1
z1
2
1
1
0
0
z1
3
1
1
0
1
z1
4
1
1
1
0
z1
5
1
1
1
1
Перестановкой столбцов у и z исходной таблицы строим
таблицу истинности для полной системы обратных функций.
xz y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y1
0
00 I
i
i
i 0 0 0 0 1 1 1
01 J j
j
j 1 1 1 1 0 0 0
10 I 0 1 j
i 0 1 j
i 0 1
11 J 1 0 i
j 1 0 i
j 1 0
y1 y1 y1
1 2 3
1 j
j
0 i
i
j
i 0
i
j 1
y1 y1
4 5
j
j
i
i
1 j
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’
у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
Для троичной логики получим более простые выражения.
у0 = iz’
y0 = 0
у1 = xz+ix’z’
y1 = x
у2 = xz’+ix’z’
y2 = 0
у3 = i(xz+x’z’)
y3 = ix
у4 = x’z+ixz’
y4 = x’
у5 = z
y5 = 1
у6 = xz’+x’z
y6 = x’
у7 = x’z+ixz
y7 = x’+ix
у8 = x’z’+ixz’
y8 = j0
y9 = xz+x’z’
y9 = x
у10= z’
y10 = 0
260
у11=
у12=
у13=
у14=
у15=
x’z’+ixz
i(xz’+x’z)
xz+ix’z’
xz’+ix’z
iz
y11 = ix
y12 = ix’
y13 = x+ix’ - импликация
y14 = ix’
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
261
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'
15)y=i  y
M = (y=y) = y&y+y'&y' = y+y' = 1
После обращения были получены все 16 прямых функций от двух аргументов без какого-либо искажения. Это подтверждает правильность всех алгоритмов решения логических
уравнений и корректность комплементарной логики.
Четырёхзначные обратные функции необходимо использовать тогда, когда остро стоит вопрос диагностирования или
контроля цифрового устройства. Во всех остальных случаях
вполне достаточно троичной логики. Вычислим все обратные
функции для троичного основания. По таблице истинности для
полной системы обратных функций построим скалярные диаграммы, по ним с помощью карт Карно проведём синтез каждой функции отдельно.
Y0
xz
00
00
10
10
y0
0
1
0
1
X
Z
Y
262
z
0
x
1
0
i
-
i
-
1
Из карты Карто и скалярных диаграмм видно, что
Y0 = i.
Y1
xz
00
00
10
11
y1
0
1
0
1
X
Z
Y
z
0
x
1
0
i
-
0
1
1
263
Из карты Карто и скалярных диаграмм видно, что
Y1 = z+ix’.
Y2
xz
00
00
11
10
y2
0
1
0
1
X
Z
Y
z
0
x
1
0
i
-
1
0
1
Из карты Карто и скалярных диаграмм видно, что
Y2 = xz’+ix’.
Y3
xz
00
00
11
11
y3
0
1
0
1
264
X
Z
Y
z
0
x
1
0
i
-
-
i
1
Из карты Карто и скалярных диаграмм видно, что
Y3 = i.
Y4
xz
00
01
10
10
y4
0
1
0
1
X
Z
Y
265
z
0
x
1
0
0
1
i
-
1
Из карты Карто и скалярных диаграмм видно, что
Y4 = z+ix.
Y5
xz
00
01
10
11
y5
0
1
0
1
X
Z
Y
z
0
x
1
0
0
1
0
1
1
266
Из карты Карто и скалярных диаграмм видно, что
Y5 = z.
Y6
xz
00
01
11
10
y6
0
1
0
1
X
Z
Y
z
0
x
1
0
0
1
1
0
1
Из карты Карто и скалярных диаграмм видно, что
Y6 = x’z+xz’.
267
Y7
xz
00
01
11
11
y7
0
1
0
1
X
Z
Y
z
0
x
1
0
0
1
-
i
1
Из карты Карто и скалярных диаграмм видно, что
Y7 = x’z+ix.
Y8
xz
01
00
10
10
y8
0
1
0
1
268
X
Z
Y
z
0
x
1
0
1
0
i
-
1
Из карты Карто и скалярных диаграмм видно, что
Y8 = x’z’+ix.
Y9
xz
01
00
10
11
y9
0
1
0
1
X
Z
Y
269
z
0
x
1
0
1
0
0
1
1
Из карты Карто и скалярных диаграмм видно, что
Y9 = x’z’+xz.
Y10
xz
01
00
11
10
y10
0
1
0
1
X
Z
Y
z
0
1
x
0
1
0
1
0
1
270
Из карты Карто и скалярных диаграмм видно, что
Y10 = z’.
Y11
xz
01
00
11
11
y11
0
1
0
1
X
Z
Y
z
0
x
1
0
1
0
-
i
1
Из карты Карто и скалярных диаграмм видно, что
Y11 = z’+ix.
271
Y12
xz
01
01
10
10
y12
0
1
0
1
X
Z
Y
z
0
x
1
0
-
i
i
-
1
Из карты Карто и скалярных диаграмм видно, что
Y12 = i.
Y13
xz
01
01
10
11
y13
0
1
0
1
272
X
Z
Y
z
0
x
1
0
-
i
0
1
1
Из карты Карто и скалярных диаграмм видно, что
Y13 = xz+ix’.
Y14
xz
01
01
11
10
y14
0
1
0
1
X
Z
Y
273
z
0
x
1
0
-
i
1
0
1
Из карты Карто и скалярных диаграмм видно, что
Y14 = z’+ix’.
Y15
xz
01
01
11
11
y15
0
1
0
1
X
Z
Y
z
0
x
1
0
-
i
-
i
1
274
Из карты Карто и скалярных диаграмм видно, что
Y15 = i.
В алгебре множеств, т.е. всё в той же алгебре логики,
существует функция вычитания множеств. Если заданы два
множества Х и Y, то их разность мнемонически обозначается
как Х\Y. Однако нигде не приводится аналитическое представление для этой мнемоники. Поскольку для двух логических
переменных существуют 16 функций, то, очевидно, мы получим 16 различных реализаций для X\Y.
Для f(x,y) нарисуем скалярные диаграммы, а по ним
проведём синтез X\Y. Для f0(x,y) = 0 эти диаграммы вырождаются в вертикальную линию со штрихами X,Y. Разность X\Y =
0.
Для f1(x,y) = xy получим следующие диаграммы:
X
Y
Откуда X\Y = Y\X = 0.
Для f2(x,y) = xy’
X
Y
X\Y = x.
В случае f3(x,y) = x имеем
X
Y
X\Y = y’.
Если f4(x,y) = x’y, то получим
275
X
Y
Y\X = y.
Для f5(x,y) = y синтез выглядит так:
X
Y
Y\X = x’.
При f6(x,y) = xy’+x’y получим
X
Y
X\Y = x, Y\X = y.
Если f7(x,y) = x+y, то в результате синтеза имеем
X
Y
X\Y = y’, Y\X = x’.
Для f8(x,y) = x’y’ получим
X
Y
X\Y = Y\X = 0.
При f9(x,y) = x’y’+xy имеем
X
Y
X\Y = Y\X = 0.
276
В случае f10(x,y) = y’ диаграммы выглядят так:
X
Y
X\Y = x.
Для f11(x,y) = xy’ получим
X
Y
X\Y = xy’.
При f12(x,y) = x’ имеем
X
Y
Y\X = y.
В случае f13(x,y) = x’+y диаграммы представлены так:
X
Y
Y\X = x’y.
Для f14(x,y) = x’+y’ синтез представлен так:
X
Y
X\Y = x, Y\X = y.
277
При f15(x,y) = 1 имеем
X
Y
X\Y = xy’, Y\X = x’y.
Заключение.
1. Простота метода, заложенного в алгоритме «Селигер»,
позволяет решать логические уравнения от большого числа
переменных.
2. Минимизация функций в 3-значной и комплементарной
логиках для двоичных аргументов несущественно отличается
от традиционных методов двузначной логики.
3. Парные термы для равносильных преобразований
определяются набором термов, полученных на основе применения формулы эквивалентности к исходному логическому
уравнению.
4. Применение метода при выводе обратных логических
функций показало, что однозначное решение для двоичных
аргументов может быть получено лишь в комплементарной
логике.
5.Впервые получены все 16 обратных логических функций для двух аргументов.
6. Комплементарная логика при аппаратной реализации
позволяет значительно упростить решение проблемы самодиагностирования вычислительной техники: например появление j на любом выходе может свидетельствовать о сбое или
отказе.
278
Глава вторая
2.1.Законы логики суждений
Автор не открывает здесь ничего нового, но, излагая
данный материал, хочет показать всю простоту аналитических
выводов данных законов, следовательно, и их никчёмность:
незачем заучивать полтора десятка правил, если доказательство столь примитивно. Всё дело в том, что в классической логике доказательство построено на громоздком аппарате таблиц истинности и словесной казуистике[16].Трудно назвать
грамотным такое решение проблемы. Инженерная логика использует более совершенный инструмент для анализа и синтеза законов.
Алгоритм «Импульс».
Алгоритм инженерного анализа законов логики суждений
чрезвычайно прост[35]:
1)произвести замену всех знаков импликации на символы
дизъюнкции в соответствии с известной формулой x  y = x’ +
y;
2)привести полученное выражение к ДНФ;
3)занести ДНФ в карту Карно и убедиться, что она вся
покрыта единицами – это свидетельствует о истинности проверяемого закона или суждения.
Воспользуемся перечнем законов из[16] для апробации
алгоритма «Импульс».
1.Закон исключённого третьего: p или неверно, что p.
В переводе на язык логики этот закон выглядит так: p + p’
= 1.Это тривиальное равенство, не требующее доказательства.
2.Закон непротиворечивости: неверно, что [р и не р].
На языке логики:p & p’ = 0. Это равенство верно по определению.
3.Закон двойного отрицания: если [не (не р)], то р.
Необходимо доказать, что (p’)’  p = 1.Доказательство
основано на двойном отрицании и импликации: (p’)’  p = p 
p = p’ + p = 1.
279
4.Обратный закон двойного отрицания: если р, то [не (не
р)].
p  (p’)’= p’ + p = 1.
5.Закон контрапозиции: если (если р, то q), то [если (не
q), то(не р)].
(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.
Как видит читатель, такие законы можно «изобретать» и
доказывать десятками. Во всех выводах применялась аналитическая минимизация логических функций. Однако значительно проще для этой цели использовать карты Карно.
Алгоритм «Импульс-С»
Алгоритм инженерного синтеза импликативных силлогизмов по заданным посылкам немногим отличается от
предыдущего алгоритма:
280
1)найти полную единицу системы М посылок, заменив
импликацию по формуле x  y = x’ + y;
2)привести полученное выражение к ДНФ;
3)подставляя в полученное выражение необходимые аргументы и отбрасывая лишние, т.е. заменяя их логической
единицей[46], выводим соответствующие заключения как
функции интересующих нас аргументов. Если в результате
подстановки будет получена единица, то однозначного заключения не существует.
Задача 2.1.1.
Рассмотрим задачу из [50] о крокодиле. Когда крокодил
похитил ребёнка одной египтянки и та попросила его не есть
ребёнка, то крокодил ответил: " Я верну тебе ребёнка, если ты
отгадаешь, что я с ним сделаю". Найти ответ египтянки.
Решение.
В [50] даётся пространное, на 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.1.2.
В тёмной комнате находятся 3 мудреца. На столе лежат 2 белых и 3 чёрных шляпы. Каждый мудрец надевает
наугад одну из шляп, затем все "кильватерной колонной" выходят в освещённое помещение. 3-й мудрец видит шляпы 1-го
и 2-го мудрецов, 2-й - только шляпу 1-го. На вопрос о цвете
281
шляп 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.1.3.
В [52,стр.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’, откуда
282
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.1.4.
В [52,стр. 432] приведена аксиоматическая система Фреге. Непонятно, почему эта система носит название аксиоматической. Аксиома – это исходное положение, принимаемое без
доказательств при дедуктивном построениее тео283
рии(“Толковый математический словарь” – М.: Рус.яз., 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
Таким образом, мы подтвердили корректность всех “аксиом “ (теорем ? ) Фреге.
Арнольд Гейлинкс – бельгийский логик и философ(16251669гг) доказал правила де Моргана:
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) [52, стр. 100]
выявил следующее соотношение: (x  y)  (x’y’  xy  x’y).
Классическая логика доказывает этот закон с помощью таблиц
истинности, что и громоздко, и непрофессионально. С помощью алгоритма “Импульс” доказательство укладывается в две
строчки.
Задача 2.1.5.
Это задача Лобановой С.В. При синтезе функции переноса в одноразрядном сумматоре получается выражение:
p1 = p0(ab)+ab, где а,b – складываемые числа, p0 и p1
– входной и выходной переносы. После минимизации получается функция p1 = p0(a+b)+ab.
Проверить истинность суждения:
284
[(p0(ab)+ab) = [(p0(a+b)+ab)]  [(ab) = (a+b)].
Решение.
Доказывать истинность [(p0(ab)+ab) = [(p0(a+b)+ab)] 
[(ab)=(a+b)]=1 достаточно муторно, поэтому рассмотрим общий случай, на его основе выведем общий закон, а на основе
закона решим задачу Лобановой С.В.
Исходя из равенств y = ax+b, y = az+b проверить суждение
[(ax+b) = (az+b)]  (x=z).
На основе алгоритма «Импульс» получаем
[(ax+b)=(az+b)](x=z) = (ax+b)(az+b)+(x=z) =
(ax+b)(az+b) + b’(a’+x’)+ (x=z) =
b+axz+a’b’+b’x’+xz+x’z’ = x’+z+a’+b  1.
Из этого закона ясно видно, что исходное суждение ложно. Это было видно и без закона, на основании здравого
смысла, однако его всегда нужно поддерживать строгими математическими доказательствами. Поскольку закон инициирован задачей Лобановой С.В., то он носит её имя. Поставить
вопрос оказалось сложнее, чем ответить на него.
Закон Лобановой С.В.
Сокращение на общий множитель или отбрасывание
общих частей в левой и правой половинах логического
уравнения недопустимо.
Задача 2.1.6.
В книге Р.М.Смаллиана «Принцесса или тигр?»[52, с.22]
приведена следующая задача. Узник должен угадать, в какой
из двух комнат находится принцесса, а в какой – тигр. Если
укажет на первую комнату, то женится на принцессе, если на
вторую, то его растерзает тигр. При этом король объявил узнику, что в каждой комнате будет находиться либо принцесса,
либо тигр, либо сразу в обеих комнатах будут одни тигры или
одни принцессы.
На дверях комнат король приказал повесить таблички такого содержания:
1. По крайней мере в одной из этих комнат находится принцесса.
2. Тигр сидит в другой комнате.
«Истинны ли утверждения на табличках?» - спросил уз-
285
ник. «Может, оба истинны, а может, оба ложны» - ответил король.
Решение.
Пусть p1 означает, что принцесса находится в 1-й комнате, p2 - принцесса во 2-й комнате, t1 – в 1-й комнате тигр, t2 –
тигр во 2-й комнате. Тогда логическое уравнение примет вид:
(p1+p2) & t1 + (p1+p2)’ & t1’ = p1&t1+p2&t1+p1’&p2’&t1’ =
p2 & t1, т.е. принцесса находится во 2-й комнате, а тигр – в 1й. Дело в том, что p1&t1 = 0 по условию, а p1’&p2’&t1’ означает, что в 1-й комнате нет ни принцессы, ни тигра, что также
невозможно. Решение укладывается в одну строку, а у Смаллиана – в полстраницы, что указывает на безграмотность
классических логиков.
Задача 2.1.7.
На стр.23 у Смаллиана описано третье испытание узника. Король объявил, что опять утверждения на обеих табличках одновременно или истинны, или ложны. Сохранены и
остальные условия предыдущего испытания. Поменялись
лишь надписи на табличках:
1. Либо в этой комнате сидит тигр, либо принцесса
находится в другой комнате.
2. Принцесса в другой комнате.
Решение.
Сохранив прежние обозначения, получим следующее
уравнение:
(t1 + p2)p1 + (t1 + p2)’p1’ = t1p1+p2p1+t1’p2’p1’ = p1 & p2,
т.е. во всех комнатах находятся принцессы.
t1p1 = 0, т.к. в одной комнате не могут быть и принцесса,
и тигр,
t1’p2’p1’ = 0, т.к. в 1-й комнате не оказалось ни тигра, ни
принцессы, что также противоречит условию задачи.
Опять решение задачки уложилось в одну строку, а у
Смаллиана – целая страница невразумительных рассуждений.
Не знают классические логики математики, и не хотят знать до
сих пор. Чего могут после этого стоить разговоры о Гёделе и
Чёрче, если ни Смаллиан, ни его протеже ничего не смыслят в
математической логике и даже не разобрались в фундаментальных работах П.С.Порецкого и Л.Кэрролла.
2.2. Практикум по логике суждений.
286
Прекрасным примером применения логики суждений для
доказательства законов в различных областях науки являются
задачи, предложенные Сергеем Леонидовичем Катречко[15].
Речь идёт о таких науках как математика, физика, химия,
грамматика, богословие и др. Сам автор решает эти задачи на
основе рассуждений. Однако алгоритм “Импульс” существенно
упрощает выводы.
Задача 2.2.1.
Если равнодействующая всех сил, действующих на движущееся тело, не равна 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.2.2.
Если все посылки истинны и рассуждение правильно, то
заключение правильно. В данном рассуждении заключение
ложно. Значит, или рассуждение неправильно, или не все посылки истинны.
Решение.
X – посылки истинны,
Y – рассуждение правильно,
Z - заключение верно.
(xy  z)z’  (y’+x’) = (x’+y’+z)z’  (y’+x’) = xy+z+y’+x’ = 1.
Задача 2.2.3.
Если в суффиксе данного полного прилагательного или
причастия пишется два н, то они пишутся и в соответствую287
щем наречии. Неверно, что в суффиксе данного наречия пишется два н. Следовательно, в суффиксе полного прилагательного или причастия, из которого образовалось наречие,
пишется одно н.
Решение.
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.2.4.
Бог или бессилен предотвратить зло, или он не желает
предотвращать его(зло существует на Земле). Если бог всемогущ, то неверно, что он бессилен предотвратить зло. Если
бог всеблаг, то неверно, что он не желает предотвращать зло.
Следовательно, неверно, что бог всемогущ и всеблаг.
Решение.
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.2.5.
Если каждый раз в полдень солнце находится в зените и
сейчас полдень, то сейчас солнце находится в зените.
Решение.
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 связаны отношением эквивалентности, а не следования. Поэтому формальный вывод
должен выглядеть так:
288
(x  y)x  y = xy  y = x’+y’+y = 1
(x  y)y  x = xy  x = x’+y’+x = 1
Задача 2.2.6.
Если нельзя получить воду, то неверно, что имеется в
наличии водород и оксид магния. Если имеется углерод, но
углекислого газа получить не удалось, то не было в наличии
кислорода. Если имеется углекислый газ и вода, то можно получить углекислоту. Можно ли получить углекислоту, если
имеется в наличии оксид магния, кислород, водород и углерод.
Решение.
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.2.7.(18)
Он сказал, что придёт, если не будет дождя.(а на его
слова можно полагаться). Но идёт дождь. Значит, он не придёт.
Решение.
X – он придёт,
Y – нет дождя.
(y  x)y’  x’ = (y’+x)y’  x’ = y’  x’ = y+x’  1.
Задача 2.2.8.(19)
Джонс утверждает, что не встречал этой ночью Смита.
Если Джонс не встречал этой ночью Смита, то либо Смит был
убийцей, либо Джонс лжёт. Если Смит не был убийцей, то
Джонс не встречал его этой ночью, а убийство было совершено после полуночи. Если убийство было совершено после полуночи, то либо Смит был убийцей, либо Джонс лжёт. Следовательно, убийцей был Смит.
Решение.
X – Джонс не встречал Смита,
X’ – Джонс лжёт, т.е. он встречал этой ночью Смита,
Y – Смит – убийца,
289
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.2.9.(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.2.10.(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
Дополнительно решим ещё одну задачу из геометрии:
M = (y  u)y’ = (y’+u)y’ = y’
M(u) = 1, т.е. нельзя сказать ничего определённого относительно плоскостей в том случае, когда прямые не пересекаются.
290
Задача 2.2.11.(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. Откуда выводятся правильное заключение: f(x,y,z) = x’y+y’z , т.е. философ –
материалист или диалектик или то и другое вместе.
Задача 2.2.12.(34)
Перед последним туром футбольного чемпионата сложилась турнирная ситуация, позволяющая утверждать следующее. Если «Динамо» проиграет свой последний матч, то в
случае выигрыша «Спартака» он станет чемпионом. Если же
«Спартак» выиграет матч и станет чемпионом, то «Торпедо»
займёт второе место. В последнем туре первыми стали известны результаты встреч с участием «Динамо» и «Спартака»:
«Динамо» проиграло, а «Спартак» выиграл. Можно ли в этом
случае, не дожидаясь результатов других встреч, утверждать,
что «Спартак» стал чемпионом, а «Торпедо» заняло второе
место?
Решение.
A – выиграет «Динамо»,
B – выиграет “Спартак”,
C – “Спартак” – чемпион,
D – “Торпедо” на втором месте.
(a’b  c)(bc  d)a’b  cd = ( a+b’+c)(b’+c’+d)a’b +cd = 1
Задача 2.2.13.(37)
Докажите следующую теорему: если прямая l, принадлежащая плоскости P, не перпендикулярна прямой n, то она не
перпендикулярна проекции m прямой n на плоскость P, если
291
верна следующая теорема: если прямая l принадлежит плоскости P и перпендикулярна проекции m прямой n на плоскость
P, то прямая l перпендикулярна прямой n.
Решение.
X – l перпендикулярна m,
Y – l перпендикулярна n.
(x  y)  (y’  x’) = (x’+y)  (y+x’) = 1.
Задача 2.2.14.(38)
Известно, что, если данный многоугольник правильный,
то в него можно вписать окружность.
1. Данный многоугольник правильный, следовательно, в
него можно вписать окружность.
2. В данный многоугольник нельзя вписать окружность,
следовательно, он неправильный.
3. В данный многоугольник можно вписать окружность,
следовательно, он правильный.
Проверить эти утверждения.
Решение.
X – многоугольник правильный,
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.2.15.(39)
Если число делится на 4, то оно чётное. Число – чётное.
Значит,оно делится на 4.
Решение.
X – число делится на 4,
Y – число чётное.
(x  y)y  x = (x’+y)y  x = y  x = y’+x  1.
Задача 2.2.16.
Если целое число больше 1, то оно простое или составное. Если целое число больше 2 и чётное, то оно не является
простым. Следовательно, если если целое число больше 2 и
чётное, то оно составное(здесь присутствует скрытая посылка).
Решение.
x – число больше 1
y – число простое
z – число составное
292
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.2.17.
Если бы он не пошёл в кино, то он не получил бы двойки. Если бы он подготовил домашнее задание, то не пошёл бы
в кино. Он получил двойку. Значит, он не подготовил домашнее задание.
Решение.
x – пошёл в кино
y – получил двойку
z – подготовил домашнее задание.
(x’  y’)(z  x’)y  z’ = (x+y’)(z’+x’)y  z’ = x’y+xz+y’+z’ = 1.
Задача 2.2.18.
Я люблю Бетти или я люблю Джейн. Если я люблю Бетти, то я люблю Джейн. Следовательно, я люблю Джейн.
Решение.
х – люблю Бетти
у – люблю Джейн
(x+y)(x  y)  y = (x+y)(x’+y)  y = y  y = y’+y = 1.
Задача 2.2.19.
Если аргументы некоторого рассуждения истинны, а его
тезис не является таковым, то рассуждение не является правильным. Данное рассуждение правильно и его аргументы истинны. Следовательно, его тезис является истинным.
Решение.
X – аргументы верны
Y – тезис верен
Z – рассуждение верно.
(xy’  z’)xz  y = (x’+y+z’)xz  y = xyz  y = x’+y’+z’+y = 1.
Задача 2.2.20.
Докажите, что если натуральное число оканчивается на
0 и сумма цифр кратна 3, то само это число кратно 15. Используйте при этом следующие посылки: если число оканчивается на 0, то оно кратно 5; если сумма цифр числа кратна 3,
то число кратно 3; если число кратно 3 и кратно 5, то оно кратно 15.
293
Решение.
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.2.21.
Если студент знает логику, то он сможет проверить выводимость формулы из посылки. Если студент не знает логику, но он прослушал курс "Логика" и освоил математический
анализ в логике суждений, то он также сможет установить выводимость формулы. Значит, если студент или знает логику,
или прослушал курс "Логика" и освоил матанализ в логике
суждений, то он может проверить выводимость формулы из
посылок.
Решение.
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.2.22.
Если каждое действительное число есть алгебраическое
число, то множество действительных чисел счётно. Множество действительных чисел несчётно. Следовательно, не каждое действительное число есть алгебраическое число.
Решение.
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.2.23.
Курс акций падает, если процентные ставки растут.
Большинство владельцев акций разоряется, если курс акций
294
падает. Следовательно, если процентные ставки растут, то
большинство владельцев акций разоряется.
Решение.
X – курс акций падает
Y – процентные ставки растут
Z – акционеры разоряются.
(y  x)(x  z)  (y  z) = (y’+x)(x’+z)  (y’+z) = x’y+xz’+y’+z
=1
Задача 2.2.24.
Если капиталовложения останутся постоянными, то возрастут правительственные расходы или возникнет безработица. Если правительственные расходы не возрастут, то налоги
будут снижены. Если налоги будут снижены и капиталовложения останутся постоянными, то безработица не возрастёт.
Следовательно, правительственные расходы не возрастут.
Решение.
X – капиталовложения постоянны
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.2.25.
Проверьте правильность рассуждения средствами логики суждений: "Если человек осуждён судом, то он лишается
избирательных прав. Если человек признан невменяемым, то
он также лишается избирательных прав. Следовательно, если
человек обладает избирательным правом, то он здоров и не
был осуждён судом".
Решение.
X – осуждён судом
Y – лишён избирательных прав
Z – невменяем.
(x  y)(z  y)  (y’  x’z’) = (x’+y)(z’+y)  (y+x’z’) =
xy’+zy’+y+x’z’ = 1.
Задача 2.2.26.
295
Если Джон - автор этого слуха, то он глуп или беспринципен. Следовательно, если Джон не глуп или не лишён принципов, то он не является автором этого слуха.
Решение.
X – Джон – автор слуха
Y – Джон глуп
Z – Джон беспринципен.
(x  (y+z))  ((y’+z’)  x’) = (x’+y+z)  (yz+x’) = xy’z’+yz+x’
 1.
Задача 2.2.27.
Если в параллелограмме один угол прямой, то диагонали такого параллелограмма равны. Следовательно, при несоблюдении этого требования диагонали параллелограмма не
равны.
Решение.
X – в параллелограмме один угол прямой;
Y - диагонали параллелограмма равны.
(x  y)  (x’  y’) = (x’+y)  (x+y’) = xy’+x+y’ = x+y’  1, т.е.
мы утверждаем, что заключение неверно. Однако любой
школьник, любящий геометрию, скажет, что мы ошибаемся. И
он будет прав: дело в том, что прямоугольники и параллелограммы с равными диагоналями соединены не причинноследственными связями, а функцией эквивалентности. Нельзя
применять логику бездумно. Поэтому решение должно быть
таким:(x  y)  (x’  y’) = (x’y’+xy)  (x+y’) = xy’+x’y+x+y’ = 1,
что и требовалось доказать.
296
Глава третья
Базисы силлогистики.
Современная логика суждений давно вызывает неудовлетворенность как своим несоответствием Аристотелевой логике[9],так и нечеткостью описания с точки зрения математической логики. Введение кванторов не разрешило этих проблем.
Рассмотрим вначале логику непосредственных умозаключений[16]. Для выражения любого умозаключения или посылки достаточнодвух конструкций (в скобках представлена
краткая форма записи суждений):
1)Все X суть Y(Axy);
2)Некоторые X суть Y(Ixy);
Однако традиционно в логике используются 4 базовых
суждения (силлогистических функтора):
1)Все X суть Y(Axy);
2)Ни один X не есть Y(Exy);
3)Некоторые X суть Y(Ixy);
4)Некоторые X не суть Y(Oxy).
Из диаграмм Венна с помощью таблиц истинности на основе классического синтеза логических функций могут быть тривиально получены следующие соотношения [27]:
Axy = (xy')' = x'+y
Exy = (xy)'= x'+y'
Эти соотношения не вызывают сомнений, тем более, что
подтверждение тому можно найти при внимательном прочтении Порецкого П.С.[46]. Используя метод представления общеутвердительного функтора как пересечения множеств Х и Y
по – Порецкому, получим следующий результат:
Axy = (x = xy) = xy + x’(xy)’ = xy + x’(x’ + y’) = xy + x’ = x’ + y.
Аналогично выводится и соотношение для Exy.
Кстати говоря, из этого соотношения Axy = x'+y = x → y
следует и объяснение физического смысла импликации. Поскольку высказывание «Все Х суть Y» эквивалентно импликации «Из истинности Х следует истинность Y», постольку эквивалентны и их аналитические представления. Отсюда же следует и вывод о бессмысленности разделения логики на силлогистику и логику суждений.
Что касается суждений Ixy,Oxy,то здесь сложилась
спорная ситуация. Во-первых, ни в одном источнике нет ана297
литического представления силлогистического
функтора
(квантора[53]) Ixy, т.е. фактически нет аналитического описания базиса силлогистики. Это и понятно: для решения данной
задачи требуется многозначная логика. В классической силлогистике все авторы стремились использовать двузначную логику. Во-вторых, здравый смысл и булева алгебра утверждают, что Oxy =(Ixy)', а в традиционной логике 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.Аналитический метод контроля
силлогизмов дал такие же результаты.
Неудовлетворенность трактовкой частных суждений высказывалась еще русским логиком Васильевым
Н.А.[9]:"...частное суждение представляет для логики значительные трудности, употребление его полно двусмысленности".
Попытаемся прояснить содержательный смысл соотношения (3), из которого следует, что безусловно существуют лишь ситуация x=y=1. Поскольку логические аргументы представляют собой скаляры, максимальная длина
которых не может превышать "полной единицы" (универсума),
т.е. x+x'=1, введем понятие скалярных диаграмм и заменим
ими круги Эйлера. Необходимо отметить, что впервые геометрическую интерпретацию (интервальный метод изображения множеств ) силлогистических функторов применил Иоганн
Генрих Ламберт(1728-1777гг. ), немецкий философ, матема298
тик, физик и астроном. Однако, он допустил ряд ошибок, главной из которых явилось отсутствие фиксации универсума. Эта
ошибка на несколько столетий похоронила идею математической силлогистики.
X
Y
Ixy = xy
Из рисунка видно, что такая "логика" не имеет никакой
практической ценности. "Бытовой" логике, вероятно, более
соответствует нижеприведённая скалярная диаграмма.
X
Y1
Y2
Ixy = x+y+ix'y'.
Скалярная диаграмма не только определяет суждение Ixy
как пересечения множеств X и Y, но и отмечает различные ситуации этого пересечения. Все аналитические соотношения
получены на основе четырёхзначной комплементарной логики.
B аристотелевой силлогистике под Ixy понимается любая
комбинация понятий x,y, лишь бы пересечение этих понятий
не было пустым[1,52]. Аристотелевой трактовке этого суждения соответствуют следующие скалярные диаграммы.
299
X
Y1
Y2
Y3
Y4
Y5
Ixy = xy+i(xy)'.
Вновь введенные скалярные диаграммы отличаются от
диаграмм Ламберта[52] следующими принципиальными характеристиками:
1)наличие фиксации универсума;
2)размещение силлогистического функтора Еxy на двух, а
не на одном уровне;
3)возможность "дробного" (разрывного) представления понятия в пределах универсума;
4)возможность графической и аналитической(4-значной
комплементарной) интерпретации результатов анализа и
синтеза силлогизмов.
300
Axy = x’ + y.
Exy = x’ + y’.
Ixy = 1.
Рис. 3.1. Переход от диаграмм Венна к диаграммам Лобанова
и синтез силлогистических функторов Axy, Exy, Ixy.
Наличие даже одного из перечисленных отличий привело к переименованию кругов Эйлера в диаграммы Венна.
Вполне естественно, что вновь введённые скалярные диаграммы получили название диаграмм Лобанова. Справедливости ради следует отметить, что скалярные диаграммы впервые применил Лейбниц[52, стр.601], но как и его ученик Ламберт не сумел их использовать для аналитического описания
функторов и синтеза заключений в силлогизмах.
На рис. 3.1 показан процесс перехода от диаграмм Венна к
диаграммам Лобанова и синтез по ним аналитического описания силлогистических функторов Axy, Exy, Ixy.
С аристотелевским определением частного суждения Ixy
не согласны многие логики. В работе [9] автор утверждает,
что "научное употребление слова "некоторые" совпадает с
общеразговорным", т.е. с бытовым,а не аристотелевским.
Кроме того, Васильев Н.А. [9] считает,что Ixy и Oxy должны
301
считаться одним суждением. Он также заявляет: "В математике так называемые частные суждения сводятся ... к общим,
и она прекрасно обходится без этого нелепого в совершенной
науке слова "некоторые". К этому же должна стремиться и
всякая наука... Частное суждение нужно рассматривать вовсе
не как какой-то вывод из общего суждения, а как особый
вполне самостоятельный вид суждения, вполне координированный с общими суждениями, исключающий их и исключаемый любым из них". С точкой зрения такого известного ученого трудно не согласиться.
Имеет некоторый практический смысл и такая трактовка
суждения Ixy, как представленная на скалярных диаграммах.
X
Y
Ixy = x+y
Под базисом силлогистики будем понимать всевозможные варианты представления суждений Axy, Exy, Ixy.Суждение Oxy
получается автоматически из Ixy, поскольку является его отрицанием.
3.1. Все x суть y(Axy).
1.Традиционное представление этого суждения изображено на скалярной диаграмме, по которой заполнена таблица
истинности.
X
Y
xy
00
01
10
11
Axy
1
1
0
1
302
По таблице истинности синтезируем логическую функцию
Axy:
Axy = (xy')' = x'+y = Ay'x' = Exy' = (xy) = (y'x')
(Axy)' = xy'
Здесь уместно сделать одно замечание. Много копий было
сломано при выяснении физической сущности импликации. Из
таблицы истинности этот смысл не вырисовывался, более того, вызывал недоумение. Но ведь x  y = x’ + y = Axy. А если
все Х суть Y, то в этом случае понятен смысл импликации, выраженный в суждении «из истинности Х следует истинность
Y».
Если использовать рекурсивный метод Порецкого, то
можно подтвердить полученные соотношения для Axy:
Axy = (x = xy) = xy+x’(xy)’ = xy+x’+x’y’ = x’+y.
2.Традиционное представление Axy не исчерпывает все
ситуации. Вторая комбинация аргументов x,y представлена
на диаграмме.
X
Y1
Y2
xy
00
01
10
11
Axy
i
1
0
1
Ситуация, представленная на рисунке под символом Y2,
может быть проиллюстрирована следующим высказыванием: "Все люди смертны". Это справедливо при условии, что
"мир"(универсум) - все живые существа,т.к.все живое-
303
смертно. С учетом вышеизложенного выражение для функции
Axy примет вид:
Axy = y+ix'y'
(Axy)' = xy'+jx'y'
3.Третий вариант суждения Axy изображен на скалярных
диаграммах. По cравнению со 2-м вариантом здесь добавлено суждение "x эквивалентно y".
X
Y1
Y2
Y3
xy
00
01
10
11
Axy
i
i
0
1
Для ситуации на рисунке под символом Y3 справедливо
высказывание "Все люди владеют словом". Если весь "мир" живые существа, то понятия "люди" и "говорящие живые существа" эквивалентны. Из таблицы получаем следующее соотношение:
Axy = xy+ix'
(Axy)' = xy'+jx'
Эти три варианта базиса для Axy не исчерпывают всех ситуаций, но в силлогистике оставшиеся за пределами рассмотрения комбинации аргументов не являются решающими.
304
3.2. Ни один x не есть y(Exy).
1.Классическое представление Exy изображено на скалярных диаграммах.
X
Y
xy
00
01
10
11
Exy
1
1
1
0
Из таблицы имеем:
Exy = (xy)' = x'+y' = Axy' = Ayx' = Eyx = (xy') = (yx')
(Exy)' = xy
По методу Порецкого [46] с использованием формулы
равнозначности получим:
Exy = (x = xy’) = xy’+x’(xy’)’ = xy’+x’ = x’+y’.
2.Второй вариант суждения Exy представлен на рисунке.
X
Y1
Y2
xy
00
01
10
11
Exy
i
1
1
0
305
Для иллюстрации диаграммы рисунка под символом Y2
подходит высказывание "Ни один живой не есть мертвый".
Из таблицы имеем:
Exy = x'y+xy'+ix'y'
(Exy)' = xy+jx'y'
3.Третий вариант суждения Exy изображен на скалярных
диаграммах.
X
Y1
Y2
Y3
xy
00
01
10
11
Exy
i
1
1
0
Высказывание "Ни один человек не бессмертен" иллюстрирует ситуацию на диаграмме под символом Y3. Здесь
"мир" - живые существа, а бессмертных существ не бывает.
Из таблицы выводим соотношение:
Exy = xy'+ix'
(Exy)' = xy+jx'
3.3. Некоторые x суть y.
Лобачевский Н.И. создал "воображаемую геометрию". По
образу и подобию великого русского геометра не менее великий русский логик Васильев Н.А. разработал "воображаемую
логику". Мы попробуем разобраться хотя бы в общеразговорной(бытовой) логике, тем более что в [9] частному суждению
Ixy уделено недостаточное внимание.
1.Первый вариант суждения Ixy представлен на рисунке.
X
Y
306
xy
00
01
10
11
Ixy
0
0
1
1
Иллюстрацией для этого варианта служит высказывание "Некоторые люди(x) - мудрые люди(y)"("мир" - люди). Из таблицы
получим соотношение:
Ixy = x
(Ixy)' = x'
Кстати,именно в этом базисе выполняется требование
Васильева[9]:
Ixy -> Ixy' = x'+x = 1.
2.Второй вариант суждения Ixy представлен на рисунке.
X
Y1
Y2
xy
00
01
10
11
Ixy
i
1
1
1
Из таблицы получим соотношение:
Ixy = x+y+ix'y'
(Ixy)' = jx'y'
Здесь метод Порецкого бессилен, т. к. он расчитан лишь на
описание общеутвердительных или общеотрицательных суждений.
3.Третий вариант суждения Ixy представлен на рисунке. Этот
базис соответствует Аристотелевскому [52].
307
X
Y1
Y2
Y3
Y4
Y5
xy
00
01
10
11
Ixy
i
i
i
1
Из таблицы получим соотношение:
Ixy = xy+i(x'+y')
(Ixy)' = j(x'+y')
4.Четвёртый вариант суждения Ixy представлен на рисунке.
Этот базис получил название несимметричного.
X
Y1
Y2
xy
00
01
10
11
Ixy
1
i
1
1
308
Ситуация на рисунке под символом Y1 иллюстрируется высказыванием "Некоторые юристы(x) - выпускники юридических вузов(y)"(не-юристов юридические вузы не выпускают).
Из таблицы получим соотношение:
Ixy = x+y'+ix'y
(Ixy)' = jx'y
5.Пятый вариант суждения Ixy представлен на рисунке.
X
Y1
Y2
Y3
xy
Ixy
00
i
01
i
10
1
11
1
Ситуация на рисунке под символом Y3 иллюстрируется высказыванием "Некоторые люди(x) суть неговорящие существа(y)" (не - люди тем более не разговаривают). Универсум "живые существа". Из таблицы получим соотношение:
Ixy = x+ix'
(Ixy)' = jx'
6.Шестой вариант суждения Ixy представлен на рисунке.
X
Y
xy
00
01
10
11
Ixy
0
1
1
1
309
Из таблицы получим соотношение:
Ixy = x+y
(Ixy)' = x'y'
7. Седьмой вариант функтора Ixy выглядит так:
X
Y1
Y2
Y3
xy
00
01
10
11
Ixy
i
1
i
1
Ixy = y + iy'
(Ixy)' = jy'
8. Восьмой вариант функтора Ixy (базис Васильева Н. А.).
В работе [9] утверждается, что в общеразговорном базисе из
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
310
Полученные значения на основании последнего соотношения
занесем в карту Карно и решим систему трех уравнений с
тремя неизвестными.
\y
x\
0
1
a’
b’
---- ----b
a
c’
0
----- ----1
c
0
1
Из КК получаем систему уравнений:
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
3)Ixy = x+ix'
Уравнение (1) соответствует первому базису для Ixy, уравнение (3) - третьему базису,а уравнение (2) - общеразговорному базису (базису Васильева).
X
Y
311
9.Девятый вариант суждения Ixy представлен на рисунке.
M
X
Y1
Y2
Y3
xy
00
01
10
11
Ixy
1
i
i
1
Из таблицы получим соотношение:
Ixy = xy+x'y'+i(xy'+x'y)
(Ixy)' = j(xy'+x'y)
Вопрос о выборе базиса должен решаться отдельно для
каждого конкретного силлогизма. Нередко частноутвердительное суждение бездумно употребляется вместо общеутвердительного. Если для суждения "Некоторые животные - млекопитающие" мы будем использовать любой симметричный базис, то придем к абсурдному заключению "Некоторые млекопитающие - животные", поскольку на самом деле исходное
суждение имеет вид "Все млекопитающие - животные". Именно такую ошибку дважды допустили преподаватели Кэмбриджа и Оксфорда, авторы хорошего учебного пособия по философии, на стр.170 и 174[53].
Для указания используемого базиса автор применяет нумерацию, состоящую из вариантов суждений в порядке AxyExy-Ixy.Например, для анализа силлогизмов в общем (неконкретном) виде автор предпочитает общеразговорный базис 11-2, который описывается следующими соотношениями:
Axy = (xy')'
Exy = (xy)'
Ixy = x+y+ix'y' = x+y+i.
Этот базис назван автором русским базисом, т.к. он частично удовлетворяет требованиям русского логика Васильева Н.А. относительно научного и общеразговорного смысла
312
силлогистического функтора Ixy. Вполне естественно, что силлогистика, основанная на русском базисе, названа русской
силлогистикой.
Заключение.
1.Анализ современного состояния логики показал полное
отсутствие аналитического представления базиса силлогистики, а также несостоятельность классического силлогитического
базиса который не является ни Аристотелевским, ни общеразговорным (бытовым).
2.Впервые показано, что даже общие суждения имеют
неоднозначную структуру и аналитическое описание.
3.Впервые представлено все многообразие базиса частноутвердительного суждения и дано его аналитическое представление.
4.Впервые найдены аналитические выражения для всех
частноутвердительных суждений, удовлетворяющих критерию
Васильева.
313
Глава четвёртая
Силлогистика Аристотеля - Жергонна.
В [52] приведены так называемые "жергонновы отношения". С помощью этих отношений Ж.Д.Жергонн(1771-1859)
представил все классы суждений (силлогистические функторы), выделенные Аристотелем, на языке теории множеств.
Автор пока не может дать однозначного заключения о корректности проделаннной Жергонном операции. Поэтому данная силлогистика носит двойное имя.
Переведем "жергонновы отношения" на язык скалярных
диаграмм
X
Y1
X
Y2
Y
Axy
Exy.
X
Y1
X
Y2
Y1
Y3
Y2
Y4
Y3
Y5
Y4
Ixy
Oxy.
По скалярным диаграммам были построены соответствующие
таблицы истинности.
314
xy
00
01
10
11
Axy
1
i
0
1
xy
00
01
10
11
Exy
1
1
1
0
xy
00
01
10
11
Ixy
i
i
i
1
xy
00
01
10
11
Oxy
i
i
1
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')'
Такой же результат может быть получен табличным
методом, для чего необходимо проинвертировать значения
соответствующих силлогистических функторов в таблицах.
315
Полученные соотношения позволяют построить силлогистику
без кванторов. Очень интересные решения этой проблемы
имеются в[19, 48]. Известны попытки решения задач силлогистики с помощью кванторного аппарата исчисления предикатов[44]. Однако, судя по современному состоянию силлогистики, такие попытки успеха не имели. Это обстоятельство ставит
под сомнение всё исчисление предикатов, тем более, что введение кванторов противоречит принципу «бритвы Оккама»,
порождая «лишние сущности». С помощью формул для силлогистических функторов A, E, I, O можно
выполнять все
операции над силлогизмами, т.е. находить аналитическое решение задач, связанных с силлогизмами. Для того, чтобы
проверить силлогизм, нужно выполнить алгоритм "Осташ-Т"
[38].
4.1. Алгоритм "Осташ-Т" (тест)
1.Заменить посылки и заключение выражениями в соответствии с формулами для функторов A, E, I, O.
2.Получить выражение в виде конъюнкции всех посылок, имплицирующей заключение.
3.Проверить это выражение на тождественность единице, занеся его в карту Карно (КК). Если выполняется тождественность единице, то заключение истинно. Если хотя бы
одна из посылок или заключение являются частным суждением, то силлогизм яв ляется истинным даже при получении модальной единицы (т.е. в некоторых клетках КК проставлены
символы модальности i) при условии, что m=1 или m'=1 (в
этом случае строка m или соответственно m' должна содержать не менее 3-х целых единиц и только одну составную, т.е.1=i+j). В противном случае заключение не имеет места.
Для синтеза заключения по заданным посылкам также
можно использовать алгоритм "Осташ-Т", несколько изменив
его.
Алгоритм "Осташ-С" (синтез)
1.Заменить посылки выражениями
ствии с формулами для функторов A,E,I,O.
316
в
соответ-
2.Получить выражение в виде конъюнкции всех посылок и проинвертировать его. Занести полученное выражение в карту Карно (КК).
3.Доопределить полученную функцию одним из выражений для силлогистических функторов A, E, I, O таким образом, чтобы получить тождественую или модальную единицу. При доопределении иметь в виду, что из частной посылки
должно следовать частное заключение. Перед доопределением в одной строке КК(m или m') должно быть не менее 2-х,
а после доопределения не менее 3-х целых единиц. Доопределяемое заключение должно содержать минимально необходимое количество единиц. Функция доопределения является искомым заключением. Если в доопределяемой строке КК
имеется 2 полных единицы и 2 значения j, то доопределение
невозможно.
4.Если вышеуказанное доопределение невозможно,
то из данных посылок нельзя вывести никакого заключения.
Синтез посылок от синтеза заключений отличается
лишь тем, что доопределение КК выполняется в этом случае
для отрицания посылки.
Аналитические методы на основе алгоритмов "Осташ-Т"
и "Осташ-С" дополняются графическим методом на базе скалярных диаграмм. Алгоритм ТВАТ (Тушинский вечерний авиационный техникум) прост и нагляден.
4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов).
1.Изобразить все возможные (из набора Axy, Ayx, Exy,
Ax’y & Ay’x, Ixy и xy) ситуации для исходных посылок с помощью скалярных диаграмм.
2.Занести в таблицу истинности все значения f(x,y)
для входных наборов xy: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(x,y) в трёхзначной логике.
4.Полученный результат представить в виде силлогистического функтора в соответствии с известным базисом.
4.3. Алгоритм «РЕДАН» (синтез недостающей посылки).
317
1.Изобразить все возможные (из набора Amy, Aym, Emy,
Am’y & Ay’m, Imy и my) ситуации для исходной посылки и
заключения с помощью скалярных диаграмм.
2.Занести в таблицу истинности все значения f(m,y) для
входных наборов my: 00,01,10,11.
3.Выполнить минимизацию логической функции заключения f(m,y) в трёхзначной логике.
4.Полученный результат представить в виде силлогистического функтора в соответствии с известным базисом.
Пример 4.3.1.
Найти недостающую посылку в силлогизме
Amx & f(m,y)  Ixy(3).
M
X
Y1
Y2
my
f(m,y
)
00
1
01
1
10
i
11
1
F(m,y) = m’ + y + i = Im’y(2)
Из диаграммы видно, что заключение описывается формулой
Fz(x,y) = xy + i = Ixy(3), т.е. все условия задачи соблюдены. Однако это не единственное решение.
M
X
Y1
Y2
Y3
318
Во второй скалярной диаграмме заключение также описывается формулой Fz(x,y) = xy + i = Ixy(3), но вторая посылка
выглядит иначе.
my
00
01
10
11
f(m,y
)
1
1
0
1
F(m,y) = m’ + y = Amy
Пример 4.3.2.
Однажды я получил по электронной почте письмо следующего содержания.
Date: Thu, 6 Nov 2003 15:49:54 +0500
Subject: Помогите мне в логике!
> Пожайлуста! помогите мне решить задачу, мне нужно досдать экзамен, я прочитала кучу литературы,но на этом остановилась, так как очень сложно самостоятельно изучать логику:
> Восстановите, если это возможно, пропущенную часть силлогизма:
> Пушкинский пророк никакого определённого призвания не
имеет,.....следовательно, он-не настоящий пророк.
(В.С.Соловьёв)
Сгоряча я решил эту задачку аналитически.
Ваша задачка:
Пушкинский пророк(х) никакого определённого призвания не
имеет(m).
f(m,y) = ?
---------------------------------------------------------------Пушкинский пророк(x)-не настоящий пророк(y).
x - пушкинский пророк;
y - настоящий пророк;
m - имеющий определённое призвание.
319
В соответствии с моими алгоритмами(см.В.И.Лобанов"Русская
логика против классической" и "Решебник по Русской логике")
получим:
Exm & f(m,y) -> Exy = (x'+m') & f(m,y) -> (x'+y')
xm+f'(m,y)+x'+y' = 1
f'(m,y) = m'y
f(m,y) = y'+m = Aym, т.е. "Все настоящие пророки имеют определённое призвание"
С уважением Владимир Иванович Лобанов.
PS: Почитайте мои сайты http://ruslogic.by/ru,
http://ruslogic.narod.ru/
Однако это всего лишь частный случай. По алгоритму
«Редан» получим интегрированное решение.
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
1
i
i
i
F(x,y) = x’y’+i = Ix’y’(3), т.е. «Некоторые ненастоящие пророки не имеют призвания».
Простота графического алгоритма анализа и синтеза
силлогизмов наводит на мысль о том, что и скалярные диаграммы, и алгоритмы могли быть открыты 25 веков назад Аристотелем. Во всяком случае, скаляры были известны Евклиду,
современнику Аристотеля.
Алгоритмы «Осташ» и «ТВАТ» дают одинаковые по полноте и корректности результаты. Существует более простой и
эффективный аналитический метод, позволющий получать
320
корректные, но для некоторых частных силлогизмов не всегда полные результаты. Этот метод оформлен автором в виде
алгоритма «ИЭИ» (Ивановский энергетический институт).
Предпочтительная область применения данного алгоритма силлогистика здравого смысла, т.е. русская и общеразговорная. Кроме того, алгоритм «ИЭИ» незаменим при аналитическом синтезе соритов (многопосылочных силлогизмов).
4.4. Алгоритм "ИЭИ "(синтез заключения)
1. Заменить посылки выражениями в соответствии
с формулами для функторов A,E,I или любых других логических соотношений.
2. Получить выражение для полной единицы М системы в
виде конъюнк- ции всех посылок.
3. Получить из М функцию М(х,у), заменив средний член
m или m' на 1. Если средний член m/m' входит в силлогизм
автономно, то заменить его на i. Полученная функция М(х,у)
является заключением силлогизма. Если в М встречается
терм im или im’, то заключения не существует.
Алгоритм «ИЭИ» можно считать частным случаем алгоритма «Селигер» для решения логических уравнений.
Пример 4.4.1.
Ни один 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
321
Xy
00
01
10
11
f(x,y)
i
1
i
i
F(x,y) = x’y+i = Ix’y(3).
В классической логике[16] при синтезе заключений для
конкретного силлогизма в качестве шаблона используются
фигуры(1 – 4), представленные на рисунке, и модусы. Считается, что с помощью таких шаблонов-ходуль для инвалидного
мышления можно придти к правильным выводам.
M
X
X
M
M
X
X
M
Y
M
Y
M
M
Y
M
Y
Фигура 1
Фигура 2
Фигура 3
Фи гура 4
Приведём так называемые «правильные» модусы[16].
Фигура 1: AAA, EAE, AII, EIO.
Фигура 2: EAE, AEE, EIO, AOO.
Фигура 3: AAI, IAI, AII, EAO, OAO, EIO.
Фигура 4: AAI, AEE, IAI, EAO, EIO.
Развёрнутая запись модуса AAA для первой фигуры,
например, выглядит так: AmxAym  Aym.
Используя приведённые методы, проверим некоторые
модусы для 4-х фигур категорического силлогизма в базисе
Аристотеля - Жергонна. Синтез силлогизмов проведём графическим методом в связи с его простотой и наглядностью. В
результате получим следующие заключения. Здесь и далее
под обозначением N.n понимается номер фигуры и номер модуса в данной фигуре. Например, 1.6 означает 6-й модус первой фигуры.
322
Фигура 1.
1.1. Amx(3)Aym(3) -> f(x,y) = mx'+jm'x+m'y+jmy'+f(x,y) = 1
M
X1
X2
Y1
Y2
xy
00
01
10
11
f(x,y)
1
0
i
1
Алгоритм «ТВАТ» и алгоритм "Осташ-С" дали одинаковый результат:f(x,y) = xy+x'y'+ixy' = Ayx(3).
Для алгоритма «ИЭИ» получим:
M = Amx(3)Aym(3) = (m’x’+mx+im’x)(y’m’+ym+iy’m) =
m’x’y’+ixy’+mxy
M(x,y) = x’y’+xy+iy’x = Ayx(3)
Таким образом, все три алгоритма дали одинаковый результат, который совпал с «правильным» модусом AAA. В
дальнейшем синтез силлогизмов будем выполнять по самым
простым и прозрачным алгоритмам ИЭИ и ТВАТ.
1.6. Emx(3)Eym(3) -> f(x,y).
M
X
Y1
Y2
Y3
323
xy
00
01
10
11
f(x,y)
1
i
i
i
f(x,y) = x'y'+i = Ix'y'.
По алгоритму «ИЭИ»
M = Emx(3)Eym(3) = (m’+x’)(y’+m’) = m’+x’y’
M(x,y) = x’y’+i = Ix’y’.
Фигура 2.
2.4. Axm(3)Oym(3) -> f(x,y) = m'x+jmx'+j(m'y)'+f(x,y) = 1(i)
M
X1
X2
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
1
i
i
f(x,y) = Ix'y.
По алгоритму «ИЭИ»
M = Axm(3)Oym(3) = (x’m’+xm+ix’m)(ym’+iy’+im) =
m’x’y+im+ix’y’
M(x,y) = x’y+i = Ix’y
324
Фигура 3.
3.2. Amx(3)Emy(3) -> f(x,y) = mx'+jm'x+my+f(x,y) = 1(i)
M
X1
X2
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
i
1
i
f(x,y) = xy'+i(xy')' = Ixy'.
Фигура 4.
4.1.Axm(3)Amy(3) -> f(x,y) = m’x+jmx’+my’+jm’y+f(x,y) = 1
M
X1
X2
Y1
Y2
Xy
00
01
10
11
f(x,y)
1
i
0
1
f(x,y) = xy+x’y’+ixy’ = Axy(3).
325
У Аристотеля этому модусу соответствует заключение Ixy,
что не согласуется ни со здравым смыслом, ни с формальным
выводом. Указанные несоответствия можно было бы заметить 24 века назад, поскольку для этого не требуется ничего,
кроме здравого смысла.
4.5. ExmAmy -> f(x,y) = mx+my'+jm'y+f(x,y) = 1(i)
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
1
i
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,
EII,EOI,IAI,IEI,OAI,OEI.
4-я фигура: AAA, AEE, EAO, EEI, EIO, EOI, IAI, IEI.
Кстати, на самом деле проверять нужно было бы 256
модусов даже для случая двухфункторной (A,I) силлогистики.
Полученные результаты очевидны, однако в большей
своей части данные модусы являются абсолютно новыми для
аристотелевой силлогистики[16].Кроме того, аристотелевский
модус AAI в 4-й фигуре является некорректным.
Проверим теперь традиционную логику[16] с помощью
алгоритмов «Осташ». Её базис явно отличается от базиса
Аристотеля-Жергонна. Попробуем описать этот базис ана-
326
литически. Из логического квадрата[16] следуют традиционные соотношения:
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) описывают аристотелевскую логику, которая не соответствует требованиям, предъявленным русским
ученым Васильевым Н.А.[9] к частным суждениям с научной
точки зрения и с позиции логики здравого смысла.
Автор с глубочайшим уважением относится к Аристотелю, впервые в истории человечества предложившему формальные методы анализа и синтеза силлогизмов. Однако
нельзя признать, что логика Аристотеля является логикой
здравого смысла, а его «правильные» модусы исчерпывают
все достоверные ситуации силлогистики. Поэтому логика Аристотеля-Жергонна представляет интерес с чисто научноисторической точки зрения.
Проиллюстрируем применение алгоритма «Редан» на
простом примере. Пусть задан тривиальный силлогизм:
Все люди(m) талантливы(x).
Все студенты(y) – люди(m).
Все студенты(y) талантливы(x).
Казалось бы, если нам известны первая посылка и заключение, то мы легко найдём вторую посылку, и она будет
327
иметь вид Aym, т.е. “Все студенты – люди. Проверим наши
рассуждения с помощью алгоритма «Редан».
Все люди(m) талантливы(x).
F(m,y) = ?
Все студенты(y) талантливы(x).
Решение.
Для универсума «живые существа» получим такие диаграммы.
M
X
Y1
Y2
Y3
Y4
my
00
01
10
11
f(m,y
)
1
i
I
i
f(m,y) = m’y’+i = Im’y’(3), т.е. «Некоторые животные нестуденты».
Наряду с этим необходимо подчеркнуть пассивную роль
кванторного исчисления, предназначенного, казалось бы для
защиты аристотелевой силлогистики. В [44] приводится пример элегантного доказательства достоверности первого модуса первой фигуры (AmxAym -> Ayx) с применением кванторного исчисления. Однако этот модус самый примитивный из
всех, и легко доказывается даже в обычной двоичной логике
без привлечения кванторов («лишних сущностей» по Оккаму).
Кванторный механизм создавался, в первую очередь, для того, чтобы проверить силлогистику Аристотеля. Однако до сих
пор такой проверки не произошло. Отсюда можно сделать
328
следующий вывод: либо кванторным исчислением матлогики
не владеют настолько, чтобы доказать или опровергнуть
правоту Аристотеля, либо само кванторное исчисление является ущербным. Автор склоняется ко второму выводу, поскольку кванторное исчисление – примитивная мнемоника и
ничего более, т.е. оно никогда ничего не исчисляло и исчислять не может.
Некоторые дополнительные аспекты проблем современной силлогистики изложены в [55].
4.4. Ошибки Аристотеля.
Важнейшим разделом классической логики является силлогистика, основные положения которой были разработаны Аристотелем. Решение задач силлогистики опирается на аристотелевы
фигуры, модусы и 4 основных правила посылок[16].
Задача 1.
Проверить корректность 1-го правила посылок.
Решение.
Это правило формулируется так [16, стр.133]: «Хотя бы
одна из посылок должна быть утвердительным суждением. Из
двух отрицательных посылок заключение с необходимостью
не следует». Подберём контр-пример на 1-е правило посылок.
Ни один человек(m) не является бессмертным(x).
Ни один человек(m) не является счастливым(y).
F(x,y) = ?
В данном силлогизме универсумом(U) является множество существ. По алгоритму ИЭИ получим следующий результат.
M = EmxEmy = (m’+x’)(m’+y’) = x’y’+m
F(x,y) = x’y’+i = Ix’y’(3), т.е. “Некоторые смертные несчастливы”.
По алгоритму ТВАТ[38] получим графическое решение.
Здесь Y1 – Y4 – различные ситуации распределения множеств счастливых существ. Предполагается, что Боги тоже могут быть несчастны.
329
M
X
Y1
Y2
Y3
Y4
Xy
00
01
10
11
f(x,y)
1
i
i
i
F(x,y) = x’y’+i = Ix’y’(3), т.е. результаты аналитического и
графического синтеза заключения совпали со здравым смыслом и опровергли 1-е правило посылок. Здесь и далее апостроф обозначает инверсию, а цифра в скобках – номер базиса.
Задача 2.
Проверить корректность 2-го правила посылок классической силлогистики.
Решение.
Это правило формулируется так [16, стр.134]: «Если одна
из посылок – отрицательное суждение, то и заключение должно быть отрицательным». Контр-пример для этого случая может быть таким.
Все люди(m) – животные(x).
Ни один человек(m) не имеет хвоста(y).
F(x,y) = ?
В качестве универсума(U) примем множество существ, в
том числе и Богов (бесхвостых). Наиболее наглядным является графическое решение по алгоритму ТВАТ[36].
M
X
Y
330
Из скалярных диаграмм видно, что заключение является
общеутвердительным: «Все хвостатые существа – животные»,
что опровергает 2-е правило посылок.
Задача 3.
Проверить корректность 3-го правила посылок классической силлогистики[16, стр.134].
Решение.
Это правило формулируется так: «Хотя бы одна из посылок должна быть общим суждением. Из двух частных посылок
заключение с необходимостью не следует». Рассмотрим
контр-пример:
Некоторые люди (m) неграмотны (x).
Некоторые люди (m) бескультурны (y).
F(x,y) = ?
Пусть U – множество животных. Предположим, что культурным (вежливым, например) может быть и неграмотный.
Животные по определению не могут быть ни культурными, ни
грамотными. Вновь воспользуемся алгоритмом ТВАТ.
M
X
Y1
Y2
Y3
Xy
00
01
10
11
f(x,y)
i
i
i
1
F(x,y) = xy+i = Ixy(3), т.е. «Некоторые неграмотные бескультурны». Это соответствует математике и здравому смыс-
331
лу, что ставит под сомнение корректность 3-го правила посылок.
Задача 4.
Проверить 4-е правило посылок на примере синтеза силлогизма:
Все люди (m) смертны (x)
Некоторые люди (m) неграмотны (y)
-----------------------------------------------f(x,y) = ?
Решение.
Пусть в универсум входят люди, животные и боги. Богов
будем считать грамотными, а животных - неграмотными. Построим заключение по алгоритму ТВАТ.
M
X
Y
xy
00
01
10
11
f(x,y)
1
0
1
1
f(x,y) = y'+x = Ayx, т.е. «Все неграмотные смертны».
Такое заключение перечёркивает 4-е правило посылок[16,стр.135]:” Если одна из посылок – частное суждение, то
и заключение должно быть частным”.
Итак, мы убедились, что все правила силлогистики некорректны. Рассматривать после этого “правильные” модусы
Аристотеля уже не имеет смысла. Наиболее очевидная
ошибка Аристотеля связана с первым модусом 4-й фигуры.
Здравый смысл и убеждают нас в том, что от перестановки
посылок заключение не изменяется. Однако все логики вслед
за Аристотелем повторяют, что 1-й фигуре соответствует модус ААА, а 4-й – AAI. Приведём результаты синтеза этого модуса в базисе Аристотеля по алгоритму ТВАТ:
M = Axm(3)Amy(3)
332
M
X1
X2
Y1
Y2
xy
00
01
10
11
f(x,y)
1
i
0
1
f(x,y) = xy+x’y’+ix’y = Axy(3).
Мы доказали, что первые модусы 1-й и 4-й фигуры ничем
не отличаются друг от друга, т.е. строго математически подтвердили правоту здравого смысла. Вообще модусы и правила посылок силлогистики – это чрезвычайно хрупкие костыли
для интеллектуальных инвалидов. Наиболее грубая, невежественная ошибка Аристотеля заключается в том, что он в своих модусах не учитывает ни объёмы терминов, ни объём универсума. Это невежество тиражируется мировой наукой, преподаванием безграмотной болтологики в средних и высших
учебных заведениях России. Невежество современных математиков заключается не только в том, что они проигнорировали предостережение Ф. Бэкона, который ещё в 1620г. заявил
о бесполезности и даже вредности логики Аристотеля, но и в
том, что эти «так называемые логики» (по выражению Кэрролла) не сумели за 120 лет освоить трудов выдающихся математиков П.С. Порецкого и Л. Кэрролла.
В частности,
Л.Кэрролл[19, с.373] пишет:
« Из всех странных вещей, с которыми приходится сталкиваться на страницах традиционных учебников формальной логики, наибольшее недоумение вызывает, повидимому, резкий
контраст между отношением их авторов к рассмотрению силлогизмов и соритов. Подробно перечисляя не менее девятнадцати разновидностей силлогизмов (каждая из которых в от-
333
дельности справедлива лишь при соблюдении особых, невыносимо скучных правил, а все вместе составляют почти бесполезный для практических целей аппарат, поскольку многие
заключения неполны, а вполне законные формы силлогизмов
преданы незаслуженному забвению), логики ограничивают сориты лишь детски простыми формами, зато удостаивают последние специальных названий, полагая, очевидно, что других
форм соритов не существует».
Аналитическое представление кванторов Axy и Exy впервые разработал в 1884 г. гениальный русский логик П.С. Порецкий, а спустя 12 лет к таким же результатам пришёл талантливый английский писатель и учёный Л. Кэрролл. До сих
пор ни в одном учебнике по математической логике вы не
встретите этих формул, однако будете всюду натыкаться на
кванторное исчисление, которое ничего не исчисляет, поскольку является просто мнемоникой.
Заключение
1.Предложены простые и надежные способы графической и аналитической проверки силлогизмов и синтеза заключений или посылок для любых базисов.
2.Применение предложенных методов избавляет от
необходимости запоминания множества логических правил и
законов.
3.Предложенные методы ставят под сомнение всё исчисление предикатов, кванторный аппарат которого не справился с задачами анализа и синтеза силлогизмов.
4.Впервые аналитически описан базис логики Аристотеля-Жергонна.
5.Впервые на основе базиса Аристотеля-Жергонна
разработана силлогистика, существенно отличающаяся от
классической.
6.Впервые проверены все 64 модуса силлогистики
Аристотеля-Жергонна. Доказано, что аристотелев модус AAI в
4-й фигуре не является правильным.
7.Впервые доказано, что ни силлогистика АристотеляЖергонна, ни классическая силлогистика не укладываются в
прокрустово ложе 19 «правильных» модусов.
8.Доказано, что ни классическая силлогистика, ни
силлогистика Аристотеля-Жергонна не имеют никакого отношения к логике здравого смысла.
9. Доказано, что все 4 правила посылок некорректны.
334
Глава пятая
Русская силлогистика.
Русская силлогистика построена на русском базисе, который описывает логику здравого смысла [18].
"Все 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'y(5) в 5-м базисе.
M
X
Y1
Y2
Y3
335
xy
00
01
10
11
f(x,y)
1
1
i
i
Из скалярных диаграмм в соответствии с алгоритмом
ТВАТ также следует f(x,y)=x'+ix=Ix'y(5).
Пример 2.
Проведём синтез заключения для сорита [19,с.165] на
основе алгоритма «ИЭИ»,определяя взаимосвязь между a и b.
M = EcdAadAbc = (cd)’(ad’)’(bc’)’ = a’b’c’+b’c’d+a’cd’
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[19,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.
В [19] этот ответ единственный, а по алгоритму «ИЭИ»
можно теперь практически даром получить все заключения
для пар (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.
336
Пример 4.
Дано: M = AbaIbcEad в русском базисе.
Найти: M(a,c),M(b,d),M(c,d).
Решение.
Найдём искомые функции графически по алгоритму
ТВАТ и аналитически по алгоритму ИЭИ.
A
B
D
C1
C2
C3
C4
По алгоритму ТВАТ из скалярных диаграмм получены
следующие таблицы.
ac
f(a,c
)
i
i
1
1
00
01
10
11
bd
f(b,d
)
1
1
1
0
00
01
10
11
cd
f(c,d
)
1
i
1
i
00
01
10
11
337
Из приведённых таблиц выводим искомые соотношения:
f(a,c) = a+i = Iac(5)
f(b,d) = b’+d’ = Ebd
f(c,d) = d’+i = Icd’(5),
где цифра 5 в скобках указывает на 5-й базис, т. е. Ixy =
x+i.
По алгоритму ИЭИ выводим следующие формулы.
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. По алгоритму ИЭИ
M = AmxAym = (m’+x)(y’+m) = mx+y’m'+xy’.
F(x,y) = y’+x = Ayx.
По алгоритму ТВАТ
M
X
Y
Xy
00
01
10
11
f(x,y)
1
0
1
1
338
Агоритмы «ТВАТ» и «ИЭИ» дали одинаковый результат:f(x,y) = (yx')' = Ayx.
1.2. AmxEym -> f(x,y)
M
X
Y1
Y2
Xy
00
01
10
11
f(x,y)
i
i
1
i
f(x,y) = xy'+i = Ixy'(3).
Индекс (3) говорит о том, что заключение соответствует
3-му базису, т.е. базису Аристотеля - Жергонна.
По алгоритму «ИЭИ»
M = AmxEym = (m’+x)(y’+m’) = m’y’+xy’+m’ = m’+xy’
M(x,y) = xy’+i = Ixy’(3)
1.3. M = AmxIym
По алгоритму ТВАТ получим:
M
X
Y1
Y2
Xy
00
01
10
11
f(x,y)
I
I
1
1
339
f(x,y) = x+i = Ixy(5).
1.7. M = EmxIym
По алгоритму ТВАТ получим:
M
X
Y1
Y2
Xy
00
01
10
11
f(x,y)
1
1
i
i
f(x,y) = x’+i = Ix’y(5).
1.9. M = ImxAym
M
X1
X2
Y1
Y2
Y3
Xy
00
01
10
11
f(x,y)
i
i
1
i
f(x,y) = xy’+i = Ixy’(3).
340
1.10. M = ImxEym
M
X1
X2
Y1
Y2
Y3
Xy
00
01
10
11
f(x,y)
1
i
1
i
f(x,y) = y’+i = Ixy’(7).
Фигура 2.
2.1. AxmAym -> f(x,y)
M
X
Y1
Y2
Y3
Y4
xy
00
01
10
11
f(x,y)
1
i
i
i
341
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)
Фигура 3.
3.2. AmxEmy -> f(x,y)
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
i
1
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
Y
342
xy
00
01
10
11
f(x,y)
1
1
0
1
f(x,y) = x'+y = Axy.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my
M(x,y) = x’+y = Axy.
После снтеза всех 64 силлогизмов получим следующие
правильные модусы:
1-я фигура: AAAyx,
AEIxy’(3),AIIxy(5),EAExy,EEIx’y’(3),EIIx’y(5),IAIxy’(3), IEIxy’(7).
2-я фигура: AAIx’y’(3),
AEExy,AIIx’y(3),EAExy,EEIx’y’(3),EIIx’y(5),IAIxy’(3),
IEIxy’(7).
3-я фигура: AAIxy(3), AEIxy’(3),AIIxy(5),
EAIx’y(3),EEIx’y’(3),EIIx’y(5),
IAIxy(7),IEIxy’(7).
4-я фигура: AAAxy,
AEExy,AIIx’y(3),EAIx’y(3),EEIx’y’(3),EIIx’y(5),IAIxy(7),
IEIxy’(7).
Заключение
1.Впервые разработан общеразговорный логический базис, названный
автором русским базисом.
2.Впервые на основе русского базиса разработана силлогистика, названная автором русской силлогистикой.
343
Глава шестая
Общеразговорная силлогистика.
В главе, посвящённой рассмотрению различных силлогистических базисов, были получены выражения для силлогистических функторов Ixy, удовлетворяющих требованию Ixy ->
Ixy’[9].Наиболее интересным из них является общеразговорный функтор , выражающийся следующей формулой [27]:
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
344
Из скалярных диаграмм видно, что выполняется следующее соотношение, которое абсолютно соответствует логике
здравого смысла:
Ixy  Ixy’ Ix’y’  Ix’y.
Собственно говоря, все 4 диаграммы представляют один
и тот же частноутвердительный функтор Ixy(8). На основе этого функтора можно построить базис общеразговорной силлогистики, которая как и русская силлогистика, служит основанием логики здравого смысла. Предлагаемый базис соответствует всем требованиям Н. А. Васильева и имеет вид:
Axy = (xy’)’ = x’+y
Exy = (xy)’ = x’+y’
Ixy = x+y+x’y’ = 1
Вполне естественно, что этот базис носит имя русского
логика. Заключения, полученные при просмотре всех модусов
в общеразговорной силлогистике, отличаются от заключений,
полученных в русской силлогистике, лишь для двух модусов.
Рассмотрим некоторые модусы.
1.9.ImxAym -> f(x,y) = 1(i)
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
1
i
1
i
f(x,y) = y'+iy= Ixy’(7).
По алгоритму ИЭИ получен такой же результат.
M = ImxAym = 1(y’+m) = y’+m
F(x,y) = y’+i = Ixy’(7)
В связи с симметричностью Ixy модус 2.9 по заключению
совпадает с модусом 1.9.
345
2.10.IxmEym -> f(x,y)
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
1
i
1
i
f(x,y) = y'+iy= Ixy’(7).
Синтез силлогизмов в базисе Васильева более прост по
сравнению с базисом Аристотеля-Жергонна. Для модусов,
содержащих частноотрицательные посылки, графический синтез заключений невозможен, поскольку не существует скалярного представления частноотрицательного суждения. В результате графического синтеза заключений по алгоритму
ТВАТ были получены следующие модусы.
1-я фигура: AAAyx,
AEIxy’(3),AIIxy(5),EAExy,EEIx’y’(3),EIIx’y(5),IAIxy’(7),
IEIxy’(7).
2-я фигура: AAIx’y’(3),
AEExy,AIIx’y(5),EAExy,EEIx’y’(3),EIIx’y(5),IAIxy’(7),
IEIxy’(7).
3-я фигура: AAIxy(3), AEIxy’(3),AIIxy(5),
EAIx’y(3),EEIx’y’(3),EIIx’y(5),
IAIxy(7),IEIxy’(7).
4-я фигура: AAAxy,
AEExy,AIIx’y(5),EAIx’y(3),EEIx’y’(3),EIIx’y(5),IAIxy(7),
IEIxy’(7).
Расссмотрим несколько содержательных примеров.
Пример 1.
Все квадраты(m) суть прямоугольники(x)
Все квадраты(m) суть ромбы(y)
f(x,y) = ?
346
Решение.
По алгоритму ИЭИ получим:
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
X
Y
xy
00
01
10
11
f(x,y)
1
1
1
1
Если в качестве универсума выберем лишь множество, состоящее из прямоугольников и ромбов, то получим иной результат.
M
X
Y
xy
00
01
10
11
f(x,y)
0
1
1
1
f(x,y) = x+y = Ax’y = Ay’x = Ixy(6).
347
Если в силлогизме
Все люди(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
00
01
10
11
f(x,y)
1
i
1
i
f(x,y) = y’+iy = Ixy’(7)
Мы получили менее жёсткий результат, но он логически
обоснован: Сократ не может быть одновременно и человеком,
и животным, поэтому у нас в скалярных диаграммах отсутствует ситуация Ixy. Этот пример ещё раз подтверждает
мысль о бесполезности модусов, о необходимости абсолютно
конкретного аналитического или графического представления
каждой посылки. К сожалению, в аналитике обе посылки данного силлогизма идентичны, что не соответствует действительности. В этом заключается один из недостатков аналитического синтеза силлогизмов.
Пример 2.
Провести синтез силлогизма:
Все люди (m) смертны (x)
Некоторые люди (m) неграмотны (y)
-----------------------------------------------f(x,y) = ?
348
Решение.
Пусть в универсум входят люди, животные и боги. Богов
будем считать грамотными.
M = AmxImy(8) = (m'+x) & 1 = m'+x
f(x,y) = x+i = Ixy(5)
Проверим заключение по алгоритму ТВАТ.
M
X
Y
xy
00
01
10
11
f(x,y)
1
0
1
1
f(x,y) = y'+x = Ayx, что не совпало с аналитическим решением, поскольку в аналитике мы не учли грамотность богов.
Если мы посчитаем богов неграмотными, то заключение
снова изменится.
M
X
Y
xy
00
01
10
11
f(x,y)
0
1
1
1
f(x,y) = x+y = Ax'y = Ay'x
349
Рассмотрим этот же силлогизм, но в отсутствии богов, т.е.
не включим их в универсум.
M
X
Y
xy
00
01
10
11
f(x,y)
0
0
1
1
f(x,y) = x = AyxAy’x
Этими вариантами не исчерпываются все ситуации: можно
считать некоторых животных грамотными(дрессированными)
или некторых богов неграмотными.
Пример 3.
Найти заключение следующего силлогизма.
Некоторые люди(m) неграмотны(x)
Некоторые люди(m) не знают русского языка(y)
f(x,y) = ?
Решение.
Примем в качестве универсума смертных живых существ.
M = Imx(6)Imy(6) = (m+x)(m+y) = xy+m
f(x,y) = xy+i = Ixy(3)
M
X
Y1
Y2
Y3
350
xy
f(x,y)
00
i
01
i
10
i
11
1
f(x,y) = xy+i = Ixy(3)
В этом силогизме нарушено 3-е (главное) правило посылок: из двух частных посылок заключения с необходимостью
не следует[16]. На многих других примерах мы убедились, что
и остальные правила посылок не безусловны. Тем не менее
ещё раз проверим корректность этих правил.
Первое правило посылок звучит так: из двух отрицательных посылок заключение не следует.
Пример 4.
Найти заключение для отрицательных посылок.
M = EmxEym = (m’+x’)(y’+m’) = x’y’+m’
f(x,y) = x’y’+i = Ix’y’(3)
M
X
Y1
Y2
Y3
Y4
xy
00
01
10
11
f(x,y)
1
i
i
i
fx,y) = x’y’+i = Ix’y’(3)
Алгоритмы «ИЭИ» и «ТВАТ» дали одинаковые результаты,
опровергающие 2-е правило посылок.
351
Второе правило посылок формулируется следующим образом: если одна из посылок отрицательна, то и заключение
должно быть отрицательным. Проверим и это правило.
Пример 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
00
01
10
11
f(x,y)
i
1
i
i
f(x,y) = x’y+i = Ix’y(3)
Аналитический и графический алгоритмы дали одинаковые
заключения, не подтверждающее 2-е правило посылок.
Третье правило мы уже рассмотрели, поэтому проверим
четвёртое правило, которое выглядит так: если одна из посылок – частное суждение, то и заключение должно быть частным.
Пример 6.
M = AmxImy(6) = (m’+x)(y+m) = xy+m’y+mx
f(x,y) = x+y = Ax’y = Ay’x
M
X
Y
352
xy
00
01
10
11
f(x,y)
0
1
1
1
f(x,y) = x+y = Ax’y = Ay’x
Опять алгоритмы «ИЭИ» и «ТВАТ» дали одинаковые результаты, опровергающие правила посылок. Таким образом,
мы доказали, что правила посылок не безупречны.
Для корректного синтеза силлогизмов требуется выполнение определённых условий.
1. Правильная формулировка посылок("Нек.животные олени", силлогизм о сахаре и т.п. ляпсусы).
2. Строгий выбор базиса("англичане - трусы").
3. Выбор универсума ("ромб - прямоугольник - квадрат"+примеры 1 и 2).
4. Учёт всех необходимых условий(квадрат - прямоугольный ромб+пример 2).
5. Модусы, даже правильные, далеко не всегда эталон
правильного синтеза заключения.
6. Все 4 классических правила посылок [16] не абсолютны.
Пример 7.
В [16,стр.164] дан следующий силлогизм.
Некоторые сорта герани(a) красного цвета(b).
Все эти цветы(c) – красные(b).
Найти заключение.
Решение.
M = IabAcb = c'+b
f(a,c) = c'+i = Iac'(7)
B
A
C1
C2
C3
353
Ac
00
01
10
11
f(a,c)
1
I
1
I
f(x,y) = c'+ic= Iac'(7). Аналитический и графический алгоритмы дали одинаковые результаты. В [16,стр.165] утверждается, что заключения нет.
Пример 8.
Проверим один из соритов Л.Кэрролла, который в
[16,стр.172] приведён к следующему виду.
1. Ни одно А не есть не-В.
2. Ни одно С не есть не-D.
3. Все Е суть Н.
4. Ни одно D не есть В.
5. Ни одно не С не есть Н.
--------------------------------Все А есть не-Е
Все Е есть не-А
Решение.
По алгоритму ИЭИ получим:
М = 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
354
Из скалярных диаграмм абсолютно очевидна вся тривиальность сорита и легко выводится заключение
f(a,e) = a'+e' = Eae.
Пример 9.
Рассмотрим ещё один сорит[19,стр.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’
Из этого уравнения мы можем получить множество интересных заключений, заменяя лишние переменные единицами (алгоритм «Импульс – С» и [46]).
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
Из этих заключений следует весьма нелестный вывод о
«ваших» поэмах: все они неинтересные, непризнанные, излишне аффектированные, в чём и проявляется их современность. Можно бесконечно (в пределах определённого числа
сочетаний) продолжать список заключений, каждое из которых
выводится в считанные секунды, но мы остановимся на вышеприведённом перечне. Необходимо подчеркнуть, что автор
этого сорита получил лишь одно-единственное заключение.
Почему-то традиционная силлогистика считает, что из каждого
сорита можно получить лишь один вывод.
355
Пример 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
00
01
10
11
f(a,c)
i
i
1
1
f(a,c) = a+ia’= Iac (5)
Графическое решение даёт более строгий результат.
Готфрид Вильгельм Лейбниц сформулировал и доказал
теоремы [21]:
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
356
Поскольку все вышеизложенные алгоритмы просты и прозрачны, то не составят труда для квалифицированного программиста при реализации программы “логической машины”
[43, стр. 350]. Автором были созданы соответствующие программы для первых версий алгоритмов анализа и синтеза
силлогизмов. Три программы были написаны за неделю, но
оказались относительно громоздкими и устарели в связи с модернизацией алгоритмов синтеза силлогизмов.
Заключение
1.Впервые разработан базис общеразговорной силлогистики, названный
автором базисом Н. А. Васильева.
2.Впервые на основе указанного базиса разработана
общеразговорная силлогистика.
3.Впервые обнаружена зависимость заключения от объёма универсума.
4.Доказано, что все 4 классических правила посылок [42]
не абсолютны.
357
Глава седьмая
Атомарная силлогистика.
Внимательный анализ силлогизмов приводит к выводу о
том, что даже базисы логики здравого смысла не всегда корректно выражают содержание посылок. Проиллюстрируем это
следующим силлогизмом (см. пример 5).
Все солдаты (х) храбрые(m)
Некоторые англичане(y) храбрые(m)
---------------------------------Некоторые англичане – солдаты
Решение.
Представим 2-ю посылку в русском базисе.
M
Y1
Y2
Правомерно ли использование во второй посылке русского базиса? По меньшей мере, допущена некорректность по
отношению к англичанам и нарушена достоверность посылки.
Исходя из скалярной диаграммы для Imy(2) и полагая универсумом все человечество, приходим к выводу, что возможны
ситуации, когда все трусы - англичане. Это несправедливо.
Правильным в этом случае будет использование базиса Васильева. Рассмотрим посылку, которая не вписывается ни в
один из базисов. Суждение "Все люди (х) смертны (у)" при
условии, что универсумом являются живые существа, описывается следующей формулой: Axy = y. Посылка "Ни один живой человек(x) не есть труп(y)" также имеет нестандартное
аналитическое представление: Exy = xy'+x'y. Многообразие
базисов приводит к мысли о том, что разумнее иметь некий
элементарный базис, на основе которого можно как из кирпичиков (атомов) строить описание любой посылки. Автор предлагает следующий "атомарный" базис.
358
Все Х суть Y.
a)
X
Y
xy
00
01
10
11
f(x,y)
1
1
0
1
Axy(a) = x'+y
Иллюстрация: "Все квадраты(x) суть прямоугольники(y)".В
данном случае универсум - параллелограммы.
b)
X
Y
xy
00
01
10
11
f(x,y)
0
1
0
1
Axy(b) = y
Иллюстрация: "Все люди(x) смертны(y)" при условии, что
универсум – смертные существа.
359
Ни один X не есть Y.
a)
X
Y
xy
00
01
10
11
f(x,y)
1
1
1
0
Exy(a) = (xy)' = x'+y'
Иллюстрация: "Ни один круг(x) не есть квадрат(y)"(универсум - геометрические фигуры).
b)
X
Y
xy
00
01
10
11
f(x,y)
0
1
1
0
Exy(b) = xy'+x'y
Иллюстрация: "Ни один живой (х) не есть труп (у)"
Некоторые X суть Y.
a)
X
Y
360
xy f(x,y)
00
1
01
1
10
1
11
1
Ixy(a) = x+y+x'y' = 1
Иллюстрация: " Некоторые студенты (х) отличники (у)".
Универсум учащиеся.
b)
X
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) - равнозначность;
361
Exy(a) = Axy'(a);
Exy(b) = (y=x') - неравнозначность;
Ixy(b) = Ax'y(a).
Таким образом, элементарный атомарный базис в качестве
фундамента имеет всего лишь два силлогистических функтора:
Axy = x'+y,
Ixy = x+y+x'y' = 1
Опишем на основе этих формул все базисы здравого смысла
и базис Аристотеля.
Русский базис.
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)
Число в скобках (индекс) указывает вариант базиса. Базис заключения может быть не только атомарным, но и смешанным
(русский, общеразговорный, Аристотеля и т.д.). Базис посы362
лок, как правило, должен быть атомарным. Рассмотрим синтез
соритов, т.е. многопосылочных силлогизмов. Никаких проблем здесь не существует, если логик хорошо знает карту
Карно или метод обобщенных кодов для минимизации
логических функций[23].При числе посылок более 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 посылок сорита заданы в атомарном базисе, а шестая - в русском.
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).
363
Заключение получено в 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
00
01
10
11
f(x,y)
0
1
1
1
F(x,y) = x+y = Ixy(6) = Ax’y = Ay’x, т.е. результаты всех методов синтеза совпали.
7.1. Практикум по силлогистике.
В своей книге “Логика для студентов” О. А. Солодухин
приводит большое количество задач.Это первый гуманитарий,
который пытается привлечь математику для анализа силлогизмов. Проверим эти задачи алгоритмами ИЭИ и ТВАТ.
364
В дальнейшем все примеры будут построены на базисе
Васильева,поскольку именно он более всего отражает логику здравого
смысла. Напомним, что этот базис имеет следующее аналитическое представление:
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’
6. Ixy = x+y
7. Ixy = y+iy’
8. Ixy = x+y+x’y’ = 1 – базис Васильева
Пример[19]
Только философы эгоисты.
Нет циника, который не был бы эгоистом.
Следовательно, все циники – философы.
Решение.
Пусть x – философы, y – циники, m – эгоисты. Универсум
– люди. Тогда по алгоритму ИЭИ получим:
M = AmxAym = (m’+x)(y’+m) = m’y’+xy’+mx
F(x,y) = y’+x = Ayx, т.е. наш результат подтвердил истинность заключения.
Проверим решение по алгоритму ТВАТ.
M
X
Y
365
xy
00
01
10
11
f(x,y)
1
0
1
1
F(x,y) = y’+x = Ayx, т.е. результаты по алгоритмам ИЭИ и
ТВАТ совпали.
Задача 2[41,стр.150]
Лишь глупые люди верят в конец света.
Тот, кто верит в гармонию мира, не верит в конец света.
Всегда найдётся глупец, который не верит в гармонию
мира.
Решение.
Пусть х – глупые люди, m – верящие в конец света, у –
верящие в гармонию мира. Универсум – люди.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’
f(x,y) = xy’+i = Ixy’(3)
M
X
Y1
Y2
Y3
хy
00
01
10
11
f(x,y)
i
i
1
i
F(x,y) = xy’+i = Ixy’(3).
Если трактовать заключение как “Все глупцы не верят в
гармонию мира”, то такой вывод ошибочен.
366
Задача 3[19]
Каждого, кто верит в себя, можно считать Человеком.
Никто, ни один Человек не верит политикам.
Все, кто верит политикам, не верит в себя.
Решение.
Пусть х – кто верит в себя, m – Человек, у – кто верит политикам. Универсум – люди.
M = (x  m)Emy = (xm+x’m’)(m’+y’) = x’m’+xmy’
f(x,y) = x’+y’ = Exy.
M
X
Y
Xy
00
01
10
11
f(x,y)
1
1
1
0
F(x,y) = x’+y’ = Exy = Ayx’ = Axy’.
Задача 5[19]
Нет таких членов парламента, которые не участвовали
бы в законотворчестве.
Только 12% членов парламента составляют юристы.
Не все, кто создают законы, являются юристами.
Решение.
Пусть x – законотворцы, m – члены парламента, y – юристы. Универсум – люди.
M = AmxImy(8) = (m’+x)&1 = m’+x
F(x,y) = x+i = Ixy(5).
M
X
Y1
Y2
Y3
367
xy
00
01
10
11
f(x,y)
i
i
1
1
F(x,y) = x+i = Ixy(5), т.е. алгоритмы ИЭИ и ТВАТ дали
одинаковые результаты,формально не подтверждающие
заключение, поскольку в нём не указан базис.
Задача 7[19]
M
Среди юристов имеются профессиональные бизнесмены.
Настоящий бизнесмен не боится инфляции.
Некоторые юристы не опасаются инфляции.
Решение.
Пусть x – юристы, m – бизнесмены, y – не боящиеся инфляции предприниматели. Универсум – люди.
M = IxmAmy = 1*(m’+y) = m’+y
F(x,y) = y+i = Ixy(7).
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
1
i
1
F(x,y) = y+i = Ixy(7).
Опять формальное несовпадение исходного заключения
с полученными результатами, поскольку в заключении не
указан базис.
368
Задача 8[41,стр.151]
Только политики верят в пользу насилия.
Не всякий любитель насилия любит собственных детей.
Некоторые политики не любят своих детей.
Решение.
Пусть x – политики, m – любители насилия, y – не любящие своих детей родители.Универсум – люди.
M = AmxImy(8) = (m’+x)&1 = m’+x
F(x,y) = x+i = Ixy(5)
M
X
Y1
Y2
xy
00
01
10
11
f(x,y)
i
i
1
1
F(x,y) = x+i = Ixy(5)
Опять формальное несовпадение результатов с исходным заключением.
Задача 9[19]
Только в споре рождается истина.
Никто не станет спорить, кроме глупца или мошенника.
Лишь глупец или мошенник могут достичь истины.
Решение.
Пусть x – “родители истины”, m – спорщики, y – глупец
или мошенник. Универсум – люди.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my
F(x,y) = x’+y = Axy.
M
X
Y
369
xy
00
01
10
11
f(x,y)
1
1
0
1
F(x,y) = x’+y = Axy.
Задача 12[19]
Боязливый к прекрасному полу – боязлив и в жизни.
Тот, кто знает логику, не боится женщин.
Трус не разбирается в логике.
Решение.
Пусть x – боязливый в жизни, m – боящийся женщин, y –
знающий логику. Универсум – мужчины.
M = AmxEym = (m’+x)(y’+m’) = m’+xy’,
F(x,y) = xy’+i = Ixy’(3).
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
i
1
i
F(x,y) = xy’+i = Ixy’(3).
В данном случае исходное заключение кардинально
ошибочно.
370
Задача 13[19]
Среди болтунов нет логиков.
Только болтун может стать политиком.
Ни один логик не станет политиком.
Решение.
Пусть x – логик, m – болтун, y – политик. Универсум –
люди.
M = EmxAym = (m’+x’)(y’+m) = m’y’+x’y’+mx’
F(x,y) = x’+y’ = Exy.
M
X
Y
Xy
00
01
10
11
f(x,y)
1
1
1
0
F(x,y) = x’+y’ = Exy.
Задача 14[19]
Иногда проходимец может оказаться ясновидцем.
Если ты ясновидец, то не должен лгать.
Существуют проходимцы, которые обязаны говорить
правду.
Решение.
Пусть x – проходимец, m – ясновидец, y – честный. Универсум – люди.
M = IxmAmy = 1&(m’+y) = m’+y
F(x,y) = y+i = Ixy(7)
M
X
Y1
Y2
371
xy
00
01
10
11
f(x,y)
I
1
I
1
F(x,y) = y+i = Ixy(7)
Задача 15[19,стр.152]
Лишь двоечник по убеждению – лентяй.
Ни один студент не любит получать двойки.
Значит, среди студентов нет лентяев.
Решение.
Пусть x – лентяй, m – двоечник, y – студент.Универсум –
учащиеся.
M = AxmEym = (x’+m)(y’+m’) = x’y’+my’+m’x’
F(x,y) = x’+y’ = Exy.
m
x
y
xy
00
01
10
11
f(x,y)
1
1
1
0
F(x,y) = x’+y’ = Exy.
Задача 16[19,стр.152]
Лишь в правовом государстве реализуются права граждан.
Только демократическое государство может быть правовым.
Права граждан могут быть реализованы лишь в демократическом государстве.
Решение.
Пусть x – реализующее права граждан государство, m –
правовое государство, y – демократическое государство.
Универсум – государство.
M = AxmAmy = (x’+m)(m’+y) = m’x’+x’y+my = m’x’+my
F(x,y) = x’+y = Axy.
372
M
X
Y
xy
00
01
10
11
f(x,y)
1
1
0
1
F(x,y) = x’+y = Axy.
Особый класс рассуждений составляют логические конструкции, в которых вместо связки «есть»(«суть») используется любой другой глагол. В книге Вагина В.Н. «Дедукция и
обобщение в системах принятия решений» – М.: Наука, 1988
на стр.44 приводится пример 2.18:
Некоторые студенты(m) любят(z) всех преподавателей(x).
Ни один студент(m) не любит(z) ни одного невежду(y).
Следовательно, ни один преподаватель не является
невеждой.
Этот силлогизм(?!) якобы анализируется с помощью
“кванторного исчисления”, которое ничего кроме мнемоники из
себя не представляет. На двух страницах приводится “доказательство” истинности заключения. Однако 5 минут здравого
размышления дают совершенно иной ответ. Поэтому проверим результат с позиций Русской логики.
Вариант 1.
Не очень обоснованно, но будем считать глагол “любить”
эквивалентом обычной связки “есть”. Тогда по алгоритму ИЭИ
получим:
M = ImxEmy = m’+y’.
F(x,y) = y’+i = Ixy’(7).
Поскольку обоснованность замены глагола “любить” связкой “есть” весьма сомнительна, то проверим заключение по
варианту 2.
373
Вариант 2.
Учтём глагол «любить» как ещё одну логическую переменную z. Тогда по алгоритму ИЭИ получим:
M = Im(zx)Em(zy) = m’+(zy)’ = m’+z’+y’.
F(x,y) = i+i+y’ = y’+i = Ixy’(7), т.е. “Некоторые преподаватели – не невежды”, что и требовалось доказать.
7.2. Практикум по решению соритов.
Сорит – это умозаключение, в котором из нескольких посылок
в классической логике выводится, как правило, одно заключение. Посылки в сорите, за редчайшим исключением, являются
общеутвердительными или общеотрицательными. На самом
деле реально посылки могут быть как общего, так и частного
характера. Но самое главное, что заключений в сорите может
быть огромное количество. Оно определяется как число сочетаний из числа посылок по 2, т.е.
K = С(n, 2) = n(n-1)/2, где
К – число заключений, n – число терминов в посылках. Количество абсолютно новых заключений меньше К на число исходных посылок. Если же рассматривать искомые заключения,
как функции от трёх и более переменных, то К значительно
возрастает. Однако при этом теряется прозрачность полученных результатов. Алгоритм «Осташков» для решения соритов
достаточно прост. Он является следствием из алгоритмов
«ИЭИ» (синтез силлогизмов) и «Селигер»(решение логических
уравнений) [28–42]. Аббревиатуры СДНФ (совершенная дизъюнктивная нормальная форма) и МДНФ (минимальная дизъюнктивная нормальная форма) являются традиционными в
классической логике, поэтому не требуют пояснений.
Алгоритм «Осташков»
1. Привести систему уравнений к нулевому виду (исходная система).
2. Заполнить карту Карно нулями в соответствии с термами левых частей исходной системы уравнений, а в оставшиеся клетки вписать единицы. Эти единичные термы представляют собой СДНФ полной единицы системы М.
374
3. Произвести минимизацию совокупности единичных
термов. Полученное соотношение представляет МДНФ уравнения полной единицы системы М.
4. Получить из М все заключения сорита как функции от
двух заданных переменных, заменяя на 1 все «лишние» переменные.
5. Представить результаты в виде скалярных диаграмм.
Пример 1.
«Энциклопедия - Россия-Он-Лайн» излагает пример решения сорита классическим методом. Далее это решение
приводится в виде текста, выделенного курсивом.
Алгебра множеств является подразделом булевых
алгебр,
впервые возникших в трудах Дж.Буля (1815–1864). В аксиомах булевой алгебры
отражена аналогия между понятиями «множества», «событие» и «высказывания».
Логические высказывания можно записать с помощью
множеств и проанализировать с помощью булевой алгебры.
Даже не вдаваясь в детальное изучение законов булевой
алгебры, мы можем получить представление о том, как она
используется на примере одной из логических задач Льюиса
Кэрролла. Пусть у нас имеется некоторый набор утверждений:
1. Не бывает котенка, который любит рыбу и которого
нельзя научить всяким
забавным штукам;
2. Не бывает котенка без хвоста, который будет играть с гориллой;
3. Котята с усами всегда любят рыбу;
4. Не бывает котенка с зелеными глазами, которого
можно научить забавным
штукам;
5. Не бывает котят с хвостами, но без усов.
Какое заключение можно вывести из этих утверждений?
Рассмотрим следующие множества (универсальное множество I включает в себя
всех котят): A – котята, любящие рыбу; B – котята,
обучаемые забавным
375
штукам; D – котята с хвостами; E – котята, которые
будут играть с
гориллой; F – котята с зелеными глазами и G – котята с
усами. Первое
утверждение гласит, что множество котят, которые
любят рыбу, и дополнение
множества котят, обучаемых забавным штукам, не
имеют общих элементов.
Символически это записывается как
1. AC(B) = O.
Аналогичным образом остальные утверждения можно
записать так:
2. C(D)E = O;
3. G М A;
4. BF = O;
5. D М G.
Принимая во внимание теоретико-множественный
смысл символов (или
воспользовавшись законами булевой алгебры), мы можем
переписать
утверждения 1, 2 и 4 в виде
1. A М B;
2. E М D;
4. B М C(F).
Таким образом, мы переформулировали исходные утверждения в следующие:
1. Котят, которые любят рыбу, можно обучить забавным штукам;
2. У котят, которые будут играть с гориллой, есть хвосты;
4. У котят, которых можно обучить забавным штукам,
глаза не зеленые;
Теперь можно расположить символические записи
утверждений в таком порядке,
чтобы последний символ предыдущего утверждения совпадал с первым символом
следующего (этому условию удовлетворяет расположение утверждений в порядке
2, 5, 3, 1, 4). Возникает цепочка включений E М D М G М A
М B М C(F), из
которой можно сделать вывод, что E М C(F) или «Не бывает котенка с
376
зелеными глазами, который будет играть с гориллой».
Такое заключение едва
ли очевидно, если рассматривать пять исходных утверждений в их словесной
формулировке.
Как несложно убедиться, классическая логика при синтезе
соритов громоздка и однобока (даёт одно единственное заключение). Решим этот сорит в соответствии с алгоритмом
«Осташков». Используем все обозначения и универсум из цитируемой энциклопедии.
Тогда наши посылки будут описаны с помощью силлогистических функторов следующим образом:
1. Aab.
2. Aed.
3. Aga.
4. Ebf.
5. Adg.
Для перевода мнемонических записей на язык математики
воспользуемся Руской логикой[38]: Axy = x’+y; Exy = x’+y’;
Ixy(8) = 1. Здесь и далее во всех аналитических выражениях
апостроф представляет инверсию аргумента или функции.
Переходим к выполнению алгоритма “Осташков”. Вначале
находим полную единицу системы М как логическое произведение всех исходных посылок.
1. M = AabAedAgaEbfAdg = (a’+b)(e’+d)(g’+a)(b’+f’)(d’+g).
Поскольку перемножать 5 двучленов утомительно, то переходим к M’ с помощью правила Де Моргана:
M’ = ab’+d’e+a’g+bf+dg’
2 и 3. После заполнения карты Карно и минимизации получим:
M = a’b’d’e’g’+bd’e’f’g’+abd’e’f’+abdf’g
377
4. Перебирая все комбинации из шести переменных по 2 получим 15 заключений:
f1(a,b) = a’b’+b+ab+ab = a’+b = Aab;(Все котята-“рыболюбы”
обучаются забавным штукам)
f2(a,d) = a’d’+d’+ad’+ad = a+d’ = Ada;(Все котята с хвостами
любят рыбу)
f3(a,e) = a’e’+e’+ae’+a = a+e’ = Aea;(Все играющие с гориллой
любят рыбу)
f4(a,f) = a’+f’+af’+af’ = a’+f’ = Eaf;(Все зеленоглазые не любят
рыбу)
f5(a,g) = a’g’+g’+a+ag = a+g’ = Aga;(Все усатые любят рыбу)
f6(b,d) = b+d’ = Adb;(Все хвостатые обучаются забавным штукам)
f7(b,e) = b+e’ = Aeb;(Все играющие с гориллой обучаются забавным штукам)
f8(b,f) = b’+f’ = Ebf;(Зеленоглазые не обучаются забавным штукам)
f9(b,g) = b+g’ = Agb;(Все усатые обучаются забавным штукам)
f10(d,e) = e’+d = Aed;(Все играющие с гориллой имеют хвосты)
f11(d,f) = d’+f’ = Edf;(Все зеленоглазые – бесхвостые)
f12(d,g) = d’+g = Adg;(Все хвостатые – с усами)
f13(e,f) = e’+f’ = Eef;(Зеленоглазые не будут играть с гориллой)
f14(e,g) = e’+g = Aeg;(Все играющие с гориллой имеют усы)
f15(f,g) = g’+f’ = Efg.(Зеленоглазые – без усов).
Поскольку универсум – котята, то во всех заключениях речь
идёт только о них. Отобразим исходные посылки на скалярных диаграммах в таком порядке: AabAgaAdgAedEbf. Из диаграмм легко получаются все 15 заключений.
A
B
D
E
F
G
378
Для разнообразия построим ещё одно заключение в виде
функции от трёх переменных.
f16(a,b,d) = a’b’d’+bd’+abd’+abd = a’d’+ab =(a+d)’+ab =
A(a+d)(ab), т.е. “Все рыболюбы или обучаемые забавным штукам суть хвостатые рыболюбы”. Такое заключение подтверждается и скалярными диаграммами. Кстати, диаграммы дают
более разнообразные заключения. Кроме полученного из М
аналитически f16(a,b,d) из диаграмм можно вывести заключение f17(a,b,d) = A(ad)b и т.д.
Из анализа результатов можно сделать следующие выводы:
1.
Полученные функции f1(a, b),f5(a, g),f8(b, f),f10(d,
e),f12(d, g) соответствуют исходным посылкам 1,3,4,2,5, что
подтверждает правильность результатов синтеза.
2.
Даже все синтезированные заключения не дают
наглядного представления о взаимном соотношении множеств
a,b,d,e,f,g. С этой задачей могут справиться лишь скалярные
диаграммы.
Рассмотренный пример чрезвычайно прост. Такой примитивностью грешат все сориты (по определению), поскольку
они представляют «цепочки» вложенных друг в друга посылок,
когда из одной посылки легко выводится другая.
Попробуем решить более сложную задачу, когда посылки
не укладываются в прокрустово ложе традиционного сорита.
Пример 2.
Пусть заданы 4 суждения: Aa’c, Aa’d, Ab’c, Ab’d. Если
исходные посылки из предыдущего примера можно было сразу представить в виде скалярных диаграмм и тем самым получить готовое решение сорита, то в данном примере так не получится. Решение по алгоритму «Осташков» выглядит следующим образом.
M = Aa’c Aa’d Ab’c Ab’d = (a+c)(a+d)(b+c)(b+d).
M’ = a’c’+a’d’+b’c’+b’d’.
После занесения в карту Карно и минимизации получим:
M = ab+cd.
379
f1(a,b) = ab+1 = 1 = Iab(8);
f2(a,c) = a+c = Aa’c;
f3(a,d) = a+d = Aa’d;
f4(b,c) = b+c = Ab’c;
f5(b,d) = b+d = Ab’d;
f6(c,d) = 1+cd = 1 = Icd(8).
Полученные функции f2 – f5 совпали с исходными посылками, что подтвердило корректность синтеза, но впредь лишнюю работу делать не обязательно: можно было построить
лишь f1, f6. Пример 2 впервые показывает, что заключение
сорита может быть частно-утвердительным. По результатам
синтеза построим скалярные диаграммы. Поскольку такой
процесс эвристического построения несколько затруднителен,
то предлагается использовать с этой целью сокращённую
таблицу истинности для М и формализовать синтез скалярных
диаграмм.
dcba
0011
0111
1011
1111
1100
1101
1110
M
1
1
1
1
1
1
1
A
B
C
D
0011 0111 1011 1111 1100
1101 1110
380
Как несложно догадаться, скалярные диаграммы представляют собой двоичные коды рабочих наборов полной единицы
системы М.
Иногда возникает задача восстановить по известной
полной единице системы М исходные посылки. Алгоритм разложения логического уравнения на исходные посылки прост.
Алгоритм графического нахождения исходных посылок.
1. Построить сокращённую таблицу истинности для М.
2. По сокращённой таблице истинности построить скалярные
диаграммы.
3. Из скалярных диаграмм выбрать C(N,2) логических функций
от двух переменных, где N – число аргументов, а C(N,2) – число сочетаний из N по 2.
Пример 3.
В задаче Порецкого о птицах получена полная единица
системы:
M = sy+gx’. Найти минимальное количество возможных посылок.
Построим сокращённую таблицу истинности для М.
По полученной таблице истинности нарисуем скалярные
диаграммы.
G
S
X
Y
0101 0111
1101 1111
1000
1001 1100
381
По скалярным диаграммам выберем наиболее простые
логические функции от двух переменных:
f1(g,s) = g+s = Ag’s;
f2(g,y) = g+y = Ag’y;
f3(s,x) = s+x’ = Axs;
f4(y,x) = x’+y = Axy.
После перемножения полученных посылок определим M:
M = (g+s)(g+y)(x’+s)(x’+y) = (g+sy)(x’+sy) = sy+gx’, что совпадает
с исходными данными. Кстати, у Порецкого вместо 4-х посылок использованы 5. Т.е. для описания логической системы от
n переменных достаточно n двухаргументных посылок. Однако
это одно из возможных решений задачи: в результате мы можем получить f5(g,x) = Egx. Поэтому правильным решением
будет полный перебор всех двухаргументных посылок. Из М
следует, что f5(g,x) = 1 = Ixy(8), но никак не Egx.
Алгоритм аналитического отыскания исходных посылок.
По заданной полной единице системы построить C(N,2) посылок сорита как функций от двух переменных, заменяя на 1
все «лишние» переменные. Здесь N – число аргументов.
Проверить полученные результаты логическим перемножением посылок и сравнением
с заданной полной единицей системы.
Пример 4.
Пусть задано M = m’+xy. Найти исходные посылки.
f1(m, x) = m’+x = Amx;
f2(m, y) = m’+y = Amy.
M = (m’+x)(m’+y) = m’+xy, что и требовалось доказать. Однако
данный пример не так прост, как кажется на первый взгляд.
Здесь кроется подвох, связанный с отысканием f3(x,y). Поэтому из М находим третью посылку f3(x,y) = 1 = Ixy(8). Именно
эти три посылки однозначно определяют всю систему М.
При графическом методе по заданной М построим таблицу
истинности, а по ней нарисуем скалярные диаграммы.
mxy f(x,y)
000
1
001
1
010
1
011
1
111
1
382
M
X
Y
000 001
010
011
111
Из скалярной диаграммы видно, что на самом деле M =
AmxAmyIxy(8). Если не использовать графический алгоритм
поиска посылок, то можно было бы получить f3(x,y) = Axy,
f4(x,y) = Ayx и т.д.
Задача 5
Если Бог существует, то он всемогущ и всеблаг. Бог или
бессилен предотвратить зло, или он не желает предотвращать
его(зло существует на Земле). Если Бог всемогущ, то неверно,
что он бессилен предотвратить зло. Если Бог всеблаг, то неверно, что он не желает предотвращать зло. Вывести все возможные заключения.
Решение.
X – Бог всемогущ,
Y – Бог всеблаг,
Z – Бог существует,
U – зло существует,
V – Бог бессилен против зла,
W – Бог желает предотвратить зло.
Рассматривая эту задачу в разделе «Логика суждений»,
мы пришли к выводу о невозможности существования Бога(при условии, что все посылки корректны). Однако, этот вывод далеко не единственный из заданных посылок. Чтобы
найти все 15 двуаргументных заключения, необходимо вначале получить полную единицу системы:
M = (z  xy)u(u  (v+w’))(x  v’)(y  w) =
= (z’+xy)u(u’+v+w’)(x’+v’)(y’+w).
Чтобы не перемножать все посылки, воспользуемся формулой де Моргана.
M’ = z(x’+y’)+u’+uv’w+xv+yw’.
383
После занесения нулей в карту Карно в соответствии с M’
и заполнения оставшихся пустыми клеток карты Карно единицами получим в результате минимизации:
M = x’y’z’uv + y’z’uv’w’ + x’z’uvw.
Из М выведем все двуаргументные заключения:
F1(x,y) = x’y’+y’+x’ = x’+y’ = Exy;
F2(x,z) = x’z’+z’ = z’;
F3((x,u) = x’u+u = u;
F4(x,v) = x’v+v’ = x’+v’ = Exv;
F5(x,w) = x’+w+x’w = x’+w’ = Exw;
F6(y,z) = z’;
F7(y,u) = y’u+u = u;
F8(y,v) = y’v+y’v’+v = y’+v = Ayv;
F9(y,w) = y’+y’w’+w y’+w Ayw;
F10(z,u) = z’u = (Auz)’, т.е. «Неверно, что всё зло от Бога»;
F11(z,v) = z’v+z’v’+z’v = z’;
F12(z,w) = z’+z’w’+z’w = z’;
F13(u,v) = uv+uv’+uv = u;
F14(u,w) = u+uw’+uw = u;
F15(v,w) = v+v’w’+vw = v+w’ = Awv.
Задача 6.
Дано: M = A(a+b)c & A(c+d)e.
Найти все логические функции от двух переменных.
Решение.
M = A(a+b)c & A(c+d)e = (a’b’+c)(c’d’+e) = a’b’c’d’+a’b’e+ce.
Отсюда легко могут быть получены все функции от двух переменных (см.алгоритм «Осташков» и работу Порецкого). Однако в таком решении нет наглядности, оно непрозрачно. Поэтому построим таблицу истинности, а по ней – мои скалярные
диаграммы.
abcde M
00000 1
00001 1
00011 1
00101 1
00111 1
01101 1
01111 1
10101 1
10111 1
11101 1
11111 1
384
a
b
c
d
e
Из диаграмм видны все соотношения между множествами (логическими переменными a – e).
Выводы.
1. Анализ силлогистик здравого смысла (русской и общеразговорной) привел к выводу о том, что наряду с использованием этих силлогистик необходимо построение атомарной
силлогистики.
2. Впервые разработана атомарная силлогистика и даны
методы синтеза атомарных силлогизмов и примеры их использования для решения конкретных задач.
3. Впервые представлены методы синтеза соритов.
4. Показано, что для каждой содержательной посылки нужно использовать свой конкретный базис.
385
Глава восьмая
Естественный вывод и кванторы.
В главе под таким названием в [44] излагается вывод
умозаключений из нескольких посылок. Это может быть непосредственное умозаключение, простой категорический силлогизм или сорит. Но суть не в названии, а в методах получения
результатов. В [44] для анализа умозаключений (доказательства корректности формулы) применяются кванторы. Автор
при доказательстве применяет вспомогательные выводы с достаточно обременительными правилами. Приведём пример
одного такого доказательства[44,стр.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
Без кванторов также можно анализировать сориты, т.е.
умозаключения с тремя и более посылками. Из [44] позаимствуем для доказательства формулу, которая без кванторов
примет вид:
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).
386
A
B
X
C1
C2
xc
00
01
10
11
f(x,c)
i
1
1
1
f(a,c) = x+c+ix’c’= Ixc (2)
Полученные по алгоритмам «Осташ-Т» и «ТВАТ» результаты подтверждают достоверность анализируемого сорита.
Поскольку каждый сорит, в конце концов, приводится к силлогизму, то анализ и синтез соритов можно проводить по алгоритмам «Осташ», »ИЭИ» и «ТВАТ». В данном сорите после
приведения его к силлогизму средним термином является переменная a.
Доказательство ложности непосредственного умозаключения «поскольку все люди - мужчины или женщины, то все
люди - мужчины или все люди - женщины» сопровождается в
[44,стр.300] сложными вспомогательными выводами и пространными рассуждениями, что отнюдь не делает доказательство убедительным. Более того, подобные попытки обречены
на неудачу, поскольку в данной ситуации требуется не двоичная, а комплементарная логика. Словесная формулировка
данного умозаключения чрезвычайно аморфна. Это неотъемлемая черта любого естественного языка, с которой приходится мириться. Поэтому для анализа умозаключения прежде
всего необходимо корректно аналитически представить посылку и заключение, для чего изобразим посылку на скалярной диаграмме. Здесь x - люди, m - мужчины, g - женщины.
M
X
G
387
Xmg
000
101
110
111
100
001
010
011
f(x,m,g)
1
1
1
j
j
j
j
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[44, стр.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
На основе инженерной логики суждений доказательство
выглядит ещё проще:
388
(a+b) i(ac) (bc)  ic = a’b’+ac’+j(a’+c)+bc’+ic = 1.
В примере 11.2.3.1[44, стр.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[44]. Получим следующие доказательства.
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.
В книге В. Ф. Беркова “Логика: задачи и упражнения” [
стр. 122] приведена задача из логики отношений, которую
предлагается решать с помощью многоместных предикатов.
Попытаемся её решить без привлечения кванторного исчисления.
Задача 8б.
Выведите заключение из следующих посылок:
Иван дружит с Марьей, Марья дружит с Петром.
Решение.
Примем в качестве универсума множество дружественных отношений(круг друзей). Введём следующие обозначения:
m – множество друзей Марьи, x – множество друзей Ивана, y –
множество друзей Петра.
Тогда по алгоритму ТВАТ получим следующие скалярные
диаграммы.
M
X1
X2
X3
X4
Y1
Y2
Y3
Y4
Y5
389
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 впервые дано русским логиком П. С.
Порецким;
- кванторы не решают проблем анализа и синтеза силлогизмов;
- общеразговорная логика не является двоичной.
390
Глава девятая
Логика П.С.Порецкого.
Платон Сергеевич Порецкий родился 3 октября 1846 г. в
Елизаветграде Херсонской губернии в семье военного врача[52]. В 1870 г. закончил физматфак Харьковского университета. Был оставлен прфессорским стипендиатом на кафедре
астрономии. С 1876 г. избирается астрономом-наблюдателем
Казанского университета. За 1876-79 гг. Порецкий опубликовал 2 тома наблюдений на меридианном круге. Несмотря
на слабое здоровье участвует в общественной жизни университета, являясь секретарем секции физматнаук, казначеем, а
затем и пожизненным членом. Редактирует либеральную газету "Телеграф".
За астрономические исследования в 1886 г. ему присуждается ученая степень доктора астрономии и звание приват-доцента.
Принимал заочное участие в ряде международных научных конгрессов, вел активную переписку как с русскими, так
и иностранными учеными.
П.С.Порецкий умер 9 августа 1907 г. в с.Жоведь
Гродненского уезда Черниговской губернии, куда переехал из
Казани в 1889 г., будучи уже тяжелобольным. Смерть застала
его за неоконченной статьей по логике.
Логикой занимается с 1880 г. В 1881 г. выходит его работа "Изложение основных начал мат.логики ...". В 1881 г. издает свой большой труд "О способах решения логических равенств и об обратном способе математической логики"[46], где
излагает теорию логических равенств, закон форм посылок,
закон замещения системы посылок одной посылкою, закон
разложения посылок на элементы, закон исключения терминов из посылок, закон умозаключений(синтез), закон причин.
Порецкий далёк от претензии построить универсальное логическое исчисление. В предисловии к [46] он чётко заявляет,
что развиваемое им исчисление пригодно лишь для «качественных» умозаключений(«качество» в понимании Порецкого
соответствует одноместному предикату). В логических равенствах Порецкий использует суждения только общего характера(утвердительные или отрицательные). Более того, можно
утверждать, что в случае получения частного заключения эти
методы не работают
391
Работа П.С.Порецкого "Из области математической логики"(1902) является обобщением классической силлогистики.
Синтезируется несколько заключений из заданных посылок(элиминация), что даёт возможность доказать отсутствие
каких-либо других следствий, помимо следствий искомого вида. Элиминацию до сих пор не освоила современная логика.
Аксиоматика Порецкого.
В [46] утверждается, что аксиоматика Порецкого имеет
вид:
a  a,
((a  b)(b  c))  (a  c),
(ab)  a,
(ab)  b,
((a  b)(a  c))  (a  (bc)),
((a  b)(b  a))  (a = b),
(a = b)  (a  b),
(a = b)  (b  a).
Непонятно, почему все эти соотношения называются аксиомами, поскольку они легко и просто доказываются с помощью алгоритма «Импульс».
Воспользуемся алгоритмом «Импульс» для доказательства того, что все аксиомы Порецкого являются теоремами:
1) a  a = a’ + a = 1,
2) ((a  b)(b  c))  (a  c)=((a’+b)(b’+c)) 
(a’+c)=ab’+bc’+a’+c = 1,
3) (ab)  a = a’+b’+a = 1,
4) (ab)  b = a’+b’+b = 1,
5) ((a  b)(a  c))(a  (bc)) = ((a’+b)(a’+c))  (a’+bc) =
ab’+ac’+a’+bc = 1,
6) ((a  b)(b  a))  (a=b)=((a’+b)(b’+a)) 
(a=b)=ab’+ba’+ab+a’b’=1,
7) (a = b)  (a  b) = ab’+ba’+a’+b = 1,
8) (a = b)  (b  a) = ab’+ba’+b’+a = 1.
Стяжкин Н.И.[52] приводит исчисление Порецкого в виде
длинного списка из более чем 20 аксиом и правил:
(1A) e = e – принцип тождества;
(2П) (e=c)  (c=e) – симметричность равенства;
(3П) ((e=c)&(c=b))  (e=b) – транзитивность равенства;
(4A) ee = e – идемпотентность умножения;
(4*A) e+e = e – идемпотентность сложения;
(5A) ec = ce – коммутативность умножения;
392
(5*A) e+c = c+e – коммутативность сложения;
(6A) (ec)b = e(cb) – ассоциативность умножения;
(6*A) (e+c)+b = e+(c+b) – ассоциативность сложения;
(7A) e(e+c) = e – принцип поглощения;
(7*A) e+ec = e – принцип поглощения;
(9П) (e=c)  (e+b=c+b);
(9*П) (e=c)  (eb=cb);
(10A) e(c+b) = ec+eb;
(11A) e+e’ = 1;
(11*A)e&e’ = 0;
(12A) e&0 = 0;
(12*A)e&1 = e.
Нет нужды доказывать, что весь этот набор аксиом и правил на самом деле является набором теорем, которые легко
выводятся по алгоритму «Импульс». Более того, на стр.377
[52] долго и многословно поясняется, как с помощью аксиом и
правил можно доказать одну из теорем логических следствий
Порецкого. Покажем, как просто это делается по алгоритму
«Импульс»(здесь переменная e1 заменена на c):
(e=ec)  (e=e(c+x)) = e(ec)’+e’ec+ec+ex+e’(e’+c’x’) =
ec’+ec+ex+e’ = e+e’ = 1.
Главные задачи Порецкого рассмотрены в разделе, посвящённом решению логических уравнений. Здесь лишь необходимо подчеркнуть, что аналитическое описание силлогистических функторов Axy, Exy впервые в мире ввёл Платон Сергеевич Порецкий, а через 15 лет после него к таким же результатам пришёл Л.Кэрролл. Современная логика до сих пор об
этом не догадывается.
Если внимательно изучать его работу[46], то становится
очевидным, что функтор Axy Порецкий воспринимал как пересечение множеств X и Y. Таким образом по-Порецкому имеем:
Axy  (xxy) = xy + x’(x’+y’) = xy+x’ = x’+ y.
Ayx  (yxy) = xy + y’(x’+y’) = xy+y’ = y’+x.
Exy  (xxy’) = xy’ + x’(x’+y) = xy’+x’ = x’+y’.
Таким образом, вышеприведённые аналитические представления общеутвердительного и общеотрицательного функторов были получены гениальным русским логиком сто двадцать лет назад, а мировая беспомощная наука до сих прозябает в невежестве.
В своей работе, посвящённой теории вероятностей, Порецкий П.С. даёт алгоритм определения вероятности на осно-
393
ве математической логики. Исходя из того, что для несовместных событий вероятность проявления того или иного из этих
событий равна сумме их отдельных вероятностей, великий логик предлагает для дизъюнктных классов m и n известное правило сложения вероятностей
P(m+n) = P(m)+P(n).
Это правило применимо к какому угодно числу несовместных одно с другим событий(логических переменных). Порецкий предлагает правило приведения любого логического
многочлена к дизъюнктому виду:
a+b+c+d+… = a+a’b+a’b’c+a’b’c’d+…
В переводе на современный язык этот алгоритм сводится к
покрытию логической функции непересекающимися прямоугольниками Карно.
Пример.
Если вероятности простых событий х и у суть Р(х) = p и
Р(у) = q, то вероятность сложного события xy’+x’y, уже имеющего дизъюнктный вид, составит p(1-q)+(1-p)q. Вероятность же
сложного события х+у, которое после приведения его к дизъюнктной форме, примет вид x +x’y или y+y’x, выразится так:
p+(1-p)q или q+(1-q)p.
394
Глава десятая
Логика Л.Кэрролла.
Прошло более 100 лет после выхода в свет математических трудов великого английского математика и писателя
Льюиса Кэрролла. В предисловии к «Истории с узелками» [19]
проф. Я.А. Смородинский отмечает многогранность таланта
этого учёного. Анализируя книги и статьи о Л. Кэрролле, он
замечает, что одни авторы склонны видеть в нём лишь поэта,
автора детских сказок об Алисе, другие – посредственного математика, не разобравшегося с традиционной логикой. В конце
концов историки науки признали, что логические работы Кэрролла намного опережали своё время [19]. Но в это признание
трудно поверить: в прекрасном учебнике «История логики»
под редакцией добротного педагога В.Ф. Беркова [5] нет ни
слова о великом логике. Молчит о нём и английская наука: нет
пророка в своём отечестве. В наше время ни один логик не
рискнёт признаться в незнании его работ. Однако мало прочесть работы Кэрролла, их нужно ещё и понять. А вот с этой
задачей не справился ни один учёный. Таким образом, великий логик опередил не только своё время, но и наше. Саркастическое отношение Кэрролла к этим «так называемым логикам» можно распространить и на наших современников.
В предисловии Ю. Данилова к книге Л.Кэрролла «Логическая игра» высказывается мысль об искусстве правильного
(логичного) рассуждения, об умении получать правильные заключения даже из несколько необычных суждений. «Например, из странных посылок
Ни одно ископаемое животное не может быть несчастно в
любви.
Устрица может быть несчастна в любви.
следует вполне здравое, и, что самое главное, правильное,
заключение: «Устрица – не ископаемое животное», - утверждает Ю. Данилов. Однако это далеко не так. Проведём синтез заданного силлогизма по алгоритму ТВАТ. Вторая посылка
модальна, следовательно устрица может быть как несчастной
в любви, так и счастливой. Поэтому появляются три ситуации,
представленные скалярами Y1, Y2, Y3. Введём следующие
обозначения:
U - универсум, состоящий из живых существ.
M – несчастные в любви существа.
X – ископаемые животные.
Y – устрица.
395
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
1
i
1
i
F(x,y) = y’+i = Ixy’(7), т.е. «Некоторые ископаемые животные –
не устрицы». Мы получили частно-утвердительное заключение в 7-ом базисе. Здесь и далее апостроф обозначает отрицание. Это так называемая интегрированная, обобщённая
оценка. В жизни не может быть ситуаций Y1 – Y3 одновременно: не может быть одна и та же устрица ископаемой и неископаемой. Поэтому действительное заключение выглядит так:
«Вероятно, устрица – неископаемое животное». Судя по скалярным диаграммам эта вероятность составляет 2/3. Величина вероятности определяется объёмами множеств-терминов
U,m,x,y.
У Кэрролла есть одна слабость: он любит формулировать
посылки как-нибудь поизощрённее, считая, что такие задачи
представляют повышенную сложность для «нервически припадочных логиков». Ничего подобного нет на самом деле:
просто в результате подобных изысков зачастую чрезвычайно
некорректно формулируется условие задачи. Постановка задачи должна быть абсолютно прозрачной, всегда нужно стремиться к предельной простоте посылок. Не нужно пугаться отрицательных форм суждений, но заменять утвердительную
форму на отрицательную просто по прихоти – дурной тон в
математике. Во-первых, в данном силлогизме во второй посылке нужно убрать модальность. Во-вторых, в этой же посылке выбрать один из вариантов: либо «Всякая устрица
396
несчастна в любви», либо «Некоторые устрицы несчастны в
любви». В первом случае заключение будет простым: «Устрица – не ископаемое животное». Во втором по алгоритму ТВАТ
получим следующий результат.
M
X
Y1
Y2
Y3
Y4
хy
00
01
10
11
f(x,y)
1
1
i
i
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые неископаемые животные – устрицы». Заключение получено в 5-ом базисе. Как видно из данного примера, посылки могут быть предельно простыми и прозрачными, а синтез заключения оказывается
сложным. Неинтегрированное заключение выглядит так: «Вероятнее всего устрица – неископаемое животное». Для М =
0,5U, x = 0,25U эта вероятность составит 0,75. Возможно, вычисление вероятности окажется более сложным процессом,
учитывающим распределение всех ситуаций Y1 – Y4, но для
школьников можно воспользоваться приблизительным методом оценки. Главное, чтобы студенты и учащиеся могли находить все значимые ситуации при синтезе силлогизма. Кстати,
вовсе не обязательно давать интегрированные заключения,
поэтому школьники могут обходиться без таблиц истинности и
трёхзначной логики. Останется, как и просил Лейбниц, одна
прозрачная геометрия с арифметикой.
Кэрролл прекрасно понимал, что фигуры и модусы Аристотеля не справляются ни с анализом, ни с синтезом силлогизмов. К тому же он, возможно, читал Ф. Бекона, утверждавшего,
что логика Аристотеля вредна. Поэтому талантливый мысли-
397
тель искал инструмент для решения поставленных логических
задач. И такой инструмент был им создан: это диаграммы
Кэрролла. С помощью диаграмм [19] он сумел реализовать
синтез огромного массива силлогизмов, не прибегая к бесполезным терминам субъекта и предиката, большей и меньшей
посылки, к традиционным некорректным правилам, фигурам и
модусам. Однако не все силлогизмы поддавались анализу и
синтезу с помощью диаграмм Кэрролла. В связи с этим в его
работе [19] появилась глава, посвящённая логическим ошибкам. На основе своих диаграмм Кэрролл приходит к выводу,
что существуют посылки, которые не ведут ни к какому логическому заключению, тем самым как бы подтверждая мысль
Аристотеля в отношении неправильных модусов. Для иллюстрации он приводит следующий силлогизм [19]:
Все солдаты (х) храбрые (m).
Некоторые англичане (у) храбрые (m).
------------------------------------------------Некоторые англичане – солдаты.
«Выглядит это весьма похоже на силлогизм, и менее опытный логик вполне мог бы принять такое рассуждение за силлогизм», - заявляет Кэрролл. Однако проведём синтез по алгоритму ТВАТ и докажем, что это силлогизм. Изобразим на диаграмме все значимые ситуации. Универсум – множество людей.
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
1
1
i
i
F(x,y) = x’+i = Ix’y(5), т.е. «Некоторые не-солдаты – англичане». Это интегрированное заключение отнюдь не противо-
398
речит здравому смыслу. Раздельный анализ изображённых на
диаграмме ситуаций даст следующие заключения: «Некоторые солдаты – англичане» (8-й базис), «Все солдаты – англичане» и «Ни один солдат – не англичанин». Второе и третье
заключения противоречат действительности, поскольку армии
имеются во всех странах мира, в том числе и в Англии. Следовательно, остаётся лишь одно заключение «Некоторые
солдаты – англичане», что совпадает с гипотетическим заключением Л.Кэрролла, поскольку частно-утвердительный функтор в 8-ом базисе симметричен. Как видим, интегрированное
заключение отличается от неинтегрированного, но последнее
было получено с использованием дополнительной информации об армиях государств. Тем не менее триада Кэрролла является силлогизмом без всяких ошибок.
Льюис Кэрролл видел недостатки своих диаграмм, поэтому
он продолжал поиски формальных методов анализа и синтеза
силлогизмов и соритов. В результате этих поисков был создан
«метод индексов»[19, с.262], который является ничем иным
как обычной математической логикой. Впервые в западной логике появляется аналитическое описание общеутвердительного и общеотрицательного функторов [19, с.263]:
Axy = (xy’)’ = x’+y;
Exy = (xy)’ = x’+y’.
Неважно, что эти соотношения были представлены «карточной» символикой, важно, что именно с них начинается истинно математическая силлогистика Европы. За 15 лет до
Кэрролла (в 1881г.) точно такие же результаты были получены
гениальным русским логиком Платоном Сергеевичем Порецким [46]. Это нисколько не умаляет заслуг Кэрролла, поскольку
он был самоучкой и безусловно не знал о работах русского
учёного, который тоже не оказался пророком в своём отечестве. Мировая математическая силлогистика, конечно же,
начинается с П.С.Порецкого. Однако до сих пор ни в одном
учебнике по логике вы не найдёте этих основополагающих
формул.
Сделав такой выдающийся шаг в формализации логики,
Кэрролл тут же совершает ряд ошибок. «Теперь я возьму три
различные формы, которые могут принимать пары силлогизмов, и с помощью диаграмм раз и навсегда выведу из них заключения…», - заявляет великий логик [19, с.265]. Здесь он
повторяет заблуждения Аристотеля, считавшего, что заключение силлогизма не зависит от объёма терминов [1].
399
В переводе на современную символику эти три фигуры
Кэрролла описываются соотношениями:
1. ExmAym  Exy
2. AmxIym  Ixy
3. AmxAmy  Ixy.
Бесспорной здесь является лишь 1-я фигура. Для 2-й фигуры заключением является Ixy(2), для 3-й – Ixy(3), т.е. совершенно разные формы частно-утвердительного функтора.
Однако никто не заметил, что на стр.265 своих «Узелков»
выдающийся логик Запада вслед за Порецким напрочь отметает все бесполезные термины вроде субъекта, предиката,
большей и меньшей посылок и прочей наукообразной чепухи.
Что касается соритов, то здесь достижения Кэрролла более
чем скромны. Он выбирает самые простые сориты для синтеза всего лишь одного-единственного заключения, тогда как
П.С.Порецкий решает сложные сориты с выводом многих заключений [46].
400
Глава одиннадцатая
Вероятностная логика.
Впервые о связи логики с теорией вероятности заявил
П.С.Порецкий[47]. Он показал, как легко и просто решаются
вероятностные задачи с помощью логики. Мы будем решать
обратную задачу.
При синтезе заключений зачастую имеют место несколько
вариантов решений. Требуется определить вероятность реализации каждого решения.
Вероятность события Axy.
Пусть известно nx - количество элементов множества Х и
ny – количество элементов множества Y, а также n – число
элементов в универсуме U. Требуется определить вероятность события «Все Х суть У», т.е. найти P(Axy). Построим
скалярные диаграммы для случая n=8, nx=2, ny=4.
1
2
3
4
5
6
7
8
X
Y
В 8 клетках скалярной диаграммы множество У, состоящее из 4 элементов можно разместить различными способами, число которых определяется как число сочетаний из n=8
по ny=4, т.е. C(n,ny) = C(8,4) = 8*7*6*5/4! = 70. Однако при соблюдении условия Axy количество вариантов размещения
элементов множества У существенно меньше. Их число определяется из следующих соображений. Два элемента множества У должны обязательно занимать 1-ю и 2-ю клетки диаграммы. Оставшиеся (ny-nx) = 4-2 = 2 элемента можно разместить в 6 клетках с 3-ей по 8-ю включительно разными способами, число которых определяется как число сочетаний C(nnx,ny-nx) = C(8-2,4-2) = C(6,2) = 6*5/2! = 15.
Таким образом, вероятность P(Axy) = C(n-nx,ny-nx)/C(n,ny)
= 15/70 = 3/14.
P(Axy) = C(n-nx,ny-nx)/C(n,ny)
401
Вероятность события Exy.
Пусть известно nx - количество элементов множества Х и
ny – количество элементов множества Y, а также n – число
элементов в универсуме U. Требуется определить вероятность события «Ни один Х не есть У», т.е. найти P(Exy). Построим скалярные диаграммы для случая n=8, nx=2, ny=4.
1
2
3
4
5
6
7
8
X
Y
Общее количество вариантов размещения элементов
множества У в универсуме как и в предыдущем случае равно
C(n,ny) = C(8,4) = 8*7*6*5/4! = 70. Количество вариантов размещения элементов множества У при соблюдении условия
Exy определяется по формуле C(n-nx,ny) = C(8-2,4) = C(6,4) =
C(6,2) = 6*5/2! = 15.
Таким образом, вероятность P(Exy) = C(n-nx,ny)/C(n,ny) =
15/70 = 3/14.
P(Exy) = C(n-nx,ny)/C(n,ny)
Вероятность события Ixy.
Пусть известно nx - количество элементов множества Х и
ny – количество элементов множества Y, а также n – число
элементов в универсуме U. Требуется определить вероятность события «Некоторые Х суть У», т.е. найти P(Ixy). Построим скалярные диаграммы для случая n=8, nx=2, ny=4.
1
2
3
4
5
6
7
8
X
Y
Общее количество вариантов размещения элементов
множества У в универсуме как и в предыдущих случаях равно
402
C(n,ny) = C(8,4) = 8*7*6*5/4! = 70. Для выполнения условия Ixy
нужно, чтобы один элемент множества Y размещался или в
клетке 1, или в клетке 2, но не в двух сразу (тогда получится
Axy). Таким образом, существуют две равновеликих группы
вариантов размещения элементов множества Y при выполнении требования Ixy. Рассчитаем количество размещений для
одной группы вариантов. Оно определяется числом сочетаний
C(n-nx,ny-1) = C(8-2,4-1) = C(6,3) = 6*5*4/3! = 20.
Следовательно, общее количество вариантов размещения элементов множества Y при выполнении условия Ixy составит 2*20 = 40.
Таким образом, вероятность P(Ixy) = C(n-nx,ny-1)/C(n,ny) =
40/70
=
4/7.
Определим
сумму
вероятностей
P(Axy)+P(Exy)+P(Ixy) = 3/14+3/14+4/7 = 1. Следовательно,
P(Ixy) = 1 – P(Axy) – P(Exy).
Рассмотрим следующий силлогизм.
Некоторые студенты (m) – отличники (x).
Некоторые студенты (m)– блондины (y).
-----------------------------------------------Найти f(x,y), если известно, что студенты составляют 20%
от числа учащихся страны, отличники – тоже 20%, а блондины
– 40%.
Решение.
Классическая логика однозначно утверждает, что заключения не существует. Однако в Русской логике эта задача легко решается. Примем в качестве универсума (U) множество
всех учащихся, тогда получим решение, представленное на
скалярной диаграмме.
M
X
Y1
Y2
Y3
403
xy
00
01
10
11
f(x,y)
1
1
i
i
Из таблицы истинности выведем соотношение: f(x,y) =
x'+i= Ix’y(5), т.е. «Некоторые не-отличники – блондины». Такое
интегрированное заключение не противоречит здравому
смыслу, но не имеет количественной оценки. Необходимо
оценить вероятность возникновения сиеуаций Y1, Y2, Y3, т.е.
P(Axy), P(Exy), P(Ixy). Для «лобового» решения задачи была
написана программа ruslogvr.pas. Результаты моделирования
показали, что для больших чисел, а число учащихся в нашей
стране пока ещё не маленькое, P(Axy) = P(Exy) = 0. Таким образом, правильное заключение данного силлогизма Ixy(8), т.е.
«Некоторые отличники – блондины».
Обозначим количество элементов множества Х через nx,
количество элементов множества Y – через ny, для множества
M – через nm, а для универсума - через n. Тогда,опираясь на
ранее выведенные формулы, получим следующие соотношения:
P(Axy) = C(n-nx-1, ny-nx) / C(n-1, ny) для nx ≤ ny, ny < n.
P(Exy) = C(n-nx, ny) / C(n-1,ny) для n ≥ (nx+ny), (nm+ny) < n.
Здесь выражение вида C(m,n) обозначает количество сочетаний из m элементов по n и вычисляется по формуле:
C(m,n) = m! / [n!(m-n)!] .
Для n = 1000, nm = 200, nx = 200, ny = 400 определим вероятности на основе полученных формул.
P(Axy) = C(799,200) / C(999,400) = 0.
P(Exy) = C(800,400) / C(999,400) = 0.
P(Ixy) = 1.
Полученные при моделировании по программе
ruslogvr.pas результаты соответствуют выведенным формулам.
program ruslogvr;
uses crt;
type vect=array[0..10000] of word;
404
var
n,nm,nx,ny,i,j,neq,k,ka,ke,ki :word;
{n - к-во элементов в универсуме,
nm - к-во элементов в среднем термине M[],
nx - к-во элементов в крайнем термине X[],
ny - к-во элементов в крайнем термине Y[],
k - к-во экспериментов,
ka - к-во кванторов Axy,
ke - к-во кванторов Exy,
ki - кол-во кванторов Ixy.
}
m,x,y :vect;
{---------------------------------------------------------}
procedure compare(x,y:vect;nx,ny:word;var neq:word);
var i,j:word;
begin
neq:=0;
for i:=0 to (nx-1) do
begin
j:=0;
repeat
if x[i]=y[j] then
begin
inc(neq);
j:=ny-1;
end;
inc(j);
until (j=ny);
end;
end;
{=================================================}
begin
clrscr;
writeln('╔═════════════════════════════════╗');
writeln('║ Статистическок моделирование силлогизма
║');
writeln('║
с частно-утвердительными посылками.
║');
writeln('║
n - к-во элементов в универсуме
║');
writeln('║
Лобанов В.И. 20-11-2004
║');
writeln('╚═════════════════════════════════╝');
writeln;
write('Введите k<=10000,n<=10000,nx,ny ');
readln(k,n,nx,ny);
randomize;
405
ka:=0;ke:=0;ki:=0;
for j:=1 to k do
begin
for i:=0 to (nx-1) do x[i]:=random(n-1);
for i:=0 to (ny-1) do y[i]:=random(n-1);
{
for i:=0 to (nx-1) do write(x[i]:4);
writeln;
for i:=0 to (ny-1) do write(y[i]:4);
writeln;}
compare(x,y,nx,ny,neq);
if neq=nx then inc(ka)
else if neq=0 then inc(ke)
else inc(ki);
writeln('ka= ',ka:4,' ke= ',ke:4,' ki= ',ki:4,' neq= ',neq:4);
end;
writeln('Нажмите ENTER');
readln;
{ clrscr;}
end.
Далеко не всё в программе ruslogvr.pas безупречно с точки зрения статистики, однако эти погрешности не оказывают
существенного влияния на результаты моделирования. Результаты моделирования представлены в таблице. Разброс
параметров от серии к серии невелик. Чётко прослеживается
тенденция стремления к нулю вероятности появления ситуаций Axy, Exy при увеличении n и неизменном соотношении
nx/ny. Соответственно P(Ixy) стремится в этом случае к единице. Смысл обозначений столбцов таблицы расшифрован в
программе.
k
n nx ny ka
ke
ki
10000 100 20 40
0
3
9996
10000 100 20 40
0
4
9996
10000 8
2 4 2246 2984 4770
10000 8
2 4 2199 3055 4746
10000 80 20 40
0
0
10000
10000 80 20 40
0
0
10000
10000 16 4 8 335 1112 8553
10000 16 4 8 340 1216 8443
Рассмотрим пример Стяжкина Н.И. из теории логического следования [52,стр.158]: «Сократ идёт, следовательно,
406
белый идёт» редуцируется с помощью добавления суждения
случайности: «Сократ бел».
Однако здесь весьма уважаемый логик ошибается.
Представим эти две посылки в более привычном виде:
Сократ (m) – идущий человек (x).
Сократ (m) – белый человек (y).
Найти f(x,y).
Примем в качестве универсума U множество всех людей.
Тогда на основании скалярных диаграмм получим следующий
результат.
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
i
i
1
F(x,y) = xy + i = Ixy(3), т.е. «Некоторые идущие суть белые» в 3-м базисе, что не соответствует заключению Стяжкина Н.И. Введём дополнительные условия в этот силлогизм.
Пусть количество белых (седых?) составляет 50%, а количество идущих – 25%. Тогда решение будет несколько иным.
M
X
Y1
Y2
407
xy f(x,y)
00
1
01
1
10
i
11
1
F(x,y) = x’ + y + i = Ix’y (2), т.е. «Некоторые неидущие суть белые» во 2-м базисе, что также не согласуется с заключением
Стяжкина. Вероятностная оценка выглядит так:
P(Axy) = C(n-nx,ny-nx)/C(n-1,ny-1);
P(Ixy) = 1 – P(Axy).
В завершение рассмотрим ещё один пример силлогизма:
Все отличники (m) трудолюбивы (x).
Все отличники (m) русые (y).
--------------------------------f(x,y) = ?
Примем в качестве универсума учащихся одного класса, в
котором всего 8 учеников (n). Пусть известно также, число отличников nm = 4, количество трудолюбивых nx = 5 и русых ny
= 6.
1
2
3
4
5
6
7
8
M
X
Y1
Y2
Xy
00
01
10
11
f(x,y)
1
1
i
1
F(x,y) x’+y+ixy’ = x’+y+i= Ix’y(2), т.е. интегрированное заключение расшифровывается во 2-м базисе так: « Некоторые
лентяи русые». Однако нас интересует вероятность событий
Axy и Ixy. Для ny>nx получим соотношения:
P(Axy) = C(n-nx, ny-nx) / C(n-nm, ny-nm) = C(3,1)/C(4,2) =
3/6 = 0,5;
P(Ixy) = 1 – P(Axy) = 1 – 0,5 = 0,5.
408
Глава двенадцатая
Дисциплина мышления.
Человеческое мышление[40] по своей природе хаотично, неорганизованно, аморфно, недисциплинированно. Автор
не является исключением из общего правила. Стоит ли огорчаться по данному поводу? Вероятно, с этим нужно смириться
как с неизбежностью. Ведь мы не бьём тревогу относительно
того, что не в силах состязаться с ЭВМ в шахматах и прочих
рутинных вычислительных операциях. Человек – это изумительное по совершенству создание, его предназначение состоит в решении творческих, эвристических задач, где «неорганизованность» мышления, возможно, играет главную роль.
Заставлять человека играть в шахматы – это то же самое, что
забивать микроскопом гвозди. Однако вооружить человека инструментом, дисциплинирующим мышление, можно и нужно.
Эта задача значительно сложнее и важнее повальной компьютеризации. Зачастую компьютеризация превращает нас в
«мартышек с арифмометром», а дисциплинирование мышления такой катастрофой не грозит. К тому же если «знание –
это сила», то «мышление – это могущество» [10]. Поэтому игра стоит свеч. В качестве такого «мыслительного инструмента» выступает Русская логика.
Проиллюстрируем её возможности на конкретном примере.
Бертран Рассел в своей работе «История западной философии» (М.:2000 –768с.) на стр.194 приводит силлогизм:
Все люди разумны.
Некоторые животные – люди.
Некоторые животные – разумны.
Покажем на этом примере недостатки мышления
Б.Рассела. Во-первых, отсутствие дисциплины мышления
проявляется в отсутствии универсума, хотя даже 100 лет
назад Льюис Кэрролл[19] не позволял себе такого невежества.
Определим, например, в качестве универсума весь животный
и растительный мир. Во-вторых, последняя посылка с позиции
русской логики просто безграмотна: в силу симметрии частноутвердительного функтора мы должны считать, что некоторые
люди – животные, а остальные - растения, минералы или ещё
что-нибудь неодушевлённое. В соответствии с русской логикой и здравым смыслом вторую посылку необходимо заменить суждением «Все люди – животные». В-третьих, по теории
великого русского физиолога И.П. Павлова разумными могут
409
быть люди и только люди, т.е. «люди» и «разумные существа»
– эквивалентные понятия.. Следовательно, и первая посылка
некорректна. Отредактировав Б.Рассела, получим следующие
посылки.
Все люди(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
00
01
10
11
f(x,y)
1
1
0
1
F(x,y) = x’+y = Axy.
Таким образом мы получили правильное заключение «Все
разумные – животные», что вполне согласуется со здравым
смыслом.
Б.Рассел в монографии «Искусство мыслить»(М.:1999) на с. 38 приводит такой силлогизм: «Если А
находится вне В и В находится вне С, то А находится вне С».
Данный силлогизм – образец вопиющей безграмотности. По
алгоритму ТВАТ построим диаграммы.
A
B
C1
C2
C3
410
ac
00
01
10
11
f(a,c)
1
i
i
i
F(a,c) = a’c’ + i = Ia’c’(3).
Кстати, вся аморфность мышления Б. Рассела, как и любого другого «мыслителя», сразу проявляется при прорисовке
скалярных диаграмм. Именно они принудительно дисциплинируют мышление. Рассмотрим ещё один силлогизм:
Все животные (m) смертны(х).
Некоторые животные(m) неграмотны(y).
F(x,y) = ?
В этом случае могут быть несколько вариантов универсума:
1. U = животные + растения.
2. U = животные + растения + неживая природа(НП).
3. U = животные + растения + неживая природа+боги.
Тогда для первого варианта получим следующие скалярные диаграммы:
m
x
y
Из скалярных диаграмм видно, что f(x,y) = x = Ayx & Ay’x,
т.е. “Все неграмотные и все грамотные смертны”.
Скалярные диаграмы для второго варианта универсума
имеют вид:
M
X
Y
411
Заключение в этом случае получается совершенно иным:
F(x,y) = x+y = Ax’y & Ay’x, т.е. “Все бессмертные неграмотны, а
все грамотные смертны".
Все эти результаты не соответствуют ни одному классическому модусу и нарушают главный закон силлогистики о
частной посылке и частном заключении, однако вполне согласуются со здравым смыслом.
Для третьего универсума диаграммы выглядят иначе:
M
X
Y1
Y2
Y3
xy
00
01
10
11
f(x,y)
i
i
1
1
Из таблицы истинности получаем третье заключение,
также противоречащее классическим модусам (результат в 5м базисе, а не в базисе Аристотеля):
F(x,y) = x+ix’ = Ixy(5).
Однако исходя из здравого смысла, боги не могут быть
одновременно грамотными, неграмотными и “полуграмотными”, как это представлено на скалярных диаграммах для 3-го
универсума. Следовательно, силлогизм для этого универсума
должен быть построен для трёх случаев:
 боги грамотные;
 боги неграмотные;
 некоторые боги неграмотные.
Для грамотных богов решение выглядит так:
M
X
Y
412
Из диаграмм видно, что f(x,y) = Ayx, т.е. «Все неграмотные – смертны».
Для варианта с неграмотными богами имеем:
M
X
Y
Заключение в этом случае имеет вид f(x,y) = x+y =
Ax’yAy’x, т.е. «Все бессмертные неграмотны, а все грамотные
смертны».
Построим скалярные диаграммы для «полуграмотных»
богов.
M
X
Y
Для этого варианта заключение выглядит так: f(x,y) = 1 =
Ixy(8), т.е. в базисе Васильева «Некоторые смертные неграмотны». В силу симметричности и обратимости частноутвердительного функтора Васильева имеем: Ixy = Ixy’ = Ix’y =
Ix’y’. Следовательно, одновременно можно утверждать, что
«Некоторые смертные грамотны», «Некоторые бессмертные
неграмотны», «Некоторые бессмертные грамотны».
Силлогизмы подобного типа не могут быть решены без
скалярных диаграмм, конкретизации универсума и содержания посылок. Автор и сам без скалярных диаграмм и русской
логики становится беспомощным при анализе и синтезе сложных силлогизмов. Таким образом, логика дисциплинирует
мышление, тренирует ум. Это вполне согласуется с мыслью
Демокрита о том, что надо воспитывать в себе «многомыслие», а не «многознание.
В «Диалогах» Платона [45, стр.117] встречается такой
вопрос: “ Скажи мне, Клиний, те из людей, кто идёт в обуче413
ние, - они мудрецы или невежды?» И далее утверждается, что
любой ответ будет неверным. Это яркий пример терминологической путаницы: мудрец – не всезнайка, а просто умный
человек. Если бы Клиний и его оппоненты определили содержание термина, то никакого диспута не возникло бы.
414
Заключение.
Подводя итог вышеизложенному, необходимо отметить следующее. Никакое образование немыслимо без изучения логики. Этот предмет в качестве основного впервые ввёл
в гимназиях и Академии великий русский учёный М.В. Ломоносов. С тех пор логику в обязательном порядке изучали в гимназиях России и по указанию Сталина в 1946-1953 гг. в школах СССР. В связи с этим удивляют безграмотность и бестолковость современной математики:
 «изобретено» кванторное исчисление, которое ничего не
исчисляет;
 «придумана» алгебра множеств, задачи которой решает
алгебра логики;
 доктора физматнаук не знают математической логики,
 120 лет матлогики не могут освоить результатов П.С.
Порецкого и Л. Кэрролла;
 математики не умеют мыслить.
Перечислим основные недостатки классической логики.
1.
Классическая логика не использует минимизацию логических функций с помощью карт Карно в том числе и в связи с
незнанием алгоритмов, разработанных автором. Карты Карно
– необходимейший и обязательный инструмент логика.
2.
Классическая логика проявляет невежество при доказательстве законов логики суждений, поскольку не применяет
аналитических методов, что катастрофически сужает круг рассматриваемых задач.
3.
Отсутствие аналитического представления силлогистических функторов лишает фундамента логику предикатов.
4.
Все законы и правила силлогистики либо некорректны,
либо никчёмны по своей сути, поскольку в них не учитывается
влияние универсума и конкретного содержания терминов.
5.
Все фигуры и модусы силлогистики никчёмны, поскольку нельзя анализировать и синтезировать силлогизмы в общем виде без рассмотрения конкретного базиса, универсума и
содержания каждого термина.
6.
Классическая силлогистика оперирует лишь функторами Axy, Exy, Ixy, Oxy и не охватывает подавляющее большинство суждений любого другого типа.
7.
Функтор Oxy является не только лишним, но и некорректным.
415
8.
В классической логике до сих пор не решена проблема
единичного множества.
9.
Нет окончательного результата в проблеме решения
логических уравнений и в синтезе обратных логических функций.
10.
Искореняется всякое мышление.
11.
В связи с вышеперечисленным студенты и преподаватели обречены на унылую бестолковую зубрёжку и не умеют
решать серьёзные задачи логики.
Приведу основные результаты, полученные при создании Русской логики.
1. Создана графическая алгебра логики.
2. Разработаны графические методы минимизации логических
функций для большого числа аргументов с помощью карт
Карно(алгоритм «НИИРТА»).
3. Создана 4-значная комплементарная логика и её алгебра с
методами минимизации комплементарных функций.
4. Разработаны простые методы решения логических уравнений (алгоритм «Селигер») на основе комплементарной логики.
5. Применение метода при выводе обратных логических
функций показало, что однозначное решение для двоичных
аргументов может быть получено лишь в комплементарной
логике.
6. Впервые получены все 16 обратных логических функций
для двух аргументов,
в том числе функции логического
вычитания и деления.
7. Комплементарная логика при аппаратной реализации позволяет значительно упростить решение проблемы самодиагностирования вычислительной техники: например появление j на любом выходе может свидетельствовать о сбое
или отказе.
8. Синтезированы методы нахождения парных термов для
равносильных
преобразований логических равенств.
9. Предложен простой математический метод анализа и синтеза законов логики суждений (алгоритм «Импульс»).
10. Предложены скалярные диаграммы, позволившие формализовать силлогистику и дать графическую интерпретацию алгебры логики.
11. Впервые создан аналитический базис силлогистики и
определены его разновидности: русский, аристотелевский,
базис Васильева и т.д.
416
12. Впервые показано, что даже общие суждения имеют
неоднозначную структуру и аналитическое описание.
13. Впервые представлено все многообразие базиса частноутвердительного суждения и дано его аналитическое
представление.
14. Впервые найдены аналитические выражения для всех
частноутвердительных суждений, удовлетворяющих критерию Васильева.
15. Предложен простой и надежный способ графической и
аналитической проверки силлогизмов и синтеза заключений для любых базисов (алгоритмы «Осташ», «ИЭИ» и
«ТВАТ»).
16. Применение предложенного метода избавляет от необходимости запоминания множества логических правил и законов.
17. Руская логика оперирует не только функторами Axy, Exy,
Ixy, но и суждениями любого типа.
18. Впервые аналитически описан базис логики Аристотеля-Жергонна. Впервые на основе базиса АристотеляЖергонна разработана силлогистика, существенно отличающаяся от классической.
19. Впервые проверены все 64 модуса силлогистики Аристотеля-Жергонна. Доказано, что многие «правильные» модусы Аристотеля, в том числе и модус AAI 4-й фигуры, не
корректны.
20. Впервые доказано, что силлогистика АристотеляЖергонна не укладывается в прокрустово ложе 19 «правильных» модусов.
21. Разработаны графоаналитический алгоритм «Осташков»
синтеза полисиллогизмов и графический алгоритм «Суздаль» синтеза соритов.
22. Разработан графический алгоритм «Редан» синтеза
недостающей посылки.
23. Доказано, что ни силлогистика Аристотеля, ни силлогистика Аристотеля-Жергонна не имеют никакого отношения к
логике здравого смысла.
24. Впервые обнаружена и учтена при синтезе силлогизмов
зависимость заключения от объёма универсума и содержания терминов.
25. Впервые решена проблема единичного множества в
силлогистике.
26. Доказано, что все 4 классических правила посылок ошибочны.
417
27. Показано, что фигуры и модусы не имеют смысла, поскольку не учитывают универсум и конкретное содержание
посылок.
28. Отмечено, что аналитическое представление силлогистических функторов Axy, Exy впервые дано русским логиком П. С. Порецким, чего до сих пор не поняла отечественная наука.
29. Показано, что общеразговорная логика не является двоичной.
Подводя итог вышеизложенному, нельзя не придти к выводу, что впервые в мире создана истинно математическая
логика, не противоречащая здравому смыслу. Фактически родилась совершенно новая наука, сделан первый шаг в осуществлении именно научной, а не просто очередной научнотехнической революции, поскольку созданы предпосылки для
рационализации труда учёных. Впервые в мире реализованы
мечты Аристотеля и Лейбница. Их чаяния воплощены в России.
Требуется скорейшее внедрение Русской логики в
школьное и вузовское преподавание для искоренения недостатков и ошибок классической логики, а также в связи с тем,
что логика составляет фундамент искусственного интеллекта,
главного научного направления 3-го тысячелетия, по уровню
развития которого судят о научном потенциале державы.
418
Краткий справочник по русской логике.
Варианты силлогистического функтора Ixy.
1.Ixy = Ixy || Ayx || Axy = xy+x'y'+i(xy'+x'y)
(Ixy)' = j(xy'+x'y)
2.Ixy = Ixy || Ax'y = x+y+ix'y'
(Ixy)' = jx'y'
3.Ixy = Ixy || Axy || Ayx || Ax'y || (x=y) = xy+i(x'+y')
(Ixy)' = j(x'+y')
4.Ixy = Ixy || Ayx = x+y'+ix'y
(Ixy)' = jx'y
5.Ixy = Ixy || Ayx || Ax'y = x+ix'
(Ixy)' = jx'
6.Ixy = Ax'y = Ay'x = Ex'y' = x+y
(Ixy)' = x'y'
7.Ixy = Ixy || Axy || Ax'y = y+iy'
Oxy = jy'
8.Функтор Васильева изображен на рисунке.
X
Y
Любой базис может быть представлен с помощью атомарного базиса,состоящего всего из двух функторов:
Axy = x'+y,
Ixy = x+y+x'y' = 1
Русский базис.
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)
419
Алгоритмы.
«Импульс» - анализ законов логики суждений.
«Импульс-С» – синтез законов логики суждений.
«ИЭИ» - аналитический синтез силлогизмов.
«НИИДАР» - решение системы логических уравнений.
«НИИРТА» – минимизация логических функций по картам
Карно.
«Осташ» – универсальный синтез силлогизмов.
«Осташков» - синтез полисиллогизмов.
«РЕДАН» – графический синтез недостающей посылки.
«Селигер» – решение логических уравнений.
«Суздаль» – графический синтез соритов.
«ТВАТ» – графический синтез силлогизмов.
420
Перечень сокращений
АМ – амплитудная модуляция
АЦП – аналого-цифровой преобразователь
БИС - большая интегральная схема
БМ – блок модуляторов
БМК – базовый матричный кристалл
БМОК – база минимального обобщённого кода
ДНФ - дизъюнктивная нормальная форма
ДУ – дифференциальный усилитель
ДФ – дифференциальный фильтр
ЗОК - запрещённый обобщённый код
ИКАР – инженерный комплекс автоматизации разработок
ИС
- интегральная схема
ИЭИ - Ивановский энергетический институт (Иваново)
КА
- конечный автомат
КДУ - контрольно-диагностическое устройство
КК
- карта Карно
КС
- комбинационная схема
КСЧ – контроллер синтезатора частоты
МДНФ – минимальная ДНФ
МОК - минимальный обобщённый код
МПА – микропрограммный автомат, синоним КА
МПО – микропрограммное обеспечение
НИИДАР – НИИ дальней радиосвязи (Москва)
НИИРТА – НИИ радиотехнической аппаратуры (Москва)
НТР - научно-техническая революция
ОГ – опорный генератор
ПЛИС - программируемая логическая интегральная схема
ПЛМ - програмируемая логическая матрица
ПМЛ - программируемая матричная логика
ПО – программное обеспечение
ППК - предполагаемый прямоугольник Карно
РОК - рабочий обобщённый код
СДНФ – совершенная дизъюнктивная нормальная форма
ТВАТ - Тушинский вечерний авиационный техникум (Москва)
ТВ-ГИС – телевизионный генератор испытательных сигналов
ЦАП – цифро-аналоговый преобразователь
ЦТВП – цифровой телевизионный передатчик
ЧМ – частотная модуляция
421
Литература
1. Аристотель. Сочинения. В 4-х томах. Т.2- М.:
Мысль,1978.
2. Антонов А.П. Язык описания цифровых устройств AlteraHDL. – М.: 2001.
3. Баранов С.И. Синтез микропрограммных автоматов. - Л.:
Энергия,1974.
4. Р.Дж.Беннетс. Проектирование тестопригодных логических схем. – М.: РиС, 1990.
5. Берков В.Ф. «История логики».
6. Брусенцов Н. П. Диаграммы Льюиса Кэрролла и аристотелева сил-логистика. -В кн. Выч. техника и вопросы кибернетики .Вып.13. - М.:МГУ,1977.
7. Брусенцов Н.П. Начала информатики. - М: Фонд "Новое
тысячелетие",1994.
8. Брусенцов Н. П. Микрокомпьютеры. – М.:1985.
9. Васильев
Н.А.О
частных
суждениях.
Казань:Университет,1910.
10.
Войтов А. Г. Самоучитель мышления. – М.: 1999.
11.
Войтов А.Г. История и философия науки. – м.: 2004.
12.
Дм.Гаврилюк. Внутрисхемное программирование.
// «Компоненты и технологии», №8, 2003г., с.114 - 117.
13.
Гжегорчик А. Популярная логика. - М.:Наука,1979.
14.
Гутников В.С. Интегральная электроника в измерительных приборах. - Л.:Энергия,1974.
15.
Катречко С. Л. Введение в логику. – М.: УРАО, 1997.
16.
Кириллов В.И. Старченко А.А. Логика. - М.:
Юрист,1995.
17.
Кузина. Плюсы и минусы/ ВРФО, №3, 2002.
18.
Кулик Б.А. Логические основы здравого смысла. СПб.:Политехника,1997.
19.
Кэрролл Л. История с узелками. - М.:Мир,1973.
20.
Левченков В.С. Булевы уравнения. – М.: 1999.
21.
Лейбниц Собрание сочинений в 4 томах. Том 3. –
М.:1983
22.
Лобанов В.И. Инженерные методы разработки
цифровых устройств. - М.: НИИРТА,1977 ( Шифр Центральной Политехнической Библиотеки - W145 4/231).
23.
Лобанов В.И. Метод минимизации булевых функций от большого числа переменных с помощью карт
Карно. - Инф. Листок N54-87,М: МособлЦНТИ,1987.
422
24.
Лобанов В.И. Отказоустойчивый микроконтроллерный регулятор с программируемой структурой обработки
данных. Диссертация на соискание ученой степени канд.
техн. наук. - Харьков, ХПИ,1989.
25.
Лобанов В.И. Проектирование в САПР MAX+PLUS
II. // Chip News,№5,2001г.,с. 66-71.
26.
Лобанов В.И. Технический минимум пользователя
САПР MAX+PLUS II.//Chip News,№1,2001г.,с. 56-58.
27.
Лобанов В.И. Кризис логики суждений и некоторые
пути выхода из него.//Современная логика: проблемы
теории, истории и применения в науке (Материалы V
Общероссийской научной конференции) - СПб: 1998.
28.
Лобанов В.И. Решение логических уравнений.
//Научно-техническая информация. Сер. 2. N%9, 1998, с.
40 - 46.
29.
Лобанов В.И. Силлогистика Аристотеля-Жергонна.
//НТИ, сер.2, Информационные процессы и системы, N9,
1999, с. 11 - 27.
30.
Лобанов В.И. Базовые проблемы классической логики.//Современная
логика:Проблемы теории,истории
и применения в науке(Материалы VI Общероссийской
научной конференции), СПбГУ, 2000 — с.499 — 504.
31.
Лобанов В.И. Синтез и минимизация комбинационных схем//Информатика и образование,N5,2000, стр.
60 – 63.
32.
V. I. Lobanov. The solution of logical equations. //
Documentation and Mathematical Linguistics, vol. 32,
№5,1998, p. 16 – 27 .
33.
V. I. Lobanov. Many-valued quantifier-free syllogism
(second basis). // Documentation and Mathematical Linguistics, vol. 32, №5,1998, p. 40 – 60 (гонорар выплачен
4.11.2000).
34.
Лобанов В.И. Заметки о проектировании современных цифровых систем управления на отечественной
элементной базе. // Chip News, №3, 2003 г. , с. 36-43.
35.
Лобанов В.И.
Практикум по силлогистике .
//Информатика и образование, №5,2001.
36.
Лобанов В.И. Решебник по Русской логике. – М.:
Компания Спутник+, 2002 – 133с.
37.
Лобанов В.И. Азбука разработчика цифровых
устройств. – М.: Горячая линия – Телеком, 2001 – 192с.
38.
Лобанов В.И. Русская логика против классической
(азбука математический логики). – М.: Компания Спут423
ник+, 2002 – 126с.
39.
Лобанов В.И. Русская логика против классической.
//Рационализм и культура на пороге третьего тысячелетия(материалы Третьего Российского философского конгресса),том 1, стр.278, г.Ростов-на-Дону, 2002.
40.
Лобанов В.И. Математическое мышление и Русская логика. // Научная сессия МИФИ-2003, том 1, стр.
188 – 189.
41.
Лобанов В.И. Беспомощность классической логики.
// Естественные и технические науки, №3, 2002 г., стр. 22
– 23.
42.
Лобанов В.И. Русская логика для школьников и
академиков. - М.:2004 – 110с.
43.
Логический подход к искусственному интеллекту. М.:Мир,1990.
44.
Непейвода Н.Н. Прикладная логика. - Ижевск: Удмурт.университет,1997.
45.
Платон. Диалоги. – М.: Мысль, 2000.
46.
Порецкий П.С. О способах решения логических равенств и об одном обратном способе математической
логики. - Казань:1884.
47.
Порецкий П.С. Решение общей задачи теории вероятностей при помощи математической логики. – Казань:1886.
48.
Светлов В.А. Практическая логика. - СПб: Изд. Дом
»МиМ»,1997.
49.
Семёнов и др. Микропрограммный автомат на базе специализированных БИС// Chip News, N7, 2000, c.5153.
50.
Смаллиан Р.М. Принцесса или тигр? – М.:1985.
51.
Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. – М.:2000.
52.
Стяжкин Н.И. Формирование математической логики. - М: 1967.
53.
Тейчман Д. , Эванс К. Философия. - М.: Весь
Мир,1997.
54.
Дж.Уэйкерли.
Проектирование
цифровых
устройств,том 2. – М.:Постмаркет, 2002.
55.
Шачнев В.А. Математическая логика. - М: 1991.
56.
Шестаков В.И. Некоторые математические методы
конструирования и упрощения двухполюсных схем класса А. Диссертация на соискание ученой степени канд.
физ. - мат. наук. - М.:МГУ,1938.
424
Оглавление.
РУССКАЯ ЛОГИКА ДЛЯ «ФИЗИКОВ» И «ЛИРИКОВ» .............................. 3
ЧАСТЬ 1. БУКВАРЬ РАЗРАБОТЧИКА ЦИФРОВЫХ УСТРОЙСТВ. ......... 7
ПРАКТИКА ИНЖЕНЕРНОЙ ЛОГИКИ. .......................................................... 7
Глава первая .......................................................................................................................................... 7
КОМБИНАЦИОННЫЕ ЛОГИЧЕСКИЕ ЦЕПИ ............................................................................... 7
1.1 Основные положения алгебры логики ...................................................................................... 7
Алгебра множеств. ............................................................................................................................ 9
1.2 Разновидности логических интегральных схем ( ИС ) .......................................................... 11
1.3. Синтез комбинационных схем ................................................................................................. 13
1.4.Минимизация полностью определённых булевых функций. ................................................. 14
1.5.Карты Карно для 7, 8, 9 и 10 переменных. ............................................................................... 16
Алгоритм «НИИРТА» графической минимизации булевых функций. ....................................... 22
1.6.Оценка сложности реализации булевых функций ................................................................... 23
1.7. Анализ комбинационных схем . ............................................................................................... 24
1.8. Формы задания булевых функций. .......................................................................................... 25
1.9. Минимизация недоопределённых булевых функций ............................................................. 29
1.10. Минимизация системы булевых функций. ........................................................................... 30
Глава вторая .......................................................................................................................................... 35
МИНИМИЗАЦИЯ БУЛЕВЫХ ФУНКЦИЙ МЕТОДОМ ОБОБЩЁННЫХ КОДОВ .................... 35
2.1. Общий алгоритм определения МОК........................................................................................ 36
2.2.
Алгоритм соседнего определения базы МОК (алгоритм Мавренкова). ..................... 41
2.3. Выводы. ...................................................................................................................................... 49
Глава третья. ......................................................................................................................................... 51
Триггеры................................................................................................................................................ 51
3.1 SR- триггеры. .......................................................................................................................... 51
3.2 D- триггеры. ................................................................................................................................ 54
3.3 . JK- триггеры. ............................................................................................................................. 55
3.4 Анализ работы схем с памятью ................................................................................................. 56
Глава четвёртая ..................................................................................................................................... 58
РЕГИСТРЫ И СЧЁТЧИКИ ............................................................................................................. 58
4.1 Регистры памяти. ........................................................................................................................ 58
4..2. Регистры сдвига. ....................................................................................................................... 58
4..3. Двоичные счётчики. ................................................................................................................. 60
4.4 . Десятичные счётчики. .............................................................................................................. 62
4.5. Элементная база для построения счётчиков. .......................................................................... 64
Глава пятая ............................................................................................................................................ 65
СИНТЕЗ СЧЁТЧИКОВ ........................................................................................................................ 65
5.1 Синтез счётчиков с использованием установочных входов. .................................................. 65
5.2 Синтез счётчиков с использованием управляющих входов. ................................................ 68
5.3. Реверсивные счётчики ............................................................................................................... 75
5.4.Распределители импульсов. ....................................................................................................... 78
5. 5. Cчётчики на сдвиговых регистрах. ......................................................................................... 80
Глава шестая. ........................................................................................................................................ 85
425
КОНЕЧНЫЕ АВТОМАТЫ. ................................................................................................................ 85
6.1 Понятие о конечном автомате. Автоматы Мили и Мура. ....................................................... 85
6.2. Методы задания автоматов. ГСА. ............................................................................................ 87
6.3. Синтез конечных автоматов. .................................................................................................... 89
6.4 Кодирование состояний и сложность комбинационной схемы. ............................................ 94
6.5 . Гонки и противогоночное кодирование. ................................................................................ 98
6. 6. Синтез релейных автоматов. ................................................................................................. 112
6.7.Синтез ГСА по функциям возбуждения. ................................................................................ 116
Глава седьмая ...................................................................................................................................... 118
МИКРОКОНТРОЛЛЕРЫ .................................................................................................................. 118
7.1. Простой промышленный микроконтроллер ......................................................................... 118
7.2. Микропроцессорная техника. ................................................................................................. 122
7.3. Отладочные средства. ........................................................................................................... 140
7.4. Средства контроля и диагностики. ........................................................................................ 148
7.5. Синтез проверяющих тестов для комбинационных схем. ................................................... 151
Глава восьмая ...................................................................................................................................... 156
ПРОЕКТИРОВАНИЕ МПА НА БАЗЕ ПЛИС. ....................................................................... 156
8.1. ОПТИМАЛЬНОЕ ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ СИСТЕМ УПРАВЛЕНИЯ. ........ 156
Частотный детектор. ...................................................................................................................... 156
Фазовый детектор. .......................................................................................................................... 160
Приёмопередатчик RS-485. ........................................................................................................... 166
Телевизионный генератор испытательных сигналов. ................................................................. 174
КДУ. ................................................................................................................................................. 175
Телевизионный цифровой синхрогенератор. ............................................................................... 177
Синтезатор частоты. ....................................................................................................................... 184
Особенности создания проекта для БМК. .................................................................................... 186
8.2. О недостатках САПР MAX+PLUS II. .................................................................................... 193
8.3. О повышении технического уровня отечественных разработок. ........................................ 211
Уровень современных разработок и элементная база: ПЛИС, сигнальные процессоры и
отечественные аналоги. ................................................................................................................. 213
Проблемы проектирования современных цифровых систем управления. ................................ 216
Заключение. .................................................................................................................................... 234
ЧАСТЬ 2. РУССКАЯ ЛОГИКА (АЗБУКА МАТЕМАТИЧЕСКОЙ ЛОГИКИ)
..................................................................................................................... 236
ВВЕДЕНИЕ ......................................................................................................................................... 236
Глава первая ........................................................................................................................................ 241
1.1. Решение логических уравнений. ............................................................................................ 244
1.2. Алгоритм «Селигер» (решение системы логических уравнений) ....................................... 251
1.3. Решение системы логических уравнений. ............................................................................. 252
Алгоритм «НИИДАР» решения системы логических уравнений. ............................................. 253
1.4. Равносильные преобразования. .............................................................................................. 254
1.5. Отыскание обратных функций. .............................................................................................. 259
Глава вторая ....................................................................................................................................... 279
2.1.Законы логики суждений ............................................................................................................. 279
Алгоритм «Импульс». .................................................................................................................... 279
2.2. Практикум по логике суждений. ............................................................................................ 286
Глава третья ....................................................................................................................................... 297
Базисы силлогистики. ........................................................................................................................ 297
3.1. Все x суть y(Axy). ................................................................................................................... 302
426
3.2. Ни один x не есть y(Exy). ........................................................................................................ 305
3.3. Некоторые x суть y. ................................................................................................................. 306
Глава четвёртая .................................................................................................................................. 314
Силлогистика Аристотеля - Жергонна. ............................................................................................ 314
4.1. Алгоритм "Осташ-Т" (тест) .................................................................................................... 316
4.2. Алгоритм «ТВАТ» (графический синтез силлогизмов). ...................................................... 317
4.3. Алгоритм «РЕДАН» (синтез недостающей посылки). ......................................................... 317
4.4. Алгоритм "ИЭИ "(синтез заключения) .................................................................................. 321
4.4. Ошибки Аристотеля. ............................................................................................................... 329
Заключение ..................................................................................................................................... 334
Глава пятая ......................................................................................................................................... 335
Русская силлогистика. ........................................................................................................................ 335
Заключение ......................................................................................................................................... 343
ГЛАВА ШЕСТАЯ........................................................................................ 344
Общеразговорная силлогистика. ....................................................................................................... 344
Заключение ......................................................................................................................................... 357
Глава седьмая ...................................................................................................................................... 358
Атомарная силлогистика. .................................................................................................................. 358
7.1. Практикум по силлогистике. .................................................................................................. 364
7.2. Практикум по решению соритов. ........................................................................................... 374
Алгоритм «Осташков» ................................................................................................................ 374
Глава восьмая ...................................................................................................................................... 386
Естественный вывод и кванторы. ..................................................................................................... 386
ГЛАВА ДЕВЯТАЯ ...................................................................................... 391
Логика П.С.Порецкого. ...................................................................................................................... 391
ГЛАВА ДЕСЯТАЯ ...................................................................................... 395
Логика Л.Кэрролла. ..................................................................................................................... 395
ГЛАВА ОДИННАДЦАТАЯ......................................................................... 401
Вероятностная логика. ....................................................................................................................... 401
ГЛАВА ДВЕНАДЦАТАЯ............................................................................ 409
Дисциплина мышления. ..................................................................................................................... 409
ЛИТЕРАТУРА ............................................................................................. 422
427
Download