Patent ID: 7636796

Claim:
A device for altering a functionality of a plurality of hardware boards, wherein individual hardware boards of the plurality of hardware boards are coupled to a bus, the device comprising: a master hardware board configured to receive data and commands indicative of a new functionality of the plurality of hardware boards; the bus includes a data and control bus and a reconfiguration bus, the data and control bus is a programmable logic device bus configured to be reconfigured to implement the new functionality; an interconnecting module, of the master hardware board, configured to determine the new functionality of the plurality of hardware boards, wherein the interconnecting module includes a reconfiguration module, the reconfiguration module being configured to receive the new functionality from the interconnecting module and issue instructions, via the reconfiguration bus, to reprogram one or more hardware boards of the plurality of hardware boards such that the plurality of hardware boards implement the new functionality, wherein the instructions of the reconfiguration module reconfigure the data and control bus to implement the new functionality; wherein the reconfiguration module is further configured to: identify a change to the data and control bus to implement the new functionality; recognize a current configuration of the plurality of hardware boards, including a number of hardware boards of the plurality of hardware boards, a functionality of each of the plurality of hardware boards, and a coupling configuration of each of the plurality of hardware boards via the data and control bus; determine which hardware boards of the plurality of hardware boards are to be connected to each other by the data and control bus to implement the new functionality; responsive to identifying at least one change, generate the reconfiguration instructions to reconfigure the data and control bus to facilitate the implementation of the new functionality; reconfigure, based on the reconfiguration instructions, a communication controller on the master hardware board such that one or more hardware boards and the data and control bus are configured to implement the new functionality.