An Object-Oriented Approach to Switching Circuit Minimization
The determination of a minimal function to realize a specified set of outputs is e basic problem of switching circuit design. Circuit production costs have evidenced a steady decline over the past few years due mainly to technological advances in the areas of silicon compilation and VLSI implementation. In a just a few years, cost factors have taken a backseat to implmentation issues. Nonetheless, basic minimization techniques at the design [eve[, are still a major vehicle for cost containment. Techniques for the minimization of switching networks by Boolean reduction, Tabular methods, and Kar-naugh Maps are welt established. Such techniques can be easily implemented in conventional programming languages. Algorithmic implementations of such techniques, however, tend to be rather specialized and lacking in generality. In this paper we shall examine an object oriented approach to the circuit minimization problem. It wilt be demonstrated that an object representation of a circuit specification, forms the basis for an Expert System with the capability for both simulation and design. The procedures described in this paper were developed for a Personal Computer using PROLOG-2 (Expert Systems International). PROLOG was chosen for two reasons. First, the goat was to develop a set of procedures which would implement the symbolic minimization of a set of circuit object representations. PROLOG provides intrinsic facilities for the representation of objects as unit clauses. Further, since PROLOG is a ru[ e-based language by nature, Boolean minimization theorems are easi[y represented by PROLOG rules. Having specified the theorems as rules, the simplification is performed automatically by the PROLOG proof mechanism. Specifyin 9 Circuit Requirements A minimum specification for a circuit is a set of outputs under at t possible input conditions. Such a specification can be represented as a list. A simple combinatorial function of n inputs can have 2 n possible outputs. The output specification is a canonical list, the order of terms being the value of the minterm or maxterm. As an example consider the function f(A,B) = A + B. There are four possible input conditions represented by 00, 01, 10, and 11. The output list corresponding to these conditions (assuming a bootean value of "I" for true and "0" for false) is as follows: Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the …