Thursday, January 26, 2012

FPGA Basics

FPGA vs ASIC

Definitions
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.

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 vs ASIC
Speed
ASIC rules out FPGA in terms of speed. As ASIC are designed for a specific application they can be optimized to maximum, hence we can have high speed in ASIC designs. ASIC can have hight speed clocks.
Cost
FPGAs are cost effective for small applications. But when it comes to complex and large volume designs (like 32-bit processors) ASIC products are cheaper.
Size/Area
FPGA are contains lots of LUTs, and routing channels which are connected via bit streams(program). As they are made for general purpose and because of re-usability. They are in-general larger designs than corresponding ASIC design. For example, LUT gives you both registered and non-register output, but if we require only non-registered output, then its a waste of having a extra circuitry. In this way ASIC will be smaller in size.
Power
FPGA designs consume more power than ASIC designs. As explained above the unwanted circuitry results wastage of power. FPGA wont allow us to have better power optimization. When it comes to ASIC designs we can optimize them to the fullest.
Time to Market
FPGA designs will till less time, as the design cycle is small when compared to that of ASIC designs. No need of layouts, masks or other back-end processes. Its very simple: Specifications -- HDL + simulations -- Synthesis -- Place and Route (along with static-analysis) -- Dump code onto FPGA and Verify. When it comes to ASIC we have to do floor planning and also advanced verification. The FPGA design flow eliminates the complex and time-consuming floor planning, place and route, timing analysis, and mask / re-spin stages of the project since the design logic is already synthesized to be placed onto an already verified, characterized FPGA device.

Type of Design
ASIC can have mixed-signal designs, or only analog designs. But it is not possible to design them using FPGA chips.
Customization
ASIC has the upper hand when comes to the customization. The device can be fully customized as ASICs will be designed according to a given specification. Just imagine implementing a 32-bit processor on a FPGA!
Prototyping
Because of re-usability of FPGAs, they are used as ASIC prototypes. ASIC design HDL code is first dumped onto a FPGA and tested for accurate results. Once the design is error free then it is taken for further steps. Its clear that FPGA may be needed for designing an ASIC.
Non Recurring Engineering/Expenses
NRE refers to the one-time cost of researching, designing, and testing a new product, which is generally associated with ASICs. No such thing is associated with FPGA. Hence FPGA designs are cost effective.
Simpler Design Cycle
Due to software that handles much of the routing, placement, and timing, FPGA designs have smaller designed cycle than ASICs.
More Predictable Project Cycle
Due to elimination of potential re-spins, wafer capacities, etc. FPGA designs have better project cycle.
Tools
Tools which are used for FPGA designs are relatively cheaper than ASIC designs.
Re-Usability
A single FPGA can be used for various applications, by simply reprogramming it (dumping new HDL code). By definition ASIC are application specific cannot be reused.

What are FPGAs

Field Programmable Gate Arrays (FPGAs) are programmable semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects.

What are ASICs

Application Specific Integrated Circuits (ASICs) are devices custom built for the particular design.

What are FPGA Design Advantages

    Faster time-to-market – no layout, masks or other manufacturing steps are needed No upfront NRE (non recurring expenses) – costs typically associated with an ASIC design Simpler design cycle – due to software that handles much of the routing, placement, and timing More predictable project cycle – due to elimination of potential re-spins, wafer capacities, etc. Field reprogramability – a new bitstream can be uploaded remotely

What are FPGA Design Limitations

    Power consumption – FPGAs fundamentally use a lot more power than ASICs Price – they also fundamentally cost more Speed – ASICs can still blow any FPGA away in sheer speed although design techniques can help with this issue. Density – ASIcs can still pack a lot more logic into a single chip than an FPGA IP – modern, complex IP (a complete PCI Express of Hypertransport core for example) may take up most or all of an FPGA but only 10% of an ASIC

What are ASIC Design Advantages

    Full custom capability – for design since device is manufactured to design specs Lower unit costs – for very high volume designs Smaller form factor – since device is manufactured to design specs Higher raw internal clock speeds

What are ASIC Design Limitations

    High NRE cost – for design since device is manufactured to design specs Lower unit costs – for very high volume designs Smaller form factor – since device is manufactured to design specs Higher raw internal clock speeds

http://only-vlsi.blogspot.com/2008/05/fpga-vs-asic.html

http://electronicsbus.com/fpga-vs-asic-design-verification-comparison/

FPGA

fpga
fpga tutorial
fpga programming
fpga design
fpga4fun
fpga development board
fpga 2012
fpga basics
fpga bitcoin
fpga arcadefpga arcade
fpga architecture
fpga applications
fpga arduino
fpga adc
fpga arm
fpga advantage
fpga asic
fpga altera
fpga acceleration
fpga board
fpga basics
fpga bitcoin
fpga bitcoin mining
fpga bitcoin miner
fpga blog
fpga books
fpga breakout
fpga buy
fpga bitstream
fpga companies
fpga chip
fpga conference
fpga card
fpga cpu
fpga conference 2012
fpga cost
fpga core
fpga course
fpga central
fpga design
fpga development board
fpga dsp
fpga design flow
fpga development
fpga definition
fpga design process
fpga design engineer
fpga design engineer salary
fpga development board xilinx
fpga ethernet
fpga engineer
fpga emulator
fpga evaluation board
fpga engineer salary
fpga engineer resume
fpga encryption
fpga evolution
fpga evaluation kit
fpga editor
fpga for fun
fpga fft
fpga for dummies
fpga forum
fpga firmware
fpga fabric
fpga floating point
fpga from scratch
fpga fir filter
fpga for beginners
fpga guru
fpga gpu
fpga games
fpga getting started
fpga gate count
fpga guitar effects
fpga gameboy
fpga gps
fpga gates
fpga gigabit ethernet
fpga hdmi
fpga hobby
fpga hpc
fpga high frequency trading
fpga hardware
fpga hello world
fpga heatsink
fpga h 264
fpga hacking
fpga hardware acceleration
fpga interview questions
fpga image processing
fpga introduction
fpga ip
fpga ip cores
fpga intern
fpga intro
fpga i2c
fpga implementation
fpga in trading
fpga jobs
fpga journal
fpga jp morgan
fpga jobs san jose
fpga java
fpga jtag
fpga jobs in chicago
fpga jobs boston ma
fpga jobs huntsville al
fpga jobs virginia
fpga kit
fpga keyboard interface
fpga kalman filter
fpga kickstarter
fpga keyboard
fpga kit xilinx
fpga kit cost
fpga kit india
fpga karachi
fpga kit spartan 3e
fpga lut
fpga labview
fpga linux
fpga lookup table
fpga logic cell
fpga labview tutorial
fpga logic analyzer
fpga latch
fpga lvds
fpga lcd controller
fpga mining
fpga manufacturers
fpga mezzanine card
fpga miner
fpga memory
fpga market data
fpga market
fpga market size
fpga matlab
fpga market share
fpga news
fpga nes
fpga netezza
fpga neural network
fpga netlist
fpga national instruments
fpga network processor
fpga nios
fpga nic
fpga nintendo
fpga oscilloscope
fpga opencl
fpga open source
fpga overview
fpga oscillator
fpga os x
fpga open core
fpga on mac
fpga operating system
fpga os
fpga programming
fpga projects
fpga prototyping by verilog examples
fpga programming tutorial
fpga project ideas
fpga prototyping by vhdl examples
fpga programming language
fpga prototyping
fpga programmer
fpga pcie
fpga qpi
fpga quadrature decoder
fpga que es
fpga quant
fpga questions
fpga quadcopter
fpga quartus
fpga qam demodulator design
fpga quadrature encoder
fpga quadrature
fpga rtl
fpga resume
fpga replay
fpga random number generator
fpga reverse engineering
fpga research
fpga ram
fpga ray tracing
fpga reliability
fpga router
fpga starter kit
fpga simulator
fpga synthesis
fpga slice
fpga speed grade
fpga software
fpga spi
fpga speed
fpga supercomputer
fpga synthesizer
fpga tutorial
fpga trading
fpga training
fpga tutorial xilinx
fpga technology
fpga tools
fpga to asic conversion
fpga testing
fpga tcp stack
fpga timing closure
fpga uses
fpga usb
fpga uart
fpga usb interface
fpga usb core
fpga usb stick
fpga ucf
fpga ucf file
fpga update
fpga usb 3.0
fpga vs asic
fpga vs microcontroller
fpga vs cpld
fpga vs gpu
fpga vga
fpga vendors
fpga vs dsp
fpga vhdl
fpga verification
fpga vs microprocessor
fpga wiki
fpga with adc
fpga world
fpga wishbone
fpga wireless
fpga wifi
fpga web server
fpga with arm
fpga wall street
fpga works
fpga xilinx
fpga x86
fpga xilinx tutorial
fpga xilinx spartan 3
fpga xmc
fpga xilinx board
fpga xilinx spartan
fpga xilinix
fpga xaui
fpga xilinx spartan-3e
fpga youtube
fpga yorkshire
fpga yield
fpga you
fpga yuv to rgb
fpga yahoo groups
fpga york
fpga your pc
fpga yout
fpga you program
fpga z80
fpga z80 core
fpga zx spectrum
fpga zx81
fpga zurich
fpga zebu
fpga zx
fpga zero-crossing detector
fpga z-transform
fpga zealand