A logically determined 2NCL combinational expression, in addition to implementing the combinational function, implements a shared completeness path that synchronizes two or more cycles. There are three issues associated with creating logically determined combinational expressions in 2NCL. The first is the specification of the function itself. The second is the fulfillment of the completeness criterion. If the completeness criterion is not fulfilled, the expression is not logically determined and does not implement a shared completeness path. The third is with isolating the orphan paths. If orphan paths are not isolated, it cannot be said that an expression is, for all practical purposes, logically determined. Long orphan paths can create critical timing issues and require explicit timing analysis to verify the correct behavior of the expression.
In this chapter we do not aim to present a detailed design methodology but rather to give the reader a sense of the territory. In this chapter we cover the derivation of the 2NCL library of operators, basics of 2NCL combinational design, approaches to synthesize 2NCL combinational expressions, and the mapping of 2NCL combinational expressions directly from Boolean logic combinational expressions.