УДК 519.713:681.326
В.И. ХАХАНОВ, ХАССАН КТЕЙМАН, А.Н. ПАРФЕНТИЙ, И.В. ХАХАНОВА
HFS - ПРОЦЕССОР АППАРАТНОГО МОДЕЛИРОВАНИЯ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ ПРОЕКТОВ
Предлагается Hardware Fault Simulator (HFS) - программно-аппаратный комплекс, который представляет собой мультипроцессорную структуру с ограниченной системой команд, способную в конвейерном и/или параллельном режимах выполнять моделирование неисправностей для цифровых проектов большой размерности, содержащих миллионы вентилей.
1. Введение
Благодаря совместным усилиям ведущих брендов планеты в области Electronic Design Automation (EDA: Cadence, Mentor Graphics, Synopsis) и технологическим достижениям микроэлектроники (Xilinx, Altera) стало возможным создание аппаратных моделей за временной интервал, соизмеримый с разработкой программных моделей. Поэтому в маршрутах проектирования цифровых изделий на рынке электронных технологий становятся все более популярными программно-аппаратные решения тестирования и верификации, которые дают возможность существенно сократить основной параметр любой разработки -time-to-market. Заметны два стратегических направления на EDA-рынке: 1) Повышение тестопригодности и быстродействия программных продуктов благодаря конвейеризации и распараллеливанию вычислительных процессов на основе использования многоядерных архитектур (Intel) и специализированных процессоров (ASIC, ASSP). 2) Доработка аппаратных моделей и методов моделирования, тестирования и верификации по функциональности и гибкости до уровня программных. При этом функция цели в обоих направлениях одна -минимизация времени проектирования. Ограничения, а точнее сказать сервисы: высокое быстродействие как у аппаратных, гибкость, функциональность и тестопригодность (управляемость, наблюдаемость, отладка) как у программных моделей.
В плане стратегических и перспективных направлений развития EDA-рынка наиболее актуальными являются исследования: 1) Усовершенствование технологий тестопригодно-го проектирования и стандартов граничного сканирования в software design [1-9]. 2) Применение ассерций и линтинг-технологий для тестирования, верификации и отладки цифровых проектов на системном уровне [10]. 3) Разработка аппаратных симуляторов для моделирования и диагностирования сложных цифровых проектов на ранних стадиях проектирования [11-14]. Перспективные технологии, ориентированные на создание аппаратных средств тестирования и верификации, предлагают ведущие компании мира, такие как: Synopsis, Aldec, Xilinx, Altera, Atmel. Предлагаемые ими решения свидетельствуют об актуальности и рыночной привлекательности исследований, связанных с разработкой программно-аппаратных комплексов, повышающих производительность EDA-средств. В качестве существующих прототипов аппаратного симулятора выбраны две системы фирмы Aldec (USA), которая является одним из лидеров инноваций в области EDA. Бренд компании - HESTM (Hardware Embedded Simulator) [15, www.aldec.com] является универсальным специализированным процессором, подключаемым к персональному компьютеру, который способен в сотни и тысячи раз повысить быстродействие моделирования и верификации цифровых проектов. В качестве управляющего ядра используется ARM-процессор, соединенный с кристаллом FPGA (Xilinx) с помощью шины AMBA. Уже отлаженная часть цифрового проекта помещается в HES, а модели компонентов, требующие отладки, представляются в HDL-коде. По мере отладки все компоненты помещаются в кристалл HES - модель цифровой системы становится аппаратной с быстродействием на несколько порядков выше ее программного аналога. Второй прототип - мультипроцессор PRUS [16], ориентированный на эмуляцию (решение) систем булевых уравнений большой размерности. Для такой специфической и времязатратной задачи предлагается структура примитивных сек-венсеров с ограниченной системой команд, что дает возможность уйти от жесткости в
процедурах отладки HDL-сода, но сохранить высокое быстродействие аппаратных моделей, помещенных в кристаллы уже не PLD, но ASIC. Таким образом, представляется актуальной проблема высокопроизводительной аппаратурной мультипроцессорной реализации метода моделирования неисправностей для анализа качества тестов проектируемых цифровых изделий, что дает возможность найти на EDA-рынке своего потребителя, готового платить больше за высокое быстродействие аппаратного моделирования и новые функциональные возможности.
Цель исследования - существенное (х10, х100) уменьшение времени анализа качества тестов путем применения аппаратных моделей и дедуктивно-параллельных методов моделирования неисправностей на основе разработки мультипроцессорной структуры с ограниченной системой команд. Для достижения поставленной цели необходимо: 1) Усовершенствовать математические модели и дедуктивно-параллельный метод [17-22] для их использования в аппаратном анализе качества тестов. 2) Разработать структуру и функционалы секвенсора (процессора) для решения задач дедуктивно-параллельного моделирования неисправностей. 3) Разработать мультипроцессорную систему анализа качества тестов путем распараллеливания и и частичной конвейеризации обработки примитивов проектируемого цифрового изделия. 4) Разработать структуру и систему команд компилятора для распределения примитивов цифрового устройства, описанного на HDL-языке, по сек-венсерам мультипроцессора. 5) Выполнить программно-аппаратную имплементацию моделей и метода в аппаратуру на основе HES PLD, тестирование и верификацию прототипа, его сравнение с существующими мировыми аналогами путем использования тестовых библиотек ведущих фирм, интеграцию в Active-HDL симулятор.
2. Уравнения дедуктивных функций
Получение дедуктивных функций (ДФ) основывается на взаимодействии теста и функции исправного поведения. Далее рассматривается модель дедуктивно-параллельного синхронного анализа неисправностей, которая позволяет за одну итерацию обработки схемы вычислять все дефекты, проверяемые на двоичном тест-векторе. Она основана на решении D-уравнения [13]: L = T©F, где F = (Fm+i,Fm+2,...,Fi,...Fn)(i = m + 1,n) - совокупность функций исправного поведения устройства; m - число его входов; Yi = Fi(Xii,...,Xy,...,Xin.)
- ni-входовой i-й элемент схемы, реализующий Fi для определения состояния линии (выхода) Yi на тест-векторе Tt; Xy - j-й вход i-го элемента; двоичный тест
T = (Ti ,T2 ,...,Tt ,...,Tk) - упорядоченная совокупность двоичных векторов, доопределенная в процессе исправного моделирования на множестве входных, внутренних и выходных линий, где тест-вектор задается в виде Tt = (Tti,Tt2,...,Tti,...,Ttn), а его невходная координата вычисляется моделированием функции Tti = Yi = Fi(Xii,...,Xij,...,Xjn.) на тест-векторе Tt;
L = (Li,L 2 ,...,Lt,...,Lk) - множество дедуктивных схем или моделей, определяемых выражением (1), где Lt = (Lti,Lt2 ,...,Lti,...,Ltn); Lti = Tt © Fi - дедуктивная функция параллельного моделирования неисправностей на тест-векторе Tt, соответствующая исправному элементу Fi , которая дает возможность вычислять список входных неисправностей, транспортируемых на выход элемента Fi [2,19]. С учетом разбиения теста на составляющие
векторы D-уравнение получения ДФ для Tt е T принимает следующий вид: Lt = Tt © F. Если функциональное описание цифрового устройства представлено компонентами (примитивами), формирующими состояния всех линий схемы, то в качестве формулы преобразования исправной модели примитива Fi на тест-векторе Tt в дедуктивную функцию L^ выступает L^-уравнение:
Lti = Tt © Fi = fti[(Xii © Tti),(Xi2 © Tt2 ),...,(Xij © ^),...,(Хц © Tta[)] © Tti, которое является основой дедуктивного анализа цифровых устройств [22].
3. Синтез дедуктивных функций компонентов устройства
Рассматриваются процедуры построения дедуктивных функций на основе задания таблиц истинности и тестовых воздействий. При этом используется Lti-уравнение, которое регламентирует правила построения базовых выражений как для простейших логических элементов, так и для сложных систем, заданных таблицей истинности (переходов). Функция логического элемента And. Необходимо построить дедуктивную функцию на основе задания декартова произведения таблицы истинности и исчерпывающего теста для данного примитива. На первом шаге S1 выполняется построение таблицы истинности дедуктивной функции, что иллюстрируется в виде формы:
S1=
(x,y) (a,b) c = a л b (a,b) = (x,y) © (a,b) z = x л y L = c © z
00 00 0 00 0 0
00 01 0 01 0 0
00 10 0 10 0 0
00 11 1 11 0 1
01 00 0 01 0 0
01 01 0 00 0 0
01 10 0 11 0 0
01 11 1 10 0 1
10 00 0 10 0 0
10 01 0 11 0 0
10 10 0 00 0 0
10 11 1 01 0 1
11 00 0 11 1 1
11 01 0 10 1 1
11 10 0 01 1 1
11 11 1 00 1 0
Здесь отображены результаты вычислений, основанные на D-уравнении: первый столбец есть исчерпывающий тест для функции And, которая представлена вторым и третьим столбцами, четвертый представляет собой результат покоординатной операции XOR над содержимым первой и второй колонок, пятый определяет результат логической операции над переменными первой колонки, а последний есть искомая дедуктивная функция для анализа дефектов примитива, вычисляемая в виде XOR операции над содержимым третьего и пятого столбцов. Размерность таблицы определяется произведением количества кубов покрытия (строк таблицы истинности) примитивного элемента на длину исчерпывающего теста. В данном случае такие оценки определяются как: d = d(T) х d(F) = 4 х 4 = 16. В общем случае размерность таблицы истинности есть существенный фактор, ограничивающий использование табличных моделей для анализа цифровых проектов. Одно из возможных решений проблемы размерности находится в плоскости компактного представления таблиц в виде их сокращенной формы, называемой кубическим покрытием [5, 14]. В этом случае можно получать компактные таблицы, приемлемые для обработки схем, содержащих сотни переменных.
На втором шаге S2 необходимо выполнить минимизацию булевой функции от четырех переменных. Речь идет о таблице истинности, составленной из столбцов 1,4 и 6 таблицы ДФ, по которой составляется карта Карно
L = f(x,y,a,b)
(x,y)\(a,b) 00 ! 01! 11 ! 10
00 01 0 ! 0 ! 1 ! 0 0 "I 0 !~0 ! 1
11 "сТГГГГГГ
10 0 1 1 !~0 ! 0
которая является удобной формой записи функции для последующей минимизации. Для более сложных функций, насчитывающих десятки и сотни переменных, необходимо использовать процедуру минимизации на основе граф-схем [23] или метод существенных переменных [24], которые ориентированы на эффективное получение квазиоптимального результата при неполностью определенных функциях от большого количества переменных.
Последующая минимизация примитива, заданного картой Карно, приводит к трем вариантам дедуктивной функции:
1)L = f(x,y,a,b) = (xy л ab) v (y л ab) v (x л ab) v (xy л b) v (xy л a) = = (x y л ab) v (x л ab) v (y л ab) v [(xy л (a v b)];
2)L = f (x,y,a,b) = (xy л ab) v (y л ab) v (x л ab) v (xy л a) = = (xy л ab) v (x л ab) v [(ya л (x_v b)];
3)L = f(x,y,a,b) = (xy л ab) v (y л ab) v (x л ab) v (xy л b) v (xy л a) = = (xy л ab) v [(ya л (x v b)] v [(xb л (y v a)].
Здесь вычислительная сложность или оценка по Квайну для полученных реализаций равна 19, 15 и 17 соответственно. Следует помнить, что переменные x, y являются булевыми, состояния которых определяются тестовыми воздействиями, в то время как переменные a, b есть регистровые или теоретико-множественные, которые задают входные списки или векторы неисправностей для определения возможности их транспортирования на выход логического элемента.
На шаге S3 определяются дедуктивные функции в виде универсальных схемных структур, соответствующих уравнениям L и предназначенных для анализа неисправностей примитива And (рис. 1).
a b
x>-
y>
&
P &
&
f
&
x>-
y>
L
a b
&
4 &
x>-
y>
&
— L
a b
&
1
&
&
— L
1
1
1
1
1
1
1
Рис. 1. Дедуктивные примитивы функции And для анализа дефектов
Здесь представлены три конфигурации дедуктивной функции. Первая проста в понимании процессов транспортирования дефектов, где входы (x,y) управляют выбором логического элемента, ответственного за транспортирование дефектов до внешнего выхода L при заданном тестовом воздействии. Другие варианты дедуктивной функции за счет дополнительной минимизации имеют меньшие аппаратурные затраты, но при этом их структуры более сложны для понимания механизмов управления и транспортирования дефектов. Тем не менее, лучшим, с позиции быстродействия и аппаратных затрат, является второй вариант схемной реализации.
Аналогично определяются дедуктивные функции в виде универсальных схемных структур, соответствующих D-уравнениям и предназначенных для анализа неисправностей примитива Or (рис. 2).
Минимизация булевой функции Xor приводит к дедуктивной функции с вычислительной сложностью, равной 6: L = f(x,y,a,b) = ab v ab.Здесь отсутствуют переменные x и y, что означает безусловное транспортирование списков неисправностей на выход логического элемента Xor, независимо от тестовых воздействий. Переменные a, b есть регистровые или теоретико-множественные, которые задают входные списки или векторы неисправностей для их безусловного транспортирования на выход логического элемента. Таким образом, логический элемент Xor является лучшим изобретением с точки зрения тестируемости не только одиночных, но и кратных дефектов.
a b
a b
x>-
У>-
4
4 &
4 &
x>-
y>-
&
— L
4
a b
&
&
x>-
y>-
4 &
&
— L
4 &
&
4 &
J?
&
— L
1
1
1
1
Рис. 2. Дедуктивные примитивы функции Or для анализа дефектов
Дедуктивная функция для триггера-защелки Latch (C_high, D) строится на основе
сокращенной формы булевого уравнения Q = DC v CDQ(t -1) или таблицы переходов в виде кубического покрытия
Q =
C D Q(t -1) Q
1 1 X 1
0 X 1 1
1 0 X 0
0 X 0 0
Далее выполняется построение таблицы для определения дедуктивной функции триггера, размерность которой ^-таблицы) равна 32 строкам - произведение мощности покрытия на длину исчерпывающего теста от трех переменных: Q = |с| х |т| = 4 х 8 = 32. Здесь первая колонка есть полный тест проверки дефектов триггера, вторая - кубическое покрытие триггера, мультиплицированное 8 раз, по числу векторов в тесте, третья колонка задает состояния выхода триггера при воздействии на него кубами покрытия, четвертая - результат применения операции Хог к координатам теста и кубического покрытия, пятая -значения выхода триггера при воздействии на него тестовыми векторами из первой колонки, шестая - значения дедуктивной функции, которые определяют условия транспортирования дефектов через триггер и правила вычисления выходного списка неисправностей в функциональной зависимости от входных списков, определяемых регистровыми переменными (С,Р,О).
В результате склеивания соседних термов с помощью карт Карно была получена дедуктивная функция триггера
L = Дс, 4 съС, ДО) = (с л СРО) V (СрО) Ч_(с л СРО) V (с4с л CD) V ^ л СБ) V ^ л CD) V (с4С л СБ) V V (с4С л СО) V ^л СО) V ^ л СО) V (с4С л СО).
Ее структурная реализация представлена на рис. 3. Стоимость аппаратных затрат -оценка по Квайну - равна 62. Простейшая реализация данного триггера равна 6. Таким образом, дедуктивная функция триггера имеет более чем 10-кратную аппаратную избыточность.
Что касается представления дедуктивных функций логических двухвходовых примитивов [19], то их аппаратная реализация на исчерпывающем тесте представлена на рис.4 универсальным секвенсором дедуктивно-параллельного анализа неисправностей. В симу-ляторе представлены булевы (х1,х2) и регистровые (Х1,Х2) переменные, сигнал V выбора типа исправной функции: V=0 (AND), V=1 (OR), выходная регистровая переменная Y.
Состояния двоичных входов х1,х2 и V выбирают одну из четырех дедуктивных функций для получения вектора Y проверяемых неисправностей.
с d q
S1=
(Т1Т2 Тз) СDQt-1 Qt X Q(T) ЦТД)
000 11Х 1 ПК 0 1
000 0X1 1 0X1 0 1
000 10Х 0 10X 0 0
000 0X0 0 0X0 0 0
001 11Х 1 1К 1 0
001 0X1 1 0X0 1 0
001 10Х 0 10X 1 1
001 0X0 0 0X1 1 1
010 11Х 1 10X 0 1
010 0X1 1 0X1 0 1
010 10X 0 11X 0 0
010 0X0 0 0X0 0 0
011 1К 1 10X 1 0
011 0X1 1 0X0 1 0
011 10X 0 11X 1 1
011 0X0 0 0X1 1 1
100 1К 1 01X 0 1
100 0X1 1 1X1 0 1
100 10X 0 00X 0 0
100 0X0 0 1X0 0 0
101 11X 1 01X 0 1
101 0X1 1 1X0 0 1
101 10X 0 00X 0 0
101 0X0 0 1X1 0 0
110 11X 1 00X 1 0
110 0X1 1 1X1 1 0
110 10X 0 01X 1 1
110 0X0 0 1X0 1 1
111 1К 1 00X 1 0
111 0X1 1 1X0 1 0
111 10X 0 01X 1 1
111 0X0 0 1X1 1 1
— L
Рис. 3. Дедуктивная схема DC-триггера для анализа дефектов
Работа симулятора представлена на примере в таблице параллельного моделирования входных 8-разрядных векторов неисправностей в целях получения на выходе Y вектора (множества) проверяемых дефектов для логических элементов 2И, 2ИЛИ:
(V, x1, x2) = 000 100 011 111 010 110
X1(RG) 01110001 01110001 10110110 00111011 00101010 10111001
X2(RG) 01111000 01111000 10110101 00110100 10111001 00101010
Y(RG) 01110000 01111001 10110111 00110000 10010001 10010001
Применение такого симулятора дает возможность трансформировать вентильную модель F исправного поведения схемы в дедуктивную L, которая инвариантна в смысле универсальности тестовым наборам и не предполагает в процессе моделирования использовать модель F. Поэтому симулятор, как аппаратная модель ДФ, ориентирован на создание встроенных средств дедуктивно-параллельного моделирования, повышающих быстродействие анализа в 10 - 1000 раз по сравнению с программной реализацией. Но при этом соотношение объемов послесинтезных моделей исправного моделирования и анализа неисправностей составляет 1:16. Подход аппаратного анализа неисправностей направлен на расширение функциональных возможностей встроенных средств исправного моделирования (HESTM - Hardware Embedded Simulator) фирмы Aldec. Вычислительная сложность обработки проекта, состоящего из n вентилей, равна Q = (2n2т) / W , где т - время выполнения регистровой операции (AND, OR, NOT); W - разрядность регистра.
Для аппаратной реализации дедуктивно-параллельного моделирования на основе предложенного симулятора используется вычислительная структура, представленная на рис. 5. Особенность схемной реализации заключается в совместном выполнении двух операций: однобитовой - для эмуляции функций логических элементов И, ИЛИ и параллельной - для обработки многоразрядных векторов неисправностей путем выполнения операций логического умножения (пересечение), отрицания (дополнение) и сложения (объединение). Функциональное назначение основных блоков (память и процессор): 1. M = [Mjj] - квадратичная
матрица моделирования неисправностей, где i,j =1,q; q - общее число линий в обрабатываемой схеме. 2. Векторы сохранения состояний исправного моделирования, определенные в моменты времени t-1 и t, необходимые для формирования дедуктивных функций примитивов. 3. Модуль памяти для хранения схемного описания в виде структуры логических элементов. 4. Буферные регистры, размерностью q, для хранения операндов и выполнения регистровых параллельных операций над векторами неисправностей, считанных из матрицы M. 5. Блок исправного моделирования для определения булевого состояния выхода очередного обрабатываемого логического элемента. 6. Дедуктивно-параллельный симуля-тор, обрабатывающий за один такт две регистровые переменные X1 X2 в целях определения вектора дефектов, транспортируемых на выход логического элемента Y.
Memory
Fault 1 Detected Matrix
2
Testbench Fault free lines states
Circuits
Description
BNF
Рис. 5. HFS-структура аппаратного моделирования
3
Достоинство предложенной структуры моделирования неисправностей заключается в: 1) существенном уменьшении количества моделируемых дефектов, определяемом только числом сходящихся разветвлений, которое составляет до 20 % от общего числа линий; 2) снижении объема памяти, необходимого для хранения матрицы моделируемых неисправностей; 3) достаточно простой реализации HFS-структуры в аппаратном исполнении, что позволяет на порядок увеличить быстродействие моделирования неисправностей; 4) использовании HFS в качестве первой фазы дедуктивно-топологического метода, который основывается на результате обработки сходящихся разветвлений для быстродействующего анализа древовидных структур.
4. Синтез дедуктивных примитивов для SL/RTL платформ
Для мультипроцессора моделирования неисправностей система команд определяется количеством функциональных или логических примитивов, которые имеют дедуктивную форму. Минимальная система таких операторов представлена функциями И, ИЛИ, НЕ. Однако такое множество годится лишь для проектов, описанных на вентильном послесин-тезном уровне, или для ее имплементации следует иметь компиляторы (трансляторы) для преобразования RTL- и/или System Level моделей к Gate level. На рис. 6 представлена технология аппаратного моделирования дефектов, которая является частью маршрута проектирования цифрового изделия и использует идеологию, описанную в [25]. Основная идея - унифицировать аппаратный подход к моделированию неисправностей, который сделать инвариантным к уровням описания проекта (RTL, System Level, Gate level).
SL, RTL, GL
Project specification
Deductive platform
FFS
±
Deductive model mapping
Testbench memory
Software model memory
FS-processor
^ Sequensor
DF Simulator
±
±r
FL memory
FDM memory
Рис. 6. Технология аппаратного моделирования Таким образом, интересной задачей является создание платформенно инвариантного дедуктивно-параллельного моделирования неисправностей, распространенного на RT- и System-уровни, что существенно расширяет систему команд FS-мультипроцессора и позволяет не использовать процедуры синтеза для получения моделей в целях верификации на уровне вентильного описания цифрового проекта. Согласно рис. 6 на стадии создания платформ необходимо разработать системы моделей Р, покрывающих функциональности проектируемых изделий на трех стадиях их прохождения:
Р = {Р8,РГ,Рё}; Ря = {Р1\Р|,...,Р*,...,Рк.}; Рг = {Р^Р^,...^,...^.};
Рё = {рё,Р|,...,Р|,...,РП.}; Р = тщхьх2,...,хр...^),Т(ХьХ2,...,Хр...^)].
Чтобы иметь возможность анализа неисправностей на всех уровнях описания проекта, необходимо синтезировать дедуктивные 2п-входовые примитивы не только вентильного, что достаточно просто, но регистрового и системного уровней. Такой синтез отличается структурной сложностью исходного описания примитивов. Его суть заключается в минимизации булевых функций от 2п переменных, где п - число входных переменных комбинационного эквивалента системного или регистрового примитива. Такой подход позволяет
оценить функциональную сложность представления компонента схемы на всех трех уровнях и выбрать лучшую модель по критерию минимальных программно-аппаратных затрат:
P = min{Ps,P[,Pg}, где каждая модель Pj, инвариантная к уровню описания цифрового
J J J
проекта, состоит из двух компонентов: Pj = {Pjs ,Pjh }, первый определяет программный код схемного описания на внутреннем специализированном языке, который задает последовательность выполнения обработки примитивных элементов, а второй компонент есть уникальное непересекающееся подмножество примитивов в одной из платформ {Ps,Pr,Pg}, которое покрывает своей функциональностью дедуктивную подсхему Pj. Качество Q или сложность конкретной модели подсхемы или устройства в целом определяется следующей
формулой: Q(Pj) = Q(pS) + Q(Ph), где слагаемые есть объем памяти для хранения програм-
JJ
мы и аппаратная сложность подмножества примитивов для реализации функциональности Pj в одной из платформ {Ps,Pr,Pg} в эквивалентных вентилях соответственно. Мощность Р = {Pi,P2 ,...,Pj,...,Pk } платформы примитивов процессора моделирования, находящихся в отношении Р— п Р2 п... n Pj п... п Рк = 0 , влияет на разрядность q кода операции для выполнения моделирования: q = ]log2 |Р| [. Поэтому выражение для Q можно привести к общему значению программно-аппаратных затрат, необходимых для моделирования цифрового 1 k
проекта: Q(P) = — хQ(Ps)x]log2|Р|[+ Z Q(Ph), где b - коэффициент укрупнения схемы по b J j=1 J отношению к вентильному эквиваленту - среднее число вентилей в примитиве Register- или System Level.
5. Архитектура процессора моделирования неисправностей
Для выполнения аппаратного моделирования неисправностей предлагается спецпроцессор, который был реализован в микросхемах программируемой логики FPGA. Для тестирования устройства использовалась плата аппаратного ускорения моделирования Hardware Embedded System (HES) фирмы Alatek, которая подключается к PCI разъему компьютера. Для этого модель устройства на HDL-языке обрабатывается программами синтеза и имплементации. После этого сформированный битовый файл конфигурации загружается в расположенную на плате HES микросхему FPGA. Управление моделированием осуществляется с помощью программы Active-HDL [1, 2] на основе разработанного TestBench. Структура подключения аппаратного спецпроцессора, расположенного в HES, к программе моделирования представлена на рис. 7. Функция TestBench: хранение входных наборов, загрузка их в спецпроцессор, сбор и анализ списков проверяемых неисправностей.
Рис. 7. Схема реализации аппаратного моделирования неисправностей с использованием HES На рис. 8 представлена структурная двухпроцессорная схема устройства аппаратного моделирования неисправностей. Устройство включает два спецроцессора, один блок управляющей памяти и два блока специальной памяти для хранения данных. Спецпроцессоры соединяются по принципу Master-Slave. Первый из них является главным и выполняет функции управления устройством для проведения исправного моделирования. Спецпроцессор 2 подчиняется первому и выполняет обработку списков неисправностей. Память команд хранит структурное описание схемы. Память данных 1 - результаты исправного
моделирования для одного тестового набора, а память данных 2 - сформированные списки дефектов для каждой линии схемы.
Память данных 2
Списки неисправностей
Память данных 1
Исправное моделирование
Память команд
Структура схемы
Спецпроцессор 2 Regi
Секвенсор 1 N-битов I Reg2
Управляющий блок Result 1 N-битов I
Спецпроцессор 1
Исправное моделирование
Command
Управляющий блок
[
2-бита
]
| M-битов
Adrl | L-битов |
Adr2 I L-битов I
TyPe
]
._Op_,
I K-битов I
Рис. 8. Устройство аппаратного моделирования неисправностей
На рис. 9 изображена схема последовательного анализа списков неисправностей. Для обработки N линий требуется N синхротактов. Регистры Regl и Reg2 являются параллельно-последовательными. Они имеют параллельную загрузку и одноразрядный выход, подключенный к нулевому разряду. Регистр Result - последовательно-параллельный, в него последовательно заносятся данные о проверяемых неисправностях, а считывание выполняется параллельно. Ускорить обработку данных можно путем дополнительной проверки регистров Regl и Reg 2 на равенство нулю в целях последующего исключения их из обработки в случае обоюдного равенства нулю. Это позволяет повысить скорость обработки информации на N тактов. Ускорить обработку списков данных можно также за счет использования нескольких секвенсоров, работающих параллельно. На рис. 9 представлена схема с параллельным использованием нескольких секвенсоров. Такой блок требует двух тактов для обработки поступающей информации. Первый такт - занесение информации во входные регистры Reg 1 и Reg 2, а второй - запись результата информации в регистр Result. В случае конвейерной обработки можно заносить новую информацию в регистры Regl и Reg 2, в момент передачи предыдущих данных - в регистр результата Result. Таким образом, время обработки одного входного слова сокращается до одного такта.
Рис. 9. Блок с параллельной обработкой списков неисправностей Спецпроцессор 1 отвечает за считывание команды, формирование адресов и выполнение исправного моделирования (Fault Free Simulation). Устройство содержит регистры: Command, Adrl, Adr2, Type и Op. Спецпроцессор 1 выполняет последовательное считывание команд из соответствующей памяти в регистр Command. Каждая команда представляет собой информацию о входах и выходе элемента, а также о его типе. Регистр Op содержит счетчик команд. В элементы Adrl и Adr2 заносятся адреса линий из регистра Command, в начале номера входов, в затем в регистр Adrl - номер выхода. Регистр Type содержит код типа анализируемого элемента.
6. Секвенсор, процессоры и управляющие автоматы
Предназначен для выполнения операций дедуктивного анализа списков неисправностей в целях определения дефектов, проверяемых на выходе логического элемента или примитива. На вход блока (рис. 10) подаются входные значения тестового набора X1 и X2, тип логического элемента V, списки неисправностей X1_s и X2_s. На рис.10 изображена схема секвенсора, созданная с помощью редактора Block Editor программы Active-HDL компании Aldec. VHDL-модель секвенсора представляет собой комбинационный примитивный автомат, который в аппаратуре реализуется соответствующей комбинационной схемой. Его VHDL-модель состоит только из параллельных операторов присвоения значений сигналу. В FPGA комбинационная функция пяти переменных реализуется двумя таблицами преобразований LUT [26, 27]. X1_sD-X2 sO
/ ' \ al
т>
-DY
a4
Рис. 10. Схема секвенсора в редакторе Block Editor, Active-HDL Структурная схема спецпроцессора 1, созданная в редакторе Block Editor программы Active-HDL, представлена на рис. 11. Для такого описания Active-HDL предоставляет возможность автоматизированного генерирования VHDL-кода. Спецпроцессор 1 состоит из управляющего автомата, представленного компонентом U1/Control, рис. 11. Для создания регистров Command, Adr1, Adr2, Type и Op, которые реализованы с помощью сигналов command_reg, in1, in2, inv/V и op_n соответственно, использованы процессы com_reg (Command), op_counter(op) и process_1(Adr1, Adr2, Type). Также спецпроцессором 1 формируются сигналы scan_start и a_write. Первый применяется для начала процесса обработки списков неисправностей для заданного теста. Второй - для записи результатов исправного моделирования в память данных 1 (см. рис. 11).
Design Unit Header
librar IEEE; Generic_1
use IEEE.std_logic_1164.all; lines:natural:=14; lines_power:natural:=4; n:natural:=4; com_size:natural:=32 use IEEE.std_logic_unsigned
T donel
Рис. 11. Модель спецпроцессора 1 в редакторе Block Editor программы Active-HDL
Интерфейс и граф переходов управляющего автомата спецпроцессора 1 представлен на рис. 12.
Entity: main_control Architecture: main_control_arch
Ebclk Чтение команды
^_rst -QZ>com_read
Q)-en [3"Done -Dadr_rn_form -[L)adr_out_form
Рис. 12. Граф переходов управляющего автомата спецпроцессора 1
Устройство имеет управляющие входы: clk (синхросигнал), en (сигнал разрешения синхронизации), rst (сброс) и Done. Как видно из графа автомата, до тех пор пока сигнал Done=0, выполняется считывание и анализ очередной команды, описывающей структуру автомата. Равенство Done=1 означает, что вся схема обработана и автомат переходит в начальное состояние, из которого он выйдет только после загрузки очередного тестового набора. В процессе выполнения функциональности автомат формирует три выходных сигнала com_read, adr_in_form и adr_out_form. Команда com_read используется для записи очередной команды из памяти в регистр command_reg и увеличения счетчика команд op_n на единицу. По команде adr_in_form номера входов элемента записываются в регистр in1, in2, а также тип элемента заносится в регистры inv и V. В этот же момент устанавливается в 1 выходной сигнал scan_start. Функция adr_out_form отвечает за запись адреса выхода элемента в регистр in1. Выход устройства a_write является копией сигнала adr_out_form, задержанной на один такт.
Спецпроцессор 2 используется для получения списка одиночных и заказных кратных константных неисправностей цифрового проекта, проверяемых на заданном тест-векторе относително наблюдаемых выходов схемы. Задачи: считывание из памяти входных списков проверяемых неисправностей для входов логического элемента; формирование списка транспортируемых через элемент неисправностей для заданного входного набора; запись результата - вектора проверяемых по выходу дефектов в память по адресу, соответствующему номеру выходной линии элемента. Интерфейс управляющего блока спецпроцессора включает управляющие входы: clk (синхронизация), en (разрешение синхронизации), rst (сброс) и Done (завершение работы). Значение на вход Done подается с выхода спецпроцессора 1 и означает завершение обработки очередного тестового набора. Выходной сигнал reg_load - используется для загрузки списков неисправностей в регистр. По сигналу mem_load список неисправностей, проверяемых на выходе вентиля, записывается в память. Сигнал shift предназначен для управления сдвиговыми регистрами в случае последовательной обработки неисправностей.
Схема управляющего блока спецпроцессора 2 изображена на рис. 13. Она состоит из управляющего автомата (блок Hst_mem_control) и счетчика числа сдвигов (Process_1). Модуль счетчика равен числу линий, которое описывается generic-константой lines. Разрядность счетчика log2(lines) и задается generic-константой lines_power.
Generic Generic
l i nes_power NATURAI_=4 lines:NATURAL=14
U1
Рис. 13. Схема спецроцессора 2 (без регистров)
Граф переходов автомата, управляющего сканированием списков неисправностей, изображен на рис. 14. Автомат имеет управляющие входы: clk (синхросигнал), rst (сброс в начальное состояние S1). Вход en используется как старт-сигнал, запускающий работу устройства. Сигнал Done означает завершение процесса сканирования и выполняет возврат автомата в начальное состояние S1. Входной сигнал en_from_count генерируется счетчиком, выполняющим подсчет обработанных неисправностей для одного вентиля. Управляющий блок реализован с помощью автомата Мили, поэтому выходные сигналы имеют регистровый тип. Выходы устройства управляют загрузкой списков неисправностей из памяти в сдвиговые регистры (reg_load), выполнением сдвигов и их подсчетом (count_en), сбросом счетчика в 0 перед началом обработки списков неисправностей для каждого вентиля (count_en) и загрузкой сформированного списка в память по адресу номера выхода логического вентиля (mem_load).
Реализация устройства моделирования неисправностей. Цель - реализация специализированного процессора для аппаратного моделирования неисправностей методом дедуктивно-параллельного анализа. Его имплементация в кристалле позволит (как минимум на порядок) повысить скорость моделирования неисправностей, проверяемых заданным тестом, за счет аппаратной реализации основных функций.
Структурная схема устройства аппаратной реализации моделирования неисправностей, созданная с использованием редактора Block Editor, представлена рис. 15. На основе данной диаграммы генерируется структурная модель, составленная из синтезированных ранее компонентов: list_mem, list_mem_control, comand_mem, control_block, value_mem, sequenstor, simul. На схеме спецпроцессор 1 реализован блоками U5/control_block (блок управления) и U3/simul (АЛУ, представленное блоком исправного моделирования). К спецпроцессору 2 относятся копии компонентов U8/list_mem_control_block(блок управления), U2/sequenstor (АЛУ), регистры общего назначения реализованы с помощью процессов shift_reg_input и shift_reg_out. Память данных, содержащая результаты исправного моделирования, выполнена блоком value_mem и двумя процессами Process_1 и Process_2, которые управляют доступом к памяти и позволяют выполнять загрузку очередного тестового набора при поступлении сигнала load.
Clk count_en
en mem_load
en_from_count reg_load
rst rst_count
done
list mem control
Entity: list_mem_control Architecture: list_mem_control_arch
E>-cik r>ist~ jRreg"'°a,dd
izr 1—' -n>mem_load
H>en_from_count Hb>count_en Q)-en D"done -QI>rst_count
SregO
|count_en<='1';| 'en from count-0'
n from count='1' mem_load<='1';
Рис. 14. Интерфейс и граф переходов управляющего автомата
Generi c_1
lines:natural:=14; lines_power:natural:= ; com_size:natural:=
clk rst Oload
adr_l oad (l i nes_power-1:0)
D-
clk
rstD-loadc^
d_inD-rst
о
d(lines-1:0)
Oresult(lines-1:0) 1,
U6
adr1(lines_power-1:0)
clk
d(lines-1:0)
en
rst
q1(lines-1:0) q2(lines-1:0)
lists mem
in2(lines power-1:0)
in1(lines power-1:0)
U5
U1
q(com_size-1:0)
comand_mem
St
clk V
command(com_sze-1:0) in1(lines_power-1:0)
en in2(lines_power-1:0)
rst inv
a_ write
op(n-1:0)
Done
scan_start
control_block
op(lines power-1:0)
О Done
Рис. 15. Структурная схема устройства моделирования неисправностей Для тестирования и верификации устройства аппаратного моделирования неисправностей и для проверки его связей с программой моделирования Active-HDL разработан TestBench. Его структурная схема представлена на рис. 16. Основная функция этого модуля заключается в генерировании управляющих сигналов, загрузке очередного тестового набора в память аппаратного модуля, считывании и анализе результатов. Модуль U1/ top представляет блок моделирования неисправностей, который реализуется аппаратно. Генерирование тестов и анализ результатов реализуется с помощью процессов test_generation и result, соответственно. Счетчики, описанные процессами counter, counter_1, counter_2, используются для подсчета количества тестов, длины теста и числа полученных векторов результатов.
st
Design Unit Header
Generic 1 library IEEE;
use IEEE.std_logic_1164.all; input_numbers: natural:=; lines:natural:=14; linesjpower:natural:= use IEEE.std_logiC_unsigned.all
Architecture declarations
type test_type is array( to ) of std_logic_vector(input_numbers- downto ); constant test: test_type:=("1100", "0000", "1111", "0101", "1010", "0011"); type result_type is array( to ) of std_logic_vector(lines- downto );
SignalAssignments_1
Рис. 16. Структурная схема TestBench Для оценки скорости работы последовательностного устройства существенными являются три параметра, подлежащие определению: 1. Максимальная задержка между появлением активного фронта на синхровходе и соответствующей ему реакции на выходе (Clock to Pad). Вычисление производится в соответствии со следующим выражением: Tclock to_pad = Tc2q + Tcomb_Q2Omax , где Tc2q - задержка триггера, TComb_Q2Omax - самый длинный комбинационный путь от выхода триггера до любого выхода схемы. 2. Максимальная задержка между регистрами (Register to Register): Treg_to_reg = TC2q + TComb_Q2Dmax + TSetap, где TC2q -задержка триггера, Tcomb q2d - самый длинный логический путь от выхода триггера Qdff до любого входа триггера Ddff, Tsetup - время установки триггера. 3. Максимальная задержка логического пути от входа к выходу (Pin to Pin): Tpin to_pin = Tcomb I2Omax . Максимальный из трех упомянутых параметров определяет минимальный период синхросигнала. Программный пакет ISE фирмы Xilinx в процессе выполнения имплементации определил временные параметры устройства: минимальный допустимый период для схемы равен 17.838 ns. Это соответствует частоте 56.061 МГц. Таким образом, для обработки одного тестового набора для схемы, состоящей из 1000 линий и 1000 элементов, потребуется 1000*1000*17.838 ns = 17.838 ms. В случае параллельной обработки списков неисправностей 32-разрядными словами это время уменьшится до 17.838 / 32 = 0.558 ms. При использовании процессора общего назначения для вычисления списков неисправностей потребуется как минимум 5 тактов: считывание команды, считывание операнда 1, считывание операнда 2, выполнение логической операции, запись результатов в память. В случае обработки данных 32-разрядными словами 5*1000*1000/32 *1 ns = 0.156250 ms. Это время вырастает в 12 раз, поскольку схема анализа неисправностей соответствует уравнению, состоящему из 12 логических элементов: 0.156250 ms*12 = 1,875 ms. Для выполнения исправного моделирования для схемы, содержащей 1000 элементов, потребуется 10*5*1000*1 ns = 0.050ms, где 10 -сложность схемы исправного моделирования, 5 - число тактов на обработку каждой операции: 1,875 ms + 0,050 ms = 1.925 ms.
7. Выводы
Разработана и реализована архитектура мультиядерного спецроцессора, предназначенного для аппаратного моделирования неисправностей. Спецпроцессор состоит из двух блоков, взаимодействующих по принципу Master-Slave. Устройство использует три блока памяти: память команд и два блока памяти данных (для результатов исправного моделирования и списков проверяемых неисправностей). При самой простой реализации метода моделирования неисправностей скорость обработки возрастает в 4 раза. Это значение может быть увеличено в случае введения дополнительных регистров на выходах схемы. При этом аппаратная реализация занимает только 7121 логический элемент. Данное значение может возрастать при увеличении размеров необходимых блоков памяти. Это можно сделать безболезненно, поскольку используемая микросхема FPGA располагает достаточными ресурсами. Зависимость времени обработки схемы от ее объема является линейной функцией, представленной рис. 17. Размер схемы определен формулой m*n, где m - число элементов в схеме, n - количество линий. График 1 соответствует последовательной обработке списков неисправностей, график 2 - последовательно-параллельной обработке, при использовании 32-разрядного слова, зависимость 3 - последовательно-параллельной обработке, при использовании 64-разрядного слова.
18 16 14 12 I 10
ш~
^ 3 Е—
в 4 2 О
4 5 6 7
SIZE, G at es Number* Lines Number
8 9 10
x 105
и
ï
Рис. 17. График зависимости времени обработки схемы от ее размеров Для моделей, методов и алгоритмов разработан программный комплекс, который работает под управлением MS Windows системы моделирования Riviera 7.1 фирмы Aldec и PLI модуля [www.aldec.com]. Hardware часть соединяется с Software-симулятором посредством PCI-интерфейса. На стадии подготовки аппаратной модели цифрового устройства выполняется ввод, отладка, синтез и создание файла конфигурации для программирования FPGAс помощью средств: Riviera 7.1, Sinplify фирмы Sinplicity, ISE фирмы XlLINX, работающих под управлением пакета DVM фирмы Aldec.
Ускорение моделирования может достигать одного-двух порядков. На рис. 18 представлены результаты анализа быстродействия программно-аппаратной реализации метода моделирования цифровых систем на основе двух процессоров по сравнению с чисто аппаратным моделированием и чисто программной реализацией дедуктивного метода на одном и том же компьютере при обработке 1000 векторов. Выигрыш в быстродействии более существенен для схем большой размерности.
Рис. 18. Анализ быстродействия средств моделирования
Научная новизна: 1) Усовершенствованы структурно-функциональные модели секвенсоров (процессора) для решения задач дедуктивно-параллельного моделирования неисправностей путем создания двухъядерного процессора, работающего по принципу Master-Slave, отличающиеся от аналогов функциональным назначением и позволяющие в сотни раз повысить быстродействие анализа дедуктивных компонентов проекта по сравнению с программной реализацией метода. 2) Предложена новая модель мультипроцессорной системы анализа качества тестов, позволяющая выполнять распараллеливание и частичную конвейеризацию обработки примитивов проектируемого цифрового изделия, что дает возможность в десятки раз уменьшить длительность цикла моделирования неисправностей проектируемого устройства.
Практическая значимость определяется: 1) программно-аппаратной имплементацией моделей, дедуктивно-параллельного метода и алгоритмов в аппаратуру на основе секвенсоров, имплементированных в кристалл PLD, отличающихся от аналогов гибкостью программных и быстродействием аппаратных моделей, что дает возможность улучшить быстродействие метода моделирования неисправностей до 2-х порядков; 2) программной реализацией компилятора HDL-описания во внутреннюю модель проектируемого устройства, тестированием и верификацией программно-аппаратного прототипа, имплементируе-мого в HES PLD, его сравнением с существующими мировыми аналогами путем использования тестовых библиотек ведущих фирм, интеграцией с Active-HDL симулятором.
Список литературы: 1. Novak O., GramatovaE., Ubar R, and collective. Handbook of testing electronic systems. Czech Technical University Publishing House. 2005. 395 p. 2. Abramovici M., Breuer M.A. and Friedman A.D. Digital systems testing and testable design. Computer Science Press. 1998. 652 p. 3. Хаханов
B.И., ХахановаИ.В. VHDL+Verilog = синтез за минуты. Харьков. ХНУРЭ. 2006. 264 с. 4.ХарченкоВ.С. Гарантоспособность компьютерных систем. Условия универсальности в контексте информационно-технического состояния //Радиоэлектронные компьютерные системы. Харьков, ХАИ. 2007. N° 8. С. 714. 5. Семенец В.В, ХахановаИ.В., Хаханов В.И. Проектирование цифровых систем с использованием языка VHDL. Харьков, 2003. 492 с. 6. Грушвицкий Р.И., МурсаевА.Х., УгрюмовЕ.П. Проектирование систем на микросхемах программируемой логики. СПб.: БХВ-Петербург, 2002. 608 с. 7. Суворова Е.А., ШейнинЮ.Е. Проектирование цифровых систем на VHDL. СПб.: БХВ-Петербург, 2003. 576 с. 8. Кнышев Д.А., КузелинМ.О. ПЛИС фирмы Xilinx: описание структуры основных семейств. М.: Издательский дом Додэка-XXI, 2001. 238 с. 9. СергиенкоА.М. VHDL для проектирования вычислительных устройств. К.: ЧП Корнийчук, 2003. 208с. 10.ХахановВ.И., ЕлисеевВ.В., ОбризанВ.И., ВадеГриби, ХасанКтейман. Ассей-метод верификации цифровых систем на основе стандарта IEEE 1500 SECT // АСУ и приборы автоматики. 2005. N° 3(132). С. 93-105. 11.Хаханов В.И., Побеженко И.А., Хасан Ктейман, Ваде Гриби. HES-MV - аппаратный метод моделирования устройств // АСУ и приборы автоматики. 2005. N° 4(133).
C. 4-12. 12. Хаханов В.И., Парфентий А.Н., Хасан Ктейман, Ваде Гриби. HEDEFS - программно-аппаратная система моделирования неисправностей // Радиоэлектроника и информационные технологии. ЗНПУ. 2006. .№3. С.56-62. 13. Hahanov Vladimir, Kteaman Hassan, Ghribi Wade andFominaElena. HEDEFS - Hardware Embedded Dedutive Fault Simulation. The 3rd IFAC Workshop Discret Event System Design. Zielona Gora, Poland. 2006. P.25-29. 14. Хаханов В.И., Хассан Ктейман, Парфентий А.Н., Хаханова И.В. Встроенное аппаратное моделирование при проектировании SoC // Радиоэлектронные компьютерные системы. 2007. N° 8(27). С. 242 -246. 15. Active-HDL User's Guid. Second Edition. Copyright. Aldec Inc. 1999. 213p. 16. Hyduke S.M., Hahanov V.I., Melnikova O. V., HahanovaI.V. Hardware Emulation of Large Scale Boolean Equations Systems"// Electronic and Electrical Engineering. Kaunas: Technologija,
2005. Nr.3(59). P. 9-13. 17. Хаханов В.И., ХакХ.М. Джахирул, Масуд М.Д. Мехеди. Модели анализа неисправностей цифровых систем на основе FPGA, CPLD // Технология и конструирование в электронной аппаратуре. 2001. N° 2. С. 3-11. 18. Levendel Y.H., Menon P.R. Comparison of fault simulation methods - Treatment of unknown signal values // Journal of digital systems. 1980. Vol. 4. P. 443-459. 19. Хаханов В.И., Сысенко И.Ю. Дедуктивно-параллельный метод моделирования неисправностей на реконфигурируе-мых моделях цифровых систем // Радиоэлектроника и информатика. 2002. № 1. С. 95-105. 20. WangX., HillF.G., Mi Zh. A sequential circuit faulf simulation by surrogate fault propagation // Proc. IEEE International Test Conference. IEEE Computer society. 1989. P. 9-18. 21. Nishida T., Miyamoto S., Kozawa T., Satoh K. RFSIM: Reduced fault simulator // IEEE Transactions on computer-aided design. 1987. Vol. CAD-6, No 3. P. 392-402. 22. Хаханов В.И., Хак Х.М. Джахирул, Масуд М.Д. Мехеди. Модели анализа неисправностей цифровых систем на основе FPGA, CPLD // Технология и конструирование в электронной аппаратуре. 2001. № 2. С. 3-11. 23. Кривуля Г.Ф. Минимизация неполностью определенных переключательных фукнций с помощью граф-схем // АСУ и приборы автоматики. Х.: Вища школа, 1981. Вып. 57. С.87-96. 24. Автоматизация диагностирования электронных устройств/ Ю.В.Малышенко и др./ Под ред.В.П.-Чипулиса. М.: Энергоатомиздат. 1986. 216 с. 25. DensmoreD., PasseroneR., Sangbovanni-Vincentelly A. A platform-Based Taxonomy for ESL Design. IEEE Design and Test. Sept.Oct. 2006. P.359-374. 26. Charles H. Roth Jr. Digital Systems Design UsingVHDL. Boston: PWS Publishing Company, 1998. 470 c. 27. Virtex™-E 1.8 V. Field Programmable Gate Arrays. Production Product Specification. DS022-1 (v2.3) July 17, 2002. 324р.
Поступила в редколлегию 11.12.2006 Хаханов Владимир Иванович, д-р техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика вычислительных устройств, систем, сетей и программных продуктов. Увлечения: баскетбол, футбол, горные лыжи. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected] Хассан Ктейман, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: моделирование цифровых устройств. Увлечения: английский язык, гитара, путешествия. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected] Парфентий Александр Николаевич, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: техническая диагностика цифровых устройств и программных продуктов. Увлечения: баскетбол, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]
Хаханова Ирина Витальевна, канд. техн. наук, доцент кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и диагностика цифровых устройств. Увлечения: английский язык, гитара. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]