69
Code Coverage and Advanced Verification Management Test Plan Assertions Transaction Level Stimulus Self-Checking Testbenches Randomized Stimulus Functional Coverage Code Coverage

Code Coverage

Embed Size (px)

DESCRIPTION

more about code coverage

Citation preview

Page 1: Code Coverage

Code Coverage and Advanced Verification Management

Test Plan

Assertions

Transaction Level Stimulus

Self-Checking Testbenches

Randomized Stimulus

Functional Coverage

Code Coverage

Page 2: Code Coverage

The Seven Steps to Fast Lab Debug

Test Plan

Assertions

Transaction Level Stimulus

Self-Checking Testbenches

Randomized Stimulus

Functional Coverage

Code Coverage

Page 3: Code Coverage

The Seven Steps to Fast Lab Debug

Test Plan

Assertions

Transaction Level Stimulus

Self-Checking Testbenches

Randomized Stimulus

Functional Coverage

Code Coverage

Page 4: Code Coverage

Code Coverage

Page 5: Code Coverage

Five Kinds of Code Coverage

1. Statement Coverage

2. Branch Coverage

3. Condition Coverage

4. Expression Coverage

5. Finite State Machine (FSM) Coverage

Page 6: Code Coverage

Mnemonic

Some

Beer

For

Extra

Courage

Page 7: Code Coverage

Running Code Coverage +cover arguments

— s Statement— b Branch— c Condition— e Expression— f Finite State Machine

-coverage option

+cover=sbfec Mnemonic

Some

Beer

For

Extra

Courage

Page 8: Code Coverage

Running Coverage

Compile DUT with +cover option

Compile Testbench without coverage

Simulate with –coverage option

Page 9: Code Coverage

Demo: Running Coverage

Page 10: Code Coverage

Compile DUT with coverage.

Page 11: Code Coverage

Compile test bench without coverage.

Page 12: Code Coverage

Compile test without coverage

Page 13: Code Coverage

Simulate with no optimization and with coverage

Page 14: Code Coverage

ModelSim switches to the coverage layout

Instance coverage

Missing coverageDetails of

Misses

CoverageStats

SourceCode View

Page 15: Code Coverage

Statement Coverage

Page 16: Code Coverage

Demo Statement Coverage

Page 17: Code Coverage

Select DUT to See Statement Coverage

Page 18: Code Coverage

Expand source windowto see missing coverage

Page 19: Code Coverage

Browse Missing Coverage

Page 20: Code Coverage
Page 21: Code Coverage

Demo Branch Coverage

Page 22: Code Coverage

Branch Stats

Missing Branches

Branch Details

Page 23: Code Coverage

Miss Information

This branch was never taken

Page 24: Code Coverage

Condition & Expression Coverage

Page 25: Code Coverage

UDP vs. FEC Expression Coverage

OUT = A OR B

Page 26: Code Coverage

UDP Says Three Input Combinations

A B OUT0 0 01 X 1X 1 11 1 1

Rows are Unique Inputs

OUT = A OR B

Page 27: Code Coverage

FEC Says Four Input Combinations

A B OUT0 0 01 0 1

Rows are # of ways each input can affect the outputs

OUT = A OR B

A B OUT0 0 00 1 1

Page 28: Code Coverage

Demo: Expression and Condition Coverage

Page 29: Code Coverage

UDP and FEC Coverage

Press F5 For Details

MissedUDP or FEC

Coverage

Page 30: Code Coverage

UDP Details

FEC DetailsWe missed one!

Page 31: Code Coverage

Finite State Machine Coverage

Page 32: Code Coverage

Demo: FSM Coverage

Page 33: Code Coverage

FSMStatistics

Missed States

Missed State DetailsExpand to see

State Machine

Page 34: Code Coverage

Missed State

Page 35: Code Coverage
Page 36: Code Coverage
Page 37: Code Coverage

Creating Exclusions

Page 38: Code Coverage

Complete Code Coverage

Page 39: Code Coverage

Create Exclusions in the GUI

Page 40: Code Coverage

Create Exclusions in Scripts

Page 41: Code Coverage

Create Exclusions in Source Code

Page 42: Code Coverage

Unified Coverage Management

CodeCoverage

FunctionalCoverage

AssertionEngine

0-inFormal

UserCoverage

TestSpecific

Test

Plan

UCDB

RD

/ WR

RD

/ WR

API

R

D / W

RR

D / W

R A

PI

Native UCDB Generation

HTML Export

Test Ranking

Test Associated Merging

Test Plan Tracking & Analysis

UCDB BrowserOpen Read And Write API, ‘C’ Functions & CLI

Collects coverage data from all verification engines Open API for tools to read and write

Page 43: Code Coverage

UCDB Demo

Page 44: Code Coverage

Source and Test Bench

Tests UCDB Output

Source and Test Bench

Testplan to UCDB

Testplan

Script to Run Tests

Page 45: Code Coverage

Test List

Coverage Goals

Create XML Test Plan

Page 46: Code Coverage

Test Bench ScriptCompile DUT and Test Bench

Read test modules out of “Tests” then compile and simulate.

Store Coverage and Debug information from each test

Report Results

Page 47: Code Coverage

Tests

Page 48: Code Coverage

Test Running

Page 49: Code Coverage

Testing cache hits

Page 50: Code Coverage

UCDB Directory Contains Coverage

Page 51: Code Coverage

Open Verification Browser

Page 52: Code Coverage

Import Test Plan XML

Page 53: Code Coverage
Page 54: Code Coverage

Add Result UCDB Files from UCDB Directory

Page 55: Code Coverage
Page 56: Code Coverage

Merge the coverage results from all the tests with the test plan to

see that we’ve covered the complete plan

Page 57: Code Coverage

Merge the coverage results from all the tests with the test plan to

see that we’ve covered the complete plan. GREEN is good.

We have 100% coverage in the types of coverage we used

Page 58: Code Coverage

Notice that we’ve run all the tests in the plan.

Page 59: Code Coverage

Rank the tests to see which give the most coverage

Page 60: Code Coverage

You only need two tests to fully cover the design

Page 61: Code Coverage

Create HTML Report for all merged coverage data

Page 62: Code Coverage

Name the directory that will hold index.html

Page 63: Code Coverage
Page 64: Code Coverage

All UCDB Commands are scriptable. This script

captures all test data and creates HTML Report

Page 65: Code Coverage

http://supportnet.mentor.com/

Page 66: Code Coverage

http://communities.mentor.com/

Page 67: Code Coverage

ModelSim® SE User’s Manual

Page 68: Code Coverage

ModelSim® SE User’s Manual

Page 69: Code Coverage