Московский государственный университет путей сообщения
Опубликован: 06.09.2012 | Доступ: свободный | Студентов: 1233 / 168 | Оценка: 5.00 / 5.00 | Длительность: 35:22:00
Специальности: Разработчик аппаратуры
Лекция 7:

Система многозначных алфавитов и функций

< Лекция 6 || Лекция 7: 123 || Лекция 8 >
Аннотация: Лекция посвящена проблемам логического моделирования в многозначных алфавитах. Вводится универсальный 16-значный алфавит, на основе которого строится единая система многозначных алфавитов и функций, используемых в логическом моделировании и построении тестов.

В основе многозначных алфавитов, используемых в логическом моделировании и генерации тестов, лежит классический двоичный алфавит \{0,1\}, образующий вместе с базисными логическими функциями булеву алгебру B_2 (далее, для простоты, двоичный алфавит и булеву алгебру будем обозначать как B_2). В данном алфавите достаточно хорошо моделируется статическое поведение логических схем для установившихся значений сигналов. Он используется в методах моделирования и генерации тестов, основанных на использовании конечных автоматов, некоторых ранних методах построения тестов, основанных на построении различающей функции и т.п. Однако двоичные модели не учитывают переходные процессы, возникающие при изменении значений входных сигналов и обусловленные временными характеристиками элементов. Кроме того, их использование вынуждает рассматривать отдельно исправную и неисправную схемы. В силу этого получили распространение алфавиты большей значности, некоторые из которых были рассмотрены в "Модели логических элементов" .

На данный момент существует несколько десятков различных и, как правило, не имеющих друг с другом взаимосвязи логик. В основе разработки большинства из них лежит эвристический подход. То есть, алфавит строится на основе отображения процессов, происходящих в схеме. Например, символы алфавита вводятся для отображения неопределенных значений, изменений сигналов при переходных процессах, условий распространения неисправностей и т.п. В терминах построенного алфавита определяют, как правило, исходя из здравого смысла, табличным способом основные логические функции. Такой подход является неэффективным, так как для каждого нового метода проектировщик вынужден строить свою систему многозначных моделей. Кроме того, это сдерживает разработку многозначных моделей для ДУ достаточно высокой сложности, реализованных на БИС и СБИС.

Как было показано выше в "Модели логических элементов" , моделирование в различных многозначных алфавитах, например, E_3и E_5требует разработки различных многозначных моделей логических элементов. То есть для каждого алфавита (и даже способа его кодирования) надо иметь свои модели логических элементов. Если мы хотим в системе иметь программы моделирования в различных алфавитах, то при таком подходе мы должны разработать для каждого алфавита свои модели всех логических элементов. Это создает серьезные проблемы при разработке систем моделирования и генерации тестов. Поэтому желательно построить единую систему многозначных моделей, которая позволяла бы проводить моделирование и генерацию тестов в основных многозначных алфавитах.

Универсальный 16-значный алфавит

Здесь используется более совершенная единая система многозначных алфавитов и функций, основанная на универсальной 16-значной логике B_{16}. В [ 2.2 ] , [ 1.2 ] на основе синтеза систематического подхода к построению многозначных логик и 16-значной логической системы, предложенной в [ 1.2 ] , разработан единый подход, позволяющий на базе двоичного алфавита B_2 \lbrace 0,1\rbrace получить основные многозначные логики, применяемые в методах построения тестов и моделирования.

Пусть A= \lbrace a_1,a_2,…,a_k\rbrace - произвольный k-значный алфавит; F=(f_1,f_2,…,f_m) - множество k-значных функций n переменных, где f_i для i=1,2,...,m является отображением f_i:A^n\to A. Совокупность A и F образует k-значную логику. Предложено два способа получения новой многозначной логики путем расширения некоторой исходной логики (A,F) до более мощной по значности логики (\tilde{A},\tilde{F}). При первом способе новый алфавит \tilde{A} получается как подмножество некоторого декартового произведения исходного алфавита A:\tilde{A}\subseteq A\times A\times…\times A. Например, таким образом 4-значный алфавит B_4, получен из двоичного алфавита B_2: B_4=B_2\times B_2=\lbrace 00,01,10,11\rbrace =\lbrace 0,D^\prime,D,1\rbrace. Второй способ заключается в том, что новый алфавит \tilde{A} является некоторым множеством подмножеств элементов исходного алфавита: \tilde{A}\subseteq 2^A. Произвольный элемент \tilde{a_i} алфавита \tilde{A} образуется как неупорядоченное подмножество элементов алфавита A:\tilde{a_i}=a_{i1}\cup a_{i2}\cup…\cup a_{il}, где a_{ij}\in A. Например, таким способом 5-значный алфавит E_5=\lbrace 0,1,E,H,u \rbrace получается из рассмотренного выше 4-значного алфавита B_4=\lbrace 0,D^\prime,D,1\rbrace. При этом 0=\{0\} - статический ноль, 1=\{1\} - статическая единица, E=\lbrace 0\cup D^\prime \cup 1\rbrace - изменение сигнала из 0 в 1, H=\lbrace 0\cup D\cup 1\rbrace - изменение сигнала из 1 в 0, u=\lbrace 0\cup D^\prime \cup D\cup 1\rbrace - неопределенное значение сигнала.

В качестве базового алфавита принимается 4-значный алфавит B_4=\lbrace 0,D^\prime,D,1\rbrace. На его основе с помощью описанных выше методов строятся остальные многозначные алфавиты (причем не только большей значноcти). Элементы алфавита B_4имеют следующую интерпретацию: 0(1)=00(11) – значения сигналов равны; D^\prime(D)=01(10) – значения сигналов различны в разных технических состояниях ДУ или в различные моменты времени. Таким образом, на основе алфавита B_4 строится вторым способом 16-значный алфавит B_{16} ( таблица 7.1). Данный алфавит является множеством всех подмножеств алфавита B_4:B_{16}=2^{B_4}. 16-значный алфавит является базовым для задач построения тестов и моделирования в логических схемах, так как его элементы отображают все основные возможные ситуации, возникающие на линиях схемы.

Важнейшей компонентой является способ кодирования элементов многозначных алфавитов. Символы алфавита B_{16} кодируются при помощи четырех двоичных переменных x^0,x^{D^\prime},x^D,x^1 ( таблица 7.1). При этом каждому элементу алфавита B_{16} ставится в соответствие упорядоченная совокупность переменных (x^0,x^{D^\prime},x^D,x^1), являющаяся его кодом.

Таблица 7.1.
Значение Элемент Подмножество B_4 Кодирование
x^0 x^{D^\prime} x^D x^1
0 \varnothing \lbrace \varnothing \rbrace 0 0 0 0
1 1 {1} 0 0 0 1
2 D {D} 0 0 1 0
3 G1 \lbrace D\cup 1 \rbrace 0 0 1 1
4 D^\prime \lbrace D^\prime \rbrace 0 1 0 0
5 F1 \lbrace D^\prime\cup 1 \rbrace 0 1 0 1
6 D^* \lbrace D^\prime\cup D \rbrace 0 1 1 0
7 D1 \lbrace D^\prime\cup D \cup 1\rbrace 0 1 1 1
8 0 {0} 1 0 0 0
9 C \lbrace 0\cup 1 \rbrace 1 0 0 1
10 F0 \lbrace 0\cup D \rbrace 1 0 1 0
11 H \lbrace 0\cup D \cup 1 \rbrace} 1 0 1 1
12 G0 \lbrace 0\cup D^\prime\rbrace 1 1 0 0
13 E \lbrace 0\cup D^\prime\cup 1\rbrace 1 1 0 1
14 D0 \lbrace 0\cup D^\prime\cup D\rbrace 1 1 1 0
15 u \lbrace 0\cup D^\prime\cup D \cup 1\rbrace 1 1 1 1

Любая из четырех переменных является признаком присутствия на линии соответствующего ей значения. Например, если переменная x^{D^\prime}=1 то линия x может принимать значение D^\prime, в противном случае - x^{D^\prime}=0 - не может. Поэтому эти переменные называют характеристическими переменными. Отсюда следует, что код произвольного элемента алфавита B_16 является характеристическим вектором x=(x^0,x^{D^\prime},x^D,x^1). Следует отметить, что данный способ кодирования многозначных алфавитов является обобщением дизъюнктивного метода кодирования троичного алфавита, представленного табл.4.6-4.7 в "Модели логических элементов" .

Многозначные функции

Очевидно, что при определении новой многозначной логики (\tilde{A},\tilde{F} основной проблемой является построение системы многозначных функций \tilde{F} в новом алфавите \tilde{A}. В том случае, если построенная система функций замкнута относительно \tilde{A}, то в совокупности с алфавитом она образует новую многозначную логику (\tilde{A},\tilde{F}.

Логические функции в алфавите B_{16} обычно описываются двумя способами. Первый способ - табличный. Он применяется для описания функционирования простых логических вентилей. Например, для вентилей И, НЕ табличные модели представлены в Табл.7.2 и Табл.7.3. При этом элементы алфавита B_{16} кодируются целыми числами от 0 до 15, которые соответствуют их двоичным кодам ( таблица 7.1). Табличные модели для других простых вентилей имеют аналогичную форму. Например, таблица 7.4 представляет многозначную модель элемента y=a\oplus b.

Второй способ, как было показано в "Модели логических элементов" , заключается в задании многозначной функции с помощью нескольких двоичных компонент. Многозначная модель на основе кодирования 16-значного алфавита, которая использует 4-компонентное представление. Показано, что поведение многозначной функции f(X)(X=(x_1,x_2,…,x_n)),x_i=(x_i^0,x_i^{D^\prime},x_i^D,x_i^1)) для i=\overline{1,n} может быть описано с помощью четырех булевых функций f^0(X^0,X^{D^\prime},X^D,X^1), f^{D\prime}(X^0,X^{D^\prime},X^D,X^1), f^D(X^0,X^{D^\prime},X^D,X^1), f^1(X^0,X^{D^\prime},X^D,X^1),. Данные функции являются компонентами характеристического вектора f=(f^0,f^{D^\prime},f^D,f^1, соответствующего коду значения многозначной функции f(X). Характеристические функции f^0,f^{D^\prime},f^D,f^1 для базисных вентилей И, ИЛИ, НЕ представлены в табл.7.5. Для произвольной логической функции они могут быть получены с помощью ориентированных булевых дифференциалов.

Таблица 7.2.
И B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a \varnothing 1 D G1 D^\prime F1 D^* D1 0 C F0 H G0 E D0 u
0 \varnothing 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8
1 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 D 0 2 2 2 8 10 10 10 8 10 10 10 8 10 10 10
3 G1 0 3 2 3 12 15 14 15 8 11 10 11 12 15 14 15
4 D^\prime 0 4 8 12 4 4 12 12 8 12 8 12 12 12 12 12
5 F1 0 5 10 15 4 5 14 15 8 13 10 15 12 13 14 15
6 D^* 0 6 10 14 12 14 14 14 8 14 10 14 12 14 14 14
7 D1 0 7 10 15 12 15 14 15 8 15 10 15 12 15 14 15
8 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 C 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15
10 F0 8 10 10 10 8 10 10 10 8 10 10 10 8 10 10 10
11 H 8 11 10 11 12 15 15 14 8 11 10 11 12 15 14 15
12 G0 8 12 8 12 12 12 12 12 8 12 8 12 12 12 12 12
13 E 8 13 10 15 12 13 14 15 8 13 10 15 12 11 14 15
14 D0 8 14 10 14 12 14 14 14 8 14 10 14 12 14 14 14
15 U 8 15 10 15 12 15 14 15 8 15 10 15 12 15 14 15
Таблица 7.3.
НЕ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a \varnothing 1 D G1 D^\prime F1 D^* D1 0 C F0 H G0 E D0 u
\overline{a} 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15

Кроме прямых многозначных функций, описанных выше, в диагностике ДУ (прежде всего в генерации тестов) применяются также обратные многозначные функции. Обратные функции позволяют вычислить значение аргумента по заданным значениям функции и второго аргумента (как правило, их определяют для функций двух переменных). Для них, как и для прямых функций, существует две формы описания: табличная и покомпонентная. Пример табличной модели приведен в табл.7.6, где задана обратная функция для вентиля И: f =ab. В табл.7.7 представлены обратные характеристические функции основных вентилей И, ИЛИ, НЕ.

В силу симметричности обратные функции для аргумента b имеют идентичный вид и получаются заменой переменных b на a. Пример использования обратных многозначных функций в генерации тестов представлен в "Построение тестов с использованием алфавитов большой значности" .

Таблица 7.4.
y=a\oplus b 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
\varnothing 1 D G1 D^\prime F1 D^* D1 0 C F0 H G0 E D0 u
0 \varnothing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
2 D 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15
3 G1 0 12 12 12 3 15 15 15 3 15 15 15 3 15 15 15
4 D^\prime 0 2 1 3 8 10 9 11 4 6 5 7 12 14 13 15
5 F1 0 10 5 15 10 10 15 15 5 15 5 15 15 15 15 15
6 D^* 0 6 9 15 9 15 9 15 6 6 15 15 15 15 15 15
7 D1 0 14 13 15 11 15 15 15 7 8 15 15 15 15 15 15
8 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
9 C 0 9 6 15 6 15 6 15 9 9 15 15 15 15 15 15
10 F0 0 5 10 15 5 5 15 15 10 15 10 15 15 15 15 15
11 H 0 13 14 15 7 15 15 15 11 15 15 15 15 15 15 15
12 G0 0 3 3 3 12 15 15 15 12 15 15 15 15 15 15 15
13 E 0 11 7 15 14 15 15 15 13 15 15 15 15 15 15 15
14 D0 0 7 11 15 13 15 15 15 14 15 15 15 15 15 15 15
15 u 0 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
Таблица 7.5.
f f^0 f^{D\prime} f^D f^1
ab a^0\vee b^0 \vee a^{D^\prime}b^D\vee a^Db^{D^\prime} a^{D^\prime}b^1\vee a^1b^{D^\prime}\vee a^{D^\prime}b^{D^\prime} a^Db^1\vee a^1b^D \vee a^Db^D a^1b^1
a\vee b a^0b^0a0b 0 a^{D^\prime}b^0 \vee a^0b^{D^\prime}\vee a^{D^\prime}b^{D^\prime} a^Db^0\vee a^0b^D \vee a^Db^D a^1\vee b^1\vee a^{D^\prime}b^D \vee a^Db^{D^\prime}
\overline{a} a^1 a^D a^{D^\prime} a^0
Таблица 7.6.
И F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A \varnothing 1 D G1 D^\prime F1 D^* D1 0 C F0 H G0 E D0 u
0 \varnothing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 D 0 0 3 3 0 0 3 3 12 12 15 15 12 12 15 15
3 G1 0 1 3 3 4 5 7 7 12 13 15 15 12 13 15 15
4 D^\prime 0 0 0 0 5 5 5 5 10 10 10 10 15 15 15 15
5 F1 0 1 2 3 5 5 7 7 10 11 10 11 15 15 15 15
6 D^* 0 0 3 3 5 5 7 7 14 14 15 15 15 15 15 15
7 D1 0 1 3 3 5 5 7 7 14 15 15 15 15 15 15 15
8 0 0 0 0 0 0 0 0 0 15 15 15 15 15 15 15 15
9 C 0 1 2 3 4 5 6 7 15 15 15 15 15 15 15 15
10 F0 0 0 3 3 0 0 3 3 15 15 15 15 15 15 15 15
11 H 0 1 3 3 4 5 7 7 15 15 15 15 15 15 15 15
12 G0 0 0 0 0 5 5 5 5 15 15 15 15 15 15 15 15
13 E 0 1 2 3 5 5 7 7 15 15 15 15 15 15 15 15
14 D0 0 0 3 3 5 5 7 7 15 15 15 15 15 15 15 15
15 u 0 1 3 3 5 5 7 7 15 15 15 15 15 15 15 15
Таблица 7.7.
F a^0 a^{D\prime} a^D a^1
ab f^0(b^0\vee b^{D^\prime} \vee b^D\vee b^1 f^0(b^0\vee b^D)\vee f^{D^\prime}(b^{D^\prime}\vee b^1) f^0(b^0\vee b^{D^\prime}\vee f^D(b^D\vee b^1) f^0b^0\vee f^{D^prime}b^{D^\prime}\vee f^Db^D\vee f^1b^1
a\vee b f^0b^0\vee f^{D^\prime}b^{^D\prime}\vee f^Db^D\vee f^1b^1  f^{D^\prime}(b^0\vee b^{D^\prime})\vee f^1(b^D\vee b^1) f^D(b^0\vee b^D)\vee f^1(b^{D^\prime}\vee b^1 f^1(b^0 b^{D^\prime}\vee b^D\vee b^1)
\overline a f^1 f^D f^{D^\prime} f^0
< Лекция 6 || Лекция 7: 123 || Лекция 8 >
Дмитрий Медведевских
Дмитрий Медведевских

Добрый день  можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти  в известных источниках