Distinguishing variables of Boolean function via distinct subBDDs
Boolean matching, checking whether two completely specified Boolean functions are logically equal, is widely used in logic synthesis. It is well known that BDD is a common tool for Boolean matching. The identifiableness of two BDDs' structures means that two Boolean functions are equal. But BDD varies with different variable order. So, before constructing BDDs and checking equivalence, variables must be recognized. Various signatures have been presented to determine the variable mapping relations between two Boolean functions. In this paper, we propose using special parts of BDD to distinguish variables. On the basis of these distinct subBDDs, we take use of a group of signatures to recognize variables efficiently. Experimental results on MCNC benchmark circuits were shown that our algorithm is indeed effective in solving matching problem and runtime for benchmark cordic is greatly shortened.