CE339 - Assignment 1: Settable countdown timer with 4-digit 7-segment display
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
CE339 - Assignment 1: Settable countdown timer with 4-digit 7-segment display
Assignment objectives
This document specifies the first of two coursework assignments to be submitted by students taking CE339. This assignment is relatively simple, and is designed to give learners a first experience of using VHDL, the Xilinx Vivado software suite, and the Basys3 design board. You will be expected to learn to: a) implement a digital design in VHDL code; b) synthesise and simulation;c) debug and verify that the design meets the specifications; d) demonstrate your design.
You are supposed to gain familiarity with VHDL coding during the supporting CE339 lectures and through self-study hours, also with the help of the recommended textbook or any other book about VHDL. You are expected to work on this assignment mostly during lab hours. Your design project should be stored under the revision control repository that was assigned to you at the beginning of the course. You are supposed to commit often and describe your progress in the commit messages. You are encouraged to use the Moodle forum and engage in constructive discussions with your fellow classmates and with the module supervisor about questions, possible solutions, and problems you may encounter while working on this assignment (please follow the forum’s rules on the Moodle page). In order to promote a learning scheme that values the learning process in addition to the submitted final design, your weekly progress (as traced back by the commit logs) and your active participation to the forum will contribute to your assignment mark.
Design specifications
The task is to implement a settable countdown timer showing the remaining time on the 4-digit 7-segment display of the Basys3 board. The timer has two modes of operation: “SET” and “GO”. The central button on the board toggles between the two. In “SET” mode, the user is allowed to set the initial time in minutes (the seconds will always be 00). The up and down buttons can be used to increment or decrement the minutes in a range from 0 to 60. If the current value of the seconds is diferent from zero, pushing the up button moves to the next integer number of minutes (rounds up) while pushing the down button moves to the previous integer number of minutes (rounds down). In “GO” mode, the timer should count down from the current value towards zero at a rate of approximately 2 seconds. [Please note that the required time interval is 2 seconds instead of conventional 1 second!]
For example, assuming the timer is counting down and currently showing 9.80, the user can set the initial time to 11 minutes by: a) pushing the central button to enter “SET” mode; b) pushing the top button to show 10.00 c) pushing the top button to show 11.00 d) pushing the central button to start the counting. The display should then show the sequence 10.59, 10.58, . . . , 00.01, 00.00 at a rate of approximately 2 seconds. Switching to “SET” mode should not automatically set the
Figure 1: Hierarchy of the design project.
number of seconds to zero (resetting takes place only when up/down is pressed) so that the central button can be used to pause and resume the counting.
Each student is given access to a personal repository containing a Xilinx Vivado project and some VHDL code. Figure 1 shows the hierarchy of the project and the files provided.
• main0 dummy.vhd: when set as “Top Module”, can be synthesized into a test design that you should use to familiarize with the pinout and the polarity of the Basys3 7-segment display (which is wired for time-multiplexing).
• main1 final: complete final design as described at the beginning of this section. Your code should reuse other entities to generate a hierarchical structure (modular design).
Finally, you are asked to implement and submit code for settable countdown timer with 4-digit 7-segment display as described at the beginning of this section.
Suggested material
1. In order to familiarize with the Xilinx Vivado design suite you can use the software docu- mentation or search online. If you do not find an answer to your question, you can start a discussion in the Moodle forum.
2. Datasheets and schematics of the Digilent target board are available from the manufacturer’s website. You will need to read sections of these documents to understand how the target board works.
3. You will need to learn about VHDL. This will be covered in the supporting CE339 lectures. The handout of the introductory lecture lists the suggested course textbooks as well as links to free tutorials and other online material.
4. You will need to understand binary-coded decimal and the workings of time-multiplexed 7- segment displays. These are topics that are explained in multiple sources, including the Wikipedia, and many digital electronics textbooks. You should read about these topics and reference appropriate sources in your submission.
5. It is assumed that you are familiar (from Year 1 or otherwise) with the concepts of combina- tional and sequential digital logic, and with computer programming in a high-level language.
Important: failure to make appropriate acknowledgement constitutes plagiarism and a breach of intellectual property rights.
Submission
Your work must be submitted to the university’s online FASer submission system at the address https://faser.essex.ac.uk/ by the deadline given on the system. No other mode of submission is acceptable. You are strongly advised to upload a draft submission before the last lab hours prior to the deadline, and then update it up to the deadline. You are required to submit one ZIP archive containing the following files:
1. The file main1 final .vhd and all the additional files it depends upon;
2. Your repository logs in the .TXT format or screenshot;
3. If you want (in your own interest, see marking criteria), add other evidence, e.g. the transcripts of the relevant forum discussions you contributed to, acknowledgement declaration.
DO NOT WAIT UNTIL CLOSE TO THE DEADLINE TO MAKE YOUR FIRST SUBMISSION. Difficulties with the submission system will not be accepted as an excuse for a missing submission.
Marking criteria
This assignment is worth 15% of the module mark. Marks will be awarded for the VHDL code, including coding style and quality. In addition to the submission, each student will be expected to demonstrate and explain her/his design with confidence and competence during a demo lab session. Marks will be assessed based on:
• Implementation
– Quality of the implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25%
– Modular design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15%
– Generic and re-usable code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15%
– Proper use of comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10%
– Steady progress, adequate use of GIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10%
– Quality and confidence of demonstration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20%
• Others
– Compliance with submission instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5%
Marks below 100% can earn additional credits if the student actively engaged in forum discussions asking pertinent questions and giving competent answers to questions raised by classmates.
2026-01-21
High Level Digital Design