mcx16 is a free 16-bit microcontroller written in VHDL.  It was inspired by PicoBlaze, written by Ken Chapman at Xilinx.  mcx16 is tested on Xilinx FPGAs, though the core VHDL should be portable.  Some of mcx16’s features:

  • 16-bit addresses, data, port addresses and ports
  • Can use 1 (non-pipelined) or 2 (pipelined) clocks per instruction
  • 74MHz (74 MIPS) on a Spartan 3 XC3S200AN-4 non-pipelined, and 119 MHz when pipelined (59 MIPS), using 110/114 slices (area optimized, 16 registers, 32 deep stack, 512 word program, distributed stack)
  • 107 MHz (107 MIPS) on a Spartan 6 XC6SLX9-2 non-pipelined, and 166 MHz when pipelined (83 MIPS), using 46/41 slices
  • Pipelining, register count (1 – 256), stack depth (1 – 65536), and program memory size (1 – 65536 instructions) are all user-set generics
  • Cross-platform assembler
  • Optional JTAG loader using Kris Chaplin’s technique and cross-platform Xilinx tools

You can view the documentation alone, or download the complete package. Enjoy!

Documentation: mcx16.pdf

Complete package:

An example of mcx16 built on the Avnet Spartan-6 LX9 MicroBoard is also available:

Demo documentation: mcx16s6mb.pdf

Demo package:


2013-06-06: Release 1e, added Kintex 7 support
2012-08-23: Release 1c, added barrel shifter, optional JTAG cable speed
2011-12-23: Updated packages and documentation with Virtex 4 support
2011-11-24: Updated packages with newer mcx16uart.vhd (changed while loop to a for loop to avoid implementation errors)
2011-11-23: Updated with corrected mcx16s6mb.vhd (a stray process label was removed).

  2 Responses to “mcx16”

  1. Hi,

    Great design
    I’m looking forward to use it in a graphic accelerator for LCD display


  2. Great work Greg, really appreciate your effort on this. Keep up the good work.

    Best Regards,


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.