Fundamentals of modern digital systems