First Steps in RISC-V Microcontroller Development

Selection of Hardware and Development Tools In this second article of the series, I will begin with the first steps in developing a RISC-V 32I-based microcontroller. For this, I have decided to use a Tang Nano 20K as the implementation platform. However, depending on resource usage, I might consider switching to a Tang Nano 9K if it meets the design requirements. Since the selected FPGA belongs to the Tang Nano family, this limits the development environment to compatible tools....

February 19, 2025 · 2 min · Fabian Alvarez

Implementing a Register File for a RISC-V 32I Processor on FPGA

Implementing a Register File for a RISC-V 32I Processor on FPGA This article is part of our series on designing and implementing a RISC-V 32I processor on the Tang Nano 20K FPGA. Today we’ll dive into an essential component of any processor: the register file. We’ll explore what it is, why it’s critical to RISC-V architecture, and how to efficiently implement it in Verilog. Additionally, we’ll discuss key optimizations to ensure robustness and compatibility with real hardware....

March 16, 2025 · 3 min · Fabian Alvarez

Implementing the Control Unit of a RISC-V 32I Processor on FPGA

Implementing the Control Unit of a RISC-V 32I Processor on FPGA We continue our series on building a RISC-V 32I processor using the Tang Nano 20K FPGA. Today, we’ll discuss the Control Unit, a key component that brings our processor to life. We’ll explain it clearly and simply, then implement the code together in Verilog, detailing each step for clarity. What Exactly is the Control Unit? The Control Unit is like the conductor of an orchestra—it ensures all parts of the processor work in harmony....

March 16, 2025 · 5 min · Fabian Alvarez