Skip to main content
CPE
469
Computer Architecture Laboratory
Hands-on design and implementation of computer system design. Use of CAD tools for schematic capture and Verilog HDL based simulation and synthesis. Design and implementation of data path functional units and I/O subsystem of traditional computer systems using sophisticated logic devices such as CPLDs and FPGAs.
Corequisites:
0612468
0612469
(0-3-1)

Credits and Contact Hours

1 credit, 30 hours

Course Instructor Name

Prof. Imtiaz Ahmad, Dr. Mohammad Al-Failakawi

Textbook

Laboratory notes and manual for QuartusII CAD tool.

Rabid Prototyping of Digital Systems: A Tutorial Approach, J. Hamblen and M. Furman.

Computer Organization and Design RISC-V Edition: The Hardware Software Interface,1st Edition, David Patterson and John Hennessy, Morgan Kaufmann. ISBN: 978-0-12-812275-4, 2018.

David Kirk and Wen-mei Hwu, Programming Massively Parallel Processors: A Hands-on Approach, 3rd Edition, ISBN: 9780128119860, Morgan Kaufmann, 2017.

Catalog Description

Hands-on design and implementation of computer system design using sophisticated logic devices such as FPGAs. Use of CAD tools for schematic capture and Verilog HDL based simulation and synthesis of data path functional units of traditional computer systems. Introduce students to writing parallel programs for multicore or GPUs.

Co-requisite

CpE-468

Specific Goals for the Course

Upon successful completion of this course, students will be able to:

Implement the concepts learned in the computer organization and computer architecture courses with CAD tools.

Behave safely and ethically in a laboratory environment.

Conduct experiment by synthesizing, verifying and implementing computer main functional units (register file, ALU) using QuartusII CAD tool. (Student outcomes: 2, 6)

Conduct experiment by designing, simulating and implementing a pipelined processor. (Student outcomes: 6)

Conduct experiment by prototyping a pipelined processor using CPLDs and FPGAs. (Student outcomes: 2, 6)

Practice teamwork to complete a design project and document their work in a technical report. (Student outcomes: 3)

Conduct experiment on parallel programming in CUDA C using GPU. (Student outcomes: 6)

Topics to Be Covered

Building the RISC-V Single Cycle Datapath

Extending the Single Cycle RISC-V Datapath to support a new instruction -- Testing and Simulation

Partitioning the RISC-V datapath into five pipeline stages

Resolving data hazards with forwarding and stall

Design, simulation, and implementation of parallel programming in CUDA C using GPU (CUDA API, CUDA memory model, shared memory) lab 1

CUDA Programming lab 2

CUDA Programming lab 3