Close
0%
0%

Play FPGA like Arduino

Bring open source soft-core MCU into FPGA,
enjoy flexibility and customization like no other

Similar projects worth following
As we know, ARM processors are everywhere. The ARM Cortex-M MCUs are widely adopted in embedded systems. However, in addition to this usual approach, the semiconductor industry's latest juggernaut has made it a viable option, both technically and financially, to embed soft-core MCUs directly into Programmable Logic Chips (FPGA). The latter can be a good alternative to ARM's dominance, along with the unrivaled flexibility that standalone MCUs cannot offer.

For the open source community, this approach calls for two things:

(1) An open source MCU core that is not burdened by license or patents, and has a large ecosystem (user community, mature tool chains etc.) to make it acceptable to mainstream design.

(2) A platform that hosts the soft-core MCU in (1). This platform shall be open source, versatile, expandable and software friendly, with DFM in mind. So that it can serve as a core module and easily morph into various products.

And here comes PulseRain M10 board!

INTRODUCTION

The PulseRain M10 Board is a FPGA platform that puts soft-core MCU into the FPGA, while presents a software interface and form factors like Arduino. It is an open source answer to the dominant proprietary solutions in the embedded systems, and it also offers the flexibility that standalone MCUs can not match. The great features it bears are as following:

  • Open Source Hardware

The schematic and layout are designed with Eagle CAD. The PCB design files can be found on GitHub, and they are licensed under "Creative Commons Attribution Share-Like 3.0".

The processor core and peripheral libraries (in System Verilog) are licensed under GPLv3. And for those who want to use them in ways that are incompatible with the GPLv3, we also offer commercial license instead.

All the firmware(sample code, libraries in C/C++) are licensed under LGPLv3 (GNU Lesser General Public License).

All the desktop software (Python script and utilities) are licensed under Apache License Version 2.0.

And the fine print of the license agreement can be found here, which is the official document that carries legal weight.

  • Versatile

This platform has the bells and whistles for common embedded applications, such as:

    • 8 channel onchip ADC in FPGA with temperature sensing diode
    • Onboard MicroSD socket. SD card controller as a peripheral in FPGA. MCU driver supports FAT32 file system.
    • 128KB onboard RAM (Microchip 23LC1024). 40KB onchip RAM for code/data in FPGA.
    • Silicon Lab Si3000 Voice Codec.
    • Switchcraft 3.5mm Phone Jack for Speaker. Onboard Microphone from CUI
    • FTDI FT232R for USB/UART
    • 3.3V / 5V IO support with Texas Instrument TXS0108E Voltage Translator.
    • PIHER 10mm Carbon Potentiometer
    • 2 Push Buttons, 3 LEDS (Blue, Red and Green)
    • DIODES, Inc. AP3429/A 1.0MHz, 2A DC-DC Buck Converter
    • 14 bit of Digital IO on Arduino Connector, 10 Position JTAG Connector that can be used for GPIO as well.
    • I2C / SPI / PWM Peripherals in FPGA
  • Expandable

M10 board's form factors are compatible with Arduino Shields in connector and mounting hole positions. The onboard FPGA (Altera 10M08SAE144C8G) can be migrated to a device as big as 25K LE, 675Kb BRAM, or as small as 4K LE, 189 Kb BRAM.

And all the peripherals are connected to the processor core through the open source Wishbone FASM bus interface, which gives users the greatest choice possible to add new peripherals. In this way, the hardware can be tailored to users' specific application.

  • Software Friendly

Arduino IDE can be used as GUI based development environment. Starting V1.5, Arduino IDE has support for 3rd party hardware integration. All you have to do is to point the "Additional Boards URL" to our GitHub repository in "File/Preference/Additional Boards URL". And then install the board support package in "Tools/Boards/Boards Manager".

  • DFM (Design for Manufacturing)
    • Regular shape (2.1 inch x 3.2 inch rectangular shape)
    • Pass DRC: Minimum Trace Width: 8 mil, Minimum Trace Clearance: 8 mil, Trace to Board Edge Clearance: 8 mil, Minimum Via Drill Diameter: 10 mil, 62 mil board thickness.
    • No Leadless Package (The FPGA is in TQFP 144 package).
    • ENIG (Electroless Nickel Immersion Gold) Finish for PCB fabrication.

HARDWARE ARCHITECTURE

The architecture of M10 board is illustrated in the figure below. The FPGA we choose is Altera 10M08SAE144C8G that features 8K LE, 378Kb Block RAM, 172 KB flash memory, a 8-channel A/D converter with temperature sensing diode. Out of the box, we have pre-loaded this FPGA with our FP51-1T MCU that runs at 96MHz. And other open source processor cores (such as RISC-V E variant) are also on the road map thanks to the programmable nature of FPGA.


SOFTWARE ARCHITECTURE

People often say Hardware is the brawn while Software is the brain. Early we mentioned that M10 board will be software friendly (aka smart :-). In this regard, we have come up with the following:

  • We choose Arduino IDE to be our GUI based development environment.
  • We have included SDCC in our BSP since it is an open source compiler. And we have also offered our enhancement on...
Read more »

M10_LIcense.pdf

PulseRain M10 Designs - License Agreement

Adobe Portable Document Format - 1.32 MB - 04/30/2017 at 04:25

Preview Download

PulseRain_M10_BOM.xlsx

Bill of Material in Microsoft Excel 2016 format.

sheet - 23.74 kB - 03/24/2017 at 04:43

Download

  • 2 × CRCW06030000Z0EAHP Resistors (Fixed) / Zero Ohm Jumpers
  • 5 × VJ0603Y104JXJPW1BC Capacitors / Ceramic, 0.1 u
  • 6 × CRCW0603100RFKEA Resistors (Fixed) / Thick Film Surface Mount, 100 ohm
  • 6 × VJ0603Y102JXJPW1BC Capacitors / Ceramic, 1000p
  • 6 × CRCW0603100KFKEA Resistors (Fixed) / Thick Film Surface Mount, 100 K

View all 52 components

View all 8 project logs

Enjoy this project?

Share

Discussions

TegwynTwmffat wrote 04/02/2017 at 13:10 point

I want one of these - what's the approximate retail cost based on 1,000 units?

  Are you sure? yes | no

Changyi Gu wrote 04/03/2017 at 07:36 point

Thanks for your strong interest in this project! The PCB fabrication/assembly is currently in the pilot run for production. Like most other hardware products, there could be a variety of factors weighing in as the volume ramps up. That's why I hesitate to give your a number right now. 

Our plan is to start a crowd-funding campaign when we see the green light for volume production (Hopefully in a few months). And we shall have a better idea for pricing at that point. Stay tuned, please :-)

  Are you sure? yes | no

Ember Leona wrote 03/31/2017 at 23:04 point

Im am confused by the project. Its like Orgonian to me.

  Are you sure? yes | no

Changyi Gu wrote 04/01/2017 at 06:27 point

Think of it as an Arduino. But this time, instead of using an off-the-shelf Micro-controller like ATmega328P, you get to have a custom-made micro-controller with all the peripherals tailed to your application. 

  Are you sure? yes | no

Yann Guidon / YGDES wrote 03/24/2017 at 03:00 point

This reminds me of the Actuino project, that I started about 6 years ago, since then discontinued...

Why use a 8051 core ?

  Are you sure? yes | no

Changyi Gu wrote 03/24/2017 at 04:30 point

Thanks for asking. There are several possible options for the soft-core MCU:

(1) AVR. 

(2) 8051

(3) RISC-V

(4) LEON

For option (1), AVR is a nice choice. However, AVR is solely owned my Atmel (now Microchip). And ATMEL has never granted any license to anyone to implement AVR instruction set, and there could be potential patent issues as well. Although there are open source AVR cores available, it does not mean those implementations have the blessing from Atmel (Microchip). That's why AVR is a no-go.

For option (2), 8051 instruction set has been around for so long that it has already fallen into public domain. That's why you can find a plethora of vendors that supply various enhanced 8051 (As of today, there are more than 70 of them.) 8051 is widely adopted, has a large ecosystem, and is not burdened by license/royalty/patent to implement. That's why we pick it as a good choice for 8-bit implementation.

Option (3) is also a good option. And it is on our road map for 32-bit implementation.

Option(4) is a no-go, although LEON is also an open source core. That is because (A) Sparc V8 is not so popular, and (B) You still need to apply for a license if you want to put LEON into commercial use.

BTW, our 1T  8051 implementation can reach very high clock rate (more than 100MHz on Altera C8 grade device). Most other implementation will fall flat at 50~60 MHz. And the Arduino UNO is only running at a clock below 20MHz.

With a software library to support Arduino language, I think our offering is a good alternative to standard alone MCU.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates