Спец курс (Избранные главы VHDL)/Верификация описания — различия между версиями
Материал из Wiki
ANA (обсуждение | вклад) (→Слайд:Средства верификации) |
(→Слайд: Метрики в ModelSim) |
||
Строка 40: | Строка 40: | ||
* {{Сн|'''<big>"Серый ящик"</big>'''}} | * {{Сн|'''<big>"Серый ящик"</big>'''}} | ||
* {{Сн|'''<big>"Прозрачный ящик"</big>'''}} | * {{Сн|'''<big>"Прозрачный ящик"</big>'''}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Слайд: Полнота тестов == | ==Слайд: Полнота тестов == | ||
Строка 83: | Строка 54: | ||
Достаточное условие : Наблюдаемость (результат исполнения влияет на выход сравниваемый с эталоном) | Достаточное условие : Наблюдаемость (результат исполнения влияет на выход сравниваемый с эталоном) | ||
* {{Сн|'''<big>Эвристические метрики </big>'''}} - основанные на статистике появления ошибок | * {{Сн|'''<big>Эвристические метрики </big>'''}} - основанные на статистике появления ошибок | ||
− | |||
− | |||
− | |||
* {{Сн|'''<big>Программные метрики </big>'''}} | * {{Сн|'''<big>Программные метрики </big>'''}} | ||
** '''Полнота покрытия тестом строк кода модели''' | ** '''Полнота покрытия тестом строк кода модели''' | ||
** '''Полнота покрытия переходов''' (число пополнений ветвей оператора if и case ) | ** '''Полнота покрытия переходов''' (число пополнений ветвей оператора if и case ) | ||
− | ** '''Полнота покрытия путей | + | ** '''Полнота покрытия путей''' (все пути в графе программы) |
− | ** '''Полнота покрытия выражений | + | ** '''Полнота покрытия выражений''' (оценка числа вычислений выражения по различных наборах) |
− | ** '''Полнота переключений из 0 в 1 и из 1 в 0 каждого бита | + | ** '''Полнота переключений из 0 в 1 и из 1 в 0 каждого бита''' |
* {{Сн|'''<big>Автоматно-метрический подход </big>'''}}(лучший вариант использовать формальную верификацию для автоматов) | * {{Сн|'''<big>Автоматно-метрический подход </big>'''}}(лучший вариант использовать формальную верификацию для автоматов) | ||
* {{Сн|'''<big>Моделирование неисправностей </big>'''}}(в модель вносится неисправность) | * {{Сн|'''<big>Моделирование неисправностей </big>'''}}(в модель вносится неисправность) | ||
* {{Сн|'''<big>Мониторинг событий</big>'''}} | * {{Сн|'''<big>Мониторинг событий</big>'''}} | ||
− | == Слайд: | + | == Слайд: Включение контроля метрик в ModelSim == |
{{V|24px}} В '''ModelSim''' для учета метрик покрытия при компиляции проекта нужно задать в меню '''Compile->Compiler option''' | {{V|24px}} В '''ModelSim''' для учета метрик покрытия при компиляции проекта нужно задать в меню '''Compile->Compiler option''' | ||
<slides split="-----" width="600" > | <slides split="-----" width="600" > | ||
− | [[Файл:Опции компиляции покрытия.jpg | + | [[Файл:Опции компиляции покрытия.jpg]] |
</slides> | </slides> | ||
− | + | == Слайд: Метрики в ModelSim == | |
− | == Слайд: | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==Слайд:Эталонная модель на языке ''{{Зел| <big>SystemC</big>}}''== | ==Слайд:Эталонная модель на языке ''{{Зел| <big>SystemC</big>}}''== |
Версия 14:24, 21 ноября 2012
- Заголовок
- Верификация описания.
- Автор
- Зайцев В.С.
- Нижний колонтитул
- Спец курс (Избранные главы VHDL)/Верификация описания
- Дополнительный нижний колонтитул
- Зайцев В.С., 13:16, 2 декабря 2013
Слайд:Методы верификации проекта
- Имитационная верификация - верификация с использованием моделирования
- Формальная верификация -проверка модели с целью доказательства ее корректности и эквивалентности спецификации
(Пример: пакет FormulPro ф. MentorGraphics, пакеты фирмы Verplex, www.verplex.com)
Слайд:Верификация описания
Слайд:Верификация описания:step
- Среда моделирования
- Active-HDL™
- Riviera-PRO™
- NC-Sim®
- ModelSim®
- QuestaSim®
- VCS-MX®
- Структура проекта
- Тестовое окружение
- RTL-модель (Verilog,VHDL)
- Эталонная модель (SystemC)
- Assert'ы (psl, OVVM, UVM)
- Отчеты и базы по результатам моделирования
Слайд: Типы тестов ФК
На что проверяем:
- Детерминистский - Проверяет обычные режимы работы системы, а также функционирование в граничных условиях на основе фиксированного набора тестов
- Случайный - Предполагает наличие генератора случайных входных воздействий
- Транзакционный - Фиксирует внимание на проверке интерфейсов и прохождению пакетов данных через них
Способ проведения проверки:
- "Черный ящик"
- "Серый ящик"
- "Прозрачный ящик"
Слайд: Полнота тестов
-
В реальных условия обычно полный перебор невозможен
-
Поэтому поступают следующим образом. Например для сумматора:
- Тестируют как "Серый ящик" и проверяют простейшие случаи 0+0, 0+1, FFFF+FFFF, 0+FFFF
- Затем целенаправленно проверяют граничные условия - переполнение, перенос
- Затем тестирую как "Черный ящик" на случайном наборе тестов
- Оценивают полноту проверки модели
Слайд: Метрики оценки полноты тестов
Необходимое условие : Управляемость (выполняется строка или переход) Достаточное условие : Наблюдаемость (результат исполнения влияет на выход сравниваемый с эталоном)
- Эвристические метрики - основанные на статистике появления ошибок
- Программные метрики
- Полнота покрытия тестом строк кода модели
- Полнота покрытия переходов (число пополнений ветвей оператора if и case )
- Полнота покрытия путей (все пути в графе программы)
- Полнота покрытия выражений (оценка числа вычислений выражения по различных наборах)
- Полнота переключений из 0 в 1 и из 1 в 0 каждого бита
- Автоматно-метрический подход (лучший вариант использовать формальную верификацию для автоматов)
- Моделирование неисправностей (в модель вносится неисправность)
- Мониторинг событий
Слайд: Включение контроля метрик в ModelSim
В ModelSim для учета метрик покрытия при компиляции проекта нужно задать в меню Compile->Compiler option
Слайд: Метрики в ModelSim
Слайд:Эталонная модель на языке SystemC
- Высокий уровень абстракции
- Скорость моделирования
- Возможности языка C++
- Инструменты для автоматизации
- Совместное моделирование с другими HDL-языками