Hardware Software Co-Design Verification via Abstraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for formal verification of hardware and software co-designs in embedded systems face challenges due to the complexity of interactions between hardware and software interfaces, which are often described in different languages, leading to inconsistent semantics and unreliable validation results when verified separately.
Innovation Solution
A computer-implemented method for formally verifying hardware/software co-designs involves providing a hardware and software model, combining an abstraction of one model with a safety property, composing the models, and checking if the composed model satisfies the safety property, with refinement techniques like interpolation-based transition relation abstraction to reduce verification time and avoid state-space explosion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If model checking is performed on composed concrete hardware and software models, then verification reliability is improved, but verification time and computational resource requirements increase significantly
Solution Approach 1:
The verification process is segmented into multiple passes: an initial model checking pass on abstracted models to quickly identify obvious errors, followed by targeted verification on concrete models only for specific components or properties where abstraction proved insufficient. This segmentation reduces overall verification time while maintaining reliability for critical properties.
Solution Approach 2:
Abstracted models are used in preliminary verification passes to perform quick sanity checks and identify obvious design errors before committing to full-scale model checking of concrete models. This preliminary action filters out easily detectable issues, making the subsequent concrete model verification more efficient and focused.
2Reliability
If model checking is performed on composed concrete hardware and software models, then verification completeness is improved, but computational resource requirements increase
Solution Approach 1:
The system divides verification into segments handled by different model types: abstracted models handle general behavioral verification requiring minimal resources, while concrete models handle only specific critical properties. This segmentation ensures verification completeness for essential properties while controlling computational resource usage.
Solution Approach 2:
Different levels of model detail are applied locally to different parts of the system based on verification needs. Critical components requiring high assurance use concrete models with full detail, while non-critical components use abstracted models. This local quality approach ensures completeness where needed while minimizing overall resource consumption.
3Device complexity
If separate verification of hardware and software models is performed, then verification complexity is reduced, but verification reliability deteriorates due to interface inconsistency
Solution Approach 1:
The verification approach merges hardware and software model checking into a unified process using a common abstracted interface model. This combined verification ensures that interface interactions are consistently validated across both hardware and software components, maintaining reliability while managing complexity through systematic integration rather than separate independent verifications.
Solution Approach 2:
An abstracted interface model serves as an intermediary between hardware and software models during verification. This intermediary provides a consistent representation of interface behavior that both hardware and software verifications can reference, ensuring interface consistency without requiring direct integration of the full concrete models.
4Loss of time
If abstraction is applied to hardware and software models, then verification time is reduced, but measurement precision of verification results may deteriorate
Solution Approach 1:
Verification is segmented into multiple precision levels: abstracted models provide quick verification of high-level behavioral properties, while concrete models provide precise verification of detailed implementation properties. This segmentation allows the system to achieve both speed and precision by applying the appropriate level of abstraction to each verification task.
Solution Approach 2:
The verification process dynamically adjusts the level of abstraction based on the specific property being verified and the results of previous verification passes. If abstracted model verification succeeds, no further refinement is needed. If it fails or identifies potential issues, the process dynamically transitions to more precise concrete model verification for those specific cases, optimizing both time and precision.
Data Source
AI summary
A method for formally verifying a hardware/software co-design includes providing in a co-design, a first model, and a second model, the first model is one of a hardware model, and the second model is one of a software model, or vice versa, providing a safety property expected to be satisfied by the co-design, combining an abstraction of the first model and the safety property to obtain an abstracted first model, composing the abstracted first model and the second model to obtain a composed model, checking if the composed model satisfies the safety property, and signaling that the hardware/software co-design violates the safety property if the safety property is violated in the composed model.


