Documente Academic
Documente Profesional
Documente Cultură
June 4, 2014
DaeSeo Cha
Infrastructure Design Center
System LSI Division
Samsung Electronics Co., Ltd.
1
Current Performance Verification
Architectural Performance Exploration
System Requirement SystemC model, real workload aware performance
analysis
2 2/13
New Approach for Performance Verification
System Requirement
UVM Testebench
Post-Silicon Summary
PV components
Monitor: Collect various performance metrics
Traffic Generator: Random or replay RTL IPs traffic
4 4/13
UVM Co-emulation Environment
UVM Architecture for Co-emulation
sw_top UVM testbench
prim_top Simulator
tb_top
Incr_top Bus
AXIUVC
bus Module
Test scenario
hw_top DUT
Register Model
Interface Emulator
Interface
Virtual sequencer
Sequence
REG2BUS adapter
DUT
Register predictor
Interrupt
Simulation environment
- Incremental elaboration having primary, incremental snapshot
- Building test scenarios by combining testbench and design in full-chip
Emulation environment
- DUT runs in emulator, incremental elaboration scheme used in emulator
5 5/13
Performance Monitor -1/2
Performance Metrics
Latency: Min/Max/Average, time-varying, accumulated, distributed
Bandwidth: Min/Max/Average, time-varying, accumulated, distributed
Utilization: Min/Max/Average, time-varying, accumulated, distributed
Address pattern
Response time PM
6 6/13
Performance Monitor 2/2
Experiments
PV results should be recorded in-order
Many experiments are done to reduce run-time overhead
Method Description tbcall sync Overhead
No PV Monitor Baseline 398 -
$display Sync with TB using $fdisplay() 32,798 81X
GFIFO Buffering monitored transaction 472 1.12X
Collecting process in back ground
GFIFO
Transactions are collected in order, it is congruent with the SW simulation
Parallel execution of monitor transaction in SW Improve performance
bit a; bit [5:0] b; int c;
bit a; bit [5:0] b; int c; function void my_mon(bit x1, bit [5:0] x2, int x3);
always @(clk) begin $fdisplay(%d %d %d, x1, x2, x3);
$fdisplay ( %d %d %d, a, b, c); endfunction;
end Simulation Monitor initial $ixc_ctrl("gfifo", my_mon");
always @(clk) begin my_mon(a, b, c) end GFIFO
7 7/13
Performance Analysis Environment
PRISM (Performance Visualization System)
Charting PV results in GUI
Easy to find a performance issue by viewing PV results in a single GUI
8 8/13
Experimental Result
Application
Multimedia test scenarios such as video playback, camera recording
Run-time speed
+100x faster than simulation
Bugs found
Critical bugs and design weak points which would not been detected
during simulation-based verification
9 9/13
Conclusion
PV using emulator is a mainstream solution
Very fast bring up using UVM Co-emulation
Reusing UVM full-chip testbench without any modification
PV in early design development stage with cycle accuracy
+100x faster speed compared with simulation approach
Efficient PV analysis by PRISM
Future Work
Add more features to PRISM - correlation, smart PV report etc.
Develop ACE PV Monitor for dealing with cache-coherency
Deploy UVM Co-emulation for other test scenarios
10 10/13
Thank you
11 11/13