advanced, high-throughput debug from design to silicon · advanced, high-throughput debug from...

90
Advanced, High-Throughput Debug From Design to Silicon Gordon Allan & Michael Horn Mentor Graphics Inc 1

Upload: vanxuyen

Post on 26-Feb-2019

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Advanced, High-Throughput Debug From Design to Silicon

Gordon Allan & Michael HornMentor Graphics Inc

1

Page 2: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

2

Page 3: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Verification Consumes Majority of Project Time

3

Source: Wilson Research Group and Mentor Graphics, 2014 Functional Verification Study

0%

5%

10%

15%

20%

25%

30%

1%-20% 21%-30% 31%-40% 41%-50% 51%-60% 61%-70% 71%-80% >80%

Stu

dy

Par

tici

pan

ts

Percentage of Project Time Spent in Verification

2007

2012

2014

2007: Average 46%2012: Average 56%2014: Average 57%

H Foster, WRG Functional Verification Study, November 20143

Page 4: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Verification Consumes Majority of Project Timefor FPGAs too

4

Source: Wilson Research Group and Mentor Graphics, 2014 Functional Verification Study

H Foster, WRG Functional Verification Study, November 20144

0%

5%

10%

15%

20%

25%

<21% 21%-30% 31%-40% 41%-50% 51%-60% 61%-70% 71%-80% >80%

Stu

dy

Par

tici

pan

ts

FPGA vs. ASIC/IC Percentage of Project Time Spent in Verification

FPGA

ASIC/IC

FPGA: Average 46%ASIC/IC: Average 56%

Page 5: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Where Verification Engineers Spend Their Time

5

Source: Wilson Research Group and Mentor Graphics, 2014 Functional Verification Study

14%

22%

24%

37%

3%

Test Planning

Testbench Development

Creating Test and Running Simulation

Debug

Other

H Foster, WRG Functional Verification Study, November 20145

Page 6: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Key Recommendations

• Find bugs as early as possible – Before time-consuming, resource intensive regressions are

launched

• Successively refine low power verification in every D&V phase

• Leverage new debug technologies to expedite causality discovery

• Break down the wall between RTL and firmware verification

• Plan ahead for post-silicon debug

6

Page 7: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

The Enterprise Verification Platform

7

Page 8: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

8

Page 9: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Debugging RTL with Visualizer

• Demonstration of example scenarios

9

Page 10: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualizer Debug Environment ArchitectureBuilt for Performance/Capacity for the Largest SoCs

• Fast GUI data model– Technology acquired from Axiom Design Automation– Integrated with Questa & Veloce compilation and execution flows– Capacity to load 500M+ gate designs in seconds

• Fast and efficient waveform database– Custom compact database format– Standalone option to enable worldwide debug efforts– On-demand connectivity for fast loading times

• High performance and capacity– “Smarter” integration with QuestaSim for even more capacity– Common tasks happen instantly on 200M+ gate designs

10

Page 11: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualizer is Intuitive for Everyday Debug TasksFast and efficient where you spend 85% of your time

• Intuitive– Natural layout– Easy navigation– Quick mouse-clicks

• Responsive– Fast waveform– Fast source windows– All in time-sync

• Advanced Schematic View– Full featured – For both RTL and gates

11

Page 12: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Powerful Design Comprehension CapabilitiesFinding Drivers, Receivers, and design highlight is fast and easy

• 3 key navigation capabilities– Drivers– Receivers– Active Drivers / Receivers

• Easy to trace back and forth– Single click

• Quickly pinpoint activity in time– Execution trace– Popup tool tips– Value annotation

12

Page 13: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Unique TimeCone View to Find Cause FasterQuickly trace back through time and view the cause of an event

• Trims down to just show the path that is relevant

13

Different colors denote different

simulation times

Page 14: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Searching is Both Easy and PowerfulBoth design wide and local

• Easy searching and filtering in any window to find objects• Biometric search to add a “color” tag to a search so that it

stays highlighted to see trends

14

Page 15: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Adding Assertions: A Powerful RTL Debug ToolVisualizer makes it easier and faster to get them right

• Assertions make it easier to find bugs

• Easy to create and debug assertions

– Assertion Explorer

– Interactive Replay

15

Testbench

== Bugs missed due to poor observability

Page 16: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

16

Page 17: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Debugging Complex Testbenches

• Demonstration of example scenarios

17

Page 18: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Modern Testbenches Add Complexity to DebugUsers report often 50% of debug time is in testbench

• Testbench data is dynamic– How can you log it?

– How do you find objects and with what name?

• Testbench is complex structures such as classes– How do you look at all of the handles and variables?

– How do you see what is happening over time inside a class?

• Testbench is object-oriented and multi-threaded– How do you see inheritance?

– How do you breakpoint or view a particular thread?

18

Page 19: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Classes and UVM Debug in Post-Sim ModeTB debug features normally only found in interactive debug

• All data available at no performance cost• Easy and Powerful Browse and Analysis of Objects• Full schematic and waveform features• No more relying on print statements

19

Page 20: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Classes/UVM data in WaveformEasily explore data and member values over time

• Easy to drag into waveforms from source or object –

• Find ‘driver’ - 1 step to add ‘this’ handle to waveform

– Expand and see its data, address, etc. Everything over time!

• Simple to see any testbench transaction to your DUT20

Page 21: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Intuitive Debug for Your UVM SequencesEasy to track, trace and see your stimulus

• Visualizer has powerful class-based debug capabilities– See parent child relationships, find key sequences, etc.

• Questa automatically records sequences as transactions

21

Page 22: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Raising Abstraction: Transaction-Level DebugEasy, Powerful Waveforms and Transaction Stripe View

• Transactions listed in start time order

• Powerful filter and search

• Drag and drop into waveform for detailed analysis

22

Page 23: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Testbench Debug Requiring Interactive Mode

• Just creating the testbenchand need to slowly step through it?

• Something is happening at initialization that is not right?

• Need to run the simulation up to a certain point, stop and explore?

• Need to understand how dynamic events and data are being created especially the threading?

23

Page 24: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

UVM and Class Debug in Interactive ModeEven more capabilities available in interactive mode

• Interactive mode has everything post-sim does plus…

• Breakpoints – So you can stop the simulation in any object

• Hierarchy of currently active sequences

24

Dynamic sequence hierarchySet breakpoint on line,

class object or in base

class object

Page 25: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

UVM Factory and Configuration Debug

• Explore who, what and where things are set and used

• Resolve common UVM initialization issues

25

Factory parameterized classes

and any overrides all in one placeConfig database – readers, writers and

who set what

Page 26: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualizer: Unified Debug for Questa and VeloceMaximize performance and still have ease of use

• Same debugger for both simulation and emulation

• Unique debug for TBX flow – TB from sim, DUT from emulation

• On-demand data loading for fast response with huge data

26

Visualizer

Visualizer

Page 27: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualizer Debug EnvironmentSummary

• High Performance/Capacity Debug

• Powerful Advanced Debug Features

• Assertion Debug

• Integrated Testbench

• Transaction Debug

• Full SystemVerilog, VHDL

• Mentor VIP integration

• Post-simulation use model

• O/S: Linux 32-bit, 64-bit

27

Page 28: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

28

Page 29: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Debugging Low Power Designs

• Demonstration of example scenarios

29

Page 30: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Traditional Design and Verification Flow• RTL design

– Captures design intent

– Drives functional verification

– Drives synthesis

• Logical implementation– Using standard cells and macros

– Further modified for test, ECOs, etc.

• Physical implementation– Place & Route completes implementation

– Produces manufacturing data

• Power management– Inherently part of physical implementation

– Not represented in earlier stages

– Not easy to optimize or redesign at this point

Sim

ula

tion

, L

ogic

al E

qu

iva

len

ce C

he

ckin

g, …

Layout

Can we verify power management

earlier in the flow?30

Synthesis

Place & Route

RTL

Netlist

Page 31: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

UPF-Based Design and Verification Flow• RTL is augmented with UPF

– To define power management architecture

• RTL + UPF verification– To ensure that power architecture completely

supports planned power states of design

– To ensure that design works correctly under power management

• RTL + UPF implementation– Synthesis, test insertion, place & route, etc.

– UPF may be updated by user or tool

• NL + UPF verification– Power aware equivalence checking, static

analysis, simulation, emulation, etc.

UPF

UPF

UPF

Sim

ula

tion

, L

ogic

al E

qu

iva

len

ce C

he

ckin

g, …

Netlist

Synthesis

Layout

Place & Route

RTL

31

Page 32: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Example Design

SRAM

(m1)

Interleaver

(i0)

PD_interleaver

(0.81V) Always

on

Async Bridge

SRAM

(m2)

SRAM

(m3)

SRAM

(m4)

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

IN

Memory

Controller

(mc0)

PD_mem_ctrl (switched 0.81V)

32

Page 33: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Example Design With Power Intent

SRAM

(m1)

PD_top (DUT)

(0.99V)

Interleaver

(i0)

PD_sram (0.99V)

Always on

PD_interleaver

(0.81V) Always

on

Async Bridge

SRAM

(m2)

SRAM

(m3)

SRAM

(m4)

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

IN

PAD

INL S

VDD_0d81 VDD_0d99VSS

Memory

Controller

(mc0)

PD_mem_ctrl (switched 0.81V)

Fast Behavioral

Retention Model

sw

ISO

33

Page 34: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Power Aware Verification Tasks and Tools

34

Design Functionality

Power Management

Architecture

Power Domain

Behavior

Power Domain

Interactions

Power State

Transitions

Power Control

Hardware

Power Control

Software

System with Power

Management

Verify that design functions correctly

with power always on

Verify that power management

architecture is correct

Verify power up/down and reset/restore

on power up for each block/power domains

Verify that interfaces are correctly

isolated and level shifted

Verify that HW generates correct

control signals in correct sequence

Verify SW Power Control interfaces

with HW is correct

Verify full system with HW and SW for

power control

Verify that all transitions are covered

and behave correctly with power control

Questa PASim

Questa Formal

Questa Codelink

Veloce Emulation

Page 35: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Questa Power Aware Simulation

• Visualization of power managementstructure and behavior

• Automatic detection of power management errors

• Automatic power management coverage

• Automatic test plan generation

• High performance and efficiency

• Extensive IEEE 1801 UPF support

35

IEEE Std 1801™-2009

Enables power management architecture verification

with RTL and Gate-Level power aware simulation

Page 36: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

------------------------------------------------------------

----- QuestaSim Power Aware Design Element Report File -----

------------------------------------------------------------

------------------------------------------------------------

PD_top: {Path1} = scope /testbench/axi_dut <>

PD_top: {Path337} = scope /testbench/axi_dut/fpu_inst

PD_top: {Path338} = scope /testbench/axi_dut/pcu_inst

PD_top: {Path339} = scope /testbench/axi_dut/pcu_inst/sys_pcu/pcu1

PD_top: {Path340} = scope /testbench/axi_dut/pcu_inst/sys_pcu/pcu2

PD_top: {Path341} = scope /testbench/axi_dut/mem_inst

PD_fpu: {Path342} = scope /testbench/axi_dut/fpu_inst/fpu_dut <>

PD_fpu: {Path343} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_post_norm_sqrt

PD_fpu: {Path344} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_sqrt

PD_fpu: {Path345} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_pre_norm_sqrt

PD_fpu: {Path346} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_post_norm_div

PD_fpu: {Path347} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_serial_div

PD_fpu: {Path348} = scope /testbench/axi_dut/fpu_inst/fpu_dut/i_pre_norm_div

----------------------------------------------------------

----- QuestaSim Power Aware Architecture Report File -----

----------------------------------------------------------

----------------------------------------------------------

Power Domain: PD_fpu, File: /home/work/dpframe/upf/subsys.upf(10).

Creation Scope: /testbench/axi_dut

Primary Supplies:

power : /testbench/axi_dut/IVDD_0d81

ground : /testbench/axi_dut/VSS

Power Switch: fpu_sw, File: /home/work/dpframe/upf/subsys.upf(64).

Output Supply port:

vout_p(/testbench/axi_dut/IVDD_0d81)

Input Supply ports:

1. vin_p(/testbench/axi_dut/VDD_0d81)

Control Ports:

1. ctrl_p(/testbench/axi_dut/pcu_inst/pd1_pwr_on)

Switch States:

1. normal_working(ON) : (ctrl_p)

2. off_state(OFF) : (!ctrl_p)

vsim

Questa PASim Native Simulation of RTL+UPF

36

HDL UPF Liberty

vopt

Test

Bench

Compile as usual— No change in source code

Optimize with PA options— Process UPF power intent

— Read Liberty libraries as needed

— Run static PA checks

Simulate with PA options— Generate reports/Testplan

— Visualize/debug power-managed behavior

User PA

Models

vlog/vcom

Just a command-line switch on normal Questa simulation

Page 37: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

37

Power Domain and its

instances is displayed

in a unique color in

structural view

Visualizing Power Domains and StructureSee colorized domains and inserted power objects natively

Power Elements such

as isolation and level

shifters shown right

next to RTL in

structural view

Page 38: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

PA Debug - UPF Object VisualizationExplore all UPF objects from one place

• View all PA objects in variable window

• Clubbed in PA Info

• All UPF objects– Power Domain

– Supply Port

– Supply Net

– Supply Sets

– Logic Nets/Ports

– Add these to wave

– Do cone analysis

• Inserted PA Cells

38

Page 39: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Power Domains & UPF Object ListUnderstand all objects associated with each Power Domain

• View list of all Power Domains & UPF Objects

• Whole power management architecture visible– Primary Supplies,

Power Management Strategies, Isolated/Level Shifted Ports …

• Option to add objects to wave

• View current state/simstate

• In sync with wave window

• Filtering of objects based on current scope/type/names

39

Page 40: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Power Domains CrossingsComprehending Power Domain Connectivity

• View connected power domains

• List of all signals flowing from one domain to other

• Any violation/check in the source to sink path

• Filter/select source-sink domains

• Filtering based on violation type

• Add signals to waveform

40

Page 41: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Power Aware Dynamic MessagesInteractively Debug Errors from Automatic Checks

• View and debug all PA Dynamic Messages

• View time at which message fired

– Synced with waveforms

• Add signals/domains to waveform

• Filtering based on message types

41

Page 42: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

HDL AnnotationView all UPF added information in your HDL Source Context

• HDL signal coloring– Isolation(Blue)

– Level Shifter(Blue)

– Buffer(Blue)

– Corruption(red)

• Hovering information– Level Shifter

– Isolation

– Buffer

– Corruption

42

Page 43: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualizing Power Domain Behavior in waveformSpecial patterns for corruption and isolation

43

Normal OperationRegister

saved (71)

Register

restored (71)

Corruption shown

in red crosshatch

Initial Power Up Power Down Power Up

Page 44: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Questa PASim Automatic ChecksAutomatically detect Power Management Errors

Power Architecture Checks:

Isolation cells

• Isolation cells are inserted where required by power state definitions

• Isolation cells correctly handledynamic signal behavior

Level shifters

• Level shifters are inserted where required by power state definitions

• Level shifters shift in correct direction

• Level shifters correctly handledynamic signal behavior

Power Control Sequence Checks:

• Clock is disabled during power down

• Isolation is enabled during power down

• Inputs do not toggle during power down

• Retention/Isolation power is on andstable during power down

• Retention registers are saved before power down

• Latch enable is correctly set when retention occurs

• Primary power is on andstable during power up

• Non-retention registers are reset at power up

• Power control signals do not glitch

44

Page 45: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Visualize Power States and TransitionsStep through states interactively

45

Current

Power State

State Dependency

Objects, Double Click to

Open the State Machine

States of

Subdomains, etc.

Page 46: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Automatic Power State CoverageCoverage Information Created Directly from UPF Power States

46

UCDB

Power states and

transitions …

are stored in

the UCDB …

to measure power

state coverage …

… for coverage

closure.

Page 47: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

PA Testplan GenerationAutomatic Flow for Low Power Coverage Closure

• Vopt automatically generates QuestaPowerAwareTestplan.ucdb

• Includes both power states and dynamic tool generated PA assertions

• Coverage data stored in UCDB can be merged with testplan UCDB

• Uses Excel add-in to generate XML testplan from UCDB

47

Links to each PA

coverage item

Page 48: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Low Power Coverage Closure Report

• Tracks power related coverage data

– Links PA testplan items with PA coverage items in ucdb

– Used standalone or included in top-level design testplan

48

Track coverage of PA

enable assertion passesTrack coverage of PA

State and Transition

Page 49: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

PA Debug – Supply Network DebugVisualizer Explore the Supply Network

• Explore the power connectivity and power intent of the design (Visualize UPF)

– Power Domains, Switches, PA Strategies, Supply Ports/Nets, Logic Ports/Nets …

– View state & voltage values of UPF supplies

– View simstate of power domain

• Debug supply network created in UPF

– Do cone analysis (and time cone) on any UPF objects

– Trace back and forth on UPF supplies, trace UPF to HDL connections

49

Page 50: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Summary

• The UPF is the leading industry standard defines Power Management Architecture independent from RTL and physical design

• Debugging a Low Power/UPF enabled design requires visualization, exploration, checking and coverage tightly integrated with the HDL/gates

• Mentor provides the most comprehensive native low power debugging environment for UPF

50

Page 51: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

51

Page 52: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Veloce2 for Full-Chip Verification and Validation Boot OS, Drivers Validation

• Co-Emulation for UVM/SystemC testbench Acceleration

• OS and device drivers run on RTL or ISS processor models

• VirtuaLAB and physical peripherals exercise interfaces

• Golden Model for silicon bring-up and validation

CPU

Arbiter

Fabric

UART

Slave IF

GPIO

Slave IF

PCIExpress

PHY

Fabric

Software

Memory

Master IF

DisplayProcessor

PHY

Slave IF

SATA

PHY

Slave IF

Ethernet

PHY

Slave IF

USB

PHY

SlaveIFMaster IF

CPU

Master IF

SoC

Multi-core SW/HW debug

52

Page 53: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Veloce OS3 Fusion ICE and Virtual Within One Solution

Versatile and Easy to Use Verification and Validation Solution

Virtual Peripheral

& TransactorsIn Circuit Emulation

(ICE)

Quattro Maximus

The Best of Both

Worlds

53

A Door to real traffic• No testbench creation• Near real speed

emulation

TBX the pathway to a spectrum of verification possibilities• Predictable/repeatable

behavior• No speed compromise

+ OS3

53

Page 54: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Advanced Methodologies – UVM/ SV

• Advanced methodologies enable verification productivity

– Faster to develop reusable application level testbenches

– Reuse from block to system level and across the teams/projects

– Single testbench for simulation and emulation

QuestaUVM / SV Testbench

DUT + VIPsChannel

54

Page 55: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Unified Debug for Questa and VeloceMaximize performance and still have ease of use

• Full signal visibility in the hardware offers fast TAT

• Same debugger for the whole simulation and emulation environment

• On-demand data loading for fast response with huge data

VisualizerVisualizer

55

Page 56: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

On the Fly Waveform Streaming For Fast Bug Identification• Waveform generation of key signals/ interfaces for entire

emulation run to identify problem area

• Monitor key interfaces for long emulation runs

• Find the failure time point very quickly with fewer signal

TBX Streaming

56

Page 57: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Veloce Advanced Debug for ICE

PCIeICE setup

SASICE setup

Data Cable

Data Cable

Waveform Streaming

Monitors$display

Assertions ..

SoC

Design

Standard ICE SetupAdvanced Debug

Co-model Host

57

Page 58: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Replay Dynamic ICE EnvironmentReal-Time TBX

• Run emulation with ICE target connected

• Captures IO activity (stimulus) of the target on disk

Workstation

Host

First Run

IO

Target

DUT

Host

Replay Run

IO

DUT

Advanced

DebugVeloce

Target

• Replay the captured stimulus • ICE Targets not needed• Repeatable behavior

• Use TBX capabilities• Assertion and coverage• Monitors and $display• Interval replay for productive debug

58

Reproduce non deterministic ScenariosPower Analysis with ICE environment

58

Page 59: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Goals of New HW Debug Paradigm

• Full signal visibility built on hardware accelerates turn around time

• Augmented ICE debug combining transactor with ICE

• Homogeneous debug solution from simulation to emulation

59

Page 60: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Verification Demands New SW Debug Methods

• JTAG reasonably productive at 1 GHz

• Painfully slow at simulation and emulation speeds

EmulatorJTAG Speed Adaptor

JTAG Probe

60

Page 61: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Veloce New Software Debug Solutions

• Virtual Probes

– Traditional interactive debug using JTAG transactors

– No physical JTAG probe needed – all virtual

– Full software debug capabilities

• Codelink

– Off-line post emulation debug

– Enables efficient sharing of emulation resource

– Full software debug capabilities

• Warpcore

– Integrates Virtual Machine with Veloce

– Enables 100 MIPS+ performance of software execution

– Full software debug capabilities

61

Page 62: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Every Design is Now Multi-Core

• Multiple Embedded Cores

• Heterogeneous Protocols

• Complex Interconnect

• Embedded Software

ARM CORTEX-M4

MPU

NVIC

WIC

Debug

Trace

FPU

CORE

Audio PLL

USB PLL

CPU PLL

IRC

SYSTEM

GPD

MA

Brownout

Detector

Poweron

Reset

Watchdog

Timer

Flash

SRAM

ROM

MEMO

RY

ARMCORTEX-

M0

NVIC

SUBSYSTEM

IPC

2 x HS

USB 2.0

INTERFACES

Ethernet

MAC

LCDCntr

l

CAN 2.0B

SPIFLASH I/F

Ethernet

MemCtrl

SDIO

Quad

EncI/F

4 x

UART

3 x SSP/S

PI

2 x I2C

2 x I2S

Motor Ctrl

TIME

RS

4 x 32-bitTimer

s

RTC

AlarmTimer

SerialGPIO

State ConfigTimer

CONFIGURABLE INTERFACES

OTP KeyStorage

AESDecryptio

n

SECURITY

2 x 8 Ch10-bit ADC

1-bitDAC

ANALOG

62

Page 63: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Codelink Non-IntrusiveMulti-Core Support

63

Page 64: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Full Support of Classic SW Debug Views

Source & Assembly View Register View

Memory View

Variable View

64

Page 65: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Synchronized Hardware and Software Views

Core0 Cache miss counter

65

Page 66: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

New Paradigm: Post-Run Software Debug

JTAG1 MHz

CODELINK TRACE FILE

Codelink50 MHz ~10 Simultaneous

users

Single User

Post-Emulation

66

Page 67: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

WarpCore: Veloce Hybrid Emulation

• Moves CPU/memory subsystem from the emulator into a virtual machine

• Speeds up execution by 50X and more

DMA

SRAM

GPIO

UART

IP

VeloceVirtual Machine

DDR

DRAM

Timer Block

DRAM

DDR

Timer Block

VMSynchronizer

Software

Debug

Core 0

Core 1Core 1 BIM

Core 0BIM

TBX

67

Page 68: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Real World Results

Veloce-Hybrid

Emulation0

20

40

60

80

100

Design ADesign B

Design C

1,41,6

2,2

48 63 82

Linux Boot Performance

Often, the interesting things happen after the OS boot

68

Page 69: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Goals of New SW Debug Paradigm

• Non intrusive multi-core debug

• Process-level multi-core debug

• Backup rather than rerun from time zero

• Add “printf” without recompile and rerun

• Virtual machine for fast OS boot

69

Page 70: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

70

Page 71: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Days-to-Find (Validation)

Days-t

o-S

olv

e

(Deb

ug

)

Debug & Validation Bug Characterization

for Selected Products

Goals of Post-Silicon Validation/Debug

71

• From the time silicon comes back:

– Find all bugs quickly (validation)

– Root-cause all bugs quickly (debug)

• Just make it easy

Drive bugs down

Page 72: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Evolution of SOC DesignUnplanned Respins => Missed Revenue!

72

Page 73: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Post-Silicon Back-End Effort Growing

73

[Abramovici, DAC’06]

0

20

40

60

2000 2002 2004 2006 2008 2010

Validation as Percent of Total Effort (%)

[Tim Cheng: “The Changing Roles of Verification and

Test in the Late-Silicon Era,” 2009 PROFIT]

Post-silicon continues to require growing amount of total effort

Data shows problem getting worse

Post-Silicon Debug vs. Process

Page 74: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

SOC Validation Space Challenge

74

Functionality

CPU Cores

3D Graphics

Interconnect

I/O

Southbridge

GP GPU

X X X

System

$ Coherence

Consistence

I/O Ordering

QOS

RAS

Clocking

X

Platform HW

DRAM

Flash

Peripherals

Power Infra

Components

X

SW

Applications

OSs

Virtualization

Drivers

BIOS

FW

X

Security

Digital Rights

Network

Data

Protection

Rings

Power

Management

Clock Gating

Power Gating

State

save/restore

DFX

Functional

Observe/

Control

Scan Access

Electrical

Process

Voltage

TemperatureX

What does all this add up to?

We’re forced to debug post-silicon!

Page 75: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Observability Versus FrequencySimulation through ASIC Silicon

75

Frequency (Hz)

| | | | | | | | | | |

1 10 100 1k 10k 100k 1M 10M 100M 1G 10G

1 -

10 -

100 -

1k -

10k -

100k -

1M -

10M -

Ob

se

rve

Ra

tio

Simulation

FPGA

(Run) ASIC Si

(Run)

FPGA

(Available)

ASIC Si

(Available)

Higher

Observe

Lower

Observe

Emulation

KeyAvailable – Number of signals that can be MUXed out

Run – Number of signals that can be observed in single run

Page 76: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Post-Silicon System-Level Validation/DebugHigh-Level Feature Summary Flyover

76

Feature(s) Comments

Program Flow Trace•ARM: Coresight ETM PC trace•AMD: BTHB• Intel: Processor Trace

HW History Buffers Small trace buffers in HW: THBs, EHB, LBR buffers, LTSSM buffers

Scandump1

•ATPG scanchains configured as single-chain, TDI to TDO•Debug of hardlocks and more•“bread and butter” feature for many companies•Destructive in nature•Analogous to “read-back” on FPGAs

Performance Monitor & Error Observe

Observe on pin, trigger ext. instruments, selective program flow trace

HW Flow Control Breakpoint/single-step resume

HW Assertions Active in parallel, no programming required

Bug Replay (Si=>tester, sim.)Really both legacy and emergingExpensive and custom per company

1. Array and main memory dump applies in addition here too.

Where do you turn for more difficult SOC interaction bugs?

Page 77: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

The Solution: On-Chip Logic Analyzer

77

• On-chip IP and software

• Software tools for:– Instrumenting design

– Run-Time Programming• Signal observe & triggering

• Trace dump/waveform view

• For use on FPGAs and ASICs

• Why?– Faster bug root-cause

– Shorter time-to-market

Page 78: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Architected for Post Silicon Debug

78

Sub-System

1

Sub-System

2

Sub-System

N

Simple

RouterAccess

ControllerTap

ControllerJTAG

API

Interface for

Customized

Access

Trigger Sync

Page 79: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Capture Station

79

Observation Network

Capture Station

RTL• Deep Traces

• Flexible Triggers

Page 80: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Certus User Flow

80

User RTL

SynthesisPlace & Route

Insert Probes

Certus

Implementor

SynthesisPlace & Route

SynthesisPlace & Route

SynthesisPlace & Route

Partitioning

Wasga(Optional)

Design

Lab

Debug

Cycle

FPGA Bitfile(s) /

Gate Netlist

ASIC or FPGA Prototyping

Platform

File Interchange

(.VFE)

Debug

Certus

Analyzer

Lab Bench PC

(Windows, Linux)

Page 81: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Instrumented Signal Selection

81

Page 82: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Infrastructure

82

Page 83: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Signal Selection

83

Page 84: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Set the Trigger Condition

84

Page 85: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Run Content

85

Page 86: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Post-Silicon Waveform Viewing is Key

86

Page 87: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Mentor Graphics Certus Solution

• SW & HW solution for FPGA & silicon validation

– Broad visibility and deep traces, minimal resource cost

– Make post-silicon easy

• Shorter back-end time-to-market & lower schedule risk

– Flexibility to meet design/business needs

– Enterprise-level EDA SW support

– Productivity efficiency

– Enables increased focus on core business

• Mentor Graphics serious about post-silicon space

87

Page 88: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Summary - Key Recommendations

• Find bugs as early as possible – Before time-consuming, resource intensive regressions are

launched

• Successively refine low power verification in every D&V phase

• Leverage new debug technologies to expedite causality discovery

• Break down the wall between RTL and firmware verification

• Plan ahead for post-silicon debug

88

Page 89: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Agenda

• Introduction – the Debug challenge

• Advanced RTL Debug Scenarios

• Debug of Complex Testbenches

• Power-aware Verification Debug

• Integrated Hardware/Software Debug

• Post-Silicon Debug Solutions

89

Page 90: Advanced, High-Throughput Debug From Design to Silicon · Advanced, High-Throughput Debug From Design to Silicon ... causality discovery ... = scope /testbench/axi_dut

Thank You!

Any Questions?

90