MPX Core on Papilio One 250K FPGA Board

papilio_board

‘MPX’ is a 32-bit soft-core pipelined RISC processor written in Verilog.
The processor implements the majority of MIPS-I™ ISA excluding the formally patented unaligned load/store instructions & also the hw multiplier / divider (mult, multu, div, divu) instructions.

Missing instructions can be resolved at compile time using a modified build of GCC or by generating traps at runtime on encountering the unsupported instructions.

The Papilio One 250K FPGA board is an excellent low cost development board containing a Xilinx XC3S250E and plenty of I/O ports (there is a XC3S500E version available too).

The Papilio XC3S250E port of MPX contains a Bootloader, support for GPIOs, UART & timers, and runs at 40MHz.

The source, example FPGA project (in VHDL) & FPGA bit files are available at OpenCores

The core was also used in the FPGA-Audio MP3/WAV player project here

FPGA Audio

Just started writing up my FPGA based MP3 player project.

See here

Building blocks

As I titled this site as Ultra-Embedded – Embedded build blocks, I thought I had better add some!

Here is a useful & simple doubly linked list implementation. It has the usual API for insert_first/last/before/after, remove etc.

The code does not have any external dependencies which can be handy for embedded systems.

Simple Double Linked List Header

FAT16/32 Library for Embedded Systems

Added FAT16/32 IO Library article & download…

Continue reading ‘FAT16/32 Library for Embedded Systems’