This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
FPGA is the short form of Field Programmable Gate Array. FPGA is basically an integrated circuit and it can design as per customer's need by programming. That's why it is known as field programmable. The function of an FPGA is defined by a program written by the user rather than by the manufacturer of the device. An integrated circuit perform a particular function which is defined at the time of manufacture but an FPGA's function is not defined by the manufactures but a program written by someone other than the manufacturer. The program in FPGA can be either permanently burned or semi permanently as part of a board assembly process or loaded from external memory.
An FPGA contains a number of logic blocks and in between these logic blocks it have re configurable wiring circuitry. It is possible to configure these logic blocks for any desired logic configuration.
The evolution of programmable devices
Programmable devices have a long evolution to reach the complexity that they have today. The following sections give an approximately chronological discussion of these devices from least complex to most complex.
Programmable Read Only Memories (PROM's)
Programmable Read Only Memories or PROM's are simply memories that can be inexpensively programmed by the user to contain a specific pattern. The pattern can be used to represent a microprocessor program a simple algorithm, or a state machine. Some PROM's can be erased and programmed multiple times.
PROM's are excellent for implementing any kind of combinational logic with a limited number of inputs and outputs. For sequential logic, external clocked devices such as flip-flops or microprocessor must be added. Also, PROM's send to be extremely slow, so they are not useful for application where speed is an issue.
4. Programmable Logic Arrays(PLA's)
Programmable Logic Arrays (PLA's) were a solution to the speed and input limitations of PROM's. PLA's consist of a large number of inputs connected to an AND plane where different combinations of signals can be logically AND ed together according to how the part is programmed the outputs of the AND plane go into an OR plane, where the terms are ORed together in different combinations and finally outputs are produced. At the inputs and outputs there are typically inverters so that logical NOTs can be obtained. These devices can implement a large number of combinational functions, though not all possible combinations like a PROM can. However they generally have many more inputs and are much faster.
Fig1 PLA Architecture
Programmable Array Logic (PLA's)
Programmable Array Logic (PLA's)is a variation of the PLA. Like the PLA it has a wide programmable AND plane for ANDing inputs together. However, the OR plane is fixed limiting the number of terms that can be ORed together. Other basic logic devices such as multiplexers, exclusive Ors, and latches are added to the inputs and outputs. Most importantly, clocked elements typically flip-flops, are included these devices are now able to implement a large number of logic functions including clocked sequential logic need for state machine. This was an important development that allowed PLA's to replace much of the standard logic in many designs. PLA's are also extremely
6. CPLD's and FPGA's
To modify the hardware of a digital system needed time. But in digital world the process should be as fast as possible , the solution came in the form of two new devices the Complex Programmable Logic Device (CPLD) and the Field Programmable Gate Array. CPLD's and FPGA's bridge the gap between PALs and Gate Arrays. CPLD's are as fast as PALs but more complexes. FPGAs approach the complexity of Gate Arrays but are still programmable.Fig2.FF
Fig 2 . Comparison of CPLD and FPGA
7. Complex Programmable Logic Devices (CPLDs)
Complex Programmable Logic Devices (CPLDs) are exactly what they claim to be. Essentially they are designed to be appearing just like a large number of PAL's in a single chip, connected to each other through a cross point switch. They use the same development tools and programmers, and are based on the same technologies but they can handle much more complex logic and more of it.
8. CPLD Architectures
Each manufacture has a different variation in general they are all similar in that they consist of function blocks, input/output block, and an interconnect matrix. CPLDs can be programmed by using different technologies like EPROM cells , Flash EPROM cells etc
Fig 3CPLD Structure
9. Functional blocks
A typical function block has the AND plane which can accept inputs the I/O blocks, other function locks or feedback from the same function block. The terms are then ORed using a fixed number of OR gates, and terms are selected via a large multiplier. The output of the multiplexer can be sent straight out of the block, or through a clocked flip-flop. This particular block includes additional logic such as selectable exclusive OR and a master reset signal ,in addition to being able to program the polarity at different stages
Usually, the function blocks are designed to be similar to existing PAL architectures , such as the 22V10, so that the designer can use familiar tools or even older designs without changing them.
10. I/O BLOCK
The I/O Block is used to drive signals to the pins of the pins of the CPLD device at the appropriate voltage levels with the appropriate current. Usually, a flip-flop is included. The clocked signals can be output directly to pins without encountering significant delay. It is done for inputs so that there is not much delay on a signal before reaching a flipflop which would increase the device hold time requirement.
The CPLD interconnect is very large programmable switch matrix that allows signals from all parts of the device go to all other parts of the device. while no switch can connect all internal function blocks to all other function blocks there is enough flexibility to allow many combinations of connections.
Fig 4 FPGA structure
12. Programmable elements
Different manufactures use different technologies to implement the programmable elements of a CPLD. The common technologies are EPROM EEPROM and Flash EPROM. These technologies are next generation version of the technologies that we are used for the simplest programmable device, PROMS.
13. Field Programmable Gate Array (FPGA)
Field Programmable logic arrays are called so because rather than having structure similar to PAL or any other programmable device, they are structured very much like a gate array ASIC's, or in places where ASIC will will be eventually be used.
14. FPGA Architectures
The architecture of a field programmable gate array have configurable logic blocks ,configurable I/O block , and programmable interconnect. A clock circuitry is there for driving the clock signal to each logic blocks. ALU's memory and decoder are available in addition to these. The basic type of programmable elements for FPGA are Static RAM and anti-fuses.
15. Configurable logic blocks
The logic of an FPGA is in configurable logic block. These configurable logic blocks are able to create small state machine. The basic architecture of CLB are gate array ASIC. The logic circuit of a CLB will be basic one. These are the cases of small grain architecture. In large grain architecture CLB contain RAMs for creating combinational logic functions , flip-flops for clocked storage elements, and for routing multiplexers are there. Multiplexers routes the data within the block and from the external resources.
Fig.5 Configurable logic blocks
16. Configurable I/O Blocks
Configurable logic blocks are used to manage signal's movement within the chip and with external world. A configurable logic block consists of input buffer and output buffer with 3 state and open collector output control. There are pull up or pull down resistors on the output. These resistors have influence in movement of signals. The polarity of the output can be programmed to active high or active low.
17. Programmable Interconnect
The interconnect of an FPGA is similar to that of a gate array ASIC but it is differ from that of a complex programmable logic device. There are long lines which can be used to connect critical CLB's even though it is far from each other it connects without much delay. These lines can be used within the chip as bus lines. Physically closed CLB's are connected by using short lines. . There are often one or several switch matrices, like that in a CPLD, to connect these long and short lines together in specific ways,There are programmable interconnects inside the chip , these are helpful connect to the switch matrix. Three-state buffers are used to connect many CLB's to a long line and it will create a bus system. There are long lines called global clock lines will reduce the impedance and thereby increase the propagation speed.
18. Clock Circuitry
The purpose of clock circuitry is to supply clock signal to all blocks of the chip. Clock drivers with high clock buffers are there inside an FPGA in order to attain this task. These buffers are connected to clock input pads and drive the clock signals on to the global clock lines described above. These clock lines are designed for low skew times and fast propagation times. Synchronous design is a must with FPGA's , since absolute skew and delay cannot be guaranteed. Only when using clock signals from clock buffers can the relative delays and skew times are guaranteed.
19. Small Vs large Granularity
Small grain FPGA's resemble ASIC gate arrays in that the CLB's contain only small, very basic elements such as NAND gates etc. the philosophy is that small elements can be connected to make larger functions without wasting too much logic. In a large grain GPGA, where the CLB can contain two or more flip-flops, a design which does not need many flip-flops will leave many of them unused. Unfortunately, small grain architectures require much more routing resource, which take up space and insert a large amount of delay which can more than compensate for the better utilization.
A comparison of advantages of each type of architecture is shown.
Small Granularity Large Granularity
Better utilization Fewer levels of logic
Direct conversation ASIC Less interconnect delay
20. SRAM Vs Anti-fuse programming
There are two competing methods of programming FPGA's. The first one is the SRAM programming, In this method a small static RAM bit will be there for each programming element. Writing the bit with a zero turns of a switch, while writing with a one turns on a switch. The second method is the anti fuses which have microscopic structures which, unlike a regular fuse, normally make no connection. A certain amount of current will flow during programming time of the device and this causes the two sides of anti fuse to connect.
The advantage of SRAM based FPGA's is that they use a standard fabrication process that chip fabrication plants are familiar with and are always optimizing for better performance. Since the SRAM's are reprogrammable, the FPGA's can be reprogrammed any number of times, even while they are in the system, just like writing to a normal SRAM. The disadvantages are that they are volatile, which means that a power glitch could potentially change it. FPGA SRAM based devices faces large routing delays.
Anti-fuse based FPGA's are non volatile in nature and the delays caused by routing are very small, so they tend to be faster. These require a complex fabrication process, and also need an external programmer to program it and they cant be re programmed , these are the disadvantages of anti fused based FPGA.
21. Modern Developments of FPGA
"System on a programmable chip" is formed by combining the FPGAs logic blocks and interconnects to the microprocessor. Since FPGA is programmable the performance of the overall system can be changed at any point of time. The combination of FPGA and microprocessor can perform very fast.
22. Major Manufactures of FPGA
Xilinx and Altera are the main manufactures of FPGA , both of them have 80 % of total market of FPGA and amongst that Xilinx along have 50 % of market. There are some other companies manufacturing FPGA which include Lattice Semi Conductor , Actel , Silicon Blue technologies , Achronix ,Quick logic etc.
23. Programming an FPGA
The technology of FPGA was introduced so many years ago but its came to market before two or three years ago. The programming language using in FPGA are Hardware description language (HDL) like verilog and VHDL. These languages are unfamiliar to most of programmers before few years. In order to open up the market for FPGA to software programmers , tools vendors are providing an increasing number of somewhat C-like FPGA programming language and supporting tools. These pseudo C languages are more familiar for development flow.
As mentioned earlier an FPGA have an some logic blocks and interconnects. While programming there will form some changes in the interconnects. Initially there won't be any connection in between the interconnects. When a program in burned in to the FPGA there will form some connections in the connection field. The program is translated in to binary format. The binary format contains 1's and 0's . When bit having high potential (logic 1 ) is came in to the connection block there will form a connection , similarly if a bit having zero potential comes (logic 0) there will form a no connection or it will be open. Like this the entire binary data will get stored to FPGA and after programming completed we can see the FPGA ready to perform like the hardware. This programmed FPGA will be capable for performing the hardware which is coded.
24. Hardware vs. Software Design Flow
There a several difference between the traditional software design flow and the established Verilog/VHDL design flow for FPGAs. There are lot of stages for implementing a hardware in FPGA , amongst them the first stage is synthesis , in which an HDL code is translated in to netlist . Netlist is a textual description of circuit or schematic. Next step of design is "Simulation" . In simulation process the correctness of codes written in HDL will be checked. After verifying the codes the netlist is converted in to binary format (translate) , the components and connections are mapped in to CLB (Map) as per the binary format and the design is placed and routed to fit onto the target FPGA (place and route).
Figure represents the graphical representation for the hardware design flow and software design flow of implementing a hardware in FPGA . The software design flow does not need any pre implementation simulation step , here the codes are written in HDL and is compiled or checked by using some softwares ( like Model Sim ) and is translated to binary format. Software design flow compile time is very shorter than implementation time in hardware design flow , so it is possible to recompile codes and can perform debugging.
In hardware design flow it is important to establish that the design should be functionally correct , otherwise it is difficult to debug and correct the program. Once the program is implemented in FPGA connections will be created in accordance with the binary data ( which is a coded form of actual HDL code ). Based on these connections the logic circuitry and logic blocks will perform like the hardware which is to be implemented.
Fig 6. Hardware design flow Fig 7. Software design flow.
25. Programming languages
VHDL and Verilog
These are the very famous and common hardware languages using to program an FPGA. VHDL stands for "VHSIC (Very high speed integrated circuit) Hardware description language". The programmer can define both gate level and switch level optimization in the same language. This is the main advantage of VHDL and verilog languages.
Introduction to VHDL
VHDL is a hardware description language which can use to design a digital system.
VHDL provides primary constructs called design units, they are
1. Entity declaration,
2. Architechture body
Entity of a program defines all the input signal and output signal of the hardware.
The entity of a multiplexer circuit is given below.
ENTITY mux IS
PORT ( a1, b1, c1, d1 : IN BIT;
Sl0, sl1 : IN BIT;
o : OUT BIT);
Here "mux" is the name of entity. The letters "a1 , b1, c1, d1 " are the input bits of a multiplexer and Sl0 , Sl1 are the selection lines of multiplexer . o is the output signal of the multiplexer.
For a multiplexer if there are 'n' select lines it can select a signal from 2n number of input signal.
Architecture of the program defines the working of the hardware.
The architecture of Multiplexer is given below ,
ARCHITECTURE dataflow OF mux IS
SIGNAL select_line : INTEGER;
Select_line <= 0 WHEN sl0 = '0' AND sl1 = '0' ELSE
1 WHEN sl0 = '1' AND s1 = '0' ELSE
2 WHEN sl0 = '0' AND s1 = '1' ELSE
o <= a AFTER 0.5 NS WHEN select = 0 ELSE
b1 AFTER 0.5 NS WHEN select = 1 ELSE
c1AFTER 0.5 NS WHEN select = 2 ELSE
d1 AFTER 0.5 NS;
There are 3 methods to model a digital system using VHDL , they are
Structural type of Modeling
Behavioural type of modelling
Dataflow type of modelling.
Structural type of modelling.
In structural style of modelling the hardware is described using the functions of basic components in the design. For this type of design the response of each element in the hardware should be considered and to be written separately.
Behavioural Style of modelling
In behavioural style of modelling , the system is defined by the behaviour of each block of the system. That means we have to identify the response of each blocks in the system for separate inputs. Behavioural type of modelling is the most complex type of modelling using VHDL comparing with the other two methods.
Dataflow type of modelling
In dataflow type of modelling the system is defined using the flow of data between each block of the hardware for different inputs. Here we can use the state diagram method for accurate calculation of the data flow.
26. Recent developments in FPGA
There are different companies manufacturing FPGA , the main companies among them are
Xilinx is one of the main company in manufacturing FPGA. Xilinx is founded in silicon valley in 1984 and have its head quarters in California, USA , Dublin Ireland , Singapore Tokyo and San Jose and it have corporate office throughout North America , Asia and Europe.
Xilinx had developed a lot of series of FPGA and CPLDs. The product lines of Xilinx include Virtex , Kintex and Artix series Spartan series etc.
The virtex series have the features like DSP blocks , FIFO , Ethernet MAC blocks, ECC logic , PCI- express controllers and high speed transceivers . Virtex have fixed hardware using to function like micro processor cores , multiplier , memories and serial transceiver. Virtex also have different series , the recently announced series of Virtex is virtex 7 family.
Kintex 7 series is the first mid range FPGA family. Xilinx claims that kintex 7 will perform like virtex 6 family with half the power consumption and half price.
Artix 7 series can deliver the same performance at half the power and 35 % lower cost to the Spartan 6 family.
The target of Spartan series is low power foot print , extreme cost sensitivity and high volume. It have applications in displays , set top box , wireless routers etc.
Fig 8 . Spartan FPGA installed in circuit Fig 9 . Spartan development kit
Fig 10. Xilinx FPGA coupled with video oriented input output
Altera invented first PLD (programmable logic device) in 1984. Altera's main products of programmable devices are Cyclone , Arria GX , and Stratix series of FPGA
Cyclone have different series of FPGAs . The advantages of cyclone III family FPGA are low power , high functionality , low cost.
The applications of cyclone III LS devices includes Display , Industrial , Automotive ,Video and image processing , Military , wireless etc.
Figure 1. Cyclone III Floorplan
Fig 11. Cyclone III FPGA floor plan
This is a midrange FPGA family of Altera with transceivers. It have a transceiver speed up to 3.125 Gbps. It is possible to connect existing modules and devices which supports protocols such as PCI express , Gigabit Ethernet , Serial rapidIO , SDI and more.
Fig 12. Transceiver block
This series of FPGA of Altera introduces the concept of Trimatrix memory. In this the memory chip is implemented in 3 types of different block sizes , and each for specific use.
Figure 1: Stratix Device Architecture
Fig 13Stratix device architecture
27. Applications of FPGA
FPGA got wide range applications , some of them are listed below .
In Robotics the FPGAs are using to connect a computer to robot. The data from the computer is processed by FPGA and is given to the robot or the machine connected outside. Similarly the data from the machine or robot is again processed and given to the computer. Here the FPGA board is working as a translator in between the computer and robot. This kind of mechanism does not need any supporting software in computer. So it can use in any computer.
In space applications FPGA have an important role. The program burned in FPGA can be reprogrammed at any point of time. The working of the FPGA is completely depend on the program burned in it. So if we are changing the program we can change its working from the controlling station of satellite itself. So we can control the satellite from the controlling station.
FPGAs have wide applications in graphics. It is possible to create 3 dimensional views from 2 dimensional pictures. This is possible because an FPGA can perform a lot of mathematical calculation within fractions of second. It can calculate Fourier transform of functions and by using these it is possible to generate 3 dimensional views of objects.
In medical applications FPGAs are using in association with scanning machines. FPGA can produce 3 dimensional views , and this is helpful in medical applications for analysing internal organs.
An Arria FPGA of Altera using for medical application is given below.
In medical imaging market Arria GX FPGAs are connected with a scanning machine (eg MRI scanning)and also to a PC using PCI express in the equipment. The speed and DSP capabilities of Arria GX FPGA is utilised here.
Figure 2. Arria GX FPGA Interfacing to Medical Office Imaging Equipment
Fig 14. Arria GX FPGA using in medical imaging application , PCI Express
Industrial control , Giga bit Ethernet.
FPGAs can use for making high speed Ethernet , and the speed can be upto 1 Gbps.
Figure 3. Arria GX FPGA Enabling Gigabit Ethernet With Legacy Industrial Controllers
Fig 15. Altera Arria Fast Ethernet application
PLC: Programmable logic control
SGMII: serial gigabit medium independent interface
The present technology using in wireless communication are Orthogonal frequency division multiple access (OFDMA). Code division multiplexing (CDMA) was the one which used in previous days. This is possible by using additional channelling. FPGAs are using for the channelling process . Certain functions such as forward error correction require processing capabilities that are often outside of digital signal processor can efficiently support. In that case Arria GX FPGA can be used.
Figure 4. Arria GX as an FEC Coprocessor in an OFDM Channel Card
Fig 16. Altera Arria in wireless technologies
Digital Signal Processing
FPGA have wide applications in digital signal processing. Micro processors are using for computing Fourier transform. But the performance of microprocessors was typically poor. When the number of points increases the performance will become reduced in microprocessors . In FPGA there are large number of cells and because of this it can handle digital signal better than microprocessors.
The FPGA DSPs are flexible , that means the FPGA can be reprogrammed within a fraction of a second. Because of this it can be implemented quickly. Also FPGA DSPs are highly integrated. Even though FPGA have this much of advantages over microprocessor , it is not so common as micro processors , this is because of the lack of experienced persons to use FPGA and its programming , also the algorithms developed for microprocessors are entirely different and it is not possible to implement as like in FPGA. The success of a digital signal processor is completely depend upon the ability of designer , if the designer is not perfect the system cannot perform accurately.
FPGAs have wide range of applications in defence systems, ASIC prototyping speech recognition , medical imaging ,cryptography , bio informatics , radio astronomy etc.
28. Munich Electronica Exploration
Electronica exhibition at Munich, Germany was from Nov 9 - Nov 12 , 2010. About 3000 companies were there in exhibition stall. Electronic companies dealing with various fields of electronics such as embedded, wireless , basic components , industrial electronics , Medical electronics , telecommunication was present there. About 20 companies dealing with Field programmable gate array ( FPGA ) was there at elctronica 2010 , they are listed below.
1.Virginia technology inc.
Virginia technologies is an award winning leader in electronic instrumentation and other technologies. The company has enhancement the safety and maintenance of civil structures around the world with the embedded corrosion instruments. The company using FPGA for some of the applications in instrumentation. It uses programmed FPGAs of Xilinx and Altera for these purposes.
3.ABS Society for automation, imaging and Software mbH
ABS is a German based company. It deals with lot of electronic and embedded fields.
It develops FGPA and DSP-based Cameras. The programming of FPGA is done by ABS itself. The programming is done in VHDL or verilog languages. Since the cameras are using FPGAs it have high quality than the normal ones.
4.Advanced MP Technology GmbH
Advanced MP technology is also a German based company. Founded originally as MP system in 1978. It have branches across the world. This company also deals with FPGA for designing various systems , they are not manufacturing the FPGA doing just programming the FPGA.
RS components also a German based company. The company works in electronics electrical , mechanical and IT fields. In electronics it deals with batteries , embedded systems , Prototyping , Semi conductors , Opto electronic displays , Connectors , Power supplies , transformers , PCB design etc. RS components designs Printed circuit boards with FPGA. The PCB design and programming of FPGA is done by RS components itself. In automotive applications these PCBs commonly using.
5. IC Design
IC Design is also a German based company. They are using field programmable gate arrays for different applications. They are using FPGA for interconnecting computer and an external robot or machines. They are neither manufacturing nor programming the FPGAs , but they are purchasing programmed FPGA from other companies and using it in their PCB.
6.Xilinx and Xylon
Xilinx is the manufacturer of FPGA. It was the one and only company in electronica 2010 who manufactures FPGAs , all other companies are using the FPGAs of Xilinx and Altera and programming it as required. The different versions of Xilinx FPGA are explained in previous sections. Xylon uses Xilinx FPGA and programs it for different automotive applications , also in 3 dimensional applications. For making 3 dimensional view of an object or a 3 dimensional view of a city these can be used. These are very useful in civil engineering applications and medical applications. In medical field these have applications in scanning machines.
Microprojekt is a Croatian company . Microprojekt provides powerful embedded graphics by concentrating the development of embedded visual interfaces. By using FPGA the company developed highly efficient integrated touch screen human machine interface (HMI) . The IQ display solution is based on a SoPC implemented within the Altera Cyclone III family FPGA. The system employs a Altera Nios II soft CPU with IQ displite and IQ Graph Blit IP cores and standared peripherals such as memory controllers and interconnect.
The IQ engine renders graphical user interface, enabling data visualisations and control. It gives graphical pages which contains data visualisation elements like text , numerical field ,bar graph etc. The IQ engine is specially optimised for Altera Nios II
The design is implemented on an Altera Cyclone III based Nios II development kit on an EP3C25 cyclone III FPGA. The design include an Altera Nios II CPU running at 100 MHz , IQ-Displite light weight display controller
Fig 17. Microprojekt's product using FPGA
Microprojekt have products in different field like
The munich electronica 2010 exhibition was a great experience and was able to visit a number of multinational companies within 4 days of exhibition. From the exhibition we were able to learn how to behave as a professional. Also the got some ideas about the marketing strategies of different companies. More over can understand latest developments in the field of electronics from those companies.
Regarding the topic FPGA , it was able collect a lot of information. There was about 20 companies in the exhibition hall who deals with FPGA. It was possible to observe the applications of FPGA in automotive and graphical applications. This was really helpful to understand the practical applications and the scope of FPGAs.