Assertion Synthesis Enabling Assertion-Based Verification For Simulation, Formal and Emulation Flows



Similar documents
Introduction to Functional Verification. Niels Burkhardt

Digital Design Verification

Chapter 13: Verification

Codesign: The World Of Practice

BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH

Using SystemVerilog Assertions for Creating Property-Based Checkers

Automating Root-Cause Analysis to Reduce Time to Find Bugs by Up to 50%

What is LOG Storm and what is it useful for?

Use, Analysis, and Debug of SystemVerilog Assertions

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

ESP-CV Custom Design Formal Equivalence Checking Based on Symbolic Simulation

Understanding DO-254 Compliance for the Verification of Airborne Digital Hardware

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

System-on. on-chip Design Flow. Prof. Jouni Tomberg Tampere University of Technology Institute of Digital and Computer Systems.

ARM Webinar series. ARM Based SoC. Abey Thomas

Hunting Asynchronous CDC Violations in the Wild

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

find model parameters, to validate models, and to develop inputs for models. c 1994 Raj Jain 7.1

Architectures and Platforms

Model Checking based Software Verification

VHDL GUIDELINES FOR SYNTHESIS

Chapter 7 outline. 7.5 providing multiple classes of service 7.6 providing QoS guarantees RTP, RTCP, SIP. 7: Multimedia Networking 7-71

A Verilog HDL Test Bench Primer Application Note

SVA4T: SystemVerilog Assertions - Techniques, Tips, Tricks, and Traps

Designing a System-on-Chip (SoC) with an ARM Cortex -M Processor

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

FPGA-Centric Functional Verification

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

ISTQB Certified Tester. Foundation Level. Sample Exam 1

JOURNAL OF OBJECT TECHNOLOGY

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

AMS Verification at SoC Level: A practical approach for using VAMS vs SPICE views

CSE467: Project Phase 1 - Building the Framebuffer, Z-buffer, and Display Interfaces

AXI Performance Monitor v5.0

A low-cost, connection aware, load-balancing solution for distributing Gigabit Ethernet traffic between two intrusion detection systems

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB

Implementation Details

SDLC Controller. Documentation. Design File Formats. Verification

10 Gigabit Ethernet MAC Core for Altera CPLDs. 1 Introduction. Product Brief Version February 2002

Testing of Digital System-on- Chip (SoC)

Requirements-driven Verification Methodology for Standards Compliance

ARM Cortex-A9 MPCore Multicore Processor Hierarchical Implementation with IC Compiler

Using a Generic Plug and Play Performance Monitor for SoC Verification

Verification. Formal. OneSpin 360 LaunchPad Adaptive Formal Platform. May 2015

SystemVerilog Is Getting Even Better!

White Paper. S2C Inc Technology Drive, Suite 620 San Jose, CA 95110, USA Tel: Fax:

Low Cost System on Chip Design for Audio Processing

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

10/100/1000Mbps Ethernet MAC with Protocol Acceleration MAC-NET Core with Avalon Interface

10/100/1000 Ethernet MAC with Protocol Acceleration MAC-NET Core

USB Test Environment ATUSBTEST- SS7400. Summary

Specification and Analysis of Contracts Lecture 1 Introduction

Mobile Performance Testing Approaches and Challenges

7a. System-on-chip design and prototyping platforms

Introduction to Automated Testing

Registers & Counters

Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses

VERIFICATION TECHNOLOGIES

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

More Verilog. 8-bit Register with Synchronous Reset. Shift Register Example. N-bit Register with Asynchronous Reset.

8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15

Secure Software Programming and Vulnerability Analysis

Efficient Project Management and Verification Sign-off Using Questa Verification Management

A Methodology and the Tool for Testing SpaceWire Routing Switches Session: SpaceWire test and verification

Hybrid Platform Application in Software Debug

FPGA Prototyping Primer

Finite State Machine Design and VHDL Coding Techniques

Modeling Registers and Counters

Whitepaper Performance Testing and Monitoring of Mobile Applications

Intrusion Detection System

10-/100-Mbps Ethernet Media Access Controller (MAC) Core

LogiCORE IP AXI Performance Monitor v2.00.a

Rapid System Prototyping with FPGAs

Random Testing: The Best Coverage Technique - An Empirical Proof

Extending the Power of FPGAs. Salil Raje, Xilinx

Asynchronous Bypass Channels

System on Chip Platform Based on OpenCores for Telecommunication Applications

Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T

The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough?

Applications of Machine Learning in Software Testing. Lionel C. Briand Simula Research Laboratory and University of Oslo

Putting it on the NIC: A Case Study on application offloading to a Network Interface Card (NIC)

Design by Contract beyond class modelling

CoreSight SoC enabling efficient design of custom debug and trace subsystems for complex SoCs

Introducing Performance Engineering by means of Tools and Practical Exercises

SYSTEMVERILOG ASSERTIONS FOR FORMAL VERIFICATION

Integrated Error-Detection Techniques: Find More Bugs in Java Applications

Getting the Most Out of Synthesis

Introduction to Digital System Design

Network Traffic Monitoring an architecture using associative processing.

Fault-Tolerant Framework for Load Balancing System

CONSTRAINT RANDOM VERIFICATION OF NETWORK ROUTER FOR SYSTEM ON CHIP APPLICATION

Best Practices for Verification, Validation, and Test in Model- Based Design

Electronic system-level development: Finding the right mix of solutions for the right mix of engineers.

Transcription:

Assertion Synthesis Enabling Assertion-Based Verification For Simulation, Formal and Emulation Flows

Manual Assertion Creation is ABV Bottleneck Assertion-Based Verification adopted by leading design companies o Most effective approach to reduce chip failure Corner case bugs Identify testing coverage holes o Reduce overall verification effort Not enough assertions and coverage goals written Not getting the benefit of ABV methodology o Functional errors still #1 chip failure cause and cost o Need an effective approach to create assertions <2>

Blackbox Assertions Capture End to End behaviors using interface signals o Off the shelf VIP for standard bus protocols o An alternative to blackbox checkers Issues o Difficult to create and maintain due to complexity Duplicates RTL logic in assertion language More temporal because of limited use of signals o Slow down simulation (due to multi-cycle temporal properties) o Large area overhead in Emulation/FPGA prototype o Difficult to debug failed assertions DV write them based on functional spec <3>

White-box Assertions Capture RTL behaviors using internal signals o Low overhead in simulation runtime and emulation area o Reduce debug turn-around by pinpoint error source o Easier for formal tools to converge o Identify implementation specific assertions and coverage Issues o Require designer time and expertise o Need orthogonal perspective Which combination of signals to use? o Beyond functional specification assertions and coverage not conceived/missed by human Not enough whitebox assertions from designers <4>

Example Properties Master req rdy Memory Useless property: req -> ##1 busy (!req & rdy) -> ##1!busy Memory Controller Orthogonal White-box property: rdy -> busy If(req) busy <= 1 b1; else if(rdy) busy < = 1 b0; When rdy is asserted, in the same cycle, bus is always busy. That is, rdy must follows a req. Another orthogonal white-box property: req ->!busy When req is asserted, in the same cycle, bus is always non-busy. That is, new req is only asserted when rdy for previous req is asserted before. Blackbox property: $rose(req) ->!req throughout ##[1:$] rdy; <5>

BugScope Assertion Synthesis Flow No Changes in Methodology Required <6>

BugScope Assertion Synthesis Use Model 1. Simulate using NextOp PLI o Input: Testbench + Test Vectors + RTL o Output: a Nextop database.ndb file for each simulation run 2. NextOp post processing o Input: Nextop databases + RTL o Output: Nextop properties Properties guaranteed to hold for the given tests A property is an assertion OR its negation is a coverage hole 3. Review/classify properties into assertions and coverages o SVA, PSL, Verilog and/or Synthesizable Verilog <7>

Key Features to Make Assertion Synthesis Useful Automated o discover properties not recognized by engineers High Quality of Results o 1%-10% of RTL lines o Don t duplicate RTL or other properties Efficient Assertions o Low runtime overhead for simulation o Low area overhead for emulation Capacity o Full chip assertion synthesis solution Seamless integration within existing flows <8>

Primary Use Models Coverage-driven simulation flow o Mainstream methodology Simulation + formal property checking flow o Advance corner-case bug-hunting methodology Emulation/Acceleration Flow o Enable trigger point to reduce debug turn-around Functional Review o Property classification using debugger drives functional review <9>

Coverage-Driven Simulation Flow Find design errors Prevent usage errors Coverage hole/bug Bug Simulate NextOp PLI Database NextOp Analysis Review Assertions Simulate/ FPGA/ Emulate IP Design/Verification Coverage holes detect TB issues Assertions catch RTL errors IP Users/Firmware/Software Ship RTL + Assertions as IPs to catch usage errors. <10>

Number of Properties Assertions & Coverage Over Verification Cycle [NVIDIA, DAC 10] Early Middle Late Verification Cycle 400 350 300 250 200 150 100 50 0 #coverage #assertion Number of Simulation Runs <11>

Packet Processing Engine [DVCon 11] The packet processor includes ~30K lines of Verilog o The key filtering block includes 3K lines Total 2000 direct+random tests reaches 100% statement coverage and >95% conditional coverage packets pre_proc filtering lookup_table match_rule <12>

Properties on Filtering Block [DVCon 11] Using all 2000 tests, BugScope generates o 145 properties, average 5% of RTL lines o 43 cover properties and 102 assertions!(buffer_empty && filter_fifo_rd) No FIFO underflow {valid, sop}!=0 ->@pkt_length!= pkt_length Cell length cannot be 0 onehot0( {key_pkt, bypass_pkt, invalid_tag} ) mutual exclusive type!(eop && state == DATA1) A special size runt pkt is not tested!(multicast_pkt && cur_multicast_pkt) Need to test back-to-back multicast pkts <13>

Properties on Filtering Block [DVCon 11] Using all 2000 tests, BugScope generates o 145 properties, average 5% of RTL lines o 43 cover properties and 102 assertions assert!(buffer_empty && filter_fifo_rd) No FIFO underflow assert {valid, sop}!=0 ->@pkt_length!= pkt_length Cell length cannot be 0 assert onehot0( {key_pkt, bypass_pkt, invalid_tag} ) mutual exclusive type cover (eop && state == DATA1) cover (multicast_pkt && cur_multicast_pkt) A special size runt pkt is not tested Need to test back-toback multicast pkts <14>

Simulation + Formal Property Checking Create Properties Find corner case issues Proof Simulate NextOp PLI Database NextOp Analysis Properties Formal Property Checking Bug Cover patch Simulation Regression Formal/Semi-Formal Assertions and coverage goals created based on simulation Whitebox properties are more tractable for formal algorithms <15>

Example Customer Scenario A complex SOC with >10K tests o A semi-formal tool is used to drive stimulus o Designer wrote ~5 assertions, no bug found by formal engine o SOC is taped-out and used in field for a few years Properties based on direct and random simulation o RTL ~1.8K lines o BugScope reports 117 properties, including 2 manual assertions <2hrs and ~300MB memory Properties used as targets for semi-formal tool o 1 BugScope assertion is violated pkt_is_good @state == ACCEPT o Bug happens when timer wraps around from 32 hffffffff to 32 h0 <16>

Bug Found by Property Bug was harder to find by other means o Difficult for simulation because it takes 4 billion cycles to wrap around o End-to-end properties written by engineers cannot be proven o Extremely difficult to write constraints for formal at module level o The bug degrades system performance Performance bug is hard to detect with black-box checkers Solution with BugScope Assertion Synthesis o Apply formal with large number of white-box properties o Apply formal at a higher level that includes > 20 modules White-box assertions allow formal to converge Easier to develop constraints at a higher level <17>

Emulation/Acceleration Flow Create Assertions and Coverage Detect Corner Case Bug Bug Simulate NextOp PLI Database NextOp Analysis Review Assertions FPGA/ Emulate Simulation based Verification WhiteBox Assertion as trigger condition or assertions to reduce debug turn-around time <18>

Example Customer Scenario Assertions synthesis debug Post-Silicon problem o A Complex Networking SoC hangs o Traffic pattern too complex to be reproduced in simulation o Emulation reproduces the hang but cannot be debugged Create properties based on random simulation o RTL ~2K lines with 3000+ simulation tests o BugScope reports 300 properties Add assertions as trigger points in emulation o A NextOp assertion triggered o clear_cnt <= 19 Assertion pinpoints the RTL bug <19>

Functional Review Using Properties & Debugger Waveform Viewer Directly find bugs Review becomes more objective between design, architect and verification teams <20>

Functional Review Finding Implementation Bug always @(posedge clk..) begin if(load_cnt) cnt_incr <= 1 b1; else if(cnt == 71) cnt_incr <= 1 b0; if(cnt_incr) cnt <= cnt+1; else cnt <= 0; end BugScope property: cnt == d72 -> @cnt == d0; Whenever cnt is 72, in the next cycle, cnt is never 73. Two bugs founds: 1. The priority to load_cnt was incorrect. 2. The code to latch load_cnt when cnt == 71 was missing to handle the scenario correctly. <21>

Functional Review Finding Micro-architecture Bug The packet processing state machine included 4 states: IDLE-> RUN-> WAIT-> PAYLOAD. The signal start comes from another block, initiates the transaction, and could only be asserted at IDLE state according to the design assumption. BugScope property: start -> cur_state!= RUN Whenever start is asserted, cur state is never run. Designer was expecting a property, start -> cur_state == IDLE When waveform and code was traced using debugger, the team find out that in certain scenario, the next packet is initiated to transmit before previous packet is completely sent. This is indicated by start signal getting asserted in states other than IDLE. Bug : This may result into dropping the transactions and un-necessarily retried. <22>

Summary Assertion Synthesis Reduce verification resources o productivity gain : Hours vs minutes in creating assertions o http://deepchip.com/items/0484-01.html Reduce verification schedule o Synthesized assertions to find bugs early, reduce debug time Find critical bugs o including post-silicon, post RTL freeze, IP integration Verification signoff o http://deepchip.com/items/0485-03.html o http://deepchip.com/items/0487-06.html <23>