1. A method comprising: receiving an abstract circuit representation of an integrated circuit (IC) design comprising a plurality of segments, each segment for implementing a particular function; for a particular segment of the IC design: identifying, at a computer, a plurality of alternative implementations for the particular segment; and defining a decision module for inclusion in the IC design during a plurality of stages of a multi-stage design process, said decision module comprising (i) a plurality of inputs, each input connected to one of the plurality of alternative implementations for the particular segment of the IC design, and (ii) an output for selecting a particular alternative implementation from the plurality of inputs to include as part of the IC design; and using said decision module to design the IC.