Вы находитесь на странице: 1из 2

Field-programmable gate array (FPGA)

A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer


or a designer after manufacturing hence "field-programmable". The FPGA configuration is generally
specified using a hardware description language (HDL), similar to that used for an application-specific
integrated circuit (ASIC). (Circuit diagrams were previously used to specify the configuration, as they
were for ASICs, but this is increasingly rare.)

FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects
that allow the blocks to be "wired together", like many logic gates that can be inter-wired in different
configurations. Logic blocks can be configured to perform complex combinational functions, or merely
simple logic gates like AND and XOR. In most FPGAs, logic blocks also include memory elements, which
may be simple flip-flops or more complete blocks of memory.

Technical design

Contemporary field-programmable gate arrays (FPGAs) have large resources of logic gates and RAM
blocks to implement complex digital computations. As FPGA designs employ very fast I/Os and
bidirectional data buses, it becomes a challenge to verify correct timing of valid data within setup time
and hold time. Floor planning enables resources allocation within FPGAs to meet these time constraints.
FPGAs can be used to implement any logical function that an ASIC could perform. The ability to update the
functionality after shipping, partial re-configuration of a portion of the design and the low non-recurring
engineering costs relative to an ASIC design (notwithstanding the generally higher unit cost), offer
advantages for many applications.

Some FPGAs have analog features in addition to digital functions. The most common analog feature is
programmable slew rate on each output pin, allowing the engineer to set low rates on lightly loaded pins
that would otherwise ring or couple unacceptably, and to set higher rates on heavily loaded pins on high-
speed channels that would otherwise run too slowly. Also common are quartz-crystal oscillators, on-chip
resistance-capacitance oscillators, and phase-locked loops with embedded voltage-controlled oscillators
used for clock generation and management and for high-speed serializer-deserializer (SERDES) transmit
clocks and receiver clock recovery. Fairly common are differential comparators on input pins designed to
be connected to differential signaling channels. A few "mixed signal FPGAs" have integrated peripheral
analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) with analog signal
conditioning blocks allowing them to operate as a system-on-a-chip. Such devices blur the line between
an FPGA, which carries digital ones and zeros on its internal programmable interconnect fabric, and field-
programmable analog array (FPAA), which carries analog values on its internal programmable
interconnect fabric.

Programmable logic controller

A programmable logic controller (PLC), or programmable controller is an industrial digital computer


which has been ruggedized and adapted for the control of manufacturing processes, such as assembly
lines, or robotic devices, or any activity that requires high reliability control and ease of programming and
process fault diagnosis.

They were first developed in the automobile industry to provide flexible, ruggedized and easily
programmable controllers to replace hard-wired relays and timers. Since then they have been widely
adopted as high-reliability automation controllers suitable for harsh environments. A PLC is an example
of a "hard" real-time system since output results must be produced in response to input conditions within
a limited time, otherwise unintended operation will result.

Overview

Siemens Simatic S7-400 system in a rack, left-to-right: power supply unit (PSU), CPU, interface module
(IM) and communication processor (CP).

PLCs can range from small "building brick" devices with tens of I/O in housing integral with the
processor, to large rack-mounted modular devices with a count of thousands of I/O, and which are often
networked to other PLC and SCADA systems.

They can be designed for multiple arrangements of digital and analog inputs and outputs (I/O), extended
temperature ranges, immunity to electrical noise, and resistance to vibration and impact. Programs to
control machine operation are typically stored in battery-backed-up or non-volatile memory.

It was from the automotive industry in the USA that the PLC was born. Before the PLC, control,
sequencing, and safety interlock logic for manufacturing automobiles was mainly composed of relays, cam
timers, drum sequencers, and dedicated closed-loop controllers. Since these could number in the
hundreds or even thousands, the process for updating such facilities for the yearly model change-over
was very time consuming and expensive, as electricians needed to individually rewire the relays to
change their operational characteristics.

When digital computers became available, being general-purpose programmable devices, they were soon
applied to control sequential and combinatorial logic in industrial processes. However these early
computers required specialist programmers and stringent operating environmental control for
temperature, cleanliness, and power quality. To meet these challenges the PLC was developed with
several key attributes. It would tolerate the shop-floor environment, it would support discrete (bit-form)
input and output in an easily extensible manner, it would not require years of training to use, and it would
permit its operation to be monitored. Since many industrial processes have timescales easily addressed
by millisecond response times, modern (fast, small, reliable) electronics greatly facilitate building reliable
controllers, and performance could be traded off for reliability.

Programming

Early PLCs, up to the mid-1990s, were programmed using proprietary programming panels or special-
purpose programming terminals, which often had dedicated function keys representing the various
logical elements of PLC programs. Some proprietary programming terminals displayed the elements of
PLC programs as graphic symbols, but plain ASCII character representations of contacts, coils, and wires
were common. Programs were stored on cassette tape cartridges.

More recently, PLCs are programmed using application software on personal computers, which now
represent the logic in graphic form instead of character symbols. The computer is connected to the PLC
through USB, Ethernet, RS-232, RS-485, or RS-422 cabling. The programming software allows entry and
editing of the ladder-style logic. In some software packages, it is also possible to view and edit the
program in function block diagrams, sequence flow charts and structured text. Generally the software
provides functions for debugging and troubleshooting the PLC software, for example, by highlighting
portions of the logic to show current status during operation or via simulation. The software will upload
and download the PLC program, for backup and restoration purposes. In some models of programmable
controller, the program is transferred from a personal computer to the PLC through a programming
board which writes the program into a removable chip such as an EPROM.

Вам также может понравиться