Syllabus and synopsis (Digital Systems)
In this course, participants will learn about the building blocks of computer hardware and software by studying the design of a sequence of simple embedded systems, including understanding how the hardware works, and how it can be programmed at a low level, using assembly languageA symbolic representation of the machine code for a program. on the bare hardware, and at a high level, using C code and a process scheduler.
Following the course, participants will be able to
- Explain the functioning of computer hardware at the gate level and architectural level.
- Understand the low-level mechanisms that support programming in a high-level language.
- Design programs that interact with the hardware of the processor and I/O devices.
- Interpret IC datasheets in order to drive simple I/O devices.
Simple design of combinational and sequential circuits; standard design elements.
Data representations and computer arithmetic.
Register transfer level design of a simple microprocessorAn integrated circuit that contains a complete CPU..
Programming at the machine level: registers, instructions, memory addressing, subroutines, interrupts.
Rôle of assemblers, compilers and linkers.
Simple operating system services: processes, device drivers.
It is too soon to say how the content will be divided into lectures, because I hope to match the pace to the prior experience of the audience. But the sequence of topics will be as follows.
Programming at the machine level: the programmer's model.
Number representations and computer arithmetic.
Control structures and conditional branching.
Memory addressing, arrays, records and pointers.
Programming I/O devices: device registers, GPIO(General-Purpose Input/Output). A peripheral interface that provides direct access to pins of the microcontroller chip. Pins may be configured as inputs or outputs, and interrupts may be associated with state changes on certain input pins. On the <span style="font-family: 'Roboto Slab', Ubuntu, sans-serif">micro:bit</span>, the LEDs and pushbuttons are connected to GPIO pins., UART(Universal Asynchronous Receiver/Transmitter). A peripheral interface that is able to send and receive characters serially, commonly used in the past for communication between a computer and an attached terminal. It is commonly used in ''duplex'' mode, with the transmitter of one device connected to the receiver of the other with one wire, and the receiver of the one connected to transmitter of the other with a different wire. The ''asynchronous'' part of the name refers to the fact that the transmitter and receiver on each wire do not share a common clock, but rely instead on the signalling protocol and precise timing to achieve synchronisation..
Interrupt control and asynchronous events.
Programming with a simple operating system. Processes and message passing.
Implementing the operating system: context switches, process queues.
Combinational and sequential circuits. Logic gates in CMOS.
Architectural components: ALU, register file, control unit.
Register-transfer level design of a simple implementation scheme.