Fundamentals of semiconductor devices