A programmable serial interface is disclosed for use in a semiconductor
circuit that supports a plurality of communication protocols. The
programmable serial interface includes one or more shared hardware
components that implement tasks and functions of a plurality of
communication protocols, optional protocol specific hardware, a processor
and memory. For each task or function required by a supported
communication protocol, a determination is made as to which parts of the
function will be implemented using shared hardware, protocol specific
hardware or in software. The communication protocols to be supported are
identified, and the functions performed in accordance with each of the
supported protocols are analyzed to identify those functions suitable for
common or shared hardware with other communication protocols. In
addition, unique or time-critical functions are identified that must be
implemented in hardware. Finally, any functions that are not implemented
in hardware are implemented in software.