A Step-by-Step Guide to Learning FPGA

A Step-by-Step Guide to Learning FPGA

The method to download materials is at the end of the article. FPGA Learning Materials This book mainly explains FPGA programming design, using a popular FPGA development board as an example to introduce learning FPGA and Verilog, as well as the hardware configuration of the FPGA development board. The focus is on the 16 typical … Read more

In-Depth Explanation of the SPI Communication Protocol and FPGA Implementation

In-Depth Explanation of the SPI Communication Protocol and FPGA Implementation

Click the blue text Follow us 1. Introduction to SPI SPI (Serial Peripheral Interface) is a synchronous, serial, full-duplex communication interface commonly used for data exchange between microcontrollers, sensors, memory, and other external devices. Examples include: EEPROM, RTC (Real-Time Clock), ADC (Analog-to-Digital Converter), DAC (Digital-to-Analog Converter), LCD, audio ICs, temperature and pressure sensors, MMC or … Read more

Verilog Functional Module – SPI Master and Slave (03) – Design Ideas and Code Analysis for SPI Slave

Verilog Functional Module - SPI Master and Slave (03) - Design Ideas and Code Analysis for SPI Slave

Introduction The previous article introduced the Verilog functional module – SPI Master, including design ideas and usage methods. This article designs a fully functional 4-wire SPI Slave using pure Verilog. Unlike some online simulations of slaves with high-frequency clock signals, the SPI Slave in this article derives its working clock from the master’s sclk, adhering … Read more

Why Learning C Language Before Verilog Leads to Difficulties in Students’ Thinking Transition?

Why Learning C Language Before Verilog Leads to Difficulties in Students' Thinking Transition?

In the curriculum of computer and electronic engineering majors in universities, C language is set as the introductory programming course, while Verilog is taught as the hardware description language course. This seemingly reasonable teaching sequence is actually producing a batch of hardware engineers who are constrained by a “software thinking” mindset. The cognitive inertia brought … Read more

What is the Three-Year Foundation in the FPGA Industry?

What is the Three-Year Foundation in the FPGA Industry?

Hello everyone, today we are going to discuss a common topic in the FPGA community – the “three-year foundation.” Yes, that infamous “three-year rule” that terrifies countless beginners and makes experts smile. Some say it’s a superstition, while others claim it’s a truth. So, the question arises: is this concept reliable? Today, we will delve … Read more

Verilog Functional Module – SPI Master and Slave (02) – Design Concepts and Code Analysis for SPI Master

Verilog Functional Module - SPI Master and Slave (02) - Design Concepts and Code Analysis for SPI Master

Introduction The previous article introduced the four operating modes of SPI and their timing characteristics. I believe everyone has grasped the core principles of SPI communication. This article designs a fully functional 4-wire SPI master using pure Verilog, detailing the module coding concepts and usage precautions, and finally sharing the source code. 1. Module Functionality … Read more

Digital IC Design – Detailed Explanation of Finite State Machines

Digital IC Design - Detailed Explanation of Finite State Machines

Click the blue text to follow us A state machine is a commonly used implementation method in digital IC development using Verilog. A state machine is a universal model for sequential circuits, and any sequential circuit can be represented by a state machine. In the actual digital circuit design process, the choice between using sequential … Read more

FPGA Design of an RTL-Level Robot Motor Controller

FPGA Design of an RTL-Level Robot Motor Controller

Using Verilog, an RTL-level design of a motor control system for two motors with encoders has been implemented in an FPGA. Introduction With the help of the hardware description language (HDL) Verilog and the AMD Vivado design suite, an RTL design of a controller system for two motors with encoders has been implemented in the … Read more

FPGA Implementation of UART (Including Source Code)

FPGA Implementation of UART (Including Source Code)

1. What is UART? UART, as one of the three commonly used low-speed buses (UART, SPI, IIC), plays an important role in designing various communication interfaces and debugging. UART stands for Universal Asynchronous Receiver/Transmitter, which is mainly used for serial data transmission between devices and operates in a full-duplex mode. When sending data, it converts … Read more