Научная статья на тему 'Интервальные расширения булевых функций и троичное моделирование последовательностных схем'

Интервальные расширения булевых функций и троичное моделирование последовательностных схем Текст научной статьи по специальности «Математика»

CC BY
169
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНТЕРВАЛЬНОЕ РАСШИРЕНИЕ БУЛЕВОЙ ФУНКЦИИ / ФУНКЦИИ ПЕРЕХОДОВ В СОСТОЯНИЯ / ТОЧНОЕ ТРОИЧНОЕ МОДЕЛИРОВАНИЕ / ПОШАГОВОЕ МОДЕЛИРОВАНИЕ / СИНХРОННАЯ ПОСЛЕДОВАТЕЛЬНОСТНАЯ СХЕМА / ROBDD ГРАФЫ / INTERVAL EXTENSION OF A BOOLEAN FUNCTION / THE TRANSITION FUNCTIONS TO STATES / EXACT THREE-VALUE SIMULATION / STEP-BY-STEP SIMULATION / SEQUENTIAL CIRCUITS / ROBDD

Аннотация научной статьи по математике, автор научной работы — Голубева О. И.

В работе рассматривается понятие интервального расширения булевой функции, которое позволяет определить значения функции на интервалах булевых векторов. Задача точного троичного моделирования комбинационных и синхронных последовательностных схем может рассматриваться как задача вычисления значений интервальных расширений булевых функций и логических автоматов, соответственно. Представлены общие правила точного пошагового троичного моделирования синхронных последовательностных схем на основе функций переходов в состояния. На этих правилах основан ранее предложенный метод троичного моделирования по ДНФ представлению функций. Метод в дальнейшем был переложен на ROBDD представление функций. Кроме того, в данной работе ранее предложенный метод точного пошагового троичного моделирования по ROBDD представлению функций преобразуется к более универсальному виду.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Голубева О. И.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

INTERVAL EXTENSIONS OF BOOLEAN FUNCTIONS AND THREE-VALUE SIMULATION OF SEQUENTIAL CIRCUITS

In this paper, the notion of the interval extension of a Boolean function is considered, which allows determining the values of function on intervals of Boolean vectors. The task of exact three-value simulation of combinational and sequential circuits can be considered as a task of calculating the values of interval extensions of Boolean functions and logical automata, correspondingly. The general rules of exact step-by-step three-value simulation of synchronous sequential circuits based on the transition functions to states are presented. The previously proposed method of three-value simulation for DNF representation of functions is based on these rules. The method was later converted into the ROBDD representation of the functions. In addition, in this paper, the previously proposed method of exact step-by-step three-value simulation using the ROBDD representation of functions is transformed to a more universal form.

Текст научной работы на тему «Интервальные расширения булевых функций и троичное моделирование последовательностных схем»

ТЕХНИЧЕСКИЕ НАУКИ

УДК: 519.715

Голубева О. И.

к. т. н., доцент Томский государственный университет

ИНТЕРВАЛЬНЫЕ РАСШИРЕНИЯ БУЛЕВЫХ ФУНКЦИЙ И ТРОИЧНОЕ МОДЕЛИРОВАНИЕ ПОСЛЕДОВАТЕЛЬНОСТНЫХ СХЕМ

В работе рассматривается понятие интервального расширения булевой функции, которое позволяет определить значения функции на интервалах булевых векторов. Задача точного троичного моделирования комбинационных и синхронных последовательностных схем может рассматриваться как задача вычисления значений интервальных расширений булевых функций и логических автоматов, соответственно. Представлены общие правила точного пошагового троичного моделирования синхронных последовательностных схем на основе функций переходов в состояния. На этих правилах основан ранее предложенный метод троичного моделирования по ДНФ представлению функций. Метод в дальнейшем был переложен на ROBDD представление функций. Кроме того, в данной работе ранее предложенный метод точного пошагового троичного моделирования по ROBDD представлению функций преобразуется к более универсальному виду.

Ключевые слова: интервальное расширение булевой функции, функции переходов в состояния, точное троичное моделирование, пошаговое моделирование, синхронная последовательностная схема, ROBDD графы.

Golubeva O. I.

Ph.D., Associate Professor Tomsk State University

INTERVAL EXTENSIONS OF BOOLEAN FUNCTIONS AND THREE-VALUE SIMULATION OF SEQUENTIAL CIRCUITS

In this paper, the notion of the interval extension of a Boolean function is considered, which allows determining the values offunction on intervals of Boolean vectors. The task of exact three-value simulation of combinational and sequential circuits can be considered as a task of calculating the values of interval extensions of Boolean functions and logical automata, correspondingly. The general rules of exact step-by-step three-value simulation of synchronous sequential circuits based on the transition functions to states are presented. The previously proposed method of three-value simulation for DNF representation of functions is based on these rules. The method was later converted into the ROBDD representation of the functions. In addition, in this paper, the previously proposed method of exact step-by-step three-value simulation using the ROBDD representation of functions is transformed to a more universal form.

Key words: interval extension of a Boolean function, the transition functions to states, exact three-value simulation, step-by-step simulation, sequential circuits, ROBDD.

Рассмотрим моделирование синхронных последовательностных схем на не полностью определенных входных последовательностях и не полностью определенном векторе начального состояния. Значением неопределенного входа (псевдовхода) схемы может быть как 1, так и 0; обозначим значение такого входа (псевдовхода) символом х.

Будем называть псевдовыходами синхронной последовательностной схемы входы триггеров, а псевдовходами схемы — выходы триггеров.

Для формальной постановки задачи троичного моделирования в работе [1] вводятся понятия интервального расширения булевой функции и интервального расширения логического автомата.

В работе [1] рассматриваются как полностью определенные, так и частичные булевы функции и логические автоматы. Здесь для краткости приведем только понятие интервального расширения полностью определенной булевой функции.

у

Обозначим через Е область определения функции /. Назовем функциюХ(х1,х2,...,хп) полностью определенной булевой функцией, если Е{ - ЕП, и частичной булевой функцией,

если Е{ с Е2п , где Е2 = {0,1} и Е2п - Д2хЕ2х...хЕ2 .

-V-

п раз

Далее рассмотрим полностью определенную булеву функцию _/(х1, х2, ..., хп). Обозначим через М{ - (у е Е2 : {(у) -1} и М{ - (у е Е^ : {(у) - 0} . Очевидно, что

М{ и М{ - Е2 . Будем множество М( называть областью единичных значений функции /, а

множество М{ - областью нулевых значений функции/.

Будем в дальнейшем х рассматривать как символ, обозначающий любой из элементов множества {0,1}. Будем называть значения 1 и 0 определенными, а значение х -неопределенным.

Вектор а = (а0,...,ап), компоненты которого принимают свои значения из множества {0,1,х}, будем называть троичным вектором.

Назовем троичной функцией - функцию_/(х1,х2, ...,хп), аргументы которой определены на множестве Ех = {0,1,х}, и такую, что_/(а1,а2,...,ап) е Ех, когда аг- е Ех, г - 1,п . Обозначим

Ех- Дх х Е Хх... х Ех,.

п раз

Введем на множестве Ех = {0,1,х} отношение частичного порядка следующим образом: 0 < х, 1 < х, 1 и 0 не сравнимы.

Троичные векторы а = (а1,...,ап) и Р = (р1,...,рп) находятся в отношении а < Р, если

аг < рг, г - 1, п.

Множество булевых векторов размерности п, являющееся декартовым произведением N х N х ... х Ып, где N г - 1,п, - одно из трех множеств (0} , (1} или {0,1}, называется интервалом булевых векторов.

Интервал N булевых векторов размерности п называется минимальным покрывающим интервалом множества булевых векторов М с Е2, если М с N, и не существует интервала булевых векторов N такого, что М с N" с N'.

Троичный вектор а = (а1,...,ап) представляет интервал булевых векторов #(а), такой что N (а) - (у е Еп : у < а}.

Определение. Назовем интервальным расширением полностью определенной булевой функции У(х1, ..., хп) (Е -Еп) такую полностью определенную троичную функцию

{х (х1,..., хп) ( Е{ - Ех ), что значение {х (X) на троичном векторе ае Е^ определяется следующим образом:

1) {х (а) -1, если для Уу е #(а): Ху) = 1 ( N (а) с М{ );

2) {х (а) - 0 , если для Уу е #(а):Ху) = 0 (N(а) сМ^ );

3) fх (а) = х , если Зу, е М(а): fy) = 1 и Зу е N(a):f(y7) = 0 (N(a) ПMf и N (а) П Mf ^0 ).

Проиллюстрируем значение интервального расширения булевой функции fх xn ) на троичном векторе а = (а^...,ап) на диаграмме.

а) б) в)

Рисунок 1. — а) fх (а) = 1, б) fх (а) = 0 , в) fх (а) = х

На рисунке 1 прямоугольником представлено булево пространство размерности п. Оно разделено на области М{ и Mf. Интервал ^а) может полностью содержаться в области единичных (нулевых) значений, как на рисунке 1а (1б), в этом случае fх (а) = 1(0) или же может пересекаться с обеими областями, как на рисунке 1в, тогда fх (а) = х .

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

Далее будем говорить: "троичное значение булевой функции fX) на троичном векторе а", имея в виду троичное значение интервального расширения булевой функции fX) -fх ( X ), на троичном векторе а. Будем иногда говорить: "троичное моделирование булевой

функции fX) на троичном векторе а", имея в виду вычисление троичного значения fх (а ).

Рассмотрим троичное моделирование синхронных последовательностных схем. Пусть f — булева функция, реализуемая выходом (псевдовыходом) комбинационного эквивалента длины к последовательностной схемы, а - входная троичная последовательность длины к, ô - троичный вектор начального состояния. Будем называть метод троичного моделирования схемы адекватным, если он на всех а и ô дает истинное значение булевой функцииУ(а,0) из {0,1, х} или значение х вместо истинного значения 1 или 0. В дальнейшем будем рассматривать только адекватные методы троичного моделирования, поэтому слово "адекватный" будем опускать. Троичное моделирование схемы является точным, если при моделировании вычисляются точные значения У(а,0) на всех а и ô. При неточном (приближенном) троичном моделировании схемы вместо определенного значения 1 или 0 на выходе (псевдовыходе) может быть получено неопределенное значение х.

Неточные методы троичного моделирования позволяют получить значение Р на выходе (псевдовыходе) такое что У(а,0) < р.

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

Троичное моделирование логических схем может быть использовано при решении различных проблем диагностирования [1, 3-5].

В частности, троичное моделирование логических схем может применяться при построении тестовых последовательностей. Моделирование является одним из основных средств при построении тестов для схем с памятью. Моделирование может сочетаться с регулярными методами построения тестов, которые позволяют строить тесты для труднообнаружимых неисправностей схемы. Сочетание регулярных методов с моделированием дает возможность эффективно строить тесты для схем большой сложности [1]. Неточность троичного моделирования ведет к ухудшению качества тестовой последовательности, построенной на основе такого моделирования.

В работах [1, 2] предложен метод точного пошагового троичного моделирования синхронных последовательностных схем на входных последовательностях произвольной длины, основанный на использование функций переходов в состояния схемы. В работах [1, 2] методы используют ДНФ представление функций переходов-выходов схемы. В работах [3, 4] предложенный метод был переложен на ЯОБВВ представление функций. В работах [5, 6] выполнено дальнейшее исследование метода, рассматриваются решения задач с его применением и возможность использования неточных результатов при выполнении точного троичного моделирования. В данной работе представлены идеи, положенные в основу разработанного в работах [1, 2] метода для ДНФ представления функций, которые могут быть применены при разработке методов точного пошагового троичного моделирования синхронных последовательностных схем для любого представления функций переходов-выходов. Показано, что эти идеи реализованы в методе точного троичного моделирования, основанного на ЯОВОБ представлении функций переходов-выходов. Кроме того, в данной работе процедуры троичного моделирования на основе ЯОБВБ преобразованы к более универсальному виду по сравнению с ранее предложенными процедурами.

Рассмотрим синхронную последовательностью схему с п входами, т выходами и р линиями обратных связей. X = {х1, ..., хп} - множество входных переменных схемы, У = {у1, ..., ут} - множество ее выходных переменных, 2 = {г^ ..., 2р} — множество внутренних переменных схемы.

Система функций переходов-выходов схемы имеет вид:

Уг = фг(Х1, ..., Хп, 21, ..., 1р), i = 1, ш ,

- (1)

2 = %(*1, ..., Хп, 21, ..., 2р), ] = ^ р .

Необходимо выполнить точное троичное моделирование схемы при заданных

входной троичной последовательности а0,а1,...,а^-1 и троичном векторе начального

£0

состояния о и получить троичную последовательность значений внутренних переменных — 81,82,...,8к и троичную последовательность выходных значений — р0,р1,...,рк-1.

Назовем объединение входного и внутреннего состояний схемы его полным состоянием. Будем представлять полное состояние схемы троичным вектором (а,5). Здесь а - вектор значений входных переменных X, а 8 - вектор значений внутренних переменных 2.

Назовем пошаговым вычислением выходной троичной последовательности схемы Р ,Р ,...,Р и троичной последовательности значений внутренних переменных 8 ,8 ,...,8 при заданной входной троичной последовательности а0,а1,...,ак-1 и троичном векторе

0 *о

начального состояния 8 вычисление, выполняемое следующим образом. Значения Р и 8 получаем, выполняя моделирование на троичном векторе (а0,80) по функциональному или

структурному описанию комбинационного эквивалента схемы длины один, значения Р и

*2 1 * 1 8 получаем, выполняя моделирование на троичном векторе (а ,8 ), и так далее. Пошаговое

моделирование, в общем случае, является неточным, то есть р1 < Р 1 и 5 < 57', ' = 0, к -1, ] = й.

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

Пусть выполнено точное троичное моделирование функций переходов системы (1) на векторе (а°,50), представляющем полное состояние, и получен вектор значений внутренних переменных 5 . 5 представляет минимальный покрывающий интервал множества булевых векторов значений переменных Z, а не точное множество этих векторов. Таким образом, множество достижимых за один шаг из множества Щ(а0,50) состояний схемы может быть подмножеством множества N(5 ). На следующем шаге моделирования будет получен вектор 5 , представляющий состояния, достижимые из полных состояний Щ(а ,5 ), то есть из множества, расширенного по отношению к множеству достижимых на предыдущем шаге состояний. Здесь уже вектор выходных значений Р 2 также может оказаться неточным, т.е., р2 < Р 2. Таким образом, с каждым шагом моделирования количество неверно вычисленных неопределенных компонент может возрастать.

Для того чтобы на каждом шаге находить точное множество состояний, в которое может попасть схема из заданного множества полных состояний, в работах [1, 2] предлагается выполнять троичное моделирование с использованием функций переходов в состояния. Рассмотрим эти функции, их построение и свойства.

Каждому двоичному вектору т' = (т|,..., т'р) размерности р значений внутренних

переменных множества Z соответствует состояние q1 схемы. Будем вектор т' = (т1,..., т'р) называть кодом состояния в переменных Z. Таким образом, Q = {ц1,...,ц(} — множество состояний схемы, где I = 2р - мощность множества Q.

Сопоставим каждому состоянию е Q переменную х\. Получим множество

переменных 2' = .

Кодом состояния в переменных множества 2' является булев вектор размерности I — у' = (у!,..., У/), в котором 1-ая компонента принимает значение 1, а все остальные компоненты — значение 0.

Пусть 5 ' — троичный вектор значений переменных множества 2', и г — число компонент вектора 5 ' со значением х. Троичный вектор 5 ' представляет множество N(5') = {у'1,...,у'г} состоящее из г булевых векторов каждый из которых является кодом состояния qi в переменных 2' и содержит единственную компоненту со значением 1.

Таким образом, вектор 5 представляет г состояний схемы, номера состояний соответствуют номерам компонент вектора 5 со значением х.

Заметим, что N (а, 5') = N (а) х N (5'), где N (5') определяется по специальному вышеописанному правилу.

Пример.

Пусть схема имеет две внутренние переменные Z = {г\, 22}. Тогда р = 2 и I = 2р = 4.

2 = z2,zз,¿4} .

Рассмотри состояние ц2, его код в переменных 2 ' - (0,1,0,0).

Рассмотрим троичный вектор 5 ' = (х,0,х,0) значений переменных множества 2'. N(5') = {у1,у3} = {(1,0,0,0),(0,0,1,0)}. 5 ' = (х,0,х,0) представляет два состояния: и

Заметим, что троичный вектор 5 ' в переменных множества 2', содержащий одну, 5-ую, компоненту со значением х, а остальные компоненты со значением 0, задает тоже

множество состояний, что и троичный вектор 8", у которого s-ая компонента принимает значение 1, а остальные - значение 0. Будем в дальнейшем считать эти векторы эквивалентными и иногда не будем отдельно описывать случай троичного вектора с одной единицей. Тогда между множествами состояний и троичными векторами значений переменных 2' существует взаимно однозначное соответствие.

В дальнейшем будем полное состояние схемы представлять троичным вектором (а,8), где 8 - вектор в пространстве внутренних переменных 2 или 2'.

Пусть ^(Х, 2) — произвольная булева функция, зависящая от переменных множества X и 2 (например, функция фг или у). Определим зависимость функции ^(Х, 2) от переменных множества 2' следующим образом: <^(а, у) = <^(а, т) , где а - булев вектор значений входных переменных, у - булев вектор значений внутренних переменных множества 2', q — состояние схемы с кодом у в переменных множества 2', а т - код во внутренних переменных множества 2 состояния q. Таким образом, функцию <^(Х, 2) будем рассматривать также как частичную функцию X, 2'), где переменные множества 2' определены на вышеописанных векторах значений. Переход к переменным множества 2' для функции ^(Х, 2) в явном виде не выполняется. Будем для функции <^(Х, 2) в качестве значений внутренних переменных использовать вектор 8 в переменных множества 2 или вектор 8" в переменных множества 2'. В первом случае рассматривается функция <^(Х, 2), во втором -функция £(Х, 2').

Троичное значение функции C¡(X, 2') на троичном векторе полного состояния (а, 8") определяется по общему вышеописанному правилу: если на любом булевом векторе из множества N (а, 8") функция X, 2') принимает значение 1(0), то X, 2') = 1(0), иначе С(X, 2') = х . _

Получим функции у" (х1,..., хи, ^,..., г р ), - = 1, t, представляющие переход ы в состояния схемы.

Процедура 1 получения функции у' (хь..., хп, г1,..., 2р), - е {1,..., ^, перехода в состояние ^ схемы.

Получим функцию у-, представляющую переходы в состояние qj, перемножением р функций у^ или их инверсий в соответствии с кодом состояния в переменных множества 2. Пусть т- = (т-,..., тр) - код состояния ^ в переменных 2. Если т^ = 1, ^ е {1,...,р}, то в

произведение входит уй если т- = 0 , то в произведение входит у5.

В работах [1, 2] предложен метод точного пошагового троичного моделирования синхронных последовательностных схем для ДНФ представления функций. В работе [1] представлены формальные доказательства корректности метода. Здесь представим идеи, на которых основан предложенный в работах [1, 2] метод и его доказательства, а именно:

1) правила, обеспечивающие точное моделирование;

2) правила сокращения вычислений;

3) организацию процесса вычисления.

Правила 1 точного пошагового троичного моделирования синхронных последовательностных схем.

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. Пусть X, 2') - функция, зависящая от входных переменных множества Х и внутренних переменных множества 2 (например, функция фг, или у - ). Необходимо

вычислить значение функции на троичном векторе N (а, 5'). N(а,5') = ^а)хN(5') = {^а,у1),...,^а,уг)}, поэтому вычислить значение С(а,5 ') можно, вычислив значение функции на каждом векторе из множества {Щ(а,у1),...,Щ(а,уг)}. Поскольку у1 — это булев вектор, то С(Х,У) зависит от переменных множества X. Пусть С(Х,У) = ^(Х). Вычислить значение ^(Х) на троичном векторе а можно любым методом точного троичного моделирования полностью определенной булевой функции. Следовательно, С (а, 5 ') можно вычислить по следующему правилу:

если Уу' е N(5 '): £'(а) = 1, то С(а, 5') = 1; если Уу' е N(5 '): £'(а) = 0, то С(а, 5 ') = 0 ; иначе С (а, 5' ) = х.

Заметим, что представленное правило позволяет остановить вычисление и присвоить С(а, 5 ') значение х, как только выясниться, что: 1) Зу' е N(5') : (а) = х или 2) Зуе N(5 '):

^ (а) = 1 и Зу'2 е N(5 ') : (а) = 0.

Правила 2 сокращения вычислений.

1. Для упрощения вычисления ^(а) = С(а,у1), формула функции С(X, 2') строится

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

Такое представление получаем для функций выходов, назовем их — ф', и функций

переходов в состояния - у '■.

2. При моделировании функций переходов в состояния принимается во внимание свойство: компонента 5" вектора значений внутренних переменных множества 2' - 5 ',

принимает значение 1 тогда и только тогда, когда все остальные компоненты вектора 5 ', кроме 5-ой, принимают значение 0.

Это свойство позволяет при вычислении вектора 5 ' значений функций переходов в состояния для каждой функции переходов определять не точное значение, а лишь то, равно оно 0 или отлично от 0. Если компонента вектора 5 ' не равна 0, то присваиваем ей значение х. После вычисления всех компонент вектора 5 корректируем результат следующим образом: если в векторе 5 '' 5-ая компонента принимает значение х, а все остальные компоненты — значение 0, тогда компоненте 5" присваиваем значение 1.

Представленное свойство позволяет остановить вычисление и присвоить у'- (а, 5 ')

значение х, как только выясниться, что Зуе N(5' ): у'(а, у'1) = х или Зу'2 е N(5 ') :

у' (а, у'2) = 1.

Процесс вычисления 1 с использованием функций выходов ф ', г = 1, т , и функций переходов в состояния у '■, ' = 1, t.

1. Начальное состояние схемы представлено троичным вектором 50 в переменных Z (или подмножеством состояний Q0 ^ Q). Чтобы выполнить точное троичное моделирование схемы, используя функции переходов в состояния, необходимо перейти от троичного

вектора 50 в переменных Z (от Q0) к троичному вектору 5 '0 в переменных 2'. Процедура такого перехода предложена в [1] (а также представлена в [4]).

2. Для точного троичного моделирования функций выходов ф ', г = 1, ш , и переходов в

состояния схемы у -, г = 1, t, на входной троичной последовательности а0,а1,...,ак-1 длины к

и векторе начального состояния 8'0 выполняется пошаговое моделирование. На каждом шаге вычисляется значение каждой функции ф и у - по процедурам, реализующим п. 2 Правил 1 моделирования и Правила 2 сокращения вычислений. В результате получим последовательность векторов значений на выходах р0,р1,...,рк-1 и внутренних переменных множества 2': 8'1,8'2,..., 8'к.

3. Получив последовательность 8'1,8'2,...,8'к троичных векторов значений внутренних переменных множества 2', можно перейти к последовательности 81,82,...,8к троичных векторов значений внутренних переменных множества 2. Процедура такого перехода предложена в [1] (а также представлена в [4]).

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

Разработанный в работах [1, 2] на основе описанных идей метод точного пошагового троичного моделирования последовательностных схем для ДНФ представления функций, в работах [3-6] был переложен на ЯОВОБ представление функций. В представленных в работах [3-6] методах для вычисления троичного значения булевой функции, зависящей от переменных множества Х, использовался вероятностный подход. В данной работе представим более универсальные процедуры моделирования без привязки к конкретному методу троичного моделирования булевой функции.

Обозначать через 0(/) ЯОБББ представление функции/.

Получим функции (х1,..., хп, г1,..., гр ) и у'- (х1,..., хп, г1,..., гр), - = 1, t, представляющие переходы в состояния схемы, в виде ЯОВОБ графов.

Система ЯОБВБ функций выходов - О (ф '), и переходов в состояния схемы - О (у '),

имеет вид:

У = О(ф1 (xl,..., хп, Zl,..., 2р)), 1 = l, Ш , (2)

2) = О(у- (X1,..., хп, Z1,..., 2р)), - = 1. (3)

Процедура 2 получения систем (2) и (3).

1. Получим каждую функцию переходов-выходов в виде ЯОВОБ. При получении ЯОБВБ для функций фг, г = 1, ш , и уj, - = 1, р , сначала выполним декомпозицию Шеннона по внутренним переменным множества 2, а затем по входным переменным множества Х. Полученные таким образом КОБББ функций фг, г = 1, ш , обозначим через О(ф'г) .

2. Для каждого состояния ^ схемы получим ЯОБВБ О(у'), представляющий

переходы в состояние, перемножением р ЯОБВБ функций у^ или их инверсий в соответствии с кодом состояния в переменных множества 2 как показано в Процедуре 1.

3. ЯОБВВ О(ф>\ (X, 2)) и О(у (X, 2)) зависят от внутренних переменных множества 2, а состояниям в системе (3) сопоставлены переменные множества 2 '.

Зависимость ЯОБВБ О(ф>\) и О(у'-) от переменных множества 2' определяется

вышеописанным образом. Таким образом, КОБББ О(ф1 (х1,..., хп, г1,..., гр)) и

G(у"■(хь..., хп, ¿1,..., 2р)) будем рассматривать также как ЯОБББ G(ф'■ (хь...,хп,¿¡,..., )) и

G(у"■ (х1,..., хп, ¿1,..., 2')) частичных функций ф' (X, 2') и у'- (X, 2'). Переход к переменным

множества 2' в ЯОБВБ G(ф') и G(у"■) в явном виде не выполняется. Будем для функций

G(ф ') и С(у') в качестве значений внутренних переменных использовать вектор 5 в

переменных множества Z или вектор 5 ' в переменных множества 2'. В первом случае рассматриваются функции G(ф' (X, 2)) и G (у'■ (X, 2)), во втором - функции G(ф'■ (X, 2')) и

в(у '■ (X, 2 ')).

При выполнении п.2. Процедуры 2 будем иметь ввиду, что ЯОБВБ инверсии функции можно получить из ЯОБВБ функции заменой значений терминальных вершин на противоположные.

Здесь будем использовать те же сокращения выражений, что и в работе [5], введенные для краткости изложения.

Пусть при получении ЯОВОБ G(С(X,Z)) функции сначала выполнена

декомпозиция Шеннона по внутренним переменным множества Z, а затем по входным переменным множества X.

Каждой цепи л ЯОБВБ G(С(X,Z)) из внутренних переменных множества Z, исходящей из корня, соответствует троичный вектор 5л значений переменных множества Z такой что: если цепь проходит через вершину, сопоставленную переменной г5, по значению 1(0), то

5Л = 1(0), если цепь не проходит через вершину, сопоставленную г5, то 5Л = х.

Будем говорить, что цепь л ЯОБВБ G(С(X,Z)) из переменных множества Z, исходящая из корня и приводящая в корень подграфа, состоящего из переменных множества X или в терминальную вершину, соответствует двоичному вектору т значений переменных Z, если т е Щ(5л). Любому двоичному вектору т значений переменных Z соответствует только одна такая цепь. Будем эту цепь обозначать как лт.

Будем говорить, что цепь ЯОБВБ G(С(X,Z)) из переменных множества Z, исходящая из корня, соответствует состоянию ц (представляет состояние ц), если она соответствует коду состояния ц в переменных Z. Будем такую цепь обозначать как лц.

Заметим, что при разложении сначала по переменным множества Z функции при получении ЯОБББ, G(С(X,т1)) - это подграф G(С(X,Z)) из входных переменных, в корень

которого приводит цепь лт' . Как было показано выше, G(С(X,т1)) = G(С(X,у1)). То есть, для полученных по Процедуре 2 ЯОБВБ G(ф ') и G (у '■) выполняется п.1 Правил 2 сокращения

вычислений.

Обозначим через G2Z' (X) (GУji (X)) ЯОБББ из входных переменных, в который

приводит цепь лq', исходящая из корня G(у'■) (G(ф'■)) и соответствующая состоянию

Отметим, что GZJi (X) = G(у'■ (X,т')) (Gyji (X) = G(ф'■ (X, т'))), где т1 — код состояния Цг. Если

цепь приводит в терминальную вершину 0, то GZzi (X) = 0 ( GJ' (X) = 0 ). Если цепь приводит в

терминальную вершину 1, то GZ' (X) = 1 (G■jj (X) = 1). Переход в состояние ц схемы возможен из состояния при каких-либо значениях входных переменных за один шаг, если G2Z' (X) ^ 0. G2' (X) представляет все векторы значений входных переменных при которых такой переход возможен. На выходе ] схемы возможно получить значение 1 из состояния схемы при каких-либо значениях входных переменных за один шаг, если G■jj (X) ^ 0; GУJi (X) представляет все векторы значений входных переменных при которых будет получено

значение 1 из состояния qг. Для двух различных состояний ^ и ^ О2^ (X) ( Оу (X) ) может совпадать с О2^ (X) ((X)).

Будем в дальнейшем обозначать через О2 (X) ( Оу (X) ) множество О2 (X) (ОУ (X)) для всех qi е Q. Через Gjг(X) будем обозначать множество { О2 (X), Оу1 (X) }.

Рассмотрим процедуры вычисления троичного вектора точных значений на выходах Р и троичного вектора точных значений внутренних переменных 8 ' на троичном векторе (а, 8') , где 8 ' и 8 ' — векторы в переменных 2'. Процедуры вычисляют точные троичные значения для отдельных компонент векторов.

Опишем процедуры вычисления без привязки к конкретному методу точного троичного моделирования полностью определенных булевых функций Gjг(X), представленных в виде ЯОБВБ.

Каждой вершине н ЯОБВБ О(ф1) и О (у'), соответствующей переменной из

множества X, сопоставим значение х(н), в котором при вычислении троичного значения функции О(ф>\) или О (у') на векторе (а, 8' ) будет содержаться троичное значение булевой

функции, сопоставленной вершине н, на векторе а, если оно уже вычислено, и неопределенное значение, если — нет.

Процедура 1 вычисления точного значения компоненты рг, г е {1,...,т}, вектора выходных значений Р на векторе (а, 8' ) по ЯОБББ О (ф1) системы (2) ( Р1 = ф'г (а, 8' ) ).

1. Пусть 8 ' представляет множество состояний схемы Q' = {^,...,qi }. Пусть

т ' = {т\..., т'г} - коды состояний из множества Q' в переменных 2.

2. Поочередно просматриваем двоичные векторы тг", 5 = 1, г .

Проходим по соответствующей вектору тг" цепи ЯОБВБ О(ф ') из переменных 2,

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

предыдущих цепей, то вычисляем это значение. Если Оу (а) = х, то Рг присвоим значение х

(ф1 (а, 8') = х), процедура завершена.

Если уже пройдена цепь т1л, такая, что Оу (а) = 1 и цепь тг"2, такая, что

Оу (а) = 0, то Рг присвоим значение х (ф1 (а, 8 ') = х), процедура завершена.

Jis 2

3. Если Ут4 ет ': Оу (а) = 0, то Рг = 0 (ф1 (а,8 ') = 0); если Ут4 ет ': Оу (а) = 1, то

JiS

Рг = 1 (ф1 (а, 8 ') = 1).

Процедура 2 вычисления точного значения компоненты 8'', ] е {1,...,^}, вектора следующего состояния 8 ' на троичном векторе (а, 8') по ЯОБВБ О(у-) системы (3)

(8=у8 ')).

1. Пусть 8 ' представляет множество состояний схемы Q' = ^^,..., qi }. Пусть т ' = {т\..., т'г} - коды состояний из множества Q' в переменных 2.

2. Поочередно просматриваем двоичные векторы т^ , 5 = 1, г .

переменных множества X, GZi (X). Если значение Gzn (а) не было вычислено при просмотре предыдущих цепей, то вычисляем это значение. Если О2- (а) = х или О2- (а) = 1,

Проходим по соответствующей вектору т' цепи ЯОБВБ G(у') из переменных Z,

исходящей из корня. Цепь соответствующая т' приводит в корень подграфа, состоящего из

И- (X). Если значение GZi (

¿'з Jjs

спи С...... , = х ,..„. . . .. ,

то 5'' присвоим значение х (у' (а, 5 ') = х), процедура завершена. 3. 5'' присвоим значение 0 ( у' (а, 5 ') = 0 ).

Если после вычисления всех компонент вектора 5 ' Процедурой 2 только одна компонента принимает значение х , то этой компоненте присвоим значение 1.

Заметим, что п. 2 в Процедурах 1 и 2 не подразумевает нескольких обходов графа для просмотра различных цепей. Поочередный просмотр цепей выполняется за один обход графа.

_ * *

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

Троичный вектор 5 представляет множество состояний схемы, в которое схема может перейти за один шаг, из множества состояний, представленного троичным вектором 5 , подавая на вход схемы булевы векторы из множества, представленного входным троичным вектором а.

Как отмечается в работах [4, 5], если при моделировании Процедурами 1 и 2 в качестве вектора входных значений а взять вектор из значений х, то троичный вектор 5 ' представляет максимальное множество состояний схемы Q'' = ^^,..., qi }, в которое схема

может перейти за один шаг из множества состояний Q' = ^^,...,qi }, представленного

троичным вектором 5 , при любом векторе входных значений.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В работах [4, 5] представлены процедуры вычисления троичного вектора значений на выходах Р и троичного вектора значений внутренних переменных 5 '' на троичном векторе полного состояния (а, 5'), где все компоненты вектора а принимают значение х. Ограничение на значения вектора а позволяют сократить объем вычислений, основываясь на следующих наблюдениях: 1) если Gji (X) Ф 0(1), то Gjj (а) Ф 0(1), 2) если Gjj (X) Ф 0 и

gji (x) Ф 1, то gji (а) = х.

Процедура 1 ' вычисления точного значения компоненты рг, г е {1,...,т}, вектора выходных значений Р на векторе (а, 5' ) по ЯОБББ G(ф') системы (2) ( Р' = ф' (а, 5' ) ), где все компоненты вектора а принимают значение х

1. Пусть 5 ' представляет множество состояний схемы Q' = ^^,..., qi }. Пусть

т ' = {т'1,..., т'г} - коды состояний из множества Q' в переменных Z.

2. Поочередно просматриваем двоичные векторы т' , з = 1, г .

Проходим по соответствующей вектору т' цепи ЯОБВБ G(ф') из переменных Z,

исходящей из корня. Цепь соответствующая т' приводит в корень подграфа, состоящего из переменных множества X, Gy■ (X). Если Gy■ (X) Ф 1 (Gy■ (X) - не терминальная вершина 1)

и GУ (X) Ф 0 (Gy■ (X) - не терминальная вершина 0), то Рг присвоим значение х (ф' (а, 5') = х), процедура завершена.

Если уже пройдена цепь т151, такая, что Оу (X) = 1 и цепь т^2, такая, что ОУ (X) = 0, то Рг присвоим значение х (ф1 (а, 8 ') = х), процедура завершена.

Jis 2

3. Если Ут^ ет ': Оу., (X) = 0, то Рг = 0 (ф1 (а,8') = 0); если Ут^ ет': Оу., (а) = 1, то Рг = 1 (ф1 (а, 8 ') = 1).

Процедура 2' вычисления значения компоненты 8'', уе{1,...,7}, вектора 8' на троичном векторе (а, 8' ) по ЯОБББ О(у') системы (3) ( 8- = у' - (а, 8' ) ), где все компоненты

вектора а принимают значение х.

1. Пусть 8 ' представляет множество состояний схемы Q' = ^^,..., qi }. Пусть

т ' = {т\..., т'г} - коды состояний из множества Q' в переменных 2.

2. Поочередно просматриваем двоичные векторы т1, 5 = 1, г.

Проходим по соответствующей вектору т1 цепи ЯОБВБ О(у-) из переменных

множества 2, исходящей из корня. Цепь соответствующая т1 приводит в корень подграфа, состоящего из переменных множества X, О2 (X) . Если О2 (X) ^ 0 (О2 (X) - не терминальная вершина 0), то 8'' присвоим значение х ( у' (а, 8 ') = х ), процедура завершена (при необходимости запоминаем состояние qi в качестве одного из состояний множества Q', из которого есть переход в состояние ^ за один шаг).

3. 8- присвоим значение 0 ( у' (а, 8 ') = 0 ).

Точное пошаговое троичное моделирование синхронной последовательностной схемы на троичном векторе (а, 8'), где все компоненты вектора а принимают значение х, может

применяться при решении различных задач. Например, с использованием Процедуры 2' , в работе [5] решается задача построения последовательности входных векторов минимальной длины, обеспечивающей переход из некоторого состояния одного множества состояний схемы в одно из состояний другого множества, в работах [4, 5] также приводятся примеры других задач, решаемых с применением Процедуры 2 .

В работе [6] рассматривается использование результатов неточного метода троичного моделирования схемы с целью сокращения вычислительных затрат связанных с реализацией точного метода троичного моделирования. Целесообразность использования неточных результатов может зависеть от используемого метода точного троичного моделирования для вычисления значений О-1 (X) на троичном векторе а.

Итак, в представленных процедурах вычисления троичных значений функций выходов ф 1 и переходов в состояния у , представленных в виде ЯОБВБ, реализованы п. 2

Правил 1 точного пошагового троичного моделирования последовательностных схем и Правила 2 сокращения вычислений ранее предложенные для ДНФ представления функций.

Точное пошаговое троичное моделирование последовательностной схемы на входной

0 1 к-1 20

троичной последовательности а ,а ,...,а и векторе начального состояния 8 с

_ * * .

использованием Процедур 1 и 2 (1' и 2 ' ) выполняется по Процессу вычисления 1.

Литература

1. Голубева, О. И. Разработка и исследование методов моделирования и оценки мер тестопригодности логических схем: дис. ... канд. техн. наук: 05.13.01. — Томск, 2000. — 112 с.

2. Голубева, О. И. Коррекция результатов троичного моделирования на

последовательностях произвольной длины // Докл. 2-й всероссийской конф. "Новые информационные технологии в исследовании дискретных структур". Екатеринбург. 2-5 нояб. 1998. - Екатеринбург : ИМАШ УрО РАН, 1998. - С. 62-68.

3. Голубева, О. И. Троичное моделирование синхронных последовательностных схем, основанное на ЯОБВБ представлении функций // Кулагинские чтения: техника и технологии производственных процессов: XVI Междунар. науч.-практ. конф.: сб. ст. [в 3 ч.] / Забайкал. гос. ун-т. Чита. 28-30 ноября 2016. - Чита: ЗабГУ, 2016. - Ч. 2. — С. 131-136.

4. Голубева, О. И. Троичное моделирование синхронных схем с памятью на последовательностях произвольной длины, основанное на ЯОБВБ представлении функций // Таврический научный обозреватель. — 2017. — №3 (20). — С. 129-140.

5. Голубева, О. И. Троичное моделирование последовательностной схемы и построение на его основе входных последовательностей, обеспечивающих заданные переходы схемы // Таврический научный обозреватель. — 2017. — №4 (21).

6. Голубева, О. И. Использование неточных результатов для сокращения вычислительных затрат точного троичного моделирования последовательностных схем // Таврический научный обозреватель. — 2017. — №4 (21).

i Надоели баннеры? Вы всегда можете отключить рекламу.