IBM®
Skip to main content
    United States change      Terms of use
 
 
Select a scope:    
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  Systems management  >  

FoCs Property Checkers Generator

A productivity tool for automatic generation of simulation monitors from formal specifications.


Date Posted: November 18, 2002
Overview Requirements DownloadFAQsForum Reviews

1. What is a property?
2. What is the input for FoCs Property Checkers Generator, and what is its output?
3. What are the advantages of using FoCs Property Checkers Generator?
4. What are the supported environments and target languages?
5. How is simulation performance affected by FoCs Property Checkers Generator?
6. Is FoCs Property Checkers Generator easy to use? How about Sugar?
7. I am already using formal verification (FV). Do I still need to use FoCs Property Checkers Generator for the same unit?


1. What is a property?

A property (also known as a "rule" or "assertion") is a description of a required behavior of the design. Typically, properties are derived from the design specification documents, where they are informally written in English. Once the properties of interest are identified as target properties for FoCs Property Checkers Generator, they are formulated in Sugar, which is the input language of the tool. Note that in this context we are concerned solely with functional properties, that is, requirements and restrictions on design function. This is different than what are sometimes called "design rules," which pertain to the form and structure of the design.

As an example of a property, consider a requirement that prescribes that if there are five consecutive clock cycles, where the request signal is asserted and not acknowledged, then the busy_flag should be set on the fifth cycle. The Sugar formulation of this property is as follows: {[*], {request & !acknowledge}[5]}(busy_flag)

Back to top Back to top

2. What is the input for FoCs Property Checkers Generator, and what is its output?

The input for FoCs Property Checkers Generator is a file with properties written in the Sugar language. Another optional input is a file that defines the mapping between the names of the signals in the design and the names used in the properties file. The output of FoCs Property Checkers Generator is a checker file written in VHDL or Verilog. Optionally, FoCs Property Checkers Generator produces files with code fragments for instantiating the checkers. These code fragments are used to ease the connection of the checkers to the simulation environment.
Back to top Back to top

3. What are the advantages of using FoCs Property Checkers Generator?

Manually writing checkers in Verilog/VHDL or C/C++ is a very time-consuming and error-prone process. In contrast, the conciseness and expressive power of Sugar on one hand, and the automation of FoCs Property Checkers Generator on the other, enable the generation of correct-by-construction checkers which are easy to create, debug, and reuse. Additionally, FoCs Property Checkers Generator supports the sharing of Sugar properties between formal verification (FV) and simulation. Experience in many projects has demonstrated productivity improvements of up to 50% in the verification effort, as well a significant increase in verification coverage and quality.
Back to top Back to top

4. What are the supported environments and target languages?

Verilog and VHDL (availability of C/C++ expected in 2003).
Back to top Back to top

5. How is simulation performance affected by FoCs Property Checkers Generator?

Naturally, adding any checking code to simulation adds some overhead to the simulation process. The level of overhead depends on the number of properties embodied in the checker. A reasonable use of FoCs-generated checkers will slow simulation by 10% to 20%.
Back to top Back to top

6. Is FoCs Property Checkers Generator easy to use? How about Sugar?

FoCs Property Checkers Generator is very easy to install and use. It has a simple GUI which makes the process of generating a checker as simple as pressing a button. All user-defined settings are simple and can be defined via the GUI. It is actually quite simple to learn the subset of Sugar that is sufficient for writing useful checkers. Most properties can be easily described using a single Sugar construct that defines sequences of events. These sequences may be regarded as a textual representation of a timing diagram, and are therefore very intuitive for designers.
Back to top Back to top

7. I am already using formal verification (FV). Do I still need to use FoCs Property Checkers Generator for the same unit?

There are several advantages to using FoCs-generated checkers in the simulation of designs that were previously formally verified against the same Sugar properties:
  • Often, the input constraints (a.k.a. environment models) defined for formal verification are more restricted than the real environment modeled in simulation. Thus, in simulation, one can exercise the design against inputs whose effect on the design has not been explored by FV. It follows that the enhanced checking capability of FoCs Property Checkers Generator provides better coverage and greater confidence in the quality of verification.
  • FoCs checkers can help find problems in the input constraints defined for FV. For example, if the results of FV and simulation (relative to the same properties) do not agree, it is likely that the input constraints for FV were not correctly defined.
  • Using FoCs Property Checkers Generator, users can validate the assumptions made in the FV process. These assumptions can be formulated as Sugar properties, translated by FoCs into checkers, and then checked during simulation.
Back to top Back to top
Download now Download now

Related technologies

For platform(s):
AIX, Linux, Solaris

For topics:
analysis, automation, monitoring, Simulation, Systems management, verification


Related resources

Press Articles

 

    About IBM Privacy Contact