Programmable logic devices (PLD)