Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Predicate calculus and program semantics
Predicate calculus and program semantics
A type-theoretical alternative to ISWIM, CUCH, OWHY
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Analysis of cyclic combinational circuits
ICCAD '93 Proceedings of the 1993 IEEE/ACM international conference on Computer-aided design
False loops through resource sharing
ICCAD '92 Proceedings of the 1992 IEEE/ACM international conference on Computer-aided design
Definable Operation in General Algebras, and the Theory of Automata and Flowcharts
Programming Languages and Their Definition - Hans Bekic (1936-1982)
Constructive Analysis of Cyclic Circuits
EDTC '96 Proceedings of the 1996 European conference on Design and Test
Formal analysis of synchronous circuits
Formal analysis of synchronous circuits
Greek wordnet and its extension with terms of the computer science domain
UAHCI'11 Proceedings of the 6th international conference on Universal access in human-computer interaction: applications and services - Volume Part IV
Approximate reachability for dead code elimination in esterel
ATVA'05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis
Constructive Boolean circuits and the exactness of timed ternary simulation
Formal Methods in System Design
Hi-index | 0.00 |
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.