CMOS design methods