РАЗДЕЛ 2
Модель цифрового устройства для верификации
2.1. Модель процесса обработки данных в ЦУ
Процесс построения тестов верификации основывается на следующих составляющих:
модель ЦУ, позволяющая выполнять процедуры прямой и обратной импликации; ошибки
проектирования, характерные для ЯОА-моделей; алгоритм генерации тестов; способы
оценки качества верификации. Как будет показано в разделе 3, верификация
моделей на ЯОА тесно связана с проверкой процесса обработки данных. Для
отображения процесса обработки данных в ЦУ предлагается модель ЦУ в виде
композиции информационного и управляющего графов.
2.1.1. Графовая модель цифрового устройства. С учетом особенностей
функциональной верификации моделей ЦУ на основе описания их на ЯОА, адаптируем
классическую концепцию композиционного устройства. Неспецифическое
(нешаблонное) описание ЦУ на ЯОА представляет собой некоторый код, реализующий
алгоритм обработки данных. Код описания – это набор операторных конструкций ЯОА
и операндов. Если поставить в соответствие операторным конструкциям –
комбинационную схему Ф, реализующую микрооперации, и комбинационную схему Ш,
вычисляющую значения логических условий, а операндам – память S, то можно
сказать, что такой код описывает ОА.
В модели ОА число примитивных элементов, участвующих в комбинационных схемах Ф
и Ш, ограничено набором операторов ЯОА, а для генерации тестов можно
использовать процедуры активизации путей в модели устройства, подобные
процедурам активизации в структурных методах. Опишем модель ОА, исходя из его
внешнего представления на ЯОА типа VHDL. Типичное представление модели
устройства на VHDL содержит как минимум два типа языковых конструкций: операнды
и операторы. Операнды могут быть сигналами и переменными. Сигналы делятся на
входные, выходные и внутренние. Переменные могут быть только внутренними.
Операторы подразделяются на два основных типа: исполняемые и управляющие.
Отметим, что данная модель ориентирована на синтезируемое подмножество VHDL. К
синтезируемому подмножеству относятся: все логические операторы, операторы
сравнения, операторы сложения/вычитания/умножений и деления, параллельные
операторы выбора и условия, условные операторы, циклы с фиксированным
количеством повторений и т.д.
Язык описания цифровых систем значительно отличается от традиционных языков
программирования. И хотя раньше программы моделирования цифровых систем писали
на языках Си или Паскаль, их разработчикам понадобились новые функции, операции
и типы данных, поддержка которых и обеспечивается конструкциями языка VHDL.
Если рассматривать язык VHDL с точки зрения создания моделей ЦУ, то большинству
его конструкций и структур можно поставить в соответствие структурные,
функциональные и физические характеристики цифровых систем. Принимая во
внимания особенности ЯОА, необходимо разработать адекватную модель описания
устройства на ЯОА. Такая модель должна удовлетворять следующим требованиям.
Трансформация в модель из ЯОА простая и однозначная.
Модель должна обеспечивать возможность моделирования и обратной импликации.
Количество типов элементов в модели конечно.
Модель должна позволять разработать адекватные модели неисправностей (ошибки
проектирования) и диагностику на основе результатов тестирования.
Впервые модель информационного графа для микропрограммных ЦУ была предложена в
1995 г. Тарановим В.Б. и Кулак Э.Н. в Харьковском техничном университете
радиоэлектроники [108]. Тогда модель состояла из трех графов и использовалась
для органицации встренного тестирования. Визуально графовая модель была похожа
на сеть Петри с расширенными функциональными возможностями. В диссертационной
работе впервые предлагается модель ЦУ в виде графовой модели, которая адекватно
представляет процесс обработки данных, выполняемым цифровым устройством. ЦУ
представляется в виде двух графов. Первый – информационный – описывает поток
данных и их преобразование (подобно операционному автомату в классической
композиционной модели с микропрограммным управлением) без учета условных
ветвей. Второй граф соответствует цепочке условий, при выполнении которых
выполняется тот или иной оператор.
Информационный I-граф содержит два типа вершин: операнды и функции. Типы
операндов: целые числа integer, беззнаковые вектора типа bit и std_logic. Типы
функций ограничены синтезируемым подмножеством VHDL. Дуги соединяют вершины
следующим образом: вершина, соответствующая входному операнду и ставшая
источником, соединяется с функциональной вершиной, затем дуга выходит из
функциональной вершины и входит в вершину, соответствующую выходному операнду и
ставшую таким образом приемником. Дуги, исходящие из функциональных вершин и
входящие в вершины-приемники, могут быть условные и безусловные. Условные дуги
соответствуют операторам, которые находятся внутри условных конструкций VHDL.
Условные дуги содержат метки, кодирующие условие срабатывания перехода по
дуге.
В свою очередь, второй граф (управляющий С-граф) содержит условные конструкции
(например, case, if...then..., with … select) из исходного описания ЦУ. С-граф
– это альтернативный граф с 2-мя типами вершин: условия и метки. Вершины
условий содержат вычисляемые условия. Вершины меток – конечные, не имеющие
входной дуги. Эти вершины содержат имя метки. Результат моделирования С-графа –
набор меток (метка), по которым необходимо сделать переходы в I-графе.
Например, выражение if reset=1 then… представляется следующим образом. Имя
выражения – E1, имя метки – L1. Подграф будет выглядеть следующим образом: ,
где E1 соответствует выражению reset=1.
На рис. 2.1 приведен пример описания D-триггера с пр
- Киев+380960830922