|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Experiences in Formal Checking of a DSP IP Core by NGUYEN H.N., KOUMOU P. - Bull S.A., METASymbiose S.A. Abstract 1. Introduction Every design has fundamental characteristics that must hold true during operation. Those characteristics can be defined as properties and checked either statically by means of formal techniques or dynamically during simulation. This paper describes our experience in applying Model Checking to the verification of DSP IP cores in complement to traditional simulation methods and prototyping methods. The purpose of this experience is to investigate the introduction of a new verification component within the mainstream flow. This will be done by the definition of a methodology and the analysis of potential benefits over traditional methods such as simulation. In the next paragraph we will describe briefly the architecture of the MEFISTO SoC and then we will relate our experience in applying Model Checking to the verification of the IPs composing this design. Finally we will present some results and conclude with a discussion on further improvements of the method. The verification work presented has been achieved by a cooperation between Bull, METASymbiose and Thalès within the frame of the Medea+ ToolIP project. 2. The SoC MEFISTO Figures 2 and 3 illustrate hereafter respectively the micro-architecture of the Marañon and the FPU IPs. The design has been targeted in 0.25ì CMOS technology. 3. Formal Verification of MEFISTO - Integer operations including ALU, adder and multiplier of the Marañon core (Cf. Figure 2), - Family of instructions IADD of the FPU core (Figure 3) In addition to the application of Model Checking, Equivalence Checking has been also used for the validation of the synthesized net-list (Marañon+FPU) against the golden RTL model.
These tasks have been achieved with the use of the Model Checker Logan and the Equivalence Checker LEQ developed by METASymbiose. We detail hereafter the methods used to carried out those verification tasks.
3.1.1 Verification of the Adder As the integer Addition/Minus is performed within one cycle, its verification has been done by means of 7 properties expressed as invariant : The results of the operations together with the expected carry and overflow are formally compared against standard operations.
The ALU has a one cycle depth pipeline, hence its verification has been achieved by means of SCF properties. SCF[3][5] is an outgrowth of STE, hence is suitable to express such a property. The following table described the properties developed for this purpose.
Table 1. Properties of the ALU
A set of 16 properties expressing the different multiplying modes have been developed to check for the correctness of the product operation. The following table describes those properties :
Table 2. Properties of the multiplier
As mentioned in Section 2, the Formal Verification is not aware of the design details, hence the first step in verification of the instructions was dedicated to determine the starting state of an instruction, i.e. the conditions in which an instruction can be checked statically. The instruction is then decomposed into a sequence of micro-instructions and the final results in terms of symbolic values of registers and address outputs to memories are checked against expected values. The following sequence illustrated the decomposition of the IADD (Integer Add/Minus) family of instructions :. Cycle 0 : State reset conditions and NOP . Cycle 1 : Operands coding . Cycle 2 : Operation and "Parity" coding . Cycle 4 : Destination coding . Cycle 5 : NOP . Cycle 7 : Results Checking Hence the verification of an instruction is carried out on an interval of 8 cycles. Such a checking is thus suitable to the SCF (STE) concept. All the variables used in the SCF properties are related to observable objects (registers/primary inputs or outputs) of the design. As FPU is a VLIW processor, the validation of an instruction is accomplished by many properties corresponding to different modes of that instruction. The following example gives the flavor of an SCF property expressing the addition mode on registers of the IADD instruction. The property is expressed in TPL[5] which is a proprietary FPL format of the Model Checker Logan. Example of a SCF property : scf opA+B = 3.3 Equivalence Checking Finally, in order to provide full confidence on the design process, Equivalence Checking has been applied to the verification of the synthesized net-list (ARM7™ black-boxed) vs. the RTL golden models. This task has been done hierarchically with local flattening when the two hierarchical models present some discrepencies. Some of those discrepencies, mainly due to the optimization of the synthesis tool across the boundaries of the hierarchy, happens to point out unsuspected bugs in the design. 4. Results The validation of the integer operations requires the development of 25 properties of invariant and SCF types. The computing times take a few seconds to check the properties related to the adder and the ALU and few minutes for the properties related to the multiplier. This validation helps to detect 3 design bugs related to the comparison operations. The validation of the IADD family of instructions has been done by 15 SCF properties representing different modes. This verification points out some discrepencies between the specification documentation and the realization. It is worth to recall here that Formal Verification has been applied after the design has been validated by intense simulation and the model used to execute pieces of software. This fact illustrates the advantages of Formal Verification vs. Simulation and particularly highlights their complementary aspect. 5. Conclusions This paper relates an industrial experience of using Model Checking to validate the system IPs composing a large SoC design. The results tend to illustrate the benefits from this method over traditional simulation and prototyping in detecting corner cases bugs. However, to achieve verification exhaustiveness, the main drawback of Formal Verification is still to face combinatorial explosion. Hence we still consider it as a powerful complementary approach to simulation. In the design of IPs, and especially for parameterized IPs, such a method provides a powerful validation vector to be transmitted from the providers to the end-users. Its advantage does not focus only on the validation of the IP in stand alone mode but also during its integration in a design. Equivalence Checking can also contribute to the verification of hard IPs. For this purpose and in order to favor an efficient hierarchical application of Equivalence Checking, clear rules related to naming conventions, FSM coding, ... etc. must be established prior to the application of synthesis. References [1] "The barriers between system and SOC", Candaele B., Sarlotte M., SoC day, Grenoble, May 2002[2] "An Application of Model Checking", Nguyen H.N., Koumou P., DATE'2000. [3] "Application of Formal Techniques to Hardware and Protocol Verification", Nguyen H.N., Medea Conference, 2000 [4] "Verification of IPs Interconnection" , Nguyen H.N. in SoC Design and Verification Training Course organized by D&R, Grenoble, October 2000 [5] "The Model Checker Logan" Reference Manual. METASymbiose, 2001
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |