Cpr E 488 Laboratory

Lab 3: Hardware Acceleration


Lab Description

For this lab, you will be migrating some functional modules in your embedded system from software to hardware. This is called hardware acceleration. Naturally, you will pick a module that takes a lot of CPU time and can perform much better on specialized hardware than on software, therefore accelerating the overall performance of your application.

Prelab

Read through the entire lab. Scan the content of xio.h file to familiarize yourself with the low-level functions for accessing I/O devices. Look specifically for the functions to read/write data to/from devices. Be familiar with the idea of hardware accelerators (Chapter 7 of the text book) and their interfaces with CPU (Chapter 4). You will look into VHDL code but are not required to write VHDL code. Some links to VHDL tutorials are provided.

 

This lab deals with high-level code used to estimate performance changes that are implemented at a low level. You may want to consult Example 2-2 on pages 71-72 in the textbook for an example of implementation of high-level functions at a low level.

 

Apply AmdUse Amdahl’s Law to answer the following question. You may turn it in with your lab notebook.

If an embedded system spends 60% of time on FFT and an FPGA implementation of FFT is five times faster than the software FFT implementation, how much would the overall performance improvement be?

Lab Files

The following files are necessary for doing this lab.

File

Description

CPRE488_LAB03.pdf

Lab 3 Instructions

eval_form_lab_3.pdf

Lab 3 Evaluation Form

system.c

C Code for Lab 3

Multiply_Accumulator_DMA_Pcore.zip

Multiply-Acccumulator PCore

PLB_Matrix_Powers_Pcore.zip

Matrix Powers PCore