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 features the following:
- Open Source Hardware
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.
And all the software (sample code, libraries in C/C++) are licensed under LGPLv3 (GNU Lesser General Public License).
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
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.
- 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.
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 processor cores (such as RISC-V E variant) are also possible in the future thanks to the programmable nature of FPGA.
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 top of it, along with our core library. With our BSP mapping out all the ugly details, the developers can simply use Arduino language to do the coding. This new approach has streamlined the developing process and saved developers from those idiosyncrasies that traditional approach will have to face.
- Unlike Arduino that uses software bootloader for device programming, we have OCD (onchip debugger) built-in with the MCU core. This approach not only saves the previous onchip RAM, it also makes the device programming more reliable and robust.
- The biggest benefit of using FPGA with soft MCU core is the flexibility....