Skip to content

Boston-University-Projects/Computer-Engineering-Fundamentals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer-Engineering-Fundamentals

Course outline

This is an introductory course to computer engineering, focusing on the hardware/software interface, and presenting a bottom-up view of a computer system. Topics include logic design: binary arithmetic, combinational and sequential logic. Computer organization: assembly language programming, CPU design, and memory systems. Introduction to compilers, operating systems, and computer networks.

Context

  1. ALU
  2. LED Counter
  3. Assembly
  4. Data Path

1. ALU

- Gate Level Full Adder

Implemented with ANDs, OR and XOR gates. The full adder takes a carry-in and two binary numbers as inputs, and a carry out and sum result as outputs. image

- Ripple Carry Adder from Full Adders

The ripple carry adder was implemented by putting 8 full adders in series. image

- Carry Select Adder from 4-bit Ripple Carry Adder

Utilize a 4-bit ripple carry adder to determine the 4 LSBs and then depending on the carry out of this computation, one of the ripple carry adders that accounts for this carry is selected for the 4 MSBs of the sum image

- Arithmetic Logic Unit(ALU)

The ALU, Arithmetic Logic Unit, take in 3 inputs. One input is the OPCODE, which decides the function the ALU will operate. The other two inputs are the values the ALU is operates on. We made it to operate on 10 functions : and, or, not, xor, left shift, logical right shift, arithmetic right shift, add, and subtract. It will output the result of the operation and flags that describes the result whether if it is negative, zero, has a carry out, or has a overflow. image

2. LED Counter

- 8-bit Counter

Implemented an 8-bit counter capable of reversing the direction of its count, and resetting its count within our desired bounds. The counter can also be paused. image

- Clock Divider

The clock divider is intended to take in a more traditional MHz clock frequency and output a human friendly clock. The current configuration is capable of translating the 100MHz clock of the FPGA to 1 second. image

- Wrap-Around LEDs

It outputs a certain arrangement of LEDs. This machine should be cable of reversing and pausing its direction. It takes inputs from 3 switches, which controls the direction and pausing. image

About

Boston University ENG EC605

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published