SMS: Programmable logic fundamentals using Xilinx ISE and CPLDs /