Reconfigurable computing is a
computer architecture combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like
field-programmable gate arrays (FPGAs). The principal difference when compared to using ordinary
microprocessors is the ability to make substantial changes to the
datapath itself in addition to the control flow. On the other hand, the main difference with custom hardware, i.e.
application-specific integrated circuits (ASICs) is the possibility to adapt the hardware during runtime by "loading" a new circuit on the reconfigurable fabric.