Microprocessor design : From discrete to continuous