Designing Embedded Hardware by John Catsoulis