Верификация логических описаний комбинационных устройств Л.Д. Черемисинова Объединенный институт проблем информатики Национальной Академии Наук Беларуси Минск cld@newman.bas-net.by 1 / 23 Актуальность решения задачи верификации Цель верификации – обеспечить соответствие реализации устройства его исходному функциональному описанию Проектирование логических схем – многоэтапный процесс, объект проектирования - логическая схема - получается путем эквивалентных оптимизационных преобразований исходного функционального описания проекта на языке высокого уровня Необходим анализ и верификация описаний объекта проектирования на разных этапах проектирования Верификация становится все более необходимым и доростоящим этапом процесса проектирования: стоимость верификации составляет до 70% от общей стоимости проектов СБИС реализации 2 / 23 Верификация функционально неопределенных описаний Задача верификации заключается в доказательстве поведенческой эквивалентности двух описаний одного и того же устройства, полученных на разных этапах проектирования 2 подхода к решению задачи верификации: моделирование; формальная верификация сведением к задаче проверки выполнимости конъюнктивной нормальной формы Типичный случай: сравниваемые описания функционально полностью определены – представляют собой схемные реализации одного и того же устройства Более общий случай: одно или оба сравниваемые описания содержат неопределенность (не полностью определены) 3 / 23 Функциональные возможности комплекса верификации Алгоритмические и программные средства для решения задачи верификации – проверки эквивалентности между двумя схемными реализациями одного и того же устройства (полностью определенными описаниями) отношения реализуемости между описаниями (функциональными или структурными) -- эквивалентности описаний на области определения “наименее определенного” из них Элементный базис сравниваемых схем : элементы библиотеки КМОП СБИС; простые элементы типа И, ИЛИ, И-НЕ и т.д. Язык SF описания функционально-структурных описаний (Бибило П.Н. Кремниевая компиляция заказных СБИС. – Минск: Ин-т техн. кибернетики АН Беларуси, 1996. – 268 с.) 4 / 23 Исходные данные для решения задачи верификации 1. Cистема частично или полностью определенных булевых функций 3. Комбинационная схема из простых (типа И, ИЛИ, И-НЕ и т.д.) или библиотечных элементов IF = {(ui, ti)} (u6, t6) = (x2x3x4, y1 y2) 2. Cистема уравнений y1 = ^a+(^b*^e)+(c*^f); y2 = ^a*(^(^((d*^c)+(^b*^d)))); 5 / 23 Исходные данные для решения задачи верификации Многоблочная структура, блоками которой являются 4. системы ДНФ 5. системы ЧБФ Структура с неопределенностью 6 / 23 Особенности рассматриваемого случая верификации на основе моделирования Исходное описание (система ЧБФ) Условия реализуемости : M1(fi) M1(yi) M0(fi) M0(yi) (i = 1 .. m) Результирующее описание Комбинационная схема или многоблочная структура M1(fi) – Область единичных значений функции fi. M0(fi) – Область нулевых значений функции fi. Условие реализуемости: значения каждой функции fi(X) F на всей области ее определения M1(fi) M0(fi) должны совпадать с соответствующими значениями функции yi(X), реализуемой схемы 7 / 23 Верификация на основе моделирования Логическое моделирование: 1) Подать на входы схемы набор двоичных сигналов; 2) Распространить сигналы со входов на выходы схемы; 3) Сравнить значения на выходах схемы с ожидаемыми согласно исходному заданию. Реализовано 3 подхода: 1) Двоичное моделирование комбинационной схемы; 2) Троичное моделирование комбинационной схемы; 3) Моделирование многоблочной структуры с неопределенностью. В основе предложенных программных средств параллельное моделирование схемы или многоблочной структуры на области задания исходной системы поностью или частично определенных булевых функций (сразу на всех интервалах) 8 / 23 Параллельное двоичное моделирование схемы на наборах значений переменных из области определения системы ЧБФ Система частично определенных булевых функций x1 x2 x3 x4 x5 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 f1 1 1 - f2 1 0 0 f3 0 0 1 f1 f2 f3 Проверка ортогональности f2 y2 y3 f3 y1 f1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 Многоблочная структура x1 x2 x3 x4 x5 0 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 блок1 z1 0 1 0 1 блок2 z2 z3 блок3 y1 1 1 1 1 y2 1 0 0 0 y3 0 1 0 1 9 / 23 Параллельное троичное моделирование схемы на интервалах значений переменных из области определения системы ЧБФ В процессе моделирования вычисления производятся над троичными векторами, длина которых равна числу строк матрицы U. Определение операций над троичными переменными Определение функции, реализуемой элементом слияния сигналов y0: 0 0 0 – – – 1 1 1 y1: 0 – 1 0 – 1 0 – 1 ---------------------------------------------------------y: – – 1 – – * 0 * * y1 y0 y Исходная система ЧБФ 10 / 23 Параллельное троичное моделирование схемы на интервалах значений переменных из области определения системы ЧБФ – 1 – 0 – – – 1 0 1 0 0 1 – 0 – 1 – 1 – 0 – 0 1 1 – – 0 – 1 Исходная система ЧБФ f 1 0 – – – 0 1 y 0 1 – – ?? 0 Нет 1 0 1 – Да Схема реализует 0 исходную систему ? 1 Моделируемая схема 11 / 23 Двоично-троичное моделирование (на интервалах и наборах значений переменных из области определения системы ЧБФ) Повторное моделирование на наборах : Расщепление интервала ранга n на наборов интервал l – число наборов, на которые расщепляется интервал наборы l n – число компонент троичного вектора k – число определенных компонент троичного вектора n Оценка целесообразности использования интервального моделирования схемы для решения задачи верификации : 1) позволяет значительно сократить подлежащую проверке часть этого пространства (76%) 2) значительно упрощает задачу верификации оставшийся не проверенной (уже небольшой) части булева пространства с использованием методов двоичного моделирования или 12 / 23 проверки выполнимости КНФ Формальная верификация Классический подход Схема сравнения для пары сравниваемых схем Построение конъюнктивной нормальной формы (КНФ) разрешения для схемы Проверка выполнимости КНФ разрешения w = z1 z2 = const 0? 13 / 23 Сведение задачи верификации описаний с функциональной неопределенностью к проверке выполнимости КНФ 1) Построение КНФ разрешения C(S) результирующего описания S (все допустимые комбинации сигналов на полюсах элементов схемы или многоблочной структуры) 2) Построение КНФ исходного описания запрета (все комбинации сигналов, противоречат функциям исходной ЧБФ) 3) Проверка выполнимости КНФ R = P(F) C(S). КНФ R КНФ C(S) разрешения P(F), которые системы КНФ P(F) запрета Проверка выполнимости R Утверждение. КНФ R выполнима тогда и только тогда, когда результирующее описание устройства не реализует исходную систему ЧБФ 14 / 23 Формальная верификация: случай 1 Построение КНФ разрешения схемы Исходное описание: Система частично определенных булевых функций (ЧБФ) КНФ R = P(F) C(S) Результирующее описание: 1) Комбинационная схема из элементов типа И, ИЛИ, НЕ или из библиотечных элементов 2) Многоблочная структура, блоками которой являются системы ДНФ; КНФ разрешения схемы S: C(S) = (С(z1) С(z2) … С(zl)) КНФ разрешения С(zi) элементов схемы: C(y, z) = (z y) (z y) Инвертор C(y, z1,z2,..., zk) = (z1 y) (z2 y) … (zk y) (z1 z2 … zk y) И C(y, z1,z2,..., zk) = (z1 y) (z2 y) … (zk y) (z1 z2 … zk y) ИЛИ 15 / 23 Пример построения КНФ разрешения схемы x2 x1 z1 x4 x5 x3 z2 z3 y1 y2 x1x2x3x4x5z1z2z3y1y2 1––––0–––– 1 –1–––0–––– 2 00–––1–––– 3 –––1––0––– 4 ––––1–0––– 5 –––00–1––– 6 ––0–––10–– 7 ––1––––1–– 8 ––––––01–– 9 – – – – – 1 1 – 0 – 10 – – – – – 0 – – 1 – 11 – – – – – – 0 – 1 – 12 – 0 – – – – – – – 0 13 – – – – – – – 1 – 0 14 – 1 – – – – – 0 – 1 15 16 / 23 Формальная верификация: случай 1 Построение КНФ запрета системы ЧБФ Исходное описание: Система частично определенных булевых функций (ЧБФ) Результирующее описание: Комбинационная схема КНФ R = P(F) C(S) КНФ P(F) запрета системы ЧБФ F(X) -- P1 P2 … Pl (условия нарушения реализуемости системы ЧБФ) КНФ запрета Pi многовыходного интервала (ui, ti) = x1i x2i… xini ; f1i,f2i ,… , fmii содержит ni + 1 дизъюнктов: Pi(x, f) = x1i x2i… xini (f1i f2i … fmii) Условие нарушения реализуемости системы ЧБФ Экспоненциальное Разрастание КНФ P1 P2 … Pl Идея сокращения сложности: кодирование интервалов : P(F) = (P1k P2k … Plk) Q(w) КНФ запрета P(F) 17 / 23 Построение КНФ запрета системы ЧБФ P(F) = (P1k P2k … Plk) Q(w) Вид функции выбора Q(w) зависит от кодов di(w) fQ и fdi функции, задающие КНФ Q(w) и коды di(w), MQ1 and Mdi1 подмножества наборов значений переменных wi, на которых функции Q(w) и di(w),принимают значение 1. Кодирование интервалов -- унарное; -- логарифмическое -- интервальное (коды di(w) ) 18 / 23 Пример построения КНФ запрета системы ЧБФ Система ЧБФ КНФ запрета системы ЧБФ Единичное кодирование x1x2x3x4x5f1f2w1w2w3w4w5w6 ––1––––1––––– 1 –––1–––1––––– 2 ––––1––1––––– 3 –––––0–1––––– 4 Pк = – 0 – – – – – – 1 – – – – 5 ––0–––––1–––– 6 –––0––––1–––– 7 –––––10–1–––– 8 … – – – – – – – 0 0 0 0 0 0 25 Q(w) x1x2x3x4x5 f1 f2 ––111 1– –000– 01 U=–0–11 T=–1 01–10 00 –010– –0 11––– 10 1 2 3 4 5 6 Интервальное кодирование x1x2x3x4x5 f1 f2w1w2w3 ––1––––0 – 0 –––1–––0 – 0 ––––1––0 – 0 –––––0–0 – 0 Pк = – 0 – – – – – 0 – 1 ––0––––0 – 1 –––0–––0 – 1 –––––100 – 1 … 1 2 3 4 5 6 7 8 19 / 23 Методы проверки реализуемости 1) Метод последовательной проверки Многовыходные интервалы исходного задания ... КНФ запрета КНФ запрета интервалов ... КНФ P разрешения результирующего описания Проверка выполнимости расширенной КНФ Расширенная КНФ КНФ разрешения P ... Расширенная КНФ КНФ запрета B 2) Метод параллельной проверки 3) Метод групповой проверки Проверка выполнимости расширенной КНФ 20 / 23 Возможности программного комплекса верификации Программный комплекс обеспечивает : 1) анализ верифицируемых пар проектных решений и определение типа задачи верификации; 2) Преобразование форматов сравниваемых описаний: систем булевых функций, логических уравнений, схем из примитвных и библиотечных элементов, многоблочных структур; 3) выбор наиболее эффективного пути решения задачи верификации в зависимости от способа задания, типов проектных решений и их сложности; 4) преобразование форматов задания проектных решений; 5) настройку на базис библиотечных элементов. 21 / 23 Структура программного комплекса верификации 6 основных модулей: синтаксической проверки и преобразования исходного описания (в форматах SDF, SBF, LOG или 2-connect языка SF) к виду системы ЧБФ или логической схемы во внутренней форме; синтаксической проверки и преобразования порожденного описания многоблочной структуры (в форматах SDF, LOG или 2-connect языка SF) к виду логической схемы во внутренней форме; построения КНФ, готовой для проверки выполнимости SAT-решателем: 1) КНФ запрета исходной системы ЧБФ, 2) КНФ разрешения многоблочной структуры для различных случаев задания ее блоков, 3) КНФ схемы сравнения (для случая, когда сравниваемые описания задают комбинационные схемы); проверки выполнимости сформированной КНФ с помощью SAT-решателя Minisat; двоичного или троичного параллельного моделирования логической схемы на наборах или интервалах значений аргументов системы ЧБФ; управления процессом верификации: 1) распознавание типов исходных данных; 2) выбор наиболее эффективного метода верификации; 3) диагностика ошибок; 4) организация связи между описанными модулями. 22 / 23 Заключение Средства верификации: ориентированы на тестирование логических описаний верифицируемых устройств большой размерности (порядка 100 аргументов и 10000 интервалов системы булевых функций); включены в состав программного комплекса автоматизации проектирования логических схем в библиотечном базисе, оптимизированных по энергопотреблению Спасибо за внимание 23 / 23