School of Electronic
& Electrical Engineering
FACULTY OF ENGINEERING & PHYSICAL SCIENCES
ELEC5620M: Embedded Systems Design
Assignment 2: Stopwatch
Assignment Information
Technical Brief — Stopwatch using the ARM A9 Private Timer and Seven
Segment Display Drivers
Dr David Cowell
Prof Steven Freear
Mr Thomas Carpenter
Mr Harry Clegg
Compiled with LuaTEX, last updated 09:25, on 15
th March, 2021
ELEC5620M: Embedded Systems Design Assignment 2: Stopwatch
Typographical conventions
The following typographical conventions are consistent throughout this module.
• Source code is shown in syntax highlighted monospaced font as:
a = !b;
• Buttons, menus and file-tree selections you should click are shown as:
File » Exit
• Graphic User Interface (GUI) selections and text input are shown in italics:
Select Go from the list
Type Hello in the box.
• Keyboard shortcuts are shown in square brackets as:
[ctrl + C]
• Names of physical things are shown as bold font:
Cyclone V
• Names of commands and processes are shown as bold monospaced font:
commit
• File and project names are shown in bold green monospaced font:
hello.v
new_project
• Paths are shown as bold green monospaced using the Windows path separator \ :
C:\Path\To\File
Note: Extra information and clarification that you might find useful can be found in note blocks.
Warning: Potential pitfalls and problems are highlighted in warning blocks.
Important: Important information is shown in important blocks.
1
ELEC5620M: Embedded Systems Design Assignment 2: Stopwatch
Part 1: Assignment Information
Part 1: Assignment Information
Important: This assignment is due at 2pm on Monday 22nd March 2021. This assignment is worth
20% of the final module mark.
You must submit your report via Turnitin and Code via GitHub before the deadline. A 5% per day/partial
day penalty will be subtracted from your score for late submission.
If you encounter technical difficulties during submission, you must email your report before the deadline
to d.m.j.cowell@leeds.ac.uk and then submit the report and code without alteration through Minerva
and GitHub.
1.1 Technical Report (Turnitin Submission)
The report has a strict page limit of 5 technical pages. A 10% penalty will be incurred for each additional
page over the limit. You should additionally include a cover page with the Report Title, your Name and SID.
The cover page does not count towards the page limit.
For best marks, you are expected to include the following sections (or similar) in your report:
• Abstract — A short summary of the report
• Introduction — An explanation of the project and background information
• Main Body — The main body of the report is split into titled sections (do not title this section “Main
Body”). You should explain how you developed your code and how it works. Why did you structure
your code the way you did? You should also include information about how you have gone about
verifying that the code is functional, how you have used the DS-5 debugger tools to ensure that it
works, and how you went about testing it on hardware.
• Conclusions — Discuss the results of your project. You can include discussion on what you have
learnt.
• References — Any sources that you have found useful during your background research and code
development.
• Appendix — All of your source code (.c and .h) MUST also be included, as neatly formatted text
in the Appendix (which will not count towards the page limit). Screenshots or photos of code are not
allowed and will not be marked!. You may additionally place supplementary diagrams and images in
an Appendix, which will not count towards the page limit.
2
ELEC5620M: Embedded Systems Design Assignment 2: Stopwatch
Part 1: Assignment Information
1.2 Code Submission (GitHub Classrooms Repository)
All of your project files including source files (.c and .h) and your DS-5 Project Files (.project and
.cproject), must be incrementally uploaded to GitHub throughout your development and testing process.
Uploading code towards the end of the development cycle is not acceptable.
1.3 Plagiarism
Sharing of code is not allowed.
The source of any IP cores, drivers or code structures from ANY external sources must be clearly identi-
fied in the references section of your report and in comments within your code. You will not be awarded any
marks for these parts of code, however you will not be penalised for using them so long as full reference to
the source of the code is given.
Any external IP core or code found that has not been properly referenced, or any code shared between
students, will be considered plagiarism and dealt with by the external University Plagiarism committee.
3
ELEC5620M: Embedded Systems Design Assignment 2: Stopwatch
Part 2: Technical Brief — Stopwatch using the ARM A9 Private Timer and Seven Segment Display Drivers
Part 2: Technical Brief — Stopwatch using the ARM A9 Private
Timer and Seven Segment Display Drivers
2.1 Minimum specification
Your task is to create a Digital Stopwatch using the ARM A9 Private Timer for accurate timekeeping and the
seven segment LED displays to indicate the time since the stopwatch was started as shown in Figure 2.1.
Your seven segment displays must initially show the elapsed time in format MM:SS.ff, where MM represents
minutes, SS represents seconds, and ff represents hundredths of seconds.
MM : SS . ff
Figure 2.1: Stopwatch time mapping to the 7-segment LED displays
• You must be able to start the stopwatch using one of the pushbutton (KEY) inputs on the DE1-SoC
board.
• You must be able to stop the stopwatch using another of the pushbutton inputs on the DE1-SoC board.
• You must be able to reset the stopwatch using another of the pushbutton inputs on the DE1-SoC
board.
• The exact pushbuttons used are your choice as an engineer.
In your code, you should carefully structure the user interface and display update using an appropriate event
sequencing style with non-blocking polling of the inputs and timer.
2.2 Further specification
The following specifications can be optionally implemented:
• Transfer to a HH:MM:SS display mode when the time is equal to or greater than 1 hour.
• Add split timer functionality.
• You may add further functionality or use alternative/advanced coding techniques to secure the highest
marks.
2.3 Coding
You should demonstrate as many of the coding techniques as possible that you have encountered in the
module to date. This may include but are not limited to functions, polling, blocking/non-blocking, task
scheduling etc. Describe and justify your coding strategy in your report.
4
ELEC5620M: Embedded Systems Design Assignment 2: Stopwatch
Part 2: Technical Brief — Stopwatch using the ARM A9 Private Timer and Seven Segment Display Drivers
2.4 Testing
Testing is vitally important in this assignment. You are also expected to make use of the debugger and
hardware verification techniques to ensure your drivers are working correctly. Consider how you may test
both the accuracy and functionality of the stopwatch.
Describe your testing strategy and outcome in the report changes and include details of the problems solved
by debugging and hardware testing in the report.
5
学霸联盟