SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
DVClub - SV
SystemVerilog Assertions (SVA)
in the Design/Verification Process
Eric Deal
President, Cyclic Design
Benefits of Using Assertions
I have found that adding assertions shorten
verification time and improve the quality of my
designs:
● Less time to identify and debug failures
● Improve designer/verification communication
● Document design behavior
● Detect unobservable faults
● Ease integration of reused/IP modules
Incorporate them early in the design cycle (during RTL
creation) to benefit throughout the verification process
Background
I began using OVL assertions when they were
standardized by Accellera:
● Simple, but fairly inflexible
● Made the design “messy” since instantiated as
modules
Learned SVA when evaluating formal tools
● Provided power, flexibility, concise syntax
● Clean way of creating simple assertions
● Inlined in RTL, but less messy than OVL
Problems using SVA
SVA presented its own set of problems:
● Difficult to construct anything besides relatively
simple assertions
● Didn't use the more complex operators
● Attempts to create moderately complex assertions,
often resulted in them triggering incorrectly;
subsequently I would remove these since the time
to debug them was not worth the effort.
Zocalo Zazz
Approached by Zocalo to provide feedback on their
new tool Zazz
● Visual SVA addressed the creation issues, allowing
me to create complex assertions without becoming an
expert in SVA syntax
● More importantly, Zazz provides a methodology to
debug assertions at the time of creation
Debugging assertions prior to use is critical
● This is why most companies use predefined assertion
templates (like OVL) – not flexible, but debugged.
Visual SVA
Zazz solves the creation problem by representing assertions
graphically on a 2-dimensional canvas which conveys the
temporal (left to right) as well as the concurrent (top to bottom)
nature of assertions.
This mimics the way that I like to think and makes it easy to
create assertions and understand the relationships between the
operators
Temporal
Concurrency
Visual SVA
Visual SVA also helps in creating structurally and
syntactically correct SVAs:
syntax error (incorrect signal name)
structural error – unterminated sequence
Debugging Assertions
Visual SVA closes the loop between design intent and
actual SVA behavior by creating a constrained-random
testbench around each assertion.
Assertion Behavior
Does Not
Match Intent.
Designer Intent
Created
Assertion
Actual Behavior
Allowed by Assertion
Debug Assertions
Before
They Fail in
Simulation
Ability to create quality assertions has a two-fold
impact on Cyclic Design:
● Improved my internal verification and debug by
quickly identifying both time and location of
errors in simulation. Assertions also identified
corner-case errors that do not propagate to
testbench failures.
● More importantly, they improve my customer's
experience when using the IP.
Impact to Cyclic Design
Example: FPGA Regression
During regression of Cyclic Design's ECC IP, I use an
FPGA to run billions of correction operations.
When a test fails, I replay the vector in simulation.
In nearly all cases, an assertion fired indicating the root
cause of the failure, saving a tremendous amount of
debug time and effort.
assertion failure
simulation
replay
It should be noted that these were extreme corner-case
bugs found only after billions of correction operations
Example: Assertions in IP
Cyclic Design's BCH ECC IP is parametrized to support
different maximum ECC levels.
A customer configured the logic for their application for
60-bit ECC and ran the included testbench, which
resulted in an error. The problem was that the testbench
was running a test using 64-bit ECC.
Once assertions were enabled, three unrelated
assertions immediately flagged this particular problem.
End-users should be educated of the values of
assertions already present in the design and be
instructed on how to enable them.
Customer Feedback
Did the assertions provide additional insights into the use of the
signals that was not covered in the User's Guide?
“We had some assertion violations after integration, so we have
modified design to clear those violations.”
Did the assertions flag real violations on the port interfaces or
internals?
"We had at least one real violation flagged by assertion.”
“We fixed some issues that might have created failure at a later stage
in regression.”
Overall, did you feel that the inclusion of the assertions
represented additional value in the IP?
“Assertions are very powerful. It’s very effective to have in IP;
apart from less debugging time, they give us more confidence.”

Contenu connexe

Tendances

An Introduction to Dependency Injection
An Introduction to Dependency InjectionAn Introduction to Dependency Injection
An Introduction to Dependency InjectionAdam Stephensen
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureWee Witthawaskul
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Ajay Danait
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testingguestc8adce
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware ProgrammingPostSharp Technologies
 
Agile Software Design
Agile Software DesignAgile Software Design
Agile Software Designeduardomg23
 
Continuous integration. Short overview
Continuous integration. Short overviewContinuous integration. Short overview
Continuous integration. Short overviewElifTech
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationRahul Sudame
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Buildguestc8adce
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITALuca Minudel
 
11 best practices_for_peer_code_review
11 best practices_for_peer_code_review11 best practices_for_peer_code_review
11 best practices_for_peer_code_reviewSmartBear Software
 
Unit Testing
Unit TestingUnit Testing
Unit Testingviswaug
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids ProgrammingLynn Langit
 
Software reengineering for Developers
Software reengineering for DevelopersSoftware reengineering for Developers
Software reengineering for DevelopersBradley Irby
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 

Tendances (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
An Introduction to Dependency Injection
An Introduction to Dependency InjectionAn Introduction to Dependency Injection
An Introduction to Dependency Injection
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
 
Agile Software Design
Agile Software DesignAgile Software Design
Agile Software Design
 
Continuous integration. Short overview
Continuous integration. Short overviewContinuous integration. Short overview
Continuous integration. Short overview
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Build
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITA
 
11 best practices_for_peer_code_review
11 best practices_for_peer_code_review11 best practices_for_peer_code_review
11 best practices_for_peer_code_review
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids Programming
 
Software reengineering for Developers
Software reengineering for DevelopersSoftware reengineering for Developers
Software reengineering for Developers
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 

En vedette

How to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveAmiq Consulting
 
Top five reasons why every DV engineer will love the latest systemverilog 201...
Top five reasons why every DV engineer will love the latest systemverilog 201...Top five reasons why every DV engineer will love the latest systemverilog 201...
Top five reasons why every DV engineer will love the latest systemverilog 201...Srinivasan Venkataramanan
 
Multiprocessor System-on-chip
Multiprocessor System-on-chipMultiprocessor System-on-chip
Multiprocessor System-on-chipDomènec Vallès
 
C++ process new
C++ process newC++ process new
C++ process new敬倫 林
 
Concurrency 2010
Concurrency 2010Concurrency 2010
Concurrency 2010敬倫 林
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -evechiportal
 
Systemc overview 2010
Systemc overview 2010Systemc overview 2010
Systemc overview 2010敬倫 林
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
 
Thread and method_2010
Thread and method_2010Thread and method_2010
Thread and method_2010敬倫 林
 
A Systematic Approach to Creating Behavioral Models (white paper) v1.0
A Systematic Approach to Creating Behavioral Models (white paper) v1.0A Systematic Approach to Creating Behavioral Models (white paper) v1.0
A Systematic Approach to Creating Behavioral Models (white paper) v1.0Robert O. Peruzzi, PhD, PE, DFE
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usageParth Pandya
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register PackageDVClub
 
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialAmiq Consulting
 
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoC
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoCDesign and Implementation of an Advanced DMA Controller on AMBA-Based SoC
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoCRabindranath Tagore University, Bhopal
 

En vedette (20)

How to Connect SystemVerilog with Octave
How to Connect SystemVerilog with OctaveHow to Connect SystemVerilog with Octave
How to Connect SystemVerilog with Octave
 
Top five reasons why every DV engineer will love the latest systemverilog 201...
Top five reasons why every DV engineer will love the latest systemverilog 201...Top five reasons why every DV engineer will love the latest systemverilog 201...
Top five reasons why every DV engineer will love the latest systemverilog 201...
 
Multiprocessor System-on-chip
Multiprocessor System-on-chipMultiprocessor System-on-chip
Multiprocessor System-on-chip
 
C++ process new
C++ process newC++ process new
C++ process new
 
Concurrency 2010
Concurrency 2010Concurrency 2010
Concurrency 2010
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
 
Systemc overview 2010
Systemc overview 2010Systemc overview 2010
Systemc overview 2010
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin
 
MixedSignal UVM Demo CDNLive
MixedSignal UVM Demo CDNLiveMixedSignal UVM Demo CDNLive
MixedSignal UVM Demo CDNLive
 
Channel 2010
Channel 2010Channel 2010
Channel 2010
 
Thread and method_2010
Thread and method_2010Thread and method_2010
Thread and method_2010
 
A Systematic Approach to Creating Behavioral Models (white paper) v1.0
A Systematic Approach to Creating Behavioral Models (white paper) v1.0A Systematic Approach to Creating Behavioral Models (white paper) v1.0
A Systematic Approach to Creating Behavioral Models (white paper) v1.0
 
SystemC Ports
SystemC PortsSystemC Ports
SystemC Ports
 
Esl basics
Esl basicsEsl basics
Esl basics
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usage
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register Package
 
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
 
stack
stackstack
stack
 
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoC
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoCDesign and Implementation of an Advanced DMA Controller on AMBA-Based SoC
Design and Implementation of an Advanced DMA Controller on AMBA-Based SoC
 
Queue
QueueQueue
Queue
 

Similaire à SystemVerilog Assertions (SVA) in the Design/Verification Process

Advanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps JourneyAdvanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps JourneyCA Technologies
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcityMd Jawed
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019Alan Pearson Mathews
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposalcfry
 
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...Lucas Sacramento
 
Chefdevseccon2015
Chefdevseccon2015Chefdevseccon2015
Chefdevseccon2015sc0ttruss
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery Sarah Elson
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewHimanshu Desai
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps Chetan Gordhan
 
Cognizant's Zero Deviation Life Cycle - an Overview
Cognizant's Zero Deviation Life Cycle - an OverviewCognizant's Zero Deviation Life Cycle - an Overview
Cognizant's Zero Deviation Life Cycle - an OverviewDr. Bippin Makoond
 
Automating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAutomating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAmazon Web Services
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionProduct Marketing Services
 

Similaire à SystemVerilog Assertions (SVA) in the Design/Verification Process (20)

Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Advanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps JourneyAdvanced Techniques for Initiating the DevOps Journey
Advanced Techniques for Initiating the DevOps Journey
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019Next Generation Architecture Showcase July 2019
Next Generation Architecture Showcase July 2019
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
 
Chefdevseccon2015
Chefdevseccon2015Chefdevseccon2015
Chefdevseccon2015
 
What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery What is Continuous Integration and Continuous Delivery
What is Continuous Integration and Continuous Delivery
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services Overview
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
Cognizant's Zero Deviation Life Cycle - an Overview
Cognizant's Zero Deviation Life Cycle - an OverviewCognizant's Zero Deviation Life Cycle - an Overview
Cognizant's Zero Deviation Life Cycle - an Overview
 
Automating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAutomating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOps
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 

Plus de DVClub

Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment OverviewDVClub
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesDVClub
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)DVClub
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)DVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyDVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUsDVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentDVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal ValidationDVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design CommunityDVClub
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemCDVClub
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through MethodologyDVClub
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationDVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceDVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS VerificationDVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...DVClub
 
Verification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesVerification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesDVClub
 

Plus de DVClub (20)

Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team Environment
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
Verification of the QorIQ Communication Platform Containing CoreNet Fabric wi...
 
Verification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark AgesVerification of Wireless SoCs: No Longer in the Dark Ages
Verification of Wireless SoCs: No Longer in the Dark Ages
 

SystemVerilog Assertions (SVA) in the Design/Verification Process

  • 1. DVClub - SV SystemVerilog Assertions (SVA) in the Design/Verification Process Eric Deal President, Cyclic Design
  • 2. Benefits of Using Assertions I have found that adding assertions shorten verification time and improve the quality of my designs: ● Less time to identify and debug failures ● Improve designer/verification communication ● Document design behavior ● Detect unobservable faults ● Ease integration of reused/IP modules Incorporate them early in the design cycle (during RTL creation) to benefit throughout the verification process
  • 3. Background I began using OVL assertions when they were standardized by Accellera: ● Simple, but fairly inflexible ● Made the design “messy” since instantiated as modules Learned SVA when evaluating formal tools ● Provided power, flexibility, concise syntax ● Clean way of creating simple assertions ● Inlined in RTL, but less messy than OVL
  • 4. Problems using SVA SVA presented its own set of problems: ● Difficult to construct anything besides relatively simple assertions ● Didn't use the more complex operators ● Attempts to create moderately complex assertions, often resulted in them triggering incorrectly; subsequently I would remove these since the time to debug them was not worth the effort.
  • 5. Zocalo Zazz Approached by Zocalo to provide feedback on their new tool Zazz ● Visual SVA addressed the creation issues, allowing me to create complex assertions without becoming an expert in SVA syntax ● More importantly, Zazz provides a methodology to debug assertions at the time of creation Debugging assertions prior to use is critical ● This is why most companies use predefined assertion templates (like OVL) – not flexible, but debugged.
  • 6. Visual SVA Zazz solves the creation problem by representing assertions graphically on a 2-dimensional canvas which conveys the temporal (left to right) as well as the concurrent (top to bottom) nature of assertions. This mimics the way that I like to think and makes it easy to create assertions and understand the relationships between the operators Temporal Concurrency
  • 7. Visual SVA Visual SVA also helps in creating structurally and syntactically correct SVAs: syntax error (incorrect signal name) structural error – unterminated sequence
  • 8. Debugging Assertions Visual SVA closes the loop between design intent and actual SVA behavior by creating a constrained-random testbench around each assertion. Assertion Behavior Does Not Match Intent. Designer Intent Created Assertion Actual Behavior Allowed by Assertion Debug Assertions Before They Fail in Simulation
  • 9. Ability to create quality assertions has a two-fold impact on Cyclic Design: ● Improved my internal verification and debug by quickly identifying both time and location of errors in simulation. Assertions also identified corner-case errors that do not propagate to testbench failures. ● More importantly, they improve my customer's experience when using the IP. Impact to Cyclic Design
  • 10. Example: FPGA Regression During regression of Cyclic Design's ECC IP, I use an FPGA to run billions of correction operations. When a test fails, I replay the vector in simulation. In nearly all cases, an assertion fired indicating the root cause of the failure, saving a tremendous amount of debug time and effort. assertion failure simulation replay It should be noted that these were extreme corner-case bugs found only after billions of correction operations
  • 11. Example: Assertions in IP Cyclic Design's BCH ECC IP is parametrized to support different maximum ECC levels. A customer configured the logic for their application for 60-bit ECC and ran the included testbench, which resulted in an error. The problem was that the testbench was running a test using 64-bit ECC. Once assertions were enabled, three unrelated assertions immediately flagged this particular problem. End-users should be educated of the values of assertions already present in the design and be instructed on how to enable them.
  • 12. Customer Feedback Did the assertions provide additional insights into the use of the signals that was not covered in the User's Guide? “We had some assertion violations after integration, so we have modified design to clear those violations.” Did the assertions flag real violations on the port interfaces or internals? "We had at least one real violation flagged by assertion.” “We fixed some issues that might have created failure at a later stage in regression.” Overall, did you feel that the inclusion of the assertions represented additional value in the IP? “Assertions are very powerful. It’s very effective to have in IP; apart from less debugging time, they give us more confidence.”