Digital Systems: Hardware Organization and Design