1. A programmable interconnect circuit, comprising: a plurality of state elements for storing configuration data; a programmable global routing resource for receiving a first plurality of signals to provides a second plurality of signals, said second plurality of signals provided as a result of routing said first plurality of signals through a cross-bar switch matrix configured according to said configuration data stored in said elements; and a plurality of input/output (I/O) circuits, each I/O circuit being associated with a pin of said programmable interconnect circuit, said I/O circuits each being programmable to be an output circuit, an input circuit, or a bidirectional circuit, wherein when said I/O circuit is configured as an input circuit, said I/O circuit receives from said associated pin an input signal and provides said input signal to said global routing resource as one of said first plurality of signals, and wherein when said I/O circuit is configured as an output circuit, said I/O circuit selects one of said second plurality of signals as an output signal of said associated I/O pin.