Lecture notes for Digital Logic Design and Programming for Engineering's students