Fpgas Are Programmable Semiconductor Devices That Are Based Around A
Fpgas Are Programmable Semiconductor Devices That Are Based Around A
Xilinx offers the broadest lineup of FPGAs providing advance features, low-power, highperformance, and high value for any FPGA design. Below is an overview of Xilinx leading
FPGA families.
Features
Artix-7
Kintex-7
Virtex-7
Spartan
-6
Virtex-6
Logic Cells
215,000
480,000
2,000,000
150,000
760,000
BlockRAM
13Mb
34Mb
68Mb
4.8Mb
38Mb
DSP Slices
740
1,920
3,600
180
2,016
DSP
Performance
(symmetric
FIR)
930GMACS
2,419GMAC
S
Transceiver
Count
16
32
96
72
Transceiver
Speed
6.6Gb/s
12.5Gb/s
28.05Gb/s
3.2Gb/s
11.18Gb/s
Total
Transceiver
211Gb/s
Bandwidth (full
duplex)
800Gb/s
2,784Gb/s
50Gb/s
536Gb/s
Memory
Interface
(DDR3)
1,066Mb/s
1,866Mb/s
1,866Mb/s
800Mb/s
1,066Mb/s
PCI Express
Interface
x4 Gen2
Gen2x8
Gen3x8
Gen1x1
Gen2x8
Analog Mixed
Signal
(AMS)/XADC
Yes
Yes
Yes
Yes
Configuration
AES
Yes
Yes
Yes
Yes
Yes
I/O Pins
500
500
1,200
576
1,200
I/O Voltage
1.2V, 1.35V,
1.5V, 1.8V,
2.5V, 3.3V
1.2V, 1.5V,
1.2V, 1.5V,
1.8V, 2.5V,
1.8V, 2.5V
3.3V
Yes
EasyPath
Cost Reduction Solution
Yes
Yes
Due to their programmable nature, FPGAs are an ideal fit for many different markets. As the
industry leader, Xilinx provides comprehensive solutions consisting of FPGA devices,
advanced software, and configurable, ready-to-use IP cores for market and applications such
as:
By Market
By Technology
Industrial
Audio
Automotive
Medical
Security
Broadcast
Wireless Communications
Consumer Electronics
Wired Communications
The design environment and supporting resources are a critical components of the FPGA
design environment, as they allow for completing your design quickly and accurately. Xilinx
offers the industry's most comprehensive solution, consisting of:
Resource
Description
Boards and Kits Xilinx development kits provide out-of-the box design solutions
that help evaluate and architect your design. Xilinx also offers
Targeted Design Platforms which comprise fully integrated and
tested hardware, software and IP, and application framework
along with the appropriate design environment.
Documentation Hundreds of application notes, data sheets and reference
designs are available to provide you with the technical support
you need to start your design.
Intellectual
Property
Software and
Design Tools
An integrated suite of software tools provide a seamless start-toend design flow from design entry to configuration
(programming the FPGA). Optional add-on software tools are
available for your advanced designs to enable features such as
custom floorplanning and unique in-chip verification using
ChipScope Pro software.
Training
Titanium
Dedicated
Engineering
So what exactly is an FPGA? You may have heard the term thrown around, or maybe you
have no idea what I'm talking about. Either way, FPGAs (Field Programmable Gate Arrays)
are amazing devices that now allow the average person to create their very own digital
circuits. The cost has come down enough that you don't have to be a huge company to get
your hands dirty.
You can think of an FPGA as a blank slate. By itself an FPGA does nothing. It is up to you
(the designer) to create a configuration file, often called a bit file, for the FPGA. Once loaded
the FPGA will behave like the digital circuit you designed!
One of the reasons FPGAs are so awesome is that unlike an ASIC (Application Specific
Integrated Circuit) the circuit design is not set and you can reconfigure an FPGA as many
times as you like! Creating an ASIC also costs potentially millions of dollars and takes weeks
or months to create. That's not exactly hobbyist friendly.
FPGA vs Microcontroller
When I first learned about FPGAs, all I really knew about before was microcontrollers. So
first it is important to understand that they are very different devices. With a microcontroller,
like an Arduino, the chip is already designed for you. You simply write some software,
usually in C or C++, and compile it to a hex file that you load onto the microcontroller. The
microcontroller stores the program in flash memory and will store it until it is erased or
replaced. With microcontrollers you have control over the software.
FPGAs are different. You are the one designing the circuit. There is no processor to run
software on, at least until you design one! You can configure an FPGA to be something as
simple as an and gate, or something as complex as a multi-core processor. To create your
design, you write some HDL (Hardware Description Language). The two most popular HDLs
are Verilog and VHDL. You then synthesize your HDL into a bit file which you can use to
configure the FPGA. A slight downside to FPGAs is that they store their configuration in
RAM, not flash, meaning that once they lose power they lose their configuration. They must
be configured every time power is applied.
That is not as bad as it seems as there are flash chips you can use that will automatically
configure the stored bit file on power up. There are also some development boards which
don't require a programmer at all and will configure the FPGA at startup.
With FPGAs you have control over the hardware.
The Possibilities
With a typical microprocessor, you have dedicated pins for specific features. For example
there will be only two pins on some microprocessors that are used as a serial port. If you want
more than one serial port, or you want to use some other pins, your only solution besides
getting a different chip is to use software to emulate a serial port. That works fine except you
are wasting valuable processor time with the very basic task of sending out bits. If you want
to emulate more than one port then you end up using all your processor time.
With an FPGA you are able to create the actual circuit, so it is up to you to decide what pins
the serial port connects to. That also means you can create as many serial ports as you want.
The only limitations you really have are the number of physical I/O pins and the size of the
FPGA.
Just like microcontrollers that have a set amount of memory for your program, FPGAs can
only emulate a circuit so large.
One of the very interesting things about FPGAs is that while you are designing the hardware,
you can design the hardware to be a processor that you then can write software for! In fact,
companies that design digital circuits, like Intel or nVidia, often use FPGAs to prototype their
chips before creating them.
http://in.mathworks.com/solutions/fpgadesign/solutions.html
http://in.mathworks.com/images/responsive/supporting/solutions/fpgadesign/fpga-asic-design.svg
You can generate synthesizable HDL code for FPGA and ASIC implementations in a few
steps:
Using HDL Coder, you can automatically convert MATLAB code from floating point to fixed
point and generate synthesizable VHDL and Verilog code. With this capability, you can
model your algorithm at a high level using MATLAB constructs and System objects while
utilizing options for optimizing generated HDL code. You can use the library of ready-to-use
logic elements, such as counters and timers, which are written in MATLAB.
35:08
You can use HDL Coder to generate VHDL and Verilog code from Simulink and Stateflow.
With Simulink, you can model your algorithm using a library of more than 200 blocks. This
library provides complex functions, such as the Viterbi decoder, FFT, CIC filters, and FIR
filters, for modeling signal processing and communications systems and generating HDL
code. You can use HDL Coder for IP core generation targeting Altera and Xilinx FPGAs and
SoC FPGAs.
1:55
Using HDL Coder, you can program FPGAs, including devices from Altera, Xilinx, and
other FPGA vendors. This capability helps you quickly prototype your design on FPGA
hardware. The Workflow Advisor in HDL Coder integrates with Xilinx ISE and Altera
Quartus II design suites to automatically program your FPGAs from within MATLAB and
Simulink.
You can use HDL Coder to prototype your algorithm on a variety of Xilinx and Altera FPGA
development boards. Additionally, you can use target-independent HDL code to program
FPGA devices from vendors like Microsemi or Lattice Semiconductor.
57:15
Using HDL Coder and HDL Verifier for FPGA and ASIC Designs
You can reuse your MATLAB and Simulink test bench to verify your HDL code using co
simulation and FPGA-in-the-loop functionality provided by HDL Verifier.
When used with HDL Verifier, HDL Coder automatically generates co simulation and FPGAin-the-loop models to accelerate the workflow for FPGA or ASIC design verification. This
approach eliminates the need to manually transfer test vectors and helps identify errors earlier
in the ASIC design process.
1:50
youtube
https://www.youtube.com/watch?v=8POZhFHxBLs
www.eecg.toronto.edu/EECG/RESEARCH/FPGA.html
Table of Contents:
1. Field Programmable Gate Array (FPGA)
2. Configurable Logic Blocks
3. I/O Block & Routing Matrix
4. Clock Distribution
FPGA Design
Todays FPGA design teams require innovative solutions that foster team productivity and enable
rapid deployment at every stage of design development - from Design Entry to Place and Route.
Aldec offers the industrys most comprehensive, all-in-one platform for FPGA design development to
meet the increasing demands of the FPGA development process:
Design: The FPGA design process must be able to incorporate different entry methods (graphical and
textual) to provide users the flexibility to design their device from various starting points (HDL, Block
Diagram, and Finite State Machine). Every stage in the design process utilizes more than several
EDA tools, which must be able to be integrated into a single platform to mitigate complexity for the
user. The entire design process must then have Project Management tools to allow team-based
design development which can utilize revision control tools.
Debug: Debugging tools must be able to support mixed language designs, and provide increased
observability of circuit behavior at each stage of the development process.This allows designers the
ability to cross-probe between signals in the RTL design and simulation results ensuring proper
functionality. Debug tools must also be able to quickly locate any sources of unexpected behavior, and
be able to report them to the user in timely manner.
Document: All aspects of the development process must be able to be documented for later review,
reuse, and/or archiving. This improves communication between multi-team design environments
which can have several sources for a single project.