Проектирование и тестирование логических устройств
УДК 681.518.5:004.052.32
Р. Б. Абдуллаев
Кафедра «Автоматика и телемеханика на железных дорогах», Петербургский государственный университет путей сообщения Императора Александра I
СВОЙСТВА ПОЛИНОМИАЛЬНЫХ КОДОВ В СИСТЕМАХ ФУНКЦИОНАЛЬНОГО КОНТРОЛЯ КОМБИНАЦИОННЫХ ЛОГИЧЕСКИХ СХЕМ
Рассмотрены способы построения систем тестового и функционального контроля логических схем, а также присущие им недостатки. Обозначены принципы построения полиномиальных кодов и особенности их применения в задачах функционального диагностирования логических комбинационных схем железнодорожной автоматики. Перечислены существующие и выявлены новые свойства полиномиальных кодов, учет которых необходим при синтезе комбинационных схем самоконтроля, в частности, это свойство обнаружения однократных и двукратных ошибок, свойство обнаружения ошибок нечетной кратности, свойство обладания полиномами низшего класса обнаруживающими характеристиками некоторых полиномов старшего класса. Приведено условие для полного обнаружения полиномиальными кодами двукратных ошибок любого вида. Произведен сравнительный анализ обнаруженных ошибок различной кратности полиномиальными кодами 2, 3 и 4-го классов в сравнении с соответствующими кодами суммирования. В ходе экспериментов по обнаружению ошибок в комбинационных схемах из набора LGSynth,89 полиномиальные коды показали хорошие результаты. В некоторых контрольных схемах при использовании полиномиальных кодов достигается полное обнаружение ошибок любой кратности. Рассчитана также структурная избыточность систем функционального контроля при применении полиномиальных кодов, при которых избыточность системы не превышала 70-80 % от значения избыточности при использовании кодов суммирования, и 50-60 % при сравнении с методом дублирования.
комбинационная схема; функциональное диагностирование; равномерные коды; полиномиальный код; образующий полином; свойства полиномиального кода
Введение
Безопасная и бесперебойная работа железнодорожного транспорта во многом зависит от надежного функционирования устройств железнодорожной автоматики и телемеханики [1]. С внедрением новых и поэтапной модернизацией существующих устройств и систем упрочивается тенденция
использования современных средств и методов диагностирования устройств автоматики в отличие от традиционных методов. Традиционный подход при диагностировании состояния и обслуживания устройств автоматики носит планово-предупредительный характер выявления причин отказов и менее эффективен сегодня. Применение современных методов диагностирования в области железнодорожной автоматики и телемеханики, таких как тестовое или функциональное диагностирование [1, 2], позволяет повысить надежность устройств автоматики, выполнить точный анализ состояния объектов диагностирования, прогнозировать дальнейшие изменения рабочих параметров и выявить предотказные состояния, тем самым снижая эксплуатационные и ремонтные расходы, а также повысить культуру труда работников дистанции. Тестовый контроль подразумевает отключение диагностируемого узла от других объектов автоматики, что, в свою очередь, требует выделения времени для данной операции и может привести в некоторых случаях к простоям в движении поездов (например, при замене путевого реле для отправки в контрольно-измерительный пункт дистанции требуется выделение «окна» в движении поездов на соответствующем участке пути). При функциональном контроле узлы диагностируются в рабочем режиме без отключения их от других объектов автоматики, что является эффективным способом диагностирования.
Большинство современной диагностической аппаратуры построено на базе микропроцессорных и микроэлектронных схем [3]. В случае неправильного функционирования этих устройств из-за одного или нескольких отказавших элементов, изменения параметров составляющих, воздействия помех, обрыва или же короткого замыкания в межсхемных соединениях сигнал должен блокироваться для предотвращения воздействия его на последующие управляющие и контролирующие узлы автоматики. Поэтому для надежной работы узлов, схем и устройств применяют в основном широко известные методы резервирования [4-6] с использованием различных способов помехозащитного кодирования.
Виды ошибок разнообразны. На выходах схем могут возникать как монотонные, так и симметричные и асимметричные ошибки одновременно. Существующие способы кодирования не располагают обнаруживающими характеристиками сразу всех видов ошибок. Однако некоторые коды обладают свойствами 100 %-го обнаружения ошибок конкретного вида и кратности. Что позволяет использовать их при синтезе систем функционального контроля. Так, например, существует монотонная реализация дискретных логических схем, в которых проявляют себя только монотонные ошибки. При таких ошибках возможны только однонаправленные искажения значений функций вида 1^0 либо 0^1. При данном виде ошибок для построения систем контроля могут применяться классические коды Бергера [7], а также модульные коды с суммированием, которые обнаруживают подавляющее большинство подобного рода ошибок [8-10]. Такой подход широко применя-
ется проектировщиками исходя из свойств используемого помехозащитного кода при проектировании систем функционального контроля.
Однако существующим методам помехозащитного кодирования свойственны большие недостатки. Например, метод использования кода с суммированием не позволяет обнаруживать симметричные ошибки в комбинационных схемах даже малой кратности, но при этом обладает хорошими обнаруживающими характеристиками по выявлению монотонных и асимметричных ошибок. Кроме того, при методе с защитой по паритету не обнаруживаются ошибки четной кратности.
Учитывая вышесказанное, при построении систем функционального контроля возникает необходимость применения других способов кодирования, обладающих лучшими и близкими к оптимальным характеристиками обнаружения ошибок.
В качестве альтернативы большой интерес представляет полиномиальное кодирование для использования этого типа кодов при построении систем функционального контроля ввиду широкого применения и простоты реализации процесса кодирования, а также возможности выбора полиномов при построении кода для улучшения характеристик обнаружения конкретного типа возникающих ошибок. При построении полиномиальных кодов с использованием определенных образующих полиномов получаются кодовые слова, удовлетворяющие условию теоретического минимума общего количества необнаруженных ошибок, т. е. с использованием некоторых полиномов информационные векторы равномерно распределяются по всем контрольным, что не свойственно большинству типов равномерных кодов. Для определения свойств и возможности применения полиномиальных кодов в задачах функционального контроля необходимо изучить существующие и, если они есть, выявить новые свойства по обнаружению ошибок, а также свойства по обнаружению конкретного вида ошибок (одиночные, монотонные, симметричные, асимметричные), определить сложность и принцип построения кодирующего узла при полиномиальном кодировании, выполнить сравнительный анализ эффективности применения полиномиального кодирования с существующими методами помехозащитного кодирования.
1 Равномерные коды в системах функционального контроля
Как отмечалось, диагностирование делится на два типа: тестовое и функциональное, может применяться и комбинированный вариант. Традиционный метод обслуживания и выявления неисправностей устройств автоматики и телемеханики относится к тестовому диагностированию, так как для определения причин неисправностей или планового контроля по графику технологического обслуживания необходимо проведение его в отсутствие движения поездов на объекте диагностирования, в некоторых случаях требу-
ется отключение объекта от системы, а также выделение «окна» в технологическом процессе железнодорожного участка (станции, перегона, переезда) при устранении серьезных неисправностей.
При микропроцессорном исполнении аппаратуры автоматики тестовое диагностирование может выполняться в свободное от движения поездов время благодаря наличию резервирующих блоков или узлов объектов диагностирования.
При тестовом контроле, как показано на рис. 1, к объекту контроля ад подключают диагностическую аппаратуру Т(х), затем от контрольных выходов устройства ^(х) на специальные измерительные входы устройства Т(х) поступают наборы измеряемых величин t, t, ..., t, которые могут быть разнообразны, в зависимости от полноты и глубины технического диагностирования. Такой способ диагностирования неэффективен, поскольку требует отведения для этих целей определенного времени, отключения диагностируемого объекта от системы для проведения диагностирования и не имеет возможности получения измерений в рабочем режиме самого устройства. В таком случае целесообразным является применение функционального контроля.
F(x)
i 'ч* 1 < i V t k " Измеряемые величины
h f у ... tn f Л
T(x)
Индикация технического состояния
Рис. 1. Система тестового диагностирования
При функциональном диагностировании подразумевается, что контролируемый блок F(x), реализующий рабочие функции f0, fv ..., fm, в зависимости от входных переменных x0, x^ ..., x , дополняется блоком F* (x), который является аналогом блока F(x), вырабатывающим контрольные разряды g0, g1, gk [И]- Затем полученные значенияf0, f, ..., fm и g0, g1, ..., gk сравниваются между собой. Эту операцию осуществляет компаратор TRC, выходы которого z 0 и z 1 служат для индикации наличия ошибки. При таком подходе
образуется классическая система функционального контроля по методу дублирования структуры (рис. 2). С помощью дублирования структуры диагностируемого узла достигается 100 %-е обнаружение одиночных ошибок в блоке F(x). Обнаруживающая способность ошибок при данном методе оказывает влияние на структурную избыточность контролируемой аппаратуры и может достигать 3-4-кратного значения избыточности самого блока Г(х). Сложность также представляет реализация компаратора с большим числом входных переменных. При дублировании число контрольных разрядов к прямо пропорционально числу информационных разрядов т. Структурная избыточность сказывается на себестоимости и громоздкости аппаратуры систем функционального контроля, на сложности ее технической реализации. Построение систем функционального контроля с высокой обнаруживающей способностью не всегда имеет смысл, так как возникновение некоторых отказов в устройствах невозможно исходя из топологии самого объекта или принципов проектирования. Поэтому применение кода с удвоением элементов в качестве равномерного кода для построения систем функционального контроля не столь эффективно.
Хо Х1
хк
Р(х)
Г* (х)
/о
/1
/т
gо
gl
'ТЯС
gk
->/о
">/1
/т
Рис. 2. Система функционального контроля по методу дублирования
На возрастание структурной избыточности влияет увеличение числа контрольных разрядов. Следовательно, при построении систем функционального контроля необходимо максимально сократить их количество. В качестве оптимального варианта здесь выступает метод с защитой по паритету (рис. 3), так как длина контрольного вектора в этом случае g = 1. При данном методе нет необходимости использовать компаратор ТЯС, а генератор О вырабатывает контрольный разряд g. Значение контрольного разряда рассчитывается с помощью линейной функции, которая равна нулю или единице в зависимости от количества единиц в информационном векторе (если количество единиц четное число, то значение функции равно нулю, а если нечетное, то значение функции равно единице):
g = fo e f e... e fm
(1)
Xo Xi
xh
fo ->f1
fm
->z"
> z
Рис. 3. Структурная схема функционального контроля по методу паритета
Малый размер (равное единице) контрольного вектора значительно сокращает структурную избыточность, но негативно сказывается на обнаруживающей характеристике кода.
При использовании кода с защитой по паритету обнаруживаются все ошибки нечетной кратности. Не обнаруживаются все ошибки четной кратности, даже малой (2-й и 4-й), вероятность возникновения которых велика. Вследствие этого использование кода с защитой по паритету не является оптимальным вариантом при построении самопроверяемых логических схем и вынуждает использовать другие помехозащищенные коды, структуры которых не являются стандартными, как при методе дублирования и паритета. Подавляющее большинство помехозащитных кодов, у которых число контрольных разрядов меньше, чем при методе дублирования, но больше, чем при коде с защитой по паритету, обладают лучшими обнаруживающими характеристиками, чем вышеприведенные, и могут быть эффективно использованы при построении систем функционального диагностирования комбинационных логических схем.
Помехозащитные коды, которые состоят из информационной и контрольной частей, а их символы всегда занимают неизменные позиции, т. е. расположены в определенных фиксированных разрядах, называются разделимыми. Условное обозначение таких кодов имеет обозначение: (т,к)-коды. Одним из широко применяемых видов кодирования в данной области является 5(т,к)-код с суммированием. Применению кода с суммированием и его разновидностям при построении систем контроля логических схем посвящено немалое количество работ [8-10]. Значения контрольных разрядов при классическом коде с суммированием зависят от веса (количества единиц) информационного вектора, т. е. вес вектора записывается в двоичном
виде в контрольный вектор. Количество контрольных разрядов вычисляется по следующему выражению:
к = | 1о£2(т +1) 1. (2)
Полученное число к округляется до большего целого значения (запись
обозначает целое сверху от вычисляемого значения).
£(т,к)-коды обладают хорошими обнаруживающими характеристиками - так, с помощью подобных кодов достигается 100 %-е обнаружение монотонных ошибок. Это объясняется тем, что все информационные векторы с одинаковым весом распределены по одинаковым контрольным векторам. Переход 1^0 или 0^1 в информационном векторе, т. е. изменение веса кода, говорит о непринадлежности искаженного вектора к контрольному, что и фиксируется в виде монотонной ошибки. Но при одинаковом количестве переходов 1 ^0 и 0^1 вес кода не изменяется и £(т,к)-код не может обнаружить такого рода искажений, - другими словами, кодом Бергера не обнаруживаются 100 % возникающих симметричных ошибок, что является существенным недостатком этого способа кодирования. Для анализа свойств равномерных кодов удобно представлять их в табличной форме задания, в которой показано распределение информационных векторов на контрольные. Для примера в табл. 1 показано распределение информационного вектора по контрольным векторам £(3,2)-кода. При помощи этой таблицы легко проанализировать вышеприведенные положения. Например, если вектор 001 в результате искажения преобразуется в вектор 101, то такую ошибку £(3,2)-код обнаружит, поскольку этот искаженный вектор не входит в группу векторов, принадлежащих контрольному вектору 01. В этом случае происходит изменение веса кода. Но если в результате искажения вектор 001 преобразуется в вектор 100 (а это говорит о симметричной ошибке), то искаженная комбинация также будет принадлежать контрольной группе неискаженного вектора. В таком случае вес кода остается неизменным. Подобного рода ошибки любой кратности не могут быть обнаружены кодами суммирования.
Таблица 1. Распределение информационных векторов для £ (3,2)-кода
Распределение информационных векторов по контрольным разрядам
00 01 10 11
000 001 101 111
010 110
100 011
Из табл. 1, кроме того, следует вывод о неоптимальности £(3,2)-кода, так как распределение информационных векторов по контрольным неравномерно, что
сказывается на обнаруживающих характеристиках кода. По критерию минимума необнаруженных ошибок любой код имеет наименьшее количество ошибок, если его информационные векторы равномерно распределены по контрольным.
Согласно изложенному, при построении систем функционального контроля комбинационных логических схем недостатки вышеприведенных помехозащитных кодов влияют на показатели, такие как надежность, высокая структурная избыточность и сложность реализации систем контроля. Существующие методы кодирования, используемые при построении систем функционального диагностирования, наряду с преимуществами имеют и значительные недостатки. Поэтому большой интерес представляет использование полиномиальных кодов в качестве альтернативы при построении систем самоконтроля ввиду широкого их применения в устройствах обработки, хранения и передачи данных. Полиномиальные коды применяются в таких протоколах передачи информации, как ModBus, Ethernet, FlexRay, HDLC (авиация), в устройствах обработки и хранения информации с форматами MPEG-2, OpenPGP, PNG, SCSI, в форматах карт памяти типа MMC, SD, в интерфейсах USB, Bluetooth и т. д. [12-15]. В области железнодорожной автоматики и телемеханики полиномиальные коды применяют, например, при передаче данных от измерительных контроллеров к концентраторам диагностической информации в системах непрерывного мониторинга технического состояния.
2 Принципы построения полиномиальных кодов
Как уже отмечалось, полиномиальные коды получили широкое применение в основном в сфере передачи информации, которая является лидером по использованию различных способов кодирования.
При полиномиальном кодировании последовательность цифр информационного слова преобразуется в некий многочлен, отсюда вытекает название такого способа кодирования. Например кодовое слово 1011 можно представить в виде полинома следующим образом:
1 • /3 + 0 • /2 +1 • /1 +1 • /0.
Член полинома / с коэффициентом «0» отбрасывается, и информационное слово принимает упрощенный алгебраический вид:
/3 + / +1.
Способ алгебраического представления информации позволяет выполнять различные действия [14]. Но следует отметить, что все математические операции с полиномами выполняются в кольце вычетов по модулю два:
1) сложение двух полиномов осуществляется складыванием по модулю два коэффициентов последних при равных степенях /
/3 + 0 + / +1
+ т
/ + 0 +1;
/3 + /2 + /
2) умножение производится по правилу умножения степенных функций, а полученные коэффициенты одноименной степени складываются по модулю два:
/3 + 0 + /+1 X -
/ + 0+1
/3+/+1 ;
/5+/3+/2
/5+/2+/+1
3) деление также производится по правилу деления степенных функций, но операция вычитания осуществляется методом сложения по модулю два:
+
/5+/2+/+1 /5+/3+/2 /3 + /+1 /3 + /+1 0
/3+/+1
/2+1
Существуют два способа полиномиального кодирования - умножение и деление с остатком [14, 15]. При первом способе информационное слово М (/) умножают на образующий полином О (/), получившееся кодовое слово V (/) и является результатом полиномиального кодирования:
V (/) = М (/ )• О (/). (3)
При таком способе кодирования имеет место образование несистематического кода, в котором нет четкого разграничения информационной т и контрольной к частей, что затрудняет процесс кодирования и декодирования. Вследствие этого данный способ неэффективен в применении.
При способе деления с остатком алгоритм получения кодового вектора V ( /) следующий.
1. Выбирается образующий полином О (/) с таким условием, чтобы при операции деления остаток не был равен нулю.
2. Информационный вектор М(/) умножается на величину/] ( равна старшей степени образующего полинома) для смещения информационных разрядов в ряд старших битов.
3. Полученное слово • М(/) делится на выбранный образующий полином О ( /).
4. Получившийся остаток от деления Я(/) прибавляется к слову• М(/).
В результате таких операций образуется кодовый полином V (/) вида
V(/) = Г • М(/) + Я(/). (4)
Значения символов полученного остатка Я( /) представляют собой значения разрядов контрольного вектора. При таком способе полиномиального кодирования получается систематический код, когда старшие разряды представляют информационные (т), а младшие - контрольные (к) символы.
Рассмотрим пример получения остатка при делении полиномов (рис. 4). Закодируем информационное слово 101101 с помощью образующего полинома f + / +1. Слово 101101 при преобразовании в алгебраическую форму примет вид f5 + f3 + f2 +1 и, после его умножения на величину f 2, равную степени
7 5 4 2
старшего члена образующего полинома, будет иметь вид f + f + f + f .
^ у" , , /-4 , Гг1Т г 7л ^rG(f)
Г АМ(/)
•/ 7 + f 6 + f5 ^^^^ & f)
0^(7+7>/2
/2+/+1 /+1 = 11
Рис. 4. Получение остатка при делении полиномов
Деление полиномов производится и продолжается в том случае, если степень делимого полинома будет больше или равна степени образующего полинома. Полученный остаток Я( f) будет представлять контрольный вектор, в этом примере равный 11. Кодовый полином в таком случае примет
7 5 4 2
следующую алгебраическую форму: f + f + f + f + f +1 или же кодовое слово вида 10110111 [12, 16] (рис. 5).
Ошибки обнаруживаются посредством деления кодового вектора V (f) на образующий полином О Если при делении остаток равен нулю,
101101 11
I_II_I
/ ^ й
контрольный вектор
информационный вектор Рис. 5. Структура кодового вектора при полиномиальном кодировании
то считают, что искажения не произошло; если остаток не равен нулю, это говорит о наличии ошибки.
Общая структурная схема системы функционального контроля при применении полиномиального кодирования будет иметь вид, показанный на рис. 6. В ней блок Г (х) представляет собой заданное устройство; блок О (х) является блоком контрольной логики, вырабатывающим контрольные раз-
I I
ряды от g 0 по g k, в зависимости от значений входных переменных; блок О(/) представляет собой генератор контрольных разрядов от g0 по gk по значениям рабочих функций блока Г (х); блок ТЯС - компаратор, осуществляющий сравнение одноименных контрольных разрядов. Блок ТЯС представляет собой модуль сжатия парафазных сигналов, на входы которого подаются па-рафазные сигналы вида gigi . При наличии на входах парафазных сигналов на выходах формируется также парафазный сигнал г 1. Нарушение же па-рафазности сигнала на выходе свидетельствует об ошибке в вычислениях, а значит, о неисправности в одном из компонентов системы функционального контроля.
Рис. 6. Общая структурная схема функционального контроля при полиномиальном кодировании
Для построения кодирующей схемы при полиномиальном кодировании на практике часто применяют сдвиговые регистры [15], состоящие из ,0-триггеров, и, поскольку тригеры являются элементами памяти, они не могут быть применены в системах функционального контроля. Решить эту про-
блему можно с помощью применения обычных комбинационных схем [17, 18]. Для этого необходимо получить для всех информационных векторов заданной длины m все контрольные векторы длиной к, а затем минимизировать их (для малых значений m это можно сделать с использованием карт Карно).
Рассмотрим пример построения генератора при заданной величине информационной части m = 4 с использованием полинома f + f +1. Поскольку в числовом выражении этот полином равен 111, а в десятичной системе счисления числу 7, для удобства обозначим этот полином как Р7-код.
В табл. 2 приводятся все возможные значения контрольных разрядов при использовании полинома f + f +1.
Таблица 2. Разряды контрольных векторов
№ Информационный вектор M ( f ) Контрольные разряды остатка Я( /) при делении на полином Р7 и кодовый полином V(/)
f3,f2, f1, f0 R( f ): ft, g о V ( f )
0 0000 00 0000 00
1 0001 11 000111
2 0010 01 0010 01
3 0011 10 001110
4 0100 10 0100 10
5 0101 01 010101
6 0110 11 011011
7 0111 00 011100
8 1000 11 100011
9 1001 00 1001 00
10 1010 10 1010 10
11 1011 01 101101
12 1100 01 110001
13 1101 10 110110
14 1110 00 1110 00
15 1111 11 1111 11
При помощи карт Карно (рис. 7) упрощаем функции получения контрольных разрядов.
Выписывая минимизированные выражения, получаем функции контрольных разрядов полиномиального Р7-кода:
&о = /з/1/о V МЛ V V /з/1/о = л ф А ф Л;
& = ЛЛ/о V /з/2Л V /з/2Л V Л3ЛЛ = Л3 ф Л2 ф ./о-
Как видно, функции получились линейными, что значительно упрощает построение генераторов полиномиального кода.
го Л г; /з
1--- 11 1___ .7] /о /1 и и
р - - 11 1___ .и и 111
1*1 1___ 'Л Г] п
р — - 11 1__ 'И
/2 /2 Рис. 7. Минимизация контрольных функций по картам Карно
В табл. 3 приводятся функции получения контрольных разрядов для полиномов Р5, Р6 и Р7 при длине информационного вектора т = 4, 5, 6. Из таблицы видно, что все функции этой группы полиномов являются линейными и для полиномов старших групп это свойство также сохраняется.
Таблица 3. Функции некоторых универсальных генераторов
Разрядность вектора, т РЖ-код Полиномы Функции
4 Р5 /2 +1 & о = /о ф /2;
& = /1 ф /з;
Р6 /2 + / &о = о;
& = /з ф /2 ф /1 ф /о;
Р7 /2 + / +1 &о = /з ф /1 ф /о;
& = /з ф /2 ф /о;
5 Р5 /2 +1 & о = /4 ф /2 ф /о;
&1 = /з ф /1;
Р6 /2 + / &о = о;
& = /4 ф /з ф /2 ф /1 ф /о;
Окончание табл. 3
Разрядность вектора, m PN-код Полиномы Функции
5 P7 f2 + f +1 g0 = f4 ® f3 ® fi ® fo;
gi = f3 ® f2 ® fo;
6 Р5 f2 +1 g0 = f4 ® f2 ® fo;
g = f5 ® f3 ® fi;
Р6 f2 + f go = 0;
g = f5 ® f4 ® f3 ® f2 ® fi ® fo ;
Р7 f2 + f +1 g o = f4 ® f3 ® fi ® fo;
gi = f5 ® f3 ® f2 ® f,;
Поскольку кодер полиномиального кода может быть реализован в виде комбинационной схемы, его можно использовать при синтезе систем функционального контроля комбинационных логических схем.
3 Основные свойства обнаружения ошибок полиномиальными кодами
Полиномиальные коды относятся к классу циклических блоковых кодов и обладают свойственными для этого типа кодов характеристиками. Существенным преимуществом этого типа кодов перед другими является возможность выбора образующего полинома [19] для построения кода, при сохранении длины контрольного вектора и незначительном варьировании структурной избыточности блока контрольной логики и генератора. Выбор того или иного полинома сильно сказывается на обнаружении общего количества ошибок, а также их видов. Выше было сказано, что классические коды с суммированием хорошо справляются с обнаружением монотонных и малых кратностей асимметричных ошибок, но не обнаруживают все симметричные ошибки. Полиномиальные коды не обладают такими «резкими» характеристиками, им свойственны более уравновешенные характеристики по обнаружению ошибок, направленные на выявление как монотонных, так и симметричных и асимметричных ошибок [20].
Для определения свойств полиномиального кода рассмотрим несколько видов Р^-кодов и для удобства представления введем понятие класса полиномов, означающее привязанность полинома к определенному количеству контрольных разрядов, - например, образование двух контрольных разрядов с помощью некоторого полинома означает его отношение ко второму классу
полиномов, трех - к третьему классу и т. д. В каждом классе количество полиномов разное. Ко второму классу образующих полиномов относятся всего четыре полинома - Р4, Р5, Р6, Р7, так как при использовании этих полиномов длина контрольного вектора равна двум. С возрастанием числа контрольных разрядов также увеличивается количество образующих полиномов, составляющие определенный класс. Отсюда следует, что большой выбор образующих полиномов присутствует в старших классах, но при построении систем функционального контроля, во избежание возрастания структурной избыточности, применение полиномов старших классов неприемлемо. Вследствие этого необходимо проанализировать свойства группы образующих полиномов 2, з и 4-го классов, которые образуют небольшое количество контрольных разрядов.
При выборе образующего полинома необходимо обратить внимание на то, что полиномы с одним членом, такие как / / 2, /з, / 4 и т. д., производят остаток, всегда равный нулю, а значит, не придают коду обнаруживающих характеристик. Но это не говорит о том, что увеличение числа членов полинома пропорционально улучшает обнаруживающую характеристику кода. Как было отмечено, выбор того или иного полинома сказывается на обнаружении ошибок. Для наглядности свойств различных классов полиномов построим таблицу 4 необнаруженных ошибок при т = 4.
Свойство 1. Полиномиальный код обнаруживает все одиночные ошибки, если количество членов образующего полинома равно двум или больше двух.
Для обнаружения одиночной ошибки необходимо, чтобы кодовый многочлен /' не делился на образующий многочлен без остатка, но надо заметить, что не существует такого образующего многочлена с количеством членов больше единицы, при делении на который /' остался бы без остатка, что и доказывает свойство 1 (см. табл. 4).
По табл. 4 можно видеть, что образующие полиномы любого класса с количеством членов больше одного обнаруживают однократные ошибки, а полиномы с / /2 и /з такими свойствами не обладают - ими не обнаруживаются все возникающие однократные ошибки.
Свойство 2. Любой многочлен, который делится на многочлен / +1 без остатка, обнаруживает любые ошибки нечетной кратности.
Предположим, что V (/) = а+ а^ _/^-1 + а^-2/^-2 +... + ах / + ао, и, если
в разложение V (/) входит полином / +1, V (/) = (/ +1) • Q( /), для некоторого Q( /), подставляя вместо / единицу, получаем
V (1) = (1 +1) • Q (1) = о,
а с другой стороны,
V (1) = а: + а:-:1 + а: _2 +... + а: + ао.
Таблица 4. Характеристики необнаруженных ошибок различными полиномиальными
кодами при т = 4
Классы Полиномы Условное обозначение Количество необнаруженных ошибок кратностью ё Общее количество необнаруженных ошибок
i 2 3 4
i f Р2 64 96 64 i6 240
f + i Р3 o 96 o i6 112
2 f 2 Р4 64 96 64 i6 240
f2 + i Р5 o 32 o i6 48
f2 + f Р6 o 96 o i6 112
f2 + f + i Р7 o i6 32 o 48
3 f3 Р8 64 96 64 i6 240
f3 + i Р9 o i6 o o 16
f3 + f Р10 o 32 o i6 48
f3 + f + i Р11 o o i6 o 16
f3 + f2 Р12 o 96 o i6 112
f3 + f2 + i Р13 o o i6 o 16
f3 + f2 + f Р14 o i6 32 o 48
f3 + f2 + f + i Р15 o o o i6 16
Количество членов полинома V (/) равно количеству коэффициентов а, и, исходя из того, что произведение (1 +1) • Q(1) равно нулю, количество членов четно, что и подтверждает свойство 2. Следуя таблице 4, такими полиномами являются Р3, Р5, Р6, Р9, Р10, Р12 и Р15 из представленных классов.
Свойство 3. Некоторые полиномы низшего класса, с гораздо меньшей составляющей структурной избыточности, обладают теми же характеристиками, что и некоторые полиномы старшего класса, что говорит о их подобности.
Как отмечалось, увеличение количества разрядов контрольной группы при полиномиальном кодировании не всегда является правильным решением для обнаружения большего количества возникающих ошибок. Так, полином Р7 обладает одинаковыми характеристиками по обнаружению ошибок с полиномом старшего класса - Р14, но при этом структурная избыточность и процесс кодирования при полиноме Р7 гораздо проще и такая характеристи-
ка по обнаружению ошибок сохраняется даже при увеличении разрядности информационного вектора (табл. 5). Характеристики полиномов Р5 и Р1о, Р11 и Р22 также подтверждают их подобность. Количество необнаруженных ошибок по видам (монотонные, симметричные и асимметричные) подобных полиномов не различаются.
Для удобства анализа введен коэффициент ЫрУрре / Ыуре полученных результатов по видам ошибок полиномов Р11 и Р22. Если сравнить соседние неподобные полиномы, например Р7 и Р1о или Р5 и Р14, между собой, то они также имеют одинаковое общее количество необнаруженных ошибок, но различаются по количеству различного вида ошибок, что говорит о их несопоставимости.
На основе данных табл. 5 можно утверждать, что при полиномиальном кодировании увеличение количества контрольных символов, а равно применение полиномов старшего класса не всегда целесообразно, в этом случае необходимо правильно выбирать образующий полином для достижения лучшего результата исправления ошибок.
Свойство 4. Полиномиальный код обнаруживает любые однократные и двукратные ошибки, если разрядность информационного вектора т не превышает значения 2к _ 1 и образующий полином делится на многочлен вида хк +1 с остатками хк_1 или хк_з (к - количество контрольных символов).
Такими образующими полиномами являются:
- полином 2-го класса Р7 при разрядности т < з;
- полиномы з-го класса Р11 и Р1з при разрядности т < 7;
- полиномы 4-го класса Р19 и Р25 при разрядности т < 15;
- полиномы 5-го класса Рз5 и Р49 при разрядности т < з1 и т. д.
На на рис. 8 показаны значения необнаруженных и полное обнаружение двукратных ошибок в зависимости от разрядности информационного вектора. Из рисунка видно, что код, построенный с помощью образующего полинома Р11, при длине его информационной части, не превышающей кратности 7, обнаруживает 1оо % возможных двукратных ошибок. При использовании полинома старшего класса - Р19 полное обнаружение двукратных ошибок обеспечивается при длине информационного вектора не более чем 15 символов. При необходимости увеличения разрядности информационной части и полного обнаружения двукратных ошибок можно применить полиномы старшего класса, такие как Рз5 или Р49, при этом разрядность информационного вектора не должна превышать з1 символ. В каждом последующем классе полиномов также существуют подобные полиномы, но для задач функционального контроля комбинационных схем не используется такой широкий диапазон информационного вектора, вследствие этого рассматривать их нет смысла. Данное свойство полиномиальных кодов является очень важным и его можно эффективно использовать при построении систем функциональ-
Таблица 5. Характеристики подобных полиномов разного класса
т Общее количество необнаруженных ошибок различными подобными полиномами, ед. Значения необнаруженных ошибок от общего количества возникающих по видам, %
Р5 Р10 Р1 Р14 Р11 Р22 Монотонные Симметричные Асимметричные
Р11 Р22 Р11 Р22 Р11 Р22
4 48 48 48 48 16 16 6,061 6,061 0 0 21,429 21,429
5 224 224 224 224 96 96 7,634 7,634 5,455 5,455 18,286 18,286
6 960 960 960 960 448 448 9,302 9,302 8,372 8,372 15,635 15,635
7 3968 3968 3968 3968 1920 1920 10,49 10,49 10,169 10,169 14,105 14,105
8 16128 16128 16128 16128 7936 7936 11,513 11,513 11,289 11,289 13,221 13,221
9 65024 65024 65024 65024 32256 32256 12,012 12,012 11,865 11,865 12,842 12,842
10 261120 261120 261120 261120 130048 130048 12,252 12,252 12,166 12,166 12,669 12,669
11 1046528 1046528 1046528 1046528 522240 522240 12,395 12,395 12,32 12,32 12,584 12,584
12 4190208 4190208 4190208 4190208 2092996 2092996 12,455 12,461 12,404 12,404 12,543 12,543
13 16769024 16769024 16769024 16769024 8380416 8380416 12,496 12,496 12,449 12,449 12,522 12,522
14 67092480 67092480 67092480 67092480 33538048 33538048 12,514 12,514 12,473 12,473 12,511 12,511
15 268402688 268402688 268402688 268402688 134184960 134184960 12,523 12,523 12,486 12,486 12,505 12,505
16 1073676288 1073666288 1073676288 1073676288 536805376 536805376 12,524 12,524 12,493 12,493 12,503 12,503
17 4294836224 4294836224 4294836224 4294836224 2147352576 2147352576 12,522 12,522 12,496 12,496 12,501 12,501
18 17179607040 17182607040 17179607040 17179607040 8589672448 8589672448 12,519 12,519 12,498 12,498 12,501 12,501
19 68718952448 68718952448 68718952448 68718952448 34359220080 34359214080 12,515 12,515 12,499 12,499 12,5 12,5
20 274876858368 274876858368 274876858368 274876858368 137437905396 137437905396 12,512 12,512 12,5 12,5 12,5 12,5
11
О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Разрядность информационного вектра, т ..О..Р11 —о—Р19
Рис. 8. Зависимость обнаружения любых двукратных ошибок при различном значении
разрядности информационного вектора
ного контроля комбинационных логических схем, так как ошибки малой кратности возникают в схемах чаще, чем ошибки больших кратностей.
Вышеперечисленными свойствами не обладает большинство существующих помехозащитных кодов, например, классический код с суммированием не способен обнаружить 100 % возникающих двукратных ошибок.
На рис. 9-11 показана сравнительная характеристика по количеству необнаруженных ошибок различных кратностей полиномиальными кодами 2, 3 и 4-го классов в сравнении с соответствующим кодом суммирования. Был введен коэффициент уm для сравнения количества необнаруженных ошибок соответствующего кода от общего количества возможных по кратностям:
Y m = • 100%. (5)
m
Для разной кратности информационного вектора показано, что оптимальные полиномы имеют меньшую долю необнаруженных ошибок из числа возможных. Из рис. 9 видно, что полиномиальные коды не обнаруживают в два раза меньше ошибок, которые не обнаруживает код суммирования. Также на рис. 11 можно заметить, что полиномиальные коды при малой
10
9 10 11 12 13 14 15 16 17 18 19 20 Длина информационного вектора, т
~С--3-!(т,к) —□— Р5(т,к) --Д- Р6(т,к) ■■■<>■■ Р7(т,к)
Рис. 9. Доля необнаруженных ошибок кодом 5*4 и полиномиальными кодами
2-го класса
зо
25
15
CD
% 10 т
со
-/ V -/ V ~ 7
r
«—
¿A
>--r 1—Г 1—п—n—п—п—п—п—a—о—с
J г 1
<
и
*
□
8 9 10 11 12 13 14 15 16 17 18 19 20 Длина информационного вектора, т
♦ S8(m,k) — û. — Р10(т,к), Р14(т,к)
-О- Р9(т,к), Р13(т,к) —О —PU(m,к), PI5(т,к)
Рис. 10. Доля необнаруженных ошибок кодом 58 и полиномиальными кодами
3-го класса
Длина информационного вектора, т
—0—S16 Р17, Р19, Р21 ~ ú - Р20, Р28 -О— Р25, Р29 - ж- Р22, РЗО
Рис. 11. Доля необнаруженных ошибок кодом 5*16 и полиномиальными кодами
4-го класса
кратности информационного вектора обнаруживают до 97-99 % ошибок, а код суммирования при тех же условиях всего лишь 76-78 %.
Анализ графиков (см. рис. 9-11) еще раз показывает преимущество полиномиальных кодов, но при условии выбора оптимального образующего полинома для построения кодового вектора, поскольку некоторые образующие полиномы имеют плохие обнаруживающие характеристики по сравнению с кодом суммирования.
Итак, можно сказать, что полиномиальное кодирование является перспективным направлением при построении систем самоконтроля и может быть использовано при синтезе комбинационных схем систем функционального диагностирования.
4 Результаты экспериментов
В процессе экспериментов были зафиксированы и проанализированы значения сложности технической реализации структур и обнаруживающих характеристик при применении полиномиальных кодов. Для этого были выбраны контрольные комбинационные схемы из известных наборов MCNC LGSynth"89 и Benchmarks [21].
Комбинационные схемы из набора LGSynth"89 были протестированы [21-24] полиномиальными кодами на обнаружение возникающих в них ошибок. Комбинационные схемы из набора LGSynth"89 описаны в формате *. netblif, что дает возможность оценки эффективности обнаружения ошибок на их выходах с помощью различных блочных кодов. Формат *.netblif описывает структуру комбинационной схемы с использованием двухвходовых, трех-входовых и четырехвходовых логических элементов ИЛИ-НЕ. В ходе эксперимента в схему последовательно вносились все одиночные константные неисправности (stuck-at faults) внутренних логических элементов, а затем на всех входных комбинациях проверялась возможность обнаружения ошибок с помощью полиномиальных кодов. Сами ошибки классифицировались по видам и кратностям, что позволило выявить некоторые закономерности, присущие рассматриваемым кодам. В табл. 6 приводится общая характеристика для каждой контрольной комбинационной схемы по долям необнаруженных ошибок от общего количества возможных при использовании полиномиальных кодов 3-го класса в сравнении с кодом суммирования. Для каждой контрольной комбинационной схемы представлено количество входов и выходов
P S
(столбцы I и O) и рассчитан коэффициент уN' при использовании различных
Таблица 6. Характеристика необнаруженных ошибок
Контрольная схема I O Доли необнаруженных ошибок от общего количества P S возникающих, у N
P9 P10 P11 P12 P13 P14 P15 S8
b1 3 4 0 0 0 4,348 0 0 0 4,348
cmb 16 4 0 0,002 0 13,692 0 0 0 0,002
z4ml 7 4 0 0,384 0 3,071 0 0,768 0 3,071
cm162a 14 5 1,978 5,851 1,832 14,106 1,832 5,875 2,026 0,605
cm163a 16 5 1,661 5,125 1,509 12,603 1,504 5,167 1,803 0,849
alu2 10 6 9,838 2,497 0,304 20,152 0,559 10,182 2,409 12,289
x2 10 7 2,405 3,856 0,071 12,807 0,274 2,77 1,959 0,528
alu4 14 8 4,028 5,604 1,026 18,816 2,153 8,98 3,987 9,457
cm138a 6 8 0 0 0 0 0 0 0 0
f51m 8 8 1,493 3,694 0,121 6,687 0,151 1,945 0,437 0,927
pcle 19 9 1,134 2,436 1,046 5,83 1,069 2,642 1,236 1,103
cm42a 4 10 0 2,878 0 0 0 0 0 2,878
cu 14 11 0,186 16,651 0,046 44,852 1,113 0,719 0,186 24,675
pm1 16 13 1,974 2,033 0,589 5,777 0,488 2,069 1,043 3,615
ldd 9 19 0,478 1,665 0,489 3,346 0,626 1,561 0,837 1,448
полиномов и 58-кода, представляющий собой отношение количества необнаруженных ошибок к общему количеству возможных в конкретной схеме:
NP ,S
YP/ -100%. (6)
Ncircut
В этом случае наилучшие показатели по всем диагностируемым схемам представляют полиномы Р11 и Р13, при этом достигается обнаружение порядка 98-99 % возможных ошибок, а в некоторых контрольных схемах при применении полиномов Р9, Р11, Р13 и Р15 достигается 100 %-е обнаружение ошибок любой кратности.
При применении помехозащитного кода немаловажное значение имеет площадь образуемой структуры. Была дана оценка сложности технической реализации ряда контрольных комбинационных схем из набора MCNC Benchmarks. Для этого был использован специальный программный модуль, интегрированный в комплекс оценки характеристик разделимых кодов в системах функционального контроля DMCoding, позволяющий получить файлы-описания каждого блока системы функционального контроля, организованной по полиномиальным кодам для конкретной контрольной схемы. Каждый такой файл генерируется в формате *.pla, фактически задающем таблицу истинности конкретного логического устройства. После получения всех файлов-описаний блоков системы функционального контроля с использованием библиотеки функциональных элементов stdcell2_2.genlib и известного интерпретатора SIS [25] были рассчитаны абсолютные показатели сложности их технической реализации. Таким показателем в SIS является площадь, занимаемая устройством на кристалле (в условных единицах библиотеки). Для примера в табл. 7 показаны рассчитанные данные для ряда диагностируемых схем с использованием полиномов 3-го класса в сравнении с кодом суммирования и дублированной структурой. Для удобства анализа были введены коэффициенты значения площади системы функционального контроля по полиномиальному коду в отношении структур, построенных на основе вышеперечисленных кодов:
pN = Lpn ( nm)-100%; (7)
LSM ( n,m)
8N = Lpn(nm) -100%, (8)
L
D
где Lpn(n m) - значение площади системы функционального контроля по Р^п,т)-коду; LSM(n m) - значение площади системы функционального контроля по SM(m,k)-коду; LD - значение площади системы дублирования.
*
ч
о &
g §
о -
о w
J
§
w
0
s »
1
<a f-o
5 о
s
h о о w
т
о H
3 ю
en
s «
о
д
£
£ о
s
X s
h о
s
6
и
12
cd &
X
я в а
п ю л
н
tO 100,0 % 98,3 % 80,5 % 83,9 % 80,6 % 94,7 % чО % ,7 2, 7 96,1 % 96,9 % 64,9 % 83,9 % 79,2 % 82,9 % 91,9 % 73,9 % 94,0 % 83,8 % 91,4 % 71,4 % 81,9 % 115,1 % 89,9 % 64,5 % 117,5 % 58,5 % 85,9 %
о to 74,7 % 58,3 % 70,1 % 71,6 % 75,0 % 81,1 % 56,1 % 78,3 % 72,0 % 56,1 % 72,2 % 70,6 % 72,4 % 70,8 % чО % ,7 2, 6 72,3 % 72,5 % 78,1 % 62,5 % 69,2 % 85,8 % 73,9 % 58,4 % чО % ,4 7, 7 55,5 % 69,9 %
OS to 76,8 % 48,8 % 75,5 % 77,8 % 74,1 % 73,9 % 53,4 % 76,7 % 79,1 % 58,7 % 64,3 % 80,2 % 60,6 % 79,2 % 68,7 % 78,8 % чО % ,3 7, 7 82,4 % 64,6 % чО % 3, 7 87,5 % 81,4 % 59,8 % 74,3 % 57,5 % 71,3 %
'Ü 83,0 % 101,0 % 113,1 % 109,6 % 74,4 % 71,4 % 80,0 % 74,3 % 42,6 % 67,5 % 29,6 % 87,1 % 35,4 % 30,4 % 55,1 % 27,8 % 63,4 % 54,9 % 62,2 % 42,8 % 41,8 % 43,1 % 62,8 % 29,2 % 121,8 % 64,1 %
о 'ü 62,0 % 59,9 % 98,4 % 93,5 % 69,2 % 61,1 % 61,8 % 60,5 % 31,7 % 58,4 % 25,5 % 77,7 % 30,9 % 23,4 % 46,7 % 21,4 % 54,9 % 46,9 % 54,4 % 36,2 % 31,2 % 35,5 % 56,8 % 19,2 % 115,6 % 53,3 %
A 63,8 % 50,1 % 106,1 % 101,7 % 68,4 % 55,7 % 58,7 % 59,3 % 34,8 % 61,1 % 22,7 % 88,2 % 25,9 % 26,2 % 51,2 % 23,3 % 58,5 % 49,5 % 56,3 % 38,2 % 31,8 % 39,1 % 58,3 % 18,5 % 119,7 % 54,6 %
Система на основе P11 (m, £)-кода 1520 3320 16 864 31 480 2088 2000 2744 1984 1968 5328 2296 70 048 3888 3176 15 720 5096 6688 5808 5128 4576 5064 6040 9696 7688 49 736
« <u Система на основе P10 (m, £)-кода 1136 1968 14 672 26 864 1944 1712 2120 1616 1464 4608 1976 62 504 3392 2448 13 328 3920 5792 4960 4488 3864 3776 4968 8776 5064 47 208
a ^ IS « cd Система на основе P9 (m, £)-кода 1168 1648 15 816 29 208 1920 1560 2016 1584 1608 4816 1760 70 960 2840 2736 14 616 4272 6168 5232 4640 4080 3852 5472 9000 4864 48 904
о 4 с <u 5 Я <u £ Я го Система на основе S8 (m, £)-кода 1832 3288 14 912 28 720 2808 2800 3432 2672 4624 7888 7752 80 432 10 976 10 448 28 528 18 336 10 544 10 576 8248 10 680 12 104 14 000 15 448 26 320 40 848 Средние значения
Система дублирования 1520 3376 20 944 37 520 2592 2112 3776 2064 2032 8208 2736 88 480 4688 3456 21 264 5424 7984 6352 7184 5584 4400 6720 15 040 6544 85 040
Блок F(x) 0 4 4 0 4 6 9632 17 816 6 7 9 6 3 7 6 3 7 2 71 2 9 5 2952 8 2 5 43 296 1192 1096 9168 1768 3048 2648 3064 2368 1360 2520 6784 1808 40 952
Число выходов 5 5 6 6 7 7 7 7 8 8 9 0 0 0 11 11 2 2 2 4 4 6 6 7 7
Число входов 4 11 9 0 4 4 2 4 5 2 9 0 2 7 5 0 0 6 6 5 9 9 8 5 6
Контрольная схема newcwp clpl max512 max1024 dc1 dekoder newapla! wim e ty ^ w e n 2 r ^ 7 2 dk2 ex1010 newapla newcpla2 0 л 7 dk1 apla 6 & m1 2 8 p sex newcpla1 tms 8 4 dk4 in1
Ц/Ц 1 2 3 4 5 6 7 8 9 0 - 2 3 4 5 6 7 8 9 0 2 21 2 2 3 2 4 2 5 2
г-
ё се Н 4>
К I
се ЕГ
I
§
О
1Л> ю 96,8 % 75,4 % 74,6 % 95,6 % 85,8 % 95,5 % 66,3 % 90,7 % 81,1 % 60,4 % 86,3 % 82,1 % 80,0 % 79,4 % 74,5 % 87,2 % 87,3 % 89,0 % 68,3 % 76,6 % 118,5 % 89,0 % 61,3 % 101,7 % 57,4 % 82,4 %
оО 101,1 % 91,2 % 70,0 % 77,1 % 78,1 % 90,2 % 63,6 % 89,1 % 87,8 % 59,2 % 79,2 % 71,4 % 68,4 % 81,0 % 69,2 % 75,1 % 73,8 % 79,0 % 65,6 % 73,2 % 96,0 % 86,5 % 60,7 % 96,7 % 55,0 % 77,5 %
т Ю 106,3 % 106,2 % 74,8 % 83,6 % 86,4 % 95,5 % 73,1 % 93,0 % 98,4 % 63,0 % 93,9 % 81,8 % 87,0 % 91,9 % 78,9 % 92,9 % 85,0 % 90,9 % 70,9 % 83,1 % 119,3 % 98,8 % 65,7 % 128,0 % 58,8 % 88,2 %
<4 оО 80,5 % 86,5 % 61,2 % 62,2 % 69,4 % 78,0 % 54,4 % 76,4 % 68,9 % 51,4 % 67,3 % 60,2 % 53,2 % 67,6 % 56,8 % 61,7 % 63,2 % 68,6 % 59,0 % 66,8 % % 9, 7 70,4 % 55,1 % 96,9 % 53,3 % 66,7 %
1Л> 80,3 % % ,4 7, 7 104,7 % 124,8 % 79,2 % 72,0 % 73,0 % 70,1 % 35,6 % 62,9 % 30,4 % 90,3 % 34,2 % 26,3 % 55,5 % 25,8 % 66,1 % 53,5 % 59,5 % 40,1 % 43,1 % 42,7 % 59,7 % 25,3 % 119,5 % ЧО % 2 6
83,8 % 93,7 % 98,3 % 100,7 % 72,1 % 68,0 % 69,9 % 68,9 % 38,6 % 61,6 % 28,0 % 78,5 % 29,2 % 26,8 % 51,6 % 22,2 % 55,9 % 47,4 % 57,1 % 38,3 % 34,9 % 41,5 % 59,1 % 24,0 % 114,6 % 58,6 %
т 88,2 % 109,0 % 105,1 % 109,2 % 79,8 % 72,0 % 80,4 % 71,9 % 43,3 % 65,5 % 33,1 % 90,0 % 37,2 % 30,4 % 58,8 % 27,5 % 64,3 % 54,6 % 61,8 % 43,4 % 43,4 % 47,4 % 64,0 % 31,8 % 122,3 % 65,3 %
<4 66,8 % 88,8 % 86,0 % 81,3 % 64,1 % 58,9 % 59,9 % 59,0 % 30,3 % 53,4 % 23,7 % 66,2 % 22,7 % 22,4 % 42,4 % 18,2 % 47,9 % 41,2 % 51,4 % 34,9 % 28,8 % 33,8 % 53,7 % 24,1 % 110,9 % 50,8 %
Значение площади, усл. ед. Система на основе Р15 (т, к)-кода 1832 2544 15 616 35 856 2224 2016 2504 1872 1648 4960 2360 72 640 3752 2744 15 832 4728 6968 5656 4904 4280 5216 5984 9216 6656 48 832 Средние значения
Система на основе Р14 (т, к)-кода 1536 3080 14 656 28 920 2024 1904 2400 1840 1784 4856 2168 63 136 3208 2800 14 712 4072 5896 5016 4712 4088 4224 5816 9136 6328 46 800
Система на основе Р13 (т, к)-кода 1616 3584 15 672 31 376 2240 2016 2760 1920 2000 5168 2568 72 352 4080 3176 16 768 5040 6784 5776 5096 4640 5248 6640 9888 8376 49 968
Система на основе Р12 (т, к)-кода 1224 2920 12 824 23 344 1800 1648 2056 1576 1400 4216 1840 53 232 2496 2356 12 088 3344 5048 4360 4240 3728 3480 8 2 7 4 8288 6344 45 288
Число выходов 5 5 6 6 7 7 7 7 8 8 9 0 0 0 11 11 2 2 2 4 4 6 6 7 7
Число входов 4 11 9 0 4 4 2 4 5 2 9 0 2 7 5 0 0 6 6 5 9 9 8 5 6
Контрольная схема newcwp с1р1 тах512 тах1024 ёс1 ёекоёег newap1a1 wim <и * £ <и й Я 7 2 % ех1010 newap1a newcp1a2 0 ёк!7 ap1a 6 & т1 2 8 & sex newcp1a1 tms 8 4 ^й
Ц/Ц чм 1 2 3 4 5 6 7 8 9 0 - 2 3 4 5 6 7 8 9 0 2 21 2 2 3 2 4 2 5 2
Следует отметить, что полученные показатели подтверждают преимущество использования полиномиальных кодов по сравнению с использованием кодов с суммированием и метода дублирования в подавляющем большинстве контрольных комбинационных схем. Средние значения коэффициентов 8М для всех полиномиальных кодов не превышают 80 %, а коэффициентов - 60 %. При некоторых комбинационных схемах значение структурной избыточности достигает лишь 50 % от значения избыточности при методе дублирования, что сопоставимо с показателями при применении известного кода с защитой по паритету.
Заключение
Применение полиномиальных кодов при синтезе комбинационных схем самоконтроля является эффективным методом повышения надежности и снижения себестоимости систем функционального диагностирования. В статье приводятся особенности применения полиномиальных кодов в задачах технической диагностики. Приведены основные свойства полиномиальных кодов по обнаружению ошибок, которыми не обладает большинство типов помехозащитных кодов. Простая реализация процесса кодирования при помощи полиномиальных кодов еще раз подтверждает их преимущество.
Как показали результаты экспериментов, методы полиномиального кодирования обладают лучшими обнаруживающими характеристиками по сравнению с существующими методами кодирования в системах функционального контроля. Показатели структурной избыточности при применении полиномиального кодирования также свидетельствуют об эффективности его использования при решении поставленной задачи. Вследствие этого полиномиальные коды могут эффективно использоваться не только для задач обнаружения ошибок в передаче и обработки данных, но и при решении задач технической диагностики как тестового, так и функционального диагностирования устройств железнодорожной автоматики и телемеханики.
Учитывая изложенное, использование класса полиномиальных кодов целесообразно при решении задач построения самопроверяемых дискретных устройств железнодорожной автоматики и телемеханики.
Библиографический список
1. Микропроцессорная централизация стрелок и сигналов БВ1Ьоск 950 / Г. А. Ка-зимов, В. Н. Алешин, А. Е. Деревянко, С. В. Золотарева, Г. Ф. Лекута, С. Б. Пла-тунов, А. В. Сураев, С. А. Хохлов, К. Д. Хромушкин ; под. ред. Г. Д. Казиева. -М. : Трансиздат, 2008. - 368 с.
2. Ефанов Д. В. Функциональный контроль и мониторинг устройств железнодорожной автоматики и телемеханики : монография / Д. В. Ефанов. - СПб. : ФГБОУ ВО ПГУПС, 2016. - 171 с.
3. Сапожников Вал. В. Методы построения безопасных микроэлектронных систем железнодорожной автоматики / Вал. В. Сапожников, Вл. В. Сапожников, Х. А. Христов, Д. В. Гавзов ; под ред. Вл. В. Сапожникова. - М. : Транспорт, 1995. - 272 с.
4. Пархоменко П. П. Основы технической диагностики (оптимизация алгоритмов диагностирования, аппаратурные средства) / П. П. Пархоменко, Е. С. Согомо-нян. - М. : Энергоатомиздат, 1981. - 320 с.
5. Рабочее диагностирование безопасных информационно-управляющих систем / А. В. Дрозд, В. С. Харченко, С. Г. Антощук, Ю. В. Дрозд, М. А. Дрозд, Ю. Ю. Сулима ; под ред. А. В. Дрозда и В. С. Харченко. - Харьков : Национальный аэрокосмический университет им. Н. Е. Жуковского (ХАИ), 2012. - 614 с.
6. Согомонян Е. С. Самопроверяемые устройства и отказоустойчивые системы / Е. С. Согомонян, Е. В. Слабаков. - М. : Радио и связь, 1989. - 207 с.
7. Berger J. M. A Note on Error Detection Codes for Asymmetric Channels / J. M. Berger // Information and Control. - 1961. - Vol. 4. - Issue 1. - Pp. 68-73.
8. Ефанов Д. В. О свойствах кода с суммированием в схемах функционального контроля / Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2010. - № 6. - С. 155-162.
9. Блюдов А. А. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов / А. А. Блюдов, Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Электронное моделирование. - 2012. - Т. 34. - № 6. - С. 17-29.
10. Ефанов Д. В. Применение модульных кодов с суммированием для построения систем функционального контроля комбинационных логических схем / Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2015. - № 10. - С. 152-169.
11. Сапожников Вал. В. Применение кодов с суммированием при синтезе систем железнодорожной автоматики и телемеханики на программируемых логических интегральных схемах / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Автоматика на транспорте. - 2015. - Т. 1. - № 1. - С. 84-107.
12. Castagnoli G. Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bits / G. Castagnoli, S. Brauer, M. Herrmann // IEEE Transactions on Communications. - 1993. - Vol. 41. - Issue 6. - Pp. 883-892.
13. Koopman P. Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks / P. Koopman, T. Chakravarty // The International Conference on Dependable Systems and Networks, DSN-2004, 28 June - 1 July 2004, Florence, Italy. -Pp.145-154.
14. Сагалович Ю. Л. Введение в алгебраические коды / Ю. Л. Сагалович. - М. : Институт проблем передачи информации им. А. А. Харкевича РАН, 2010. - 302 с.
15. Sellers F. F. Error Detecting Logic for Digital Computers / F. F. Sellers, M.-Y. Hsiao, L. W. Bearnson. - N. Y. : McGraw-Hill, 1968. - 288 р.
16. Столярова М. И. Анализ ошибкообнаруживающих свойств циклических кодов / М. И. Столярова, Г. В. Бобрышева, Г. О. Звозникова // Сборник статей XVII Международной научно-технической конференции по проблемам информатики в образовании, управлении, экономике и технике, 26-27 октября 2017 г., г. Пенза, Россия. - Пенза : Приволжский Дом знаний, 2017. - C. 105-108.
17. Аксёнова Г. П. Необходимые и достаточные условия построения полностью проверяемых схем свертки по модулю 2 / Г. П. Аксёнова // Автоматика и телемеханика. - 1979. - № 9. - С. 126-135.
18. Сапожников Вал. В. Особенности организации систем функционального контроля комбинационных схем на основе полиномиальных кодов / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, Р. Б. Абдуллаев // Известия Петербургского университета путей сообщения. - 2018. - Т. 15. - № 3. - С. 432-445.
19. Goessel M. Error Detection Circuits / M. Goessel, S. Graf. - L. : McGraw-Hill, 1994. -261 p.
20. Сапожников Вал. В. О свойствах полиномиальных кодов в системах функционального контроля / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, Р. Б. Абдуллаев // Информатика и системы управления. - 2018. - № 2. - С. 50-61.
21. Efanov D. Experimental Studies of Polynomial Codes in Concurrent Error Detection Systems of Combinational Logical Circuits / D. Efanov, Val. Sapozhnikov, Vl. Sapozhnikov, R. Abdullaev, D. Plotnikov // Proceedings of 16th IEEE East-West Design & Test Symposium (EWDTS'2018), Kazan, Russia, September 14-17, 2018. - Pp. 184-190.
22. Collection of Digital Design Benchmarks. - URL : http://ddd.fit.cvut.cz/prj/Bench-marks.
23. Saposhnikov Vl. V. Experimental Results for Self-Dual Multi-Output Combinational Circuits / Vl. V. Saposhnikov, V. Moshanin, Val. V. Saposhnikov, M. Goessel // Journal of Electronic Testing : Theory and Applications. - 1999. - Vol. 14. - Issue 3. - Pp. 295300.
24. Sapozhnikov Val. Method of Combinational Circuits Testing by Dividing its Outputs into Groups and Using Codes, that Effectively Detect Double Errors / Val. Sapozhnikov, D. Efanov, Vl. Sapozhnikov, V. Dmitriev // Proceedings of 15th IEEE East-West Design & Test Symposium (EWDTS'2017), Novi Sad, Serbia, September 29 -October 2, 2017. - Pp. 129-136.
25. SIS : A System for Sequential Circuit Synthesis / E. M. Sentovich, K. J. Singh, L. Lavagno, C. Moon, R. Murgai, A. Saldanha, H. Savoj, P. R. Stephan, R. K. Bray-ton, A. Sangiovanni-Vincentelli // Electronics Research Laboratory, Department of Electrical Engineering and Computer Science, University of California, Berkeley, 4 May 1992. - 45 p.
Ruslan B. Abdullaev, «Automation and Remote Control on Railways» Department Emperor Alexander I St. Petersburg State Transport University
The Properties of Polynomial Codes in Concurrent Error Detection Systems
of Combinational Logical Circuits
The paper considers the existing methods for constructing systems of test and functional control of logic circuits, as well as their inherent disadvantages. The principles of the polynomial codes construction and features of their application in the tasks of functional diagnosis of logical combinational circuits of railway automation are given. The existing and new properties of polynomial codes, which are necessary for the synthesis of combinational self-control schemes, are listed, in particular, these are the property of detection of single and double errors, the property of detecting errors of odd multiplicity, the property of possessing polynomials of the lower class of detecting characteristics of some polynomials of the senior class. A condition for complete detection of any type of double errors by polynomial codes is given. The article provides a comparative analysis of the different multiplicity errors, detected by polynomial codes of the 2, 3 and 4 classes in comparison with the errors detected by the corresponding sum codes. The polynomial codes have shown good results in the course of experiments on error detection in combinational circuits of the set of LGSynth"89. In some control schemes, full detection of any multiplicity errors is achieved using polynomial codes. The structural redundancy of concurrent error detection systems was also calculated. In the situation of the polynomial codes applying, the redundancy of the system did not exceed 70-80 % of the redundancy value in the situation of the sum codes applying, and did not exceed 50-60 % of the redundancy in the situation of duplication method applying.
combinational circuit; functional diagnosis; uniform codes; polynomial code, that forms the polynomial; polynomial code properties
References
1. Kazimov G.A., Aleshin V. N., Derevyanko A. E., Zolotareva S. V., Lekuta G. F., Pla-tunov S. B., Suraev A. V., Hohlov S. A., Hromushkin K. D. (2008). Microprocessor centralization of switchs and signals EBILock 950 [Mikroprotsessornaya tsentral-izatsiya strelok i signalov EBILock 950]. Edited by G. D. Kazieva [Pod. red. G. D. Ka-zievoy]. Moscow, Transizdat. - 368 p.
2. Efanov D. V. (2016). Functional control and monitoring of devices of railway automation and remote control [Funktsionalnyiy kontrol i monitoring ustroystv zheleznodorozhnoy avtomatiki i telemehaniki], monograph. St. Petersburg, PSTU. -171 p.
3. Sapozhnikov Val. V., Sapozhnikov Vl. V., Khristov Kh.A., Gavzov D. V. (1995). Methods of building of reliable microelectronic systems for railway automation [Metody postroyeniya bezopasnykh mikroelektronnykh sistem zheleznodorozhnoy avtomatiki]. Moscow, Transport. - 272 p.
4. Parhomenko P. P., Sogomonyan E. S. (1981). Technical diagnostics fundamentals (Diagnostic algorithm optimization, apparatus means) [Osnovy tekhnicheskoj diagnostiki (optimizaciya algoritmov diagnostirovaniya, apparaturnye sredstva)]. Moscow, Ener-goatomizdat. - 320 p.
5. Drozd A. V., Harchenko V. S., Antoschuk S. G., Drozd Yu. V., Drozd M. A., Suli-ma Ya. Ya. (2012). Objects and methods of on-line testing for safe instrumentation and control systems [Rabochee diagnostirovanie bezopasnyh informacionno-uprav-lyayushchih system]. Edited by A. V. Drozd, and V. S. Kharchenko [Pod red. A. V. Dro-zda i V. S. Harchenko]. Kharkov, National Aerospace University (KhAI). - 614 p.
6. Sogomonyan E. S., Slabakov E. V. (1989). Self-Checking and Fail-Safety Systems [Samoproveryaemyie ustroystva i otkazoustoychivyie sistemy]. Moscow, Radio and communication [Radio i svjaz']. - 207 p.
7. Berger J. M. (1961). A Note on Error Detection Codes for Asymmetric Channels. Information and Control, vol. 4, issue 1. - Pp. 68-73.
8. Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2010). On Summation Code Properties in Functional Control Circuits [O svojstvah koda s summirovaniem v skhemah funkcional'nogo kontrolya]. Automation and Remote Control [Avtomatika i Telemekhanika], issue 6. - Pp. 155-162.
9. Blyudov A.A., Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2012). Formation of the Berger modified code with minimum number of undetectable errors of data bits. [Postroenie modificirovannogo koda Bergera s minimal'nym chislom neobnaruzhivaemyh oshibok informacionnyh razryadov]. Electronic Modeling [Ele-ktronnoe modelirovanie], vol. 34, no. 6. - Pp. 17-29.
10. Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2015). Application of modular summation codes to concurrent error detection systems for combinational Boolean circuits [Primenenie modul'nyh kodov s summirovaniem dlya postroeniya sistem funkcional'nogo kontrolya kombinacionnyh logicheskih skhem]. Automation and remote control [Avtomatika i telemehanika], vol. 10. - Pp. 152-169.
11. Sapozhnikov Val. V., Sapozhnikov Vl. V., Efanov D. V. (2015). Application of Sum Codes for Synthesis of Railway Automation and Remote Control at Programmable Logic Integrated Circuits [Primenenie kodov s summirovaniem pri sinteze sistem zheleznodorozhnoj avtomatiki i telemekhaniki na programmiruemyh log-icheskih integral'nyh skhemah]. Automation of Transport [Avtomatika na transporte], vol. 1, issue 1. - Pp. 84-107.
12. Castagnoli G., Brauer S., Herrmann M. (1993). Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bits. IEEE Transactions on Communications, vol. 41, issue 6. - Pp. 883-892.
13. Koopman P., Chakravarty T. (2004). Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks. The International Conference on Dependable Systems and Networks, DSN-2004, 28 June - 1 July 2004, Florence, Italy. - Pp. 145-154.
14. Sagalovich Yu. L. (2010). Introduction to Algebraic Codes [Vvedenie v algebraicheskie kodyi]. Moscow, Institute for Information Transmission Problems of A.A. Kharkevich [Institut problem peredachi informacii im. A. A. Harkevicha]. - 302 p.
15. Sellers F. F., Hsiao M.-Y., Bearnson L. W. (1968). Error Detecting Logic for Digital Computers. New York, McGraw-Hill. - 288 p.
16. Stolyarova M. I., Bobrysheva G. V., Zvoznikova G. O. (2017). Analysis of the error-detecting properties of cyclic codes [Analiz oshibkoobnaruzhivayushchih svojstv cik-licheskih kodov]. XVII International scientific and technical conference of problems of informatics in education, management, economics and technics [XVII Mezhduna-rodnaya nauchno-tekhnicheskaya konferenciya po problemam informatiki v obrazova-nii, upravlenii, ehkonomike i tekhnike], October, 26-27, 2017, Penza, Russia. Collection of articles of the XVII International Scientific and Technical Conference. Penza, Privolzhsky House of Knowledge [Privolzhskij Dom znanij]. - Pp. 105-108.
17. Aksyonova G. P. (1979). Necessary and sufficient conditions for constructing completely convenient convolution schemes modulo 2 [Neobhodimye i dostatochnye usloviya postroeniya polnost'yu proveryaemyh skhem svertki po modulyu 2]. Automation and remote control [Avtomatika i telemehanika], vol. 9. - Pp. 126-135.
18. Sapozhnikov Val. V., Sapozhnikov Vl. V., Efanov D. V., Abdullaev R. B. (2018). Features of the organization of systems of functional control of combinational circuits based on polynomial codes [Osobennosti organizacii sistem funkcional'nogo kontrolya kombinacionnyh skhem na osnove polinomial'nyh kodov]. Proceedings of Petersburg Transport University [Izvestiya Peterburgskogo universiteta putey soobscheniya], issue 15, vol. 3. - Pp. 432-445.
19. Goessel M., Graf S. (1994). Error Detection Circuits. London, McGraw-Hill. -261 p.
20. Sapozhnikov Val. V., Sapozhnikov Vl. V., Efanov D. V., Abdullaev R. B. (2018). On the properties of polynomial codes in functional control systems [O svojstvah polinomial'nyh kodov v sistemah funkcional'nogo kontrolya]. Informatics and management systems [Informatika i sistemyi upravleniya], vol. 2. - Pp. 50-61.
21. Efanov D., Sapozhnikov Val., Sapozhnikov Vl., Abdullaev R. (2018). Experimental Studies of Polynomial Codes in Concurrent Error Detection Systems of Combinational Logical Circuits. Proceedings of 16th IEEE East-West Design & Test Symposium (EWDTS'2018), Kazan, Russia, September 14-17, 2018. - Pp. 184-190.
22. Collection of Digital Design Benchmarks. URL: http://ddd.fit.cvut.cz/prj/Bench-marks.
23. Saposhnikov Vl. V., Moshanin V., Saposhnikov Val. V., Goessel M. (1999). Experimental Results for Self-Dual Multi-Output Combinational Circuits. Journal of Electronic Testing: Theory and Applications, vol. 14, issue 3. - Pp. 295-300.
24. Sapozhnikov Val., Efanov D., Sapozhnikov Vl., Dmitriev V. (2017). Method of Combinational Circuits Testing by Dividing its Outputs into Groups and Using Codes, that Effectively Detect Double Errors. Proceedings of 15th IEEE East-West Design & Test Symposium (EWDTS^2017), Novi Sad, Serbia, September 29 - October 2, 2017. - Pp. 129-136.
25. SIS: A System for Sequential Circuit Synthesis / Sentovich E. M., Singh K. J., Lav-agno L., Moon C., Murgai R., Saldanha A., Savoj H., Stephan P. R., Brayton R. K.,
Sangiovanni-Vincentelli A. (1992). Electronics Research Laboratory, Department of Electrical Engineering and Computer Science, University of California, Berkeley, 4 May 1992. - 45 p.
Статья представлена к публикации членом редколлегии Вл. В. Сапожниковым Поступила в редакцию 03.04.2018, принята к публикации 23.05.2018
АБДУЛЛАЕВ Руслан Борисович - аспирант кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I. e-mail: [email protected]
© Абдуллаев Р. Б., 2018