Professional Documents
Culture Documents
Verifying Layered Protocols: - Leveraging Advanced UVM Capabilities
Verifying Layered Protocols: - Leveraging Advanced UVM Capabilities
Breaking network
Interconnect
Application 7
Transaction Fragments Adaptation Layer
Presentation 6
designs into functional Session 5
layers Transport
Packets
4
SAP-based
communication
Easier Debug
Faster convergence to where network failures originate
The same user-level (application) program can be
used over diverse communication networks.
Same WWW browser can be used when you are connected to the
internet via a LAN or a dial-up line.
Agenda
Verification IP & Testbench Challenges
Architectural Challenges
Stimulus generation - Generate varied traffic corresponding to each layer
Visibility and granularity of control - retrieving transaction for analysis
Support for intermediate layer and multi-lane scenarios
Application Challenges
Verifying Transformations
Graceful End-of-test
Enough debugging hooks
Serial
Transactions / L L Transactions /
sequences
L2 L1 /TLM L1 L2
3 sequences
3
Accept
task put(l1_sequence_item l1_seq_item)
l2_seqr blk_put_port.connect
(blk_put_export)
Process
Call
l2_seq_item -> l3_seq_item
blk_put_port.put(l1_seq_item)
Call Process
Input l3_seq_item via.
generic_seq.dispatch(l3_seqr, l3_seq_item) l2_seq_item -> l1_seq_item
l3_seqr
Accept
task put(l2_sequence_item l2_seq_item)
l3_seqr blk_put_port.connect
Process (blk_put_export)
l2_seq_item -> l3_seq_item Call
blk_put_port.put(l2_seq_item)
Process
Drive interface
l3_seq_item -> l2_seq_item
TRANSMIT RECEIVE
FLOW FLOW
Application Challenges - I
- Scoreboarding Challenges - I
… Scoreboarding @
IAL
Scoreboarding @ Classified for
… 1. Request/Response
IAL-TL-DLL-PAL Layers TL 2. All traffic types
…
DL
… …
IAL PAL
REQ RSP
SQNR SQNR … LLI
TL Passive
IAL … Monitor
STACKED
DL
Frag DeFrag
… DUT
PAL
TL+DL+PAL Physical Interface
Monitor
1
Request
Request
Received
Transmitted
Response
3 2 Generated
Response
Received
STACK - I STACK - II
Response
Received
Response
Generated Request
Request Transmitted
Received
Addressing Scoreboarding Challenges
class lli_system_env extends uvm_env;
Policy Based design :
template taking several type typedef lli_scoreboard#(svt_mipi_lli_transaction)
trans_scbd;
parameters typedef lli_scoreboard#(svt_mipi_lli_packet)
specialized to encapsulates pkt_scbd;
orthogonal aspects of the behavior of
An instance of VIP AGENT - LLI Master/Slave
the instantiated class svt_mipi_lli_agent mstr, slv;
class lli_comp #(type T = int); IAL Scoreboard Instances for request xact
static uvm_comparer relevant_comparer = new(); trans_scbd m_s_ll_xact_sb;
static function bit comp(input T a, input T b); trans_scbd m_s_be_xact_sb;
relevant_comparer.physical = 1;
relevant_comparer.abstract = 0; Construct the IAL scoreboard instances
return a.compare(b, relevant_comparer); m_s_ll_xact_sb = new("m_s_ll_xact_sb", this);
endfunction m_s_be_xact_sb = new("m_s_be_xact_sb", this);
endclass
Connect the monitor to the scoreboard for Master
LL request
mstr.ial_mon.tx_ll_ta_xact_observed_port.
class lli_scoreboard#(type T=uvm_sequence_item) connect(m_s_ll_xact_sb.tx_export);
extends uvm_scoreboard; slv.ial_mon.rx_ll_in_xact_observed_port.
connect(m_s_ll_xact_sb.rx_export);
Export Transmitted/Received Requests
uvm_analysis_export#(T) tx_export, rx_export;
Connect the monitor to the scoreboard for Master
"in order comparator"
BE request
uvm_in_order_comparator #(T, lli_comp#(T),
mstr.ial_mon.tx_be_ta_xact_observed_port.
uvm_class_converter#(T)) comparator;
connect(m_s_be_xact_sb.tx_export);
slv.ial_mon.rx_be_in_xact_observed_port.
Building components
connect(m_s_be_xact_sb.rx_export);
Connect local export to comparator export
endclass
Reporting results
Application Challenges - II For a reactive sequence, drop
the objection - response
passed down on the transmit
- End-of-test Mechanism path