Patent ID: 7809347

Claim:
An integrated circuit comprising: a plurality of functional modules, each with a module output and a module input, for receiving and processing signals; a crosspoint switch for interconnecting the functional modules; wherein the crosspoint switch comprises a plurality of crosspoint output and crosspoint input interfaces for connecting to the module inputs and module outputs of the plurality of functional modules, a plurality of first level multiplexing modules, and a plurality of second level multiplexing modules; wherein the crosspoint switch is capable of reconfiguration during operation to modify the interconnections between the functional modules; wherein at least one functional module comprises a programmable matrix element operable to process an input signal according to one or more user supplied commands; wherein each first level multiplexing module receives a plurality of module output signals from a plurality of functional modules and provides a first output signal combining the plurality of module output signals; wherein each second level multiplexing module receives a plurality of first output signals from a plurality of first level multiplexing modules and provides a final output signal combining the first output signals from the plurality of first level multiplexing modules; wherein the final output signal comprises a plurality of output channels wherein each output channel contains the module output signal from a functional module; wherein a plurality of final output signals is provided by the second level multiplexing modules, with exactly one final output signal provided for each module input; wherein the crosspoint switch further comprises a multiplexer controller for mapping the module output signals to the channels in each final output signal for each module input; wherein the multiplexer controller alters the mapping of the module output signals to the channels in each final output signal for each module during the operation of the integrated circuit in response to commands; and wherein the multiplexer controller further comprises a plurality of programming registers for mapping the module output signals to the channels in the final output signals for each module input.