Digital Systems:  1st semester 2017  (Aug)

There are two parts in this class.  The first part is the basic building block of IT (teach by Prabhas 17 Aug - 28 Sept).  The second part is the asynchronous design (teach by Arthit).

my old lecture:  2015   2016

classroom :  Mon  10:00-11:00 Eng 4, floor 17, room 17-01 (xerox room), Thu 13:00-15:00 Eng 3 room 403

Aim

Today digital technology permeates every corner of our society. There are three big trends that shape our future. The first one is the coming of Artificial Intelligence.  The second one is the rise of Automation.  The last one the revolution of technology to transfer money.  These advancements rely on the power of computing.  To understand this future, we need a firm grip on how the technology work.  This class will discuss the basic of digital technology.  The idea of educating ourselves is not just read about the new development, but to "participate", or in the other words, to practice and experiment to see how things work. We will discuss the following topics:

Microprocessor  and how to program in assembly language
High level language and its translation into machine code
Interrupt and its role in multi-tasking
Low power programming
Concurrency, operating system and virtual memory
Multi-core processor

The highlight of the class will be a final project to really build a very simple processor from scratch.

How we learn

We learn by doing both hardware simulation and software.  The assignments will be given out periodically throughout the term. The final exam is "open book" and has an element of system design plus some "pseudo" programming.

Assessment

Two parts (basic IT and asynchronous) each has 50 points (independently assess)

My part
30%  project  4B processor and presentation
20%  written final exam (the last week of part one class, around 28 Sept, takehome)

Announcement

  25 Sept 2017   update 4B control unit

Lecture

August
Microprocessor
Basic logic design
Assembly language S2 version 1: 32-bit processor  
Rz language     Quick start Rz
Interrupt and its programming
Project
    4B processor
    4Bcontrol unit
September
Operating systems and task scheduling  basic OS concepts
Virtual memory
Multitask-OS (MOS)
Multicore processor
<final exam>

2-6 Oct 2017  midterm

Asynchronous design   (Aj Arthit lecture) 

Homework

1  Install Logicworks5.  Try some simple examples.
2  Learn how to write in Rz by reading  Quick Start Rz.  We use Rz version 3.6.
. . .

Project

4B processor

Tools

S21 simulator and assembler  s21-3.zip  (latest update 24 Jan 2017)
Logicwork5  (tool for Logic Design, no installation required, just unzip)
I use Rz language as an example language.  See my Rz language homepage
Demonstrate the actual compiler of this course RZ.   Rz compiler on web
Compiler uses in this class  Rz 3.6  source and executable  rz36-3.zip  (last update 13 Feb 2017)

Recommended free C compiler for Windows lcc-win32 . (for Windows 7, 8, 8.1 and 10).  Please also download and install "User Manual". You need it to look up the library function of this C.  (for OS X you need xcode, also free).

Additional information

Logicworks 4  Tutorial 2   This is a bit old but easy to read.

. . .

last update 25 Sept 2017