IntroductionThis page describes FPGA and contains links to tutorials, codes and videos to help you in learning FPGA programming and implementation.
FPGA(Field Programmable Gate Array)FPGA is a technology that allows one to create digital system on a FPGA IC using hardware description language(HDL). The FPGA IC contains array of fusable connection between rows and columns of primary logic components(AND, OR, D flip flop). When a digital system is created using HDL language, FPGA vendor software is used to translate the HDL description of the digital system into bit-steam file that is loaded into the FPGA chip. This bit stream file contains the information about which fusable connection to burn, hence creating the digital system on the FPGA chip.
Why use FPGA?
It is possible to design digital system using transistors, logic gates, 74 series devices, SSI, MSI or LSI on a printed circuit board. But if you take this path, you have to design whole system first, on a schematic which can become many pages. You also need to account the devices that are available to you. You have to search for devices on catalog and check their fitness and requirements etc. This is tedious and time consuming.
Whereas FPGA allows one to design a digital system using HDL programming language.
HistoryDigital system in early 1970s were created using TTL digital logic components(74/54 series) and later with CMOS versions(HC, AC, FC, FCT, HCT etc) on PCB(Printed Circuit Board). The components includes SSI and MSI components such as gates(AND, OR, NOR, XOR etc), multiplexers, decoders, flip flops etc. This digital design technique is still used.
PAL(Programmable Array Logic)
CPLA(Complex Programmable Logic Array)
Because of the limitation of the PAL, Complex Programmable Logic Array(CPLA) were developed. These chips could support more gates and flip flops and hence larger digital function could be implemented on them. The basic building block of CPLA were the Macrocell which had the size of one PAL.
FPGA(Field Programmable Gate Array)
To enhance the capability for digital system design, FPGA technology was developed from CPLA. FPGA have more logic gates and more programming flexibility than CPLA. FPGA are based on basic building blocks called Complex Logic Block(CLB). An FPGA has thousands of CLBs lined up in array form which can then be programmed to make interconnection between these CLBs.
TutorialsVHDL language tutorials
Encoders/ DecodersDifferent method for encoder design
74LS148 Priority encoder
Multiplexer using Concurrent and Sequential VHDL statements
RegistersShift Registers using D flip flop
8 bit shift register design
Circular Shift Register
Mathematical FunctionFull Adder design
Adder Subtractor Design
Ripple Carry Adder