1. A method to design a system, the method comprising: receiving a first design of a system having a plurality of first instances of a logical block to perform logical operations, wherein the first instances have internal states; and automatically, through a processor, generating a second design for the system having a time-shared instance of the logical block, wherein the time-shared instance replaces the plurality of the first instances of the logical block in the first design, wherein the time-shared instance has first elements configured to time multiplex operations associated with the internal states of the first instances.