<?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/index.php?action=history&amp;feed=atom&amp;title=Open_Source_VHDL_Verification_Methodology</id>
		<title>Open Source VHDL Verification Methodology - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://simhard.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Open_Source_VHDL_Verification_Methodology"/>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php?title=Open_Source_VHDL_Verification_Methodology&amp;action=history"/>
		<updated>2026-04-08T16:45:37Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.21.3</generator>

	<entry>
		<id>http://simhard.com/wiki/index.php?title=Open_Source_VHDL_Verification_Methodology&amp;diff=1114&amp;oldid=prev</id>
		<title>Vi: /* Руководство пользователя */</title>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php?title=Open_Source_VHDL_Verification_Methodology&amp;diff=1114&amp;oldid=prev"/>
				<updated>2012-11-09T16:49:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Руководство пользователя&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{OS-VVM TOC}}&lt;br /&gt;
&lt;br /&gt;
[[Файл:OSVVM ani.gif|right]]&lt;br /&gt;
&lt;br /&gt;
Стандарт VHDL включает все необходимые функции для кодовой рандомизации воздействий и функционального покрытия — и то и другое очень важно при верификации больших проектов системного уровня. Проблема состоит в том, что эти функции  являются РАСШИРЕНЫМИ и требуют большого опыта (умения) кодирования. Вот почему Open Source VHDL Verification Methodology (OS-VVM) так важна. Созданы несколько легко доступных VHDL пакетов, которые скрывают детали реализации от среднего пользователя,  делая генерацию псевдослучайных последовательностей (воздействий) и интелектуальное (intelligent) функциональное покрытие не только простым, но и также приятной задачей.&lt;br /&gt;
&lt;br /&gt;
'''Преимущества OS-VVM:'''&lt;br /&gt;
&lt;br /&gt;
* Основан на стандарте VHDL-2008, но может работать с VHDL-2002&lt;br /&gt;
* Обеспечивает дополнительные возможности для генерации псевдослучайных значений и функционального покрытия&lt;br /&gt;
* Псевдослучайные значения с равномерным или взвешенным распределением&lt;br /&gt;
* Также поддерживаются распределения: favor_small, favor_big, Гауссово и Пуссона &lt;br /&gt;
* Отлично работает с моделированием на уровне транзакций  (Transaction Level Modeling)&lt;br /&gt;
* Обеспечивает интеллектуальное рандомизацию (randomization), основанную на функциональном покрытии дырок (holes) (ящики (bins), которые не охвачены (not covered))&lt;br /&gt;
* Позволяет определения нормальных, запрещённых и игнорируемых ящиков для стандартного покрытия (regular coverage) и перекрёстного покрытия (cross-coverage) &lt;br /&gt;
* Оснащена гибкими процедурами отчета по покрытию&lt;br /&gt;
&lt;br /&gt;
== OS-VVM Сообщество ==&lt;br /&gt;
&lt;br /&gt;
* http://osvvm.org/ — Сайт проекта &lt;br /&gt;
* [http://osvvm.org/forums Форум]&lt;br /&gt;
* [http://osvvm.org/blog Blog]&lt;br /&gt;
&lt;br /&gt;
==About OS-VVM ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- '''O'''pen '''S'''ource '''V'''HDL '''V'''erification '''M'''ethodology (OS-VVM) is an intelligent testbench methodology that allows mixing of “Intelligent Coverage” (coverage driven randomization) with directed, algorithmic, file based, and constrained random test approaches. The methodology can be adopted in part or in whole as needed. With OSVVM you can add advanced verification methodologies to your current testbench without having to learn a new language or throw out your existing testbench or testbench models.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''O'''pen '''S'''ource '''V'''HDL '''V'''erification '''M'''ethodology (OS-VVM) — это методология интеллектуального тестбенча, которая позволяет смешивать интеллектуальное покрытие (Intelligent Coverage) (рандомизация управляемая покрытием) с прямым (направленным), алгоритмическим, основанным на файле, и constrained random методами тестирования. С помощью OSVVM вы можете добавить дополнительные методики верификации в ваш текущей тестбенч без необходимости изучения нового языка или отказа от уже созданных тестбенча или модели тестбенча.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Like other verification languages, it is all about methodology. OSVVM simplifies verification methodology to the following steps.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
OSVVM упрощает методику верификации на следующих шагах:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
** Write a high fidelity functional coverage (FC) model&lt;br /&gt;
** Randomly select holes in the functional coverage (aka “Intelligent Coverage”)&lt;br /&gt;
** Refine the initial randomization using sequential VHDL code&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* написание высокоточных моделей функционального покрытия (ФП)&lt;br /&gt;
* Случайный выбор дырок в функциональном покрытии (так называемое &amp;quot;интеллектуальное покрытие&amp;quot;)&lt;br /&gt;
* уточнение начальной рандомизаци (initial randomization), используя последовательного VHDL кода.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
OSVVM is based on a set of open source (free) packages: CoveragePkg for functional coverage and “Intelligent Coverage”, and RandomPkg for constrained random (CR) utilities. These packages offer a similar capability and conciseness to the syntax of other verification languages (such as SystemVerilog or ‘e’). Going further, “Intelligent Coverage” is a leap ahead of what other verification languages provide. Since it is package based, it is easier to update than language syntax.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
OSVVM основана на наборе пакетов с открытым исходным кодом:&lt;br /&gt;
* &amp;lt;code&amp;gt;CoveragePkg&amp;lt;/code&amp;gt; для покрытия и интелектуального покрытия&lt;br /&gt;
* &amp;lt;code&amp;gt;RandomPkg&amp;lt;/code&amp;gt;  для constrained random (CR) utilities.&lt;br /&gt;
Эти пакеты предоставляют аналогичные возможности и лаконичность с синтаксисом других языков верификации (таких как SystemVerilog или ‘e’). Двигаясь далее, интеллектуальное покрытие является шагом вперёд, что другие языки верификации предоставляют. Так как OSVVM основана на пакето, её проще обновить, чем синтаксис языка.&lt;br /&gt;
&lt;br /&gt;
'''Преимущества''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
** Faster simulations due to removing redundancies in CR stimulus generation.&lt;br /&gt;
** Faster development due to removing redundancies between modeling FC and CR.&lt;br /&gt;
** Less cost. Packages are free. Works with basic simulation licenses.&lt;br /&gt;
** Vendor independent and works on any VHDL-2008 simulator (VHDL-2002 with some adaptations).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* быстрое моделирование в связи с удалением избыточности при генерации CR воздействий&lt;br /&gt;
* быстрая разработка за счёт удаления избыточности между моделированием функционального покрытия и CR.&lt;br /&gt;
* меньшая стоимость. Пакет является бесплатным. Работает с базовой лицензией симулятора.&lt;br /&gt;
* разработчик независим и работает с любым симулятором, поддерживающим стандарт VHDL-2008 (VHDL-2002 с некоторыми изменениями).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 '''CoveragePkg''' package supports generation of bins for one-dimensional and cross-coverage, collection of coverage data and reporting. Those features alone are quite attractive, but the greatest advantage of this package is the ability of controlling random stimulus based on running coverage results. Thanks to this feature users can create intelligent test environments that achieve complete coverage much faster than in other languages.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Пакет '''CoveragePkg''' поддерживает генерацию ящиков для одномерных и cross-coverage, сбор данных о покрытии и отчетность. Эти функции сами по себе являются весьма привлекательными, но самым большим преимуществом этого пакета является возможность управления псевдослучайными воздействиями основанное на результатах покрытия. Благодаря этой функции пользователи могут создавать интеллектуальные тестовые окружения, которые достигают полного покрытия быстрей, чем с помощью других языков.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''''RandomPkg '''''package supports generation of random numbers in various formats (real, integer, signed or unsigned vectors) with various distributions (Uniform, Normal, Poisson, etc.) and with various constraints (ranges, exclusions, weights, etc.)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Пакет '''RandomPkg ''' поддерживает генерациию случайных чисел в различных форматах (real, integer, знаковые или  без знаковые  векторы) с различным распределением (Uniform, Normal, Poisson и др.) и с различными ограниченияи (диапазоны, исключения, вес и др.).&lt;br /&gt;
&lt;br /&gt;
== Руководство пользователя ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Broadly speaking, there are two types of coverage metrics: those that can be automatically extracted from&lt;br /&gt;
the design code, such as code coverage, and those that are user-specified in order to tie the verification environment&lt;br /&gt;
to the design intent or functionality. The latter form is referred to as functional coverage and is the&lt;br /&gt;
topic of this clause.--&amp;gt;&lt;br /&gt;
Существует два типа метрик покрытия:&lt;br /&gt;
* такие, которые могут быть автоматически получены из hdl-описания, известные как покрытие кода (code coverage)&lt;br /&gt;
* и такие, которое задаются пользователем чтобы связать среду верификации с функциями устройства.&lt;br /&gt;
Последняя получила название функционального покрытия (functional coverage — ФП).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Functional coverage is a user-defined metric that measures how much of the design specification, as&lt;br /&gt;
enumerated by features in the test plan, has been exercised. It can be used to measure whether interesting&lt;br /&gt;
scenarios, corner cases, specification invariants, or other applicable design conditions—captured as features&lt;br /&gt;
of the test plan—have been observed, validated, and tested.--&amp;gt;&lt;br /&gt;
ФП является метрикой, задаваемой пользователем, которая измеряет на сколько ТЗ (design specification), как набор функций в тестовом плане, выполнено. Оно может быть использовано для измерения интересуемых сценариев, &amp;quot;угловых&amp;quot; (придельных) режимов (corner cases), инвариантов спецификации, или других возможных технических условий — собранных как особенности тестового плана — которые были обнаружены, проверены и протестированы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The key aspects of functional coverage are as follows:&lt;br /&gt;
— It is user-specified and is not automatically inferred from the design.&lt;br /&gt;
— It is based on the design specification (i.e., its intent) and is thus independent of the actual design&lt;br /&gt;
code or its structure.--&amp;gt;&lt;br /&gt;
Основные аспекты ФП следующие:&lt;br /&gt;
* ФП задаётся пользователем и не может быть получено автоматически из проекта&lt;br /&gt;
* ФП основано на ТЗ и, таким образом, не зависит от hdl-кода или от его структуры.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Because it is fully specified by the user, functional coverage requires more up-front effort (someone has to write the coverage model). Functional coverage also requires a more structured approach to verification. Although functional coverage can shorten the overall verification effort and yield higher quality designs, its shortcomings can impede its adoption.--&amp;gt;&lt;br /&gt;
Так как ФП полностью определяется пользователем, то оно требует больше предварительных усилий (кто-то должен описать покрытие модели). Функциональное покрытие также требует более структурированного подхода к верификации. Хотя функциональное покрытие может привести к сокращению общих усилий по верификации и даёт более высокое качество проекта, недостатки которого могут помешать его применению.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The SystemVerilog functional coverage extensions address these shortcomings by providing language constructs for easy specification of functional coverage models. This specification can be efficiently executed by the SystemVerilog simulation engine, thus enabling coverage data manipulation and analysis tools that speed up the development of high-quality tests. The improved set of tests can exercise more corner cases and required scenarios, without redundant work.--&amp;gt;&lt;br /&gt;
Расширение языка SystemVerilog для ФП направлено на эти недостатки, обеспечивая языковые конструкции для простого определения моделей функционального покрытия. Эти определения эффективно выполняются ядром симулятора SystemVerilog, что позволило проводить обработку данных о покрытии и инструменты анализа, которые увеличивают скорость разработки высококачественных тестов. Улучшенный набор тестов может выполнять больше угловых состояний и требуемых сценариев, без лишних затрат.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The SystemVerilog functional coverage constructs enable the following:&lt;br /&gt;
— Coverage of variables and expressions, as well as cross coverage between them&lt;br /&gt;
— Automatic as well as user-defined coverage bins&lt;br /&gt;
— Associate bins with sets of values, transitions, or cross products&lt;br /&gt;
— Filtering conditions at multiple levels&lt;br /&gt;
— Events and sequences to automatically trigger coverage sampling&lt;br /&gt;
— Procedural activation and query of coverage&lt;br /&gt;
— Optional directives to control and regulate coverage--&amp;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;
&amp;lt;!-- &lt;br /&gt;
* Coverage point (or item) is an expression for which coverage data is collected. In the simplest case it can be a variable (e.g. V1 in Figure 1).&lt;br /&gt;
* Bin is a sub-range of coverpoint values; hitting any value from the bin increments coverage count of the entire bin (e.g. [0..3] or [4] in Figure 1).&lt;br /&gt;
* Bins are the ranges of values within cover point for which coverage data is accumulated, i.e. detection of any value from the range increments coverage count for the bin.&lt;br /&gt;
* Crosses are multi-dimensional expressions that can be treated as Cartesian product of cover points or just collections of multi-dimensional bins. They collect cross-coverage data in the shape of pairs, triples, etc. of values sampled from multiple variables.&lt;br /&gt;
* Coverage cross represents cross-coverage of two or more variables. In the simplest case a cross can be a simple Cartesian product of coverage points, but it can also be created by specifying bins representing pairs (triplets, quadruplets, etc.) of values or ranges, like in in Figure 1.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Coverage point (or item) — одномерное выражение (или просто переменная) sampled during coverage data collection.&lt;br /&gt;
* Bin - корзина — это поддиапазон значений точки покрытия; &lt;br /&gt;
* Coverage cross&lt;br /&gt;
&lt;br /&gt;
Jim Lewis, член рабочей группы IEEE 1076, отвечающей за стандарт VHDL, написал очень полезный пакет, который значительно упрощает эту задачу. Он может быть скачан по следующим ссылкам:&lt;br /&gt;
* http://www.aldec.com/en/solutions/functional_verification/os_vvm&lt;br /&gt;
Оба пакета используют концепцию protected types и shared variables, и они требуют поддержки стандарта VHDL 2002 или 2008 в симуляторе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Защищённые типы (Protected Types)====&lt;br /&gt;
&lt;br /&gt;
Все пакеты и другие фрагменты кода представленные в этом документе основаны на защищённых типах (тип protected) — это концепция языка VHDL, похожая на классы, известные из других языков программирования.&lt;br /&gt;
&lt;br /&gt;
Тип Protected упрощает инкапсуляцию в VHDL коде:&lt;br /&gt;
* объединение элементов данных (свойства) и операций, которые могут выполняться над ними (методы) в один объект,&lt;br /&gt;
* сокрытие деталей реализации данных от конечных пользователей.&lt;br /&gt;
&lt;br /&gt;
Пользователи, которые никогда не работали с защищёнными типами могут легко представить их, как специальную версию типа запись (record), которая позволяет включать процедуры и функции в дополнения к обычным полям данных.&lt;br /&gt;
&lt;br /&gt;
Далее приведён пример объявления и тела защищённого типа:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vhdl&amp;quot;&amp;gt;&lt;br /&gt;
  type FlagsPT is protected   -- Объявление (declaration)&lt;br /&gt;
    procedure set;            -- процедура - метод (procedure method)&lt;br /&gt;
    procedure reset; ;        -- процедура - метод (procedure method)&lt;br /&gt;
    impure function is_set return BOOLEAN; ; -- функция - метод (function method)&lt;br /&gt;
  end protected FlagsPT;&lt;br /&gt;
  &lt;br /&gt;
  type FlagsPT is protected body -- body&lt;br /&gt;
&lt;br /&gt;
    variable flag : BOOLEAN := False; -- закрытое (приватное) свойство (private property)&lt;br /&gt;
&lt;br /&gt;
    procedure set is&lt;br /&gt;
    begin&lt;br /&gt;
      flag := True;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    procedure reset is&lt;br /&gt;
    begin&lt;br /&gt;
      flag := False;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    impure function is_set return BOOLEAN is&lt;br /&gt;
    begin&lt;br /&gt;
      return flag;&lt;br /&gt;
    end;&lt;br /&gt;
  end protected body FlagsPT;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Открытая часть защищённого типа описана в секции декларации  '''protected..end protected'''; только элементы, видимые здесь, имеют прямой доступ к переменным защищённого типа.&lt;br /&gt;
&lt;br /&gt;
Тело защищённого типа (секция '''protected body..end protected body''') является реализацией этого типа. Оно содержит полное описание всех методов указанных в декларативной части и закрытые (собственные) поля данных и подпрограмм доступные только через открытые методы.&lt;br /&gt;
&lt;br /&gt;
Защищённые типы могут использоваться только с переменными: либо локальные в процессах или подпрограмм, либо  общие (shared) переменные, объявленные в архитектуре. Открытые элементы из декларации типа могут быть вызваны используя  формат '''variable_name.method_name'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vhdl&amp;quot;&amp;gt;&lt;br /&gt;
  test : process&lt;br /&gt;
    variable myflag : FlagsPT;&lt;br /&gt;
  begin&lt;br /&gt;
    report &amp;quot;!!! Setting 'myflag'!!!&amp;quot;;&lt;br /&gt;
    myflag.set;&lt;br /&gt;
    if myflag.is_set then&lt;br /&gt;
      report &amp;quot;'myflag' is set.&amp;quot;;&lt;br /&gt;
    end if;&lt;br /&gt;
    report &amp;quot;!!! Resetting 'myflag'!!!&amp;quot;;&lt;br /&gt;
    myflag.reset;&lt;br /&gt;
    if not myflag.is_set then&lt;br /&gt;
      report &amp;quot;'myflag' is set now.&amp;quot;;&lt;br /&gt;
    end if;&lt;br /&gt;
    wait;&lt;br /&gt;
  end process;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно отметить, что пользователь типа '''FlagsPT''' защищён от внутреннего представления значения флага. Мы можем изменить его с типа Boolean на Integer или  Bit (с соответствующим изменением методов), а процесс использования переменной '''myflag''' будет выглядеть и работать также.&lt;br /&gt;
&lt;br /&gt;
Защищённые типы в OS_VVM защищают пользователя от довольно сложных структур и подпрограмм, поддерживающих рандомизацию и функциональное покрытие.&lt;br /&gt;
&lt;br /&gt;
===Использование пакета '''RandomPkg''' ===&lt;br /&gt;
===Использование пакета '''CoveragePkg''' ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
The package allows creation of data structures required for functional coverage collection and provides subprograms that manipulate data during preparation, data collection and reporting stages. Beginning users can quickly create coverage models by following simple coding pattern:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Пакет позволяет создавать структуры данных, необходимые для сбора информации по функциональному покрытию и  обеспечивает подпрограммами, которые манипулируют данными в ходе подготовки, сбора и представления данных. Начинающие пользователи могут быстро создавать модели покрытия, следуя простому алгоритму&lt;br /&gt;
# Объявить покрываемый объект (Declare coverage object)&lt;br /&gt;
# Сгенерировать ящики (bins)  и добавить их в точки покрытия  (cover point) или cross структуры в объекте (Generate bins and add them to a cover point or cross structure in the object)&lt;br /&gt;
# Собрать данные о покрытии (в любой подходящий момент). (Collect coverage data (at any convenient sampling event)).&lt;br /&gt;
# Использовать данные о покрытии для управления псевдослучайностью воздействий (Use coverage data to control stimulus randomization).&lt;br /&gt;
# Проверить было ли достигнуто покрытие. Повторить шаги 3 и 4, если необходимо. (Check if coverage achieved. Repeat steps 3 &amp;amp; 4 if needed)&lt;br /&gt;
# Записать отчёт.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Experienced VHDL programmers can easily add new functionality such as traversing coverage data structures and creating extensive reporting/post-processing routines.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Подготовленные VHDL программисты могут без труда добавить новые функции, такие как traversing coverage data structures и создание расширенных отчетов / процедур пост-обработки.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* Вебинары&lt;br /&gt;
** [http://www.aldec.com/en/events/webinar/151 Aldec and SynthWorks: OS-VVM: Open Source - VHDL Verification Methodology]&lt;br /&gt;
** [http://www.aldec.com/en/events/webinar/223 Better Coverage in VHDL]&lt;br /&gt;
** [http://www.aldec.com/en/events/webinar/241 OS-VVM: High-Level VHDL Verification]&lt;br /&gt;
* /home/kola/docs/osvvm.org&lt;br /&gt;
* http://osvvm.org/about-os-vvm&lt;br /&gt;
* http://www.synthworks.com/downloads/&lt;br /&gt;
* http://www.eda.org/twiki/bin/view.cgi/P1076/CoverageRandomization&lt;br /&gt;
* http://www.testbench.in/CO_07_COVERAGE_BINS.html - про функциональное покрытие в SystemVerilog&lt;br /&gt;
&lt;br /&gt;
== NEW ==&lt;/div&gt;</summary>
		<author><name>Vi</name></author>	</entry>

	</feed>