2110714 Digital Systems
1st semester 2017 weekend (Aug)
classroom : Sat 13:00-16:00, Eng 4, floor 17, room 17-03 (green
room)
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
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 semester. We
will also do in class running demo and programming for half an hour every
week. Please take a notebook with you into the class. The
final exam is "open book" and has an element of system design plus some
"pseudo" programming.
Announcement
19 Aug 2017 start
of the class
. . .
Assesment
30% midterm (40 min. open book)
30% final (90 minutes) (open book)
40% project (using multicore processors to solve a
problem)
Lecture
August
September
October
2-6 October 2017 (midterm)
Operating
systems and task scheduling basic OS concepts
November
December
2 December 2017 -- final exam
9 December 2017 -- project presentation
Next week
Please prepare your machine for next week in class activities
26 Aug 2017 I will show assembly programming of S21,
download s21-3.zip and Logicwork5 (below)
6 Nov 2017 Multi-core tools is now
updated s30-6.zip
and rz compiler for s30 rz40.zip
13 Nov 2017 Prepare to discuss your idea of project.
. . .
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)
ASM parser asm-parser-2.zip
(update with bug fixed, 2 Sept 2017)
Example of building parse tree ex-parse-tree.zip
Tools for interrupt
programming iot-rz-17.zip
Multi-core simulator
s30-6.zip
GPU simulator npsim4.zip
Compiler rz for s30 rz40.zip
NPU simulator npsim4-1.zip
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).
Homework
19 Aug 2017 -- Install Logicworks5. Search for its manual.
Try some simple examples.
26 Aug 2017 -- Learn how to write in Rz by reading Quick
Start Rz.
2 Sept 2017 -- Try to use asm-parser-2.zip.
Add a new instruction, SUB R10.
9 Sept 2017 Try to do ex-parse-tree.zip.
And write some recursive program.
30 Sept 2017 Try some example of interrupt programming using
iot-rz tools.
28 Oct 2017 Try multi-core example programs.
Think how to write multi-core program to run one task faster.
11 Nov 2017 Complete the multiplication program of
NPU. Use the new simulator npsim4-1.zip
. . .
Project
. . .
Additional information
Logicworks 4 Tutorial 2
This is a bit old but easy to read.
NEW Jaruloj Chongstitvatana, Programming
Languages, Dept. of Math and CS, Chulalongkorn, 2017. A standard
textbook on compilers. (free download).
last update 25 Nov 2017