hung_wai_ming(at)hotmail.com said:
For designing general purpose IO, you need several steps
(1) be familiar with the application since the application determines the spec ALWAYS. If you are not familiar with application, then your IO is goind to be useless finally
(2) IO consists of input buffer and output buffer, separate two cases for design
(3) Input buffer should always have hysteresis level, check how much hysteresis level you need. Sometimes, you need to have control circuit to disable the input buffer to prevent leakage when input is floating
(4) Output buffer includes pre-driver design, buffer design and ESD design. If you have to tolerate high input voltage, high voltage tolerant circuit is required as well
(5) Predriver design requires control logic, slew rate controlled and programmable current source/sink control logic. most of the time, slew rate control is more important. Others are easy
(6) Buffer design includes ESD design, current driving design and ground/VDD boundcing prevention design
(7) High input voltage tolerant circuit is tricky, always need to float NWELL for PMOS to prevent leakage.
Finally, check the IO patents as there are lots of reference designs from other companies