1. A method to optimize a cell library template comprising: receiving target technology information; receiving a set of functions or cells to be included in the library; receiving a set of drive strengths to be created for each function; receiving or deriving a set of transistor topologies for each pair of function and drive strength; outputting a preliminary estimate of cell characteristics for different alternative cell templates; and choosing a final template for the library as a function of the characteristics estimated for the ensemble of required cells.