Digital Systems Testing and Testable Design by Arthur D. Friedman