Skip to content

How to learn FPGA? basic steps for beginner


FPGA is a highly integrated chip, and its learning process requires both programming and figuring out hardware circuits and computer architecture. There are many knowledge and fundamentals involved, such as digital circuit basics, EDA principles, Verilog/VHDL programming language, FPGA algorithm design, FPGA simulation analysis, PCB hardware design, etc. If you do not arrange the learning content, the learning process will be very long and boring. Then how to learn FPGA on your own? Specifically, you should start from the following and aspects.

Learn HDL

First, you need to learn digital circuits. You can choose either verilog or VHDL. If you have a basic knowledge of C, it is recommended to choose VHDL, because verilog can be easily confused with C. If you can differentiate well, then you can also choose to learn verilog directly. If you can distinguish well, then you can also choose to learn verilog directly.Learn HDL
Next, find this example to copy the code. Because copying code can help familiarize you with syntax rules and compilers (compilers here are silicon compilers also called synthesizers. Common compilers are: Quartus, ISE, Vivado, Design Compiler, Synopsys’ VCS, iverilog, Lattice’s Diamond, Microsemi/Actel’s Libero, Synplify pro). Then you can mimic or mime to compile the code, and finally open the RTL diagram to see the final circuit effect.

In addition, note that you can prepare the official documents of Verilog or VHDL “verilog_IEEE_Official_Standard_Manual-2005_IEEE_P1364”, “IEEE Standard VHDL Language_2008” to prevent some syntax problems.

Complete small to medium scale digital circuit design

After the initial mastery of HDL, we can design some digital circuits independently, like traffic lights, electronic piano, DDS and so on. At this stage, what you have to do are:

Give you a specification or timing diagram, you can use HDL to design the circuit to achieve it. Here you need a development board, either Altera’s cyclone IV series, or Xilinx’s Spantan 6 (don’t buy a development board before you master HDL).Complete-small-to-medium-scale-digital-circuit-design
Also, you don’t have to download the code every time the compilation passes, you can use a simulation tool like modelsim simulation (or QuestaSim, NC verilog, Diamond’s Active-HDL, VCS, Debussy/Verdi, etc.) to simulate it first. If the simulation does not pass, there is no need to download the code.

Here it is enough to master the simple testbench first. The recommended textbook is WRITING TESTBENCHES Functional Verification of HDL Models.

Master design methods and design principles

If you find that the synthesized circuit, although correct, has many warnings. At this time, you have to learn to synchronize design principles, optimize the circuit, or consider some questions, such as whether to speed first or area first? How should the clock tree be designed? How to synchronize two heterodyne clocks? And so on. We recommend the textbook Altera FPGA/CPLD Design, Second Edition, both basic and advanced.

Learn to speed up compilation (incremental compilation, LogicLock), static timing analysis (timequest), and embedded logic analyzer (signaltap). If there is something you don’t understand, you can skip it for now, because this part still needs a sufficient amount of practice to have a deeper understanding.

Improve development efficiency

Because the editor function of Quartus and ISE is too weak, which affects the development efficiency, it is recommended to use the function of code snippet in Sublime text editor to reduce repetitive work.Improve development efficiency
Modelsim is also a common simulation tool. You have to learn TCL/TK to write your own DO files to make the simulation automated. The recommended textbook is “TCL/TK Introductory Classic”. In addition, you have to master GIT in order to improve the efficiency.

The file comparator Beyond Compare is also a relatively common tool. In addition, you can also use System Verilog instead of testbench. if you are doing IC verification, you must master System Verilog and Verification Methodology (UVM). Recommended textbooks are Writing Testbenches using SystemVerilog, The UVM Primer, and the System Verilog 1800-2012 Syntax Manual.

After mastering TCL/TK, you can learn virtual Jtag (ISE also has a similar tool) to make your own debugging tool.

Enhance theoretical foundation

By this time, you have learned to use the FPGA, but not quite understand the FIR filter, PID algorithm, OFDM, etc., which needs to strengthen the theoretical knowledge. What you need to learn is roughly divided into the following areas.Enhance-theoretical-foundation
Signal processing – signals and systems, digital signal processing, digital image processing, modern digital signal processing, blind signal processing, principles of adaptive filters, radar signal processing

Interface applications – e.g. UART, SPI, IIC, USB, CAN, PCIE, Rapid IO, DDR, TCP/IP, SPI4.2 (10G Ethernet interface), SATA, optical, DisplayPort

Wireless communication – signals and systems, digital signal processing, principles of communication, fundamentals of mobile communication, stochastic processes, information theory and coding

CPU design – principles of computer composition, microcontroller, computer architecture, compilation principles

Instrumentation – analog electronics, high frequency electronic circuits, electronic measurement techniques, principles and applications of intelligent instruments

Control systems – principles of automatic control, modern control theory, process control engineering, fuzzy controller theory and applications

Compression, coding, encryption – number theory, abstract algebra, modern coding techniques, information theory and coding, introduction to data compression, applied cryptography, audio information processing techniques, principles of digital video coding techniques

Choose one or several directions that interest you to study.

Learn to use MATLAB simulation

When designing FPGA algorithms, MATLAB may also be used, such as the coefficient matrix of CRC, digital filter coefficients, various tables and text processing, etc. In addition, MATLAB can also be used to debug HDL (the calculation results with MATLAB are compared with the step-by-step calculation with HDL, so you can know where to go wrong).Learn to use MATLAB simulation

Learn about Analog Circuit

The above is for the FPGA internal, but the signal out of the FPGA, we should do? So the next step is to learn analog electricity. For example: circuit analysis, analog electronics, high-frequency electronic circuits, PCB design, EMC, SI, PI, etc., to be able to design an FPGA development board with two DDR3. This step interested in the option to continue learning.


You may have read a lot of books and reviewed a lot of materials throughout the learning process above. However, practice is the fastest way to learn, and it is important to maintain a good code style, increase the readability of component example statements, draw flowcharts/timing diagrams, and write documentation habits. At the same time, you have to pay close attention to industry standards and keep learning and practicing.



Product Categories

Most Popular

Contact Us

IBE News

Related Posts


INDUSTRIES WE SERVE Click on each industry to learn more about how we make custom printed circuit board solutions for each market.Our industries served include

Read More »