СПОСОБ ТЕСТОПРИГОДНОСТИ РЕАЛИЗАЦИИ ЛОГИЧЕСКИХ ПРЕОБРАЗОВАТЕЛЕЙ
METHOD FOR TESTABILITY OF REALISATION OF LOGIC CONVERTERS

Изобретение относится к области автоматики и цифровой вычислительной техники и может быть использовано для создания сложных логических преобразователей (комбинационных автоматов) с самопроверкой правильности функционирования в рабочем режиме и высокой степенью готовности к оперативному динамическому функциональному тестированию при электронном переключении логических преобразователей из рабочего режима в режим тестирования.
Известен способ и вариант его технической реализации, обеспечивающий тестопригодность логических преобразователей, реализованных в виде двухуровневых программируемых логических матриц (ПЛМ), логическим базисом которых является основной элементный базис из логических элементов И, ИЛИ, НЕ [1].
ПЛМ содержит входной дешифратор «1→2», матрицу многовходовых элементов И, матрицу многовходовых элементов ИЛИ и дополнительные схемы, распределенные по узлам ПЛМ. Во входной дешифратор добавлены две линии управления; к столбцам матрицы И дополнительно подключаются выходы разрядов дополнительного регистра сдвига; в матрицу И и в матрицу ИЛИ дополнительно вводятся один столбец и одна строка соответственно, для дополнения до нечетности подключений к каждой строке и каждому столбцу; к строкам и столбцам дополнительно подключаются наборы из элементов неравнозначности (сумма по модулю 2). Линии управления, которые подключаются к дешифраторам, используются для активизации какой-либо одной или одновременно всех строк матрицы И. Дополнительный регистр сдвига предназначен для активизации какого-либо одного столбца матрицы, или всех столбцов одновременно. Если активизированы все строки матрицы и только один из столбцов, то проверяется правильность формирования 1-го терма (i-ой элементарной конъюнкции) путем проверки на нечетность числа переменных i-го терма дополнительным столбцом из последовательно включенных элементов неравнозначности. Если активизированы единственная строка матрицы и все ее столбцы, то проверяется на нечетность количество вхождений переменной данного типа в различные термы дополнительной строкой из последовательно соединенных элементов неравнозначности. Таким образом, данный способ тестирования двухуровневой ПЛМ заключается во введении такой структурной и функциональной избыточностей в двухуровневую ПЛМ, которая позволяет проводить последовательную проверку целостности структуры как незапрограммированной, так и запрограммированной ПЛМ путем предварительного обеспечения и последующего определения нечетности числа переменных в каждом терме (т.е. в каждом столбце матрицы) и нечетности вхождения каждой переменной в различные термы (т.е. в каждой строке матрицы), при этом реализуемая логическим преобразователем логическая функция исходно представляется и программируется в виде дизъюнктивной нормальной формы. Недостатками данного способа тестопригодной реализации логических преобразователей и устройств на его основе является невозможность проверки правильности функционирования логических преобразователей на предельных рабочих частотах, а также наличие значительного количества дополнительных узлов и коммутаций, приводящих к снижению общей надежности функционирования логических преобразователей.
Наиболее близким по технической сути является способ тестопригодной реализации логических преобразователей, описанный в [2].
p
Данный способ состоит в том, что он включает первоначальное получение исходного математического описания рабочего закона функционирования n-входовых логических преобразователей в тестопригодном логическом базисе Жегалкина, затем разработку и реализацию структурной схемы логического преобразователя из элемента генератор логической 1, r последовательных цепочек из (k-1) двухвходовых логических элементов с электронно перестраиваемой логической функцией, реализующих k-аргументные функции И в рабочем режиме или функции равнозначности в режиме тестирования, и последовательной цепочки из (r-1) двухвходовых элементов неравнозначности, реализующих рабочую функцию F путем свертки по модулю два всех k-аргументных конъюнкций, определение в последующем n тестовых М-последовательностей из одного и того же замкнутого класса и эталонной М-последовательности, которую алгоритмически формируют из n тестовых М-последовательностей, причем в режиме тестирования тестовые и эталонную М-последовательности одновременно генерируют внешним n-разрядным регистром сдвига с линейной обратной связью на предельно возможной рабочей частоте логического преобразователя.
Данный способ обеспечивает высокую тестопригодность логических преобразователей как для их статического, так и динамического тестирования на предельной рабочей частоте путем электронного переключения из рабочего режима в режим тестирования М-последовательностями. Однако данный способ не обеспечивает максимальной надежности функционирования логических преобразователей непосредственно в рабочем режиме.
Изобретение направлено на повышение надежности функционирования тестопригодных логических преобразователей путем придания им дополнительного свойства самопроверяемости в режиме работы.
p
Это достигается тем, что на этапе разработки и реализации структурной схемы логического преобразователя дополнительно вводят (s+1) последовательных цепочек из (k-1) двухвходовых логических элементов с электронно перестраиваемой логической функцией и последовательную цепочку из (s+1) двухвходовых элементов неравнозначности, которая на выходе формирует признак ошибки путем реализации свертки по модулю два значения функции F, всех s дополнительных k-аргументных конъюнкций и дополнительной n-аргументной конъюнкции инверсий входных аргументов, причем сумма s+r=2", то есть равна количеству всех различимых k-аргументных конъюнкций в полиноме Жегалкина общего вида, включая и единичную конъюнкцию.
Для осуществления предлагаемого изобретения закон функционирования n-входового логического преобразователя исходно должен быть задан полиномом Жегалкина, общий вид которого может быть представлен следующим образом:
<mtable columnalign="left"><mtr><mtd><msub><mtext>F(x</mtext><mtext>1</mtext></msub><msub><mtext>, x</mtext><mtext>2</mtext></msub><mn>,.</mn><mo>…</mo><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext>)</mtext><mo>=</mo><msub><mtext>C</mtext><mtext>0</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>C</mtext><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>1</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext> C</mtext><mtext>2</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><mo>…</mo><mo>⊕</mo><msub><mtext> C</mtext><mtext>n</mtext></msub><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext> C</mtext><mrow><mtext>(n</mtext><mo>+</mo><mn>1</mn><mtext>)</mtext></mrow></msub><msub><mtext> x</mtext><mtext>1</mtext></msub><msub><mtext> x</mtext><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext> C</mtext><mrow><mtext>(n</mtext><mo>+</mo><mtext>2) </mtext></mrow></msub><msub><mtext>x</mtext><mtext>1</mtext></msub><msub><mtext> x</mtext><mtext>3</mtext></msub><mtext> </mtext><mo>⊕</mo><mo>…</mo></mtd></mtr><mtr><mtd><mo>…</mo><mo>⊕</mo><msub><mtext> C</mtext><mrow><mtext>(m-1)</mtext></mrow></msub><msub><mtext>x</mtext><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><mo>…</mo><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext>,</mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>   (1)</mtext></mtd></mtr></mtable>
i
где х - i-ая входная логическая переменная;
j
j
C - j-ый коэффициент, указывающий на необходимость реализации соответствующей конъюнкции при C=1;
i
f
g
x x…x - некоторая k-аргументная конъюнкция логических переменных;
n
n
j
i
m=2; C={0,1}, j=0, (2-1); x={0,1}, i=1, n.
(m-i)
1
2
n
Сочетание переменных в правой части (1), например, C x x…x, следует понимать как их логическое произведение (конъюнкцию), т.е.
(m-1)
1
2
n
(m-1)
1
2
n
Сx…x…x=C&x&x&…&x
Запишем выражение (1) несколько иначе:
<mrow><msub><mrow><mtext>F(x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><mn>,.</mn><mo>…</mo><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext>)</mtext><mo>=</mo><msub><mtext>C</mtext><mtext>0</mtext></msub><msub><mtext>K</mtext><mtext>0</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>C</mtext><mtext>1</mtext></msub><msub><mtext>K</mtext><mtext>1</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>C</mtext><mtext>2</mtext></msub><msub><mtext>K</mtext><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><mo>…</mo><mo>⊕</mo><msub><mrow><mtext> C</mtext></mrow><mrow><mtext>(m-1)</mtext></mrow></msub><msub><mtext>K</mtext><mrow><mtext>(m-1)</mtext></mrow></msub><mtext>, </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>(2)</mtext></mrow>
0
где конъюнкция К=1 представляет единичную конъюнкцию.
j
Широко известно, что в выражении (2) все коэффициенты C будут равны 1 только в том случае, если реализуется логическая функция n-аргументной конъюнкции инверсий входных аргументов, то есть
<mrow><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>1</mtext></msub><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>2</mtext></msub><mo>…</mo><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>n</mtext></msub><mo>=</mo><msub><mtext>K</mtext><mtext>0</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>K</mtext><mtext>1</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>K</mtext><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><mo>…</mo><mo>⊕</mo><msub><mrow><mtext> K</mtext></mrow><mrow><mtext>(m-1)</mtext></mrow></msub><mtext>, </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>(3)</mtext></mrow>
i
i
где x следует понимать как инверсию х.
Тогда, в соответствии с законами алгебры логики относительно операции неравнозначности можно выражение (3) преобразовать к виду
<mrow><msub><mtext>K</mtext><mtext>0</mtext></msub><mo>⊕</mo><msub><mtext>K</mtext><mtext>1</mtext></msub><mo>⊕</mo><msub><mtext>K</mtext><mtext>2</mtext></msub><mo>⊕</mo><mo>…</mo><mo>⊕</mo><msub><mrow><mtext> K</mtext></mrow><mrow><mtext>(m-1)</mtext></mrow></msub><mtext> </mtext><mo>⊕</mo><msup><mrow><mtext> x</mtext></mrow><mtext>,</mtext></msup><msub><mrow /><mtext>1</mtext></msub><msup><mtext>x</mtext><mtext>'</mtext></msup><msub><mrow /><mtext>2</mtext></msub><mo>…</mo><msup><mtext>x</mtext><mtext>'</mtext></msup><msub><mrow /><mtext>n</mtext></msub><mo>=</mo><mtext>0 </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> (4)</mtext></mrow>
j
p
p,
p
n
В зависимости от того, какую именно логическую функцию должен реализовывать n-входовый логический преобразователь, предварительно определяют значения соответствующих коэффициентов С для логической функции (F), реализуемой в рабочем режиме, что может быть осуществлено широко известным методом неопределенных коэффициентов [3]. Тогда, как следует из выражения (4), если r конъюнкций, обеспечивающих реализацию рабочей функции F оставить в левой части выражения (4), а оставшиеся (s+1) конъюнкций перенести в правую часть этого выражения, то они будут равны при любых значениях входных аргументов. Это обеспечивает самопроверяемость логических преобразователей в рабочем режиме функционирования путем использования дополнительной последовательной цепочки из (s+1) двухвходовых элементов неравнозначности, которая на выходе формирует признак ошибки путем реализации свертки по модулю два значения функции F, всех s дополнительных k-аргументных конъюнкций и дополнительной n-аргументной конъюнкции инверсий входных аргументов, причем сумма s+r=2.
Рассмотрим осуществление заявляемого способа тестопригодной реализации логического преобразователя, рабочий закон функционирования которого изначально задается следующим полиномом Жегалкина:
<mrow><msub><mtext>F</mtext><mtext>p</mtext></msub><msub><mrow><mtext> (x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>3</mtext></msub><mtext>)</mtext><mo>=</mo><mtext>1 </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><msub><mrow><mtext> x</mtext></mrow><mtext>3</mtext></msub><mtext>. </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>(5)</mtext></mrow>
1
3
1
2
2
3
В выражение (5) входят четыре конъюнкции, включая единичную конъюнкцию, то есть r=4. Основываясь на общем виде полинома Жегалкина для трех аргументов, находим s=4 отсутствующих в выражении (5) конъюнкций: x, x, xx, xx. Сформируем проверяющую функцию:
<mrow><msub><mtext>F</mtext><mrow><mtext>np</mtext></mrow></msub><msub><mrow><mtext> (x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>3</mtext></msub><mtext>)</mtext><mo>=</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mo>⊕</mo><mtext> x</mtext><msub><mo>⊕</mo><mtext>3</mtext></msub><msub><mtext>x</mtext><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msup><mrow><mtext> x</mtext></mrow><mtext>,</mtext></msup><msub><mrow /><mtext>1</mtext></msub><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>2</mtext></msub><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>3</mtext></msub><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> (6)</mtext></mrow>
Сформируем сигнал ошибки Е, который примет единичное значение в том случае, если в режиме работы рабочая и проверяющая функции не совпадут
<mrow><mtext>E</mtext><mo>=</mo><msub><mtext>F</mtext><mtext>p</mtext></msub><mo>⊕</mo><msub><mtext>F</mtext><mrow><mtext>пp</mtext></mrow></msub><mo>=</mo><mtext>1</mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><mo>⊕</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>x</mi><mn>3</mn></msub><mtext> </mtext><mo>⊕</mo><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>1</mtext></msub><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>2</mtext></msub><msup><mtext>x</mtext><mtext>,</mtext></msup><msub><mrow /><mtext>3</mtext></msub><mtext> </mtext><mtext> </mtext><mtext> (7)</mtext></mrow>
На фиг.1 представлена структурная схема самопроверяемого тестопригодного логического преобразователя, которая разработана на основе соотношений (5), (6) и (7), а на фиг.2 - структурная схема логического элемента VAR с электронно перестраиваемой логической функцией.
1
2
3
p
1
2
3
p
1
2
3
p
p
n
Входные логические переменные x, x, х подаются соответственно на входы логического преобразователя 1, 2, 3. В соответствии с реализуемой логической функцией F (x, x, х) вход 1 подключаются к первому 26 входу элементов VAR 7, 8. Ко второму входу 27 элемента 7 подключается вход 3 логического преобразователя, а ко второму входу 27 элемента 8 подключается вход 2 преобразователя. Выход элемента 8 подключается к входу 26 элемента VAR 9, образуя, таким образом, их последовательную цепочку. Второй вход 27 элемента VAR 9 соединен со входом 3 логического преобразователя. На вход 23 поступает дополнительный сигнал управления u, который подключается к третьим входам 28 всех элементов VAR 7, 8, 9, 10, 11, 12, 13. Первые входы элементов неравнозначности 15, 16, 17 соответственно соединены с вторым входом логического преобразователя, с выходом элемента 7 и выходом элемента 9. Выходы элементов 15 и 16 соответственно соединяются со вторыми входами элементов 16 и 17. Второй вход элемента 15 соединен с выходом элемента 14, реализующего логическую функцию генератора логической 1. Выход элемента 17 соединен с выходом 25 логического преобразователя, где формируется логическая функция F (x, x, х) в рабочем режиме преобразователя. Элементы 15, 16, 17 образуют первую последовательную цепочку из трех (r-1) двухвходовых элементов неравнозначности, реализующих рабочую функцию F путем свертки по модулю два четырех (i=4) k-аргументных конъюнкций (включая нулевую конъюнкцию). Для обеспечения свойства самопроверяемости логического преобразователя в режиме работы, вводят дополнительную последовательную цепочку из пяти (s+1) двухвходовых элементов неравнозначности 18, 19, 20, 21, 22, которая на выходе 24 формирует признак ошибки путем реализации свертки по модулю два значения функции F, всех s=4 дополнительных k-аргументных конъюнкций и дополнительной n-аргументной конъюнкции инверсий входных аргументов, причем сумма s+r=2, то есть равна количеству всех различимых k-аргументных конъюнкций в полиноме Жегалкина общего вида, включая и единичную конъюнкцию. Выходы элементов 18, 19, 20, 21 соответственно подключают к вторым входам элементов 19, 20, 21, 22, а выход элемента 22 подключают к выходу 24 преобразователя, образуя таким образом дополнительную последовательную цепочку из элементов неравнозначности. Первые входы элементов 18, 19, 20, 21, 22 соответственно соединены с входом 1 и входом 3 преобразователя, выходами элементов 10, 11 и 13. Второй вход элемента 18 подключен к выходу элемента 17 и выходу 25 логического преобразователя. Первые входы 26 элементов 10 и 11 подключены к входу 2 преобразователя, а вторые входы 27 элементов 10 и 11 соответственно подключены к входам 3 и 1 преобразователя. Входы инверторов 4, 5, 6 подключены соответственно к входам 1, 2, 3 логического преобразователя. Выход элемента 6 подключен к входу 26 элемента 12, второй вход которого подключен к выходу элемента 5. Выход элемента 12 подключен к входу 26 элемента 13, ко второму входу 27 которого подключен выход элемента 4.
p
p
np
При u=1, реализуется рабочий режим функционирования логического преобразователя в соответствии с заданной логической функцией (в данном случае, F), что обеспечивается настройкой всех элементов VAR 7, 8, 9, 10, 11, 12, 13 на последовательную реализацию конъюнкций переменных, поступающих на их входы 26 и 27. В таблице показаны значения функций F (5) и F (6) в рабочем режиме функционирования.
Таблица
x<sub>1</sub>
0
1
0
1
0
1
0
1
x<sub>2</sub>
0
0
1
1
0
0
1
1
х<sub>3</sub>
0
0
0
0
1
1
1
1
F<sub>p</sub>
1
1
0
0
1
0
0
0
F<sub>пр</sub>
1
1
0
0
1
0
0
0
p
пp
Как видно из представленной таблицы, на всех возможных наборах входных переменных при правильно функционирующем логическом преобразователе значения функций F и F должны совпадать, что и обеспечивает придание свойства самопроверяемости тестопригодным логическим преобразователям в рабочем режиме функционирования.
При u=0 структура логического преобразователя реконфигурируется путем одновременной электронной перестройки элементов 7, 8, 9, 10, 11, 12, 13 на реализацию логической функции равнозначности (⊗) над логическими переменными, поступающими на их входы 26 и 27. Логическое уравнение, задающее закон функционирования элементов 7, 8, 9, 10, 11, 12, 13 при поступлении на их входы 26 и 27 переменных а и b соответственно и на вход 28 сигнала управления u, имеет следующий вид:
<mrow><mi>y</mi><mo>=</mo><mtext>(a & b)</mtext><mo>+</mo><mover accent="true"><mrow><mtext>(a</mtext><mo>+</mo><mtext>b</mtext><mo>+</mo><mtext>u)</mtext></mrow><mo stretchy="true">¯</mo></mover><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>(8)</mtext></mrow>
p
пp
где y - выходной сигнал, формируемый на выходах 32 элементов 7, 8, 9, 10, 11, 12,13, в которых элемент 29 реализует логическую функцию И над входными сигналами a и b, элемент 30 реализует логическую функцию ИЛИ-НЕ над сигналами a и b, а также над сигналом управления u, а элемент 31 реализует функцию ИЛИ над сигналами с выходов элементов 29 и 30. В результате настройки элементов 7, 8, 9, 10, 11, 12, 13 на реализацию функции равнозначности, функции F и F преобразуются, так как в соответствующих им уравнениях все конъюнкции будут заменены на операции равнозначности. Такие уравнения получают из исходного математического описания путем формальной замены в нем всех операций логического И на операции равнозначности с последующим приведением их к операциям неравнозначности.
В зависимости от реализуемой логической функции в рабочем режиме, логический преобразователь в режиме тестирования (при отсутствии в нем неисправностей) реализует одну из возможных линейных логических функций, общий вид которых соответствует соотношению (9):
<mrow><msub><mrow><mtext>F*(x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><mn>,.</mn><mo>…</mo><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext>)</mtext><mo>=</mo><msub><mtext>B</mtext><mtext>0</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>B</mtext><mtext>1</mtext></msub><msub><mtext>x</mtext><mtext>1</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> B</mtext></mrow><mtext>2</mtext></msub><msub><mtext>x</mtext><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><mo>…</mo><mo>⊕</mo><msub><mrow><mtext> B</mtext></mrow><mrow><mtext>n-1</mtext></mrow></msub><msub><mtext>x</mtext><mrow><mtext>n-1</mtext></mrow></msub><mtext> </mtext><mtext> </mtext><mtext> (9)</mtext></mrow>
1
j
где коэффициенты В={0,1}, i=0, n-1; x={0,1}, j=1, n.
i
Коэффициенты B не вычисляются, они автоматически находятся из выражений вида (5), с использованием соотношений (10):
<mrow><msub><mtext>x</mtext><mtext>i</mtext></msub><mo>⊗</mo><mtext> </mtext><msub><mi>x</mi><mtext>j</mtext></msub><mo>=</mo><mtext>1 </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>j</mtext></msub><mtext>;</mtext><mtext> </mtext><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mo>=</mo><mtext>0;</mtext><mtext> </mtext><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>i</mtext></msub><mo>=</mo><msub><mtext>x</mtext><mtext>i</mtext></msub><mtext>. </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext>(10)</mtext></mrow>
p
пp
С учетом (9) и (10) в режиме тестирования функции F (5) и F (6) приводятся к виду:
<mrow><msub><mrow><mtext>F*</mtext></mrow><mtext>p</mtext></msub><msub><mrow><mtext>(x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><mn>,.</mn><mo>…</mo><msub><mtext>x</mtext><mtext>n</mtext></msub><mtext>)</mtext><mo>=</mo><mtext>1 </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mo>⊗</mo><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>1</mtext></msub><mo>⊗</mo><msub><mtext>x</mtext><mtext>2</mtext></msub><mo>⊗</mo><msub><mtext>x</mtext><mtext>3</mtext></msub><mo>=</mo><mtext>0</mtext><mtext>,   (11) </mtext></mrow>
<mrow><msub><mrow><mtext>F*</mtext></mrow><mrow><mtext>пр</mtext></mrow></msub><msub><mrow><mtext>(x</mtext></mrow><mtext>1</mtext></msub><msub><mrow><mtext>, x</mtext></mrow><mtext>2</mtext></msub><msub><mrow><mtext>,x</mtext></mrow><mtext>3</mtext></msub><mtext>)</mtext><mo>=</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mrow><mtext> x</mtext></mrow><mtext>3</mtext></msub><mtext> </mtext><mo>⊕</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>2</mtext></msub><mo>⊕</mo><msub><mi>x</mi><mn>2</mn></msub><mo>⊗</mo><msub><mtext>x</mtext><mtext>3</mtext></msub><mtext> </mtext><mo>⊕</mo><msup><mrow><mtext> (x</mtext></mrow><mtext>,</mtext></msup><msub><mrow /><mtext>1</mtext></msub><mo>⊗</mo><msup><mrow><mtext> x</mtext></mrow><mtext>.</mtext></msup><msub><mrow /><mtext>2</mtext></msub><mtext> </mtext><mo>⊕</mo><msup><mrow><mtext> x</mtext></mrow><mtext>,</mtext></msup><msub><mrow /><mtext>3</mtext></msub><mtext>)</mtext><mo>=</mo><msup><mrow><mo stretchy="false">(</mo><msub><mtext>x</mtext><mtext>1</mtext></msub><mo>⊗</mo><msub><mrow><mtext> x</mtext></mrow><mtext>2</mtext></msub><mo>⊕</mo><msub><mtext>x</mtext><mtext>2</mtext></msub><mtext>)</mtext></mrow><mtext>,</mtext></msup><mtext> </mtext><mo stretchy="false">(</mo><mtext>12)</mtext></mrow>
j
1
2
S
S
Э
Э
Э
ЗП
ЗП
n
n
n
В режиме тестирования логического преобразователя переменные х (j=1, n) заменяются на псевдослучайные последовательности максимальной длины (М-последовательности), которые могут генерироваться на предельных частотах внешним n-разрядным регистром сдвига с линейной обратной связью [4]. Множество М всех М-последовательностей, генерируемых n-разрядным регистром сдвига, состоит из 2(2-1) М-последовательностей, отличающихся друг от друга величиной циклического сдвига и/или инверсными значениями битовых сигналов. Тогда каждой М-последовательности можно присвоить номер, соответствующий ее циклическому сдвигу, относительно какой-либо М-последовательности, произвольно выбранной за первую. Тогда М={M, M,.…M}, S=2(2-1). Специфической особенностью M из М является то, что для них выполняются все соотношения (10), при этом эталонная реакция М правильно функционирующего логического преобразователя будет также принадлежать множеству М и может алгоритмически формироваться из n тестовых М-последовательностей, что обеспечивает возможность одновременного формирования тестовых и эталонной М-последовательностей на предельной рабочей частоте логического преобразователя. Как видно из структурной схемы, представленной на фиг.1, и соотношений (10), любая константная неисправность, кроме неисправностей на входах, будет искажать выходную функцию логического преобразователя в режиме тестирования М-последовательностями и, следовательно будет обнаружена при несовпадении выходного сигнала логического преобразователя с М. Так же эффективно обнаруживаются неисправности типа короткие замыкания. При коротких замыканиях проводников в цифровой схеме в точках замыкания реализуются над логическими (двоичными) сигналами, так называемые монтажное И или монтажное ИЛИ. Если электрический сигнал логического 0 подавляет электрический сигнал логической 1, то реализуется монтажное И. Если электрический сигнал логической 1 подавляет электрический сигнал логического 0, то реализуется монтажное ИЛИ. С учетом этого, а также уникальной особенности М-последовательностей, заключающейся в том, что любые две различные М-последовательности из одного того же класса отличаются в половине своих (2-1) разрядах, следует, что любые неисправности типа коротких замыканий будут обнаруживаться, так как при возникновении монтажных И или ИЛИ выходная функция логического преобразователя будет отличной от М. Достоверное тестирование по данному способу необходимо проводить путем сравнения эталонного тестового сигнала с реально формируемым на выходе логического преобразователя с запаздыванием, величина которого определяется как τ=r t, где r - количество последовательно включенных элементов неравнозначности, а t - время задержки их переключения. Так же следует проверять признак ошибки в рабочем режиме функционирования логического преобразователя.
Техническим результатом от использования заявляемого изобретения является повышение надежности функционирования тестопригодных логических преобразователей путем придания им дополнительного свойства самопроверяемости в режиме работы.
Источники информации
1. Киносита К., Асада К., Карапу О. Логическое проектирование СБИС. - М.: Мир, 1988. - 309 с.
6
2. Патент RU 2413282 С2, МПК G06F 11/26. Способ тестопригодной реализации логических преобразователей / Акинина Ю.С. (RU), Подвальный С.Л. (RU), Тюрин С.В. (RU), заявитель и патентообладатель ГОУ ВПО «Воронежский госуд. техн. ун-т. (RU) - №2008151028/08; заявл. 22.12.2008; опубл. 27.02.2011, бюл. №6.
3. Гаврилов Г.Л., Сапоженко А.А. Задачи и упражнения по дискретной математике. - М.: Физматлит, 2005. - 460 с.
4. Ярмолик В.Н. Контроль и диагностика цифровых узлов ЭВМ. - Мн.: Наука и техника, 1988. - 240 с.