<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.simhard.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.simhard.com/wiki/index.php?action=history&amp;feed=atom&amp;title=OVM%2FBasic_OVM%2FSession2_-_Introduction_to_OVM</id>
		<title>OVM/Basic OVM/Session2 - Introduction to OVM - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.simhard.com/wiki/index.php?action=history&amp;feed=atom&amp;title=OVM%2FBasic_OVM%2FSession2_-_Introduction_to_OVM"/>
		<link rel="alternate" type="text/html" href="http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;action=history"/>
		<updated>2026-04-07T09:36:11Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.21.3</generator>

	<entry>
		<id>http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3429&amp;oldid=prev</id>
		<title>Yura в 20:25, 23 ноября 2013</title>
		<link rel="alternate" type="text/html" href="http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3429&amp;oldid=prev"/>
				<updated>2013-11-23T20:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;amp;diff=3429&amp;amp;oldid=3404&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yura</name></author>	</entry>

	<entry>
		<id>http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3404&amp;oldid=prev</id>
		<title>ANA в 15:06, 21 ноября 2013</title>
		<link rel="alternate" type="text/html" href="http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3404&amp;oldid=prev"/>
				<updated>2013-11-21T15:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:06, 21 ноября 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{OVM TOC}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{OVM TOC}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[file:module_basic_ovm_session2_introduction_ovm_jaynsley.pdf|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;page1&lt;/del&gt;|600px]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[file:module_basic_ovm_session2_introduction_ovm_jaynsley.pdf|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;page=1&lt;/ins&gt;|600px]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Здравствуйте, я – Джон Эйнсли из  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Здравствуйте, я – Джон Эйнсли из  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ANA</name></author>	</entry>

	<entry>
		<id>http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3396&amp;oldid=prev</id>
		<title>ANA: Новая страница: «{{OVM TOC}}  600px  Здравствуйте, я – Джон Эйнсли из   комп…»</title>
		<link rel="alternate" type="text/html" href="http://www.simhard.com/wiki/index.php?title=OVM/Basic_OVM/Session2_-_Introduction_to_OVM&amp;diff=3396&amp;oldid=prev"/>
				<updated>2013-11-21T14:49:13Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «{{OVM TOC}}  &lt;a href=&quot;/wiki/index.php/%D0%A4%D0%B0%D0%B9%D0%BB:Module_basic_ovm_session2_introduction_ovm_jaynsley.pdf&quot; title=&quot;Файл:Module basic ovm session2 introduction ovm jaynsley.pdf&quot;&gt;600px&lt;/a&gt;  Здравствуйте, я – Джон Эйнсли из   комп…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{OVM TOC}}&lt;br /&gt;
&lt;br /&gt;
[[file:module_basic_ovm_session2_introduction_ovm_jaynsley.pdf|page1|600px]]&lt;br /&gt;
&lt;br /&gt;
Здравствуйте, я – Джон Эйнсли из  &lt;br /&gt;
компании Doulos. &lt;br /&gt;
&lt;br /&gt;
Это второе занятие из серии «Основы OVM &lt;br /&gt;
– введение в OVM». &lt;br /&gt;
&lt;br /&gt;
На предыдущем занятии я начал с базовой &lt;br /&gt;
информации об ограниченно случайной &lt;br /&gt;
&lt;br /&gt;
верификации, чтобы &lt;br /&gt;
показать мотивы, зачем развивать и &lt;br /&gt;
улучшать свою методологию верификации: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
возможно, прямо от традиционных &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
тест-бенчей VHDL и Verilog к чему-то более &lt;br /&gt;
сложному. &lt;br /&gt;
&lt;br /&gt;
Этот первый модуль на самом деле &lt;br /&gt;
рассчитан на представление мотивации для &lt;br /&gt;
&lt;br /&gt;
использования OVM. &lt;br /&gt;
Итак, в данном модуле, на этом занятии мы &lt;br /&gt;
&lt;br /&gt;
более подробно рассмотрим OVM, и я &lt;br /&gt;
представлю общую картину OVM и &lt;br /&gt;
&lt;br /&gt;
расскажу о некоторых технических &lt;br /&gt;
особенностях. &lt;br /&gt;
&lt;br /&gt;
Итак, что такое OVM? OVM означает Open &lt;br /&gt;
Verification Methodology (методология &lt;br /&gt;
&lt;br /&gt;
открытой верификации). &lt;br /&gt;
OVM позволяет вам написать тест-бенчи &lt;br /&gt;
&lt;br /&gt;
для систем, которые выражаются в Verilog, &lt;br /&gt;
SystemVerilog, VHDL или даже SystemC. &lt;br /&gt;
&lt;br /&gt;
OVM формально является библиотекой &lt;br /&gt;
классов SystemVerilog. &lt;br /&gt;
&lt;br /&gt;
Итак, OVM состоит из тела кода &lt;br /&gt;
SystemVerilog и соответствующей &lt;br /&gt;
&lt;br /&gt;
практической документации.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OVM предлагается по общедоступной лицензии, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
конкретная лицензия, которая была &lt;br /&gt;
выбрана – это лицензия Apache. &lt;br /&gt;
&lt;br /&gt;
Лицензия Apache – одна из наиболее &lt;br /&gt;
свободных общедоступных лицензий: это &lt;br /&gt;
&lt;br /&gt;
означает, что OVM доступна вам бесплатно, &lt;br /&gt;
в форме исходного кода, и с ней можно &lt;br /&gt;
&lt;br /&gt;
делать почти все, что вам хочется. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OVM – результат совместной разработки &lt;br /&gt;
Cadence и Mentor. Эта система обратно &lt;br /&gt;
&lt;br /&gt;
совместима с более ранними &lt;br /&gt;
методологиями Cadence и Mentor. &lt;br /&gt;
&lt;br /&gt;
Вам не придется мучиться с ней, начиная &lt;br /&gt;
все с нуля – она основана на проверенных &lt;br /&gt;
&lt;br /&gt;
методологиях, которые существуют не &lt;br /&gt;
первый год. &lt;br /&gt;
&lt;br /&gt;
Это также означает, что вы берете &lt;br /&gt;
существующий код AVM и URM и запускаете &lt;br /&gt;
&lt;br /&gt;
его без модификаций в среде OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Хотя OVM формально является &lt;br /&gt;
библиотекой классов SystemVerilog, всегда &lt;br /&gt;
&lt;br /&gt;
предполагалось, что она будет &lt;br /&gt;
использоваться в многоязычной среде &lt;br /&gt;
&lt;br /&gt;
моделирования. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так что вполне возможно использование &lt;br /&gt;
верификационной среды OVM с &lt;br /&gt;
&lt;br /&gt;
тестируемой системой VHDL или &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
использовать стандартную модель SystemC &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
или C++ в верификационной среде OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь обратимся к некоторым основным &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
характеристикам OVM, и главное здесь – &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
стандартизация и непротиворечивость, а не &lt;br /&gt;
изобретение колеса заново. &lt;br /&gt;
&lt;br /&gt;
SystemVerilog – очень большой и очень &lt;br /&gt;
сложный язык, и за последние несколько &lt;br /&gt;
&lt;br /&gt;
лет компании разработали свои &lt;br /&gt;
собственные способы написания &lt;br /&gt;
&lt;br /&gt;
тест-бенчей SystemVerilog и&lt;br /&gt;
последующего создания&lt;br /&gt;
&lt;br /&gt;
все более более сложных  &lt;br /&gt;
верификационных сред. &lt;br /&gt;
&lt;br /&gt;
И опасность здесь состоит в том, что &lt;br /&gt;
каждый делает свое дело, и все создают &lt;br /&gt;
&lt;br /&gt;
верификационные среды, несовместимые &lt;br /&gt;
друг с другом. &lt;br /&gt;
&lt;br /&gt;
Таким образом, одно из основных &lt;br /&gt;
направлений в рамках OVM – это создание &lt;br /&gt;
&lt;br /&gt;
стандартной и непротиворечивой &lt;br /&gt;
верификационной среды, благодаря &lt;br /&gt;
&lt;br /&gt;
которой вы можете многократно &lt;br /&gt;
использовать не только код, но и &lt;br /&gt;
&lt;br /&gt;
стандарты кода, свои навыки и утилиты от &lt;br /&gt;
проекта к проекту. В частности, OVM &lt;br /&gt;
&lt;br /&gt;
поддерживает ограниченно случайную &lt;br /&gt;
верификацию по охвату, как я объяснял на &lt;br /&gt;
&lt;br /&gt;
первом, вводном занятии. OVM также &lt;br /&gt;
позволяет создавать настраиваемые и &lt;br /&gt;
&lt;br /&gt;
гибкие тест-бенчи. И главное здесь – &lt;br /&gt;
создание тест-бенчей или &lt;br /&gt;
&lt;br /&gt;
верификационных сред, которые могут &lt;br /&gt;
быть многократно использованы от проекта &lt;br /&gt;
&lt;br /&gt;
к проекту путем настройки, а не изменения &lt;br /&gt;
исходного кода. &lt;br /&gt;
&lt;br /&gt;
Таким образом, во многом акцент здесь &lt;br /&gt;
делается на многократном использовании &lt;br /&gt;
&lt;br /&gt;
верификации, на создании &lt;br /&gt;
воспроизводимых компонентов &lt;br /&gt;
&lt;br /&gt;
верификации. При этом OVM в &lt;br /&gt;
своей работе отделяет тесты от тест-бенчей. &lt;br /&gt;
&lt;br /&gt;
Когда я пользуюсь терминами &lt;br /&gt;
«верификационная среда» и «тест-бенч», &lt;br /&gt;
&lt;br /&gt;
эти термины – практически синонимы. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В OVM тесты изолированы от тест-бенчей, &lt;br /&gt;
так что один тест-бенч может многократно &lt;br /&gt;
&lt;br /&gt;
использоваться для разных тестов. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В верификационной среде OVM использует &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
связь транзакционного уровня, и для этого &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
используется стандарт TLM, созданный в &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
мире SystemC. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OVM также широко использует &lt;br /&gt;
многоуровневые последовательные &lt;br /&gt;
&lt;br /&gt;
стимулы, также называемые &lt;br /&gt;
последовательностями. &lt;br /&gt;
&lt;br /&gt;
Стимулы могут быть созданы OVM с &lt;br /&gt;
помощью ряда последовательностей, &lt;br /&gt;
&lt;br /&gt;
которые могут моделировать протокол, &lt;br /&gt;
связанный с вашим приложением. &lt;br /&gt;
&lt;br /&gt;
Наконец, OVM предлагает стандартную &lt;br /&gt;
службу сообщений, так что ошибки, &lt;br /&gt;
&lt;br /&gt;
отчеты, предупреждения могут &lt;br /&gt;
обрабатываться стандартным &lt;br /&gt;
&lt;br /&gt;
единообразным способом. &lt;br /&gt;
Возьмем одну из этих тем – тесты и &lt;br /&gt;
&lt;br /&gt;
тест-бенч. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В тест-бенче OVM большая часть кода идет  &lt;br /&gt;
в фиксированной верификационной среде &lt;br /&gt;
&lt;br /&gt;
многократного действия. &lt;br /&gt;
И каждый тест приходит к этому коду, &lt;br /&gt;
&lt;br /&gt;
исправляет или настраивает его в целях &lt;br /&gt;
управления тестом с тем, чтобы &lt;br /&gt;
&lt;br /&gt;
реализовать конкретные характеристики &lt;br /&gt;
тестируемой системы. &lt;br /&gt;
&lt;br /&gt;
Итак, в итоге у вас получается единое &lt;br /&gt;
фиксированное тело кода &lt;br /&gt;
&lt;br /&gt;
верификационной среды, и библиотека &lt;br /&gt;
тестов, которые можно поочередно &lt;br /&gt;
&lt;br /&gt;
выбирать и запускать без необходимости в &lt;br /&gt;
изменении или рекомпиляции основной &lt;br /&gt;
&lt;br /&gt;
верификационной среды. &lt;br /&gt;
Затем – многоуровневые последовательные &lt;br /&gt;
&lt;br /&gt;
стимулы, так что на самом нижнем уровне &lt;br /&gt;
верификационная среда OVM будет &lt;br /&gt;
содержать так называемый компонент &lt;br /&gt;
драйвера, этот драйвер непосредственно &lt;br /&gt;
контактирует с тестируемой системой, &lt;br /&gt;
подавая и отслеживая значения отдельных &lt;br /&gt;
частей канала (отклонения штырьков). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Драйвер будет получать команды из &lt;br /&gt;
остальной верификационной среды и &lt;br /&gt;
&lt;br /&gt;
преобразовывать их в отклонения &lt;br /&gt;
штырьков. &lt;br /&gt;
&lt;br /&gt;
В верификационной среде эти команды &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
представлены в виде так называемых &lt;br /&gt;
транзакций. &lt;br /&gt;
&lt;br /&gt;
Таким образом, при моделировании на &lt;br /&gt;
транзакционном уровне, которое &lt;br /&gt;
&lt;br /&gt;
представляет собой отдельный предмет для &lt;br /&gt;
изучения, транзакция – это &lt;br /&gt;
&lt;br /&gt;
абстрагированное понятие контакта. &lt;br /&gt;
Она может представлять собой пакет &lt;br /&gt;
&lt;br /&gt;
данных или цикл чтения или записи на &lt;br /&gt;
шине. Драйвер получает транзакции &lt;br /&gt;
&lt;br /&gt;
из верификационной среды и преобразует &lt;br /&gt;
их в отклонения штырьков. &lt;br /&gt;
&lt;br /&gt;
Сами транзакции объединяются в так &lt;br /&gt;
называемые последовательности. &lt;br /&gt;
&lt;br /&gt;
Последовательность может состоять из &lt;br /&gt;
серии операций, которые могут создаваться &lt;br /&gt;
&lt;br /&gt;
случайно или могут быть направленными,  &lt;br /&gt;
чтобы реализовать тестируемую систему &lt;br /&gt;
&lt;br /&gt;
особым образом. &lt;br /&gt;
Затем последовательности могут быть &lt;br /&gt;
&lt;br /&gt;
объединяться в большие &lt;br /&gt;
последовательности в верификационной &lt;br /&gt;
&lt;br /&gt;
среде OVM, и эти последовательности &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
могут быть связаны друг с другом целым &lt;br /&gt;
рядом способов. &lt;br /&gt;
&lt;br /&gt;
Во-первых, последовательности могут быть &lt;br /&gt;
просто вложены в другие &lt;br /&gt;
&lt;br /&gt;
последовательности, или же  &lt;br /&gt;
последовательности могут быть уложены &lt;br /&gt;
&lt;br /&gt;
на разных уровнях так, чтобы они &lt;br /&gt;
представляли или соответствовали &lt;br /&gt;
&lt;br /&gt;
различным уровням в протокольном &lt;br /&gt;
пакете. Например, последовательность, &lt;br /&gt;
&lt;br /&gt;
представляющая нижний уровень в &lt;br /&gt;
протокольном пакете, может получать &lt;br /&gt;
&lt;br /&gt;
информацию от последовательности &lt;br /&gt;
верхнего уровня, а затем использовать ее в &lt;br /&gt;
&lt;br /&gt;
«сборке» транзакций нижнего уровня. &lt;br /&gt;
Так, OVM делает акцент на &lt;br /&gt;
&lt;br /&gt;
последовательностях: они дают широкие &lt;br /&gt;
возможности для создания многократно &lt;br /&gt;
&lt;br /&gt;
используемых компонентов верификации. &lt;br /&gt;
Теперь я вкратце представлю общую &lt;br /&gt;
&lt;br /&gt;
картину OVM, чтобы на одном слайде  &lt;br /&gt;
показать вам, как связаны друг с другом &lt;br /&gt;
&lt;br /&gt;
отдельные части перед тем, как начнем &lt;br /&gt;
«копать вглубь» на следующих занятиях. &lt;br /&gt;
&lt;br /&gt;
Итак, все начинается с тестируемой &lt;br /&gt;
системы. &lt;br /&gt;
&lt;br /&gt;
Чтобы создать верификационную среду для &lt;br /&gt;
тестируемой системы, мы начинаем &lt;br /&gt;
&lt;br /&gt;
экземплификацию компонентов &lt;br /&gt;
верификации. &lt;br /&gt;
&lt;br /&gt;
Иногда вам потребуется создавать такие &lt;br /&gt;
компоненты верификации с нуля, иногда &lt;br /&gt;
&lt;br /&gt;
вы сможете использовать компоненты из &lt;br /&gt;
более ранних проектов, иногда вы изучите &lt;br /&gt;
&lt;br /&gt;
рынок, чтобы узнать, можно ли там купить &lt;br /&gt;
или одолжить то, что уже написал кто-то &lt;br /&gt;
&lt;br /&gt;
другой. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В OVM каждый отдельный компонент &lt;br /&gt;
верификации имеет стандартную структуру, &lt;br /&gt;
&lt;br /&gt;
которая предлагается как рекомендуемая &lt;br /&gt;
основа, как хороший способ создания &lt;br /&gt;
&lt;br /&gt;
многократно используемых компонентов &lt;br /&gt;
верификации. &lt;br /&gt;
&lt;br /&gt;
Эта структура – вы не обязаны соблюдать &lt;br /&gt;
ее буквально – однако это хорошая &lt;br /&gt;
&lt;br /&gt;
исходная точка, состояла из &lt;br /&gt;
последовательности или в драйвере, или &lt;br /&gt;
&lt;br /&gt;
нисходящий путь для реализации &lt;br /&gt;
транзакций в тестируемой системе, и &lt;br /&gt;
&lt;br /&gt;
мониторе на восходящем пути, которая &lt;br /&gt;
передает транзакции в остальную часть &lt;br /&gt;
&lt;br /&gt;
верификационной среды. &lt;br /&gt;
И если вы арендуете или покупаете &lt;br /&gt;
&lt;br /&gt;
компонент верификации, который уже &lt;br /&gt;
написан, то вам может потребоваться &lt;br /&gt;
&lt;br /&gt;
модификация этого компонента, чтобы он &lt;br /&gt;
вписался в конкретную верификационную &lt;br /&gt;
&lt;br /&gt;
среду. &lt;br /&gt;
И OVM помогает вам, обеспечивая так &lt;br /&gt;
&lt;br /&gt;
называемый конфигурационный механизм. &lt;br /&gt;
При экземплификации компонента &lt;br /&gt;
&lt;br /&gt;
верификации и включении его в &lt;br /&gt;
конкретный контекст среда может менять, &lt;br /&gt;
&lt;br /&gt;
реконфигурировать или настраивать &lt;br /&gt;
поведение этого конкретного компонента &lt;br /&gt;
&lt;br /&gt;
верификации, возможно, &lt;br /&gt;
непредсказуемыми способами, человеком, &lt;br /&gt;
&lt;br /&gt;
который первоначально написал компонент &lt;br /&gt;
верификации. &lt;br /&gt;
&lt;br /&gt;
Итак, верификационная среда обычно &lt;br /&gt;
содержит целое семейство компонентов &lt;br /&gt;
&lt;br /&gt;
различного рода, а также &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
последовательности, драйверы и мониторы, &lt;br /&gt;
мы можем также иметь так называемый &lt;br /&gt;
&lt;br /&gt;
виртуальный секвенсор – работа &lt;br /&gt;
виртуального секвенсора состоит в том, &lt;br /&gt;
&lt;br /&gt;
чтобы контролировать множество &lt;br /&gt;
последовательностей, возможно, &lt;br /&gt;
&lt;br /&gt;
распределенных по различным агентам, &lt;br /&gt;
чтобы координировать поведение по &lt;br /&gt;
&lt;br /&gt;
разным интерфейсам в тестируемой &lt;br /&gt;
системе. Также в верификационной среде &lt;br /&gt;
&lt;br /&gt;
могут быть другие, более общие  &lt;br /&gt;
компоненты монитора, возможно, &lt;br /&gt;
&lt;br /&gt;
компонент монитора, который связан с &lt;br /&gt;
поведением конкретной среды, и, может &lt;br /&gt;
&lt;br /&gt;
быть, табло результатов. &lt;br /&gt;
Табло результатов – это компонент, &lt;br /&gt;
&lt;br /&gt;
который собирает информацию и, если &lt;br /&gt;
нужно, показывает производительность &lt;br /&gt;
&lt;br /&gt;
тестируемой системы. Возможно, оно &lt;br /&gt;
сравнивает фактический выход &lt;br /&gt;
&lt;br /&gt;
тестируемой системы с ожидаемым &lt;br /&gt;
выходом тестируемой системы и отмечает &lt;br /&gt;
&lt;br /&gt;
результат тестируемой системы, чтобы &lt;br /&gt;
увидеть, насколько она была успешна. &lt;br /&gt;
&lt;br /&gt;
Над верификационной средой у нас есть &lt;br /&gt;
ряд тестов, где каждый тест обычно &lt;br /&gt;
&lt;br /&gt;
представляет собой небольшой фрагмент &lt;br /&gt;
кода, который настраивает &lt;br /&gt;
&lt;br /&gt;
верификационную среду, чтобы &lt;br /&gt;
реализовать тестируемую систему особым &lt;br /&gt;
&lt;br /&gt;
образом. &lt;br /&gt;
Так что тест может снова использовать &lt;br /&gt;
&lt;br /&gt;
конфигурационный механизм в OVM, чтобы &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
изменить поведение верификационной &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 среды по целому ряду направлений. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сам конфигурационный механизм состоит &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
из конфигурационной таблицы – эта &lt;br /&gt;
таблица фактически просто сохраняет &lt;br /&gt;
&lt;br /&gt;
множество параметров настройки, где &lt;br /&gt;
каждый параметр имеет имя и значение. &lt;br /&gt;
&lt;br /&gt;
Конфигурационная информация &lt;br /&gt;
настраивается «сверху вниз». &lt;br /&gt;
&lt;br /&gt;
Тест обычно устанавливает значение &lt;br /&gt;
параметров настройки в таблице, и эти &lt;br /&gt;
&lt;br /&gt;
значения могут быть затем использоваться &lt;br /&gt;
для настройки поведения отдельных &lt;br /&gt;
&lt;br /&gt;
компонентов верификации. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Я только подчеркнул некоторые основные &lt;br /&gt;
характеристики и преимущества OVM. &lt;br /&gt;
&lt;br /&gt;
Теперь посмотрим на сообщество OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это сообщество базируется на сайте &lt;br /&gt;
OVMworld.org. &lt;br /&gt;
&lt;br /&gt;
Здесь вы можете загрузить реальный &lt;br /&gt;
исходный код OVM – можно также &lt;br /&gt;
&lt;br /&gt;
загрузить разработки для сообщества OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Есть ряд полезных дополнений, все они &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
доступны для загрузки по лицензии с &lt;br /&gt;
открытым исходным кодом. &lt;br /&gt;
&lt;br /&gt;
Имеются утилиты и документация OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В частности, я бы хотел обратить внимание &lt;br /&gt;
на документацию HTML, которая является &lt;br /&gt;
&lt;br /&gt;
справочником по классам OVM. &lt;br /&gt;
Эта документация доступна на сайте &lt;br /&gt;
&lt;br /&gt;
OVMworld.org (так что вы можете найти ее &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
по поиску); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
она также включена в комплект OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если вы откроете эту документацию &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
из пакета OVM, вы фактически можете &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
связать ее с исходным кодом библиотеки &lt;br /&gt;
OVM, что делает ее отличным &lt;br /&gt;
справочником. &lt;br /&gt;
&lt;br /&gt;
Этот документ – не учебник и, конечно, не &lt;br /&gt;
конспект учебных занятий, однако как &lt;br /&gt;
справочник для быстрого поиска &lt;br /&gt;
&lt;br /&gt;
информации он превосходно объяснит вам &lt;br /&gt;
множество технических подробностей. &lt;br /&gt;
&lt;br /&gt;
Я закончу это занятие описанием &lt;br /&gt;
некоторых вещей, которые вам необходимо &lt;br /&gt;
&lt;br /&gt;
изучить, если вы думаете об использовании &lt;br /&gt;
OVM. &lt;br /&gt;
&lt;br /&gt;
Первое, что вам точно надо знать – это &lt;br /&gt;
SystemVerilog. &lt;br /&gt;
&lt;br /&gt;
Как я уже показывал, SystemVerilog – &lt;br /&gt;
большой и сложный язык сам по себе. &lt;br /&gt;
&lt;br /&gt;
В компании Doulos мы проводим учебные &lt;br /&gt;
занятия – обычно наши занятия по &lt;br /&gt;
&lt;br /&gt;
SystemVerilog (по изучению только самого &lt;br /&gt;
языка) рассчитан на 5 дней. &lt;br /&gt;
&lt;br /&gt;
Это позволяет вам понять, как много можно &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
изучить в SystemVerilog – при условии, что &lt;br /&gt;
вы уже знаете VHDL или Verilog. &lt;br /&gt;
&lt;br /&gt;
Затем – сама библиотека OVM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OVM – это библиотека классов, так что вам &lt;br /&gt;
необходимо изучить подробности &lt;br /&gt;
&lt;br /&gt;
библиотеки классов OVM, и мы коснемся &lt;br /&gt;
этой темы в этом модуле Академии &lt;br /&gt;
&lt;br /&gt;
верификации. &lt;br /&gt;
Мы шаг за шагом рассмотрим некоторые &lt;br /&gt;
&lt;br /&gt;
базовые классы в библиотеке OVM. &lt;br /&gt;
Однако библиотека классов OVM &lt;br /&gt;
&lt;br /&gt;
использует методы &lt;br /&gt;
объектно-ориентированного &lt;br /&gt;
&lt;br /&gt;
программирования (ООП) он использует &lt;br /&gt;
моделирование транзакционного уровня &lt;br /&gt;
&lt;br /&gt;
(TLM), и для успешного использования OVM &lt;br /&gt;
необходимо знать не только SystemVerilog и &lt;br /&gt;
&lt;br /&gt;
классы – вам также нужно знать методы &lt;br /&gt;
объектно-ориентированного &lt;br /&gt;
&lt;br /&gt;
программирования и транзакционного &lt;br /&gt;
моделирования, и все это требует времени &lt;br /&gt;
&lt;br /&gt;
для изучения и привыкания. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Затем все это используется в контексте &lt;br /&gt;
ограниченно случайной верификации, &lt;br /&gt;
&lt;br /&gt;
которую я упоминал во вступительных &lt;br /&gt;
занятиях. &lt;br /&gt;
&lt;br /&gt;
Ограниченно случайная верификация и &lt;br /&gt;
OVM также используют характеристики &lt;br /&gt;
&lt;br /&gt;
языка SystemVerilog – в частности, она &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
использует утверждения, покрытие, &lt;br /&gt;
ограничения и интерфейсы. &lt;br /&gt;
&lt;br /&gt;
В компании Doulos мы тратим три дня на &lt;br /&gt;
обучение OVM в контексте ограниченно &lt;br /&gt;
&lt;br /&gt;
случайной верификации, в дополнение к &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
пяти дням, которые мы тратим на изучение &lt;br /&gt;
SystemVerilog. &lt;br /&gt;
&lt;br /&gt;
Я говорю об этом, чтобы вы поняли, что &lt;br /&gt;
если вы собираетесь использовать в &lt;br /&gt;
&lt;br /&gt;
проектах OVM и SystemVerilog, то не &lt;br /&gt;
следует недооценивать объем и глубину &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
необходимого обучения. &lt;br /&gt;
&lt;br /&gt;
В этом конкретном модуле Академии &lt;br /&gt;
верификации мы попытаемся дать простое &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
и комфортное введение в некоторые &lt;br /&gt;
&lt;br /&gt;
основные характеристики OVM, что будет &lt;br /&gt;
служить отличным трамплином для &lt;br /&gt;
&lt;br /&gt;
дальнейшего, более серьезного изучения &lt;br /&gt;
OVM. &lt;br /&gt;
&lt;br /&gt;
Наконец, тонкий верхний слой – &lt;br /&gt;
планирование верификации и управление &lt;br /&gt;
&lt;br /&gt;
ею. Планирование верификации и &lt;br /&gt;
управление ею, возможно, является &lt;br /&gt;
&lt;br /&gt;
относительно небольшой темой по &lt;br /&gt;
техническим деталям, одновременно это, &lt;br /&gt;
&lt;br /&gt;
может быть, самая важная тема, поскольку &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
она связывает технические &lt;br /&gt;
подробности ограниченно случайной &lt;br /&gt;
&lt;br /&gt;
верификации и OVM с целями бизнеса – &lt;br /&gt;
управлением инвестициями и созданием &lt;br /&gt;
&lt;br /&gt;
реально работающих электронных систем. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так что вам нужно посвятить много &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
времени пониманию планирования &lt;br /&gt;
верификации и управления ею. &lt;br /&gt;
&lt;br /&gt;
На остальных занятиях модуля «Основы &lt;br /&gt;
OVM» мы шаг за шагом рассмотрим &lt;br /&gt;
&lt;br /&gt;
некоторые ключевые классы в библиотеке &lt;br /&gt;
OVM.&lt;/div&gt;</summary>
		<author><name>ANA</name></author>	</entry>

	</feed>