что значит верифицировать модель
Верификация цифровых схем. Обзор
Я постараюсь в общем рассказать о верификации цифровых схем.
Верификация в данной области — это важный процесс, требующий привлечения опытных инженеров. Например, специалист по верификации, работающий над системами с ЦПУ, как правило должен владеть скриптовыми языками и языками командных оболочек (Tcl, bash, Makefile и т.п.), языками программирования (С, С++, ассемблер), HDL/HDVL (SystemVerilog [10, Appendix C — история языка][11], Verilog, VHDL), современными методологиями и framework’ами (UVM).
Доля времени, затраченного на верификацию, доходит до 70-80% от всего времени проекта. Одна из основных причин такого внимания в том, что к микросхеме нельзя выпустить “патч” после того, как ее отдали в производство, можно только выпустить “silicon errata” (это не касается проектов ПЛИС/FPGA).
Под цифровыми схемами я подразумеваю:
Актуальные проблемы верификации
О текущем состояние и тенденциях в сфере верификации можно судить по следующим вызовам и проблемам, с которыми она сталкивается [6]:
Типы верификации
Верификацию цифровых схем можно разделить на следующие основные типы:
Функциональная верификация в объеме всех работ наиболее значительна и требует непосредственного участия человека.
Статический анализ кода требуют только первоначальной настройки инструментов, которая соответствует внутренним правилам проектирования, принятым в компании, дальше инструмент занимается тем, что выдает “ценные указания” разработчикам и постоянного присмотра не требует.
Инструменты формальной верификации часто тоже весьма самостоятельны, требует только внимательного анализа отчетов, которые они генерируют. Они также подходят для реверс-инжиниринга, когда вам, по какой-то одному вам известной причине, приходится восстанавливать код из списка цепей.
Примеры инструментов верификации
Примеры инструментов верификации цифровых схем (маршрут digital-on-top):
Методы функциональной верификации
Функциональная верификация — представляет собой набор тестов, условно позволю себе разбить на три группы (это не догма, это из личного опыта):
Первые две стадии поддаются автоматизации с помощью UVC/VIP(Universal Verification Component/Verification IP) и достаточно быстро там можно нарастить объем различных тестов, в том числе — генерируемых автоматически. Третья стадия — это «masterpiece» в верификации, эта стадия требует неординарного подхода и опыта, очень сложно автоматизируется, т.к. большинство ситуаций — это отдельный алгоритм, возможно скрипт для САПР или инструкции для «ручных» проверок.
Типы метрик функциональной верификации
Метрики — это показатели охвата проекта тестами. Они нужны для того, чтобы понять какие еще тесты необходимо разработать для проверки возможных ситуаций и сколько предположительно времени может занять верификация [16].
К сожалению, только один тип метрик оценивается на основании исходного кода проекта, определение критериев для остальных типов — это результат интеллектуального труда.
К тому же, необходимо помнить, что достижение желаемых показателей одним типом метрик никак не говорит о работоспособности в целом, всегда необходимо оценивать комплекс.
Методы функциональной верификации
Directed Tests Method (DTM)
Прямые, осмысленные тесты. Если принимается этот метод в проекте, то план верификации составляется из тестов направленных на проверку поведения ОВ в конкретных интересующих точках(состояниях). Проверить все возможные ситуации, особенно в сложных проектах, почти не возможно.
При этом проблемы, которые могут возникнуть в ситуациях не покрытых тестами не обнаруживаются до того, как устройство начинают использовать в реальных условиях. Обычно в этих тестах используются метрики функционального покрытия.
Coverage-Driven Verification, Metric-Driven Verification (CDV, MDV) [17]
Концепция создания тестов, направленная на достижение определенного «тестового покрытия» ОВ. Опираются на метрики, чтобы понять какие тесты необходимо добавить в план верификации, чтобы достигнуть целевых показателей готовности проекта.
Необходимо использовать инструменты анализа покрытия, чтобы посмотреть, что еще добавить в план верификации. По-сути, если начать корректировать план верификации в DTM, опираясь хотя бы на “покрытие кода”, то уже можно считать, что от DTM плавно перешли к CDV.
Constrained Random Verification (CRV)
Верификация подачей случайных воздействий. Это действительно автоматические тесты с генерацией случайных воздействий на ОВ, только их трудно представить без симбиоза с ABV.
Метод очень затратный вначале, т.к. требуется длительное время на подготовку инструментов. После того как начальный этап подготовки пройден, то тестирование может запускаться автоматически, многократно с разными исходными данными. При выявлении несоответствия assertion, команда разработчиков и верификаторов приступает к анализу выявленной ошибки.
В реальном проекте нельзя ограничится только этим методом, т.к. этим методом можно собрать покрытие кода и покрытие утверждений, а они могут ничего не говорить о правильности работы ОВ, т.е. соответствии спецификации. Его необходимо дополнять функциональными тестами.
Для реализации данной методологии требуется:
Assertion Based Verification[9] (ABV)
Верификация с помощью утверждений. Наверное, это даже не самостоятельный метод, а некоторый компонент или базовая составляющая вышеупомянутых.
Важным вопросом при ABV является как распределить assertions, какие из них лучше поместить в исходные код ОВ, какие нужно иметь в тестовое окружение.
Сразу стоит отметить, что язык Verilog не имеет assertions в своем стандарте (их можно создать с использованием основных конструкций языка, но необходимы директивы для синтезатора, чтобы он не занимался их преобразованием). Аssertions появляются только в стандарте SystemVerilog, а так же они изначально были в стандарте языка VHDL и e.
Предлагаю ознакомиться с рекомендациями специалистов, в том числе Clifford’а Cummings’а [12, статьи про SVA] о распределении работ по их написанию, а также с материалами по ABV на сайте Verification Academy [13].
Верификация модели
Верификация модели [model verification] — проверка ее истинности, адекватности. В отношении к дескриптивным моделям В. м. сводится к сопоставлению расчетных результатов по модели с соответствующими данными действительности — массовыми фактами и закономерностями экономического развития. В отношении же нормативных (в том числе оптимизационных) моделей положение сложнее: в условиях действующего экономического механизма моделируемый объект подвергается различным управляющим воздействиям, не предусмотренным моделью; надо ставить специальный экономический эксперимент с учетом требований чистоты, т.е. устранения влияния этих воздействий, что представляет собой трудную, во многом еще не решенную задачу.
Верификация имитационной модели есть проверка соответствия ее поведения предположениям экспериментатора (см. Машинная имитация). Когда модель организована в вычислительную программу для компьютера, то сначала, как обычно, исправляют ошибки в ее записи на алгоритмическом языке, а затем переходят к верификации. Это первый этап действительной подготовки к имитационному эксперименту. Подбираются некоторые исходные данные, для которых могут быть предсказаны результаты просчета. Если окажется, что компьютер выдает данные, противоречащие тем, которые ожидались при формировании модели, значит, модель неверна. В обратном случае переходят к следующему этапу проверки работоспособности модели — ее валидации.
Полезное
Смотреть что такое «Верификация модели» в других словарях:
верификация модели — Проверка ее истинности, адекватности. В отношении к дескриптивным моделям В. м. сводится к сопоставлению расчетных результатов по модели с соответствующими данными действительности массовыми фактами и закономерностями экономического развития. В… … Справочник технического переводчика
верификация (проверка) — 1. Процесс определения соответствия качества или характеристик продукта или услуги тому, что предписывается, предопределяется или требуется. Верификация тесно связана с обеспечением качества и контролем качества. верификация компьютерной системы… … Справочник технического переводчика
верификация — 02.02.03 верификация (символ) [verification]: Техническая процедура проверки, посредством которой производят измерения символа для определения его соответствия требованиям спецификации к этому символу. Источник … Словарь-справочник терминов нормативно-технической документации
верификация манекена — 3.7 верификация манекена (manikin verification): Действия по подтверждению того, что выполнение функций компьютерного манекена соответствует установленным требованиям. Источник … Словарь-справочник терминов нормативно-технической документации
Верификация — (позднелат. verificatio доказательство, подтверждение, от лат. verus истинный и facio делаю) эмпирическое подтверждение теоретических положений науки путём «возвращения» к наглядному уровню познания, когда идеальный характер абстракций… … Большая советская энциклопедия
адекватность модели — Соответствие модели моделируемому объекту или процессу. [http://sl3d.ru/o slovare.html] адекватность модели Соответствие модели моделируемому объекту или процессу. Адекватность в какой то мере условное понятие, так как полного соответствия модели … Справочник технического переводчика
Адекватность модели — [adequacy of a model] соответствие модели моделируемому объекту или процессу. Адекватность в какой то мере условное понятие, так как полного соответствия модели реальному объекту быть не может: иначе это была бы не модель, а сам объект. При… … Экономико-математический словарь
инверсная верификация — Верификация прогноза путём проверки адекватности прогнозной модели на периоде прогнозной ретроспекции … Политехнический терминологический толковый словарь
ГОСТ Р ИСО 15536-2-2010: Эргономика. Компьютерные манекены и модели тела. Часть 2. Верификация функций и валидация размеров компьютерного манекена для систем моделирования — Терминология ГОСТ Р ИСО 15536 2 2010: Эргономика. Компьютерные манекены и модели тела. Часть 2. Верификация функций и валидация размеров компьютерного манекена для систем моделирования оригинал документа: 3.8 валидация манекена (manikin… … Словарь-справочник терминов нормативно-технической документации
Что такое верификация и чем она отличается от валидации: цели и принципы + примеры верификации в разных сферах
В последние годы у чиновников, спортсменов, актеров и крупных бизнесменов стало модно объявлять о переменах в своей жизни через соцсети – в Твиттере, например. Откуда аудитория узнаёт, что информация исходит именно от человека, чьим именем она подписана? Для этого существует такое понятие, как верификация. Используется она, конечно, не только для подтверждения аккаунтов соцсетях, а во многих сферах человеческой деятельности и имеет большое значение для нашей жизни. Что же такое верификация, чем она отличается от валидации, для чего нужна и что можно выяснить с ее помощью?
Что такое верификация и для чего она нужна
Верификация – это подтверждение правильности какого-либо действия, предмета или события после проверки. Термин произошел от двух латинских слов: verus («истинный») и facere («делать»). Буквально получаем – «делать что-либо истинным», «подтверждать». В переводе с английского языка понятие verification обозначает и проверку, и контроль, и засвидетельствование, и подтверждение под присягой.
Верификация используется в различных сферах – в производстве товаров и услуг, в медицине, в интернете. Верификация модели дает возможность создать качественный прототип будущего изделия. В IT-технологиях верификация применяется для подтверждения личности пользователя при работе в Сети или использовании платежных систем. С ее помощью выявляют подделки, бракованные изделия, корректируют медицинские диагнозы, регистрируются в онлайн-сервисах и соцсетях.
Верификация имеет ценность и как философская категория, а также в других областях человеческого познания, где истинные утверждения нужно отличать от ложных.
В чем состоит принцип верификации
Принцип верификации таков: предположение должно подтверждаться при помощи опыта и не противоречить известным фактам. Банк предполагает, что владелец пластиковой карты – Иванов Иван Иванович, поскольку на вставленной в банкомат карте написаны именно такие данные. А подтвержден этот факт будет тогда, когда Иван Иванович правильно введет известный только ему пин-код.
При этом предположение должно в принципе быть познаваемым. Скажем, гипотеза о том, что вокруг нас существуют невидимые люди, которых мы не можем обнаружить, поскольку они невидимы – не поддается верификации, она в принципе не познаваема при нынешнем состоянии науки. Также не верифицируются утверждения типа «Маша любит Васю», поскольку у постороннего человека нет возможности «залезть в душу» к Маше, а верификация – категория объективная. Другое дело – фраза «Маша утверждает, что любит Васю» – мы можем точно сказать, говорила Маша о любви или нет.
Цели верификации
Главная цель верификации – подтвердить соответствие итогового результата теоретическому предположению или заданию. Если разрабатывался тот или иной продукт, его свойства должны соответствовать техническим требованиям к такого рода продуктам или техзаданию на разработку.
Если требовалось подтверждение личности пользователя того или иного банковского продукта, введенный пароль должен соответствовать изначально заложенному в систему клиентом или самим банком. Если выдвинута гипотеза о каком-либо явлении в природе или человеческой деятельности, она должна как минимум не противоречить имеющимся научным фактам.
Чем верификация отличается от валидации
Термины схожи между собой, иногда их даже путают. Причина в том, что обычный человек чаще всего верификацию и валидацию использует для подтверждения личности пользователя в информационных сетях и платежных системах. В этом случае действительно разница невелика – при верификации вы получаете возможность пользоваться сервисами (допуск к ним), а при валидации – получаете больше прав при пользовании сервисами (например, становятся доступными дополнительные функции в интернет-кошельке – вывод большего объема средств, переводы на карту и т.д.). А вот в сфере производства, в медицине и в других сферах между двумя этими понятиями принципиальное различие.
Верификация | Валидация | |
Что это такое | Соответствие изделия, модели или концепции заявленным требованиям. Мы собрали автомобиль. Он полностью соответствует техзаданию и едет. Верификация пройдена. | Применимость созданной модели, изделия или концепции на практике в конкретных условиях. Мы собрали автомобиль. Он соответствует техзаданию. Но не едет по льду. Валидация не пройдена. |
Для кого имеет значение | Для производителя, автора | Для потребителя, аудитории |
Кто проводит | Авторы, производители, разработчики | Тестировщики, потребители |
Обязательность использования | Обязательно (автомобиль должен быть сделан по техзаданию и должен ехать) | Необязательно (если мы знаем, что автомобиль едет, можно пробовать пускать его по льду, а можно и без испытаний спрогнозировать, что для успешной поездки нужна доработка в виде установки резины с шипами). |
Вид оценки | Объективная (соответствует ли изделие/модель стандартам) | Субъективная (годится ли изделие/модель для использования в конкретных условиях) |
Примеры верификации
В различных сферах верификация реализуется различными способами.
Верификация в производстве
Когда продукция выпущена, она должна пройти проверку на соответствие требуемым параметрам, стандартам, нормам и правилам. Верификацией занимается либо отдел технического контроля (ОТК), либо сотрудники, которым переданы такие обязанности.
Продукт проверяется на соответствие государственным или отраслевым стандартам, техусловиям, проекту, нормативной документации.
Также к верификации на производстве относится проверка на соответствие процессов компании системе менеджмента качества (стандарты ИСО). Здесь проверяется не только готовая продукция, но и производственные процессы – насколько их технологические и экологические параметры соответствуют международным нормам для такого рода процедур. Если не полностью соответствуют, то и конечный продукт получает менее высокую оценку, не проходит верификацию.
Верификация в медицине
В этой сфере есть два направления верификации. Первое пересекается с проверкой на производстве. Когда выпускается новый лекарственный препарат, производитель на выходе проверяет, соответствует ли его химический состав и формула тем, которые были переданы на предприятие в техническом задании.
Второе направление – верификация диагноза. Она проводится, если лечение не дает нужного результата. Если курс был назначен терапевтом или иным врачом, верифицировать диагноз может зав.отделением, главврач медучреждения или консилиум врачей. Проверяются как документальные источники (результаты анализов и исследований), так и непосредственно действия и назначения терапевта – соответствуют ли они тем, которые должны проводиться при заболевании, указанном в диагнозе. При необходимости назначаются новые, дополнительные исследования. Например, гистологическая верификация – это подтверждение существования опухоли при помощи исследования взятых у пациента тканей организма.
Верификация в интернет-технологиях
Здесь также есть несколько направлений.
Верификация в банках и платежных системах
Это, по сути, та же верификация пользователей. Вы подтверждаете, что являетесь владельцем карты, которая вставлена в банкомат или терминал оплаты. В случае с платежными системами (Яндекс.Деньги, WebMoney и другими) вы валидизируете свой кошелек, отправляя удостоверяющие вашу личность сканы документов администрации платежной системы и в зависимости от пакета документов получая доступ к различным функциям кошелька, а затем при каждом входе верифицируете себя в качестве владельца при помощи пароля.
Аналогичная процедура – если вы решили привязать карту к кошельку в платежной системе. Здесь вы верифицируете себя как владельца карты и ассоциируете карту с кошельком.
Верификация в философии и науке
В философии верификация – спорное понятие, вокруг которого сломано много копий. По общему правилу, под этим термином понимают выяснение истинности теоретических положений при помощи их практической проверки. Как уже говорилось в главе «В чем состоит принцип верификации», главным критерием является познаваемость, соответствие современным научным представлениям о мире. Когда мы говорим: «Люди не летают как птицы» – это истинное, верифицированное утверждение, поскольку законы физики не позволяют человеку летать аналогично пернатым. А вот утверждение «Самолет не может лететь со скоростью 10000 км/ч» не будет истинным, поскольку развитие техники может решить данную задачу, объективных препятствий к этому нет.
Это самые простые примеры, на деле же верифицируются целые философские концепции, объясняющие поведение широких масс людей, происхождение жизни на земле и так далее. Загвоздка в том, что такая верификация рациональна, она не учитывает метафизических концепций. Например, религии в таком ракурсе всегда оказываются неверифицированными, что для последователей духовных учений несколько обидно. Поэтому наряду с принципом верификации в философию ввели принцип фальсификации (опровержимости). Вы можете опровергнуть существование Бога? Вряд ли. Значит, эта категория получает право на существование наряду с рациональными концепциями.
Верификация в науке подразумевает выяснение, насколько выдвинутая гипотеза соответствует полученному практическому результату.
Ответы на часто задаваемые вопросы
Что значит «платеж не прошел стадию верификации»?
Это так называемая «ошибка 11020». Чаще всего встречается, когда покупку в интернет-магазине оплачивают банковской картой. В банках называют две причины возникновения такой ошибки:
Решается проблема через повторную отправку платежа в более позднее время либо звонком в службу поддержки.
При включении компьютер предлагает верифицировать файлы. Что это за процедура и для чего она нужна?
Верификация файлов – один из способов обеспечения безопасности в операционных системах. Нередко вирусы подменяют реальные файлы другими – с иным размером и предназначением, но с прежним названием. Проверка файловой системы позволяет вычислить такие псевдофайлы и удалить их. Такого рода верификацию рекомендуется проводить, если вы часто работаете в незнакомых сетях, используете чужие файлы или у вас проблемы с антивирусным программным обеспечением.
Можно ли использовать принцип верификации для распознавания лжи в бытовом общении?
На эту тему существует обширная литература, например, «5 принципов определения лжи» Ильи Анищенко, «Психология лжи» Пола Экмана, «Детекция лжи и обмана» и «Ложь: три способа выявления» Олдерта Фрая, «Я вижу, о чем вы думаете» Джо Наварро и многие другие. В них содержится много интересных советов, однако достоверных методик, позволяющих гарантированно отличать правду от лжи, не существует.
Принцип верификации заключается в том, что истинное высказывание должно подтверждаться практикой или хотя бы не противоречить известным фактам. Но в быту очень сложно сопоставить слова человека со всеми известными фактами, на такое способны очень немногие люди, и преимущественно в какой-либо узкой области знаний. Выявить обман «на лету» сложно даже для подготовленных специалистов. Это касается как инструментальных технологий («детектор лжи»), так и психологических («когда человек лжет, он смотрит влево и вверх») или логических («оппонент вспотел – значит, напряжен, а всё потому что врёт») методик. Слишком велик процент ошибок и неучтенных случайностей. Среди них – приписывание другим людям собственных эмоций и мотивов, недоучет индивидуальных психологических особенностей, влияние посторонних факторов (опасность, шумовое, световое воздействие, стресс и т.д.), подсказка ответа с вашей стороны, оценка мотивов собеседника по единственному признаку и другие.
Заключение
Верификация – важный процесс для человеческого общества. Она позволяет выявить технологические нарушения в сфере производства, скорректировать диагноз врача, отладить программное обеспечение, отличить владельца интернет-аккаунта от постороннего человека, а мошенника от законопослушного владельца банковской карты или кошелька в платежной системе.
Суть верификации – в сравнении результата с изначальными требованиями или существующими стандартами. Это формальный и объективный процесс, он не зависит от желания конкретного человека. Вы можете сколько угодно умолять оператора банка выдать вам деньги с карты, а он может как угодно вам сочувствовать, но если неправильно введен пин-код, верификация не пройдена, и банк не считает вас владельцем карты. Таблетка может быть очень похожа на дорогое лекарство, но если ее химический состав хоть чуть-чуть отличается, или она не прошла клинических испытаний, врач не вправе назначать ее как аналог.
Верификацию нужно отличать от валидации, особенно в производственной сфере. Верифицирует выпущенный продукт производитель – сравнивает его с техзаданием. А валидизирует уже заказчик – проверяет, насколько подходит изделие для использования в конкретных условиях. И если верификация допускает лишь два варианта (да или нет), то у валидизации есть еще и вариант «при условии». Женские туфли либо соответствуют стандарту для готовой продукции, принятому на фабрике, либо нет (верификация). А использовать их можно и зимой – но лишь при условии недолгого передвижения от дверей офиса до автомобиля (валидизация).
Верификация как философское понятие позволяет человеку расширять познание мира, отличая прогрессивные концепции от тупиковых. Однако возводить принцип верификации в абсолют – «ложно всё, что не познаваемо» – значит ограничивать развитие человечества.
Обычный же человек чаще всего сталкивается с верификацией в интернете, где нужно подтвердить свою личность, и в платежных системах, где требуется ввести пин-код или верификационный код.