Ddr3-Emac40-Queue-Manager Test Bench: - C2sis
Ddr3-Emac40-Queue-Manager Test Bench: - C2sis
Ddr3-Emac40-Queue-Manager Test Bench: - C2sis
-c2sis
1
Agenda
Accellera Standard
System verilog UVM Base class library
Near backward compatible with OVM
UVM TEST
Test is the top level class that instantiates Environment ENV,
configures the test bench and initiates construction
Individual tests derive from uvm_test
Each test case instantiates uvm_env and configures them
Test bench is activated with a call to run_test() which starts build
phases
UVM Env
It has collection of Agents like Tx_Agent and Rx_Agent in our case.
Has its own configuration object
UVM SCOREBOARD
UVM Agent
Contains a group of uvm_components ( Driver, Monitor and
Sequencer) focused around a specific pin level interface.
Multiple agents can be used for multiple DUT interfaces which has
different protocol
Agents can be re-used for similar interfaces
Configurable is_active flag indicates whether the agent is active or
passive
If agent is active driver, sequencer and monitor are constructed.
If agent is passive only the monitor is constructed.
Components of Agent
DRIVER
SEQUENCER
MONITOR
Observes pin level activity and converts its observations into sequence_items
which are sent to analysis component like scoreboard
10
UVM Sequences
Sequence is a transient object with limited life time unlike a
uvm_component
Data object that contains all the data that driver needs to drive on DUT.
Most randomization done on this object
11
Agenda
12
UVM PHASES
1) Build Phase:
This phase is used to construct various child components/ports/exports
and configures them.
Ex: function void build_phase (uvm_phase phase)
//- Create agent
//- Create Score board
endfunction: build_phase
2) Connect Phase: This phase is used for connecting the
ports/exports of the components.
Ex: function void connect_phase ( uvm_phase phase);
//- Connect from agent to score board
endfunction: connect_phase
Agenda
16
17
Description
Test case Library contains the list of all test cases which user can
run.
User calls one of the test present in test case library from the
command line.
The test called by user build the environment and connects all the
components.
The test contains all the sequences and their order which will be
called from sequence library and sequencer will route these
sequences to driver.
18
Description . . .
Driver will convert these sequences into pin level transactions and
drive the DUT signals. In this case it will drive the tx signals of tb
emac.
Tx_monitor observes pin level activity on tx interface and converts
its observations into sequence_items which are sent to scoreboard.
Rx_monitor observes pin level activity on rx interface and converts
its observations into sequence_items which are sent to scoreboard.
Scoreboard collects sequence items from both tx and rx monitors
and performs different kinds of checks like data integrity check ,
length check, priority check.
19
THANK YOU
20