Efficient Analysis of Cyclic Definitions

  • Authors:
  • Kedar S. Namjoshi;Robert P. Kurshan

  • Affiliations:
  • -;-

  • Venue:
  • CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new algorithm for detecting semantic combinational cycles that is simpler and more efficient than earlier algorithms found in the literature. Combinational circuits with syntactic cycles often arise in processor and bus-based designs. The intention is that external inputs and delay elements such as latches break these cycles, so that no "semantic" cycles remain. Unbroken semantic cycles are considered a design error in this context. Such unbroken cycles may also occur inadvertently in compositions of Mealy machines. Verification systems that accept semantically cyclic definitions run the risk of certifying systems that have electrically bad or unexpected behavior, while those that prohibit all cyclic definitions constrain the types of systems that can be subjected to formal verification. Earlier work on this issue has led to a reasonable condition, called Constructivity, that guarantees the absence of semantic cycles. This formulation is, however, computational in nature, and existing algorithms to decide constructivity are somewhat inefficient. Moreover, they do not apply naturally to circuit definitions in high-level languages that allow variables with non-Boolean types. We propose a new formulation of constructivity, formulated as a satisfiability question, that does not have these limitations. We have implemented the new algorithm in the verification tool COSPAN/FormalCheck. Our experience indicates that the algorithm is simple to implement and usually incurs negligible overhead.