A method of designing a current source involves selecting an equation for a current output through a circuit. Variations in current are checked to make sure they are not a strong function of process and bias. A circuit topology is then created as a function of the equation. Example circuits include an addition based current source and a square root based current source.