УДК: 519.715
Голубева О. И.
к.т.н., доцент Томский государственный университет
ТРОИЧНОЕ МОДЕЛИРОВАНИЕ СИНХРОННЫХ СХЕМ С ПАМЯТЬЮ НА ПОСЛЕДОВАТЕЛЬНОСТЯХ ПРОИЗВОЛЬНОЙ ДЛИНЫ, ОСНОВАННОЕ НА ROBDD ПРЕДСТАВЛЕНИИ ФУНКЦИЙ
Предлагается метод точного троичного моделирования синхронных последовательностных схем, основанный на представлении функций в виде ROBDD графов. Моделирование выполняется с использованием ROBDD функций переходов в состояния схемы. Функции переходов в состояния схемы строятся путем перемножения функций переходов схемы или их инверсий в соответствии с кодами состояний. При построении ROBDD функций переходов-выходов схемы сначала выполняется разложение Шеннона по внутренним переменным, а затем по входным переменным схемы. Предложенный метод троичного моделирования позволяет выполнять точное троичное моделирование на входной последовательности произвольной длины, выполняя пошаговое троичное моделирование по полученным ROBDD. Данный метод является переложением на ROBDD представление функций ранее предложенного метода, основанного на ДНФ представлении функций. Показана возможность решения задач для последовательностных схем с использованием этого метода. Используя методы и свойства, описанные в данной статье, в дальнейших исследованиях планируется решить такие задачи как: построение последовательности, обеспечивающей переход в некоторое состояние из заданного множества, построение установочной последовательности и др.
Ключевые слова: троичное моделирование, синхронная последовательностная схема, ROBDD графы.
THREE-VALUE SIMULATION OF SEQUENTIAL CIRCUITS ON THE INPUT SEQUENCES OF THE ARBITRARY LENGTH, BASED ON THE ROBDD REPRESENTATION OF FUNCTIONS
The method of the exact three-value simulation of synchronous sequential circuits, based on the ROBDD representation of functions, is proposed. The simulation is performed using the ROBDD of transition functions to the states of the circuit. The transition functions to the states of the circuit are constructed by multiplying the transition functions of the circuit or their inversions in accordance with the codes of states. To obtain the ROBDD of output and transition functions of circuit the Shannon expansion fixing first the internal variables and then the input variables is performed. The proposed method of three-value simulation allows to perform the exact three-value simulation on an input sequence of arbitrary length, performing step-by-step three-value simulation using constructed ROBDDs. This method is a translation of the previously proposed method based on the DNF representation of functions into the ROBDD representation of functions. The possibility of tasks solving for sequential circuits, using this method, is demonstrated. Using the methods and properties described in this paper, in the future research it is planned to solve such tasks as: the construction of transition sequences for a sequential circuit, the construction of reset sequences, etc.
Key words: three-value simulation, sequential circuits, ROBDD.
Троичное моделирование логических схем может быть использовано при решении различных проблем диагностирования, например, таких как: построение тестов, верификация и др. Кроме того, как отмечается в работах [1, 2], троичное моделирование
синхронных последовательностных схем может применяться при построении установочных последовательностей и при построении последовательностей, обеспечивающих переход в некоторое состояние из заданного множества [3, 4]. Последняя задача решается, в частности, при определении Trojan Circuits [4].
Обозначим символом х неопределенное значение из множества {0, 1}. Вектор а = (а0,...,ап), компоненты которого принимают свои значения из множества {0, 1, х}, будем называть троичным вектором. Троичный вектор а = (а0,...,ап) задает интервал N(a) в булевом пространстве размерности n в который входят те и только те булевы векторы размерности n, которые могут быть получены из вектора а заменой символов х на 0 или 1. Будем говорить, что троичный вектор а представляет множество булевых векторов ^а).
а) б) в)
Рисунок 1. — Троичное значение функции f на векторе а: а) 1 б) 0 в) х
Поясним понятие точного троичного значения булевой функции / на троичном векторе а. Булево пространство размерности п может быть разделено на область единичных — м (, и область нулевых — м £, значений булевой функции /. Если
интервал N (а) с м £ (м £), то есть Щ(а) полностью лежит в области единичных (нулевых) значений, то точным значением функции / на троичном векторе а является 1(0), если N (а) П м £ и N (а) П м £ , то есть интервал Ща) пересекается с обеими областями,
то точное троичное значение функции / на троичном векторе а - х. Проиллюстрируем сказанное на диаграмме (рис. 1). На рисунке 1 прямоугольником представлено булево пространство размерности п. Оно разделено на области м£ и м£ . На рисунке 1а (1б) интервал Щ(а) полностью лежит в области единичных (нулевых) значений булевой функции / и в этом случае точным значением функции / на троичном векторе а является значение 1(0). На рисунке 1в интервал Щ(а) пересекается с обеими областями, в этом случае точное значение функции / на троичном векторе а - х.
Троичное моделирование схемы является точным, если при моделировании вычисляются точные значения булевых функций, реализуемых выходами (псевдовыходами) схемы на входном троичном векторе (последовательности). При неточном троичном моделировании схемы вместо определенного значения 1 или 0 на выходе или псевдовыходе может быть получено неопределенное значение х . На практике часто используется неточное троичное моделирование, например, по структурному описанию схемы по правилам троичной логики, ввиду быстродействия.
Как следует из определения точного троичного моделирования, решение задачи точного троичного моделирования схемы на входном троичном векторе а можно свести к логическому моделированию схемы на каждом булевом векторе из интервала Щ(а). Если при моделировании на некотором выходе (псевдовыходе) схемы на каждом булевом векторе из интервала Щ(а) будет получено значение 1(0), то результат троичного моделирования соответствующего выхода (псевдовыхода) — 1(0), иначе — х. При большой мощности интервала Щ(а) такое решение становится неприемлемым на практике, особенно в случае схем с памятью.
Обзор методов точного троичного моделирования комбинационных логических схем представлен в работе [7]. Предложенные в литературе точные методы троичного моделирования, выполняемые без моделирования булевых векторов, требуют получения специального функционального описания схемы, например, в виде ОДНФ, сокращенной ДНФ и т.д.
Рассмотрим синхронную последовательностную схему (рисунок 2а). Здесь C - комбинационная часть, X = (xj, ..., xn} - множество входных переменных схемы, Y = (y 1, ..., ym} - множество ее выходных переменных, Z = (zj, ..., zp} — множество внутренних переменных схемы.
У 1
с1 _^ ^ 1_^ с2
C
yk "1
а) б)
Рисунок 2. — а) Синхронная последовательностная схема; б) комбинационный эквивалент длины к синхронной последовательностной схемы
0
k - 1
k - 1
X
x
x
0
k-1
x
x
X
k
0
z
z
0
k
z
z
p
p
Поведение последовательностной схемы на последовательностях длины к может быть представлено комбинационным эквивалентом длины к (рисунок 2б).
Теоретически, точное троичное моделирование синхронных последовательностных схем на входных последовательностях произвольной длины к можно выполнить методами, разработанными для комбинационных схем, рассматривая комбинационный эквивалент последовательностной схемы длины к, но поскольку для выполнения точного моделирования требуется специальное функциональное описание, получить его уже для небольших к и средних размеров схем становится невозможным на практике. В этом случае часто ограничиваются пошаговым моделированием, при котором на каждом шаге выполняется точное троичное моделирование комбинационного эквивалента длины 1. Такое моделирование, в общем случае, ведет к потере точности на последовательности в целом.
В работах [1, 2, 5-7] нами были предложены методы точного троичного моделирования синхронных последовательностных схем на входных последовательностях произвольной длины.
Рассмотрим постановку задачи.
Пусть дана синхронная последовательностная схема (рисунок 2а). Система функций переходов-выходов комбинационного эквивалента длины один схемы имеет вид:
yi = фг(Х1, ..., Xn, Zl, ..., Zp), i = 1, m , 1) Zj = y/Xl, ..., Xn, Zl, ..., Zp), j = U p .
Необходимо выполнить точное троичное моделирование схемы при заданной входной троичной последовательности а0,а1,...,ак-1 и начальном состоянии 5°. Обозначим через 01,02,...,0к — троичную последовательность значений внутренних переменных и через р°,р1,...,рк-1 — троичную последовательность выходных значений, полученные в результате точного троичного моделирования схемы на заданной входной последовательности.
Начальное состояние схемы представлено троичным вектором 5°. Это означает, что
0
значения на псевдовходах, которым соответствуют компоненты вектора 5 со значением х, — не определены (не известны).
В данной работе выполняется дальнейшее исследование метода точного троичного моделирования синхронной последовательностной схемы, основанного на ROBDD представлении функций переходов-выходов, кратко представленного в работе [2]. Этот метод является переложением метода, предложенного в работах [5, 7] и основанного на представлении функций переходов-выходов в виде ДНФ, где внутренние переменные сопоставлены состояниям схемы.
Пусть Q = — множество состояний схемы. Каждому состоянию qi е Q схемы
соответствует некоторый двоичный вектор т1 = т\...т' размерности р значений внутренних переменных множества Z, будем этот вектор называть кодом состояния в переменных множества Z. Сопоставим каждому состоянию qi переменную г].
Выразим функции переходов-выходов комбинационного эквивалента длины один через переменные 2' = (г],..., г]), где I = 2р - мощность множества Q состояний схемы:
Уг =Ф(*1>."> , г[,..., г]) = V ... V П^г] , « = 1, т , (2)
г) =У'у (, г],..., г]) = ^ г] V ... V ), ) = 1г . (3)
Здесь Б у , Б ^ , ^ = 1, г, - ДНФ, зависящие от входных переменных множества X.
Процедура перехода от системы уравнений (1) к системам уравнений (2) и (3) подробно описана в работе [7]. Получение системы функций переходов (3) основано на перемножении ДНФ функций щ или их инверсий, в соответствии с кодами состояний в переменных множества Z. Пусть т1 = т\...т' - код состояния qi в переменных множества Z. Для получения ДНФ функции щ ], соответствующей состоянию qi, выполняется перемножение р ДНФ функций. Если т' = 0 , то в произведение входит ДНФ функции ,
если т' = 1, то в произведение входит ДНФ функции Щj без инверсии. Так, например, для
г 1 г 2
получения функции состояния с кодом 1 0 схемы с двумя внутренними переменными перемножаются ДНФ функций щ1 и Щ2.
В работе [2] кратко описан метод точного троичного моделирования, представленный в работах [5, 7]. Здесь сразу перейдем к рассмотрению метода точного троичного моделирования для ROBDD представлений функций.
Представим каждую функцию системы (1) в виде ROBDD графов. Их можно получить, например, по структурному описанию схемы. При получении ROBDD для функций выходов фг- и функций переходов Щj выберем внутренние переменные множества Z в качестве первых переменных разложения, то есть при построении ROBDD сначала выполняется разложение по внутренним переменным множества Z, а затем по входным переменным множества X. Далее, также как и при построении системы (3), для каждого состояния схемы получим ROBDD, представляющий переходы в состояние, перемножив р ROBDD функций Щj или их инверсий, в соответствии с кодами состояний в переменных множества Z. Здесь будем иметь ввиду, что ROBDD инверсии функции можно получить из ROBDD функции заменой значений терминальных вершин на противоположные. Итак, получим т ROBDD, представляющих функции выходов, которые обозначим через о (ф]) и I = 2р ROBDD - о (щ'.), представляющих переходы в состояния схемы:
у1 = С (ф\ О^.., хп, г^.., гр )) , г = Ьт , (2 )
- *
= С (Щ)(xl,..., хп,zl,..., гр)) , з = 1,г . (3 )
Заметим, что ROBDD о (ф]) и о (щ^) зависят от внутренних переменных множества Z, в отличие от функций ф] и щ' систем (2) и (3), которые зависят от переменных множества
Z'. В системах (2 ) и (3 ) нет необходимости перехода к новым переменным множества z ' в ROBDD G () и G (у' ), тем не менее, состояниям в системе (3 ) сопоставлены переменные
множества z ' и ROBDD G (у' ), j = 1, t, представляют переходы в состояния схемы.
Кодом состояния qt в переменных множества Z' является булев вектор размерности t
- у1 = у '... у ', в котором i-ая компонента принимает значение 1, а все остальные компоненты
— значение 0.
Чтобы выполнить троичное моделирование схемы, используя системы (2 ) и (3 ), необходимо перейти от троичного вектора 5°, заданного в переменных множества Z, к
троичному вектору 5'0 размерности t = 2p, представляющему начальное состояние схемы в новых переменных множества z '. Рассмотрим процедуру такого перехода, предложенную в [7].
Получение вектора 5'0 по заданному троичному вектору 5°.
Троичный вектор 50 значений переменных множества Z представляет множество булевых векторов, являющихся кодами состояний. Таким образом, 50 представляет множество состояний {q0,..., q0} в которых может находиться схема в начальный момент
г1 'r
времени. Этим состояниям в переменных z ' соответствуют булевы векторы у',..., у' r . У вектора у'j , j = 1,r, компонента ij принимает значение 1, а все остальные компоненты — значение 0. Множество векторов у ' ,..., у 'r может быть представлено троичным вектором 5'0,
в котором компоненты с номерами ij, j = 1, r, принимают значение х, а остальные компоненты — значение 0.
Начальное состояние схемы может быть также задано не троичным вектором 50, а множеством начальных состояний Q0 = {q",..., q 0 } , в этом случае получаем троичный вектор
5'0 по этому множеству. Пример 1.
Пусть схема имеет два входа, два выхода и два элемента памяти; X = {xi, x2} -множество входных переменных схемы, Y = {y1, y2} - множество ее выходных переменных, Z = {z1, z2} — множество внутренних переменных схемы. Закодируем состояния схемы:
Z1Z2
qi: 0 0 qi- 0 1
q3: 1 0 q4- 1 1
Сопоставим каждому состоянию qi переменную г'.. Таким образом, г ' = {г;, г., г., г \} . Каждому состоянию соответствует код в переменных г', например, кодом состояния q3 является булев вектор (0,0,1,0).
Пусть 5° = (1,х), тогда Лг(5°)={(1,0),(1,1)} и, описанным выше способом, получаем:
8'0 = (0,0,х ,х ) .
Заметим, что если известно, что некоторое подмножество состояний схемы в начальный момент времени недостижимо, то при моделировании можно компоненты вектора, соответствующие недостижимым состояниям, обнулить. Пример 2.
Рассмотрим схему из примера 1 с таким же кодированием состояний.
Пусть 5° = (х,х), тогда N(5) = {(0,0),(0,1),(1,0),(1,1)} и 8,0 = (х,х,х,х). Пусть известно,
что состояние (1,1) недостижимо в начальный момент времени, тогда преобразуем 5,0 к (х,х,х,0). Дальнейшее моделирование выполняется с использованием полученного преобразованного вектора.
Отметим, что троичный вектор 5 ] значений переменных множества 2' порождает г
двоичных вектора — у 1,..., у г , где г — число компонент вектора со значением х, каждый из которых содержит единственную компоненту со значением 1 и представляет состояние из множества Q состояний схемы. Таким образом, между множествами состояний и троичными векторами значений переменных 2' существует взаимно однозначное соответствие.
Назовем объединение входного и внутреннего состояний схемы его полным состоянием. Будем представлять полное состояние схемы троичным вектором а : 5. Здесь а - вектор в пространстве входных переменных X, а 5 - вектор в пространстве внутренних переменных Z или 2'.
Заметим, что каждой цепи ROBDD о (щ]) (о (ф]) ) исходящая из корня и проходящая
через вершины, сопоставленные внутренним переменным множества Z, соответствует троичный вектор 5 значений переменных множества Z такой что: если цепь проходит через
вершину, сопоставленную переменной по значению 1(0), то 5 * = 1(0), если цепь не
*
проходит через вершину, сопоставленную то 5 * = х .
Будем говорить, что цепь ROBDD о (щ' ) (о ( ф] ) ), исходящая из корня и содержащая
вершины, сопоставленные переменным множества Z, соответствует двоичному вектору т значений переменных Z, если т входит в множество булевых векторов, представленных троичным вектором, соответствующим этой цепи. Заметим, что любой двоичный вектор т значений переменных Z соответствует только одной такой цепи.
Обозначим через о2 (х) ROBDD состоящий из вершин, сопоставленных входным
переменным, в который приводит цепь, исходящая из корня ROBDD о (щ^) и
соответствующая коду в переменных Z состояния qi. Если цепь приводит в терминальную
вершину 0, то ог (х) = 0 . Если цепь приводит в терминальную вершину 1, то ог (х) = 1 .
Заметим, что переход в состояние ^ схемы возможен из состояния qi при каких-либо
значениях входных переменных, если ROBDD ог (х) отличен от 0. ROBDD ог (х)
представляет все векторы значений входных переменных при которых такой переход
возможен. Для двух различных состояний д] и д] , о2. (х) может совпадать с о2. (х).
Опишем процедуру вычисления троичных выходных значений и троичных значений переменных состояния 2' по системам ROBDD (2 ) и (3 ). Она основана на описанных выше свойствах. Процедура является переложением на ROBDD процедуры троичного моделирования, предложенной и обоснованной в работах [5, 7], где рассматриваются функции переходов-выходов, представленные в виде ДНФ. Процедуры для ДНФ и переход к процедуре для ROBDD кратко представлены в работе [2].
В процедуре для вычисления троичного значения функции, зависящей от входных переменных и представленной подграфом ROBDD, используется вероятностный подход к троичному моделированию булевых функций [8]. Он заключается в следующем: пусть
необходимо вычислить троичное значение Р булевой функции ДX) на троичном векторе а. Троичному вектору а = (а^...,ап) сопоставляется распределение вероятностей единичных
X ! X п
значений входных переменных Р (X ) = (р 1,... , рп) . Если аi = 1(0), тоpi = 1(0), если аi = х , то Р1 = рг-, где 0 < рг- < 1, например, 1/2 . Например, если а = (°,х,1,х), то Р (X ) = (0,^,1,^). Далее вычисляется вероятность единичного значения функции ДХ) - РД) при заданном Р(Х). Троичное значение Р получаем по следующему правилу: если РД) = 1(0), то Р = 1(0), если 0 < РД) < 1, то р = х.
Опишем правила подстановки троичного вектора а : 5' в системы (2 ) и (3 ). Результат вычисления (троичный вектор) обозначим символами Р и 5'', соответственно. Здесь 5' и 5'' — троичные векторы в переменных г'. Представленная далее процедура показывает
вычисление точных троичных значений для отдельных компонент векторов.
*
Процедура 1 вычисления значения компоненты 5" , ] = 1,г, вектора следующего состояния 5'' на троичном векторе а : 5' по системе ЯОБВБ (3 ) (выходного значения рг-, ' = 1, т , на векторе а : 5' по системе ЯОБББ (2*)).
1. Вычислим троичные значения функций, соответствующих корням подграфов ЯОБВБ вершины которых сопоставлены переменным множества X, на входном троичном векторе а, пользуясь вероятностным подходом к троичному моделированию. Для этого вычислим вероятности единичных значений этих функций при распределении вероятностей Р(Х) = (р1, ..., рп) таком что, если аi = 1(0), то рг = 1(0), если аi = х , то р, = 1/2 .
2. Пусть 5' представляет множество состояний схемы Q' = {д' ,..., д' }. Пусть {т''',..., т''г} - коды состояний из множества Q' в переменных 2. Для каждого двоичного вектора т'' ', ' = 1, г , пройдем по соответствующей вектору т''' цепи ЯОБВБ функции у'. ( ф '), исходящей из корня и содержащей вершины, сопоставленные переменным
множества 2. Если все цепи приводят в корни поддеревьев, состоящих из вершин, сопоставленных переменным множества X, с вероятностью в корне 1 или в терминальную вершину 1, то 5" (р.) припишем значение 1; если все цепи приводят в корни поддеревьев, состоящих из вершин, сопоставленных переменным множества X с вероятностью в корне 0 или в терминальную вершину 0, то 5"(р.) припишем значение 0; иначе 5"(р.) припишем
значение х.
Отметим, что троичный вектор 5 представляет множество состояний схемы, в которое можно перейти за один шаг, из множества состояний, представленного троичным вектором 5 , подавая на вход схемы векторы входных значений из множества, представленного входным троичным вектором а.
Заметим, что если при моделировании Процедурой 1 * в качестве вектора входных значений а взять вектор из значений х, то троичный вектор 5'' представляет максимальное множество состояний схемы Q" = {д",..., д"}, в которое можно перейти за один шаг, из
1 я
множества состояний Q' = {д' ,..., д' }, представленного троичным вектором 5', при любом векторе входных значений.
*
Моделирование Процедурой 1 позволяет определить возможность перехода в схеме
за один шаг из состояния qi в состояние ^ при каких-либо значениях входных переменных.
_ *
Для этого нужно выполнить троичное моделирование Процедурой 1 функции перехода у'.
на троичном векторе 5', представляющем одно состояние qi, взяв в качестве вектора входных значений а вектор из значений х. Переход из состояния qi в состояние ^ возможен, если при моделировании получено значение 1 или х .
Заметим, что при выполнении моделирования Процедурой 1 на векторе полного состояния а : 5' где все компоненты вектора а принимают значение х, можно не выполнять троичное моделирование подграфов, состоящих из вершин, сопоставленных входным переменным. В этом случае Процедура 1 упрощается и будет состоять только из
преобразованного пункта 2. Получим Процедуру 2 .
* -
Процедура 2 вычисления значения компоненты 5", 1 = 1, г, вектора 5'' на троичном
векторе а : 5' по системе ЯОБВВ (3 ) (выходного значения рь ' = 1, т , на троичном векторе а : 5' по системе ЯОБВБ (2 )), где все компоненты вектора а принимают значение х.
Пусть 5' представляет множество состояний схемы Q' = {д'. ,..., д'. }. Пусть {т'',..., т''г}
- коды состояний из множества Q' в переменных 2. Для каждого двоичного вектора т''',
'. = 1, г , пройдем по соответствующей вектору т''1 цепи ЯОБВБ функции у'Д ф'. ), исходящей из корня и содержащей вершины сопоставленные переменным множества 2. Если все цепи приводят в терминальную вершину 1, то 5"(р.) припишем значение 1; если все
цепи приводят в терминальную вершину 0, то 5"(р.) припишем значение 0; иначе 5"(р.) припишем значение х.
Получим последовательность значений
р0,р\...,рк-1 и 55'2,..., 5'* на входной
троичной последовательности а0,а\...,ак-1 и векторе начального состояния 5'0 выполняя пошаговое моделирование каждой компоненты векторов Процедурой 1 к раз. Здесь, значения р0 и 5' получаем, выполняя моделирование каждой компоненты векторов Процедурой 1 на троичном векторе а0: 5 '0, значения р1 и 5 '2 получаем, выполняя
моделирование каждой компоненты векторов Процедурой 1 на троичном векторе а1 : 5л и так далее. Такое пошаговое моделирование по системе
ЯОБББ (2 ) и (3 ) приводит к точному троичному моделированию на последовательности в целом [2].
Получив последовательность 5' 1,5'2,..., 5'к троичных векторов значений внутренних
переменных г', перейдем к последовательности 51,52,...,5к троичных векторов значений внутренних переменных 2. Рассмотрим процедуру такого перехода, предложенную в [7]. Получение троичного вектора 5 по троичному вектору 5'.
Троичный вектор 5' представляет г двоичных вектора {у' ',..., у' г} . Каждый из векторов представляет некоторое состояние схемы. Пусть {т н ,..., т 'г} — коды этих состояний в переменных 2. Тогда вектор 5 в у'-ой компоненте содержит 1(0), если каждый вектор из множества {т'',..., т 'г} в у'-ой компоненте содержит 1(0), иначе 5 в у'-ой компоненте содержит х.
Пример 3.
Рассмотрим схему из примера 1 с таким же кодированием состояний. Пусть 5'1 = (х,х,0,0) , тогда N (5'1) = {(1,0,0,0), (0,1,0,0)} , этому множеству соответствуют состояния q1 и q2 с кодами (0,0) и (0,1) в переменных 2. Описанным выше способом получаем: 5^ = (0,х).
Как отмечается выше, переход в состояние ^ схемы возможен из состояния qi при
каких-либо значениях входных переменных, если ЯОВОБ О^ (X) отличен от 0. В ЯОБВБ
О^ (X) приводит цепь, исходящая из корня ЯОБВВ О (у'р и соответствующая коду в
*
переменных 2 состояния qi. Из этих свойств следует Процедура 3 .
Процедура 3 поиска множества всех состояний Q, из которых можно попасть в состояние ^ за один шаг:
1. Найдем все троичные векторы 5 *, я = 1, г, значений переменных 2,
соответствующие цепям в ЯОБВБ о (у') исходящим из корня и ведущим в корни
поддеревьев, состоящих из вершин, сопоставленных входным переменным, или в терминальную вершину 1.
2. Найдем объединение всех N(5*), я = 1,г, обозначим его через Ы*. То есть
* *
N = и N (5 я) .
я
3. Искомое множество Q — это множество состояний, соответствующих кодам в переменных 2 из множества Ы*.
Пользуясь Процедурой 3 * можно получить граф переходов между состояниями схемы. Используя Процедуры 1 *, 2* или граф переходов между состояниями схемы, а также свойства, описанные в данной статье, можно решить различные задачи для синхронных последовательностных схем.
Для примера, кратко рассмотрим решение следующей задачи.
Необходимо найти максимальное множество состояний схемы, достижимых из
заданного троичным вектором 5'0 в переменных г' множества состояний и минимальное число шагов к за которое можно достигнуть любое состояние этого множества из некоторого начального состояния, представленного вектором 5'0.
Обозначим через 5* троичный вектор, представляющий искомое множество состояний. а - троичный вектор у которого все компоненты принимают значение х. Алгоритм решения задачи:
1. 5* = 5'0, 5** = ° , к =
2. Полагаем 5'=5* \ 5**. Выполняем троичное моделирование функций переходов
* . *
системы ЯОБВБ (3 ) по Процедуре 2 на векторе а : 5'. Результат выполнения процедуры — вектор 5''.
~ ** _ И4 * *
5 = 5 ; 5 =5 V 5'' .
__>¡4 >¡4
3. Если 5* = 5**, то 5* представляет искомое множество состояний, к — искомое число шагов; алгоритм завершен. Иначе к = к + 1 и возвращаемся на п. 2.
Заметим, что в рассмотренной задаче множество состояний, заданное троичным
С ,0
вектором 5' , может состоять из одного состояния.
Представленный алгоритм аналогичен алгоритмам, известным из теории графов, с тем различием, что здесь множество состояний, в которое можно перейти за один шаг, определяется с помощью Процедуры 2*. Алгоритм легко преобразуется для решения некоторых других задач для последовательностных схем.
Более подробно рассмотрим задачи, решаемые с использованием представленных Процедур, графа переходов между состояниями схемы и описанных свойств, в будущих исследованиях. В частности, в будущих исследованиях планируется решение задачи построения последовательностей, обеспечивающих переход в некоторое состояние из заданного множества, и установочных последовательностей.
Рассмотрим пример троичного моделирования по Процедуре 1 *.
Пример 4.
Рассмотрим последовательностью схему из примера 1.
а)
б)
Рисунок 3. — а) ЯОБББ функций выхода (G (ф; )) и перехода ^(фО,
б) вычисление вероятностей в вершинах, сопоставленных входным переменным, при
p (х) = 1 )
Пусть система функций переходов-выходов (1) схемы имеет вид:
— х ^ z 1 z ^ 'V Х^ х ^
ф2 — ф2 — x1z1 V .
Рассмотрим построение систем ЯОБВБ функций переходов-выходов (2 ) и (3 ). Для этого построим ЯОБВБ функций переходов-выходов 6(ф1), 6(ф2), 6(у1) и 6(ф2) выполняя разложение сначала по внутренним переменным множества Z, а затем по переменным множества X. Для построения ЯОБВБ можно использовать структурное описание схемы, в данном примере будем использовать заданное функциональное описание. Полученные ЯОБББ 6(ф1) и 6(ф2) представляют также ЯОБББ G (ф, ) и G (ф'2) функций выходов системы (2 ). Для получения ЯОБВБ функций переходов G (ф,) закодируем состояния схемы как в примере 1. Для каждого состояния qг■, I — 1,4 строится функция переходов в это состояние ф , в виде ЯОБВБ, для этого перемножаются ЯОБВБ всех р функций фj или их инверсий ф . Как описано выше, функция берется в произведение без инверсии, если в коде состояния в переменных Z соответствующая компонента принимает значение 1, иначе — берется функция с инверсией. Так, например, для получения ЯОБВБ G (ф,) для состояния q3 с кодом (1,0), необходимо перемножить ЯОБВБ функций ф1 и ф2, то есть о (ф.) — о (ф1) • о (ф2). Напомним, что ЯОБВБ отрицания функции получается из ЯОБВБ функции заменой значений терминальных вершин на противоположные. Для краткости, здесь получать ЯОБВБ функций переходов не будем.
*
Рассмотрим троичное моделирование по Процедуре 1 на примере получения троичного значения на выходе 1 по ЯОБББ о (ф.). ЯОБББ о (ф.) представлен на рис. 3а). Троичное моделирование функций переходов в состояния и других выходов выполняется аналогично по соответствующим ЯОБВБ.
Вычислим значение р1 на выходе 1 схемы на векторе полного состояния
(х 1 ): (х о х 0). Сначала покажем вычисление вероятностей в вершинах ЯОБВБ сопоставленных входным переменным.
Для функции /м,(Х), представленной в виде ЯОБВБ с корнем w, вероятность Р(/м,(Х) = 1) вычисляется следующим образом: если w — терминальная вершина, то Р(^) = va/мe(w), где уа/пв^) — значение терминальной вершины, иначе
X. X
12
р () = р (х) • р (/1о„ (ж)) + р (х) • р ((ж)), где х — переменная соответствующая вершине w,
¡а№(у) и high(w) — потомки вершины w.
Значения вероятностей в вершинах графа о (), сопоставленных входным
переменным, при вероятностях единичных значений р(X) = (/2, 1), вычисленные вышеописанным образом, представлены на рисунке 3б.
На рисунке 4а проиллюстрировано троичное моделирование выхода 1 схемы по
ЯОБВВ о () на векторе полного состояния (х 1 ): (х о х 0). Пунктиром отмечены цепи,
2! 2 2 2 з 2 4
х 0 х
соответствующие состояниям, представленным вектором (х о х о). Это состояния q1 и ^з с
кодами в переменных 2 (0,0) и (1,0), соответственно. Цепи, исходящие из корня ЯОВОБ и
соответствующие значениям переменных множества 2 (0,0) и (1,0), приводят в корень
поддерева, состоящего из вершин, сопоставленных входным переменным, с вероятностью в / *
корне /2 . По Процедуре 1 получаем значение моделирования — х. Это означает, что на выходе 1 схемы за один шаг может быть получено как значение 1, так и значение 0, если
21 2 ? 2 Т 2 Л
схема находится в состоянии, представленном троичным вектором (х о х о) при входных
векторах из множества, представленного вектором (х 1) . На рисунке 4 на дугах, исходящих из вершин, сопоставленных внутренним переменным, опущены значения, они такие же, как на рисунок 3а.
На рисунке 4б проиллюстрировано троичное моделирование выхода 1 схемы на
2 1 2 Л 2 Л 2 Л
векторе полного состояния (1 1 ): (х о о х ) по Процедуре 1 . Результат моделирования — 1. На рисунке 4в проиллюстрировано моделирование выхода 1 схемы на векторе
2. 2л 2л 2„
полного состояния (о о ): (х х х о). Результат моделирования — 0.
©
©
©
а)
б)
в)
Рисунок 4. — Иллюстрация троичного моделирования выхода 1 схемы на векторах
полного состояния: а) (х 1):( х о х о) , б) ( 1 1 ) : ( х оо х ) , в) ( о о ) : ( ххх о) .
X, X
1 " 2
X, X
12
X. X
1 "2
Литература
1. Голубева, О. И. Моделирование синхронных схем с памятью на не полностью определенных входных последовательностях произвольной длины // Тез. докл. седьмой Российской конференции с международным участием "Новые информационные технологии в исследовании сложных структур". — 2-5 сентября 2008. — Томск: Изд-во НТЛ, 2008. — С. 46.
2. Голубева, О. И. Троичное моделирование синхронных последовательностных схем, основанное на ЯОБВБ представлении функций // Кулагинские чтения: техника и технологии
производственных процессов: XVI Междунар. науч.-практ. конф.: сб. ст. [в 3 ч.] / Забайкал. гос. ун-т. 28-30 ноября 2016. - Чита: ЗабГУ, 2016. - Ч. 2. — С. 131-136.
3. David R., Thevenod-Fosse P. Minimal Detecting Transition Sequences: Application to Random Testing // IEEE Trans. on Computers. — 1980. — Vol. C-29, № 6. — P. 514-518.
4. Lenox J., Tragoudas S., Towards Trojan Circuit Detection with Maximum State Transition Exploration. Proc. of the IEEE International On-Line Test Symposium (IOLTS). Elia, Halkidiki, Greece. July 6 - 8, 2015. — P. 50-52.
5. Голубева, О. И. Коррекция результатов троичного моделирования на последовательностях произвольной длины // Докл. 2-й всероссийской конф. "Новые информационные технологии в исследовании дискретных структур". 2-5 ноября. — 1998.
- Екатеринбург: ИМАШ УрО РАН, 1998. - С. 62-68.
6. Голубева, О. И. Троичное моделирование синхронных последовательностных схем // Математическое моделирование. Кибернетика. Информатика. — Томск: Изд-во ТГУ, 1999.
— С. 53-59.
7. Голубева, О. И. Разработка и исследование методов моделирования и оценки мер тестопригодности логических схем: дис. ... канд. техн. наук: 05.13.01. — Томск, 2000. — 112 с.
8. 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.