SlideShare a Scribd company logo
1 of 13
Download to read offline
Using PSL and FoCs for Functional Coverage
               Verification

                             September 2006

                             Chuck Alley
Introduction
The Waternoose VSU team inherited a coverage strategy, and bugspray code, from
a previous project. This bugspray code may have provided a useful report card but
was not an adequate for functional coverage:

●The designer developed Bugspray code was almost entirely structural or code
coverage

●   Did not focus on areas of maximum complexity or areas of the logic prone to bugs

The designer driven Bugspray coverage points were not documented in any test
●

plan or workbook

The VHDL of the Bugspray was hard to maintain as the design diverged from the
●

antecedent design
Our Method
●   We were unhappy with this method so we made the following changes to fully
    implement functional coverage

●   The verification team took over the coverage plan

     –   This included maintenance of the old bugspray and development of new
         coverage points
●   We adopted PSL as the coverage language

●   We translated the PSL code into VHDL bugspray code with FoCs

●   We documented the coverage points in the test plan, and reviewed them as part
    of our verification of the unit
Core Verification Concerns
Several concerns came to my attention from the Austin core verification team, as we
revealed this plan to them.


●Generated VHDL is bloated and inefficient and would seriously degrade the
simulation speed at the core and chip levels


Generated VHDL is hard to read and debug inhibiting anyone else from debugging
●

problems that may come up or be revealed by our code


●Only designers know enough about the logic to write effective monitors, so how are
you going to get your information and how will you maintain the bugspray
Bugspray Organization
The Waternoose project leadership had organized the bugspray into the following
priority scheme:

     P1    Required for Unit Gold criteria
     P2    Required for Unit RIT criteria
     P3    Required for Core Gold criteria
     P4    Required for Core RIT criteria
     ...

Unit P1 and P2 monitors were instantiated in the local shell files and not passed up
to the core team. The P3 and P4 monitors were in unit_top to be passed to the core.
Bugspray File Organization
For instance, the file fw_p3_vmx_load_forwarding_bugspray.vhdl needs to be
included and covered at the core level. However, the file
fw_p2_vector_float_bugspray.vhdl needs only to be run and covered in a unit
simulation environment, and will not be promoted to the core level for simulation.
Other features:


●Proper grouping of coverage events allows verification engineers to turn off
coverage checking when coverage levels are achieved


●All coverage events were included in the unit simulation environment. This was
because we wanted to develop def files capable of achieving all coverage points to
save time and effort at higher levels of simulation.
Identifying Coverage Events
●   Meetings are required with the design team to help identify coverage points.


●   We went from there to the available project documentation (specs and
    workbooks) to find the specific details that we needed to code the monitors.


●   We covered IO cases, areas of complexity, areas very likely to cause problems,
    complex control scenarios that were handled by multiple units/designers
Writing Monitors
A simple example:

●   We are interested in monitoring for several interesting forwarding scenarios. We
    determine that the criteria are as follows:

Monitor that data is forwarded to a valid instruction from every possible source.
  Make sure that the instruction that uses this data is not canceled in rf1, so that
  the data is checked when it writes back to the VRF by IBI.



For this problem the PSL code would look like this:
cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) =
   %{bypass_source}; true[*2]; i1_rf1_cancel=0};
Writing Monitors
●   There are however, many sources from which the forwarding can occur So this
    code can be very quickly extended:


vunit vector_bypass_i1Bmux{

%for bypass_source in { i0_by1, i0_by2, i0_vwb, i0_wb2, i0_wb3, i1_by1, i1_by2,
   i1_vwb, i1_wb2, i1_wb3, load_ex2, load_ex3, VRF } do

     assert "--!!count -t nclk -cn bypass_mux_monitors_p3 -vn
    i1_Bmux_%{bypass_source};"

     cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) =
    %{bypass_source}; true[*2]; i1_rf1_cancel=0};

%end

}
Converting to VHDL with FoCs
●   Neglecting the for loop, FoCs shows one of the monitors as:

Assertion 1 of vunit vector_bypass_i1bmux:
--!!count -t nclk -cn bypass_mux_monitors_p3 -vn i1_Bmux_1;
Never,
For zero or more cycles (1 )
and then
For one cycle (i1_vq10_vsu_instr_v )
and then
For one cycle (( i1_vq11_vmx_b_mux_cntl(0..5) ) = ( 1 ) )
and then
For 2 cycles (1 )
and then
For one cycle (( i1_rf1_cancel ) = ( 0 ) )


●   The FoCs gui provides a very useful debug aid by simply converting your PSL into
    english

●   We required little if any further debugging for our monitors
Converting to VHDL with FoCs
●   FoCs converted the previous example to about 78 lines of VHDL, including the process
    statements, variables, and etc.

●   FoCs converted the same example into 58 lines of verilog

●   Handwritten verilog for this example would start at about 34 lines of verilog depending user
    choices

So addressing the issue of code bloat, while this example would indicate that there is not a
   significant code bloat issue with FoCs, especially given the work savings for development and
   maintenance of the code. However, we have seen several cases in more complex state
   machines where the FoCs solution is less optimal.

    So yes generated code is somewhat more verbose than handwritten code. How does that
    affect simulation speed? It will clearly reduce it. But it can be addressed, and we claim that
    the given the current state of the tool, that the value to verification far out weighs the loss of
    simulation speed.
Test Planning
●   We found that the PSL/Sugar code could be added directly to the test plan

●   Given very simple supporting documentation and sensible naming conventions,
    the code can truly document itself.

●   We found that one did not have to have much PSL expertise to review the code
    for completeness and accuracy.


%for bypass_source in { i0_by1, i0_by2, i0_vwb, i0_wb2, i0_wb3, i1_by1, i1_by2,
   i1_vwb, i1_wb2, i1_wb3, load_ex2, load_ex3, VRF } do

cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) =
   %{bypass_source}; true[*2]; i1_rf1_cancel=0};
Results and Conclusion
●   Closing the coverage loop improved our verification performance and quality

●   Given that our functional monitors were conceived of, and implemented by both the
    verification team and the design team, we claim that we had a well thought out and very
    evenly applied coverage methodology

●   The combination of these strategies allowed us to complete our portion of the design ahead
    of schedule.

      –   We then reduced our simulation throughput, allowing units that still needed
          simulation cycles to use “our” cycles
●   We then spent the extra time reviewing our coverage plan, RTX and design.

          We had no post RIT bugs in any of the logic that was covered by this plan.

We did however, have post RIT bugs in sections of the design that relied on the more traditional
   system of custom environment hooks and random scenario generation to find bugs.

More Related Content

What's hot

Rahul_Ramani_Profile
Rahul_Ramani_ProfileRahul_Ramani_Profile
Rahul_Ramani_ProfileRahul Ramani
 
Ramesh Kaveri Resume Apirl 2016
Ramesh Kaveri Resume Apirl 2016Ramesh Kaveri Resume Apirl 2016
Ramesh Kaveri Resume Apirl 2016Ramesh Kaveri
 
Manual Testing Notes
Manual Testing NotesManual Testing Notes
Manual Testing Notesguest208aa1
 
Tulika_Gupta_DFT_5yrs
Tulika_Gupta_DFT_5yrsTulika_Gupta_DFT_5yrs
Tulika_Gupta_DFT_5yrsTulika Gupta
 
Manual Testing
Manual TestingManual Testing
Manual TestingG.C Reddy
 
Software Testing - Online Guide
Software Testing - Online GuideSoftware Testing - Online Guide
Software Testing - Online Guidebigspire
 
Meganathan_Profile
Meganathan_ProfileMeganathan_Profile
Meganathan_ProfileMeganathan B
 
Rational Functional Tester
Rational Functional TesterRational Functional Tester
Rational Functional TesterRavi Anand
 
Gavish_Sharma Resume
Gavish_Sharma ResumeGavish_Sharma Resume
Gavish_Sharma ResumeGavish Sharma
 
3.Joyluke_resume
3.Joyluke_resume3.Joyluke_resume
3.Joyluke_resumeJOYLUKE J A
 
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00Upendra Kancheti
 
Somesh_Tessolve_updated _resume
Somesh_Tessolve_updated _resumeSomesh_Tessolve_updated _resume
Somesh_Tessolve_updated _resumeSomesh Mishra
 

What's hot (20)

Rahul_Ramani_Profile
Rahul_Ramani_ProfileRahul_Ramani_Profile
Rahul_Ramani_Profile
 
Ramesh Kaveri Resume Apirl 2016
Ramesh Kaveri Resume Apirl 2016Ramesh Kaveri Resume Apirl 2016
Ramesh Kaveri Resume Apirl 2016
 
Manual Testing Notes
Manual Testing NotesManual Testing Notes
Manual Testing Notes
 
Sudhir_Kr_Resume
Sudhir_Kr_ResumeSudhir_Kr_Resume
Sudhir_Kr_Resume
 
Tulika_Gupta_DFT_5yrs
Tulika_Gupta_DFT_5yrsTulika_Gupta_DFT_5yrs
Tulika_Gupta_DFT_5yrs
 
Manual Testing
Manual TestingManual Testing
Manual Testing
 
Software Testing - Online Guide
Software Testing - Online GuideSoftware Testing - Online Guide
Software Testing - Online Guide
 
RFT - Ashish Mathur
RFT - Ashish MathurRFT - Ashish Mathur
RFT - Ashish Mathur
 
Bhavani HS
Bhavani HSBhavani HS
Bhavani HS
 
Resume M_Shams_qureshi
Resume M_Shams_qureshi Resume M_Shams_qureshi
Resume M_Shams_qureshi
 
Meganathan_Profile
Meganathan_ProfileMeganathan_Profile
Meganathan_Profile
 
Rational Functional Tester
Rational Functional TesterRational Functional Tester
Rational Functional Tester
 
Gavish_Sharma Resume
Gavish_Sharma ResumeGavish_Sharma Resume
Gavish_Sharma Resume
 
3.Joyluke_resume
3.Joyluke_resume3.Joyluke_resume
3.Joyluke_resume
 
Work Experience
Work ExperienceWork Experience
Work Experience
 
Sumanth
SumanthSumanth
Sumanth
 
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00
upendra_8_years_Exp_in_Automotive_Embedded_Systems_Software_V00
 
VTU ECE 7th sem VLSI lab manual
VTU ECE 7th sem VLSI lab manualVTU ECE 7th sem VLSI lab manual
VTU ECE 7th sem VLSI lab manual
 
Somesh_Tessolve_updated _resume
Somesh_Tessolve_updated _resumeSomesh_Tessolve_updated _resume
Somesh_Tessolve_updated _resume
 
LTTechServices_Surya
LTTechServices_SuryaLTTechServices_Surya
LTTechServices_Surya
 

Viewers also liked

Functional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicsFunctional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicseInfochips (An Arrow Company)
 
Generic and Automatic Specman Based Verification Environment
Generic and Automatic Specman Based Verification EnvironmentGeneric and Automatic Specman Based Verification Environment
Generic and Automatic Specman Based Verification EnvironmentDVClub
 
The AVM and OVM in IP Core Verification - Experiences and Observations
The AVM and OVM in IP Core Verification - Experiences and ObservationsThe AVM and OVM in IP Core Verification - Experiences and Observations
The AVM and OVM in IP Core Verification - Experiences and ObservationsDVClub
 
Deploying Functional Qualification at STMicroelectronics
Deploying Functional Qualification at STMicroelectronicsDeploying Functional Qualification at STMicroelectronics
Deploying Functional Qualification at STMicroelectronicsDVClub
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification StoryDVClub
 
Formal Verification Theory and Practice
Formal Verification Theory and PracticeFormal Verification Theory and Practice
Formal Verification Theory and PracticeDVClub
 
OpenSPARC on FPGAs
OpenSPARC on FPGAsOpenSPARC on FPGAs
OpenSPARC on FPGAsDVClub
 
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...DVClub
 
Verification Planning and Metrics to Ensure Efficient Program Execution
Verification Planning and Metrics to Ensure Efficient Program ExecutionVerification Planning and Metrics to Ensure Efficient Program Execution
Verification Planning and Metrics to Ensure Efficient Program ExecutionDVClub
 
Using Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesUsing Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesDVClub
 
Cost Evaluation for Adopting Formal Property Checking
Cost Evaluation for Adopting Formal Property CheckingCost Evaluation for Adopting Formal Property Checking
Cost Evaluation for Adopting Formal Property CheckingDVClub
 
Analogue Behavioral Modelling: An Inconvenient Truth
Analogue Behavioral Modelling: An Inconvenient TruthAnalogue Behavioral Modelling: An Inconvenient Truth
Analogue Behavioral Modelling: An Inconvenient TruthDVClub
 
Managing Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectManaging Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectDVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment OverviewDVClub
 
Mainline Functional Verification of IBM's POWER7 Processor Core
Mainline Functional Verification of IBM's POWER7 Processor CoreMainline Functional Verification of IBM's POWER7 Processor Core
Mainline Functional Verification of IBM's POWER7 Processor CoreDVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyDVClub
 
Adopting SystemVerilog/OVM
Adopting SystemVerilog/OVM Adopting SystemVerilog/OVM
Adopting SystemVerilog/OVM DVClub
 
The Verification Methodology Landscape
The Verification Methodology LandscapeThe Verification Methodology Landscape
The Verification Methodology LandscapeDVClub
 
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
 
Digital Media Drives IC Content
Digital Media Drives IC ContentDigital Media Drives IC Content
Digital Media Drives IC ContentDVClub
 

Viewers also liked (20)

Functional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicsFunctional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor Graphics
 
Generic and Automatic Specman Based Verification Environment
Generic and Automatic Specman Based Verification EnvironmentGeneric and Automatic Specman Based Verification Environment
Generic and Automatic Specman Based Verification Environment
 
The AVM and OVM in IP Core Verification - Experiences and Observations
The AVM and OVM in IP Core Verification - Experiences and ObservationsThe AVM and OVM in IP Core Verification - Experiences and Observations
The AVM and OVM in IP Core Verification - Experiences and Observations
 
Deploying Functional Qualification at STMicroelectronics
Deploying Functional Qualification at STMicroelectronicsDeploying Functional Qualification at STMicroelectronics
Deploying Functional Qualification at STMicroelectronics
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification Story
 
Formal Verification Theory and Practice
Formal Verification Theory and PracticeFormal Verification Theory and Practice
Formal Verification Theory and Practice
 
OpenSPARC on FPGAs
OpenSPARC on FPGAsOpenSPARC on FPGAs
OpenSPARC on FPGAs
 
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...
Constrained-Random Thoughts on Advanced Constrained-Random Thoughts on Advanc...
 
Verification Planning and Metrics to Ensure Efficient Program Execution
Verification Planning and Metrics to Ensure Efficient Program ExecutionVerification Planning and Metrics to Ensure Efficient Program Execution
Verification Planning and Metrics to Ensure Efficient Program Execution
 
Using Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesUsing Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set Architectures
 
Cost Evaluation for Adopting Formal Property Checking
Cost Evaluation for Adopting Formal Property CheckingCost Evaluation for Adopting Formal Property Checking
Cost Evaluation for Adopting Formal Property Checking
 
Analogue Behavioral Modelling: An Inconvenient Truth
Analogue Behavioral Modelling: An Inconvenient TruthAnalogue Behavioral Modelling: An Inconvenient Truth
Analogue Behavioral Modelling: An Inconvenient Truth
 
Managing Deployment of SVA in Your Project
Managing Deployment of SVA in Your ProjectManaging Deployment of SVA in Your Project
Managing Deployment of SVA in Your Project
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Mainline Functional Verification of IBM's POWER7 Processor Core
Mainline Functional Verification of IBM's POWER7 Processor CoreMainline Functional Verification of IBM's POWER7 Processor Core
Mainline Functional Verification of IBM's POWER7 Processor Core
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Adopting SystemVerilog/OVM
Adopting SystemVerilog/OVM Adopting SystemVerilog/OVM
Adopting SystemVerilog/OVM
 
The Verification Methodology Landscape
The Verification Methodology LandscapeThe Verification Methodology Landscape
The Verification Methodology Landscape
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Digital Media Drives IC Content
Digital Media Drives IC ContentDigital Media Drives IC Content
Digital Media Drives IC Content
 

Similar to Using PSL and FoCs for Functional Coverage Verification

Dv con us-2018-formal-fpu-verif-xilinx-onespin
Dv con us-2018-formal-fpu-verif-xilinx-onespinDv con us-2018-formal-fpu-verif-xilinx-onespin
Dv con us-2018-formal-fpu-verif-xilinx-onespinSergio Marchese
 
Deployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreDeployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreIRJET Journal
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepAswin Vijayakumar
 
Converting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsConverting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsDevOps for Enterprise Systems
 
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...IRJET Journal
 
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteDVClub
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseVMware Tanzu
 
Comparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code AnalyzersComparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code AnalyzersAndrey Karpov
 
Pivotal Cloud Foundry 2.6: A First Look
Pivotal Cloud Foundry 2.6: A First LookPivotal Cloud Foundry 2.6: A First Look
Pivotal Cloud Foundry 2.6: A First LookVMware Tanzu
 
Firmware Improvement Roadmap
Firmware Improvement RoadmapFirmware Improvement Roadmap
Firmware Improvement RoadmapScott Sweeting
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resumepradeesh bv
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...eSAT Publishing House
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingShyam Sunder Verma
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfLibbySchulze
 

Similar to Using PSL and FoCs for Functional Coverage Verification (20)

Dv con us-2018-formal-fpu-verif-xilinx-onespin
Dv con us-2018-formal-fpu-verif-xilinx-onespinDv con us-2018-formal-fpu-verif-xilinx-onespin
Dv con us-2018-formal-fpu-verif-xilinx-onespin
 
Deployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreDeployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V Core
 
Verification Challenges and Methodologies
Verification Challenges and MethodologiesVerification Challenges and Methodologies
Verification Challenges and Methodologies
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creep
 
Converting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsConverting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right tools
 
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...
IRJET- Design and HW/SW Implementation of a Nonlinear Interpolator for Border...
 
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Comparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code AnalyzersComparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
Comparing Functionalities of PVS-Studio and CppCat Static Code Analyzers
 
Pivotal Cloud Foundry 2.6: A First Look
Pivotal Cloud Foundry 2.6: A First LookPivotal Cloud Foundry 2.6: A First Look
Pivotal Cloud Foundry 2.6: A First Look
 
Firmware Improvement Roadmap
Firmware Improvement RoadmapFirmware Improvement Roadmap
Firmware Improvement Roadmap
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resume
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation Testing
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
 
HPC on OpenStack
HPC on OpenStackHPC on OpenStack
HPC on OpenStack
 

More from DVClub

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseDVClub
 
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
 
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
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessDVClub
 
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
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register PackageDVClub
 
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
 

More from DVClub (20)

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
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)
 
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
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
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
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register Package
 
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
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Using PSL and FoCs for Functional Coverage Verification

  • 1. Using PSL and FoCs for Functional Coverage Verification September 2006 Chuck Alley
  • 2. Introduction The Waternoose VSU team inherited a coverage strategy, and bugspray code, from a previous project. This bugspray code may have provided a useful report card but was not an adequate for functional coverage: ●The designer developed Bugspray code was almost entirely structural or code coverage ● Did not focus on areas of maximum complexity or areas of the logic prone to bugs The designer driven Bugspray coverage points were not documented in any test ● plan or workbook The VHDL of the Bugspray was hard to maintain as the design diverged from the ● antecedent design
  • 3. Our Method ● We were unhappy with this method so we made the following changes to fully implement functional coverage ● The verification team took over the coverage plan – This included maintenance of the old bugspray and development of new coverage points ● We adopted PSL as the coverage language ● We translated the PSL code into VHDL bugspray code with FoCs ● We documented the coverage points in the test plan, and reviewed them as part of our verification of the unit
  • 4. Core Verification Concerns Several concerns came to my attention from the Austin core verification team, as we revealed this plan to them. ●Generated VHDL is bloated and inefficient and would seriously degrade the simulation speed at the core and chip levels Generated VHDL is hard to read and debug inhibiting anyone else from debugging ● problems that may come up or be revealed by our code ●Only designers know enough about the logic to write effective monitors, so how are you going to get your information and how will you maintain the bugspray
  • 5. Bugspray Organization The Waternoose project leadership had organized the bugspray into the following priority scheme: P1 Required for Unit Gold criteria P2 Required for Unit RIT criteria P3 Required for Core Gold criteria P4 Required for Core RIT criteria ... Unit P1 and P2 monitors were instantiated in the local shell files and not passed up to the core team. The P3 and P4 monitors were in unit_top to be passed to the core.
  • 6. Bugspray File Organization For instance, the file fw_p3_vmx_load_forwarding_bugspray.vhdl needs to be included and covered at the core level. However, the file fw_p2_vector_float_bugspray.vhdl needs only to be run and covered in a unit simulation environment, and will not be promoted to the core level for simulation. Other features: ●Proper grouping of coverage events allows verification engineers to turn off coverage checking when coverage levels are achieved ●All coverage events were included in the unit simulation environment. This was because we wanted to develop def files capable of achieving all coverage points to save time and effort at higher levels of simulation.
  • 7. Identifying Coverage Events ● Meetings are required with the design team to help identify coverage points. ● We went from there to the available project documentation (specs and workbooks) to find the specific details that we needed to code the monitors. ● We covered IO cases, areas of complexity, areas very likely to cause problems, complex control scenarios that were handled by multiple units/designers
  • 8. Writing Monitors A simple example: ● We are interested in monitoring for several interesting forwarding scenarios. We determine that the criteria are as follows: Monitor that data is forwarded to a valid instruction from every possible source. Make sure that the instruction that uses this data is not canceled in rf1, so that the data is checked when it writes back to the VRF by IBI. For this problem the PSL code would look like this: cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) = %{bypass_source}; true[*2]; i1_rf1_cancel=0};
  • 9. Writing Monitors ● There are however, many sources from which the forwarding can occur So this code can be very quickly extended: vunit vector_bypass_i1Bmux{ %for bypass_source in { i0_by1, i0_by2, i0_vwb, i0_wb2, i0_wb3, i1_by1, i1_by2, i1_vwb, i1_wb2, i1_wb3, load_ex2, load_ex3, VRF } do assert "--!!count -t nclk -cn bypass_mux_monitors_p3 -vn i1_Bmux_%{bypass_source};" cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) = %{bypass_source}; true[*2]; i1_rf1_cancel=0}; %end }
  • 10. Converting to VHDL with FoCs ● Neglecting the for loop, FoCs shows one of the monitors as: Assertion 1 of vunit vector_bypass_i1bmux: --!!count -t nclk -cn bypass_mux_monitors_p3 -vn i1_Bmux_1; Never, For zero or more cycles (1 ) and then For one cycle (i1_vq10_vsu_instr_v ) and then For one cycle (( i1_vq11_vmx_b_mux_cntl(0..5) ) = ( 1 ) ) and then For 2 cycles (1 ) and then For one cycle (( i1_rf1_cancel ) = ( 0 ) ) ● The FoCs gui provides a very useful debug aid by simply converting your PSL into english ● We required little if any further debugging for our monitors
  • 11. Converting to VHDL with FoCs ● FoCs converted the previous example to about 78 lines of VHDL, including the process statements, variables, and etc. ● FoCs converted the same example into 58 lines of verilog ● Handwritten verilog for this example would start at about 34 lines of verilog depending user choices So addressing the issue of code bloat, while this example would indicate that there is not a significant code bloat issue with FoCs, especially given the work savings for development and maintenance of the code. However, we have seen several cases in more complex state machines where the FoCs solution is less optimal. So yes generated code is somewhat more verbose than handwritten code. How does that affect simulation speed? It will clearly reduce it. But it can be addressed, and we claim that the given the current state of the tool, that the value to verification far out weighs the loss of simulation speed.
  • 12. Test Planning ● We found that the PSL/Sugar code could be added directly to the test plan ● Given very simple supporting documentation and sensible naming conventions, the code can truly document itself. ● We found that one did not have to have much PSL expertise to review the code for completeness and accuracy. %for bypass_source in { i0_by1, i0_by2, i0_vwb, i0_wb2, i0_wb3, i1_by1, i1_by2, i1_vwb, i1_wb2, i1_wb3, load_ex2, load_ex3, VRF } do cover {[*]; i1_vq10_vsu_instr_v; i1_vq11_vmx_b_mux_cntl(0..5) = %{bypass_source}; true[*2]; i1_rf1_cancel=0};
  • 13. Results and Conclusion ● Closing the coverage loop improved our verification performance and quality ● Given that our functional monitors were conceived of, and implemented by both the verification team and the design team, we claim that we had a well thought out and very evenly applied coverage methodology ● The combination of these strategies allowed us to complete our portion of the design ahead of schedule. – We then reduced our simulation throughput, allowing units that still needed simulation cycles to use “our” cycles ● We then spent the extra time reviewing our coverage plan, RTX and design. We had no post RIT bugs in any of the logic that was covered by this plan. We did however, have post RIT bugs in sections of the design that relied on the more traditional system of custom environment hooks and random scenario generation to find bugs.