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

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зайченко Сергей Александрович, Чумаченко Светлана Викторовна

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Зайченко Сергей Александрович, Чумаченко Светлана Викторовна

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

DRTLQ-model for functional verification of digital systems on the basis of linear temporal logic

The analytical model of verification which is characterised using dynamic register turns for the analysis tempolal assercies in the course of modelling of tests for digital systems on crystals that provides high speed of modelling and the set diagnosing depth of code errors is offered.

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

УДК 681.326:519.613

С.А. ЗАЙЧЕНКО, С.В. ЧУМАЧЕНКО

DRTL Q-МОДЕЛЬ ДЛЯ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ ЦИФРОВЫХ СИСТЕМ НА ОСНОВЕ ЛИНЕЙНОЙ ТЕМПОРАЛЬНОЙ ЛОГИКИ

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

1. Введение

Актуальность исследования. Специализированные и стандартизованные системы, согласно топ-десятке от Gartner Research Group, есть одно из главных направлений развития рынка электронных технологий. Оно определяется существенными инвестициями со стороны ведущих компаний планеты, формирующих индекс NASDAQ, включая Intel, Xilinx, Apple, которые предлагают интересные решения в виде планшетов, телекоммуникационных и DSP изделий. Данные компании ориентируются на дальнейшее развитие сегмента рынка, основанного на предоставлении новых сервисов со стороны компактных и энергосберегающих цифровых систем на кристаллах с годовым выпуском более 2,5 миллиардов.

Вентильная мощность силиконового кристалла, составляющая до 1 млрд транзисторов, заставляет производителей искать новые эффективные пути системного и RTL- проектирования, тестовой и временной верификации, а также синтеза функциональных модулей на основе языков System Verilog и Verilog с использованием IEEE стандартов тестопригодного проектирования и новейших ESL Design технологий. Что касается проектирования цифровых проектов, то здесь следует выделить наиболее сложный и дорогостоящий этап современного цикла проектирования - функциональная верификация, как процесс поиска, обнаружения и устранения ошибок системной модели относительно спецификации, который составляет до 70% общего времени создания проекта. Для достижения качества проекта, удовлетворяющего требованиям рынка электронных технологий, ведущие компании координируют свои действия по созданию и внедрению современных технологий тестирования и верификации, которые формируют инфраструктуры тестопригодного проектирования моделей системного регистрового и вентильного уровней описания проекта. Такие действия приводят к повышению эффективности проектирования под эгидой специализации и стандартизации решений, определяемых совместным использованием трех взаимно противоречивых параметров: качество, быстродействие, аппаратурные затраты.

Таким образом, исследование направлено как на создание новых моделей и методов верификации, так и на эффективное устранение ошибок , связанных с: 1) ошибками, допускаемыми инженерами в системной модели, тестах и спецификации в процессе проектирования; 2) несовершенством средств диагностирования в системах автоматизации, затрудняющих локализацию и устранение причины возникновения ошибки; 3) недостаточной производительностью и точностью программных систем автоматизации, качество которых растет существенно медленнее увеличения сложности обрабатываемых моделей. Комплексное решение проблемы верификации системных моделей позволит в значительной степени снизить затраты на проектирование цифровых систем на кристаллах. Согласно исследованиям ведущих мировых компаний в области EDA (Cadence Design Systems, Synopsys Inc., Mentor Graphics Corporation, Magma, IBM, Intel, Sun Microsystems, Cisco Systems Inc., Atrenta, Aldec Inc.) усилия ученых должны быть сосредоточены на создании эффективных методов верификации, способных: 1) в десятки раз снизить вероятность возникновения ошибок за счет уменьшения участия человека в процессе проектирования; 2) обеспечить обнаружение и диагностирование допущенных неточностей на ранней стадии проектирования в целях сокращения времени и стоимости устранения несоответствий спецификации; 3) на порядок повысить производительность и надежность систем верифи-

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

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

Для достижения цели необходимо решить следующие задачи: 1. Разработать математическую аналитическую модель верификации цифровых систем на основе использования динамических регистровых очередей для анализа ассерций линейной темпоральной логики. 2. Спроектировать эффективные структуры данных и разработать модель процесса верификации, осуществляющих подготовительную обработку языковых описаний ассерций и их проверку в рамках цикла имитационного моделирования системы на кристалле в ИБЬ-симуляторе.

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

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

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

Источники: алгоритмы перехода от традиционных моделей конечных автоматов к структурам Крипке и алгоритмы обратного перехода [1, 2], основы темпоральной логики [3], автоматы БисЫ [4-7], алгоритмы и модели минимизация автоматов [8-10], темпоральные ограничения при имитационном моделировании системы (симуляции) [11], методы формальной верификации [12, 13].

2. Модель динамических регистровых очередей

2.1 Основные элементы модели динамических регистровых очередей. Типичная математическая база анализа ассерций во время симуляции, состоящая в трансформации операторов ЬТЬ-логики к детерминированным конечным автоматам:

А = {Х^о^, д},

(где £ - алфавит системы, Q - множество всех состояний автомата, до е Р - единственное начальное состояние, Б с Р - множество конечных состояний, д: Р х £ - функция переходов), лишь частично способна удовлетворить основные требования к верификации на основе ассерций. Основной проблемой классической модели является экспоненциальный рост количества состояний в зависимости от структурной сложности реализуемой темпоральной формулы. Кроме того, накладывается существенное ограничение на языки описания ассерций в виде простого подмножества, поскольку классическая модель неспособна осуществить проверку ряда темпоральных конструкций с приемлемой для практического применения вычислительной сложностью. Поддержка введенного в [14] режима глобального времени практически невозможна на основе модели конечных автоматов.

Очевидно, для обеспечения существенно лучшей производительности анализа ассерций и поддержки темпоральных операторов, определяемых для бесконечных вычислительных путей, необходима принципиально иная модель. Такими свойствами обладает предлагаемая в данном исследовании модель динамических регистровых очередей (БЯТЬР -

Dynamic Register-Transfer-Level Queues). Модель ориентирована на высокопроизводительный анализ элементов линейной темпоральной логики и эффективность обнаружения и локализации нарушений. Ключевые понятия, вводимые в модели, представляют собой обобщенную надстройку над общеизвестными терминами LTL и языков описания ассерций.

Модель DRTLQ можно логически разделить на четыре взаимодействующих уровня, соответствующих трем уровнями в языках описания ассерций, определенным в [14] (рис. 1).

Рис. 1. Уровни модели DRTLQ в контексте уровней семантики ассерций

Наиболее общим понятием модели DRTLQ является ассерционный процесс - совокупность элементов булевого, темпорального и верификационного уровня семантики ассерций, реализующая верификацию логически связанной группы темпоральных утверждений. Наиболее близким к ассерционному процессу языковым термином является единица верификации (verification unit) из языка PSL. Ассерционным процессом AP в модели DRTLQ называется целостная совокупность множества верификационных переменных в, списка текущих потоков активации Q, очереди последовательностью функций F и темпоральных свойств р, одного ассерционного монитора M, как правило, относящаяся к определенному функциональному блоку системы и реализующая верификацию логически связанной группы темпоральных утверждений в процессе моделирования:

AP = {B, Q,F,P,M}. (1)

Ассерционный монитор M в модели DRTLQ - вершина темпорального утверждения в ассерционном процессе, осуществляющая верификацию некоторого одного темпорального свойства и управление обработкой результата этой верификации в рамках родительского тест-бенча. Главной задачей ассерционного монитора является обеспечение задаваемой тест-бенчем реакции на результат верификации темпорального утверждения.

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

Атомарным объектом анализа ассерций в модели DRTLQ является верификационная переменная b е B - любой объект верифицируемой системы, текущее значение или состояние которого используется как операнд темпоральных соотношений в рассматриваемом ассерционном процессе и тем или иным преобразованием может быть приведено к булево-му типу {0, 1}.

В качестве верификационной переменной может выступать как элементарный объект верифицируемой модели - константа (параметр), скалярный или векторный сигнал, переменная встроенного типа, так и сложные объекты, такие как выражения, функции, объекты классов.

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

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

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

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

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

- абстрактное понятие перманентной истины и лжи (булевы константы, используемые для реализации семантики более сложных операторов);

- признак окончания анализа заданной последовательности событий (понятие endpoint в языке PSL, встроенные функции ended/matched языков SystemVerilog и OVA);

- локальные переменные ассерционного процесса (SystemVerilog).

Вычислительные процедуры, осуществляющие анализ темпоральных операторов в ас-

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

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

2.2. Потоки активации и транспортирование событий. В моменты изменения верификационные переменные создают события:

e = {e^,e,P,tb,ta} , (2)

где e ^ - связи события с другими событиями; р - характеристический вектор

события; t b и t a - время создания и активации события соответственно, измеряемое в количестве тактовых событий с момента начала моделирования.

Событие называется активированным, если в ходе обработки оно достигло элемента ассерционного процесса, создающего поток активации. Поток (или кольцо) активации юk е ^ в модели DRTLQ - динамическое множество всех обрабатываемых событий ek, i > 0,k > 0, соответствующих одному вычислительному пути п, начинающемуся с некоторого тактового цикла с порядковым номером k .

Событие может быть связано с другими событиями в двух различных видах цепочек. Правая цепочка r^., формируемая двунаправленными событийными связями e ^^ , e^^., соответствует событиям, связанным одним кольцом активации. Основная цель связывания событий в правые цепочки состоит в возможности каскадных операций над всем потоком (например, уничтожение при завершении потока). Левая однонаправленная цепочка r^, формируемая событийными связями e ^, соответствует событиям различных колец активации, которые одновременно транспортируются через выбранный элемент модели. Правая цепочка неупорядочена, она формируется свободно, здесь порядок не играет никакой роли, а левая цепочка упорядочена по времени создания события, что принципиально важно для конвейерной обработки нескольких потоков активации. Наглядно цепочки событий можно изобразить на рис. 2.

Характеристический вектор события р - короткое двоичное слово, транспортируемое в составе события, индивидуальные биты которого моделируют семантические флаги-модификаторы, оказывающие влияние на обработку события. Важнейшие флаги-модификаторы представлены в табл. 1.

Рис. 2. Цепочки событий в модели БЯТЬр

Таблица 1. Компоненты характеристического вектора события

Обозначение Описание

р VAL Текущее значение события

р LDEAD Событие должно быть отделено от левой цепочки

р RDEAD Событие должно быть отделено от правой цепочки

р ACTIVE Событие активировано

р RTOP Событие является вершиной потока активации

р ABORT Событие исходит от элемента прерывания анализа

В ассерционном процессе всегда существует не более одного потока активации, соответствующего некоторому определенному начальному моменту времени. Одновременно может существовать несколько потоков активации, однако все они будут относиться к вычислительным путям, соответствующим различным начальным моментам. Событие может принадлежать не более чем одному потоку активации. Активированное событие всегда относится к единственному потоку активации. Если событие не относится ни к одному потоку активации, оно не является активированным. Моменты t^ и ta в общем случае могут не совпадать (в частности, при анализе операторов последовательностной импликации), но для большинства простых темпоральных формул t^ = ta. В ряде случаев событие может не быть активировано в течение своего существования, если путь его обработки носит вспомогательный характер для анализа определенного потока активации. Активация события осуществляется первым элементом на пути обработки события, удовлетворение критерия работы которого позволяет производить дальнейший анализ вычислительного пути.

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

текущим значением рVAL = 1, достигающее некоторой контрольной точки в модели, опровергает утверждение в целом. Лишь в случае, если все события потока активации на пути обработки при достижении контрольной точки имели значение рVAL = 0 , опровергающее утверждение удовлетворяется успешно. Если целью верификации является, наоборот, доказательство определенного поведения системы, то критерии удовлетворения потока активации диаметрально противоположны: первое событие, достигающее контрольной

VAL п

точки с текущим значением р = 0 , опровергает утверждение, и лишь успешное завершение всех альтернативных событий потока активации со значением рVAL = 1 говорит о достоверности утверждения.

Транспортирование событий осуществляется путем перегруппировки левых цепочек. Левые цепочки ассоциируются с элементами модели более высокого уровня, формирую-

щими пути транспортирования событий. Пусть : (е| " } представляет собой левую

цепочку, из которой транспортируются события, а :{е^ } - левую цепочку, к

п '2 2 1 2 которой они направляются. Суть задачи простого г^ : г^ и г^ и копирующего транспор-

,2 2 1 2 тирования г^ : к(г^) и к(г^) состоит в корректном расширении цепочки г^ событиями

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

е ^ (е02) = е;

Ук,1 < к <| г^^ | -1,ек2-1 = е^ (ек2) ^ ^(е^) < 1Ь (е^2).

(3)

Слияние цепочек событий происходит начиная с правого края с одновременным итерированием в единственно допустимом направлении, при этом не теряется позиция вставки,

1 2

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

1 2 2 ет г^ и перезаписывает результатом г^ цепочку г^.

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

1. Если р= 1, т.е. вычислительный поток события уничтожен, событие должно быть отключено от левой цепочки и уничтожено. Гарантируется, что событие с установленным флагом р будет уничтожено при первой же попытке транспортирования; соответственно, можно утверждать, что для любого события целевой цепочки р ЬББАВ(ек) 0

Р (е2) = о.

2. Если для двух соседних событий в результирующей цепочке выполняется условие

2 2 2 2 *ъ(ек-1) = *ъ(е к ), а р(ек= р(е к ) (характеристические векторы идентичны), то одно

из событий можно уничтожить.

2

Частным случаем задачи транспортирования (3) является случай, при котором | г^ | = 0 .

Такое упрощение сводит задачу к переносу тех элементов цепочки в результирующую

цепочку г^, которые не попадают под действие описанных выше критериев элиминации. Этот процесс также характеризуется линейной сложностью, однако только относительно | |, и, в силу отсутствия необходимости редактирования событийных связей, имеет существенно лучшие показатели производительности.

2.3. Последовательностные функции в DRTLQ-модели. Последовательностной функцией f <= р в модели DRTLQ называется некоторая вычислительная процедура, характеризующаяся множествами входных, внутренних и выходных событий, осуществляющая их пошаговое преобразование на каждом тактовом цикле верификации. Результатом после-довательностной функции в некоторый момент времени (номер тактового цикла с начала моделирования), является содержимое множества выходных событий в этом моменте времени. Активирующей последовательностной функцией является такая последователь-ностная функция, выходные события которой, во-первых, инициируют некоторый поток активации, соответствующий текущему тактовому циклу, если таковой еще не был инициирован; во-вторых, назначают связи между событиями по правой цепочке, в соответствии с

АГТГУБ

принадлежностью к инициированному потоку; в-третьих, устанавливают флаг р = 1.

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

г

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

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

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

fgen(beB)(t) = [eo = eg,= в,pVAL = b(t)}]

(4)

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

f uff \ VAL/ 0 г. .¡п ,.ччч ja =1 ^ fconj(t,f1,fgen) = f1(t); fconj(t,fbfgen):a = p (e = first(fgen(t))), ja = g ^ fconj(t,f1,fgen) = 0; (5)

где first(f (t)) - первое событие, принадлежащее множеству (в случае операнда-генератора первое событие является единственным);

- функции-очереди, моделирующие временные интервалы;

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

- функции, реализующие логические последовательностью операторы, такие как OR, AND, INTERSECT, WITHIN, а также импликации и .

Наиболее часто применяемой последовательностной функцией в предлагаемой модели является функция-очередь, лежащая в основе выбранного названия DRTLQ. Очереди применяются для моделирования интервалов между интересующими событиями в системе. Наглядно очередь можно представить в виде цепочки триггеров. На рис. 3 показана схема обработки последовательности событий {a;[*2];b} на основе очереди, начинающейся с момента, в котором сигнал a = 1, и в прошествии 3 тактовых циклов завершающейся событием b = 1.

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

Рис. 3. Наглядная иллюстрация понятия БКТЬр-очередей В данном случае функция-очередь Г# является операндом функции конъюнктивного конкатенирования с fgen(b), и имеет функцию-генератор fgen(a) на входе

(1, ^#[3:3] (1, ^еп(а) X^еп(Ь)) . В общем виде, функция-очередь, имеющая идентичные конечные интервалы, функционирует путем хранения и продвижения к выходу списка цепочек событий, считанных с входа в различные моменты моделирования, и упорядоченного по времени считывания. Цепочка событий, достигнувшая последней в очереди ячейки, является фактическим результатом функции на следующем такте обработки:

^#[№N1 (1, ^ (1)), N > 0: (го (1), • • • гн-1 (!)); гд (1) = ^ (1);

Vi,0 < i < N,rj (t) = ri-i(t -1); f#[N:N] (t, fl (t)) = rN-i(t -1).

(6)

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

f#[N:M](t,fl(t)),N > 0,N < M: (ro(t),-iM_i(t)); ro(t) = fi(t);

M _ 2

Vi,0 < i < M,ri(t) = ri_1(t _ 1); f#[N:M](t,f1(t)) = rM_1(t _1) u u K(ri(t _1)). (7)

i=N _1

Если M ^ да, суть вычислительной процедуры (6) не изменяется, однако структура внутренних цепочек событий (ro(t),---rM-1(t)) преобразуется из статической формы в динамическую. Очередь с бесконечным интервалом будет генерировать и продвигать к выходу копии считанного события до тех пор, пока не будет остановлен породивший событие поток активации.

Если N = 0 , копии считанных с входа событий моментально транспортируются к выходу, независимо от обработки события внутри очереди:

f#[0:M] (t, f(t)1), M > 0 = f#[1:M] (t, f1 (t)) u K(f1 (t)). (8)

Функции-репетиции в модели DRTLQ разделяются на булевы и сложные, в зависимости от типа операнда (булево выражение и SERE соответственно). В целом, схема обработки булевых репетиций имеет определенное сходство с обработкой очередей. Дополнительно к сопоставлению времени регистрации в очереди, в репетициях проверяется значение входного булевого выражения. В том случае, если выражение не выполняется, все цепочки событий, в текущий момент хранящиеся в репетиции, поступают на выход со значением 0, и репетиция полностью очищается:

f[*N] (t, fgen(beB) (t),N > 0: (v(t), r0 (t), • • • rN_1 (t)) ; v(t) = p VAL(first(fgen(b)(t)));

v(t) = 1 ^

v(t) = 0 ^

r0(t) = fgen(b)(t);

Vi,0 < i < N,ri(t) = ri _1(t _ 1);

f[*N](t, fgen(b)(t)) = rN _1(t);

Vi,k,0 < i < N,0 < k < |ri(t _ 1)|, pVAL (ek e ri(t _ 1)) ^ 0;

N_1

f[*N] (t, fgen(b) (t)) = u ri(t _ 1);

i=0

Vi,0 < i < N,ri(t) = 0.

(9)

Аналогично очереди (7), интервальная репетиция требует создания и продвижения к выходу копий цепочек событий, выдержанных внутри репетиции минимальное количество итераций, но не достигших максимума:

М-1

у(1) = 1 ^ %№М](^еп(ЪеВ))^ > 0^ < М = и к(г^(1 -1)). (Ш)

1=N

Случаи М ^ да и N = 0 определяются аналогичным очередям образом, разумеется, с учетом процедуры полного очищения репетиции при у(1;) = 0.

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

N] (t, fgen(beB) (t)), N > 0: (v(t), (t), rg (t), • • • rN^ (t)) ;

(t) VAL(f t(f (t))) iV(t) = 1 ^ (t) = fgen(b)(t); v(t) = p (first(fgen(b)(t))); |v(t) = 0 ^ (t) = к( (t - 1));

ro(t) = (t);

<Vi,0 < i < N,ri(t) = ri-i(t-1); (11)

fK N] (t,fgen(b)) = rN-1(t)-

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

f[= N](t,fgen(b)(t)) = K(fH- N](t - 1,fgen(b)(t -1))) u fK N](t,fgen(b))- (12)

Наиболее сложными являются функции, реализующие логические операторы над последовательностями. Пусть имеется SERE s = {{a;b}||{c;d}}&&{!e[*2]}. На рис. 4 в графическом виде представлена DRTLQ-реализация данного SERE, а формула (11) демонстрирует то же SERE в аналитическом виде:

fs(t) = f— (t); f— (t) = join2-&&(t,f— (t),f[*2:2](t,fgen(-e)(t)));

í \ t,

fconj (t,f#[1:1](t , fconj (t,f2(t),a)),b), fconj (t,f#[1:1](t , fconj

(t,f2(t),c)),d); I

f¿(t) = split2_||(t,4(t)); f¿(t) = split2-&&(t,fgen(1)(t)). (13)

Любой логический последовательностный оператор реализуется двумя DRTLQ-функ-циями: разделителем f¿ (splitter) и соединителем f— (joiner). Функция-соединитель является вершиной пути операндов, а начало каждого из операндов исходит из функции-разделителя. Ряд операторов (WITHIN, импликации) могут иметь только два операнда, но степень разветвления логических операций (AND, OR, INTERSECT) не ограничивается. Разделитель всегда имеет единственный вход и множество выходов, соответствующее количеству операндов. Событие, считываемое разделителем с входа, расслаивается на самостоятельные копии, каждая из которых транспортируется по пути одного из операндов. Соединитель имеет единственный выход, порождая выходные цепочки событий в соответствии с реализуемой функцией.

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

f—— (t) = join2-||

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

2.4. Цикл работы ассерционного процесса. Анализ ассерций в модели DRTLQ осуществляется по событию, доставка которого в ассерционный процесс является обязанностью родительской системы моделирования. Каждая итерация цикла работы всегда соответствует уникальному моменту времени. Ситуация, когда одному моменту времени соответствует более одной итерации анализа, исключается.

Итерации анализа делятся на типы в зависимости от момента запуска:

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

- итерация прерывания - запускается при срабатывании условия прерывания (операторы а8упс_аЬо1! и 8упс_аЬог1), прерывает все активные вычислительные потоки путем обработки множеств внутренних событий элементов-очередей и элементов-репетиций;

- финальная итерация - запускается один раз в конце моделирования, транспортирует все цепочки событий непосредственно монитору на обработку с учетом требований условной справедливости (безусловная, слабая, сильная).

Финальная итерация и итерация прерывания предназначаются только для поддержки специальных видов ассерционных языковых конструкций и сводятся к итерированию подготовленных заранее отдельных элементов системы (очередей и репетиций) и обработке множеств их внутренних событий.

Регулярная итерация анализа ассерций включает в себя следующие шаги:

1. Считывание значений всех ассерционных переменных.

2. Запуск шага вычислительной процедуры каждой из последовательностью функций, в соответствии с очередью обработки.

3. Запуск шага обработки ассерционного монитора.

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

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

функция действия ?АСТЮН. Данная функция не имеет ни внутренних, ни выходных событий, поскольку ее единственной задачей является доставка поступившей на вход цепочки событий к ассерционному монитору. Функции действия применяются также для реализации режима глобального времени, однако в этом случае цепочки поступивших событий доставляются не монитору, а темпоральным свойствам.

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

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

Предположим, обрабатываемая ассерция моделирует инвариантное LTL-ограничение

вида пеуег({...8ед...}) . В таком случае монитор называется запрещающим, и принцип его работы следующий:

Уе е г^,

Р ™(е) = 1 ^

герог^айеф; гесигауе1у

Уе' е {е^е^}(е),р^™(е') ^ 1;

Л,ЛТ Г LDEAD/ ч . .ГОБА^ч, , (14)

р УАЪ(е) = о (е) ^ р (е) ^ 1;

Ге ^^ (е) = е^^ (е) = е ^ геро!1(ра88еф.

Если значение события р VAL(e) = 1, это означает, что дочерняя последовательность выполнена успешно, а значит, ассерция нарушена. В таком случае весь поток активации ю, соответствующий времени активации ta рассматриваемого события e е г^ , признается удовлетворенным, и дальнейший его анализ (могут существовать другие события этого потока) не имеет смысла. Все события, относящиеся к данному потоку, уничтожаются

моментально, используя связи события e ^^ по правой цепочке. Монитор сигнализирует внешней среде о неудаче анализа ассерции, вызывая абстрактную процедуру report с неудачным статусом.

Если же значение события р VAL(e) = 0 , это означает, что один из сценариев последовательности удовлетворяет свойству. В таком случае, событие просто уничтожается из всех цепочек. Если событие было последним в собственном потоке активации, монитор сигнализирует внешней среде об успехе анализа ассерции, на этот раз вызывая процедуру report с положительным статусом.

Работа разрешающего монитора, моделирующего инвариантное ограничение вида always({...seq...}), подобна запрещающему монитору. Различие состоит только в противоположности условия срабатывания: событие с отрицательным значением р VAL(e) = 0 является в данном случае определяющим неудачный статус и досрочное завершение анализа потока активации. Напротив, рVAL(e) = 1 считается успешным результатом, и если

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

Также существует третий тип монитора - ожидающий, соответствующий LTL-ограни-

чениям достижимости вида eventually!({...seq...}):

Ve е r^,

р VAL(e) = 1 ^

report(passed); recursively

Ve' е {et^,e^}(e), р^™^') ^ 1; (15)

р VAL(e) = 0 ^ рLDEAD (e) ^ рRDEAD (e) ^ 1.

В случае прихода события с положительным значением р VAL(e) = 1 поток активации удовлетворяется, и монитор сигнализирует об успешном статусе анализа. Отрицательный

статус р VAL(e) = 0 лишь уничтожает поступившее событие. Никакие действия с потоком активации не происходят, поскольку, в соответствии с [14, формула (26)], в режиме локального времени свойство eventually! не может дать отрицательного результата, за исключением конца моделирования.

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

При наличии в модели уровня темпоральных свойств задачи проверки критериев удовлетворения потоков активации (14), (15) выполняются именно этими элементами. Вспомогательные последовательностью функции fACTION доставляют выходные цепочки событий на первый уровень иерархии темпоральных свойств. С ассерционным монитором взаимодействует только вершина иерархии свойств. Роль самого монитора упрощается и сводится к обработке статуса единственного за весь сеанс моделирования события.

Каждое свойство состоит из следующих структурных элементов:

p е P:{p ^ P. е P}x {INIT, ABORT, EVAL, FINAL} , (16)

где p^ - родительское свойство; P. - множество дочерних свойств; INIT - рекурсивная процедура активации вычислительного потока; ABORT - рекурсивная процедура отмены активации всех текущих вычислительных потоков; EVAL - процедура обработки события,

FINAL - процедура обработки завершения моделирования.

Тело процедур и дополнительные элементы структуры различаются в зависимости от типа свойства. К основным типам свойств относятся:

- унарные свойства, в свою очередь подразделяющиеся на группы:

- буферные свойства (BUF, NOT);

- глобальные свойства (always, never, eventually!);

- бинарные свойства (^, о, , , until * , before *, next *) - свойства, имеющие по два операнда-свойства;

- коммутативные свойства (&&, ||) - свойства, которые могут иметь неограниченное число равноправных операндов-свойств.

Унарные свойства в качестве операнда могут иметь как другие свойства, так и последовательностью функцию.

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

Цикл работы ассерционного процесса в режиме глобального времени отличается от простого режима дополнительными шагами по обработке уровня темпоральных свойств:

1. На каждом шаге моделирования осуществляется активация свойств путем вызова процедуры INIT на свойстве верхнего уровня. Активации обеспечивают разрешение создания вычислительных потоков на уровне последовательностей. В отличие от мониторов, всегда разрешающих активацию вычислительных потоков, свойство может блокировать часть дочерних последовательностей в случае необходимости.

2. События, транспортируемые функциями действия fACTION с последовательностно-

го уровня, приводят к запуску процедуры EVAL у свойств первого уровня. В зависимости от этой процедуры событие может быть либо уничтожено, либо транспортировано к родительскому свойству. Если событие признается удовлетворяющим процедуру EVAL свойства верхнего уровня, оно направляется к монитору, и весь цикл анализа ассерции завершается.

3. Финальная итерация предполагает вызов процедуры FINAL для всех свойств p, принадлежащих модели. Если анализ ассерции не был завершен на момент остановки симуляции, результат определяется именно в этот момент.

Рассмотрим простейшее темпоральное свойство BUF, которое может либо иметь пос-ледовательностный вход, создаваемый при продвижении булевого выражения или последовательности на уровень свойств, либо дочернее свойство-операнд:

P. = 0,fACTION е F; P. :{pi е P};

x {initbuf, abortbuf, evalbuf, finalbuf},

где fACTION - дочерняя последовательностная функция; p1 - дочернее свойство-операнд; Q BUF - множество активных вычислительных потоков, порожденных свойством. Очевидно, такое свойство не имеет дочерних свойств.

Процедура INITbuf состоит в расширении Q BUF новым потоком активации ю t, соответствующем текущему моменту времени, в который добавляется искусственное событие e t . На уровне последовательностей наличие потока разрешает активацию событий, примыкающих по правой цепочке к e 0t .

Процедура ABORTbuf

состоит в очищении множества потоков QBUF вместе с уничтожением всех порожденных правых цепочек событий.

pbuf : {pt

, Qbuf е Q}x

(17)

Процедура EVALbuf, вызываемая либо функцией действия fACTION с последовательностью уровня, либо дочерним свойством pj, удаляет из множества QBUF поток ю', для которого время активации равно времени активации пришедшего с входа события tA(first(®')) = tA(e). Самое событие e направляется в процедуру EVAL родительского свойства.

Процедура FINALbuf для всех вычислительных потоков Q BUF выбирает порожденное при активации событие e 0 и направляет к родительскому свойству: статус определяется режимом условной справедливости.

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

PNOT :{Pt

Р^ =0,fACTION е F; P^ :{P1 e P};

, Q NOT e Q} x

initnot = initbuf;

ABORTNOT = ABORTBUF ;

evalnot; finalnot.

(18)

PG : {Pt

= 0,fACTION e F; P^ :{P1 e P};

, Q g e Q} x

(19)

Отличие процедур EVALnot и FINALnot от аналогов в BUF состоит в инверсии VAL / ч

значения р (e), транспортируемого к родительскому свойству.

Рассмотрим работу глобальных темпоральных свойств на примере свойства always :

INITg;

ABORTG = ABORTBUF; EVALg; FINALG;

Отличие процедуры INITG от INITBUF состоит в том, что в случае наличия дочернего свойства-операнда и открытых потоков активации в нем на каждом такте анализа создается дополнительный поток активации, помещаемый в Q BUF. Такой прием обеспечивает неявное ветвление потоков активации, порождаемых глобальными темпоральными операторами, без фактического ветвления вычислений на уровне дочерних последовательностей.

Процедура EVALg состоит в завершении всех вычислительных потоков ю е Q g , для которых выполняется соотношение tA(first^)) < tA(e), и транспортировании соответствующих потокам событий e на уровень выше. Здесь ветвление свойств-операндов воссоздается, однако это не имеет такого влияния на производительность анализа, как если бы производить все вычисления на последовательностном уровне.

Процедура FINALg с успешным статусом завершает все стартовавшие потоки Q g . Очевидно, активность свойства always в момент остановки симуляции свидетельствует об успешном выполнении данного свойства.

Свойство never отличается от свойства always инверсией значений р (e) транспортируемых событий в процедуре EVAL, а свойство eventually! - инверсией значений в процедуре FINAL.

Коммутативные свойства, такие как AND, имеют следующую структуру:

:{p:{p1, ^ ,pn}, tft): (k е [0;N],v е [0;1])} x

INITA : Vi,0 < i < N, INIT(pi); ABORTA : Vi,0 < i < N,ABORT(pi) EVALЛ;

P

л

FINAL,

(20)

где N - число операндов; - свойства-операнды, а ц(1;) - функция истории

выполнения потока активации, каждый элемент которой соотносится с некоторым такто-

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

Работа процедур INITA и ABORTA тривиальна и состоит из вызова аналогичных процедур на всех свойствах-операндах по очереди.

Работа процедуры EVALa состоит из двух шагов:

1. Изменение статуса истории потока активации по принципу v(^(t)) ^ v(^(t)) л рVAL(e) (очевидно, начальное значение v = 1). В случае изменения статуса v(^(t -1)) = 1 ^ v(^(t)) = 0 поток активации признается неудачным, и событие e продвигается на уровень выше.

2. Инкремент числа выполненных операндов: k(^(t)) ^ k(^(t)) +1. Если новое значение k(^(t)) = N, поток активации признается успешным, и событие e также продвигается на уровень выше.

Работа процедуры FINALЛ заключается в продвижении на уровень выше событий всех потоков активации, для которых имеется хотя бы один незавершенный поток операнда: k(^(t)) < N, а начальный статус по-прежнему не изменился: v(^(t)) = 1.

Отличие свойства OR в деталях вычислительных процедур. Во-первых, начальным значением v(^(t)) является 0. Во-вторых, условие досрочного завершения анализа потока в процедуре EVALv заключается в переходе v(^(t -1)) = 0 ^ v(^(t)) = 1 и продвигает успешный статус. В-третьих, достижение значения k(^(t)) = N, при котором v(^(t)) = 0, завершает поток с неудачным статусом.

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

Бинарное свойство, реализующее семейство операторов until *, имеет более сложную структуру и вычислительные процедуры:

pu :{pt P. :{px,p2},v(t):e{0,1,X},{s1,S2,si,s2}(t):e{0,1,X}} x

x {INITU,ABORTU = {ABORT(p1);ABORT(p2)},EVALU,FINALU}, (21)

где p1,p2 - дочерние свойства-операнды; v(t) - функция текущего статуса вычислительного потока; sj(t) и s2(t) - функции фактического состояния потоков, принадлежащих операндам, а s1(t) и s2(t) - функции интерпретации состояния потоков, принадлежащих операндам.

Процедура INITu активирует свойства-операнды и кроме того создает записи для текущего момента t c начальными значениями sj(t) = s2(t) = X, а также v(t) = X .

Работа процедуры EVALu состоит из следующих шагов:

1. Обновление состояния операнда, с которого пришло событие: s

VAL,

1 (t) ^ ^ (e).

2. Обновление состояния ранее не разрешенных активированных потоков, начиная со стартовавших одновременно с событием, до текущего времени:

3к,0 < к < (1Ш№ - 1А(е)),

"з1(1А(е) + к) = 0 ^ у(1А(е) + к); _у(1А(е) + к) ^ X;

"к > 0 ^ у(1А (е) + к) ^ з1 (1А (е) + к -1);

s2(tA(e) + k) =

0 ^

1 ^

X ^ v(tA (e) + k) ^ X:

k = 0 ^ v(tA(e) + k) ^ 1; (22)

3. Разрешение потоков (отправка события на уровень выше), для которых у(1) на предыдущем шаге претерпело изменение X ^ 0 или X ^ 1.

В табл. 2 приведены определения функций 81(1) и 82(1) на основе функций 8^(1) и 82(1), изменяющихся в зависимости от конкретного оператора. 46

Таблица 2. Определения бинарных темпоральных операторов

Оператор s1 (t) s'2(t)

f1 until f2 S1(t) s2(t)

f1 until_ f2 s1(t) s1(t) a s2(t)

f1 before f2 — s2(t) s1(t) a—s2(t)

f1 before_ f2 — s2(t) s1(t) a—s2(t)

Процедура FINALu для всех потоков с v(t) = X направляет событие, принадлежащее потоку, на родительский уровень со статусом, определяющимся соотношением —strong(pu)asi(t) для операторов before* и — strong(pu)aS2(tж)- для операторов until * .

Другие свойства определяются в модели DRTLQ аналогичным образом в соответствии с семантикой LTL-операторов.

3. Выводы

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

M = f(F,L,T,C,A,t),C = {C1,C2,...,Ci,...,Cm}; L = {L1,L2,...,Li,...,Ln};

A(t) = {A1,A2,...,Ai,...,Ak}; A с L; F = L x C; k < n; T = {T1,T2,...,Ti,...,Tp}.

Здесь Ci - группа операторов кода, нагруженная на вершину Li (переменная, регистр, счетчик, память) и формирующая ее состояние; F - функциональность, представленная транзакционным графом F = L x C в виде декартова произведения множества вершин и дуг; A - совокупность темпоральных ассерций, как подмножество вершин транзакционного графа A с L. Метод поиска функциональных нарушений (ФН) блока операторов кода использует предварительно построенную таблицу ФН B = [Bjj], где строка есть отношение между тестовым сегментом и подмножеством программных блоков Ti = (Bi1,Bi2,...,Bij,...,Bin) с возможными ФН. Столбец таблицы формирует отношение между программным блоком и тестовыми сегментами Bj = (T1j,T2j,...,Ty,...,Tpj), которые могут проверять блок с ФН. На стадии моделирования определяется обобщенная реакция m = {m1,m2,...,mi,...,mp} механизма ассерций F на тест, путем формирования mi = (A1 VA2 V...VAi v...v Ak), Ai = {0,1} как реакции ассерций на тест-сегмент T[. Поиск ФН основан на определении хог-операции между вектором состояния ассерций и столбцов таблицы ФН m© (Bj v B2 v... v Bj v... v Bn). Выбор решения определяется совокупностью векторов B j с минимальным числом единичных координат

Р Р B = min [Bj = 2 (Bij © mi)] j=1,n i=1 i=1 ,

формирующих программные блоки с ФН, проверяемые на тестовых сегментах.

2. Для обеспечения существенно лучшей производительности анализа ассерций и поддержки режима полноценной интерпретации глобальных темпоральных операторов предложена модель динамических регистровых очередей (DRTLQ). Модель ориентирована на высокопроизводительный анализ элементов линейной темпоральной логики и эффективность обнаружения и локализации нарушений. Она состоит из четырех структурных уровней: 1) переменных верификации, обеспечивающих абстракцию выражений булевого уровня; 2) последовательностных функций, предназначенных для реализации регулярных выражений, учитывающих параметр времени; 3) темпоральных свойств и ассерционного монитора, контролирующих потоки активации при анализе формул; 4) ассерционного процесса, реализующего верификацию логически связанной группы темпоральных утверждений. В отличие от модели на основе конечных автоматов количество элементов модели растет линейно относительно размера моделируемой LTL-формулы. Высокий уровень компактности модели достигается за счет минимальной структурной сложности представления простых и интервальных временных сдвигов, циклических ограничений, логических разветвлений - конструкций, порождающих сложные деревья вычислительных процессов и приводящих модель на основе конечных автоматов к нелинейному росту количества состояний.

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

4. Модель DRTLQ способна эффективно реализовать предложенный режим глобального времени, предполагающий полноценную интерпретацию сложных темпоральных операторов. Событийная модель обработки конструкций-свойств и вычислительные процедуры, контролирующие множества инициированных вычислительных путей, обеспечивают эффективную реализацию всех LTL-операторов с линейной сложностью. Производительность достигается иерархической декомпозицией событийных потоков. Теоретическая древовидность низкоуровневых вычислений, определяемая семантикой LTL, подменяется линейной нагрузкой на последовательностный уровень, а фактический учет сложных ветвлений эффективно реализуется на высоком уровне абстракции. Вычислительная сложность реализации такова, что применение на практике режима глобального времени оказывается существенно быстрее (от 1,25 до 5 раз) по сравнению с традиционным режимом интерпретации.

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

6. Практическое значение полученных результатов. Разработанная аналитическая модель верификации цифровых систем на основе использования динамических регистровых очередей для анализа ассерций линейной темпоральной логики доведена до практической реализации в виде программного обеспечения в составе верификационной системы Riviera (Aldec Inc.). В сочетании с другими реализованными методами верификации, данный программный продукт представляет собой комплексное полноценное решение по верификации System-on-Chip. Продукт занимает лидирующие позиции на мировом рынке программных средств в сфере EDA.

Список литературы: 1. Clarke E., Grumberg O., PeledD. Model Checking. 6th edition, MIT Press, 2008. 313p. 2. Burch J.R., Clarke E.M., Long D.E. Representing circuits more efficiently in symbolic model checking // 28th ACM/ IEEE Design Automation Conference, 1991. Р. 403-407. 3. Pnueli A. The Temporal Logic of Programs // Proceedings ofthe 18th IEEE Symposium Foundations of Computer Science (FOCS 1977). 1977. Р. 46-57. 4. Buchi J.R. On a decision method in restricted second order arithmetic // Рroceedings of International Congress on Logic, Methodology and Philosophy ofScience, Stanford University Press, 1960. Р. 1-11. 5. HeA., Wu J., LiL. An Efficient Algorithm for Transforming LTL Formula to Buchi Automaton // International Conference on Intelligent Computation Technology and Automation. 2008. Р. 1215-1219. 6. GastinP., OddouxD. Fast LTL to Buchi automata translation // 13th International Conference on Computer Aided Verification (CAV 2001), volume 2102 of Lecture Notes in Computer Science. Р. 53-65. 7. Giannakopoulou D., LerdaF. From states to transitions: Improving translation of LTL formulae to Buchi automata // 22nd International Conference on Formal Techniques for Networked and Distributed Systems (FORTE 2002), volume 2529 of Lecture Notes in Computer Science. 2002. Р. 308-326. 8. Etessami K., Holzmann G. J. Optimizing Buchi automata // 11th International Conference on Concurrency Theory (CONCUR2000), volume 1877 ofLecture Notes in Computer Science, 2000. Р. 153-167. 9. Safra S. On the complexity of omega-automata // 29th IEEE Symposium on Foundations of Computer Science, 1988. Р. 319-327. 10. Valmari A. The state explosion problem // Lectures on Petri Nets I: Basic Models, volume 1491 ofLecture Notes in Computer Science, 1998. Р. 429-528. 11. Ferndandez J.C., JardC., Jeron T., VihoA. Using on-the-fly verification techniques for the generation oftest suits // Proceedings of 1996 Workshop of Computer-Aided Verification. 1996. Р. 348-359. 12. Voeten J.P.M., Van der Putten P.HA., Geilen M.C.W., StevensM.P.J. Formal modelling ofreactive hardware/ software systems // ProRISC/IEEE'97, Utrecht : STW, Technology Foundation, 1997. Р. 663—670. 13. Ribeiro O, Fernandes J., PintoL. Model Checking Embedded Systems with PROMELA // 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05). 2005. Р. 378-385. 14. Зайченко С.А. Модель интерпретации высокоуровневых операторов LTL-логики // АСУ и приборы автоматики. 2009. Вып. 149. С. 96-111.

Поступила в редколлегию 12.10.2009

Зайченко Сергей Александрович, аспирант кафедры АПВТ ХНУРЭ, начальник отдела разработки компании Aldec-Kharkov Ltd. Научные интересы: системы автоматизированного проектирования, моделирования и верификации цифровых систем на кристаллах. Увлечения: литература, музыка, футбол. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. (097)-367-62-93. E-mail: [email protected]

Чумаченко Светлана Викторовна, д-р техн. наук, проф. кафедры АПВТ ХНУРЭ. Научные интересы: математическое моделирование, методы дискретной оптимизации. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326, е-mail: [email protected].

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