This course aims at giving the bases required for the understanding of how a computer is able to performs program interpretation. In order to do so, it relies on the explanation of digital circuit behavior, that allows firstly the actual implementation of boolean logic and memory elements, and secondly defines the way to build complex functions using elementary functions. These concepts are developed in order to analyse and design simple processor behavior, and instruction set interpretation.
This course is by nature practical, and contains labs.
The basic concepts of digital design are introduced through the presentation of logic gates, small elements capable of doing boolean opeations. Based on this, combinational and sequential circuits, elementary blocks necessary for all designs, are detailed. The notion of sequence is then introduced using the finite state machine concept, and the way to realize it in hardware, called synthesis, is detailed. The way to design complex circuits, including a finite state machine connected to functional units is also presented, paving the way for instruction interpretation and thus processor design.
A 3 hours written exam at the end of the semester (all documents allowed), and a lab grade.
N1 = 2/3*E1+ 1/3*ExamTP
N2 = E2
David Patterson et John Hennessy, Computer Architecture, The hardware/software interface, 4ème édition, Morgan Kaufman
John F. Wakerly, Digital Design: Principles And Practices
Date of update January 15, 2017