Just a note to say that, although there haven’t been any posts, mcx16 still works fine with the latest versions of Vivado, and is used for DAC/ADC/RS232/etc communication and configuration in most of my FPGA projects.
Kintex 7 support has been added for the mcx16 JTAG loader, along with some BSCAN fixes for Spartan 3 devices.
I found I was doing a lot of sequential SRL/SRR instructions for processing nibbles and bytes, so I added an optional barrel shifter to mcx16. Set USE_BARREL to enable it, and you can then use BRL and BRR to rotate a register left or right up to 16 bits. It adds a few more slices to Spartan 6 usage, but speed is still above 100MHz for -3 speed grades in single cycle mode. This release is tagged R1c.
I fixed the assert in mcx16uart to allow for a CLK that’s exactly 16 x the baud rate. The zip files have been updated.
A few updates have been made to mcx16 since the original post, including a few bugfixes for implementation errors in certain instances, and Virtex 4 support in mcx16loader. Also, the captcha plugin I was using for WordPress apparently broke at some point, so I’ve replaced it. My apologies to anyone who tried to register in the interim.
I’ve written a free 16-bit microcontroller in VHDL called mcx16. It was inspired by PicoBlaze, and shares a similar instruction set. Check it out: