TOPICS FOR THE SECOND MIDTERM.

  1. Cube Calculus. Main operations. Pattern of operations. Examples of applications. Pseudo-code of generalized loop for all cube calculus operations.
  2. Ashenhurst-Curtis Decomposition with disjoint free and bound sets.
  3. Ashenhurst-Curtis Decomposition with shared variables.
  4. Generalization of Ashenhurst-Curtis Decomposition to the same number of wires going in and out of the predecessor block.
  5. Ashenhurst-Curtis Decomposition of relations.
  6. Ashenhurst-Curtis Decomposition of multiple-valued functions.
  7. Bi-Decomposition of binary functions. Conditions for AND, OR and EXOR decomposition.
  8. Bi-Decomposition with vacuous variables and shared variables.
  9. Decomposition of functions with many don't cares for Machine Learning and Data Mining applications.
  10. Heuristics based on Entropy and separation of ones and zeros to select good bound sets and variable orders.
  11. Definition of vacuous variables. Map Folding method. Meaning of vacuous variables and use in synthesis.
  12. Decision diagrams other than BDD. In particular you have to be able to find KFDDs, ZDDs, MVDDs, Kronecker and Davio Lattices.
  13. Characteristic functions of discrete objects, arrays, maps, graphs, labeled graphs. Use of ZDD to encode them.
  14. Fundamentals of Reversible logic and reversible circuits. Toffoli, Feynman and Fredkin gates. Swap gates. MMD (Miller-Maslov-Dueck) method for synthesis. Only basic variant. Synthesis based on ESOP, FPRM or PPRM. Realization of multi-input Toffoli gates with only one ancilla bit.