54 The Art of Writing Predictors Efficiently Using Uvm
54 The Art of Writing Predictors Efficiently Using Uvm
1
Agenda
• Goal
• Overview of Predictors
• Advanced Prediction Techniques
– Asynchronous Predictor with multiple comparators
– Multi data stream time consuming Predictor
– Predictor synchronized with design under test
• Conclusions
When the input data stream • Predictor synchronized with design under
targets different layers in the test
design
Expected Observed
Input Output Output
PREDICTOR EVALUATOR
SCOREBOARD
Input Output
transaction transaction
order order
PKT1_typeA PKT2_typeB
PKT2_typeB PKT4_typeB
DUT
PKT3_typeC PKT3_typeC
PKT4_typeB PKT1_typeA
Transfer
EVALUATOR2
Function
EVALUATOR3
Buffer C
DUT
Buffer B
Buffer A
PREDICTOR
Buffer C
Input
DUT
Buffer B
Agent
Buffer A
PREDICTOR
EVALUATOR1
Buffer C
Input
DUT
EVALUATOR2
Buffer B
Agent
Buffer A
EVALUATOR3
PREDICTOR
Buffer C
Monitor
Output Agent 2
Input
DUT
EVALUATOR2
Buffer B
Monitor
Agent
Output Agent 3
Buffer A
EVALUATOR3 Monitor
PKT1_typeA, PKT1_typeB
PKT1_typeB, PKT2_typeB
PKT1_typeC
DUT PKT1_typeA
PKT2_typeB, PKT1_typeC
PKT2_typeC PKT2_typeC
NO
Multiple input
WAIT
streams
TRANSMIT QUEUE
Input Agent 1
Monitor
Sequencer Driver
PREDICTOR
Input Agent 2
TRANSMIT QUEUE
Monitor
DUT
Sequencer Driver
Input Agent 3
Monitor
Sequencer Driver
Input streams
© Accellera Systems Initiative 26
The Verification Environment
Expected output
EVALUATOR
Input Agent 1
Monitor
Sequencer Driver
PREDICTOR
Input Agent 2
TRANSMIT QUEUE
Monitor
DUT
Sequencer Driver
Input Agent 3
Monitor
Sequencer Driver
Input streams
© Accellera Systems Initiative 27
The Verification Environment
Expected output Observed output
EVALUATOR
Input Agent 1
Monitor
Sequencer Driver
PREDICTOR
Input Agent 2
TRANSMIT QUEUE
Monitor
Output
DUT
Sequencer Driver Agent
Input Agent 3
Monitor
Sequencer Driver
Input streams
© Accellera Systems Initiative 28
Summary: Multi data stream time
consuming Predictor
Input transaction Input transaction
Timing
stream(s) abstraction
• Time • Multiple • Low
Consuming
PKT1_ERROR PKT3_ERROR
PKT1_GOOD PKT1_ERROR
DUT
PKT2_ERROR PKT1_GOOD
PKT3_ERROR PKT2_GOOD
INTERRUPT
EVALUATOR 1
PREDICTOR
INTERRUPT INTERRUPT
(ERROR
EVALUATOR 2 AGENT
DETECTOR)
INTERRUPT
EVALUATOR 3
INTERRUPT
EVALUATOR 1
PREDICTOR
INTERRUPT RESPONSE
(ERROR
EVALUATOR 2 EVALUATOR
HANDLER)
INTERRUPT
EVALUATOR 3
LAYER 3
LAYER 2
LAYER 1
DUT
Registers
PREDICTOR
(ERROR DETECTOR)
LAYER 3
LAYER 2
LAYER 1
Input
DUT
Agent
Registers
PREDICTOR
(ERROR DETECTOR)
INTERRUPT
EVALUATOR 1
LAYER 3
LAYER 2
LAYER 1
Input
DUT
INTERRUPT
EVALUATOR 2
Agent
Registers
INTERRUPT
EVALUATOR 3
PREDICTOR
(ERROR DETECTOR)
INTERRUPT
EVALUATOR 1
LAYER 3
LAYER 2
LAYER 1
Interrupt Input
DUT
INTERRUPT
EVALUATOR 2
Agent Agent
Registers
INTERRUPT
EVALUATOR 3
Observed Interrupts
© Accellera Systems Initiative 40
The Verification Environment
Interrupt PREDICTOR
stream (ERROR HANDLER)
synced
with DUT
PREDICTOR
(ERROR DETECTOR)
INTERRUPT
EVALUATOR 1
LAYER 3
LAYER 2
LAYER 1
Interrupt Input
DUT
INTERRUPT
EVALUATOR 2
Agent Agent
Registers
INTERRUPT
EVALUATOR 3
INTERRUPT
EVALUATOR 1
LAYER 3
LAYER 2
LAYER 1
Interrupt Input
DUT
INTERRUPT
EVALUATOR 2
Agent Agent
Registers
INTERRUPT
EVALUATOR 3
LAYER 3
LAYER 2
LAYER 1
Interrupt Input
DUT
INTERRUPT
EVALUATOR 2
Agent Agent
Registers
INTERRUPT
EVALUATOR 3
Thank You!