Why are agile methods such a success in the world of software?
We believe that there is an easy answer: ultrafast feedback.
Especially, in Extreme Programming (XP) and Test-Driven Development (TDD) the development engineer receives feedback based on unit tests that are created before implementing the design. The purpose of the unit tests is to formalize the specification, documenting the code and to guide the design of the software. These methodologies lead to significantly less design bugs.
Why does a test-first approach not exist for hardware?
Most verification is done with simulation-based methodologies. However, simulation does not provide fast feedback and analyzing a failing test can be very time consuming. Aside from a functional verification, the unit tests in TDD are also supposed to document the implementation and aid the designer with the implementation. This is something that is almost impossible to archive with a simulation-based flow.
We propose a different methodology called Property-Driven Development (PDD). It’s based on formal Interval Property Checking (IPC). Each property describes an important operation of the design. By proving the property, it is checked, whether the design implements the according operation correctly.
However, writing properties is time consuming, complicated and error prone.
We offer a different solution to that. With LUBIS VERITAS the properties are directly generated from your LUBIS CONCILIUM.
How does it work?
LUBIS VERITAS generates a set of properties for each entity described in the specification. If all properties hold on the entity, the design is functional correct with respect to your specification. This establishes a formal relationship between the implementation and the high-level model. If the high-level model is verified, additional, functional verification of the RTL model is not necessary, because any functional bugs can be found within the high-level model.
What are the benefits?
- Plan your design cycle: seamless tracking of progress makes estimating the remaining design time easier.
- Documentation without overhead: The properties directly document your design because they are easy to read and to understand.
- No more bug hunting: Functional bugs are an artefact of the past. The functional behavior is fully described by the LUBIS CONCILIUM.
- Allows to shift the system verification task to a higher abstraction level and consequently less verification effort