digital signal processing digital communications information security microelectronics fpga programming vhdl programming circuit simulation microelectronics and semiconductor engineering c digital electronics embedded systems c++ microcontroller programming