Верификация - MES conference

advertisement
Верификация логических описаний
комбинационных устройств
Л.Д. Черемисинова
Объединенный институт проблем информатики
Национальной Академии Наук Беларуси
Минск
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) = (x2x3x4, 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
Download