Digital Design: A Systems Approach