circuit programming using a SPLD or CPLD as a 16 bit (addressable memory) microcontroller
16 bit addressable memory puts you out of CPLD (and definitely SPLD) range implementations. 

You can try this as a good starting point, with an 8bit cpu with 6 bit addressing as a starting point.
Read the pdf first to understand the design.

Rather than focus on the device, you need to understand the VHDL implementation of a cpu... the size of which will drive device selection. 

You might read this by Colin Riley ....a great walk through a design for a Xilinx FPGA cpu implementation.