<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://simhard.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://simhard.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=164.177.209.52</id>
		<title>Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://simhard.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=164.177.209.52"/>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/164.177.209.52"/>
		<updated>2026-04-18T19:35:06Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.21.3</generator>

	<entry>
		<id>http://simhard.com/wiki/index.php/%D0%A1%D0%BF%D0%B5%D1%86_%D0%BA%D1%83%D1%80%D1%81_(%D0%98%D0%B7%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B_VHDL)/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F</id>
		<title>Спец курс (Избранные главы VHDL)/Верификация описания</title>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php/%D0%A1%D0%BF%D0%B5%D1%86_%D0%BA%D1%83%D1%80%D1%81_(%D0%98%D0%B7%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B3%D0%BB%D0%B0%D0%B2%D1%8B_VHDL)/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F"/>
				<updated>2012-11-21T10:24:20Z</updated>
		
		<summary type="html">&lt;p&gt;164.177.209.52: /* Слайд: Метрики в ModelSim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;slideshow style=&amp;quot;custis&amp;quot; headingmark=&amp;quot;Слайд:&amp;quot; incmark=&amp;quot;:step&amp;quot; scaled=&amp;quot;true&amp;quot; &amp;gt;&lt;br /&gt;
;title: '''Верификация описания.'''&lt;br /&gt;
;author: Зайцев В.С.&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:Функциональная_верификация.mm]]&lt;br /&gt;
&lt;br /&gt;
==Слайд:Методы верификации проекта==&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Имитационная верификация&amp;lt;/big&amp;gt;'''}} - верификация с использованием моделирования&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Формальная верификация&amp;lt;/big&amp;gt;'''}} -проверка модели с целью доказательства ее корректности и эквивалентности спецификации &lt;br /&gt;
 (Пример: пакет FormulPro ф. MentorGraphics, пакеты фирмы Verplex, www.verplex.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Слайд:Верификация описания==&lt;br /&gt;
[[Файл:Процевв_верификации.png]]&lt;br /&gt;
&lt;br /&gt;
==Слайд:Верификация описания:step==&lt;br /&gt;
* {{Гол|''' &amp;lt;big&amp;gt;Среда моделирования&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
** Active-HDL™&lt;br /&gt;
** Riviera-PRO™&lt;br /&gt;
** NC-Sim®&lt;br /&gt;
** ModelSim®&lt;br /&gt;
** QuestaSim®&lt;br /&gt;
** VCS-MX®&lt;br /&gt;
* {{Гол|'''&amp;lt;big&amp;gt;Структура проекта&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
** Тестовое окружение&lt;br /&gt;
** RTL-модель (Verilog,VHDL)&lt;br /&gt;
** Эталонная модель (SystemC)&lt;br /&gt;
** Assert'ы (psl, OVVM, UVM)&lt;br /&gt;
** Отчеты и базы по результатам моделирования&lt;br /&gt;
&lt;br /&gt;
==Слайд: Типы тестов ФК==&lt;br /&gt;
 На что проверяем:&lt;br /&gt;
* {{Гол|'''&amp;lt;big&amp;gt;Детерминистский&amp;lt;/big&amp;gt;'''}} - Проверяет обычные режимы работы системы, а также функционирование в граничных условиях на основе фиксированного набора тестов&lt;br /&gt;
* {{Гол|'''&amp;lt;big&amp;gt;Случайный&amp;lt;/big&amp;gt;'''}} - Предполагает наличие генератора случайных входных воздействий&lt;br /&gt;
* {{Гол|'''&amp;lt;big&amp;gt;Транзакционный&amp;lt;/big&amp;gt;'''}} - Фиксирует внимание на проверке интерфейсов и прохождению пакетов данных через них&lt;br /&gt;
&lt;br /&gt;
 Способ проведения проверки:&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;&amp;quot;Черный ящик&amp;quot;&amp;lt;/big&amp;gt;'''}}     &lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;&amp;quot;Серый ящик&amp;quot;&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;&amp;quot;Прозрачный ящик&amp;quot;&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
&lt;br /&gt;
==Слайд: Полнота тестов ==&lt;br /&gt;
&lt;br /&gt;
* {{X|24px}}В реальных условия обычно полный перебор {{Кр|'''&amp;lt;big&amp;gt;невозможен&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
* {{V|24px}}Поэтому поступают следующим образом. Например для сумматора:&lt;br /&gt;
# Тестируют как {{Фио|'''&amp;quot;Серый ящик&amp;quot;'''}} и проверяют простейшие случаи 0+0, 0+1, FFFF+FFFF, 0+FFFF&lt;br /&gt;
# Затем целенаправленно проверяют граничные условия - переполнение, перенос&lt;br /&gt;
# Затем тестирую как {{Фио|'''&amp;quot;Черный ящик&amp;quot;'''}} на случайном наборе тестов&lt;br /&gt;
# Оценивают полноту проверки модели&lt;br /&gt;
&lt;br /&gt;
==Слайд: Метрики оценки полноты тестов==&lt;br /&gt;
Необходимое условие : Управляемость (выполняется строка или переход)&lt;br /&gt;
Достаточное условие : Наблюдаемость (результат исполнения влияет на выход сравниваемый с эталоном)&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Эвристические метрики &amp;lt;/big&amp;gt;'''}} - основанные на статистике появления ошибок&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Программные метрики &amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
** '''Полнота покрытия тестом строк кода модели'''&lt;br /&gt;
** '''Полнота покрытия переходов''' (число пополнений ветвей оператора if и case )&lt;br /&gt;
** '''Полнота покрытия путей''' (все пути в графе программы)&lt;br /&gt;
** '''Полнота покрытия выражений''' (оценка числа вычислений выражения по различных наборах)&lt;br /&gt;
** '''Полнота переключений из 0 в 1 и из 1 в 0 каждого бита'''&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Автоматно-метрический подход &amp;lt;/big&amp;gt;'''}}(лучший вариант использовать формальную верификацию для автоматов)&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Моделирование неисправностей &amp;lt;/big&amp;gt;'''}}(в модель вносится неисправность)&lt;br /&gt;
* {{Сн|'''&amp;lt;big&amp;gt;Мониторинг событий&amp;lt;/big&amp;gt;'''}}&lt;br /&gt;
&lt;br /&gt;
== Слайд: Включение контроля метрик в ModelSim ==&lt;br /&gt;
{{V|24px}} В '''ModelSim''' для учета метрик покрытия при компиляции проекта нужно задать в меню '''Compile-&amp;gt;Compiler option'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slides split=&amp;quot;-----&amp;quot; width=&amp;quot;600&amp;quot; &amp;gt;&lt;br /&gt;
[[Файл:Опции компиляции покрытия.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/slides&amp;gt;&lt;br /&gt;
== Слайд: Метрики в ModelSim ==&lt;br /&gt;
&lt;br /&gt;
==Слайд:Эталонная модель на языке ''{{Зел| &amp;lt;big&amp;gt;SystemC&amp;lt;/big&amp;gt;}}''==&lt;br /&gt;
&lt;br /&gt;
# Высокий уровень абстракции&lt;br /&gt;
# Скорость моделирования&lt;br /&gt;
# Возможности языка C++&lt;br /&gt;
# Инструменты для автоматизации &lt;br /&gt;
# Совместное моделирование с другими HDL-языками&lt;/div&gt;</summary>
		<author><name>164.177.209.52</name></author>	</entry>

	</feed>