УДК 681.324.7
А.Ю. Матросова, КВ. Никитин
СИНТЕЗ САМОПРОВЕРЯЕМОГО КОМБИНАЦИОННОГО ДЕТЕКТОРА
РАВНОВЕСНЫХ КОДОВ
Предлагается Memacbyntpf комбинационного детектора (т, л)-кодов. Метод основан на разложении кодов по заданному разбиению компонент кодов на два подмножества. Многократное применение разложения приводит к представлению всевозможных (от, л)-кодов формулой над множеством функций {л.v ,D4p(Xr)}. Здесь D4p(Xr) - ДНФ,
представ-ляющая всевозможные (q, р)-коды в подмножестве переменных X', X' с X , где X - {jt,.....х„}~ множество пере-менных, сопоставляемых входам детектора, q й т, р < п . Обсуждается возможность синтеза детектора в базисе FPGA (field of programmable gate array), а также проблема обеспечения его самопроверяемости в классе неисправностей, обусловленных этим базисом.
Самопроверяемые детекторы комбинационного типа, описанные в работах [1, 2] ориентированы на относительно небольшое число равновесных кодов (или кодов Бергера), достигаемых проверяемым дискретным управляющим устройством на его выходах в исправном состоянии. При этом в работе [1] допускаются как равновесные коды, так и коды Бергера, предполагается реализация детектора на ПЛМ. В работе [2] вообще не требуется кодировал» выходы проверяемого устройства, однако предполагается специальная дЬуЗДюЬневая фдаоризационна* реализация совместно управляющего устройства и детектора
В нашей работе предлагается компактная, по сравнению с [I, 2], реализация самопроверяемого комбинационного детектора, сложность которого линейно зависит от длины п равновесного кода. Детектор реализует все (т, пукоды, либо их подмножества, содержащие (т, и)-коды, достигаемые на выходах проверяемого устройства; его реализация ориентирована на FPGA (field of programmable gate arrays) технологию [3]. Никаких ограничений на реализацию проверяемого дискретного управляющего устройства не накладывается. Важно лишь, чтобы его неисправности проявляли себя на выходах устройства монотонным образом. К выходам проверяемого управляющего устройства подключены входы детектора (рис. 1). Выходы Ут+\ обеспечивают равновесность кодов.
Я
Ут
▲ к L
ДУУ -т> Л
W Ут+1 ^
W yj ь
w
Рис. 1
Пусть детектор реализует функцию /, принимающую
значение 1 на (т, и)-коде и 0 в остальных случаях. Дискретное управляющее устройство (ДУУ) проявляет любую неисправность из рассматриваемого класса его неисправностей монотонным образом. Имеется в виду следующее. Пусть а - произвольный тестовый набор для некоторой
неисправности и», Р,Р* - выходы исправного и
неисправного устройств соответственно, сопоставляемые а. В случае монотонного проявления неисправностей из
№ Р,Р" - сравниваемые векторы (наборы), т.е. либо Р^Р", либо р" ¿р. Это значит, что для любого а и
любой неисправности w мы имеем на выходах устройства вектор Р", не являющийся (m, л)-кодом. Такой вектор обращает в 0 функцию /, реализуемую детектором. Следовательно, любое проявление неисправности из W немедленно обнаруживается детектором.
Представим функцию, реализуемую детектором, в виде ДНФ. Она является совершенной, одновременно сокращенной, кратчайшей и минимальной, так как склеивания между конъюнкцией ¿овершенйой ДНФ, реализующей (/Л, й^коди, не*
возможны Обозначим ее через £>" = ktv k2 v...vi ,.
с»
Любые две конъюнкции кь kj из D" ортогональны не менее
чем по двум переменным. Более того, они инверсно ортогональны не менее чем по двум переменным.
Конъюнкции kt, k j инверсно ортогональны по переменным xs, хг, если в kt xs содержится без инверсии, а в kj -с инверсией; в то же время хг содержится в к, с инверсией, а в к j - без инверсна Например, конъюнкции xtx2x}x4, xlx2xix4 ДНФ D", представляющей (2, 4)-коды, инверсно ортогональны по х, их,.
Число конъюнкций D", реализующей всевозможные
(m, л)-коды, равно С", что уже при «=10, m = 5 достигает 252, а число букв - 1260. Использовать такую ДНФ в качестве задания на синтез для последующего применения известных двухуровневых [4] и многоуровневых [5] методов синтеза не представляется целесообразным ввиду громоздкости получаемых в результате схем.
Предлагается специальный метод разложения D™ по подмножествам переменных.
1. Декомпозиционный метод синтеза детектора равновесных кодов
1.1. Построение скобочной формы А
Представим D" (Х),Х = {х......х„} формулой А
над множеством функций a,v, (А"), причем
р£к,к<п,Хг сX. Здесь к - число входов CLB (configurable logical block) - схем, используемых в FPGA-технологии.
Разобьем переменные множества X ДНФ D" на два подмножества:
={**+i.....■*»}•
Теорема 1.
z>;= v d^x^dUx*),
О)
и.
i+J-m
'€{0,1.....*},уе{0,1.....п-к).
Доказательство. Возьмем произвольный (т, «)-код, представим его вектором а. Подставим а в левую и правую части выражения (1). Покажем, что соотношение (1) выполняется на этом векторе, /)"(а) = 1 по построению ДНФ £)".
Подставим а в правую часть соотношения (1) а = а'а*, где а1 - составляющая кода по переменным X*, имеющая вес (число единичных компонент) 5; а' - составляющая по переменным X', имеющая вес 5 + / = т. Среди слагаемых правой части соотношения (1) найдется произведение 0'к(Хх)0'(и_к)(Х'), так как (1) содержит все произведения, для которых / + у = т. Следовательно, 01{а1)0[п_к){а) = 1. Поскольку а - произвольный вектор, утверждение теоремы доказано.
В (1) выражения Е>1_к(Х') будем называть коэффициентами разложения.
Если (я - к) > к, то к каждому коэффициенту разложения йих') снова применим разложение (1) до тех пору пока каждая ДНФ-в лолучакицейся.таким.обра-зом скобочной форме будет зависеть не более чем от к переменных и, следовательно, не подлежит дальнейшему разложению. Полученное выражение и есть формула А.
Построим скобочную формулу А для ДНФ , положив к = 2 . Выполним первый шаг разложения
= (*')Я43 (X') V й]2 (X1 )/>2 (X*) V
Продолжим разложение, положив
V О2 (X2 3)) V (X' )(О20(X2 )£2 (X3) V
V £>2 (.X1 ХГ>2° (X2 {X5) V £>2 (X1 )О20 (X3))).
Первому шагу разложения соответствуют скобки нулевой глубины формулы А , второму - скобки первой глубины.
1.2. Свойства формулы А
Для рассмотрения свойств формулы А воспользуемся представлением ее в виде дерева йА, сопоставим ДНФ 0^(Хг),р<к концевые вершины. Считая операцию конъюнкции «главнее» операции дизъюнкции, мы опускали лишние скобки в А. В дереве Сл операциям конъюнкции будут сопоставлены соответствующие внутренние вершины, из которых исходит ровно два ребра. 102
Число ребер, исходящих из вершины, помеченной символом v, определяется соотношениями (1), применяемыми при построении А . Заметим, что ребро, исходящее из вершины, отмеченной v, не заканчивается концевой вершиной (листом). В то же время одно из ребер, исходящее из вершины, помеченной л, обязательно заканчивается листом.
Будем упорядочивать концевые и внутренние вершины слева направо так, как они записаны в формуле А . Дня рассматриваемого примера имеем рис. 2. Будем иметь в виду, что каждый шаг разложения порождает два яруса дерева G А.
Листья одного и того же яруса дерева могут быть помечены одним и тем же выражением
D4p(Xr). Это дает возможность объединять такие
вершины в одну и превращать дерево в граф. Однако здесь мы не будем этого делать, чтобы не усложнять представление формулы А.
Выделим в G À существенное поддерево Hi [6], двигаясь от листьев нижнего яруса дерева Включаем в H, две концевые вершины (два листа), смежные с одной и той же неконцевой вершиной, помеченной символом д. Добавим инцидентное ей ребро, включив вершину, отмеченную символом v. Двигаясь далее к корню дерева по инцидентному ей ребру, включаем вершину, помеченную символом л вместе с другим, инцидентным ей
ребром, помеченным концевой вершиной вида D4p(Xr)
и т.д., пока не дойдем до корня. На рис. 2 существенные поддеревья, имеющие общие вершины и ребра, выделены пунктирными линиями, а отдельно отстоящие от них - жирными линиями.
Предложение 1. Каждому существенному под дереву сопоставляется логическое произведение вида
D'ï (X1 )D'k> (X2 ), D'; (X'(X5+1 ), где p й к, s- число шагов разложения, +/2 + ... ...+/,+1 =т,Хх uJf1 u...uJf"' = X.
Получение формулы А путем разложения (1) ДНФ D"{X) на фрагменты D4p(Xr), р<к связано
с возможностью реализации таких фрагментов так называемыми конфигурационными логическими блоками CLB (configurable logical block) в рамках LUT based FPGA-технологии. Будем полагать к = 4 или к = 8 [Xilinx]. GÀ (формула А ) порождает разбиение X на (s + 1) подмножеств. Назовем комбинацию чисел »,,..., /1+1 распределением весов булева вектора по заданному разбиению его компонент на подмножества или просто распределением весов по разбиению. В нашем примере существенному поддереву, ребра которого отмечены жирной
линией, сопоставляется произведение D\ 1 ) х xD2°(Ar2)Dj (Х3). Разбиение X представлено подмножествами
X1 = ={xt,x2},X2 ={х„*Л,*3 ={*5>*б}> распределение весов по разбиению для этого поддерева: /', = 2, /2 = 0, /3 = 1.
Dl(X') £>i(,i') D'(X') Dl(X') D'(X') Dji-V') D,"(.V')
Рис. 2. Дерево GA для ДНФ Dl при к = 2
Предложение 2. Различным, существенным лодч деревьям йА сопоставляется одно и то же разбиение множества X на подмножества Хх,...,Х'*х.
Предложение 3. Различным существенным поддеревьям вА сопоставляются различные распределения весов по разбиению.
Предложение 4. Различные распределения весов по разбиению отличаются друг от друга не менее чем по двум компонентам.
Предложение 5. Существенное поддерево представляет функцию
/>№) ■ Яцх2) й'^Х*) •
(произведение ДНФ), задающую все (от, и)-коды с распределением (/,,/2>~>'.,Л+|) весов. Назовем это произведение ДНФ характеристикой существенного поддерева. Характеристика существенного поддерева представляет подмножество (от, л)- кодов, которые могут быть представлены ДНФ, полученной перемножением соответствующих йчр(Хг) этой характеристики.
Предложение 6. Каждому (от, л)-коду сопоставляется единственное существенное поддерево в йА. Подстановка сопоставляемого (от, и)-коду булева вектора в формулу А обращает в единицу ДНФ, порожденную характеристикой поддерева СА, и только эту ДНФ.
Предложение 7. Объединение (от, и)-кодов, представляемых характеристиками всех существенных поддеревьев , есть множество всех (т, л)-кодов.
В [6] предложен метод перебора всех существенных поддеревьев. Зная множество М(т, п) - кодов, достижимых на выходах проверяемого ДУУ, можно упростить дерево (формулу А), исключая в существенные поддеревья, реализующие (т, и)-коды, не принадлежащие М. Операция исключения существенного поддерева сводится к замене на константу 0 пары Очр(Хг) нижнего яруса дерева из характеристики этого поддерева.
Речь идет о D* (Xf), принадлежащих только рассмат-»
риваемому поддереву. Приписывание констант 0 концевым вершинам существенных поддеревьев приводит к упрощению Ga по правилам, описанным в [6].
1.3. Построение схемы самопроверяемого детектора по формуле А
Структура формулы А представлена деревом Ga (возможно, упрощенным). Каждый элемент
(CLB), реализующий Dp(Xr), удовлетворяет условию р й к. Здесь к < 4 или к <.8. Мы имеем в виду LUT-based FPGA-технологию [3].
Рассматрим в схеме детектора неисправности' следующего вида. Во-первых, одиночные константные неисправности на внешних полюсах CLB, затем одиночные константные неисправности на входах схемы и, наконец, неисправности, связанные с произвольным изменением функции, реализуемой одним из CLB схемы. Если CLB реализует две функции, то вторая функция исправна. Все эти неисправности образуют множество V.
Рабочей областью функционирования схемы детектора является подмножество М (от, riyкодов, достигаемых на выходах проверяемого дискретного управляющего устройства. Не все неисправности из V могут проявляться в М. Допускается накопление не более одной необнаружимой неисправности из V.
Неисправность в системе устройство - детектор должна обнаруживаться, если в схеме детектора появилась обнаруживая в М неисправность v е V и проверяемое дискретное управляющее устройство исправно. Возможна другая ситуация. Схема детектора исправна или в ней присутствует единственная необнаружимая неисправность. Неисправность дискретного управляющего устройства приводит к появлению неравновесного кода на его выходах, что обнаруживается детектором. Систему, удовлетворяющую таким условиям, назывем полностью самопроверяемой.
Обеспечим полную самопроверяемость системы управляющее устройство-детектор простым дублированием схемы С, реализующей А. В этом случае система приобретает вид, представленный на рис. 3.
Рис.3
Остановимся на реализации схемы С по формуле А (представляющему ее дереву йА, в том числе упрощенному). Пусть каждая функция вица йчр(Хг) реализуется на одном из выходов СЬВ. Один и тот же СЬВ ^ можно использовать для реализации двух функций одного и того же множества перёменньк. 5то необходимо ' учитывать при покрытии различных функций Юр(Хг) с
помощью СЬВ для сокращения числа (ХВ-элеменгов. Выражение вида
(2)
можно реализовать тремя СЬВ. В (2) переменные и,...и4+1 сопоставляются функциям йр, а переменные м*+2—и2(*+о либо функциям того же вида, либо скобкам одной и той же глубины. ДНФ (2) задана поддеревом, обведенным в Сл (рис. 2). Число конъюнкций в (2) может быть менее (А + 1) и определяется соотношением (1). Пусть к = 8. С помошъю СЬВ1 реализуем первые 4 конъюнкции из (2), затем с помощью СЬВ2 - следующие 4 конъюнкции и, наконец, СЬВЗ реализует функцию
(3)
где щ,аг - переменные, сопоставляемые выходам СЬВ1 и СЬВ2 соответственно.
Обозначим дубль схемы С через Сд, входы схем
С ,Сд общие. Схема и ее дубль образуют детектор В. Если на обоих выходах детектора достигается значение 1 - система исправна. Покажем, что система, представленная на рис. 2, полностью самопроверяемая.
2. Самопроверяемость системы ДУУ - детектор
Рассмотрим неисправности детектора из множества V и неисправности проверяемого ДУУ из мно-
жества (У. Всякая и» е (V проявляет себя на выходах этого устройства монотонным образом.
Будем считать, что в системе устройство - детектор сначала возможно появление одной неисправности либо v е V, либо \vbW- Если детектор исправен, \velV обнаружима в рабочей области функционирования устройства на выходах детектора.
Если первой появляется неисправность в детекторе, она может оказаться необнаружимой в системе устройство - детектор в рабочей области функционирования устройства. Тогда детектор накапливает эту неисправность. Будем предполагать, что в нем возможно накопление не более одной неисправности.
Обозначим через А/* объединение множества М со всеми А/". Здесь М" - множество векторов, достижимых на выходах ДУУ в присутствии неисправности ж
Рассмотрим одиночную константную неисправность V детектора на его входном полюсе. Обозначим их множество через V",У" с V.
Теорема 2. Одиночная константная неисправность на входном полюсе детектора обнаружима в М.
Доказательство. Предполагаем, что в М содержатся равновесные коды как с единичным значением переменной х,, так и с нулевым значением переменной х,, сопоставляемой неисправному полюсу (иначе эту переменную можно было бы исключить, сохранив равновесность кодов в М ). Это значит,'что' при неисправности константа ноль вектор из М с единичным значением компоненты х, заменяется на некодовый, что приводит к появлению на выходах детектора г1гг значений 00. Все элементы схемы детектора исправны. Аналогично при неисправности константа один, вектор из М с нулевым значением компоненты х, заменяется на некодовый. Это приводит к появлению на выходах детектора значений 00. Теорема доказана.
Рассмотрим неисправность v, \ е{У\У"}.
Теорема 3. Неисправность v е {V \ V") обнаружима в М'.
Доказательство. Рассматриваемая неисправность может проявить себя на некотором (от, и)-коде из М. Так как неисправность возможна только в одной из дублирующих подсхем детектора, то в этом случае на его выходах достигаются наборы 01 или 10.
Если неисправность не проявляет себя в М, то она остается необнаружимой в детекторе, накапливаясь в нем. При появлении монотонно проявляющейся неисправности в проверяемом ДУУ возможно маскирование некодового набора неисправной подсхемой детектора (другая дублирующая его подсхема исправна). Это приводит к появлению на выходах детектора наборов 01 или 10. Если маскирование не имеет места, тогда первый некодовый набор, реализуемый не выходах проверяемого ДУУ, обеспечивает значение 00 на выходах детектора. Теорема доказана.
Мы считаем, что каждая последующая неисправность V € К, или и» е IV появляется после того, как рабочая область ДУУ в присутствии предыдущей неисправности исчерпана. При таком предположении н> е № всегда обнаружится, а V е V может остаться необнаружимой. В связи с предполо-
жением о возможности накопления в системе устройство-детектор не более одной неисправности следующая неисправность должна быть обязательно в ДУУ. На основании теоремы 3 заключаем, что она обязательно проявится на выходах детектора в рабочей области функционирования ДУУ.
ЛИТЕРАТУРА
1.1. Levin and M. Karpovsky. On-line self-checking of microprogram control unit // 4й1 IEEE int. on-line testing workshop. Italy, Capri. July 1998. P. 152-156.
2.1. Levin and V. Sinelnikov, Self-checking of FPGA-based control units // Proceeding of 9" great lakes symposium on VLSI, Ann Arbor, Michigan, March 4-6,1999, IEEE press. P. 292-295.
3. Xilinx, the programmable logic. Data book, 1996.
4. S. Baranov. Logic synthesis for control automata // Kluwer academic publishers, Dordrecht / Boston / London, 1994.
5. R.K. Brayton, R. RudeH A. Sagiovanni-Vmcentelli and A. R. Wang, MIS: A multiple-level logic optimization program. IEEE Trans. On
computer-aided design. Nov. 1987. Vol. 7, P. 1062-1081.
6. Матросова А.Ю. Алгоритмические методы синтеза тестов. Томск: Изд-во ТГУ, 1990. 206 с.
Статья представлена кафедрой программирования факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию 21 февраля 2000 г.
УДК 519.7
И.А. Панкратова
О СИСТЕМЕ ПРОГРАММ МОДЕЛИРОВАНИЯ ДИНАМИЧЕСКОГО ПОВЕДЕНИЯ ПЕРЕКЛЮЧАТЕЛЬНЫХ СХЕМ С ЗАДАВАЕМОЙ ТОЧНОСТЬЮ
Работа выполнена при финансовой поддержке РФФИ, грант 98-01-00288.
Рассматривается задача моделирования и анализа динамического поведения БИС на транзисторном уровне представления. Моделью БИС служит переключательная схема на полурешетках проводимости и состояний. Описываются алгоритмы и программы имитационного моделирования и анализа схемы с любой наперед заданной точностью.
1. Основные понятия
Переключательная схема служит моделью больших интегральных схем (БИС) и определяется в [1] как тройка конечных множеств (X, 1, где X -множество элементов схемы (которые, в свою очередь, являются схемами); 7^2 - множество полюсов схемы (среди которых выделяются полюсы источника питания К£)£> и СМ) и входные полюсы, через которые на схему подаются воздействия извне); 2 - множество узлов схемы, представляющее собой разбиение на множестве полюсов всех ее элементов. Таким образом, схемы имеют иерархическую структуру, на самом нижнем уровне которой находятся базисные элементы - транзисторы различных типов, резистор. Транзистор представляет собой элемент с управляемой проводимостью и задается монотонной функцией проводимости р-Ц.5)\ здесь 5 - состояние затвора транзистора; р - проводимость между его истоком и стоком, реР, 5еБ\ Р и 5 - полурешетки проводимостей и состояний соответственно. В общем случае Р={0,\,Х, 0', Г,Л4, £}; здесь 0, I, Х- точки полурешетки, представляющие собой проводимости соответственно разомкнутой, замкнутой и резистивной цепи; остальные элементы - в подходящей степени неопределенные значения: 0'=1+А, ГЮ+ЛГ, ЛГ=0+1, £=0+1+^ (полная неопределенность). Для некоторых классов схем достаточно рассматривать полурешетку Р'оР; например, для КМОП-схем /"={0,1, X}.
Состоянием узла является пара проводимостей от этого узла до полюсов источника питания, т.е. в общем
случае 5=/)2. При этом |5]=|/>|2=49. Однако в ряде случаев нет необходимости различать все состояния; например, те из них, для которых совпадают значения функций проводимости всех базисных элементов, физически эквивалентны. Информация о неразличимых состояниях задается в виде эквивалентности Л на множестве точек полурешетки Р2, т.е. на множестве {00, ОА', 01, АО, XX, XI, 10, IX, 11}. Затем по эквивалентности Я строится полурешетка <Л>, элементами которой являются интервалы, совпадающие с объединениями некоторых смежных классов эквивалентности Л. <Л> является адекватной моделью Р2 (по теореме 1.4 в [1]), и |<Л>|<|/>2|. Замена полурешетки Р2 на <Л> позволяет понизить мощность алфавита состояний без потери адекватности моделирования; Л при этом играет роль точности модели. Например, для Л, заданной классами {00}, {АО, 10}, {11, IX), {01, А1>, {0Х, XX), получается следующая полурешетка <Л>: {00, О'О, 10', 1'1, 1'Х, £0, 1'0', £0', ££}. Резистор представляет собой элемент с двумя полюсами и постоянной проводимостью между ними, равной X.
Назовем полным состоянием схемы набор состояний всех ее узлов, а входным состоянием - набор состояний всех входных полюсов. Так как каждое полное состояние содержит в себе и входное состояние, то будем обозначать: г=сщ\ г - полное состояние, а - соответствующее ему входное состояние, ц - набор состояний всех остальных (не являющихся входными полюсами) узлов. Полное состояние г называется устойчивым, если оно соответствует вычисленным по нему полным про-водимостям в схеме, т.е. при неизменных состояниях входных полюсов схема остается в устойчивом состоя-