Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

University of Pittsburgh ECE 1195

NotificationsYou must be signed in to change notification settings

JTP75/Advanced-Digital-Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

University of Pittsburgh ECE 1195

Brief

Designing hardware components using Vivado/Vivado HLS and testing designs on a field programmable gate array. Coursework includes a multicycle MIPS CPU,hardware accelerators for matrix multiplication and 2d convolution, and various smaller components.

Semester

Spring 2023

IP Repository

Contains IPs for all top-level designs create in labs. Also contains various prewritten components to aid in the design process.

Labs

Lab 1 - Generic Adder

Intended for learning the basics of Vivado. A generic combinational hardware adder written in asynchronous VHDL.

Lab 2 - Arithmetic Logic Unit

A fully functional 32-bit ALU comprised of four components:

  • Logic Unit for bitwise logic operations
  • Arithmetic Unit for addition/subtraction operations (from Lab 1)
  • Shift Unit for register shift operations
  • Comparator for comparison operations

Lab 3 - Sequential Hardware Multiplier

An unsigned 32-bit multiplier implemented using a shift registers, an adder, and finite state machine controller. The completion of an operation is signaled by a 'done' bit and the result is stored in a 64-bit register. Each operation takes 33 clock cycles to run.

*** Lab 4 - Multicycle MIPS CPU

A fully synchronous CPU that implements part of the MIPS instruction set. I designed the components and controller using behavioral VHDL. I combined these components in a Vivado block diagram to implement the top-level design (based on Von Neumann architecture). The top-level design is capable of executing MIPS assembly programs. Features include:

  • ALU operations using ALU from Lab 2 (arithmetic, logic, comparison, and shift)
  • Memory interfacing (lw, lh, sw)
  • Program Counter functionality
  • Branch/Jump instructions (j, jr, bne)
  • Count leading ones instruction (clo)
  • Multiplication using multiplier from Lab 3 (umult, mflo, mfhi)
  • Immediate operands

Lab 5 - Matrix Multiplication Hardware Accelerator

A hardware accelerator for multiplying matrices implemented with Vivado HLS. Intended for learning how to use Vivado HLS.

Lab 6 - Image Convolution Hardware Accelerator

A fully implemented hardware accelerator for grayscale image convolution. Runtime complexity is the same as the size of the input image. The onboard hardware implementation relies on a low-overhead Linux distribution. For results, see lab_6/lab6_report.pdf. Features both shift register and ring buffer implementations.


[8]ページ先頭

©2009-2025 Movatter.jp