Semiconductor devices fundamentals