Logic and computer design fundamentals