1. A programmable logic device comprising an array of logic blocks, each logic block having at least one circuit comprising: an input terminal for providing a first input signal (A.sub.i); a ripple-in terminal (C.sub.i) and a ripple-out terminal (C.sub.i+1); a ripple-chain multiplexer (923) for connecting one of said input terminal and said ripple-in terminal to said ripple-out terminal; a lookup table (903) for generating a function of said first input signal and at least one other input signal; and a control multiplexer (804) for controlling said ripple-chain multiplexer, said control multiplexer being controlled to select from at least two input signals, one of said signals being provided by said lookup table.