Formal verification has become an essential component in the verification process of complex protocols. By employing formal verification tool, the process of verifying High-Quality Protocol has been significantly enhanced. This blog explores the advanced formal verification techniques and the technical challenges encountered during the verification of the High-Quality Protocol.
The formal verification environment is meticulously designed to handle the complexities of the High-Quality Protocol. This environment facilitates the parallel proving of properties, ensuring that all critical properties are verified simultaneously. Each property is categorized as either under computation, proven, or found to have counterexamples. This categorization helps in prioritizing and managing the verification process effectively.
Figure 1. formal verification environment
One of the significant challenges in formal verification is the bound proof. This involves proving properties up to a certain bound, beyond which the proof becomes impractically complex. To address this, the formal verification team employed various strategies, such as:
Coding Style and Data Integrity
A disciplined coding style is crucial for effective formal verification. For instance, in the High-Quality Protocol verification, specific coding practices were followed to ensure data integrity:
Formal verification excels in identifying various error cases that traditional simulation might miss. For example, the High-Quality Protocol verification identified errors such as data loss, duplication, and switching. These error cases were meticulously covered through formal checks, ensuring that the design handled all possible scenarios robustly.
The proof accelerator in formal verification tool significantly enhances the verification process by speeding up the proof of complex properties. Formal verification tool, combined with initial value abstraction, helps in verifying properties from an initial state to their eventual state, ensuring thorough coverage. The relationship between the link layer and the protocol layer is verified using these advanced techniques, providing a comprehensive verification solution.
Over-constraining the design can lead to false positives or missed bugs. The verification process involves carefully managing constraints to ensure that they do not overly restrict the design space. By balancing constraints, the verification team can explore a broader range of scenarios, leading to a more robust verification process.
Figure 2. managing over-constraints
Bound proof is a compromise between verification effort and quality. The verification team employed techniques to push the boundaries as deeplyas possible, ensuring critical features are thoroughly verified. Additionally, extensive bug hunting within the bounded proof case revealed several environmental and RTL problems, which were then addressed in subsequent design iterations.
Figure 3. bound proof and bug hunting
Formal verification, particularly with tools like JasperGold, VC Formal, and OneSpin, provides a powerful means of ensuring the reliability and correctness of complex protocols like CHI. By addressing challenges such as bound proof, managing over-constraints, and employing advanced verification techniques, the verification process becomes more efficient and thorough. As formal verification continues to evolve, it will play an increasingly vital role in the development of high-quality protocol designs.