Transcript
Page 1: Jonathan Bromley Doulos

1

Copyright © 2008 by Doulos. All rights reserved.

The Verification Methodology Landscape

Jonathan Bromley, Doulos

DVClub Bristol 22-April-2009

Page 2: Jonathan Bromley Doulos

2

Copyright © 2008 by Doulos. All rights reserved.

The Verification Methodology Landscape

CONTENTS

The M-word

Languages, methodologies, tools and standards

The big players: OVM, VMM, eRM

Interoperability and convergence

Conclusions?

Page 3: Jonathan Bromley Doulos

3

Copyright © 2008 by Doulos. All rights reserved.

TLMDUT

Monitor

Driver

Verification Environment

Stimulusgenerator

Transactions

Coveragecollector

Transactionrecording

Testcontroller

Scoreboard / Checker

Page 4: Jonathan Bromley Doulos

4

Copyright © 2008 by Doulos. All rights reserved.

Design UnderTest

Design UnderTest

Constrained Random Verification

11001001010010100000100101110110011001100100100101001110

11001001010010100000100101110110011001100100100101001110

000010010011000010100100001000110010000011

000010010011000010100100001000110010000011

Constrained random stimulus

CheckerChecker

Did we see a bug?Did we see a bug?

Functional Coverage

Functional Coverage

Are we done?Are we done?HeaderHeader PayloadPayload ChecksumChecksum

Constraints

Increase coverageIncrease coverage

Page 5: Jonathan Bromley Doulos

5

Copyright © 2008 by Doulos. All rights reserved.

The Verification Space

Verification

Acceleration + Emulation

Formal Verification

SimulationEquivalence

CheckingProperty Checking

Dynamic Formal

CoverageTransaction

Level ModellingConstrained

RandomAssertions

Simulation SimulationSimulation

FormalSimulation

Formal

Intelligent Testbench

Page 6: Jonathan Bromley Doulos

6

Copyright © 2008 by Doulos. All rights reserved.

What Our Customers Want

• Ease of deployment• Customizable environment

• but it must do something useful straight out of the box

• Simple, uniform interface to any verification IP block

• Gentle learning curve for the whole team

• Power• Complex testcases co-ordinated across the whole environment

• Randomization

• Sophisticated coverage analysis

• Interoperability• Every customer we meet has legacy verification IP

Page 7: Jonathan Bromley Doulos

7

Copyright © 2008 by Doulos. All rights reserved.

Methodology (or just a toolkit?)

• Tame the language monster• e, SystemVerilog, C++ are big and complicated

• Many ways to solve a problem

• Wheel reinvention is a hazard

• Toolkit• OOP encourages encapsulation of standard functionality

in base classes

• Ideal for component hierarchy, reporting, block-to-block communication, DUT connectivity

• Methodology• Published methodology encourages interoperability and re-use

• Promote best practice

Page 8: Jonathan Bromley Doulos

8

Copyright © 2008 by Doulos. All rights reserved.

Mature Language Standards

• IEEE 1076 VHDL

• IEEE 1850™ PSL

• IEEE 1364 Verilog

• IEEE 1800™ SystemVerilog

• IEEE 1647™ e

• ISO/IEC 14882 C++

• IEEE 1666™ SystemC

• Tcl/Tk, Perl

List unchanged for 4 years...

8

FPGA, RTL, Europe, Mil-Aero

ASIC, RTL, USA/RoW

Hardware verification

Virtual hardware prototypes for S/W dev

Hardware verification

Crude Caricature

Modelling, verification

Scripting

Page 9: Jonathan Bromley Doulos

9

Copyright © 2008 by Doulos. All rights reserved.

New Standards Activity

• Verilog and SystemVerilog unified

• LRM this year, currently in ballot feedback

• Major enhancements to assertions

• Verification methodology

• OVM 2.0, OVM-SC

• VMM open-source

• eRM3 - e / SV interoperability (Cadence)

• OVM / VMM interoperability (Accellera)

• SystemC TLM-2.0

Page 10: Jonathan Bromley Doulos

10

Copyright © 2008 by Doulos. All rights reserved.

The Big Methodology Players

www.ovmworld.org

www.vmmcentral.org

www.cadence.comeRM

Page 11: Jonathan Bromley Doulos

11

Copyright © 2008 by Doulos. All rights reserved.

Environment

Static View of Testbench

DUT

activeagent

DriverBFM

MonitorBFM

Sequ-encer

passiveagent

DriverBFM

MonitorBFM

Sequ-encer

checkerConfiguration

simple ports (e)virtual interfaces (SV)

eRM

Page 12: Jonathan Bromley Doulos

12

Copyright © 2008 by Doulos. All rights reserved.

Static View of Testbench (VMM)

DUT

Generator

...test_env env = new;env.run();...

Transactor

Driver

Self Check

Monitor

High leveltransactions

Checker

MonitorFunctionalCoverage

Properties Checker

Atomictransactions

Constraints;directed tests

Page 13: Jonathan Bromley Doulos

13

Copyright © 2008 by Doulos. All rights reserved.

OVM Key Features

• Constrained random, coverage-driven verification

• Separation of tests from verification environment

• Configuration of verification environment

• through a table

• Verification IP reuse (canonical structure and guidelines)

• TLM communication

• Automation (where missing from SystemVerilog language)

• Hierarchical sequential stimulus (sequences)

• Standardized messaging

Page 14: Jonathan Bromley Doulos

14

Copyright © 2008 by Doulos. All rights reserved.

eRM Key Features

• Constrained random, coverage-driven verification

• Separation of tests from verification environment

• Configuration of verification environment

• through AOP extension and pre-run constraints

• Verification IP reuse (rigorously standardized rules)

• Communication via ports

• Automation (using e language's macro features)

• Hierarchical sequential stimulus (sequences)

• Standardized messaging

Page 15: Jonathan Bromley Doulos

15

Copyright © 2008 by Doulos. All rights reserved.

VMM Key Features

• Constrained random, coverage-driven verification

• Configuration of verification environment

• through configuration objects passed to verification components

• Verification IP reuse (conventions)

• Communication via channels, callbacks, notifications

• Automation (scripts and macros)

• Hierarchical sequential stimulus (scenarios)

• Standardized messaging

• Strongly influenced by RVM (Synopsys Vera)

Page 16: Jonathan Bromley Doulos

16

Copyright © 2008 by Doulos. All rights reserved.

Structure of an OVM Component

class my_driver extends ovm_driver #(my_transaction); // ovm_seq_item_pull_port #(...) seq_item_port; my_dut_if_wrapper m_dut_if;

function new(string name, ovm_component parent); super.new(name, parent); endfunction: new

function void build; super.build(); endfunction: build

virtual task run; forever begin ... end endtask: runendclass: my_driver

class my_driver extends ovm_driver #(my_transaction); // ovm_seq_item_pull_port #(...) seq_item_port; my_dut_if_wrapper m_dut_if;

function new(string name, ovm_component parent); super.new(name, parent); endfunction: new

function void build; super.build(); endfunction: build

virtual task run; forever begin ... end endtask: runendclass: my_driver

TLM port (inherited)

Connection to DUT

Constructor

Build phase callback

Run phase callback

Base class

Page 17: Jonathan Bromley Doulos

17

Copyright © 2008 by Doulos. All rights reserved.

Phase Methods (OVM)

buildbuild

connectconnect

end_of_elaborationend_of_elaboration

start_of_simulationstart_of_simulation

runrun

extractextract

checkcheck

reportreport

Call factory

Make TLM connections

After connections hardened

Post-processing

Task (executed concurrently)

Get ready to run

Similar phase arrangements in VMM, eRM

Page 18: Jonathan Bromley Doulos

18

Copyright © 2008 by Doulos. All rights reserved.

Reconfigurable Environment (OVM)

DUTDUT

Reusable verification environmentReusable verification environment

ScoreboardScoreboard Virtual sequencer

Virtual sequencer

MonitorMonitorExisting

verification component

Existingverification component

Existingverification component

Existingverification component

SequencerSequencer

DriverDriver

MonitorMonitor

Config

TestTestTestTest

set_config_*set_config_*

Customize environmentsCustomize environmentsset_inst_override_*set_inst_override_*

set_type_override_*set_type_override_*

Customize typesCustomize types

By type or instance pathBy type or instance path

Page 19: Jonathan Bromley Doulos

19

Copyright © 2008 by Doulos. All rights reserved.

Layered Sequential Stimulus

DUTDUT

Driver Driver Drive transactions into DUT

tx1tx1 tx2tx2 tx3tx3Constrained random sequence of transactions

seq1seq1 seq2seq2seq2seq2Virtual or layered sequences

tx1tx1

Tests enumerate possible top-level sequences

Randomized transactions are not enough

Page 20: Jonathan Bromley Doulos

20

Copyright © 2008 by Doulos. All rights reserved.

ovm_envovm_env

ovm_agentovm_agent

Virtual Sequences

ovm_sequencerovm_sequencer

ovm_driverovm_driver

ovm_sequencerovm_sequencer

Component hierarchy Stimulus hierarchy(co-ordinated interfaces)

DUTDUT

dut_ifdut_if

ovm_agentovm_agent

ovm_sequencerovm_sequencer

ovm_driverovm_driver

dut_ifdut_if

ovm_sequenceovm_sequence

ovm_sequence_itemovm_sequence_item

ovm_sequenceovm_sequence

Page 21: Jonathan Bromley Doulos

21

Copyright © 2008 by Doulos. All rights reserved.

Scenario Generator (VMM)

Verification environmentVerification environment

Scenario generator

Downstream transactorDownstream transactorgenerator's output channelgenerator's output channel

atomic

scenario_set

burst[1]

[0]

RMW[2]

burst

items

select_scenario

select

copies of itemscopies of items

Page 22: Jonathan Bromley Doulos

22

Copyright © 2008 by Doulos. All rights reserved.

Now and Next

• VMM: rapidly growing collection of "applications"

• register abstraction layer, hierarchy, ...

• OVM/VMM interoperability toolkits/standards

• OVM/eRM mixed-language tools

• OVM-SC

• Increasing availability of verification IP

Page 23: Jonathan Bromley Doulos

23

Copyright © 2008 by Doulos. All rights reserved.

Conclusion

• Interesting times

• standards don't always keep up with user needs

• Challenges for users choosing a new approach:

• tools?

• methodology?

• decisions are not yet completely decoupled

• Training is important:

• VMM, OVM, eRM are not difficult ...

• ... but jump-starting your efforts pays dividends

Page 24: Jonathan Bromley Doulos

24

Copyright © 2008 by Doulos. All rights reserved.


Top Related