УДК: 519.715
Голубева О. И.
к.т.н., доцент Томский государственный университет
ИСПОЛЬЗОВАНИЕ НЕТОЧНЫХ РЕЗУЛЬТАТОВ ДЛЯ СОКРАЩЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАТРАТ ТОЧНОГО ТРОИЧНОГО МОДЕЛИРОВАНИЯ
ПОСЛЕДОВАТЕЛЬНОСТНЫХ СХЕМ
Рассматривается метод точного троичного моделирования синхронных последовательностных схем, основанный на представлении функций в виде ROBDD графов. Моделирование выполняется с использованием функций переходов в состояния схемы. Функции переходов в состояния строятся путем перемножения функций переходов или их инверсий в соответствии с кодами состояний схемы. Неточные методы троичного моделирования, как правило, требуют меньших вычислительных затрат. Тем не менее, использование неточных методов троичного моделирования, в общем случае, приводит к ухудшению качества решений различных задач. В работе рассматривается возможность использования результатов неточных методов троичного моделирования для сокращения вычислительных затрат точного троичного моделирования.
Ключевые слова: троичное моделирование, синхронная последовательностная схема, ROBDD графы, точное троичное моделирование, неточное троичное моделирование.
Golubeva O. I.
Ph.D., Associate Professor Tomsk State University
USING INEXACT RESULTS FOR THE REDUCTION OF THE COMPUTATIONAL COSTS OF THE EXACT THREE-VALUE SIMULATION OF
SEQUENTIAL CIRCUITS
The method of the exact three-value simulation of synchronous sequential circuits, based on the ROBDD representation of functions, is considered. The simulation is performed using transition functions to the states of the circuit. The transition functions to the states are constructed by multiplying the transition functions or their inversions in accordance with the codes of states of the circuit. Usually inexact methods of the three-value simulation require less computational costs. Nevertheless, the usage of inexact methods of three-value simulation often leads to the decrease in the quality of solutions of various problems. In the work the possibility of using of the results of inexact methods of the three-value simulation to reduce the computational costs of the exact three-value simulation is considered.
Key words: three-value simulation, sequential circuits, ROBDD, exact three-value simulation, inexact three-value simulation.
Троичное моделирование логических схем может быть использовано при решении различных проблем диагностирования [1, 2].
Обозначим символом х любое значение из множества {0, 1}. Вектор а = (а0,...,аи), компоненты которого принимают свои значения из множества {0, 1, х}, будем называть троичным вектором. Будем называть значения 1 и 0 определенными, а значение х — неопределенным. Троичный вектор а = (а0,...,аи) задает интервал N(a) в булевом пространстве размерности n в который входят те и только те булевы векторы размерности n,
которые могут быть получены из вектора а заменой символов х на 0 или 1. Будем говорить, что троичный вектор а представляет множество булевых векторов Ы(а).
Поясним понятие точного троичного значения булевой функции / на троичном векторе а. Булево пространство размерности п может быть разделено на область единичных — М{, и область нулевых — М{, значений функции /. Если интервал N (а) ^ М{ (М{ ), то есть #(а) полностью лежит в области единичных (нулевых) значений, то точным значением функции / на троичном векторе а является 1(0), если N (а) П М{ ф 0 и N (а) П М{ ф 0, то
есть интервал Ща) пересекается с обеими областями, то точное троичное значение функции/ на троичном векторе а - х. Таким образом, значение Да) вычисляется по следующему правилу: если на любом булевом векторе из интервала #(а) функция / принимает значение 1(0), то /а) = 1(0), иначе /а) = х.
Будем называть псевдовыходами синхронной последовательностной схемы входы триггеров, а псевдовходами схемы — выходы триггеров.
Рассмотрим моделирование синхронных последовательностных схем на не полностью определенных входных последовательностях и не полностью определенном векторе начального состояния. Значением неопределенного входа (псевдовхода) схемы может быть как 1, так и 0; обозначим значение такого входа (псевдовхода) символом х.
Пусть / - булева функция, реализуемая выходом (псевдовыходом) комбинационного эквивалента длины к последовательностной схемы, а — входная троичная последовательность длины к, 5 — троичный вектор начального состояния. Будем называть метод троичного моделирования схемы адекватным, если он на всех а и 5 дает истинное значение булевой функции У(а,5) из {0, 1, х} или значение х вместо истинного значения 1 или 0. В дальнейшем будем рассматривать только адекватные методы троичного моделирования, поэтому слово "адекватный" будем опускать. Троичное моделирование схемы является точным, если при моделировании вычисляются точные значения У(а,5) на всех а и 5. При неточном (приближенном) троичном моделировании схемы вместо определенного значения 1 или 0 на выходе (псевдовыходе) может быть получено неопределенное значение х .
Введем на множестве {0, 1, х} отношение частичного порядка следующим образом: 0 < х, 1 < х, 1 и 0 не сравнимы.
Троичные векторы а = (а1, ..., ап) и Р = (Р1, ..., Рп) находятся в отношении а < Р, если
а, < Рь / = 1, п.
Неточные методы троичного моделирования позволяют получить значение Р на выходе (псевдовыходе) такое что У(а,5) < Р.
На практике часто используются методы неточного троичного моделирования, так как они, как правило, более быстродействующие, требуют меньших вычислительных затрат и памяти. Тем не менее, неточные методы могут приводить к ухудшению качества решений для одних задач и не позволяют решить некоторые другие задачи.
В работах [3, 4] было предложено использовать результаты неточного троичного моделирования для сокращения вычислительных затрат при выполнении точного троичного моделирования. В данной работе предлагается способ применения результатов неточного метода троичного моделирования для сокращения вычислительных затрат метода точного троичного моделирования синхронных последовательностных схем, основанного на ЯОБВБ представлении функций и рассмотренного в работах [1, 2, 7]. Этот метод является переложением на ЯОВОБ представления функций метода, предложенного в работах [4, 5] и основанного на представлении функций в виде ДНФ. В этих методах моделирование выполняется с использование функций переходов в состояния схемы. Итак, в данной работе
модифицируются ранее предложенные в работах [1, 2, 7] процедуры троичного моделирования схемы с целью дальнейшего сокращения вычислительных затрат.
Рассмотрим синхронную последовательностью схему с п входами, m выходами и p линиями обратных связей. X = {х1, ..., xn} — множество входных переменных схемы, Y = {у1, ..., Уш} — множество ее выходных переменных, Z = ^1, ..., zp} - множество внутренних переменных схемы.
Система функций переходов-выходов схемы имеет вид:
Необходимо выполнить точное троичное моделирование схемы при заданных входной троичной последовательности а°,а\...,аы и троичном векторе начального состояния 5° и получить троичную последовательность значений внутренних переменных -51,52,...,5^ и троичную последовательность выходных значений - Р°,Р\...,РЫ.
Пусть Q = {^1,...,^} - множество состояний схемы. Каждому состоянию qi е Q схемы соответствует двоичный вектор хг = (т|,..., т'р) размерности p значений внутренних переменных множества Z, будем этот вектор называть кодом состояния в переменных Z.
Сопоставим каждому состоянию qi переменную . Получим множество переменных 2' = (г[,...,г'}, где t = 2р — мощность множества Q состояний схемы.
Кодом состояния qi в переменных множества 2' является булев вектор размерности t - У1 = (у!,...,У1), в котором 1-ая компонента принимает значение 1, а все остальные компоненты - значение 0.
Пусть г - число компонент вектора 5 ' со значением х. Троичный вектор 5 ' значений переменных множества 2' представляет множество N(5') = (у*1,...,у1г} состоящее из г булевых векторов каждый из которых содержит единственную компоненту со значением 1 и представляет состояние из множества Q.
Заметим, что троичный вектор 5 ' в переменных множества 2', содержащий одну, 5-ую, компоненту со значением х, а остальные компоненты со значением 0, задает тоже множество состояний, что и троичный вектор 5 '', у которого 5-ая компонента принимает значение 1, а остальные — значение 0. Будем в дальнейшем считать эти векторы эквивалентными и иногда не будем отдельно описывать случай троичного вектора с одной единицей. Тогда между множествами состояний и троичными векторами значений переменных 2 существует взаимно однозначное соответствие.
Обозначать через 0(/) ЯОБББ представление функции/.
Получим функции ф|(хь..., хп, г!,..., гр), I = 1,т , представляющие выходы схемы, и у' (х1,..., хп, г1,..., гр ), - = 1, 1, представляющие переходы в состояния схемы, в виде ЯОБББ графов.
Система ЯОБВБ функций выходов — С(ф |), и переходов в состояния схемы — '-), имеет вид:
Процедура получения систем (2) и (3):
1. Получим каждую функцию переходов-выходов в виде ЯОБВБ. При получении ЯОБВБ для функций фг, I = 1, т, и щ, - = 1, р, сначала выполним декомпозицию Шеннона
Уг = фг(х1, ..., Хп, Z1, ..., гр), I = 1, т,
г = %(хь ..., гь ..., гр\ - = 1, р.
(1)
у = 0(ф' С^..^ хп, Zl,..., гр)), I = 1, т,
= (xl,..., хп, zl,..., гр)), - =1,1.
(2) (3)
по внутренним переменным множества 2, а затем по входным переменным множества X. Полученные таким образом ЯОБББ функций ф,, / = 1, т, обозначим через О(ф) .
2. Для каждого состояния щ схемы получим ЯОБВБ ), представляющий переходы в состояние, перемножением р ЯОБВБ функций ^ или их инверсий в соответствии с кодом состояния в переменных множества 2. Пусть т] = (т^,..., тр) — код
состояния щ в переменных 2. Если тI = 0, $ е {1,...,р}, то в произведение входит ), если т^ = 1, то в произведение входит С(^).
3. ЯОБББ (хь..., хп,2Ъ.., 2р)) зависят от внутренних переменных множества 2, а состояниям в системе (3) сопоставлены переменные множества Z' = {^1,___, г'} и ЯОБВБ
j■) представляют переходы в состояния схемы.
Определим зависимость ЯОБВВ О(ф^) и ) от переменных множества 2'
следующим образом: 0(ф\ (а, у)) = 0(ф\ (а, т)) и (а, у)) = (а, т)), где а — булев
вектор значений входных переменных, у — булев вектор значений внутренних переменных множества 2', щ — состояние схемы с кодом у в переменных множества 2', а т — код во внутренних переменных множества 2 состояния щ. Таким образом, ЯОБВБ 0(ф](х1,..., хп, 2р)) и -(х1,..., хп, хъ.., 2р)) будем рассматривать также как КОБББ:
0(ф^(хь...,хп,z1,..., г')) и -(х1,..., хп, г')). Переход к переменным множества 2' в
ЯОБВБ О (ф^) и - ) в явном виде не выполняется. Будем для функций 0(ф]) и ) в
качестве значений внутренних переменных использовать вектор 5 в переменных множества 2 или вектор 5 ' в переменных множества 2'. В первом случае рассматриваются функции О(ф; (X, 2)) и О(у} (X, 2)), во втором — функции О(ф>\ (X, 2')) и О(у} (X, 2')).
Троичное значение функции (X, 2' )) ( - (X, 2' )) ) на входном троичном
векторе а и троичном векторе значений внутренних переменных множества 2' - 5 ', определяется по общему вышеописанному правилу: если на любом булевом векторе из множества N (а, 5') функция О(ф (X, 2')) ( - (X, 2' ))) принимает значение 1(0), то
в(ф\ (а, 5 ')) = 1(0) ( О(у} (а, 5 ')) = 1(0) ), иначе в{ф\ (а, 5 ')) = х ( О(у} (а, 5 ')) = х ). Заметим, что N (а, 5') = N (а) х N (5'), где N (5') определяется по специальному вышеописанному правилу.
При выполнении п.2. процедуры будем иметь ввиду, что ЯОБВВ инверсии функции можно получить из ЯОБВВ функции заменой значений терминальных вершин на противоположные.
Здесь будем использовать те же сокращения выражений, что и в работе [7], введенные для краткости изложения.
Каждой цепи л ЯОБВБ О(ф>\) и ) из внутренних переменных множества 2,
исходящей из корня, соответствует троичный вектор 5л значений переменных множества 2 такой что: если цепь проходит через вершину, сопоставленную переменной по значению
1(0), то 5Л = 1(0), если цепь не проходит через вершину, сопоставленную то 5Л = х .
Будем говорить что цепь л ЯОБВБ ) из переменных множества 2, исходящая из
корня и приводящая в корень поддерева, состоящего из переменных множества X или в терминальную вершину, соответствует двоичному вектору т значений переменных 2, если т входит в множество булевых векторов, представленных троичным вектором 5л,
соответствующим этой цепи (т е N(5")). Любому двоичному вектору т значений переменных Z соответствует только одна такая цепь. Будем такую цепь обозначать как л:т.
Будем говорить, что цепь ЯОБВБ ' -) из переменных множества Z, исходящая из
корня, соответствует состоянию q (представляет состояние q), если она соответствует коду состояния q в переменных Z. Будем такую цепь обозначать как пя.
Обозначим через О2 (X) ЯОБВБ из входных переменных, в который приводит цепь
к11, исходящая из корня ') и соответствующая состоянию q^ Если цепь приводит в
терминальную вершину 0 (1), то О2* (X) = 0 (О2 (X) = 1). Переход в состояние q схемы возможен из состояния qi при каких-либо значениях входных переменных за один шаг, если О2 (X) ^ 0. О2 (X) представляет все векторы значений входных переменных при которых
такой переход возможен. Отметим, что О2 (X) = ' (X, т1)), где тг — код состояния q^
Назовем объединение входного и внутреннего состояний схемы его полным состоянием. Будем представлять полное состояние схемы троичным вектором а:5. Здесь а
— вектор в пространстве входных переменных X, а 5 — вектор в пространстве внутренних переменных Z или 2'.
Начальное состояние схемы представлено троичным вектором 5° в переменных Z. Чтобы выполнить точное троичное моделирование схемы, используя системы (2) и (3),
необходимо перейти от троичного вектора 5° в переменных Z к троичному вектору 5 '0 в переменных 2'. Процедура такого перехода предложена в [4], а также представлена в [2].
В работах [1, 2] представлена единая процедура вычисления троичного вектора точных значений на выходе Р и троичного вектора точных значений внутренних переменных 5 '' на троичном векторе а: 5', где 5 ' и 5 '' — векторы в переменных 2'. Процедура вычисляет точные троичные значения для отдельных компонент векторов. В работе [7] процедура вычисления компоненты троичного вектора значений внутренних переменных 5 была преобразована с целью сокращения вычислительных затрат. Это преобразование основано на следующем свойстве: компонента 5вектора 5 '' принимает значение 1 тогда
и только тогда, когда все остальные компоненты вектора 5 '', кроме я-ой, принимают значение 0. В данной работе рассматривается использование результатов неточного метода троичного моделирования схемы с целью дальнейшего сокращения вычислительных затрат, связанных с реализацией точного метода троичного моделирования.
Рассмотрим вероятностный подход к точному троичному моделированию булевых функций, предложенный в работе [6]. Он заключается в следующем: пусть необходимо вычислить троичное значение Р булевой функции Д(Х) на троичном векторе а. Троичному вектору а = (а1,...,ап) сопоставляется распределение вероятностей единичных значений
х1 хп
входных переменных Р(X) = (р1,...,рп) . Если аг = 1 (0), то рг = 1 (0), если аг = х, то рг = рг, где 0 < рг < 1, например, У2 . Например, если а = (0,х,1,х), то Р^) = (0,^,1,^) . Далее вычисляется вероятность единичного значения функции Д(Х) - Р(Д), при заданном Р(Х). Троичное значение Р получаем по следующему правилу: если Р(Д) = 1 (0), то Р = 1 (0), если 0 < РД) < 1, то р = х.
Для функции Д^(Х), представленной в виде ЯОБВБ с корнем w, вероятность Р(/м>(Х = 1) вычисляется следующим образом: если w — терминальная вершина со значением уа1ив^), то РД) = уа1ив^), иначе Р(Х) = Р(х) ■ Р(Лом,м ) + Р(х) ■ ), где х
— переменная, соответствующая вершине w, /ow(w) и high(w) — потомки вершины w.
Вычислим троичные значения Р* функций выходов С(ф-) системы (2) и троичные значения 8 " функций переходов в состояния -) системы (3), используя вероятностный подход к троичному моделированию.
Процедура 1 вычисления неточного значения компоненты 8 " , ] е {1,...,^}, вектора
следующего состояния 8 " на троичном векторе а: 8" по ЯОБВБ ) системы (3)
* Г
(выходного значения Р), г е {1,...,т}, на троичном векторе а : 8 " по ЯОБВБ )системы (2)).
1. Перейдем от вектора 8 " в переменных множества 2' к вектору 8 в переменных множества 2 (процедура такого перехода предложена в [4], а также представлена в [2]).
2. Вычислим вероятности единичных значений функций, сопоставленных вершинам КОБББ ) ( G(фi) ), на входном троичном векторе а:8 при распределении вероятностей
Р(Х) = (рХ,...,р%) таком что, если а^ = 1 (0), то рх8 = 1(0), если а^ = х, то рх8 = 12, и Р(2) = (р1рр) таком что, если 8^ = 1 (0), то рг3 = 1(0), если 8^ = х, то рг8 = У2 .
3. Получим троичное значение функции: если вероятность р в корне ЯОБВБ - ) (G(ф))) равна 1 (0), то 8 "* (Р*) присвоим значение 1 (0), если 0 < р < 1, то 8 "* (Р*)
присвоим значение х.
Заметим, что 8"- =у"(а, 8) и Р) = ф) (а, 8), то есть 8 " и Р) представляют точные значения функций (X, 2) и ф) (X, 2) на векторе а:8, при этом 8 " и Р), в общем случае, не являются точными значениями функций (X, 2" ) и ф) (X, 2") на векторе а : 8 ".
При выполнении Процедуры 1, для каждой вершины ЯОВОБ 0(^"-), ] е {1,...,^}, и G(ф)), г е {1,...,т}, получим вероятность единичного значения булевой функции,
сопоставленной этой вершине.
Троичное моделирование по Процедуре 1, в общем случае, дает неточный троичный вектор выходных значений и неточный троичный вектор значений следующего состояния, то
есть Р < Р* и 8 ""<8 "" *.
Согласно определению неточного троичного моделирования, значения 1 и 0 компонент векторов Р* и 8 " являются точными, а значения х могут быть не точными. Для уточнения результата, для компонент со значением х будем получать точные значения по процедурам, предложенным в работах [1, 2, 7], преобразованным с учетом использования неточных результатов. Также здесь несколько преобразована Процедура 1 * для дальнейшего сокращения вычислительных затрат (это преобразование следует применить и к соответствующей ранее представленной процедуре не использующей неточные результаты). Процедуры 1 и 2 используют вероятности в вершинах ЯОБВБ, полученные при выполнении Процедуры 1.
Процедура 1* вычисления точного значения компоненты Рг, г е {1,...,т}, вектора
выходных значений Р на векторе а : 8 " по ЯОБВБ G(ф)) системы (2) (Р) = ф) (а, 8") ) для
*
которой Р) = х.
1. Пусть 8 " представляет множество состояний схемы Q" = (д^,...,}. Пусть (Т1,..., Тг} — коды состояний из множества Q" в переменных 2.
2. Поочередно просматриваем двоичные векторы тг", 5 = 1, г. Проходим по соответствующей вектору тг" цепи ЯОБВБ G(ф)) из переменных 2, исходящей из корня.
Если цепь, соответствующая тг", приводит в корень поддерева, состоящего из переменных множества Х, с вероятностью в корне р такой что 0 < р < 1, то Рг присвоим значение х (ф| (а, 5') = х), процедура завершена.
3. Если все цепи привели в корни поддеревьев, состоящих из переменных множества Х, с вероятностью в корне 0 или в терминальную вершину 0, то Рг присвоим значение 0 (ф| (а, 5') = 0); если все цепи привели в корни поддеревьев, состоящих из переменных
множества Х, с вероятностью в корне 1 или в терминальную вершину 1, то Рг присвоим значение 1 (ф| (а, 5 ') = 1).
Процедура 2* вычисления точного значения компоненты 5-, ] е {1,...^}, вектора следующего состояния 5 '' на троичном векторе а: 5' по ЯОБВБ О(у'-) системы (3) (5' = у' (а, 5 ')) для которой 5 '* = х.
1. Пусть 5 ' представляет множество состояний схемы Q' = (1*,...,^ }. Пусть {т*1,..., т'г} — коды состояний из множества Q' в переменных Z.
2. Поочередно просматриваем двоичные векторы т*, 5 = 1, г. Проходим по соответствующей вектору т1' цепи ЯОБВБ О(у'-) из переменных Z, исходящей из корня.
Если цепь, соответствующая т*, приводит в корень поддерева, состоящего из переменных множества X, с вероятностью в корне отличной от 0 или в терминальную вершину 1, то 5 -
присвоим значение х (у' (а, 5 ') = х), процедура завершена.
3. 5 - присвоим значение 0 (у- (а, 5 ') = 0).
Заметим, что п. 2 в Процедурах 1* и 2* не подразумевает нескольких обходов дерева для просмотра различных цепей. Поочередный просмотр цепей может быть организован за один обход дерева.
Отметим, что если только одна компонента вектора 5 ' = х, то ее значение уточнять по Процедуре 2* не требуется.
Троичный вектор 5 представляет множество состояний схемы, в которое можно перейти за один шаг, из множества состояний, представленного троичным вектором 5 , подавая на вход схемы булевы векторы входных значений из множества, представленного входным троичным вектором а.
Как отмечается в работах [2, 7], если при моделировании Процедурами 1 и 2 в качестве вектора входных значений а взять вектор из значений х, то троичный вектор 5 '' представляет максимальное множество состояний схемы Q'' = {^,..., ^ } в которое можно
перейти за один шаг из множества состояний Q' = {1* ,...,^ }, представленного троичным
вектором 5 , при любом векторе входных значений.
В работе [2] представлена единая процедура вычисления троичного вектора значений на выходе Р и троичного вектора значений внутренних переменных 5 на троичном векторе полного состояния а : 5 , где все компоненты вектора а принимают значение х. В работе [7] процедура вычисления компоненты троичного вектора значений внутренних переменных 5 была преобразована с целью дальнейшего сокращения вычислительных затрат. Эти процедуры можно преобразовать аналогично преобразованиям, предложенным в данной работе для Процедуры 1 * и 2*. Результат этого преобразования приводить не будем для краткости изложения. Обозначим процедуры, полученные после преобразования, как Процедуры 1 и 2 .
Для точного троичного моделирования функций выходов и переходов в состояния по системам (2) и (3) на входной троичной последовательности а0,а\...,аы длины к и векторе начального состояния о выполняется пошаговое вычисление каждой компоненты векторов одной из представленных процедур к раз. Так значения Р0 и 8"1 получаем, выполняя моделирование каждой компоненты векторов Процедурой 1 *(1 ) и Процедурой 2*(2 ) на троичном векторе а0 : 8 "0, значения Р1 и 8" 2 получаем, выполняя моделирование каждой компоненты векторов Процедурой 1*(1") и Процедурой 2*(2" ) на троичном векторе а1: 8 "1 и так далее. В результате получим последовательность векторов значений на выходах Р0,Р1,...,Рк-1 и внутренних переменных множества 2': 8"1,8"2,..., 8"к.
Пошаговое моделирование по системам ЯОБВБ (2) и (3) в переменных множества 2' приводит к точному троичному моделированию на последовательности в целом. Это доказано в работах [4, 5] для ДНФ представления функций, также это непосредственно следует из свойств подробно описанных в данной работе и в работах [1, 2, 7].
Получив последовательность 8"1,8"2,..., 8"к троичных векторов значений внутренних переменных множества 2 , можно перейти к последовательности 81,82,...,8к троичных векторов значений внутренних переменных множества 2. Процедура такого перехода предложена в [4], а также представлена в [2].
Итак, в работах [1, 2, 7] предложен метод точного троичного моделирования, а в данной работе предлагается его вариация, использующая результаты неточного метода моделирования. Сравнение предложенных вариаций метода точного троичного моделирования планируется выполнить в дальнейших исследованиях.
Рассмотрим еще один способ использования неточных методов троичного моделирования, отмеченный в работе [4]. Если троичное моделирование используется для построения тестов для последовательностной схемы, то предлагается применить точное троичное моделирование сначала для исправной схемы с целью получения эталонной реакции на входную тестовую последовательность. Для схемы с неисправностью можно воспользоваться обычным троичным моделированием по правилам троичной логики по структурному описанию схемы, либо пошаговым троичным моделированием по функциям переходов-выходов с получением на каждом шаге точных результатов. Такое неточное моделирование требует значительно меньших вычислительных затрат и памяти так как не требует получения функционального описания в виде (2) и (3). Если не удается обнаружить неисправность, используя приближенное троичное моделирование, тогда можно применить для неисправной схемы точное троичное моделирование, которое позволяет получить большее количество определенных компонент и повышает вероятность обнаружения неисправности.
Пример 1.
Пусть синхронная последовательностная схема имеет два входа, два выхода и два элемента памяти; X = {Х1,Х2} — множество входных переменных схемы, У = {У1У2} — множество ее выходных переменных, 2 = {г^} — множество внутренних переменных схемы.
Сопоставим состояниям схемы коды в переменных 2:
Z\ Z\
д - (о, 0), д2 - (0,1), дз - (1,0), д4 - (1,1).
Пусть система функций переходов-выходов (1) схемы имеет вид:
ф =^1 = *2ZlZ2 V ХХ ,
ф2 = ^2 = ХЛ V ^2 .
Сопоставим каждому состоянию qг схемы переменную zг". Таким образом,
*у! _ { Г Г Г П
2 = {Z1, ^ , z3, z4} .
Таврический научный обозреватель
шшшЛауг.8с1епсе № 4 (21) — апрель 2017, часть 1
Для краткости, здесь получать ЯОБВБ функций переходов в состояния не будем, пример их получения представлен в работе [7].
Рассмотрим вычисление точного троичного значения по Процедуре 1 на примере получения троичного значения на выходе 1 по ЯОВОБ 0(ф1). Получим ЯОБВБ 0(ф1). При построении ЯОБВБ сначала выполним декомпозицию по внутренним переменным множества Z, а затем по переменным множества X. Полученный ЯОБВБ представляет 0(ф1)
Рисунок 1. — а) ЯОБВБ 0(ф\), б) иллюстрация точного троичного моделирования
•1 Л"2 ¿1 ¿2 ¿3 ¿4
выхода 1 схемы на троичном векторе (1,1) : (х, 0,0, х)
На рисунке 1б проиллюстрировано троичное моделирование выхода 1 схемы на
•1 ^2 ¿1 ¿2 ¿3 ¿4
векторе полного состояния (1,1) : (х, 0,0, х). Сначала вычислим троичное значение 0(ф1) по
¿1 ¿2 ¿3 ¿4
Процедуре 1. Перейдем от вектора 5 ' = (х, 0,0, х) в переменных 2' к вектору 5 в
21 ¿2
переменных Z: 5 = (х, х). Вычислим вероятности единичных значений функций,
сопоставленных вершинам ЯОБББ, при Р(X) = (1,1) и Р(2) = . Значения
вероятностей в вершинах графа 0(ф1) представлены на рисунке 1б. Результат моделирования: 1. Так как получено определенное значение, то оно является точным
•1 ^2 ¿1 ¿2 ¿з ¿4
значением на выходе 1 схемы на векторе (1,1):(х, 0,0, х). Следовательно, ф1((1,1),(х,0,0,х)) = 1.
а)
б)
Уг
Уг
/2
Рисунок 2. — Иллюстрация точного троичного моделирования на векторе
Х^ 23 24
(х, 1):(х,0, х,0)
Л Х2 23 24
Вычислим значение Р1 на векторе (х, 1):(х, 0, х,0). Перейдем к вектору 5 в переменных 2: 5 = (х, 0). Вычислим вероятности единичных значений функций,
Х1 Х2 21 22
сопоставленных вершинам ROBDD, при Р(X) = 1) и Р(2) = 0) . Значения вероятностей в вершинах графа С(ф1) представлены на рисунке 2а. Результат неточного
троичного моделирования — х. Так как получено неопределенное значение, то выполняем точное моделирование по Процедуре 1 . На рисунке 2б пунктиром отмечены цепи,
21 22 23 24
соответствующие состояниям, представленным вектором (х, 0, х, 0). Это состояния ql и д3 с кодами в переменных 2: (0,0) и (1,0), соответственно. Проходим по первой цепи, исходящей из корня ROBDD и соответствующей коду (0,0), она приводит в корень поддерева, состоящего из входных переменных, c вероятностью в корне 12. По Процедуре 1 * получаем
Рисунок 3. — Иллюстрация точного троичного моделирования на векторе
Х1 Х2 22 23 24
(х,0):(0, х, х,0)
На рисунке 3 проиллюстрировано вычисление значения Р1 на векторе
Х2 22 23 2 4 22 23 24 22
(х, 0) : (0, х, х, 0). Перейдем от вектора 5 ' = (0, х, х, 0) к вектору 5 в переменных 2: 5 = (х, х). Вычислим вероятности единичных значений функций, сопоставленных вершинам ROBDD,
Х1 Х2 21 22
при Р(Х) = (^,0) и Р(2) = (рисунок 3а). Результат неточного моделирования — х.
Так как получено неопределенное значение, то выполняем точное моделирование по Процедуре 1 . На рисунке 3б пунктиром отмечены цепи, соответствующие состояниям,
21 22 23 2 4
представленным вектором (0, х, х, 0). Это состояния q2 и qз с кодами в переменных 2: (0,1) и (1,0), соответственно. Проходим по первой цепи, соответствующей состоянию q2, она приводит в корень поддерева из входных переменных c вероятностью в корне 0. По Процедуре 1 необходимо пройти по следующей цепи. Она также приводит в корень поддерева c вероятностью 0. Результат моделирования — 0, то есть ф1((х,0),(0,х,х,0)) = 0.
Литература
1. Голубева, О. И. Троичное моделирование синхронных последовательностных схем, основанное на ROBDD представлении функций // Кулагинские чтения: техника и технологии производственных процессов: XVI Междунар. науч.-практ. конф.: сб. ст. [в 3 ч.] / Забайкал. гос. ун-т. Чита. 28-30 ноября 2016. — Чита: ЗабГУ, 2016. — Ч. 2. — С. 131-136.
2. Голубева, О. И. Троичное моделирование синхронных схем с памятью на последовательностях произвольной длины, основанное на ROBDD представлении функций // Таврический научный обозреватель. — 2017. — №3 (20). — С. 129-140.
3. Голубева, О. И. Троичное моделирование синхронных последовательностных схем // Математическое моделирование. Кибернетика. Информатика. — Томск: Изд-во ТГУ, 1999. — С. 53-59.
4. Голубева, О. И. Разработка и исследование методов моделирования и оценки мер тестопригодности логических схем: дис. ... канд. техн. наук: 05.13.01. — Томск, 2000. — 112 с.
5. Голубева, О. И. Коррекция результатов троичного моделирования на последовательностях произвольной длины // Доклад 2-й всероссийской конф. "Новые информационные технологии в исследовании дискретных структур". Екатеринбург. 2-5 ноября 1998. — Екатеринбург : ИМАШ УрО РАН, 1998. — С. 62-68.
6. Matrosova A., Golubeva O., Tsurikov S. A Random Approach to Correcting the Results of a Ternary Simulation. Compendium of papers. IEEE European Test Workshop. Cagliari, Italy. May 28-30, 1997.
7. Голубева, О. И. Троичное моделирование последовательностной схемы и построение на его основе входных последовательностей, обеспечивающих заданные переходы схемы // Таврический научный обозреватель. — 2017. — №4 (21). — С. 122-135.