«Бог не меняет того, что (происходит) с людьми, пока они сами не изменят своих помыслов.» Коран, Сура 12:13

Open Source VHDL Verification Methodology/Дневник

Материал из Wiki
< Open Source VHDL Verification Methodology
Версия от 18:41, 20 декабря 2012; ANA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Проект OS-VVM

Исходные коды

Описание примеров

Презентации

Coverage

* VHDL * PSL *

Содержание

Challenges in Verification of Modern Designs

Relative Cost of Finding bugs

Typical Verification Flow

[svg]


  • Manual correlation of Requirements, Verification plan and Coverage results to make sure verification is comprehensive and complete.
  • This is tedious, error-prone & time consuming process.
  • Leads to delays, missed functionality & low quality.


Modern Design Verification

  • Rising complexity of SoC designs
    • Approaching 1 Billion logic gates
    • 100s of IP blocks
    • 1000s of requirements and features
    • 100 – 1000s of bugs
    • 1000s of regression runs with 1000s of tests
    • Multiple distributed design/verification teams
  • 70% of the effort goes into verification
  • 89% of designs go over deadline by an average 44%*


*SPIRIT/NXP study Dec 2007


Verification Tool Box

  • Arsenal of Technologies
    • Directed tests
    • Random tests
    • Constrained Random tests
    • Coverage driven verification
      • Code coverage
      • Functional coverage
    • Assertion based verification
    • Emulation
    • Formal verification
  • But something is missing!
  1. Acceleration/Emulation
  2. Assertions with Formal Property Checking
  3. Assertions with Simulation (Simulation-based ABV)
  4. Clock-Domain Crossing (CDC) verification
  5. Code Coverage
  6. Constrained-Random Simulation
  7. Directed Test Simulation
  8. FPGA PrototypingFunctional coverage
  9. Intelligent Testbench Automation
  10. LintingSimulation-based Power Aware Functional Verification with UPF (or CPF)
  11. Stimulus Generated from an Software Running on an Embedded Processor

Verification Management

  • Management of verification information
    • Requirements
      • Create or import requirements
    • Plans
      • Identify verification metrics that will verify requirements
      • Assign development of metrics to individuals
    • Bugs
      • Link bugs with verification metric
    • Regression runs
      • Link regression results with verification metric
    • Design and verification source
      • Versions, configurations etc.
  • Monitoring and Analysis
  • Support the verification toolbox, methodology, process


COVERAGE METRICS

Measuring progress is one of the most important tasks in verification and is the critical element that enables the designer to decide when to end the verification effort. Several methods are commonly used:

  • Toggle testing: verifies over a series of tests that all nodes toggled at least once from 1 to 0 and back
  • Code coverage: demonstrates over a series of tests that all the source lines were exercised; in many cases, there is also an indication as to whether branches in conditional code were executed; sometimes an indication of state-machine transitions is also available
  • Tracking how many bugs are found each week: possibly the most common metric used to measure progress; after a period of a few weeks with very few or zero bugs found, the designer assumes that the verification process has reached a point of diminishing returns


Оценка полноты функциональных тестов

по Полякову стр. >93


Эвристические метрики

Основаны на текущей статистике обнаружения ошибок в проекте

  • календарное время между моментами обнаружения ошибок проекта (к концу процесса верификации оно увеличивается);
  • общее количество промоделированных тактов работы проектируемого устройства;
  • общее число обнаруженных ошибок в проекте и т.д.


Программные метрики

  • покрытие кода
    • покрытие строк
    • покрытие переходов
    • покрытие путей
    • покрытие выражений
    • покрытие переключений


Coverage and Verification Overview

Verification-process.jpg

Every project starts with a design specification. The specification contains elaborate details on the design construction and its intent.

A verification team uses the design specification to create a verification plan. The verification plan contains a list of all questions that need to be answered by the verification process (the golden reference). The verification plan also serves as a functional spec for the test bench.

Once the test bench is built and the designers succeed in implementing the design, you simulate the design to answer the question: “Does it work?”. If the answer is no, the verification engineer gives the design back to designers to debug the design. If yes, it is time to ask the next question: “Are we done yet?”. Answering this question involves investigating how much of the design has been exercised by looking at the coverage data and comparing it against the verification plan.


Overview of Code Coverage Types

Questa SIM code coverage provides graphical and report file feedback on the following:

  • Statement coverage — counts the execution of each statement on a line individually, even if there are multiple statements in a line.
  • Branch coverage — counts the execution of each conditional “if/then/else” and “case” statement and indicates when a true or false condition has not executed.
  • Condition coverage — analyzes the decision made in “if” and ternary statements and can be considered as an extension to branch coverage.
  • Expression coverage — analyzes the expressions on the right hand side of assignment statements, and is similar to condition coverage.
  • Toggle coverage — counts each time a logic node transitions from one state to another.
  • FSM coverage — counts the states, transitions, and paths within a finite state machine.

For details related to each of these types of coverage, see “Code Coverage Types”.

Эволюция языков описания аппаратуры

  • Язык SystemVerilog. Проектирование СБИС и систем // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес 4/2006

Файл:Article 748 251.pdf

[svg]


[svg]

New