This repository contains all the lab work completed during the 2nd semester for the CS1050 module (Computer Organization and Digital Design) at the University of Moratuwa. The labs include practical exercises on designing and implementing digital logic circuits, arithmetic units, processors, and interfacing with input/output devices. The work covers various aspects of digital systems, from basic combinational and sequential circuits to advanced processor design and Assembly programming.
- Lab 3: Ripple Carry Adder
- Lab 4: Combinational Circuits
- Lab 5_1: Multipliers
- Lab 5_2: Counter with External Input
- Lab 6: Arithmetic Unit
- Lab 7: 7-Segment Display
- Lab 8: Assembly Programming
- Lab 9: Final Project - Nanoprocessor Design
This lab involved designing a 4-bit Ripple Carry Adder by first creating Half and Full Adders. These basic components were then combined to form the RCA, with functionality verified through simulation and on a development board. Check Out Lab
This lab focused on designing two key microprocessor components: a 3-to-8 decoder and an 8-to-1 multiplexer. The functionality of both components was verified through simulation and implementation on a development board. Check Out Lab
This lab focused on implementing multipliers for binary numbers, including the development of a 2-bit multiplier and its extension to handle 4-bit binary numbers. Check Out Lab
This lab involved designing a 3-bit counter that counts in both clockwise and anticlockwise directions based on an external input. The functionality was verified through simulation and testing on a development board. Check Out Lab
This lab focused on designing a 4-bit arithmetic unit capable of adding two numbers stored in registers. The tasks included developing a 4-bit register and the arithmetic unit, with functionality verified through simulation and implementation on a development board. Check Out Lab
This lab involved designing a 7-segment display for the 4-bit Arithmetic Unit developed in a previous lab. The tasks included creating a lookup table using Read Only Memory (ROM) and developing the 7-segment display based on this table. Functionality was verified and demonstrated through simulation and on a development board. Check Out Lab
This lab focused on learning Assembly programming and interfacing simple input and output devices with a microprocessor. Tasks included developing Assembly programs to achieve specific objectives and integrating input/output devices. Functionality was verified through simulation. Check Out Lab
This lab involved designing a 4-bit processor capable of executing 4 instructions. The tasks included developing an arithmetic unit for adding and subtracting signed integers, decoding instructions to activate processor components, and designing k-way b-bit multiplexers and tri-state buses. Functionality was verified through simulation and on a development board.