programming Xilinx and Altera FPGA and CPLD