Day24 25 Advanced Functional Verification PDF
Day24 25 Advanced Functional Verification PDF
Bob Oden
UVM Field Specialist, Mentor
Instructor, ECE Department, NCSU
November 27, 2017
Agenda - Monday
n The circumstances: Electronic design
n The problem: Project risk
n The solution: Systematic verification
n The industry: Trends in verification technology
n SystemVerilog: Standard language for verification
n UVM: Standard methodology for verification
Design
Capability
Verification
Capability
Module B Environment B
Module C Environment C
n Test Plan
– Identifies what needs to be tested
– Start by identifying what without consideration of how
n Verification loop
1. Add test scenarios
2. Collect coverage during test regression
3. Merge test coverage results
4. Rank test/seed pairs
5. Generate custom coverage reports
6. Identify coverage holes
7. Identify coverage closure trends
Native Assertions
Classes with
SVA
methods &
Functional inheritance,
Coverage interfaces, Direct
Constrained
structs, unions, Programming
random
enums, arrays Interface
generators
Verilog 95
ack
Example intended behavior
property single_req;
After clk)
@(posedge the request signal
disable iff is asserted, the
(rst)
acknowledge
($rose(req))signal must&&
|=> ((!ack come 1 to 3 cycles
req)[*0:2] later
##1 ack);
endproperty
n UVM_component
— Encapsulates common
data and functionality
of all components
– Hierarchy
– Phasing
– Objections
– Factory
– Recording
n Represents bus
operation
n Untimed
n Contains sequence ID
and sequence item ID
© Mentor Graphics Corp. Company Confidential
n Run-Time phases
executed in
parallel with run
phase.
n Do Not Use
— Run –Time phases
— User defined
phases
— Phase jumping
wb2ahb_predictor wb2ahb_predictor
ab2wb_predictor::set_type_override(ahb2wb_dpi_predictor::get_type())
wb2ahb_predictor wb2ahb_predictor
© Mentor Graphics Corp. Company Confidential
n Contents
— Configuration Env Configuration Environment
— Scoreboards Agent B
Agent B
– Verifying DUT output Config Agent A
activity
n Passive agent
— Receives data from monitor BFM of signal Sequencer Driver
activity
n Broadcasts transactions to other
components within environment
n No DUT specific operations
© Mentor Graphics Corp. Company Confidential
n Untimed
n Receives transactions from agents through
analysis_export(s)
— Creates expected DUT output transaction from Predictor
– Input transaction
– Prior transaction(s)
– Current configuration or state
© Mentor Graphics Corp. Company Confidential
n Checks
— Empty check
— Activity check
— Wait for drain
n Reports
— Transaction counts
— Remaining transaction display
— summary
In Agent Coverage
Config
Out Agent
In Agent Out Agent
Config
In Agent Coverage
Config
Out Agent
In Agent Out Agent
Config
Out Agent
In Agent Out Agent
Config
Hvl_top
Driver BFM
Sequencer Driver Task and Function
API’s to Interface
With agent driver
Driver BFM
Sequencer Driver Task and Function
API’s to Interface
With agent driver
Sub A env
Configuration
Sub B env
Configuration
Configuration
In Agent Out Agent In Agent Out Agent
Sub B env
Configuration
Sub A env
Configuration
Sub B env
Configuration
Sub B env
Configuration
Hvl_top
Testbench Design
Simulation
Testbench Acceleration T D
(transaction-based, i.e. co-emulation) 10 – 1000 X
Scoreboard
Monitor Monitor
Scoreboard SV Interfaces
SV Modules
Test Tasks/Functions
Coverage
Controller
Pin Wiggles
Monitor
Transactions
Monitor
Proxy Proxy
Timed Domain
Untimed Domain
Monitor Monitor
BFM BFM
Responder
Driver Driver Proxy
Stimulus Proxy BFM DUT Slave
Responder
BFM
T/F
call Inbound communication
HVL HDL
RTL
Testbench proxy BFM
API
class mod/if DUT
T/F
Outbound communication call
Higher-level TB
(SV/UVM, or C/C++/SC)
Transactor proxy
Transactor Signal or port
connections
is-a uvm_driver or
uvm_monitor BFM written in “XRTL”
Driver BFM
Sequencer Driver Task and Function
API’s to Interface
With agent driver
Out Agent
In Agent Out Agent
Config
Hvl_top
Out Agent
In Agent Out Agent
Config
Hvl_top
Sub B env
Configuration
Hvl_top
Sub B env
Configuration
Hvl_top
Out Agent
In Agent Out Agent
Config
Hvl_top
Sub B env
Configuration
Hvl_top
Predictor Scoreboard
n Transition to emulation
— Development transitions from Coverage
debug to regression
n Transition to simulation
— Reproduce errors discovered in sub
blocks
n Transition to simulation
— Reproduce performance
bottlenecks discovered in sub
blocks
Codelink
100 MHz ~10 Simultaneous users
CODELINK
TRACE FILE
Ranking identifies
redundant Tests