Автоматизация поиска ошибок проектирования в HDL-моделях конечных автоматов

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Список литературы: 1. Antsaklis P.J. An Introduction to Intelligent and Autonomous Control / P.J. Antsaklis, K.M. Passino. Norwell, Massachusetts, USA: Kluwer Academic Publishers. 1992. 448 p. 2. BhagatP. Pattern Recognition in Industry / P. Bhagat. Amsterdam, Netherlands: Elsevier Science. 2005. 200 p. 3. Москаленко
В.В. Інтелектуальна автоматизована система керування з оптимізацією часових параметрів аналізу вхідних даних / В. В. Москаленко, A.C. Довбиш, A.C. Рижова // Вісник Сумського державного університету. Суми, Україна: СумДУ. 2013. № 3. P. 7−14. 4. Lecoeuche S. Modelling of non-stationary systems based on a dynamical decision space / S. Lecoeuche, G. Mercere, H. Amadou-Boubacar // l4th IFAC Symposium on System Identification. Newcastle, Australia: Elsevier Science. 2006. P. 1222 — 1227. 5. Довбиш AM. Основи проектування інтелектуальних систем: підручник / A.C. Довбиш. Суми, Україна: СумДУ. 2009. 171 p.
Поступила в редколлегию 26. 09. 2014 Москаленко Вячеслав Васильевич, канд. техн. наук, ассистент кафедры компьютерных наук Сумского государственного университета. Научные интересы: интеллектуальные системы управления слабоформализованными процессами. Адрес: Україна, 40 035, Сумы, ул. Н. -Сыроватская, 66, кв. 84, м.т. +380 664 291 318, e-mail: systemscoders@gmail. com.
Рыжова Алёна Сергеевна, аспирантка Сумского государственного университета. Научные интересы: машинное обучение и распознавание образов. Адрес: Україна, 42 303, Сумской район, с. Стецковка, ул. Школьная, 17, м.т. +38(095) 738−44−74, email: alenarizhova@gmail. com.
УДК 681. 518. 5
А.С ШКИЛЬ, Г. П. ФАСТОВЕЦ, А.С. СЕРОКУРОВА
АВТОМАТИЗАЦИЯ ПОИСКА ОШИБОК ПРОЕКТИРОВАНИЯ В HDL-МОДЕЛЯХ КОНЕЧНЫХ АВТОМАТОВ
Предлагается автоматизация диагностирования HDL-моделей конечных автоматов с использованием программы ASFTEST. Рассматривается вариант восстановления графа переходов по HDL-модели автомата в форме автоматного шаблона и анализ обхода всех дуг графа для поиска ошибок проектирования.
1. Введение
При проектировании операционных или управляющих устройств с использованием конечных автоматов алгоритм их функционирования, как правило, задается или в виде граф-схемы алгоритма (flow chart), или путем описания функции выходов в словесном или табличном виде. При автоматизированном проектировании подобных устройств их описание на языке аппаратуры (HDL) создается в форме автоматного шаблона, т. е. специальной структуры HDL-кода, которая строится на основе графа переходов автомата (state diagram). Переход от других способов описания закона функционирования конечного автомата к его графу переходов является искусством проектировщика и подробно описан в [1].
Одним из важных этапов автоматизированного проектирования цифровых устройств является верификация HDL-модели, т. е. определение соответствия полученного HDL-кода заданной спецификации. Один из традиционных подходов к верификации и диагностированию HDL-моделей состоит в следующем. С учетом выбранного стиля описания составляется список ошибок проектирования и для них строятся тесты. HDL-модель компилируется, и в ней устраняются синтаксические ошибки. Полученная HDL-модель моделируется в среде верификации на построенных тестах, и результат сравнивается с эталоном, который получен на основе спецификации. Если результат не совпал с эталоном, то выполняется диагностический эксперимент (ДЭ) по поиску места нахождения ошибки проектирования с последующим исправлением HDL-кода, и повторяется процедура верификации [2].
Возможные ошибки проектирования в HDL-моделях определяются стилем описания HDL-кода. Под ошибкой проектирования понимается ошибка в HDL-операторе, которая не относится к классу синтаксических и нарушает алгоритм функционирования модели устройства, заданный спецификацией.
Типы ошибок проектирования:
43
• «замена оператора» (логического или арифметического),
• «замена операнда» (в операторе назначения или условном).
Выделение фрагментов HDL-кода, описывающих поведение конечных автоматов стилем «автоматный шаблон», позволяет определить ошибки проектирования типа «неправильный переход в графе переходов автомата», что соответствует ошибке:
— в выборе текущего состояния в операторе when,
— в выборе следующего состояния в функции переходов (ai вместо aj),
— в операторе if () при анализе входного сигнала-
— в назначении выходного сигнала.
В [3] предложен «ручной» подход к поиску ошибок проектирования в автоматных HDL-моделях цифровых устройств. Но данный подход, во-первых, предусматривает наличие спецификации в виде графа переходов, а во-вторых, применим только для достаточно несложных HDL -моделей в форме автоматного шаблона. Таким образом, необходимо разработать автоматизированный метод поиска ошибок проектирования в HDL-моделях цифровых автоматов при задании спецификации в произвольном виде.
2. Подготовка к проведению диагностического эксперимента
Предлагается следующий подход к диагностированию HDL-моделей (локализации места возникновения ошибок проектирования в них). Имеется спецификация в словесной форме или в виде таблицы выходов. На ее основе построен HDL-код в форме автоматного шаблона. По HDL-коду с помощью специальных инструментальных средств (например, Code2Graphics в составе Active-HDL) восстанавливается граф переходов, соответствующий HDL-коду (с возможными ошибками). С помощью инструмента автоматического построения тестов (например, ASFTEST в составе Active-HDL) подготавливается диагностический эксперимент над HDL-моделью автомата (проверка достижимости вершин с использованием линий сброса, обход всех дуг, обход всех вершин) путем построения теста в форме TestBench и маршрутов обхода путей. ДЭ проводится с использованием инструментальных средств системы моделирования HDL-кода Active-HDL. По результатам прохождения теста и сравнения с эталоном спецификации (функцией выходов) строится вектор экспериментальной проверки (ВЭП), и путем анализа таблицы путей находится ошибочная дуга (дуги) в графе. При этом ошибка в HDL-коде, вероятнее всего, находится во фрагменте кода автоматного шаблона, связанного с вершиной (состоянием), откуда исходит ошибочная дуга.
В качестве элементарной проверки Pi при проведении ДЭ используется реализация определенного маршрута обхода графа, при этом номер маршрута (строка матрицы путей)
соответствует номеру элементарной проверки. Результат элементарной проверки Vj считается отрицательным, если терминальная (конечная) вершина на этом маршруте достигнута, в противном случае результат элементарной проверки считается положительным:
v i =
0 ^ если на этом маршруте обхода выход совпадает с эталоном (тест прошел) —
1 ^ если на этом маршруте обхода выход не совпадает с эталоном (тест не прошел).
ВЭП для диагностического эксперимента определяется V = (vi, v2,. vm), где m -число элементарных проверок Pi.
Если предположить наличие в схеме одиночной ошибки проектирования, то по результатам ДЭ область подозреваемых дефектов формируется на основе пересечения строк таблицы путей, отмеченных единичными значениями в ВЭП, по формуле:
D = п | v j=1 M j -u I vj=0M j, (1)
где Mj — j-я строка таблицы путей.
Если результат вычислений по формуле (1) оказался пустой, то предполагается, что в схеме присутствует кратная ошибка проектирования, и область подозреваемых ошибок определяется объединением строк, соответствующих единичным значениям координат ВЭП по формуле [4]:
D = u |v -і M ¦ -u |v. -о M ¦ '-vj-1 j '-vj-0 j •
(2)
44
Для проведения ДЭ по поиску ошибок проектирования используется VHDL-модель автомата Мили, который выполняет распознавание набора 1100 во входной битовой последовательности. На рис. 1 представлен фрагмент архитектуры двухпроцессного автоматного шаблона HDL-модели без ошибок проектирования (хотя в реальности такой эталонной модели при проведении ДЭ не существует).
begin
p1: process (state, data) begin
case state is
when a0 =& gt-
if data='0'- then nextstate& lt-= a0- y& lt-='0'--
else nextstate& lt-= a1-y& lt-='0'--
end if- when a1 =& gt-
ifdata='1'- then nextstate& lt-= a2- y& lt-='0'--
else nextstate& lt-= a0- y& lt-='0'--
end if- when a2 =& gt-
if data='0'- then nextstate& lt-= a3- y& lt-='0'--
else nextstate& lt-= a2- y& lt-='0'--
end if- when a3 =& gt-
if data='0'- then nextstate& lt-= a0- y& lt-='1'--
else nextstate& lt-= a1- y& lt-='0'--
end if-
end case- end process- p2: process (clk, reset) begin
if reset='1'- then state & lt-= a0-
elsif clk’event and clk = '1' then state & lt-= nextstate-
end if-
end process-
Рис. 1. Фрагмент эталонной VHDL-модели автомата
Используя программный инструмент Code2Graphics в составе Active-HDL [5], восстанавливаем граф переходов данного автомата (рис. 2).
Рис. 2. Восстановленный граф переходов в диаграмме состояний Active-HDL
45
Для данного графа с помощью инструмента автоматического построения тестов ASFTEST в составе Active-HDL автоматически генерируются тестовые наборы в форме TestBench. Входной информацией является содержательный граф автомата, представленный в формате ASF. В результате работы ASFTEST формируются минимизированные тестовые последовательности в виде файла на языке VHDL (Verilog) для проверки правильности (в англоязычной литературе используется термин — validation) и верификации проекта с помощью программ моделирования на языках VHDL и Verilog. Возможна генерация теста по 3 различным стратегиям, в зависимости от целей моделирования и необходимой полноты теста. ASFTEST также выполняет анализ модели на корректность, генерирует описание на языке VHDL, генерирует макрокоманды для среды Active-HDL, фиксирует в файле отчета статистическую информацию [6].
При компиляцииasf-файла генерируется модель автомата на языке VHDL, но при данном подходе к проведению ДЭ не используется.
Запуск программы автоматической генерации тестов осуществляется с помощью следующей командной строки:
asftest. exe -in [path]fsm. asf — tb2 fsm_tb2. vhd, где [path] - путь к файлу, fsm. asf — имя входного файла.
В результате работы программы ASFTEST генерируются следующие файлы: fsm_asft. cov — файл отчета, содержит информацию о покрытии состояний и путей при каждой стратегии-
fsm_asft. err — файл отчета об ошибках. Ошибок не содержится. Файл пуст- fsm_asft. rpt — файл статистики, содержит информацию об обрабатываемом графе- fsm_gen. vhd — файл описания автомата на языке VHDL-
fsm_tb2. vhd — файл, содержащий сгенерированную по стратегии 2 (обход всех дуг графа переходов автомата) тестовую последовательность на языке VHDL (рис. 3) —
fsm_tb2. do — файл с макрокомандами для моделирования теста из файла fsm_tb2. vhd.
architecture fsm_arch_tb2 of fsm_ent_tb2 is. . begin … begin
clk & lt-= '0'- cycle_num & lt-= 0- wait for delay_wr_in- data & lt-= '0'- reset & lt-= '1'- wait for delay_pos_edge- test_sreg & lt-= a0- clk & lt-= '1'- wait for delay_wr_out- wait for delay_neg_edge- - a0. end architecture fsm_arch_tb2-
Рис. 3. Фрагмент TestBench на языке VHDL для теста, полученного по стратегии 2
ASFTEST генерирует файл fsm_asft. cov с описанием всех дуг графа переходов (рис. 4), что в дальнейшем значительно упрощает создание таблицы путей.
28=(a0-& gt-a0)31=(a0->-a1)33=(a1->-a2)35=(a1->-a0)
38=(a2-& gt-a3)40=(a2->-a2)42=(a3->-a0)45=(a3->-a1)48=(@any_state->-a0)
Рис. 4. Листинг файла fsm_asft. cov по стратегии 2
Каждая дуга в файле fsm_asft. cov имеет символическое (цифровое) имя, а присвоенные ниже для наглядности имена дуг графа эталонного кода показаны на рис. 2: a=(a0-& gt-a0), b=(a0-& gt-a1), c=(a1-& gt-a0), d=(a1-& gt-a2), e=(a2-& gt-a2), f=(a2-& gt-a3), g=(a3-& gt-a1), h=(a3-& gt-a0).
Для упрощения изложения материала будем рассматривать автомат с тривиальной функцией выходов, т. е. выходной сигнал непосредственно связан с переходом (дугой). Это
46
упрощает наблюдаемость обхода графа автомата, но является частным случаем HDL-модели конечного автомата.
3. Проведение диагностических экспериментов
В качестве примеров применения изложенной стратегии проведем несколько ДЭ по поиску ошибок проектирования разных типов. Последовательность этапов проведения ДЭ следующая. По HDL-коду восстанавливается граф переходов, по графу строится тест, тест моделируется и по waveform выполняется сравнение результатов моделирования с эталоном (спецификацией). На основании результатов сравнения строится ВЭП и по нему по формулам (1) и (2) находятся ошибочные дуги в графе. После этого выполняется визуальная инспекция HDL-кода и находится ошибочный оператор.
Вначале рассмотрим вариант HDL-модели, где заведомо отсутствуют ошибки проектирования (см. рис. 2). Такой вариант кода в дальнейшем будем называть исправным.
На рис. 5 приведены результаты моделирования теста по стратегии 2 в Active-HDL для HDL -модели исправного автомата.
Рис. 5. Waveform с временными границами элементарных проверок P- для исправной HDL-модели
автомата
Результаты проведения ДЭ представим в виде таблицы путей (маршрутов) обхода графа, строками которой являются элементарные проверки, а столбцами — имена дуг графа переходов. Кроме того, в данной таблице представлены реальное и эталонное значение функции выходов у и ВЭП (рис. 6). Отметим, что столбец уэт связан со спецификацией и используется для получения ВЭП.
data a b c d e f h g у уэт ВЭПт
P 0 1 0 0 0
р2 10 1 1 0 0 0
P3 11 1 1 0 0 0
Р3 + P4 1100 1 1 1 1 1 1 0
Р3 +P5 11 101 1 1 1 1 1 0 0 0
Рис. 6. Маршруты обхода исправного графа переходов и В Э П Анализируя таблицу путей на рис. 6, можно сделать два вывода:
1) в тесте присутствует последовательность 1100 (элементарные проверки P3 + P4), дающая значение 1 на выходе, что соответствует спецификации-
2) для исправного кода ВЭП=0, что соответствует отсутствию ошибок в HDL-коде. Рассмотрим вариант ошибочного HDL-кода с ошибкой в выборе текущего состояния
(рис. 7) (в операторе when вместо состояния а2 задано a4, что помечено серым цветом).
when a4 =& gt- (вместо when a2)
if data='0'- then nextstate& lt-= a3- y& lt-='0'--
else nextstate& lt-= a2- y& lt-='0'-- end if-
Рис. 7. Фрагмент VHDL-модели автомата с ошибочным оператором when
47
Ошибка такого вида не пропускается компилятором, так как а4 — это необъявленное состояние. Поэтому, такая ошибка проектирования обнаруживается еще на этапе компиляции VHDL-модели.
Рассмотрим вариант ошибочного кода с ошибкой в выборе следующего состояния. На рис. 8 приведен фрагмент VHDL-модели рассматриваемого автомата с ошибочным оператором назначения нового состояния а3 вместо а2 (помечено в коде серым цветом).
when a2 =& gt-
if data='0'- then nextstate& lt-= a3- y& lt-='0'--
else nextstate& lt-= a3- y& lt-='0'-- (вместо nextstate & lt-= a2) end if-
Рис. 8. Фрагмент VHDL-модели автомата с ошибочным оператором назначения
Моделирование кода с внесенной ошибкой встроенным инструментом Code2Graphics генерирует граф автомата (рис. 9), новый asf-файл, из которого генерируются тесты. Необходимо отметить, что в Active-HDL граф-модель автомата является более сложной, чем модели Мили и Мура (на рис. 9 выходной сигнал автомата Мили привязан к выходу из вершины графа переходов), но это не влияет на результаты проведения ДЭ.
Рис. 9. Граф переходов с ошибочным оператором назначения нового состояния а3
Результаты моделирования тестов в среде Active-HDL приведены на рис. 10.
Signal name лг cyde_ni jit dli ЛГ stBte лг flats
лгу
PI P2 P3 P4
Рис. 10. Результаты моделирования автомата с ошибочным оператором назначения
Результатом проведения ДЭ по обходу графа является вектор экспериментальных проверок, в котором на Р3 произошло несовпадение с эталоном. Исходя из спецификации, у может быть равен 1 только при подаче на вход последовательности 1100, соответственно, а возникновение 1 на выходе при подаче 1110 неверно, что свидетельствует об ошибке.
Таблица путей для данного ДЭ (маршруты обхода графа) и ВЭП представлены на рис. 11. Отметим, что тестовые входные последовательности представлены в столбце data.
data a b c d e f h g у у эт. ВЭП^)
0 1 0 0 0
P2 10 1 1 0 0 0
P3 1110 1 1 1 1 1 0 1
P 4 1111 1 1 1 1 0 0 0
Рис. 11. Т аблица путей для ошибочного графа переходов и В ЭП
48
Место возникновения ошибки в маршруте обхода графа переходов находится по формуле (1):
D = {b, d, e, h} - {a} u {b, c} u { b, d, е, g} = { b, d, e, h } - {a, b, c, d, е, g} = { h }, т. е. в графе переходов подозревается ошибочная дуга h.
Для нахождения места возникновения ошибки проектирования необходимо возвратиться к HDL-коду автоматного шаблона и выполнить визуальное инспектирование участка кода для вычисления ошибочной дуги. Анализ фрагмента кода, связанного с состоянием a3, показывает отсутствие ошибок. Попадание же в список подозреваемых ошибочных переходов дуги h связано с тем, что ASFTEST генерирует однократное покрытие обхода дуг графа и маршрута b — d — f — h в списке обхода нет.
В этом случае надо возвратиться к предыдущему состоянию a2. Анализ фрагмента кода, связанного с состоянием a2, показывает наличие ошибочного оператора (else nextstate & lt-= a3), данный оператор корректируется (else nextstate & lt-= a2), и ДЭ по проверке корректности VHDL-кода повторяется.
Следующий вариант ошибочного кода — ошибка в операторе if, что выделено на рис. 12 жирным текстом.
when a3 =& gt-
if data='1' then (вместо data='0'-)
nextstate& lt-= a0- y& lt-='1'-- else nextstate& lt-= a1- y& lt-='0'-- end if-
Рис. 12. Фрагмент VHDL-модели автомата с ошибочным оператором if
По результатам моделирования тестов в среде Active-HDL строим таблицу путей и ВЭП (рис. 13). Здесь и далее ошибочный граф переходов и сравнение графических результатов моделирования по waveform не приводятся ввиду громоздкости рисунков.
data a b c d e f h g y y3X. ВЭП (V)
P1 0 1 0 0 0
P2 10 1 1 0 0 0
P3 11 1 1 0 0 0
P3 + P4 1101 1 1 1 1 1 0 1
P3 + P5 11 100 1 1 1 1 1 0 1 1
Рис. 13. Т аблица путей для ошибочного графа переходов и В Э П Место возникновения ошибки в маршруте обхода графа переходов будет:
D = {b, d, f, h} n {b, d, e, f, g} - {a} u {b, c} u {b, d} = {b, d, f } - {a, b, c, d,} = {f}, т. е. подозревается ошибочная дуга f в графе переходов.
Инспекция фрагмента кода, связанного с исходящей вершиной a2, не находит ошибки проектирования. Данная ситуация состоит в следующем. Фрагмент ошибочного кода if data='1'- порождает фактически две ошибочные дуги: g и h, которые, маскируя друг друга, приводят к ошибке в общей для них входящей дуге f. Это связано с особенностью построения маршрутов обхода графа в ASFTEST (переход 48=(@any_state-& gt-a0)на рис. 4 фактически является безусловным). В этом случае ошибку нужно искать в дугах, исходящих из a3. А там находится ошибочный фрагмент кода: if data='1'-.
Следующий пример ошибочного кода связан с наличием ошибки в назначении выходного сигнала в состоянии a3, что показано на рис. 14 жирным текстом.
when a3 =& gt-
if data='0'- then nextstate& lt-= a0- y& lt-='1'--
else nextstate& lt-= a1- y& lt-='1'- (вместо y& lt-='0'-)
end if-
Рис. 14. Фрагмент VHDL-модели автомата с ошибкой в назначении выходного сигнала
49
По результатам моделирования тестов в среде Active-HDL строим таблицу путей и ВЭП (рис. 15).
data a b c d e f h g У уэт. ВЭП (V)
Pi 0 1 0 0 0
P2 10 1 1 0 0 0
P3 11 1 1 0 0 0
P3 + р4 1100 1 1 1 1 1 1 0
P +P5 11 101 1 1 1 1 1 1 0 1
Рис. 15. Таблица путей для ошибочного графа переходов и ВЭП Место возникновения ошибки в маршруте обхода графа переходов будет:
D = {b, d, e, f, g} - {a} u {b, c} u {b, d} u {b, d, f, h} = {b, d, e, f, g} - {a, b, c, d, f, h} ={e, g},
т. е. подозреваются ошибочными дуги e и g в графе переходов.
Анализ фрагмента кода, связанного с состоянием а2 (дуга е), показывает отсутствие ошибок, а анализ фрагмента кода, связанного с состоянием а3 (дуга g), показывает ошибку в назначении выходного сигнала у (else nextstate& lt-= a1- У& lt-='1'-).
Внесем в код сразу две ошибки: ошибку назначения состояния и ошибку в условии перехода. Ошибочный код приведен на рис. 16, а результаты ДЭ приведены на рис. 17.
when a2 =& gt-
if data='0'- then
nextstate& lt-= a3- y& lt-='0'--
else nextstate& lt-= a3- y& lt-='0'-- (вместо nextstate & lt-= a2) end if-
when a3 =& gt-
if data='1' then (вместо data='0'-)
nextstate& lt-= a0- y& lt-='1'-- else nextstate& lt-= a1- y& lt-='0'-- end if-
Рис. 16. Фрагменты VHDL-модели автомата с ошибочным оператором назначения и ошибкой в
условии перехода
data a b c d e f h g У уэт. ВЭП (V)
11 0 1 0 0 0
P2 10 1 1 0 0 0
P3 11 1 1 0 0 0
P3 + P4 1101 1 1 1 1 1 0 1
P3 +P5 1110 1 1 1 1 1 0 1
Рис. 17. Таблица путей для ошибочного графа переходов и ВЭП
Место возникновения ошибки в маршруте обхода графа переходов находится по формуле (1):
D = {b, d, е, h} n {b, d, e, g} - {a} u {b, c} u {b, d} = {b, d, e} - {a, b, с, d} = {e},
т. е. подозревается ошибочная дуга e. Анализируя фрагмент кода, связанный с a2, находим ошибочный фрагмент кода else nextstate& lt-= a3- у& lt-='0'-и исправляем его. После этого ДЭ
50
повторяется, и по аналогичному принципу находим вторую ошибку проектирования (результаты на рис. 12 и 13).
Рассмотрим еще один вариант ошибочного кода с двумя ошибками проектирования: ошибка назначения выходного сигнала и ошибка в условии перехода. Ошибочный код приведен на рис. 18, а результаты ДЭ приведены на рис. 19.
when a0 =& gt-
if data='0'- then
nextstate& lt-= a0- y& lt-='1'- (вместо y& lt-='0'-) else nextstate& lt-= a1-y& lt-='0'--
end if-
when a3 =& gt-
if data='1' then (вместо data='0'-)
nextstate& lt-= a0- y& lt-='1'-- else nextstate& lt-= a1- y& lt-='0'-- end if-
Рис. 18. Фрагменты VHDL-модели автомата с ошибкой назначения выходного сигнала и ошибкой
условия перехода
data a b c d e f h й y уэт. вэпт
11 0 1 1 0 1
P2 10 1 1 0 0 0
P3 11 1 1 0 0 0
P3 + P4 1101 1 1 1 1 1 0 1
P3 +P5 11 100 1 1 1 1 1 0 1 1
Рис. 19. Т аблица путей для ошибочного графа переходов и В ЭП
Место возникновения ошибки в маршруте обхода графа переходов пытаемся найти по формуле (1):
D = {a} п {К Ф f h} п {Ф d, e, f g} - {b, c} u {b, d} = 0 — {ф с, d} = 0. Значит, требуется использовать формулу нахождения кратных ошибок (2):
D={a} u {b, d, f, h} u {b, d, e, f, g}- {b, c} u {b, d}={a, b, d, e, f, g, h} - {b, c, d}={a, e, f, g, h}.
Подозреваются ошибочные дуги a, e, f, g и h в графе переходов.
Инспекция кода показывает следующее. Дуга, а связана с фрагментом ошибочного кода в состоянии a0 (nextstate& lt-= a0- y& lt-=' 1'-). А дуги {e, f, g, h} связаны c маскируемой ошибкой проектирования (if data='1'-), нахождение которой подробно рассматривалось в комментариях к рис. 13.
4. Выводы
Показана принципиальная возможность автоматизации поиска ошибок проектирования в HDL-моделях конечных автоматов в форме автоматного шаблона с использованием программного продукта ASFTEST. EXE в составе среды проектирования Active-HDL. В качестве примера использована модель конечного автомата Мили на языке VHDL и рассмотрены примеры поиска различных ошибок проектирования. Используемая стратегия позволяет находить область местонахождения ошибки проектирования в фрагментах HDL-кода, т. е. значительно сузить область визуального инспектирования кода.
51
Вопросы эквивалентности исправного и неисправных автоматов, выбора стратегий обхода графа, длины диагностического эксперимента, существования диагностических тестов и глубины диагностирования не рассматривались в данной работе и являются предметом дальнейших исследований.
Список литературы: 1. Баранов С. И. Синтез микропрограммных автоматов (граф-схемы и автоматы). 2-е изд., прераб. и доп. / С. И. Баранов Л.: Энергия, 1979. 232 с. 2. Шкиль А. С. Структурное и функциональное диагностирование HDL-моделей цифровых устройств в САПР РЭА /А. С. Шкиль, Е.Е. Сыре-вич, С. Альмадхоун, Г. П. Фастовец // Інформаційно-керуючі системи на залізничному транспорті. 2013. N° 2. C. 75−82. 3. Альмадхоун С. Поиск ошибок проектирования в HDL-моделях цифровых автоматов / С. Альмадхоун, Е. Е. Сыревич, А.С. Шкиль// Вестник Херсонского государственного технического университета. 2013.. № 2 (46). С. 377−383. 4. Шкиль А. С. Методы поиска ошибок проектирования в HDL-коде /А.С. Шкиль, Е. Е. Сыревич, Д. Е. Кучеренко, Г. П. Фастовец // Радиоэлектроника и информатика. 2008. №. 3. С. 47−53. 5. Сode2GrapЫcs™ Converter [Электронный ресурс] /ALDEC. The design verification company. Режим доступа: www URL: https: //www. aldec. com/en/products/fpga_simulation/active-hdl/ feature/29 — 10. 05. 14. Загл. с экрана. 6. Хаханов В. И. Система генерации тестов для проектирования цифровых автоматов в среде ACTIVE-HDL / В. И. Хаханов, Е. В. Ковалев, В. В. Ханько, Масуд М. Д. Мехеди // АСУ и приборы автоматики. Харьков. 2000. Вып. 111. С. 15−22.
Поступила в редколлегию 20. 09. 2014 Шкиль Александр Сергеевич, канд. техн. наук, доцент кафедры АПВТ ХНУРЭ. Научные интересы: диагностика цифровых систем, дистанционное образование. Адрес: Украина, 61 166, Харьков, пр. Ленина, 14, тел. 702−13−26.
Фастовец Геннадий Павлович, канд. техн. наук, доцент кафедры АПВТ ХНУРЭ. Научные интересы: диагностика цифровых систем. Адрес: Украина, 61 166, Харьков, пр. Ленина, 14, тел. 702−13−26.
Серокурова Анна Сергеевна, аспирантка кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика цифровых автоматов. Адрес: Украина, 61 166, Харьков, пр. Ленина, 14, тел. 702−13−26.
52

ПоказатьСвернуть
Заполнить форму текущей работой