Skip Shnaton

Shnaton

COMPUTER CONS. WORKSHOP: FROM NAND TO TETRIS

TETRIS-ל NAND-מ בושיח תוכרעמב הנדס   67925

תודוקנ 5 תועש 2.5

        םוקימהעשםויהצובקגוסהרומ
115 'פש13:45-12:00דרועש ןסינ
28 'פש19:45-17:00ה בעמ דוד-ןב

סילבוס

Skip Student reception

Student reception

Assaf Bendavid
Ross 107
Email first.
Skip Administration

Administration

Topic outline

 
 
1
Boolean Logic.
Beginning at the Nand level, we specify and build a set of elementary logic gates, multiplexors, and their multi-bit versions. In addition, we describe how chips can be built and tested using a simple version of HDL (Hardware Description Language) and the supplied Hardware Simulator.
Show only topic 1
2
Boolean Arithmetic.
Continuing with combinational logic, we specify and build a set of adders. half-adder, full-adder, and parallel adder. Next, we specify an Arithmetic Logic Unit (ALU) and describe its proposed implementation.
Show only topic 2
3
Sequential Logic.
Beginning with D-Flip-Flops, we build a ecursive hierarchy of memory systems: 1-bit register, multi-bit register, and a Random Access Memory (RAM). We also build a counter chip, which will later function as the computer's program counter.
Show only topic 3
4
Machine Language.
To get a taste of low-level programming in machine language, and to get acquainted with the Hack computer platform.
Show only topic 4
5
Computer Architecture.
We specify a simple machine language, giving both its binary and symbolic instruction sets. Next, we guide the students through the process of integrating all the previously built chips into a unified architecture, capable of executing programs written in the specified language. We also specify how the architecture interacts with memory-mapped screen and keyboard devices. This completes the construction of the hardware platform.
Show only topic 5
6
Assembler.
Following an overview of the machine and assembly languages presented in the previous chapter, we specify an assembler. We expect the students to implement this assembler (as well as all the subsequent translators) in Java, but other object-oriented languages can also be used.
Show only topic 6
7
Virtual Machine (Arithmetic).
We discuss the virtues of a virtual machine approach, and specify a stack-based VM. Next, we guide the students through the process of writing a VM implementation, which will later serve as the backend of the compiler. Chapter 6 focuses on stack arithmetic, and chapter 7 on the procedure call stack.
Show only topic 7
8
Continue Virtual Machine (Control)
Show only topic 8
9
High Level Programming.
We present a simple, Java-like object-based language, called Jack. The students then write several simple Jack programs, e.g. games like Pong and Tetris. These programs are highly interactive and event-driven.
Show only topic 9
10
Compilation. We specify a Jack compiler, designed to translate a collection of Jack classes into VM code. Chapter 9 focuses on syntax analysis and chapter 10 on semantics and code generation.
Show only topic 10
11
Continue Compilation (Code Generation)
Show only topic 11
12
Operating System.
We use several programming examples to motivate the need for an operating system (OS). We then specify the API of a simple OS that includes math functions, string processing, input/output functionality, and memory management. The students then implement the OS in Jack.
Show only topic 12
Skip Upcoming EventsSkip ActivitiesSkip Search Forums

Search Forums

Skip Recent Activity

Recent Activity

Activity since Monday, 8 February 2010, 04:36 am

Nothing new since your last login