Practicals
The purpose of the EMBS practicals is to help you to:
- Get comfortable with using FPGAs and the Xilinx development tools.
- Learn about programming embedded microcontrollers.
- Learn the Vitis HLS hardware development language.
- Start thinking about the way that hardware is implemented on FPGAs, and which constructs are cheap and which are expensive in terms of logic usage.
- Learn how to engineer the architecture of a solution to exploit the parallelism available.
- Explore the trade-offs that are found in embedded development.
You must complete each practical before the start of the next one, as many of the concepts used will be examined in the assessment. If any aspects of the practicals are unclear, please ask Ian to explain.
The Resources and Tips pages show information about the tools and devices we are using, as well as links to full documentation. The content on these pages is essential for completing the practicals.
Task: Formative Work
At points throughout the practicals, blue text will tell you to do something. Once you have, show it to Ian once you complete the task. These are formative contact points to help you to progress through the course and to give you feedback on how you could have done it better. I will mark down your progress so that I can keep an eye on how everyone is progressing.
Timeline
This is not a strict timeline and we will be very happy to help you catch up or get ahead, as you need. However it is important that you make good progress into Practical 6 because that level of knowledge will be assumed by the assessment.
| Week | Practical |
|---|---|
| 2 | Practical 1a and Practical 1b |
| 3 | Practical 2 |
| 4 | Practical 3a and Practical 3b |
| 5 | Practical 4 |
| 6 | Practical 5 |
| 7 | Practical 6 |
| Consolidation week | Optional drop in to catch up |
| 8 | Practical 6 |
| 9 | Assessment released |
Task List
This is a complete list of the tasks from the various practicals:
- Practical 1a
- Getting started
- Rebuilding the software
- Practical 1b
- LEDs and Buttons
- Serial Calculator
- Adding additional hardware
- Practical 2
- Cat Facts conversation
- Practical 3a
- Getting started with Vitis HLS
- Practical 3b
- Game of Life implementation
- Game of Life optimisation
- Practical 4
- Deploying HLS Component
- Accelerating the Collatz Conjecture
- Practical 5
- LFSR Testbench
- Reaction Time Game
- Practical 6
- MD5 IP core
- MD5 from FreeRTOS
- CatHashes