Some embodiments of the invention provide a method for pre-tabulating sub-networks.
This method (1) generates a sub-network that performs a function, (2) generates
a parameter based on this function, and (3) stores the sub-network in a storage
structure based on the generated parameter. In some embodiments, the generated
sub-network has several circuit elements. Also, in some embodiments, the generated
sub-network performs a set of two or more functions. Some embodiments store each
generated sub-network in an encoded manner. Some embodiments provide a method for
producing a circuit description of a design. This method (1) selects a candidate
sub-network from the design, (2) identifies an output function performed by the
sub-network, (3) based on the identified output function, identifies a replacement
sub-network from a storage structure that stores replacement sub-networks, and
(4) replaces the selected candidate sub-network with the identified replacement
sub-network in certain conditions. In some embodiments, this method is performed
to map a design to a particular technology library. Some embodiments provide a
data storage structure that stores a plurality of sub-networks based on parameters
derived from the output functions of the sub-networks.