page 1  (8 pages)
2to next section

Logic extraction from CMOS transistor


Per Andersson and Kenny Ranerup,
Department of Computer Engineering,
Lund University, Sweden.

A tool has been developed capable of analyzing a CMOS transistor network and identifying all clocked memory elements (latches, flip-flops etc). The rest of the transistor network is expressed as a set of logic equations. This kind of representation is much more efficient to use for logic verification than the traditional switch level models, and can be used both for formal methods and for simulation.
The network may have any structure and it may contain a wide range of combinational paths (static or pseudo-NMOS), precharged storage nodes, domino logic etc. A fundamental restriction is that one external, two-phase, non-overlapping clock signal is used as the primary source for all clocking. Except for static pullups, all transistors are assumed to operate as switches and asynchrounous feedbacks may exist only within memory elements.
The analysis is based on the fact that any kind of clocked memory element (such as flipflops of type D, JK etc) can be expressed as an equivalent network of clocked latches and combinational logic. If, for a particular memory element, the clock signal used in the original network has been derived from the primary clock, the corresponding logic for the clock is included in the extracted equivalent of that element.
Thus, the original transistor network is transformed to an equivalent network of standard latches and blocks of combinational logic expressed as two-level logic equations. In this network all latches are controlled by the primary clock.
During the analysis a number of transformations are used in order to eliminate redundancy and reduce the size of the final network. All loops in the network are traversed and redundant latches removed. After this step each loop will contain an even number of latches clocked alternatively by one of the two phases. Standard methods of two level logic optimization are applied to the combinational part.
Special considerations have been made in order to reduce the computational complexity. Examples of networks containing 20-100 transistors have been run so far with an execution time in the order of a few minutes on a Sun 3/50 workstation.

1 Background

The increasing complexity of VLSI designs and the tools that the designer use rises an important issue. How is it possible to guarantie that the design is correct? This problem consist of two parts. The correctness of the design and the correctness of the designtools.

The design tools are today so complex that there is no way of verifying that they always produce a correct result. If it would be possible to verify every design against the specification in a formal manner, the problem would be solved. This approach is today impossible to do automatically for realistic designs. The formal verification has been carried out partly by hand for some small designs like the SAFE processor. This verification takes several times longer than the design process and is therefore unusable for most designs.
The goal of this paper is to present a solution to a part of the verification process.