SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
INVENTIVE
HW-SW Co-Verification
A Constrained Random Approach
Swaminathan Venkatesan
(swamiv@cadence.com)
Ashwin Menon
(ashwinm@cadence.com)
Trends
•  Embedded software complexity continues to
increase
•  Quality is becoming more important everywhere
–  Patches and updates take time
–  Even though it’s “just software”, time is not free
•  Metric-Driven Verification, Validation and Test
–  Automated stimulus generation, functional coverage, and
checking might be a solution
Some Co-Verification issues
•  Software development needs to be brought forward and
ideally done in parallel with hardware
•  Software and Hardware should be debugged together
–  View software alongside hardware
•  Writing many directed software tests is :
Tedious, Time consuming, Not Scalable
•  Hardware and software stimulus should be coordinated
and activity monitored in a unified way to
–  Hit cross domain corner cases
–  Check data/temporal behaviour across domains
Finding High-Value Bugs at the Hardware/
Software Boundary
•  How do we stress the hw/sw boundary?
•  How do we know we thoroughly stressed it?
•  How do we know it behaved correctly?
Plogram flow corner cases
State based scenarios
Etc..
Interface corner cases
State based scenarios
Etc..
SW_STATE == init_driver
&
HW_ABORT
MDV MDV
We know how to
apply MDV to
hardware interfaces
How do we
apply MDV to
software interfaces
Metric Driven Verification
Metric Driven Verification
•  Collect Software Metrics
–  Functional Coverage
•  Apply Constrained random verification to Software
functions
•  Perform HW-SW co-debug
Functional Coverage
6
Functional Coverage
•  Monitoring software accesses to variables
•  Collecting coverage on the software. Coverage is collected
on:
–  function calls
–  function call parameter values
–  function call return values
–  variable accesses
7
Functional Coverage (Con’t)
8
IP 2
BUS
Memory
Bridge
IP 4
IP 1
IP 3
Bridge Bridge
Driver
RTOS
Application
CPU
snooper
Specman Testbench
Embedded Memory Read
Embedded
firmware code
and data in Soc
SRAM
Emits event whenever embedded
firmware accesses C variables of interest
in the SoC SRAM
Firmware
elf
Extract address
of Variables to
be covered
Create Snooper (hdl)
to monitor the address
On the bus
Compile and link
Hook the snooper to
The bus interface
Coverage goals
Functional Coverage (Con’t)
•  Variable coverage
–  Assign local variables to global variables whose address are deterministic
// global variable dtype
enum data_type dtype; // PULL, PUSH, ISO, ASYNC_SIMPLEX
sw_test() {
enum data_type dt_local;
set_data_type(dt_local); // API to set the data type
dtype = dt_local; // write to global variable
};
–  Create the snooper that monitors the writes to the global addresses
•  Function Coverage
–  Wrap the functions for coverage
// global variable dtype
sw_test() {
unsigned long pkt_len = 0x20; // packet length
enum pkt_t my_pkt = ENET_802_3; // packet length
enum tag_t my_tag = UNTAGGED; // untagged packet
sn_send_pkt(pkt_len, my_pkt, my_tag);// Function wrapper
};
sn_send_pkt(long pkt_len, enum pkt_t my_pkt, enum tag_t my_tag) {
enet_pkt_len = pkt_len; // assign to global variables
enet_pkt_type = my_pkt; // assign to global variables
enet_pkt_tag = my_tag; // assign to global variables
send_pkt(enet_pkt_len, enet_pkt_type, enet_pkt_tag); // Call the Software API
};
Software Randomization
10
Directed vs Metric-Driven Tests
11
•  Direct pre-ordered tests
–  Write test cases manually
•  Random constraint tests
–  dynamic generation of test cases
Start system
Modify network delay
Set GPS location
Receive call
Start system
Modify network delay
keep delay in [150..500];
keep lattitude in [45..49];
keep longitude in [ -93.. -95];
Set GPS location
Send SMS
Receive Call
May miss important
use cases!
SMS received
12
Software Randomization (Con’t)
IP 2
BUS
Memory
Bridge
IP 4
IP 1
IP 3
Bridge Bridge
Driver
RTOS
Application
CPU
snooper
Specman Testbench
Embedded Memory Read
Embedded Memory Write
Randomize
variable and
write back to
memory
(backdoor)
Emits event whenever
embedded firmware
accesses C variables of
interest in the SoC SRAM
Embedded
firmware code
and data in Soc
SRAM
13
Software Randomization (Con’t)
•  Directed Test
sw_test() {
unsigned long pkt_len = 0x20; // - Fixed
enum pkt_t my_pkt = ENET_802_3; // - Fixed
enum tag_t my_tag = UNTAGGED; // - Fixed
sn_send_pkt(pkt_len, my_pkt, my_tag);
};
sn_send_pkt(long pkt_len, enum pkt_t my_pkt, enum
tag_t my_tag) {
enet_pkt_len = pkt_len; // assign to global
variable
enet_pkt_type = my_pkt; // assign to global
variable
enet_pkt_tag = my_tag; // assign to global variable
send_pkt(enet_pkt_len,
enet_pkt_type,enet_pkt_tag); // Call the API
};
•  Randomize the packet parameters
extend enet_pkt_u {
rand_pkt() is {
var pkt_len : uint;
var pkt_type : enet_pkt_t;
var pkt_tag : enet_pkt_tag_t;
// Randomize packet length
gen pkt_len keeping
{ it > 50 && it <= 1500};
// random packet type
gen pkt_type;
// random
gen pkt_tag;
// back door write to memory
write_backdoor(pkt_len, pkt_type, pkt_tag);
}
}
Hardware/Software co-debug
14
Embedded Software Trace Requirements
•  Debug hardware/software corner case issues
•  Connects waveform viewer and software source code
•  Trace waveforms from simulation or emulation
•  Post mortem backward and forward debugging
Extensions for “software debugger like”
features
Allows waveform position to
be related to software/
firmware position
Step forward and back
to the next/previous
address value
Step forward and back
to the next/previous line
of source
Step forward and back
to a specific address
Step forward and back
to next/previous function
execution
All the time the source is linked to the waveform cursors
Conclusion
•  No single person/team understands a complex
embedded system
•  Each group is using different tools, languages, methods
•  Unit testing is not enough
•  Connectivity and communication tests
•  Testing speed and accuracy tradeoff
17
Conclusion (con‘t)
•  Define constraints and checks for each component
•  Provide API to use testbench in system context
•  Combine testbenches for next level
•  Testing language that supports
–  Parallelism
–  Event-based Communication
–  Reproducible Constraint Randomization
–  Coverage
–  Checks
18
Cadence Confidential: Limited to CDNLive! Attendees only19
(c) 2006, Cadence Design Systems, Inc. All rights reserved worldwide.

Más contenido relacionado

Similar a HW-SW Co-Verification: A Constrained Random Approach

TAU Performance tool using OpenPOWER
TAU Performance tool using OpenPOWERTAU Performance tool using OpenPOWER
TAU Performance tool using OpenPOWERGanesan Narayanasamy
 
Migrating to Prometheus: what we learned running it in production
Migrating to Prometheus: what we learned running it in productionMigrating to Prometheus: what we learned running it in production
Migrating to Prometheus: what we learned running it in productionMarco Pracucci
 
Network visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetryNetwork visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetrypphaal
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_finalsean chen
 
Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2zhang hua
 
15,000 downloads in 15 days with David Neumann and Thomas Ang
15,000 downloads in 15 days with David Neumann and Thomas Ang15,000 downloads in 15 days with David Neumann and Thomas Ang
15,000 downloads in 15 days with David Neumann and Thomas AngFITC
 
When Web Services Go Bad
When Web Services Go BadWhen Web Services Go Bad
When Web Services Go BadSteve Loughran
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfSamHoney6
 
Tech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating SystemTech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating Systemnvirters
 
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Maté Ongenaert
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Michelangelo van Dam
 
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksMykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksVadym Muliavka
 
Advanced JS Deobfuscation
Advanced JS DeobfuscationAdvanced JS Deobfuscation
Advanced JS DeobfuscationMinded Security
 
Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Michelangelo van Dam
 
My network functions are virtualized, but are they cloud-ready
My network functions are virtualized, but are they cloud-readyMy network functions are virtualized, but are they cloud-ready
My network functions are virtualized, but are they cloud-readyOPNFV
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developerssagarhere4u
 
Formal Verification
Formal VerificationFormal Verification
Formal VerificationIlia Levin
 
02 functions, variables, basic input and output of c++
02   functions, variables, basic input and output of c++02   functions, variables, basic input and output of c++
02 functions, variables, basic input and output of c++Manzoor ALam
 
MT_01_unittest_python.pdf
MT_01_unittest_python.pdfMT_01_unittest_python.pdf
MT_01_unittest_python.pdfHans Jones
 

Similar a HW-SW Co-Verification: A Constrained Random Approach (20)

Rsockets ofa12
Rsockets ofa12Rsockets ofa12
Rsockets ofa12
 
TAU Performance tool using OpenPOWER
TAU Performance tool using OpenPOWERTAU Performance tool using OpenPOWER
TAU Performance tool using OpenPOWER
 
Migrating to Prometheus: what we learned running it in production
Migrating to Prometheus: what we learned running it in productionMigrating to Prometheus: what we learned running it in production
Migrating to Prometheus: what we learned running it in production
 
Network visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetryNetwork visibility and control using industry standard sFlow telemetry
Network visibility and control using industry standard sFlow telemetry
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 
Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2Swift distributed tracing method and tools v2
Swift distributed tracing method and tools v2
 
15,000 downloads in 15 days with David Neumann and Thomas Ang
15,000 downloads in 15 days with David Neumann and Thomas Ang15,000 downloads in 15 days with David Neumann and Thomas Ang
15,000 downloads in 15 days with David Neumann and Thomas Ang
 
When Web Services Go Bad
When Web Services Go BadWhen Web Services Go Bad
When Web Services Go Bad
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
 
Tech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating SystemTech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating System
 
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksMykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
 
Advanced JS Deobfuscation
Advanced JS DeobfuscationAdvanced JS Deobfuscation
Advanced JS Deobfuscation
 
Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012
 
My network functions are virtualized, but are they cloud-ready
My network functions are virtualized, but are they cloud-readyMy network functions are virtualized, but are they cloud-ready
My network functions are virtualized, but are they cloud-ready
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developers
 
Formal Verification
Formal VerificationFormal Verification
Formal Verification
 
02 functions, variables, basic input and output of c++
02   functions, variables, basic input and output of c++02   functions, variables, basic input and output of c++
02 functions, variables, basic input and output of c++
 
MT_01_unittest_python.pdf
MT_01_unittest_python.pdfMT_01_unittest_python.pdf
MT_01_unittest_python.pdf
 

Más de 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
 
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
 
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
 

Más de 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
 
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
 
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
 

Último

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
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
 
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
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
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
 
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...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

HW-SW Co-Verification: A Constrained Random Approach

  • 1. INVENTIVE HW-SW Co-Verification A Constrained Random Approach Swaminathan Venkatesan (swamiv@cadence.com) Ashwin Menon (ashwinm@cadence.com)
  • 2. Trends •  Embedded software complexity continues to increase •  Quality is becoming more important everywhere –  Patches and updates take time –  Even though it’s “just software”, time is not free •  Metric-Driven Verification, Validation and Test –  Automated stimulus generation, functional coverage, and checking might be a solution
  • 3. Some Co-Verification issues •  Software development needs to be brought forward and ideally done in parallel with hardware •  Software and Hardware should be debugged together –  View software alongside hardware •  Writing many directed software tests is : Tedious, Time consuming, Not Scalable •  Hardware and software stimulus should be coordinated and activity monitored in a unified way to –  Hit cross domain corner cases –  Check data/temporal behaviour across domains
  • 4. Finding High-Value Bugs at the Hardware/ Software Boundary •  How do we stress the hw/sw boundary? •  How do we know we thoroughly stressed it? •  How do we know it behaved correctly? Plogram flow corner cases State based scenarios Etc.. Interface corner cases State based scenarios Etc.. SW_STATE == init_driver & HW_ABORT MDV MDV We know how to apply MDV to hardware interfaces How do we apply MDV to software interfaces Metric Driven Verification
  • 5. Metric Driven Verification •  Collect Software Metrics –  Functional Coverage •  Apply Constrained random verification to Software functions •  Perform HW-SW co-debug
  • 7. Functional Coverage •  Monitoring software accesses to variables •  Collecting coverage on the software. Coverage is collected on: –  function calls –  function call parameter values –  function call return values –  variable accesses 7
  • 8. Functional Coverage (Con’t) 8 IP 2 BUS Memory Bridge IP 4 IP 1 IP 3 Bridge Bridge Driver RTOS Application CPU snooper Specman Testbench Embedded Memory Read Embedded firmware code and data in Soc SRAM Emits event whenever embedded firmware accesses C variables of interest in the SoC SRAM Firmware elf Extract address of Variables to be covered Create Snooper (hdl) to monitor the address On the bus Compile and link Hook the snooper to The bus interface Coverage goals
  • 9. Functional Coverage (Con’t) •  Variable coverage –  Assign local variables to global variables whose address are deterministic // global variable dtype enum data_type dtype; // PULL, PUSH, ISO, ASYNC_SIMPLEX sw_test() { enum data_type dt_local; set_data_type(dt_local); // API to set the data type dtype = dt_local; // write to global variable }; –  Create the snooper that monitors the writes to the global addresses •  Function Coverage –  Wrap the functions for coverage // global variable dtype sw_test() { unsigned long pkt_len = 0x20; // packet length enum pkt_t my_pkt = ENET_802_3; // packet length enum tag_t my_tag = UNTAGGED; // untagged packet sn_send_pkt(pkt_len, my_pkt, my_tag);// Function wrapper }; sn_send_pkt(long pkt_len, enum pkt_t my_pkt, enum tag_t my_tag) { enet_pkt_len = pkt_len; // assign to global variables enet_pkt_type = my_pkt; // assign to global variables enet_pkt_tag = my_tag; // assign to global variables send_pkt(enet_pkt_len, enet_pkt_type, enet_pkt_tag); // Call the Software API };
  • 11. Directed vs Metric-Driven Tests 11 •  Direct pre-ordered tests –  Write test cases manually •  Random constraint tests –  dynamic generation of test cases Start system Modify network delay Set GPS location Receive call Start system Modify network delay keep delay in [150..500]; keep lattitude in [45..49]; keep longitude in [ -93.. -95]; Set GPS location Send SMS Receive Call May miss important use cases! SMS received
  • 12. 12 Software Randomization (Con’t) IP 2 BUS Memory Bridge IP 4 IP 1 IP 3 Bridge Bridge Driver RTOS Application CPU snooper Specman Testbench Embedded Memory Read Embedded Memory Write Randomize variable and write back to memory (backdoor) Emits event whenever embedded firmware accesses C variables of interest in the SoC SRAM Embedded firmware code and data in Soc SRAM
  • 13. 13 Software Randomization (Con’t) •  Directed Test sw_test() { unsigned long pkt_len = 0x20; // - Fixed enum pkt_t my_pkt = ENET_802_3; // - Fixed enum tag_t my_tag = UNTAGGED; // - Fixed sn_send_pkt(pkt_len, my_pkt, my_tag); }; sn_send_pkt(long pkt_len, enum pkt_t my_pkt, enum tag_t my_tag) { enet_pkt_len = pkt_len; // assign to global variable enet_pkt_type = my_pkt; // assign to global variable enet_pkt_tag = my_tag; // assign to global variable send_pkt(enet_pkt_len, enet_pkt_type,enet_pkt_tag); // Call the API }; •  Randomize the packet parameters extend enet_pkt_u { rand_pkt() is { var pkt_len : uint; var pkt_type : enet_pkt_t; var pkt_tag : enet_pkt_tag_t; // Randomize packet length gen pkt_len keeping { it > 50 && it <= 1500}; // random packet type gen pkt_type; // random gen pkt_tag; // back door write to memory write_backdoor(pkt_len, pkt_type, pkt_tag); } }
  • 15. Embedded Software Trace Requirements •  Debug hardware/software corner case issues •  Connects waveform viewer and software source code •  Trace waveforms from simulation or emulation •  Post mortem backward and forward debugging
  • 16. Extensions for “software debugger like” features Allows waveform position to be related to software/ firmware position Step forward and back to the next/previous address value Step forward and back to the next/previous line of source Step forward and back to a specific address Step forward and back to next/previous function execution All the time the source is linked to the waveform cursors
  • 17. Conclusion •  No single person/team understands a complex embedded system •  Each group is using different tools, languages, methods •  Unit testing is not enough •  Connectivity and communication tests •  Testing speed and accuracy tradeoff 17
  • 18. Conclusion (con‘t) •  Define constraints and checks for each component •  Provide API to use testbench in system context •  Combine testbenches for next level •  Testing language that supports –  Parallelism –  Event-based Communication –  Reproducible Constraint Randomization –  Coverage –  Checks 18
  • 19. Cadence Confidential: Limited to CDNLive! Attendees only19 (c) 2006, Cadence Design Systems, Inc. All rights reserved worldwide.