Digital Design: Basic Concepts and Principles