https://github.com/aliiimaher/logic-circuit-lab-project
Simple simulation of logic circuits for Calculator, Clock and Name Displayer.
https://github.com/aliiimaher/logic-circuit-lab-project
logic-circuit proteus
Last synced: 3 months ago
JSON representation
Simple simulation of logic circuits for Calculator, Clock and Name Displayer.
- Host: GitHub
- URL: https://github.com/aliiimaher/logic-circuit-lab-project
- Owner: aliiimaher
- License: mit
- Created: 2023-08-03T10:35:13.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-03T10:44:15.000Z (almost 3 years ago)
- Last Synced: 2025-03-02T21:41:30.410Z (over 1 year ago)
- Topics: logic-circuit, proteus
- Homepage:
- Size: 1.12 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Logic Circuits Lab
## Project Description
This project is a part of the Logic Circuits Lab course. The project consists of three parts:
### 1. Calculator (ALU - Arithmetic Logic Unit)
In this part, we implement a simple Arithmetic Logic Unit (ALU) that performs four common operations: Add, Subtract, Multiply, and Divide. The ALU takes two 4-bit numbers and a 2-bit mode input that identifies the desired operation. The numbers are assumed to be in 2’s complement form, except for the "divide" operation, where the numbers are treated as unsigned.

#### Inputs:
- A: 4-bit number (Operand A)
- B: 4-bit number (Operand B)
- Mode: 2-bit number (Operation mode: 00 for Add, 01 for Subtract, 10 for Multiply, 11 for Divide)
#### Outputs:
- Result: 8-bit number (Result of the operation, or multiplicand + remainder for "divide" operation)
- Flags:
- Overflow: Set if the result overflows 8 bits
- Carry: Set if there is a carry-out in addition or borrow in subtraction
- Zero: Set if the result is zero
- Negative: Set if the result is negative
### 2. Clock
Design a clock using six seven-segment displays. The clock can be set using binary inputs for hours, minutes, and seconds. For example, setting the hour input as 10010 should set the clock to 18 hours, and the clock will continue counting from there.

#### Inputs:
- Hour: 6-bit binary input for setting the hour
- Minute: 6-bit binary input for setting the minute
- Second: 6-bit binary input for setting the second
### 3. Name Block
In this part, we create a block that represents your name using different segments. At first, all segments are off, and after 5 seconds, the first letter of your name is shown. The sequence continues until all letters are on, and then your name will blink until the end of the day.
