Universität Bremen Universität Bremen Fachbereich 3 Informatik
Home « Publikationen « Bücher

Grossformat des Buches: Advanced Automation in Formal Verification of Processors

» Advanced Automation in Formal Verification of Processors


Shaker Verlag

Ulrich Kühne


This book focuses on the functional verification of digital systems with a special focus on processors, using formal techniques. With the increasing size and complexity of digital systems, verification has become a major bottleneck in the design flow. Furthermore, embedded systems are used more and more in safety critical applications like automotive or avionic control and in medical equipment.

While simulation based methods cannot exhaustively verify large systems, formal verification offers a very high level of confidence. But, up to today, formal methods are difficult to use in practice, as they require deep knowledge of the verified design as well as a high expertise in the applied techniques. Here, the automation of these formal techniques is addressed in order to raise the verification productivity while maintaining the high quality of the results.

The contributions are twofold: in the first part of the book, improvements for the traditional bottom-up verification flow for digital systems are presented. The second part deals with an innovative top-down verification flow for processors, where the starting point is an abstract architecture description.

When facing the functional verification of smaller digital systems, a bottom-up approach is applied. Here, Bounded Model Checking (BMC) is used in order to prove the correctness of single hardware blocks before moving on to the integration of these components on system level. Even for embedded software, BMC can be used efficiently. For arithmetics and memories, word level techniques are used to speed up the automated proofs.

In this bottom-up flow, a coverage check provides feedback to the user and points him or her to those scenarios that have not been verified yet. This provides a clear guideline for the verification, while ensuring that the whole functionality of a design has been verified as soon as the coverage check is passed.

On the way to full coverage, the user is supported in writing properties by two supplementary techniques. A property analysis determines redundant assumptions in a property. In this way, properties can be strengthened automatically in order to meet the coverage goals more quickly. Based on this analysis, with inverse property checking, valid properties can be generated automatically, that match a given proof goal or expected behavior. These generated properties are then validated by the user wrt. the specification.

Overall, the presented techniques offer an advanced user support in order to speed up the formulation of concise properties that cover the complete functionality of the design under verification.

When focusing on restricted classes of hardware designs, a higher degree of automation can be achieved in a top-down approach. In this book, this is demonstrated for the example of processors. The functional verification of a processor consists in finding a mapping between the instruction set architecture (ISA) - the programmer's view, given by the textual specification - and the register transfer level (RTL) implementation. The main difficulty in this process is caused by the various optimizations found in modern processors.

In this book, a top-down verification approach for processors is presented. It starts with an abstract architecture description that can easily be derived from the ISA specification. This architectural model is then mapped to the RTL implementation. For this step, the user needs to implement a number of given mapping functions and predicates. These functions reflect the concepts of a correct implementation of a pipelined processor.

Based on the architecture description and the mapping information, a property suite is generated automatically that is complete by construction, i.e. the ISA of the processor is verified exhaustively. It can be checked on the RTL design using the efficient property checking tool OneSpin 360 MV. The method is demonstrated on an industrial processor design from the automotive domain. Using the new approach, the verification productivity could be doubled compared to a manual verification.

Moreover, the use of architectural models in the formal verification offers further possibilities for automation in the design flow. In the book, it is shown how such models can be used both for the verification as well as for the automatic generation of an instruction set simulator (ISS). ISSs play an important role for the early software development and testing. By using a single source for verification and the ISS, a proven correct simulator can be obtained as soon as the verification is completed. It can easily be adapted if late changes in the design or the specification occur.

Overall, the presented techniques allow for a more efficient formal verification of processors. By reusing the architectural models, a further gain in productivity can be achieved.


Zum Seitenanfang Zur Homepage
Zur Sitemap