The used type of FPGA contains an array of 12x12 programmable blocks, each block contains 2 flip-flops, preceeded by a programmable gate with maximum of 4 or 5 inputs (see picture).
The blocks can be interconnected by means of wires and programmable switches. Nearly all pins can be programmed as input or output.
The external ROM contains info in which way blocks and pins have to be configured and interconnected. In this way any digital circuit can be realized with an FPGA, up to a certain complexity of course.
Extra logic is present to load ROM content at power-up. The external ROM can be an EPROM (as used in the decoder design) or a special serial ROM (just 8 pins).
Several FPGA's may be cascaded, so just 1 (EP)ROM is needed to program all FPGA's. In the design of the HRPT-decoder, the left FPGA is loaded directly with the content of the first half of the selected segment of the EPROM; the second half is transferred in a serial way through pins 74 and 73 to the second FPGA.
A disadvantage of FPGA's is that they are not available in the "electronics shop at the corner". But in a good shop you should be able to order them.
Price in the Netherlands is not very low: about Fl. 80,- ($60). This is because you have to order them in low quantities; the actual price is not more than about $10.