
This is also a series of articles, stemming from previous discussions with fans in the comments about the efforts made abroad for FPGA development or entry-level engagement.
Each article will introduce a specific FPGA development board, focusing on the development methods prepared for the board (which are quite different from those in China).
Today’s main character – PulseRain M10: Playing with FPGA like Arduino. The core vision – to develop FPGA as easily as Arduino.
Hardware Introduction
Over the past decade, FPGA devices have gradually become mainstream. Nowadays, makers no longer need to use hard-core MCUs but can customize all peripherals and embed soft-core MCUs within FPGAs. The PulseRain M10 was born for this purpose, featuring an open-source design that delves deep into the silicon layer!
The M10 development board adopts a unique technical solution, embedding an open-source soft MCU core (96MHz) into the Intel MAX10 FPGA, while providing a software interface compatible with Arduino and a rich variety of specifications. Additionally, it is equipped with onboard resources such as a voice codec, microSD card slot, SRAM, on-chip ADC, and dual IO voltage.


The architecture of the M10 development board is shown in the figure below. The selected FPGA is Altera 10M08SAE144C8G, which features 8K LE, 378KB Block RAM, 172KB flash memory, and an 8-channel A/D converter with a temperature sensor diode. It comes ready to use, with the FP51-1T MCU pre-installed at a running frequency of 96MHz (open-source address: https://www.pulserain.com/).


Software
It is often said that hardware is the muscle, while software is the brain. Therefore, we propose the following points:

- Choose Arduino IDE as the GUI-based development environment. Starting from V1.5, Arduino IDE supports third-party hardware integration. Simply point the “Additional Board Manager URLs” in “File/Preferences” to the M10 GitHub repository. Then install the board support package in “Tools/Board/Board Manager”.
https://github.com/PulseRain/Arduino_M10_IDE
-
Since SDCC (http://sdcc.sourceforge.net/) is an open-source compiler, it has been integrated into the BSP. Additionally, enhanced features based on SDCC and core libraries are provided. The BSP corresponds to all the tedious details, allowing developers to easily code using Arduino language. This new approach simplifies the development process, freeing developers from the challenges they might face with traditional methods.
-
Unlike Arduino, which uses a software bootloader for device programming, we have built in an OCD (On-Chip Debugger) within the MCU core. This method not only saves valuable on-chip RAM but also makes device programming more reliable and stable.
-
The greatest advantage of using an FPGA with a soft MCU core is flexibility. The hardware can be customized for specific applications. The FPGA peripheral library supports various devices, such as serial SRAM, voice codecs, microSD cards, etc. Like other Arduino development boards, we also provide software libraries through GitHub, along with an easy-to-use interface.
Detailed usage tutorials can be found in the video below:
For more resources, please check:
https://www.pulserain.com/m10

Conclusion
First of all, this development board is fully open-source in both hardware and software, and the idea seems to be to replicate the success of Arduino.
Engineers abroad have always had a “wild” approach to developing boards, continuously innovating development methods. However, the innovation in this article is only at the top level and has not yet reached the bottom level, so today is just an appetizer, with more in-depth development methods to look forward to in the future~
If you have any thoughts or opinions on the development methods introduced today, feel free to leave comments for discussion.