Canonization of graphs during transistor circuits decompilation - D. I. Cheremisinov; L. D. Cheremisinova (Informatika)
Objectives. The objective of the work is to develop the means for recognition (extraction) of high-level structures in circuits on transistor level. This allows to obtain a representation on logical level, equivalent to original flat description on transistor level. Obtaining such a representation significantly reduces the time to perform VLSI topology check, but also provides the basis for reengineering of integrated circuits and reverse engineering for detecting unauthorized attachments.Methods. Graph based methods and software tools are proposed for recognizing topologically equivalent transistor circuits, which makes it possible to divide the set of subcircuits into topologically equivalent classes. The problem is reduced to checking the isomorphism of labeled graphs defining circuits on transistor level by canonizing them and comparing canonical labeling. The original flat and resulting two-level transistor circuits are presented in SPICE format.Results. The proposed methods are implemented in C++ as a part of a transistor circuit decompilation program for the case without predetermined cell library. The proposed method of canonization of labeled graphs is used: to recognize topologically equivalent subcircuits among functionally equivalent subcircuits that implement logical elements; to split the set of subcircuits not recognized as logical elements into classes of topologically equivalent ones; to verify the results of extraction of the hierarchical circuit at the transistor-logic level relative to the flat circuit at the transistor level.Conclusion. The decompilation program has been tested on practical transistor-level circuits. Experiments indicate that this tool is fast enough to process the circuits with more than one hundred thousand transistors in a few minutes on a personal computer.