These are devices that are used in electronic circuits to make reconfiguration of the same possible. The logical gates that are normally used perform a fixed function; however, the Programmable Logic Devices (PLD) do not perform any predefined task when manufactured and need to be programmed before they can be used.Before the introduction of PLDs, ROM (Read Only Memories) was used. EPROM could be programmed using any standard hardware for that device and hence, did not require any other peripheral hardware. Another advantage of ROMs is that a particular binary code stored in it could be obtained on any of the n output lines available. Thus, they can be programmed in any way one wishes to. However, ROMs have some disadvantages when they are used as PLDs. They do not produce the outputs as quickly as other devices; they are not very dependable as far as asynchronous inputs are concerned; they require more power, etc. The first PLD was the programmable logic array developed from ROAM (Read-Only Associative Memory) by modification of one of its metal layers and 17 inputs and 18 outputs.
In a market, you can find a bunch of programmable logic devices – PLD. They can be small scale integrated – SSI, medium-scale integrated- MSI, mask programmed gate array – MPGA (MPGD – masked programmable logic devices). Now the most popular are FPGA (Field Programmable Gate Arrays). What is the difference between FPGA and MPGA? MPGA is hard-coded during manufacturing and cannot be erased or reprogrammed, while FPGA is programmable – usually EEPROM or SDRAM. Of course, there are other differences between FPGA and MPGA. One of them is speed. MPGA usually is faster as MPGA needs fewer elements to form a logic gate while FPGA needs additional elements to enable programmability – this adds additional resistances and capacitances in circuits. But today’s technology allows reaching significant speeds with FPGAs too.