Thursday, September 22, 2011

Field-Programmable Gate Array


Field-Programmable Gate Array
A Field-Programmable Gate Array (FPGA) is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects. 
Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or mathematical functions. 
In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memory.


Applications
ASIC prototyping: Due to high cost of ASIC chips, the logic of the application is first verified by dumping HDL code in a FPGA. This helps for faster and cheaper testing. Once the logic is verified then they are made into ASICs.
* Very useful in applications that can make use of the massive parallelism offered by their architecture. Example: code breaking, in particular brute-force attack, of cryptographic algorithms.
FPGAs are sued for computational kernels such as FFT or Convolution instead of a microprocessor.
Applications include digital signal processing, software-defined radio, aerospace and defense systems, medical imaging, computer vision, speech recognition, cryptography, bio-informatics, computer hardware emulation and a growing range of other areas.


Architecture
FPGA consists of large number of "configurable logic blocks" (CLBs) and routing channels. Multiple I/O pads may fit into the height of one row or the width of one column in the array. In general all the routing channels have the same width

CLB: The CLB consists of an n-bit look-up table (LUT), a flip-flop and a 2x1 mux. The value n is manufacturer specific. Increase in n value can increase the performance of a FPGA. Typically n is 4. An n-bit lookup table can be implemented with a multiplexer whose select lines are the inputs of the LUT and whose inputs are constants. An n-bit LUT can encode any n-input Boolean function by modeling such functions as truth tables. This is an efficient way of encoding Boolean logic functions, and LUTs with 4-6 bits of input are in fact the key component of modern FPGAs
Each CLB has n-inputs and only one input, which can be either the registered or the unregistered LUT output. The output is selected using a 2x1 mux. The LUT output is registered using the flip-flop (generally D flip-flop). The clock is given to the flip-flop, using which the output is registered. In general, high fanout signals like clock signals are routed via special-purpose dedicated routing networks, they and other signals are managed separately.
Routing channels are programmed to connect various CLBs. The connecting done according to the design. The CLBs are connected in such a way that logic of the design is achieved.


FPGA Programming
The design is first coded in HDL (Verilog or VHDL), once the code is validated (simulated and synthesized). During synthesis, typically done using tools like Xilinx ISE, FPGA Advantage, etc, a technology-mapped net list is generated. The net list can then be fitted to the actual FPGA architecture using a process called place-and-route, usually performed by the FPGA company's proprietary place-and-route software. 
The user will validate the map, place and route results via timing analysis, simulation, and other verification methodologies. Once the design and validation process is complete, the binary file generated is used to (re)configure the FPGA. 
Once the FPGA is (re)configured, it is tested. If there are any issues or modifications, the original HDL code will be modified and then entire process is repeated, and FPGA is reconfigured

ASIC

ASIC:
An application-specific integrated circuit (ASIC) is an integrated circuit designed for a particular use, rather than intended for general-purpose use. Processors, RAM, ROM, etc are examples of ASICs

FPGA

FPGA: 
A Field-Programmable Gate Array (FPGA) is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects. 
Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or mathematical functions

Moore’s Law


Moore’s Law
Gordon Moore: co-founder of Intel

1965 - observed trends in industry - # of transistors on ICs vs. release dates:
Noticed number of transistors doubling with release of each new IC generation
release dates (separate generations) were all 18-24 months apart

Predicted that the number of transistors per chip would grow exponentially (double every 18 months)

Exponential improvement in technology is a natural trend: 
e.g. Steam Engines - Dynamo - Automobile

The level of integration of silicon technology as measured in terms of number of devices per IC

This comes about in two ways – size reduction of the individual devices and increase in the chip or dice size

As an indication of size reduction, it is interesting to note that feature size was measured in mils (1/1000 inch, 1 mil = 25 mm) up to early 1970’s, whereas now all features are measured in mm’s (1 mm = 10-6 m or 10-4 cm)

Semiconductor industry has followed this prediction with surprising accuracy

Amazing visionary – million transistor/chip barrier was crossed in the 1980’s.
2300 transistors, 1 MHz clock (Intel 4004) - 1971
42 Million, 2 GHz clock (Intel P4) - 2001
140 Million transistor (HP PA-8500)

VLSI Applications


VLSI Applications
VLSI is an implementation technology for electronic circuitry - analogue or digital
It is concerned with forming a pattern of interconnected switches and gates on the surface of a crystal of semiconductor
* Microprocessors
* personal computers
* Microcontrollers
* Memory - DRAM / SRAM
* Special Purpose Processors - ASICS (CD players, DSP applications)
* Optical Switches
Has made highly sophisticated control systems mass-producable and therefore cheap

JOBS FOR VLSI ENGINEERS


JOBS FOR VLSI ENGINEERS
As mentioned above, the main job functions in this industry are Design, Product, Test, Applications and Process Engineering. For the sake of clarity, product engineering and test engineering functions are described separately, but it is most efficient to combine these two functions into one engineer because of the interdependency and overlap of skills, tasks and job functions.

1. Design Engineer:
Takes specifications, defines architecture, does circuit design, runs simulations, supervises layout, tapes out the chip to the foundry, evaluates the prototype once the chip comes back from the fab.

2. Product Engineer:
Gets involved in the project during the design phase, ensures manufacturability, develops characterization plan, assembly guidelines, develops quality and reliability plan, evaluates the chip with the design engineer, evaluates the chip through characterization, reliability qualification and manufacturing yield point of view (statistical data analysis). He is responsible for production release and is therefore regarded as a team leader on the project. Post production, he is responsible for customer returns, failure analysis, and corrective actions including design changes.

3. Test Engineer:
Develops test plan for the chip based on specifications and data sheet, creates characterization and production program for the bench test or the ATE (Automatic Test Equipment), designs test board hardware, correlates ATE results with the bench results to validate silicon to compare with simulation results. He works closely with the product engineer to ensure smooth release to production and post release support.

4. Applications Engineer:
Defines new products from system point of view at the customer’s end, based on marketing input. His mission is to ensure the chip works in the system designed or used by the customers, and complies with appropriate standards (such as Ethernet, SONET, WiFi etc.). He is responsible for all customer technical support, firmware development, evaluation boards, data sheets and all product documentation such as application notes, trade shows, magazine articles, evaluation reports, software drives and so on.

5. Process Engineer:
This is a highly specialized function which involves new wafer process development, device modeling, and lots of research and development projects. There are no quick rewards on this job! If you are R&D oriented, highly trained in semiconductor device physics area, do not mind wearing bunny suits (the clean room uniforms used in all fabs), willing to experiment, this job is for you.

6. Packaging Engineer:
This is another highly specialized job function. He develops precision packaging technology, new package designs for the chips, does the characterization of new packages, and does electrical modeling of the new designs.

7. CAD Engineer:
This is an engineering function that supports the design engineering function. He is responsible for acquiring, maintaining or developing all CAD tools used by a design engineer. Most companies buy commercially available CAD tools for schematic capture, simulation, synthesis, test vector generation, layout, parametric extraction, power estimation, and timing closure; but in several cases, these tools need some type of customization. A CAD engineer needs to be highly skilled in the use of these tools, be able to write software routines to automate as many functions as possible and have a clear understanding of the entire design flow

VLSI DESIGNS ARE CLASSIFIED INTO THREE CATEGORIES

VLSI DESIGNS ARE CLASSIFIED INTO THREE CATEGORIES:
1. Analog:
Small transistor count precision circuits such as Amplifiers, Data converters, filters, Phase Locked Loops, Sensors etc.

2. ASICS or Application Specific Integrated Circuits:
Progress in the fabrication of IC's has enabled us to create fast and powerful circuits in smaller and smaller devices. This also means that we can pack a lot more of functionality into the same area. The biggest application of this ability is found in the design of ASIC's. These are IC's that are created for specific purposes - each device is created to do a particular job, and do it well. 
The most common application area for this is DSP - signal filters, image compression, etc. To go to extremes, consider the fact that the digital wristwatch normally consists of a single IC doing all the time-keeping jobs as well as extra features like games, calendar, etc.

3. SoC or Systems on a chip:
These are highly complex mixed signal circuits (digital and analog all on the same chip). A network processor chip or a wireless radio chip is an example of an SoC