Field-programmability: Difference between revisions

Content deleted Content added
Tags: Mobile edit Mobile web edit
Line 6:
== History ==
 
When a device's firmware is stored in [[mask ROM]] or [[one-time programmable]] PROM, it cannot be modified without physically replacing the [[integrated circuit]], so such a device cannot be field-programmable in the modern sense. [[EPROM|Erasable PROM]]-based firmware can be erased and reprogrammed, but only after lengthy exposure to a high-intensity ultraviolet light source.
 
Thus, field-programmable devices were not practical until the invention of [[EEPROM]] and [[flash memory]] in the 1980s. Early EEPROMs could only be reprogrammed with expensive, dedicated [[programmer (hardware)|programmer hardware]], since they required high voltages (10-20 [[Volt|V]], compared to typical 3-5 V [[logic level]]s) and there was no standard programming [[protocolCommunication (computing)protocol|protocol]]; as a result, field-programming was mostly performed by professional technicians and service engineers. However, as of the early 2000s, many devices were expressly designed to be field-programmed by ordinary consumers. Several developments have made this possible:
* Modern [[EEPROM]] and [[Flash memory|flash]] devices contain internal [[charge pump]]s which eliminate the need for high voltages.
* Most consumers have access to [[personal computer]]s, which can perform arbitrary programming protocols.
* Ubiquitous [[Internet]] [[Internet access|access]] provides a convenient means to rapidly distribute firmware images.
 
Standard protocols for programming non-volatile memory devices have emerged. For example, [[JTAG]] may be used to read and program the EEPROM and Flash chips in many [[consumer electronicelectronics]]s devices. Many such devices include [[JTAG header]]s internally for factory programming and [[quality control]], even though no external [[electrical connector|connector]] is exposed in the finished product.
 
== Programmable logic ==
 
The 1980s saw the introduction of '''[[programmable logic]] devices''' (PLDs) such as [[programmableProgrammable arrayArray logicLogic|PALPALs]]s, [[programmable logic array|PLA]]s, and [[CPLDComplex programmable logic device|CPLDs]]s. These are [[integrated circuit]]s which can implement nearly arbitrary [[digital logic]] functions based on firmware-like information stored in non-volatile memory.
 
Thus, devices containing PLDs may be considered as field-programmable ''hardware'', while EEPROM and flash memory act as storage for field-programmable ''software''.
Line 34:
* [[Firmware]]
* [[JTAG]]
*[[Field-programmable gate array]] (FPGA)
* [[FPGA]]
*[[Field-programmable analog array]] (FPAA) - like FPGA but with [[Analog signal|analog signals]]
 
== External links ==