Redundancy and Don't Cares in Logic Synthesis

A signal in a logical network is called redundant if it can be replaced by a constant without changing the function of the network. Detecting redundancy is important for two reasons: guaranteeing coverage in stuck-fault testing, and simplifying multilevel logic without converting to two levels. In particular, removing redundancy allows simplification in the presence of don't cares. The algorithm for redundancy removal described in this paper has been used successfully for both of the above purposes. It achieves savings in computer resources at the expense of possibly failing to discover some redundancies.