Научная статья на тему 'Верификация высокоуровневых моделей цифровых устройств'

Верификация высокоуровневых моделей цифровых устройств Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
90
20
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Е. Е. Сыревич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Е. Е. Сыревич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Пропонується стратегія верифікації моделей цифрових пристроїв, описаних за допомогою мов опису апаратури. Основна ідея лежить у генерації розрізняючих тестів для окремих функціональних елементів, їхньої суперпозиції й в інтерактивному обчисленні еталонних реакцій

Текст научной работы на тему «Верификация высокоуровневых моделей цифровых устройств»

цшноЧ Modeëi розпод1лу транзакцш. Дано ттерпретащю отриманих peçyëbmamie.

In the article the problems of modeling of transport communications of corporate network have been considered.

Two approaches to the problems of solution have been proposed: the construction of a model of data flow distribution on the basis of entropy maximization methods, as well as the usage of gravitation model of transactions distribution. The interpretation of received results has been given.

УДК 519.713

E. E. Сыревич

ВЕРИФИКАЦИЯ ВЫСОКОУРОВНЕВЫХ МОДЕЛЕЙ ЦИФРОВЫХ

УСТРОЙСТВ

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

ВВЕДЕНИЕ

В современной САПР РЭА основным способом описания устройств являются языки описания аппаратуры [1, 2]. С помощью языков описания аппаратуры (ЯОА), например VHDL или Verilog, проще и быстрее ввести и проверить проект в рамках САПР. 10 строками ЯОА можно описать как 1, так и 100000 триггеров. Описание устройств на ЯОА обладает рядом преимуществ. Проект на ЯОА - это объединение структуры цифрового устройства (ЦУ) и алгоритма его функционирования, одновременное описание ЦУ в статике и динамике. ЯОА - модель не требует дополнительного описания на человеческом языке и в виде схем, обладает высокой надежностью. Проект на ЯОА без труда переносится на другую элементную базу, например Altera FPGA или ASIC. Схема под конкретную элементную базу живет 2-4 года, а корректно написанный код на ЯОА может жить десятилетия. С помощью ЯОА можно описывать ЦУ на разных уровнях иерархии: алгоритмическом, структурном, регистровых передач и потоков данных, логическом и аналоговых схем.

Мировые компании по производству цифровых систем вынуждены постоянно сокращать время до попадания их продукции на рынок. А по оценкам производителей верификация, в том числе и функциональная, занимает до 80 % трудоемкости в цикле проектирования. Существует спрос на средства функциональной верификации моделей цифровых устройств на стадии их описания на поведенческом уровне с помощью конструкций языка VHDL.

Несмотря на обилие научных работ, связанных с верификацией и диагностикой цифровых устройств, в на© Сыревич Е. Е., 2006

74

стоящее время весьма актуальны и востребуемы рынком инструментальные средства автоматической генерации тестов для функциональных моделей сложных ЦУ. Дефицит автоматических генераторов нового поколения испытывают и известные фирмы: Aldec, Altera, Actel, Xilinx, Synopsis.

Таким образом, цель данной работы - разработка стратегии верификации моделей ЦУ на языках описания аппаратуры, которая позволит уменьшить временные затраты на проектирование ЦУ путем использования методов сужения области возможных тестовых значений при автоматической генерации тестов.

1 ПОСТАНОВКА ЗАДАЧИ

Исходя из поставленной цели, для ее достижения решаются следующие задачи:

1) разработка внутренней модели цифрового устройства, представленного на ЯОА VHDL в целях последующей верификации;

2) разработка метода сужения количества подаваемых тестовых наборов;

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

4) разработка методов оценивания качества верификации;

5) разработка информационного и методического обеспечения автоматического генератора тестов, поддерживающего стандарт VHDL.

Объектом исследования являются модели цифровых систем, проектируемые с помощью языков описания аппаратуры высокого уровня.

2 ВНУТРЕННЯЯ МОДЕЛЬ ДЛЯ

ВЕРИФИКАЦИИ

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

ISSN 1607-3274 «Радюелектрошка. 1нформатика. Управлшня» № 2, 2006

Е. Е. Сыревич: ВЕРИФИКАЦИЯ ВЫСОКОУРОВНЕВЫХ МОДЕЛЕЙ ЦИФРОВЫХ УСТРОЙСТВ

процедуры прямой и обратной импликации, и, собственно, алгоритм генерации тестов.

Предлагается композиционная модель устройства для верификации на основании описания устройства на ЯОА-коде, например VHDL. Код на ЯОА должен быть откомпилирован и ориентирован на синтез. VHDL-модель представляется двумя графами. Первый - информационный I-граф - описывает поток данных и их преобразование (подобно операционному автомату в классической композиционной модели с микропрограммным управлением) без учета условных ветвей. Второй граф соответствует цепочке условий.

Информационный I-граф содержит два типа вершин: операнды и функции. Типы функций ограничены синтезируемым подмножеством VHDL. Дуги соединяют вершины следующим образом: вершина-источник соединяется с функциональной вершиной, затем дуга выходит из функциональной вершины и входит в вершину-приемник. Дуги, которые входят в вершины-приемники, могут быть условные и безусловные. Условные дуги соответствуют операторам, которые находятся внутри условных конструкций VHDL. Условные дуги содержат метки. В свою очередь, второй граф (управляющий С-граф) содержит условные конструкции (например, case, if... then..., with ... select) из исходного описания цифрового устройства. Каждый предикат условия - подграф, с определенной меткой.

3 ПРИНЦИПЫ ВЕРИФИКАЦИИ

На сегодняшний день самый распространенный подход к верификации состоит в следующем [3]. Имеются модели М1 и М2, эталонная и верифицируемая соот-ветсвенно. Генерируются тесты для модели М1, и в результате моделирования М1 на полученных тестовых наборах определяются эталонные значения (аналогично процессу тестового диагностирования). Затем эти же тесты подаются на М2, их также моделируют и получают экспериментальные ответные реакции. Реакции моделей М1 и М2 сравниваются. Модель М1 эквивалентна М2, если реакции совпадают, и содержит ошибку в противном случае. Обычно модель М1 - это модель высокого уровня, а М2 - более низкого уровня, чем М1 (ближе к аппаратной реализации). М2 также может быть реальным физическим устройством [4].

В современных технологиях проектирования вместо реального физического устройства используется его представление на ЯОА. То есть в качестве М1 выступает спецификация, в качестве М2 — описание на ЯОА. Данные о разрабатываемом устройстве в спецификации могут быть представлены разными способами, чаще всего неформальными или частично формализованными. Автоматизировать процесс получения эталонных реакций по спецификации можно формализовав процесс получения информации из спецификации.

Это возможно с помощью языков описания спецификаций. Следовательно, верификация М2 сводится к формальному доказательству эквивалентности двух языковых моделей, что есть трудоемкой и не всегда однозначной задачей. Необходимо использовать другие способы верификации. Спецификация, представляющая собой частично формализованное задание закона функционирования устройства, содержит эталонные реакции в неявном виде, а иногда не содержит их вовсе. Разработчики утверждают, что именно такое задание спецификации наиболее распространено [4, 5].

Таким образом, при любом способе верификации по неформальному описанию основной оказывается задача вычисления явных эталонных реакций. Рассмотрим один из возможных способов вычисления эталонных реакций, связанный с уточнением спецификации.

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

Суммируя все вышесказанное, получим следующий обобщенные шаги алгоритма верификации:

1. Получить от инженера-разработчика откомпилированный ЯОА-код, описывающий устройство или его логически (функционально) законченный блок.

2. Выполнить построение тестов по полученному ЯОА-коду путем генерации последовательностей, различающих заданный оператор. Задать контрольные точки.

3. Возвратить полученные тесты инженеру-разработчику для вычисления соответствующих выходных значений и/или значений в заданных контрольных точках.

4. Выполнить моделирование сгенерированных тестов на ЯОА-коде в целях получения экспериментальных значений.

5. Сравнить значения, полученные при моделировании ЯОА-кода, и значения, полученные от инженера-разработчика.

6. При несовпадении сделать вывод об ошибках проектирования в ЯОА-коде.

4 ПОСТРОЕНИЕ ТЕСТОВ

Тест строится активизацией многоразрядных путей в 1-графе от внешних входов до соответствующих операторов обработки данных и от них до внешних выходов. В качестве элементарных тестов для операторов обработки данных будем использовать предварительно вычисленные различающие тестовые последовательности [6, 7].

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

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

Вводится понятие наблюдаемой точки, которая отличается от контрольной тем, что точное значение сигнала или переменной в этой точке вычислять нет необходимости. Контрольная точка же, во-первых, наблюдаема, а во-вторых, значения в контрольных точка вычисляются для некоторой последовательности тестов. Наблюдаемая точка - это выход каждого тестируемого оператора, а контрольная точка задается инженером-верификатором.

На внутренней модели тесты строятся по 1-графу. На каждую функциональную вершину необходимо подать различающую последовательность и провести реакции этой вершины к ближайшей наблюдаемой точке. Такой вершиной может быть внутренняя точка (переменная или сигнал) или выходная вершина. Таким образом, проверяется каждая функциональная вершина графа: на нее подается тест, а реакции проводятся до наблюдаемой точки. Подав тесты на каждую вершину и сравнив реакции в контрольных точках, заданных верификатором, можно, в случае несовпадения реакции, указать на вершину (вершины), в которых происходит искажения данных, вызванные неправильным применением оператора. А так как каждая функциональная вершина соответствует оператору языка, то для разработчика будет указан неправильный оператор или фрагмент кода.

Чтобы различить операцию «плюс» из подмножества арифметических операций {плюс, минус, умножить, разделить}, необходимо на один из входов примитива подать ноль, а на другой вход - значение больше единицы. Далее разбиваем на подмножества {плюс, минус} и {умножить, разделить} таким образом: если результат на предыдущем шаге равен 0, то отнесем тестируемый функционал в подмножество {умножить, разделить}; если не равно 0, то {плюс, минус}. Подаем

на входы одинаковые значения, большие единицы. Если значение не равно 0, то примитив - операция сложения.

Если строить тесты полным перебором всех данных на всех входных сигналах [2], то общая длина минимального полного теста составляет 2п, где п - общая размерность множества входных сигналов, при условии подачи стабильных 0 и 1. Кроме того, при ориентации на синтез необходимо учитывать то, что на целочисленные сигналы выделяется 32 разряда, если не указан их диапазон. Кроме этого, необходимо организовать пути продвижения значений от функциональных примитивов до внешних выходов, что дает разрастание количества тестовых векторов. Путем использования методики генерации различающих векторов достигается эффект сужения области тестовых последовательностей [8].

5 ОЦЕНКА КАЧЕСТВА ВЕРИФИКАЦИИ

На основе перечня функциональных режимов строится граф режимов, обход которого и дает представление о качестве верификации. Спецификация на устройство задается в неформальном виде, словесной форме. Из спецификации можно выделить функциональные режимы. Каждый набор тестовых векторов также соответствуют режиму работы ЦУ. Таким образом, последовательность наборов входных вектров, полученных после построения тестов, позволяет задать путь обхода графа.

Определим количественную оценку качества теста [1].

/■пров

О = { *100%,

' спец ' доп

где /спец - режимы из спецификации, / - внесенные спец доп пров

в спецификацию дополнительные режимы, /код -проверенные режимы в коде. Применение подобной оценки позволит дать количественную оценку качества проведенной верификации.

ЗАКЛЮЧЕНИЕ

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

Практическая польза от предложенной стратегии состоит в том, что она позволяет верифицировать описание ЦУ на ЯОА-коде и сделать вывод о его соответствии спецификации на функциональном уровне.

76

1607-3274 «Радюелектрошка. 1нформатика. Управлшня» № 2, 2006

В. И. Хаханов, А. Н. Парфентий, Хассан Ктейман, Bade Гриби: HEDEFS - ПРОГРАММНО-АППАРАТНАЯ СИСТЕМА МОДЕЛИРОВАНИЯ НЕИСПРАВНОСТЕЙ

ПЕРЕЧЕНЬ ССЫЛОК

1. S. Tasiran, K. Keutzer Coverage Metrics For Functional Validation Of Hardware Designs // leee Design & Test Of Computers. - 2001. - July-August. - P. 36-45.

2. Иан Соммервилл. Инженерия программного обеспечения, 6-е издание.: Пер. с англ. - М.: Издательский дом «Вильямс», 2002. - 624 с.

3. F. Corno Et Al, Automatic Test Bench Generation For Validation Of Rt-Level Descriptions: An Industrial Experience IN PROC. - IEEE DATE, 2000. - PP. 385-389.

4. Головач В., Белышкин А. Проектирование интерфейса как часть разработки ТЗ // Мир ПК. - 2000. C№ 7. -C. 18-24.

5. Боуэн Джонатан П., Хинчи Майкл Дж. Десять заповедей формальных методов // Мир ПК. - 1997. - № 9. -C. 45-48.

6. Рустинов В. А, Сыревич Е. Е., Сыревич А. В. Интервальный метод представления многоразрядных операндов для выполнения импликации при синтезе тестов верификации // Всеукраинский межведомственный НТС «Автоматизированные системы управления и приборы автоматики». Выпуск 122. - Харьков, 2003. -C. 96-103

7. Рустинов В. А., Сыревич Е. Е,, Сыревич А. В., Чегли-ков Д. И. Процедуры импликации на арифметических операциях при синтезе тестов верификации // Ра-диэлектроника и информатика. Выпуск 130. - Харьков, 2005. - C. 21-26.

8. Krivulya G., Syrevitch Yev., Karasev A., Krasovskaya A. Hdl-Models Verification Strategy // Proceedings of the International conference TCSET'2006, February 28-March 4, 2004, Lviv-Slavsko, Ukraine. - C. 570-573.

Надшшла 23.03.06 Шсля доробки 12.05.06

Пропонуеться страте?ля верифтацп моделей цифровых npucmpoïe, описаних за допомогою мов опису апаратури. Основна 1дея лежить у генераци розр1зняючих mecmie для окремих функцioнальнuх eлeмeнmiв, ïхньoï cуnepnoзuцiï й в ттерактивному обчислент еталонних реакцш.

Verification strategy of digital devices models, which are represented with the help of hardware description languages. The main idea stays in distinguishing sequence generation for separate functional elements, their superposition, and interactive ethalon calculation.

УДК 519.713:681.326

В. И. Хаханов, A. H. Парфентий, Хассан Ктейман, Ваде Гриби

HEDEFS - ПРОГРАММНО-АППАРАТНАЯ СИСТЕМА МОДЕЛИРОВАНИЯ НЕИСПРАВНОСТЕЙ

Прedлaгaeтся программно-аппаратная реализация dedyu-тивно-параллельного топологического мeтоda Modeë^o-вания неисправностей HEDEFS - Hardware Embedded DEductive Fault Simulation, который использует ad hoc технологии анализа схodящихся разветвлений, обратного мodeлирoвaния deфeктoв, тeстoпригodнoгo преобразования схем, ориентированного на обработку цифровых проектов большой размерности вентильного и регистрового уровней описания. Прedстaвлeны структурные аппаратные решения dля реализации мeтoda при оценке качества генерируемых тестов.

ВВЕДЕНИЕ

Необходимость существенного повышения быстродействия средств моделирования для анализа качества тестов определяется возрастающей сложностью проектируемых цифровых систем на кристаллах, насчитывающих миллионы вентилей. Существующие средства моделирования неисправностей ведущих фирм мира, таких как: Cadence, Mentor Graphics, Synopsys, затрачивают на анализ цифровой системы, размерностью порядка миллионов вентилей, несколько часов (рабочая станция с частотой и оперативной памятью в 0,5 ГГц и 0,5 Гбайт). Для проектировщика такие затраты являются весьма значительными. Предлагаемые модели, алгоритмические и аппаратные решения ориентированы на существенное повышение быстродействия средств © Хаханов В. И., Парфентий А. Н., Хассан Ктейман, Ваде Гриби, 2006

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

Объект тестирования - цифровая система, импле-ментируемая в кристаллы ASIC или PLD, спецификация которой представлена на языке VHDL.

Цель исследования - аппаратная реализация быстродействующего дедуктивного метода моделирования константных неисправностей HEDEFS - Hardware Embedded DEductive Fault Simulation для оценки качества синтезируемых тестов цифровых систем, импле-ментируемых в кристаллы, содержащие миллионы вентилей.

Задачи исследования: 1) разработка модели дедуктивно-параллельного анализа сходящихся разветвлений (СР); 2) реконфигурирование модели устройства для эффективного обратного моделирования неисправностей; 3) разработка модели дедуктивно-топологического анализа неисправностей древовидных структур (ДС); 4) структурная аппаратная реализация дедуктивно-параллельного метода моделирования неисправностей сходящихся разветвлений; 5) Тестирование и верификация программно-аппаратного продукта HEDEFS.

В основу предлагаемого метода положены: работы, связанные с повышением быстродействия моделирования дефектов [1-3], дедуктивная модель транс.портирова-

i Надоели баннеры? Вы всегда можете отключить рекламу.