Altera® FPGA Basics and Getting Started
FPGA Basics
Background Knowledge: Integrated Circuits and Logic Design
Integrated circuits (ICs) are usually called “chips.” They implement very small electronic circuits on a silicon substrate. CPUs, GPUs, and FPGAs are all ICs. Most ICs implement logic design. Electrical signals enter an IC and are interpreted as a “0” or as a “1” based on their voltage level. You can look at different signals to gather many values, or you can look at the same signal many different times and see how it changes.
Logic design is designing circuitry to make decisions based on those “0” and “1” values. A logic design is made up of logical gates to compare two or more different values – to answer questions like: “Are both values the same?” or “Are both values equal to 1?” In addition, structures called “flipflops” space out these questions in time. Modern logical designs have thousands to trillions of logical gates.
A good analogy is when you hear piano music. Each count of time, the musician determines what note you will hear. Each decision is simple, but a beautiful song requires many decisions and much skill. A series of good logic designs in an IC can produce amazing computational answers!
What is an FPGA?
FPGA is an acronym for Field Programmable Gate Array. FPGAs are semiconductor ICs where a large majority of the functionality inside the device can be changed; changed by the design engineer, changed during the PCB assembly process, or even changed after a product is deployed.
The changes are produced by changing what electrical inputs and outputs are being received, what logical gates and flipflops are implemented, and how those gates are being connected together.
An FPGA is made up of a grid of configurable logic, known as adaptive logic modules (ALMs), and specialized blocks, such as digital signal processing (DSP) blocks and random-access memory (RAM) blocks. These programmable blocks are combined via configurable routing interconnects to implement complete digital circuits.
Who Uses FPGAs?
Developers
Developers use FPGAs in the electronics industry for many different applications.
Researchers
Researchers use FPGAs to explore logic design to solve difficult problems and implement new algorithms.
Students
Since FPGAs can be programmed again and again, they are an ideal way to learn logic design.
Hobbyists
Like students, often hobbyists have the desire to learn logic design, and FPGAs are perfect for this.
Why Would You Use an FPGA?
The benefits of using an FPGA include:
Flexibility
FPGA Functionality can change upon every power-up of the device.
Acceleration
Get products to market quicker and/or increase your system performance.
Integration
Today’s FPGAs include on-die processors, transceiver I/O’s at 28 Gbps (or faster), RAM blocks, DSP engines, and more.
Total Cost of Ownership (TCO)
While ASICs may cost less per unit than an equivalent FPGA, building them require a non-recurring expense (NRE), expensive software tools, specialization design teams, and long manufacturing cycles.
How Do You Use an FPGA?
Design Methodology |
Description |
Primary Tool Used |
---|---|---|
Traditional FPGA Design |
This methodology makes use of a hardware description language (HDL) to describe a design, and an Electronic Design Automation (EDA) tool to turn your design description into an FPGA implementation. |
|
High Level Design |
This methodology makes use of a higher-level language, usually Data Parallel C++ (DPC++) to describe a design. To use only DPC++, you must use a supported board which is plugged into a computer with an x86 host. You may mix this methodology with traditional FPGA design for better productivity. |
|
Use FPGA Design Services |
If you would like to use an FPGA in your product, but you do not have the expertise to do the design yourself, Intel has many partners who offer FPGA Design Services. |
Getting Started
Training
Intel FPGA Technical Training offers two courses especially made for the beginner FPGA learner. Choose your path depending on your learning style. There are no costs to attend Intel FPGA Technical Training.
Beginner Workshop for Altera® FPGAs
Do you like to learn with an instructor? Attend this 3-hour hands-on workshop.
Beginner Altera® FPGA Designer
Are you a self-led learner? This curriculum will get you started!
Intel® FPGA Technical Training Catalog
This catalog lists all the courses available for beginners to advanced users.
Other Getting Started Resources
Altera University Newsletter
Each month, this newsletter contains the latest developments, events, and no-cost classes. Subscribe now.
FPGA Software Download Center
Download the software to start your own FPGA design. No license is required for the Lite version. Download it here.
FPGAcademy Tutorials
These tutorials are perfect for those needing more background in digital logic design. Visit them now.
Keep Learning
Additional Beginner Resources |
|
---|---|
Intel FPGA Technical Training | Intel offers no-cost technical training to learn to use Intel FPGAs. Learn advanced topics such as timing closure methodology and Platform Designer. |
Intel FPGA Academic Program | We offer resources to help teachers and professors craft classes for engineering and computer science courses. |
FPGA Forum at Intel Communities | Get support and converse with those in the FPGA Developer community. |
DE-10 Lite Board | This board is a good choice for beginners. |
Intel FPGA Design Examples | This repository of design examples for Intel FPGAs includes design examples for all levels of designers. |
Intel FPGA support resources | This page leads to all of the support resources available to Intel FPGA developers. |