Digital Logic Design and Analysis