HAMLET-an expression compiler/optimizer for the implementation of heuristics to minimize multiple-valued programmable logic arrays

A description is given of HAMLET, a CAD tool written in C, that translates a user specification of a multiple-valued expression into a layout of a multiple-valued programmable logic array (MVL-PLA) which realizes that expression. It is modular to accommodate future minimization heuristics and future MVL-PLA technologies. At present, it implements two heuristics and one MVL-PLA technology, current-node CMOS. Specifically, HAMLET accepts a sum-of-products expression from the user, applies a minimization heuristic, and then produces a PLA layout of a multiple-valued current-mode CMOS PLA. In addition to its design capabilities, HAMLET can analyze heuristics. Random functions can be generated, heuristics applied, and statistics computed on the results. User-derived expressions can also be analyzed. In addition to the minimization heuristics, HAMLET can apply search strategies based on these heuristics, which, in the extreme, are exhaustive, producing true minimal forms.<<ETX>>