TIEP114 Computer Organization and Architecture - assignments
Preliminary list, will be updated when more translations is done...
There is no mandatory assignments, you can choose to gather points from any assignments to complete the course.
See grading for how the points are related to ECTS and grade you get.
General instructions
Reutrning your solutions
- Nand2Tetris assigments (hdl and asm files only) must be returned as email attachment and must not published online available to be found from the Internet.
If the amount of points is not mentioned then the task is worth 1 point.
- TIM -system assigments are saved into the system and graded automatically.
- Electronic labs Returned by showing that the implmentation(s) with electronic components work
Assignments (If the instructions and/or the assigment name is in Finnish,
the tasks have not yet been translated)
Boolean logic 55+ points
Nand2Tetris tasks 10 points
Instructions and
theory.
See also
HDL Survival Guide
- Not.hdl (NOT gate)
- And.hdl (AND gate)
- Or.hdl (OR gate)
- Xor.hdl (XOR gate)
- Not16.hdl (16-bit Not)
- And16.hdl (16-bit And)
- Or16.hdl (16-bit Or)
- Nor.hdl (NOR gate) Not a part of Nand2Tetris, make own hdl file and ...
- Nor.tst testscript for you NOR gate, see e.g. page 16)
- Nor.cmp comparison file for you NOR gate
Combinational logic 46+ points
Nand2Tetris tasks 20 points
Combinational logic - Instructions
here and
here and
theory
here and
here
- Mux.hdl
- DMux.hdl
- Mux16.hdl
- Or8Way.hdl
- Mux4Way16.hdl
- Mux8Way16.hdl
- DMux4Way.hdl
- DMux8Way.hdlNOTE: the software comes with errorneus .cmp file, missing third sel bit, here is corrected one DMux8Way.cmp, also .tst
file DMux8Way.tst
- HalfAdder.hdl
- FullAdder.hdl
- Add16.hdl
- Inc16.hdl
- (8 points - Note: comment all lines) ALU.hdl
Sequential logic, Assembly and CPU z + 46+ points
- TIM - system - z points
- Electronics lab 4 - 6 points. Reserve a time for working in the lab via email from the lecturer.
Nand2Tetris tasks 8 points
Sequential logic -
Instructions and
theory
- Bit.hdl
- Register.hdl
- RAM8.hdl
- RAM64.hdl
- RAM512.hdl
- RAM4K.hdl
- RAM16K.hdl
- PC.hdl
Assembly and machine language tasks 20 points
Assembly ja Konekieli -
Instructions and
theory
- (4 points) Mult.asm
- NOTE: othe software comes with errorneus .tst and .cmp files, use
Mult.cmp ja Mult.tst which test that R2 is set to zero and also allow you to use R0 or R1 as variables.
Aslo original Mult.asm comments has error // Multiplies R0 and R1 and stores the result in R2.
// (R0, R1, R2 refer to RAM[0], RAM[1], and RAM[3], respectively.) ⇐ so RAM[3] should be RAM[2]
- (6 points) Fill.asm
- (1 - 10 points) Your own design and implementation in assembly, that uses screen and keyboard. Must comment each line and also must include comments to describe what the code does and how it is used. One point for each 10 lines of code, maximum 10 points with 100+ lines.
CPU and Computer architecture 12 points
Computer architecture -
Instructions and
theory
- Memory.hdl
- (10 points) CPU.hdl
- Computer.hdl
Assembler 40 points
Reguires basic brogramming skills, including file handling and string manipulations. Knowledge of Hashtable:a (or dictionary or equivalen depending on language used) will help in implementation. You can freely choose the programming language to be used.
Assebler -
Instructions and
theory
- (10 points) Tehtävä 1 - Parser module
- (10 points) Tehtävä 2 - Code module
- (10 points) Tehtävä 3 - SymbolTable module
- (10 points) Tehtävä 4 - Main program
(If the program functions without the SymbolTable module, you get 30/40 points)
Return your codes implmenting the Assembler and machine language codes (made by your Assembler) of the files specified in the instruction.