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 |
|
Lab 3 Instructions |
|
|
Lab 3 Evaluation Form |
|
|
C Code for Lab 3 |
|
|
Multiply-Acccumulator PCore |
|
|
Matrix Powers PCore |