Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Скобцовы Моделирование и тестирование

.pdf
Скачиваний:
97
Добавлен:
03.03.2016
Размер:
3.61 Mб
Скачать

также является системой интерпретативного типа. Основные улучшения

заключаются в следующем:

добавлен новый алгоритм моделирования одиночных константных неисправностей, реализующий стратегию одиночного по наборам параллельного распространения неисправности (SPSFP);

добавлен алгоритм параллельного моделирования функциональных неисправностей;

добавлен алгоритм генерации тестовых наборов, основанный на генетических алгоритмах;

изменена структура данных, позволяющая хранить связные списки неисправностей и состояний;

полностью изменён пользовательский интерфейс;

за счёт смены инструментальной платформы на MS WINDOWS

преодолено ограничение на размер обрабатываемых схем.

Рис.9.1 Главное меню системы.

411

Управление системой интерактивное и реализовано в виде системы меню. После запуска головной программы на экран выводится главное меню, которое позволяет выбрать схему и задать режимы дальнейшей работы (рис.9.1). Главное меню также отображает основную структуру

системы.

9.2 Структуры данных

Система АСМИД-Е является системой интерпретативного типа и для описания схем использует систему связанных таблиц. Основная структура данных системы была представлена из каталога ISCAS89 [45] в разделе 2

на рис.2.20 на примере схемы S27.ben (рис.1.11) и состоит из трёх таблиц:

TYPES (размерности NUM_TYPES)– описывает типы элементов,

встречающихся в схеме;

EL (размерности NUM_EL)– описывает все элементы схемы;

LINKS (размерности NUM_CONT) – таблица связных списков контактов.

Каждая строка таблицы TYPES соответствует одному типу встречающегося в схеме элемента. Для каждого типа она описывает: число входов (поле N_IN), число выходов (N_OUT), число портов (N_PORT),

число элементов состояний (N_SOST), идентификатор типа (ID) и название типа (NAME_TYPE). Базовыми логическими типами элементов являются: AND, NAND, OR, NOR, XOR, NXOR, NOT, DFF, BUFF (для первых шести базовых типов также возможны варианты с различным числом входов).

Каждая строка таблицы EL описывает один элемент схемы и содержит такие поля:

имя элемента (поле NAME_EL);

ссылка на таблицу контактов (R_LINKS), являющаяся номером строки в таблице LINKS, начиная с которой описываются контакты

412

данного элемента;

− ссылка на таблицу типов элементов (R_TYPES) – номер строки в таблице TYPES, в которой описывается тип данного элемента.

В таблице LINKS хранится информация о контактах схемы. Каждому элементу схемы в таблице отведена зона контактов, ссылка на которую записана в поле R_LINKS строки описания элемента таблицы EL. В начале зоны идут выходные контакты элемента, а затем входные. Внешние выводы схемы представляются особым типом элементов: внешний вход имеет только выходной контакт (и не имеет входного), а внешние выход только входной контакт (и не имеет выходного). Каждая строка таблицы

LINKS описывает один контакт схемы и содержит следующие поля:

R_EL - ссылка на строку описания элемента в таблице EL;

FLAG - различные признаки, которые хранятся в битовой форме и необходимы в процессе моделирования: признак принадлежности неисправности на данном контакте текущей группе неисправностей,

признак вход/выход элемента и т.д.;

SV - хранит значение сигнала на данном контакте. Для кодирования

спомощью многозначных алфавитов содержит несколько компонент: для

3-значного алфавита 2 компоненты, для 16-значного – 4 компоненты кодирования.

CONT – поле, в котором хранится ссылка на следующий контакт в узле. Информационная избыточность (значения сигнала в узле схемы хранится для каждого контакта) позволяет существенно уменьшить число пересылок при подготовке элемента к моделированию, что существенно ускоряет процесс моделирования.

Основные изменения в структуре данных версии АСМИД-Е связаны с новым способом представления неисправностей и хранением списка неисправностей. Кодирование основных типов вентилей показано в

413

табл.9.1. Индексы от 1 до 9 присваиваются исправным вентилям. Индексы

20 и более зарезервированы для неисправных вентилей.

struct неисправность_элемента

{

int бит; // номер бита, в котором моделируется неисправность int элемент; // номер элемента в схеме (индекс по таблице EL) int контакт; // номер контакта в схеме (индекс по таблице LINKS) char неисправность; // =’0’ для неисправности const0

// =‘1’ для неисправности const1

int тип_вентиля; // настоящий тип вентиля (индекс по таблице TYPES) struct неисправность_элемента; * следующая // указатель на следующую

// неисправность для данного элемента, если есть

}

Рис.9.2 Структура представления неисправности одиночного вентиля.

Таблица 9.1

Индекс функции

Тип вентиля

 

 

1

НЕ

2

И-НЕ

3

ИЛИ-НЕ

4

И

 

 

5

ИЛИ

6

Исключающее-ИЛИ

7

Исключающее-ИЛИ-НЕ

 

 

8

буфер

 

 

9

D-триггер

20 и более

неисправные вентили

Для неисправного логического элемента создаётся новый фиктивный тип вентиля. Его индекс равен: 20+<номер бита>, в котором моделируется неисправность для вывода вентиля. Настоящий тип вентиля, а также описание неисправности хранятся в специальной структуре, которая

414

представлена на рис.9.3). При моделировании нескольких неисправностей для одного вентиля структуры данного вида объединяются в связный список, «прикрепляемый» к соответствующему вентилю (рис.9.3). Данные списки неисправностей вентилей создаются и уничтожаются динамически в процессе моделирования на каждой итерации работы алгоритма моделирования. При этом список содержит только данные о неисправностях, непроверенных к текущему моменту модельного времени.

Рис.9.3 Структура данных для представления функциональных неисправностей.

Рис.9.4 Хранение списков неисправностей.

415

Полный список неисправностей (рис.9.4) также хранится в связном списке, позволяющем эффективное перемещение и обработку. При этом с каждой неисправностью в списке ассоциируется дополнительный список состояния схемы. Он содержит значения для всех определённых линий обратных связей, что необходимо для восстановления внутреннего

состояния последовательностной схемы при моделировании.

9.3 Ввод схем

Система позволяет два способа ввода логической схемы:

графический и текстовый. Для графического описания схемы используется графический редактор системы PCAD. Средствами системы PCAD

графическое описание схемы транслируется в файл, хранящий

информацию о связях элементов схемы. Далее с помощью внешнего транслятора данное описание ДУ транслируется во внутренний формат системы АСМИД-Е (файл *.out), который содержит полную информацию об элементах схемы, их связях и характеристиках и используется в дальнейшей работе. Текстовый ввод осуществляется программой Trans89 (рис.9.5).

Рис.9.5 Текстовый ввод схем программой Trans89

416

Он используется в основном для работы со схемами из международных каталогов ISCAS-85 и ISCAS-89 [80,81]. Эти каталоги содержат наборы схем, на которых по международным стандартам принято апробировать новые методы моделирования и генерации тестов. Обычно в данные каталоги включаются труднотестируемые схемы. Трансляторы осуществляют преобразование текстового описания схемы во внутреннее представление. В качестве примера выше приведено в разделе 1 описание схемы S27 из каталога ISCAS-89 в графическом (рис.1.11) и текстовом

(рис.1.12) виде.

9.4 Моделирование исправных схем

Для моделирования исправной схемы необходимо наличие двух файлов: описания схемы (*.out) и тестов (*.tst). Результатом моделирования исправной схемы являются значения сигналов на всех линиях в каждый момент модельного времени. Они записываются на диск в специальном формате (файл *.rea) и доступны пользователю в меню Просмотр результатов”. Пример вывода временных диаграмм показан на рис.9.6.

Рис.9.6 Просмотр временных диаграмм

417

Логическое моделирование исправных схем реализовано методом событийного моделирования в многозначных алфавитах (мощность алфавита достигает 16).

Реализованные алгоритмы позволяют выполнить моделирование работы исправной схемы с различными задержками и поддерживают следующие опции: моделирование в 3-значном алфавите; моделирование в

16-значном алфавите; моделирование с анализом состязаний (как в 3-

значном, так и в 16-значном алфавитах).

9.5 Моделирование схем с неисправностями

Далее полнота тестового набора может быть проверена с помощью программ моделирования с неисправностями в 16-значном и 3-значном алфавите. Если ДУ моделируется первый раз, то для работы программы моделирования необходимы два файла: файл описания схемы (*.out) и

файл теста (*.tst). Результатом работы программы являются полнота теста

(условная полнота), файл значений сигналов исправной схемы (*.rea),

список непроверяемых неисправностей (*.f). Если же ДУ моделируется не первый раз (проверка усиленноготеста), то дополнительно используется файл со списком неисправностей, не проверенных предыдущим тестовым набором. В этом случае список неисправностей, подлежащих моделированию, формируется из данного файла. В системе реализовано два алгоритма моделирования схем с неисправностями:

алгоритм параллельного по неисправностям моделирования константных неисправностей в 3-х и 16-и значных алфавитах;

алгоритм моделирования одиночных константных неисправностей,

реализующий стратегию одиночного по наборам параллельного

распространения неисправности (рис.9.7).

418

Рис.9.7 Программа моделирования схем с неисправностями

Дополнительно в программах используются следующие методы ускорения процесса моделирования: статическая и динамическая сортировка неисправностей, функциональное внесение неисправностей.

9.6 Генерация тестов

Для работы программ генерации тестов необходимо наличие файла описания схемы во внутреннем формате (файл *.out, получаемый после трансляции схемы). Для генерации проверяющих тестов реализовано два основных метода:1) GenTest – программа, реализующая генетический алгоритм; 2) Enchanced – улучшенный псевдослучайный метод

Результатом работы программы генерации тестов является файл с расширением *.tst и именем как у исходной схемы (например, c17.tst).

Программы позволяют задать несколько общих параметров: требуемую полноту теста, ограничение на длину теста и число попыток. Последний параметр задаётся только для генетического алгоритма, задавая максимальное число проходов по списку неисправностей. Дополнительно

419

каждая программа имеет свои параметры. Например, для программы

Gentest (рис.9.8) их число доходит до 13, позволяя проводить точный подбор значений параметров для трудно тестируемых схем.

Рис.9.8 Программа генерации тестовых наборов на основе генетического алгоритма

9.7 Просмотр результатов

Просмотр результатов работы всех программ осуществляется модулем Viewer (рис.9.9). Он реализует следующие режимы:

просмотр таблиц описания схемы;

просмотр файла тестовых наборов для выбранной схемы;

просмотр временных диаграмм работы схемы;

просмотр текстового описания схемы;

просмотр параметров наблюдаемости и управляемости схемы;

просмотр отчётов программ моделирования и генерации тестов:

полнота и условная полнота тестовых последовательностей, время работы

420