This course introduces the basic theory and design skills for FPGA-based design. The course aims to equip the students with enough knowledge and skills for the real world engineering using FPGA devices. Major topics include introduction to reconfigurable computing, hardware description language, FPGA device, and mapping flow. Students will gain hands-on experiences of the complete FPGA-based design cycle, from design specification, synthesis, implementation and simulation in this course.