Литература: 1. Rashinkar P. System-On-A-Chip Verification. Norwell: Kluwer Academic, 2002. 372 p. 2. Piziali A. Functional Verification Coverage Measurement And Analysis. Norwell: Springer, 2004. 213 p. 3. Wilcox P. Professional Verification: A Guide to Advanced Functional Verification. Norwell: Springer, 2004. 191 p. 4. Adler Y., Blue D., Conti T., Prewitt R., Ur S. Evaluating Workloads Using Comparative Functional Coverage. Haifa Verification Conference. 2008. Р. 84-98. 5. Kwon Y.-S, Kim Y.-I., Kyung C.-M. Systematic Functional Coverage Metric Synthesis from Hierarchical Temporal Event Relation Graph // Design Automation Conference, 41st Conference on (DAC’04). 2004. C. 45-48. 6. Molnar C. Regression Testing: What to test and When // Aerospace and Electronic Systems Magazine, IEEE. 2001. Volume: 16 ,Issue: 6. Р. 25-30. 7. Bailey B. The Multiple Dimensions of Scalability that Comprise a System Verification Strategy. Mentor Graphics Scalable Verification White Paper. 2004. Р. 47-50.
Поступила в редколлегию 14.12.2013
Рецензент: д-р техн. наук, проф. Хаханов В.И.
Зайченко Сергей Александрович, канд. техн. наук, директор ООО “Алдек-КТС” (Харьков), доцент кафедры АПВТ ХНУРЭ. Научные интересы: автоматизированное проектирование и верификация цифровых систем.
Увлечения: технологии онлайн-образования. Адрес: Украина, 61045, Харьков, ул. Космическая, 23а, тел. (057)-760-47-25.
Александров Владислав Игоревич, инженер-программист ООО “Алдек-КТС” (Харьков). Научные интересы: автоматизированное проектирование и верификация цифровых систем. Увлечения: футбол. Адрес: Украина, 61045, Харьков, ул. Космическая, 23а, тел. (057)-760-47-25.
Белоус Василий Виталиевич, студент 5 курса ХНУРЭ, факультет компьютерной инженерии и управления, кафедра АПВТ, специальность СКС. Научные интересы: автоматизированное проектирование и верификация цифровых систем. Увлечения: международный туризм. Адрес: Украина, 61166, Харьков, пр. Ленина 14, тел. (057)-702-13-26.
Березин Никита Петрович, студент 5 курса ХНУРЭ, факультет компьютерной инженерии и управления, кафедра АПВТ, специальность СКС. Научные интересы: автоматизированное проектирование и верификация цифровых систем. Увлечения: методики самоорганизации. Адрес: Украина, 61166, Харьков, пр. Ленина 14, тел. (057)-702-13-26.
УДК658.512.011:681.326:519.713
ДИАГНОСТИРОВАНИЕ HDL-МОДЕЛЕЙ СИСТЕМ НА КРИСТАЛЛАХ
BAGHDADI AMMAR A WNI ABBAS,
ХАХАНОВ В.И., ЛИТВИНОВА Е.И.,
ЗАЙЧЕНКО С.А.
Предлагается технология диагностирования HDL-моделей систем на кристаллах, которая базируется на использовании транзакционного графа. Описывается метод диагностирования, направленный на уменьшение времени обнаружения неисправностей и памяти для хранения диагностической матрицы за счет формирования тернарных отношений между тестом, монитором и функциональным компонентом. Разрабатывается модель цифровой системы в виде транзакционного графа и мультидерева таблиц неисправностей, а также тернарные матрицы активации функциональных компонентов выбранного набора мониторов с помощью тестовых последовательностей. Предлагается метод анализа матрицы активации в целях обнаружения неисправных блоков с заданной глубиной и синтеза логических функций для последующего встроенного аппаратного диагностирования неисправностей.
1. ТАВ-модель диагностирования неисправных компонентов SoC
Цель исследования - разработка матричной модели ТАВ (Tests - Assertions - Blocks) и метода диагностирования, позволяющих уменьшить время тестирования и объем памяти для хранения диагностической информации за счет формирования тернарных отношений (тест - монитор - функциональный компонент) в одной таблице.
Задачи исследования: 1) разработка HDL-модели цифровой системы в форме транзакционного графа для диагностирования функциональных блоков с использованием набора ассерций [1-6,15]; 2) разработка метода анализа ТАВ-матрицы в целях обнаружения минимального набора неисправных блоков [4-7,13]; 3) синтез логических функций для встроенной процедуры диагностирования неисправностей [8-11,14].
Модель тестирования HDL-кода цифровой системы представлена следующими xor-отношениями параметров <тест - функциональность - неисправные блоки В*>:
T ® B ® B* = 0;
B* = T © B = {T х A} © B,
которые преобразуются в отношения компонентов TAB-матрицы:
M = {{T х A} х {B}},
Mij = (TхA)i © Bj.
Здесь координаты матрицы равны 1, если пара тестмонитор (T х A)i проверяет или активирует неисправности функционального блока Bj є B.
Аналитическая модель верификации с использованием темпоральных ассерций (дополнительная наблюдаемость операторов или линий) ориентирована на достижение заданной глубины диагностирования:
Q = f(G,A,B,S,T),
G = (A*B) х S;S = f(T,B);
A = {A1,A2,...,Ai,...,Ah};
B = {B1,B2,...,Bi,...,Bn};
S = {S1,S2,---,Si,---,Sm};
T = {T1,T2,...,Ti,...,Tk}.
60
РИ, 2013, № 4
Здесь G = (A*B) x S - функциональность, представленная CFT графом (Code-Flow Transaction) (рис. 1); S = {S1,S2,...,Si,...Sm } - вершины или операторы кода программы при симуляции тестовых сегментов (наборов). Другими словами, граф может рассматриваться как ABC-граф (Assertion Based Coverage Graph).
Каждое состояние Sj = {Si1,Sj2,...,Sjj,...Sjp} определяется значениями существенных переменных проекта (булевы, регистровые переменные, память). Дуги ориентированного графа представлены множеством программных блоков:
n
B = {Bi,B2,...,Bj,...,Bn}; и Bj = B; Bj n Bj = 0,
i=1 i* j
где ассерции Aj є A = {A1, A2,...,Aj,..., An} могут быть добавлены в каждый блок Bj - последовательность операторов кода, которые определяют состояние вершины графа Sj = f(T,Bi) в зависимости от
тестового набора T = {T1,T2,...,Tj,...Tk}. Ассерцион-ный монитор, объединяющий ассерции входных дуг A(Si) = Aj1 v Aj2v... v Aij v... v Aiq , может быть установлен в каждой вершине.
B = (B1B3B9 v (B2B7 v BpB5)Bn)B13 v v ((B1B4 v B2B6)B10 v B2B8B12)B14 =
= B1B3B9B13 v B2B7B11B13 v B1B5B11B13 v vB1B4B10B14 vB2B6B10B14 vB2B8B12B14.
ассерций < A,S >, существующее в графе, позволяет выполнять мониторинг дуг (покрытие кода) B = {B1,B2,...,Bi,...Bn} и вершин (функциональное покрытие) S = {S1,S2,...,Si,...Sm}. Ассерции на дугах Bj є B графа предназначены для диагностирования функциональных неисправностей в программных блоках. Ассерции в вершинах графа Sj є S несут информацию о качестве теста и множестве ассерций в целях их улучшения или дополнения. ABC-граф позволяет:
1) оценивать качество программного кода путем определения диагнозопригодности проекта (diagnosability); 2) минимизировать стоимость генерации тестов, диагностирования и исправления функциональных нарушений за счет использования ассер-ций; 3) опитимизировать синтез тестов путем покрытия всех дуг и вершин графа минимальным набором активизированных тестовых путей. Например, минимальный тест для приведенного выше ABC-графа содержит шесть сегментов, которые активизируют все имеющиеся дуги и вершины:
T = S0S1S3S7S9 v S0S1S4S8S9 v S0S1S5S7S9 v
v S0S2S4S8S9v S0S2S5S7S9v S0S2S6S8S9-
В процессе диагностирования тестовые сегменты T = {T1,T2,...,Tr,...,Tk} активизируюттранзакционный путь графовой модели, покрывающий все вершины и дуги. Как правило, тестовая модель представлена декартовым произведением м = T x A x B, которое соответственно имеет размерность Q = k x h x n. В целях уменьшения количества диагностических данных отдельный монитор или ассерционная точка для визуализации функциональной активизации блоков назначаются каждому тестовому сегменту. Это позволяет уменьшить размерность матрицы до Q = n x k и сохранить все особенности триады отношений M =< T x A x B >. Пара «тест - монитор» представляется тремя возможными формами:
Рис. 1. Пример ABC-графа HDL-кода
Модель HDL-кода, представленная в виде ABC-графа, описывает не только структуру программного кода, но также тестовые сегменты функционального покрытия, формируемые с использованием программных блоков, входящих в рассматриваемую вершину. Последняя определяет пространство состояний переменных, достигнутое на тесте, и формирует функциональное покрытие состояний переменных, соответствующих рассматриваемой вершине графа
Q = cardSr / cardSp . В совокупности все вершины графа должны представлять собой полное пространство покрытия состояний переменных программного кода, которое определяет качество теста, равное 100%:
ill ill
Q = card U Sr /card U Sp = 1. Более того, множество j=1 j j=1 j
< Tj ^ Aj > < {Tj ,Tr} ^ A j > < {Tj} ^ {A j > As} > .
Метод диагностирования функциональных нарушений блоков предусматривает использование предварительно построенной TAB-матрицы (таблицы)
м = tMij ], где строка представляет отношение между тестовым сегментом и подмножеством активизируемых блоков
Tj ^ Aj « (M11,Mi2,...,M1j,...,Mm),M1j = {0,1},
наблюдаемых монитором Aj. Столбец таблицы описывает отношение между функциональными блоками и тестовыми сегментами относительно монитора
Mj= Bj(Tj> Aj).
Для диагностирования неисправных блоков с помощью процедуры тестирования определяется реальный
РИ, 2013, № 4
61
вектор ассерционной проверки
A = (A1,A2,...,Ai ,...,An) на тестовом наборе T путем формирования Aj , f(T;,B;). Обнаружение неисправных функциональных блоков основывается на xor-операции между реальным вектором ассерционной проверки и столбцом TAB-матрицы
A* ® [Mj(Bj) vM2(B2) v...vMj(Bj) v...vMn(Bn)] . Неисправный блок определяется с помощью вектора Bj по минимальному количеству единичных координат:
B = min [Bj = 2(Bij ® A*)]. j=l,n i=l
В качестве дополнения к модели диагностирования следует описать некоторые важные свойства TAB-матрицы:
1) Mi = (Ti х Aj);
m n
2) v My ^ V Mj = 1;
i=1 j=1
n
3) Mij ® Mrj Ф Mij;
j=1
k
4) Mij ® Mir Ф Mij;
i=1
5) log2n < k о log2 |B < |T|
6) Bj = f(T, A) ^ B ® T ® A = 0.
Свойства означают: 1) Каждая строка матрицы представляет собой подмножество декартова произведения теста и монитора. 2) Дизъюнкция всех строк матрицы дает результат в виде вектора, в котором равны 1 все координаты. 3) Все строки матрицы различны, что исключает избыточность теста. 4) Все столбцы матрицы различны, что исключает существование эквивалентных неисправных блоков. 5) Количество строк матрицы должно быть больше двоичного логарифма числа столбцов, что определяет потенциальную диагнозопригодность (диагностируе-мость) каждого блока. 6) Функция диагноза каждого блока зависит от полного теста и мониторов, которые должны быть минимизированы без ухудшения диагнозопригодности.
Ниже приведены 6 тестовых сегментов, активизирующих пути графа относительно ассерционной точки S9.
T = S0S1S3S7S9 v S0S1S4S8S9 v S0S1S5S7S9 v vS0S2S4S8S9vS0S2S5S7S9vS0S2S6S8S9>
при этом достаточно просто выявить все функциональные блоки с возможными нарушениями:
B = B1B3B9B13 v B2B7B11B13 v B1B5B11B13 v vB1B4B10B14 v B2B6B10B14 vB2B8B12B14.
Механизм ассерций может быть представлен тремя группами компонентов, которые формируют логи-
ческие выражения для мониторинга программных и аппаратных блоков HDL кода функциональности, основанные на визуальных точках
{A9 Є s9,A3 Є s3,A6 Є S6}:
a9 = T1 (B1B3B9B13) v T2 (B2B7B11B13) v T3 (B1B5B11B13) v
v T4(B1B4B1QB14) v t5(B2B6B1qB14) v T6(B2B8B12B14);
A3 = T1(B1B3); A6 = T6(B2B8).
На следующем шаге формируются 6 строк TAB-матрицы Mij (G1) в виде отношений между тестовыми сегментами и активизируемыми блоками:
My(G1) B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14
T1 ^ S9 T2 ^ S9 T3 ^ S9 T4 ^ s9 T5 ^ S9 T6 ^ S9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
T1 ^ S3 T6 ^ S6 1 1 1 1
TAB-матрица путей активизации показывает существование эквивалентных нарушений блоков 3 и 9, 8 и 12 на 6 тестовых сегментах с одной ассерционной точкой в вершине графа 9. Столбцы 3 и 9, 8 и 12 эквивалентны. Для устранения неразличимости двух пар неисправных блоков необходимо создать два дополнительных монитора в узлах S3 и S6 для тестовых сегментов Т1 и Т6 соответственно. В результате три дополнительные ассерции в узлах A = (S9,S3,S6) позволят различить все неисправные блоки программного HDL-кода. Таким образом, граф позволяет не только синтезировать оптимальный тест, но и определить минимальное количество ассерционных мониторов в узлах графа, необходимое для поиска неисправных блоков с заданной глубиной диагностирования.
Процедура диагностирования с использованием предложенной матрицы определяется следующим выражением на основе векторной xor-операции между реальными восемью ассерционными значениями и столбцом В TAB-матрицы:
{[A9 (T1 ,T2 ,T3,T4,T5,T6 X A3O1),A6(T6)] ® Bj = 0} ^
^ (Bj - failed).
2. Диагнозопригодное проектирование
Диагнозопригодность определяется отношением Nd / N количества обнаруженных неисправных блоков Nd (если нет эквивалентных компонентов или глубина диагностирования равна 1) к общему количеству N HDL-блоков.
Для оценки затрат E на реализацию TAB-матричной модели обнаружения функциональных нарушений можно использовать эффективность пары тест-ассер-ции для заданной глубины диагностирования. Критерий E функционально зависит от отношения между
62
РИ, 2013, № 4
идеальным ]log2N[xN и реальным |т| х|a| х N объемами необходимой памяти или ресурсов (где |Т -длина теста, |Л| - количество ассерций) для соответствующей TAB-матрицы и представляет собой относительное значение в интервале от 0 до 1:
E = ]log2N[xN = ]log2N[
|Тх|Л|x N |Тx|A '
Обобщенный критерий качества диагностирования зависит от затрат Е и диагнозопригодности D:
Q = E х D
]log2N[ х _Nd ITx|A N ■
Например, качество диагностирования TAB-матрицы Mij (Gi) перед и после добавления двух строк равно:
является функцией, зависящей от количества Nn транзитных не конечных вершин, в которых существуют только две соседних дуги, одна из которых является входящей, другая - исходящей. Такие дуги образуют пути без сходящихся и расходящихся ветвлений (N - общее число дуг в графе):
D = N-Nn N
Оценка Nn определяется количеством необнаруженных или эквивалентных функциональных блоков. Потенциальная установка дополнительных мониторов для улучшения диагностируемости неисправных блоков является недостаточной для транзитных узлов, содержащих Nn ■ Критерий качества диагностирования ABC-графа имеет вид:
Q1[M(6 х1х14)]
]log2l4[
16 х 1
х10 = 0,47; 14
Q2[M(8 х1х14)]
]log214[
18 х 1
х14 = 0,5. 14
Это означает, что размер первой матрицы немного меньше, чем второй, но диагнозопригодность лучше для второго варианта матрицы и в целом она является более предпочтительной. По сравнению с известным решением [12], когда каждая ячейка матрицы содержит все существующие ассерции |Мц | = |a| , второй вариант оценивается следующим низким значением:
Q2[M(6 х 3 х14)]
]log214[
16 х И
х 14=0 14
,2.
Таким образом, TAB-матрица, сформированная для выбранной пары тест-ассерция, позволяет получить существенное преимущество с точки зрения сокращения объема памяти в |A| -1 раз при одинаковом значении диагнозопригодности.
Диагностическое качество TAB-матрицы определяется отношением количества битов, необходимых для идентификации (распознавания) всех блоков ]log2N[, к реальному количеству битов кода, представленному произведением длины теста на количество ассер-
ций T х |A- Если первая часть E критерия качества Q равна 1 и каждый блок с функциональными нарушениями обнаруживается в области оставшихся компонентов Nd = N , то это означает, что тест и ассерции являются оптимальными и обусловливают наилучшее значение критерия качества модели диагностирования Q=1.
Q = E х D
]log2N[х N-Nn
IT х| A N
Последнее выражение определяет некоторые практические правила для синтеза диагнозопригоднго HDL-кода: 1) Тест или testbench должны создавать минимальное количество единичных (одномерных) путей активизации, покрывающих все узлы и дуги ABC-графа. 2) Базовое количество мониторов равно числу конечных вершин графа без исходящих дуг. 3) Дополнительный монитор может быть размещен в каждой не конечной вершине, которая имеет одну входящую и одну исходящую дугу. 4) Параллельные независимые блоки кода должны иметь n мониторов и один параллельный тест, или один интегрированный монитор и n последовательных тестов. 5) Последовательно соединенные блоки имеют один тест актив ации для последовательного пути и n-1 монитор или n тестов и n мониторов. 6) Узлы графа, которые имеют более одной входной и выходной дуги, определяют хорошие условия для диагностируемости текущего фрагмента с помощью теста активизации одномерного пути без установки дополнительных мониторов. 7) Тестовый набор или testbench должен обеспечить 100% функциональное покрытие для вершин АВС-графа. 8) Критерий качества диагностирования как функция, зависящая от структуры графа, теста и ас-серционных мониторов, всегда может быть приведена к близкому к 1 значению. Для этого есть два альтернативных способа. Первый - увеличение количества тестовых сегментов путем активизации новых путей для распознавания эквивалентных неисправных блоков без увеличения числа ассерций, если структура графа программы позволяет потенциальные связи. Второй путь - добавление ассерционных мониторов в транзитных вершинах графа. Возможен также третий-гибридный вариант, основанный на совместном применении двух упомянутых выше способов.
Цель анализа ABC-графа - структурная оценка размещения ассерционных мониторов, что позволяет получить максимальную глубину диагностирования неисправных блоков. Диагнозопригодность АВС-графа
3. Метод многоуровневого диагностирования цифровых систем
На рис. 2 приведена многоуровневая модель мультидерева B, в которой каждой вершине соответствует
РИ, 2013, № 4
63
компонент цифровой вычислительной системы. Модель описывается трехмерной таблицей (матрицей) активизации функциональных модулей. Выходные дуги позволяют перейти на более низкий уровень детализации в процессе диагностирования, когда замена неисправного блока требует значительных материальных затрат:
n mr prs krs
B = [Brs],cardB = £ III Bj
r =1 s=1 i=1 j=1
где n - количество уровней диагностирования в мультидереве; mr - количество функциональных модулей или компонентов на уровне r; k rs ( prs ) - количество компонентов (длина теста) в таблице Brs; = і0,1)
- компоненттаблицы активизации, определяемый единичным значением, если неисправная функциональность обнаруживается тестовым сегментом от-
носительно наблюдаемого монитора Ai . Каждая вершина-таблица имеет некоторое количество исходящих дуг, равное числу функциональных компонентов, представленных матрицей активизации.
Рис. 2. Диагностическая модель мультидерева
Метод диагностирования неисправных блоков аппаратно-программной (Hardware-Software) HS-системы, основанный на модели мультидерева, позволяет создать универсальный движок в виде алгоритма (рис. 3, блок 6) для обхода ветвей дерева на априорно заданной глубине:
0 ^{Br+1,s,R};
1 ^ {Br+1,,T}.
Здесь векторная xor-операция выполняется между столбцами матрицы и вектором ассерционной (экспериментальной) проверки Ars , который определяется с помощью xor-операции над реальным (m) и модельным (g) откликами функциональности на тестовые наборы: A™ = m™ ® g[s, i = 1,krs . Если все координаты векторной xor-суммы Brs ® Ars = 0 равны нулю, то выполняется одно из следующих действий: переход к матрице активизации более низ-
Brs © Ars = •
кого уровня Brj+1,s или восстановление функционального блока B = Brs.
рева
Реализуется один из двух возможных путей анализа в зависимости от того, какой параметр является наиболее важным: 1) время (t>m, блок 10) - выполняется восстановление неисправного блока; 2) материальные затраты (t<m) - осуществляется переход на более низкий уровень для увеличения глубины диагностирования неисправностей, поскольку замена более мелкого блока уменьшает стоимость восстановления. Если, по крайней мере, одна координата результирующего вектора xor-суммы равна единице
B j © A = 1 , осуществляется переход к следующему столбцу матрицы. Если все координаты ассерци-
онного вектора равны нулю A1s = 0 , это свидетельствует о том, что HS-система находится в исправном состоянии. Если все векторные суммы при обработке
столбца TAB-матрицы не равны нулю Bj ! © Ars А 0 , значит тест, сгенерированный для выявления неисправностей данного компонента функциональности, должен быть скорректирован. Если более, чем одна векторная сумма, полученная при обработке столбца
TAB-матрицы, равна нулю Bj © Ars = 0 , это означает, что механизм ассерций, созданный для диагностирования данного компонента функциональности на представленном тесте, должен быть дополнен ассер-ционными мониторами. Таким образом, TAB-движок имеет четыре конечных вершины, одна из которых B-good соответствует успешному завершению тестирования. Другие три вершины свидетельствуют о получении промежуточного результата процесса тестирования, который необходимо учитывать для увеличения качеств а тестиров ания и глубины диагностиров а-ния путем формирования дополнительных ассерций и/ или генерации дополнительных тестовых сегментов.
64
РИ, 2013, № 4
Таким образом, граф, приведенный на рис. 2, позволяет реализовать эффективную инфраструктуру сервисного обслуживания для сложных технических систем. Преимуществом TAB-движка, инвариантного к уровням иерархии, является простота подготовки и представления диагностической информации в виде минимизированной таблицы активизации функционального блока на тестовых сегментах.
Технологическая модель инфраструктуры встроенного тестирования, диагностирования и восстановления неисправных блоков (рис. 4) включает три компонента: 1. Тестирование блоков (Unit Under Test - UUT) с использованием эталонной модели (Model Under Test - MUT) для генерации вектора ассерционной проверки (assertion response vector) ma, размер которого соответствует количеству тестовых наборов. 2. Поиск неисправных блоков на основе анализа TAB-матрицы. 3. Восстановление неисправных блоков путем замены их на исправные компоненты из имеющегося резерва.
Процесс-модель встроенного сервисного обслуживания функционирует в реальном времени и позволяет поддерживать работоспособное состояние HS-системы без непосредственного участия человека. Предложенный алгоритм или TAB-движок для анализа TAB-матрицы, а также введенный критерий качества диагностирования позволяют решать задачи квази-опти-мального покрытия программных и аппаратных блоков тестами и ассерциями. Модель, представленная на рис. 4, позволяет обеспечить эффективное сервисное обслуживание сложных HS-систем.
Рис. 4. Модель встроенного тестирования HS-компонентов
Выигрыш во времени получается за счет введения в проект дополнительной инфраструктуры (рис. 5), ко-
торая позволяет выполнять выборочное тестирование и диагностирование, а также перепрограммирование отдельных модулей неисправных блоков.
На рис. 5 представлены следующие блоки: Testbench - тесты для функциональных блоков; FC - функциональное тестовое покрытие; F - функциональные блоки; DI - диагностическая информация в виде таблиц неисправностей блоков; DT - методы и средства диагностирования; DA - результаты анализа диагностической информации; FB - неисправные функциональные модули; Repairing - восстановление функциональных модулей. Ячейка граничного сканирования, представленная на рис. 6, обеспечивает сервисное обслуживание одного функционального модуля.
Рис. 5. Инфраструктура для тестирования вычислительных систем
Рис. 6. Ячейка граничного сканирования 4. Пример решения задачи диагностирования
Для иллюстрации эффективности предложенной модели и метода ниже используется функциональность в виде трех модулей цифрового фильтра Добеши [11].
В качестве второго контрольного примера практического использования предложенной модели активизации и xor-метода анализа TAB-матрицы для поиска неисправных блоков далее представлен синтез диагностической матрицы для графа основного фильтра (рис. 7).
Рис. 7. Транзакционный граф main-TL
РИ, 2013, № 4
65
Граф связан с диагностической TAB-матрицей, в которой имеется 6 активизационных тестовых сегментов и 8 ассерций:
Mj(TL) Bi B2 B3 B4 B5 B6 B7 B8 B9 Bl0 Bii Bl2 Bl3 Bl4
Tl H F7 l l l l
T2 H F8 T3 H F9 l l l l l l l l
T4 H F10 T5 H F12 l l l l l l l l l
T6 H F13 l l l l l
Tl H F2 T2 H F3 l l
Система диагностических функций для аппаратной имплементации части инфраструктуры сервисного обслуживания, соответствующая строкам или мониторам:
ВД) = BjB^Bl;
F8(T2) = b2b14B15b8;
F9 (T3) = b11B16b1b3;
Fio(T4) = b4b5b6b12;
Fi2(T5) = b1b3b5b9b13;
Fi3(T6) = в2в4в6в1оВІ4;
F2(Ti) = Bl; F3 (T2) = B2.
Синтез диагностической матрицы для одного модуля дискретного косинусного преобразования из библиотеки Xilinx в виде функционального покрытия показан в листинге 1.
Листинг 1. Фрагмент функционального покрытия c0: coverpoint xin {
bins minus_big={[l28:235]}; bins minus_sm={[236:255]}; bins plus_big={[2l:l27]}; bins plus_sm={[l:20]}; bins zero={0};
}
c1: coverpoint dct_2d {
bins minus_big={[l28:235]}; bins minus_sm={[236:255]}; bins plus_big={[2l:l27]}; bins plus_sm={[l:20]}; bins zero={0}; bins zero2=(0=>0);
}
endgroup
Разработаны также остальные 12 модулей транзакционного графа, активизационные TAB-матрицы и логические функции для тестирования и обнаружения неисправностей в модуле дискретного косинусного преобразования. Фрагмент механизма мониторов приведен на листинге 2.
Листинг 2. Фрагмент кода механизма мониторов
sequence first( reg[7:0] a, reg[7:0]b); reg[7:0] d;
(!RST,d=a)
##7 (b==d); endsequence property f(a,b);
@(posedge CLK)
// disable iff(RST||$isunknown(a)) first(a,b);
!RST |=> first(a,b); endproperty
odin: assert property (f(xin,xa7_in))
// $display(“Very good”);
else $error(“The end, xin =%b,xa7_in=%b”, $past(xin,
7),xa7_in);
Тестирование дискретного косинусного преобразования в среде Riviera фирмы Aldec позволило обнаружить некорректности в семи строках HDL-модели:
//add_subla <= xa7_reg + xa0_reg;//
Последующая корректировка кода позволила получить следующий фрагмент (листинг 3).
Листинг 3. Скорректирванный фрагмент кода
add_subla <= ({xa7_reg[8],xa7_reg} + {xa0_reg[8],xa0_reg});
add_sub2a <= ({xa6_reg[8],xa6_reg} +{xal_reg[8],xal_reg});
add_sub3a <= ({xa5_reg[8],xa5_reg} +{xa2_reg[8],xa2_reg});
add_sub4a <= ({xa4_reg[8],xa4_reg} + {xa3_reg[8],xa3_reg});
end
else if (toggleA == l ’b0) begin
add_subla <= ({xa7_reg[8],xa7_reg} -{xa0_reg[8],xa0_reg});
add_sub2a <= ({xa6_reg[8],xa6_reg} -{xal_reg[8],xal_reg});
add_sub3a <= ({xa5_reg[8],xa5_reg} -{xa2_reg[8],xa2_reg});
add_sub4a <= ({xa4_reg[8],xa4_reg} -{xa3_reg[8],xa3_reg});
66
РИ, 2013, № 4
Практическая имплементация моделей и методов верификации интегрирована в среду моделирования Riviera фирмы Aldec Inc (рис. 8). Новые ассерции и модули диагностирования, добавленные в систему, улучшают существующий процесс верификации, что позволяет на 15% сократить время разработки цифрового продукта.
Рис. 8. Имплементация результатов в систему Riviera
Применение ассерций дает возможность уменьшить длину testbench и значительно сократить (х3) время проектирования (рис. 9), которое является наиболее затратным. Механизм ассерций позволяет увеличить глубину диагностирования функциональных нарушений в программных блоках до уровня 10-20 операторов HDL-кода.
Time-to-market comparison
0,112 0,207 0,315 0,389 0,504 0,620 0,731 0,824 0,931 1,015 Design capacity (MGates)
Рис. 9. Сравнительный анализ методов верификации
Благодаря взаимодействию средств моделирования и механизма ассерций, автоматически размещенных внутри HDL-кода, появляется доступ средств диагностирования к значениям всех внутренних сигналов. Это позволяет быстро определить местоположение и тип функционального нарушения, а также сократить время обнаружения ошибок при использовании методологии проектирования сверху вниз. Применение ассерций для 50 реальных проектов (от 5000 до 5 миллионов вентилей) позволило получить сотни специализированных решений, включенных в библиотеку верификационных шаблонов VTL, которые являются обобщением наиболее популярных на рынке EDA (Electronic Design Automation) ограничений темпоральной верификации для широкого класса цифровых продуктов. Программная реализация предложенной системы анализа ассерций и диагностирования HDL-кода является частью многофункциональной интегрированной среды Aldec Riviera для моделирования и верификации HDL-моделей.
РИ, 2013, № 4
Высокая производительность и технологичность сочетания системы анализа ассерций и HDL-симулятора компании Aldec в значительной степени достигается за счет интеграции с внутренними компонентами симулятора, в том числе компиляторами HDL-языков. Обработка результатов системы анализа ассерций обеспечивается набором визуальных средств системы Riviera, позволяющих облегчить диагностирование и устранение функциональных нарушений. Модель анализа ассерций может быть имплементирована также в аппаратные средства с определенными ограничениями на подмножество поддерживаемых языковых структур. Продукты Riviera, включая компоненты темпоральной верификации ассерций, которые позволяют улучшить качество проекта на 3-5%, в настоящее время занимают лидирующие позиции на мировом IT-рынке с количеством системных инсталляций 5000 в год в 200 компаниях и университетах более чем 20 стран мира.
5. Выводы
1. Представлены инфраструктура и технологии анализа цифровых систем. Предложенные модель транзакционного графа и метод диагностирования цифровых систем на кристаллах ориентированы на значительное уменьшение времени обнаружения неисправных блоков и памяти для хранения компактной диагностической матрицы, описывающей тернарные отношения в формате: монитор-ориентированные тест-сегменты, и предназначены для обнаружения неисправностей функциональных компонентов программно-аппаратных систем.
2. Введен новый критерий качества диагностирования, представляющий собой функцию, которая зависит от структуры графа, тестов и ассерционных мониторов. Для улучшения качества диагностирования существуют два альтернативных пути: увеличение набора тестовых сегментов для распознавания эквивалентных неисправных блоков или добавление ас-серционных мониторов на транзитных вершинах акти-визационного графа HDL-кода. Предложенный критерий позволяет принять правильное решение.
3. Усовершенстован TAB-движок или алгоритм обнаружения функциональных нарушений в программном или аппаратном обеспечении. Он отличается от аналогов использованием xor-операции, что позволяет повысить производительность диагностирования одиночных и кратных неисправных блоков за счет параллельного анализа ТАВ-матрицы, применения граничного сканирования на основе стандарта IEEE 1500, а также векторных операций and, or, xor.
4. Разработаны модель диагностирования функциональности системы на кристалле в виде мультидерева и метод обхода дерева, имплементированный в движок для обнаружения неисправных блоков с заданной глубиной. Модель и метод позволяют существенно увеличить производительность программного и аппаратного обеспечения инфраструктуры IP.
67
5. Тестовая верификация метода диагностирования выполнена на трех реальных примерах, представленных компонентами SoC фильтра косинусного преобразования, который показал состоятельность результатов по уменьшению времени обнаружения неисправностей и памяти для хранения диагностической информации, а также увеличения глубины диагностирования цифрового модуля.
Литература: 1. Основы технической диагностики / Под. ред. П.П.Пархоменко. М.: Энергия, 1976. 460с. 2. Пархоменко П.П., Согомонян Е.С. Основы технической диагностики (Оптимизация алгоритмов диагностирования, аппаратурные средства) / Под ред. П.П. Пархоменко. М.: Энергия. 1981. 320 с. 3. Инфраструктура мозгоподобных вычислительных процессов / М.Ф. Бондаренко, О.А. Гузь, В.И. Хаханов, Ю.П. Шабанов-Кушнаренко. Харьков: Новое Слово. 2010. 160 с. 4. Проектирование и верификация цифровых систем на кристаллах / В.И. Хаханов, И.В. Хаха-нова, Е.И. Литвинова, О.А. Гузь. Харьков: Новое слово. 2010. 528с. 5. Семенец В.В., Хаханова И.В., Хаханов В.И. Проектирование цифровых систем с использованием языка VHDL. Харьков: ХНУРЭ. 2003.492 с. 6. Хаханов В.И., Хаханова И.В. VHDL+Verilog = синтез за минуты. Харьков: ХНУРЭ. 2006. 264с. 7. IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture IEEE Std 1149.7-2009. 8. Da Silva F., McLaurin T., Waayers T. The Core Test Wrapper Handbook. Rationale and Application of IEEE Std. 1500™. Springer. 2006. XXIX. 276 p. 9.MarinissenE.J., YervantZorian. Guest Editors’ Introduction: The Status of IEEE Std 1500.IEEE Design & Test of Computers. 2009. No26(1). P.6-7. 10. Benso A., Di Carlo S., Prinetto P., Zorian Y. IEEE Standard 1500 Compliance Verification for Embedded Cores // IEEE Trans. VLSI Syst. 2008. No 16(4). P. 397-407. 11. Hahanov V.I., Litvinova E.I., Chumachenko S.V., and Guz O.A. Logic associative computer. Electronic simulation. 2011. No 1. З.73-83. 12. Ngene Christopher Umerah, Hahanov V. A diagnostic model for detecting functional violation in HDL-code of SoC // Proc. of IEEE East-West Design and Test Symposium. Sevastopol, Ukraine. 19-20 September, 2011. P. 299-302. 13.
Ubar R., Kostin S., Raik J. Block-Level Fault Model-Free Debug and Diagnosis in Digital Systems // DSD ’09. 12th Euromicro Conference. 2009. P. 229-232. 14. Benabboud Y., Bosio A., Girard P., Pravossoudovitch S., Virazel A., Bouzaida L., Izaute I. A case study on logic diagnosis for System-on-Chip // Quality of Electronic Design. 2009. P. 253259. 15. DattaK., Das P.P. Assertion based verification using HDVL // Proceedings 17th International Conference VLSI Design. 2004. P. 319-325.
Поступила в редколлегию 14.11.2013
Рецензент: д-р техн.наук, проф. Хаханов В.И.
Baghdadi Ammar Awni Abbas (Baghdad University) , аспирант кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика цифровых систем и сетей, кубитные методы анализа и диагностирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21326. E-mail: [email protected].
Хаханов Владимир Иванович, декан факультета КИУ ХНУРЭ, д-р техн. наук, профессор кафедры АПВТ ХНУ-РЭ. Научные интересы: техническая диагностика цифровых систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected].
Литвинова Евгения Ивановна, д-р. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: автоматизация диагностирования и встроенный ремонт компонентов цифровых систем в пакете кристаллов. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21 -421. E-mail: kiu@kture. kharkov.ua.
Зайченко Сергей Александрович, доцент кафедры АПВТ ХНУРЭ, директор компании ТзОВ «Aldec-KTC». Научные интересы: системы автоматизированного проектирования, моделирования и верификации цифровых систем на кристаллах. Увлечения: литература, музыка, футбол. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. (097)-367-62-93. E-mail: [email protected]
68
РИ, 2013, № 4