1. A method comprising creating a non-transitory computer readable design for a circuit having components characterized by one or more design parameters by performing, on a computing device, operations comprising: generating an optimization problem comprising a set of non-linear constraint functions and a set of linear constraint functions, each constraint function comprising exponent of at least one design parameter, the set of non-linear constraint functions and the set of linear constraint functions describing the circuit's operation; converting the optimization problem into a convex optimization problem by taking a logarithm of each of the set of non-linear constraint functions; and solving the convex optimization problem to produce one or more optimized design parameter values for the circuit.