View PDF - Verifyter

Transcription

View PDF - Verifyter
Automatic Debug
If not now, when?
This presentation includes:
• Introduction to PinDown™ - an automatic debugger of
regression tests
• News about PinDown 4, the next generation automatic
debug, which was announced during the Design
Automation Conference, June 2015.
Product Overview
PinDown™ - Automatic Debugger of Regression Tests
1
Verification-Debug is
getting worse
Year
Engrs/Project
% Time in
Verification
2007
13
46%
2012
17
56%
2014
21
57%
Source: Wilson Research Group and Harry Foster at Mentor Graphics, 2014 Functional Verification Study
Ever Larger
Designs
and Design
Teams
Multiple
Remote
Design
Teams
Multiple
IP Block
Sources
Verification Tasks
Debug
(37%)
More Complex
Inputs–e.g.
random
Incorrect
Bug
Reports
“SoC designs keep growing as we speak, so now we have more engineers contributing to the final
SoC. When you find a bug in the system, it becomes a whodunnit show, and it takes a collaborative
debug effort to go through piles of code and figure out what was going on. This is not just about
the size—it’s about integrating multiple IP blocks representing multiple knowledge domains
from multiple, remote teams.” Shlomi Uziel – VP of Engineering, Advanced Verification, CDN
2
The Principle
is Simple...
...but the reality
is difficult
41%
41% incorrect bug reports with simple approach
PinDown supports all scenarios
Random instability
occurs when a seed
number does not
produce the same
test scenario because
the DV testbench has
had substantial
changes.
The first commit that
made a test fail is not
necessarily the reason the
test still fails. This only
works in the simple case
when one bug is inserted
and fixed at a time, but in
larger projects multiple
bugs are introduced and
fixed in parallel.
3
Automatic Debug with PinDown
PinDown Customer
“PinDown’s approach to automatically debug and send relevant bug reports directly to the
engineers who made the mistakes is what you really need, rather than an endless list of failure
reports to review. Using PinDown has allowed us to save valuable project time.”
…….Senior Director of Hardware Design:
Bugs Fixed
400% Faster
5X Less
Thrashing
(Discussion)
Saved 4.9
Man-Years on
40 Engr
Project
4
PinDown™ - Design Flow Interactions
Email Bug
Reports to
Responsible
Engineer
Simulation Test
Results
PinDown
Test Hub
Test Executor
(LSF Farm)
Version Control
System
PinDown Results
Database
10
5
How PinDown Works - Patented Debug Algorithm
1-4X
Smart
Grouping
Debug Next Bug
Unroll Changes
(10 selections in
parallel)
Bug Group 1:
”Error: RX value
wrong”
12 test failures
Test
Results
Tests
Fastest
*
Test Fails
Bug Group 2:
”Address is
XXXXXXX”
14 test failures
Smart
Selection
Identify
possible bad
commits, files*,
chunks*, lines*
Send Email
Test
Passes
* New in PinDown 4
Tests
Fastest
Revision Control System
(Perforce, GIT, Subversion,
Clearcase)
Rerun Other
Tests
Check that
unrolling the
change makes all
tests pass in the
same bug group
Bug No: 1 (new bug)
Test: test34_vm_seed_0x45679832
Build: dtlb_thdr
Error: Error: RX value wrong
Committer: johndoe
Commit Message:
979301: RX performance improvement
Committed Files:
//depot/bigproject/dv/dtlb/dtlb_rqe/common/interface/dtlb_rqe_tb_if.sv
Log:
/projects/pindown/bigproject/dv/dtlb/tb/ftlb_thdr/sv_sep_dut_comp.log
PinDown makes the failing tests pass again, by only removing the changes made in one or several
bad commits. This process, called validation, proves which commits are causing the respective test
failures. As soon as a bad commit has been validated a bug report is sent to the committer.
6
Customer Benchmark
Bug Fix Time:
400% Faster with PinDown
Manual Debug
Automatic Debug
Hours
Emails Regarding Bugs:
5X Less Discussion
Manual Debug
Automatic Debug
Number of Emails
Saved 4.9 Man-Years on 40 Engineer Project
7
Customer Quotes:
”Bug are fixed much faster with PinDown. PinDown pushes back issues to the
engineers that caused the breakdown 24/7 so the quality is never allowed to slip.”
….Snr Principal Engineer
”You need to constantly supervise the quality to avoid slipping. If engineers don’t
get fast feedback and they start to discuss who should fix what then you lose a lot
of time.”
…Snr. Manager
”Using Pindown has allowed us to save valuable project time. It was a real
game changer when we started to use PinDown.”
….Snr. Director
Automatic Debug.....If not now, when?
8
Competitive Landscape
Continuous Integration:
-
Gate keeper
Short directed tests
e.g. Jenkins
Automatic Debug:
Post-Integration Testing:
-
Large Test Suites
Random/Directed Tests
PinDown
Inhouse Solution
NEW! At DAC, June 2015, we
announced information about
the upcoming PinDown 4 release
PinDown™ 4
The Next Generation Automatic Debug
• Finer Debug Granularity
– Debug granularity of files, chunks, lines
• Management Reports
– Track the cost of the computer farm related to the project activity in
order to get the farm costs under control
– Track the bug fix time and quality uptime of the project
• Verification Optimizer
– Cut the farm cost, detect and find bugs faster
10
PinDown 4 : Fine Granularity Debug
Smart
Grouping
In PinDown 4 the debug granularity can be set to find which lines or files within a commit that
caused a test to fail. This is useful on larger commits, e.g. mergers of two branches when a lot of
changes have been done in one commit.
1-4X
Debug Next Bug
Unroll Changes
(10 selections in
parallel)
Bug Group 1:
”Error: RX value
wrong”
12 test failures
Test
Results
Tests
Fastest
*
Test Fails
Bug Group 2:
”Address is
XXXXXXX”
14 test failures
Smart
Selection
Identify
possible bad
commits, files*,
chunks*, lines*
* New in PinDown 4
Tests
Fastest
Revision Control System
(Perforce, GIT, Subversion,
Clearcase)
There is a trade-off between performance and granularity – the finer granularity the longer the
debug process takes. The granularity is controlled by the user, who can decide the optimal
setting from project to project.
Send Email
Test
Passes
Rerun Other
Tests
Check that
unrolling the
change makes all
tests pass in the
same bug group
Bug No: 1 (new bug)
Test: test34_vm_seed_0x45679832
Build: dtlb_thdr
Error: Error: RX value wrong
Committer: johndoe
Commit Message:
979301: RX performance improvement
Committed Files:
//depot/bigproject/dv/dtlb/dtlb_rqe/common/interface/dtlb_rqe_tb_if.sv
Log:
/projects/pindown/bigproject/dv/dtlb/tb/ftlb_thdr/sv_sep_dut_comp.log
11
PinDown 4: Management Reports
Debugger Optimizer
On
On
Track farm cost per project, as well as bug fix time and quality uptime.
You want to control and improve on these key performance indicators.
Quality
(test pass time ratio)
Cost
Track Farm Cost
Per Project
(tests run/bug)
Bug Fix Time
(from bug commit until
verified fixed)
Farm Waiting Times
Time
12
PinDown 4: Verification Optimizer
Finding Bugs
Stop regression runs when all bugs have been found and save both time and
computer resources. The stop time is calculated by analyzing historical runs to
determine the optimal stop time.
Wasting Farm Resources
and Debug Time
This cuts the farm costs, improves bug fix time as well as quality uptime.
WITHOUT
Bug 2
Bug 4
Bug 3
Bug 1
Fix
Debug
Bug 1
Comitted
Bug 2
Comitted
All Bugs
Found
Bug 4
Comitted
Bug 2
Do a full run every
X run to keep the
coverage the same
Kill Jobs
Kill Jobs
WITH
Reduced
Farm Load
Bug 3
Comitted
Bugs Found
Faster
Bugs Fixed
Faster
Bug 3
Bug 1
Debug
Fix
Bug 4
Bug 3
Debug
Fix
13
Verifyter Roadmap
PinDown 4.2
Fine Granularity – Lines
Management Reports – Across All Projects
Verification Optimizer - Automated
PinDown 4.1
Fine Granularity – Chunks
Management Reports Per Project
PinDown 4.0
Fine Granularity – File
Verification Optimizer - Tools
Early Q3 2015
Q3 2015
Q4 2015
14