Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

EL2242

Digital Systems 2

2022/2023

THE BRIEF/INSTRUCTIONS

State Machines also called finite state machines are a method of modelling a system that at its basis describes   the behavior of a system and how it is contained into set states with each state being a distinct part of the overall model. Actions that allow the movement of a system between states are called transitions. A simple state machines is a turnstile and is described below:

Figure 1 – Turnstile described as a state machine

Image taken from - https://en.wikipedia.org/wiki/Finite-state_machine

As can be seen in figure 1 the turnstile has 2 states, locked and unlocked , with 2 actions that are allowed (coin   inserted and the user pushing the turnstile). The entry to the system is the lockedstate. If a user was to push the state remains the same (Locked). When a coin is inserted the state is changed to unlocked. If the user          pushes this turnstile (to move through it) the state changes back to Locked. If in the unlocked state another coin is inserted then the machine stays in the unlocked state.

The state machine diagram shown in figure 1 describes the above paragraph in an easy to understand concept that allows the implementation of this logical system in a number of ways.

You are required to develop a simple finite state machine using the C programming language + ARM                microcontroller and Using Verilog HDL in the Quartus development environment. The state machine will mimic the operation of a 2 stage security gate.

The security gate to be implemented works with the following operation.

1. A security card is presented to a scanner

2. The card is verified/rejected

3. If the card is verified a fingerprint is taken

4. The fingerprint is verified/rejected

5. If the fingerprint and the card is verified the gate will open

Define the state machine by using an appropriate diagram, ensuring that all states and transitions are documented.

Implement the state machine using two different technologies:

i)

ii)

ARM STM32XXXXXX microcontroller using the C language

Verilog HDL using Quartus

Both implementations should use appropriate input methods to denote the card/fingerprint and appropriate  method(s) to denote gate being locked/unlocked (switches/buttons for inputs, LED’s etc for outputs). In each case, ensure that the system operates correctly, and record your results and test this against a set of testing criteria determined by yourself. As part of the development process you should also run a simulation or debugging where appropriate.

Include simulation results of the Verilog code to show the system working where you do not have a developmentboard available.

In addition to the working code you are require to write a report, this is outlined below.

Development Report

You are tasked with creating a technical report of the development of the system. Within the report ensure that you cover the following aspects:

• Researched background into state machines and their development

• Comparisons between Microcontrollers and FPGA technology and how they work

• System design and implementation

• State machine diagrams for the system implemented

• System testing

• Results (including simulation results)

• Conclusions

Presentations of the Implemented Systems

You are required to present your final working design to do this create a simple short video that covers the state machine you have implemented and the results of the work, including the simulations of the FPGA system. Email this to [email protected] no later than 10/03/23 11.59 pm.

Notes on Wordcount and Referencing

For good marks and given the limited wordcount you should produce work that is: accurate; thorough; well argued; clear; accurately referenced; relevant and written in correct (UK) English grammar and spelling. You may include figures and tables with short captions (25 words each) and a list of references without affecting the overall word count. Remember that you have limited words so ensure that you “stick to the point” and do not got into detail on superficial elements.

Ensure that you include references when discussing technical facts and statements on the technology used. You must reference all your sources of information. These should be cited in the appropriate part of the report and fully identified to meet the Harvard referencing standard in a list at the end. Website articles must be properly referenced to be considered as legitimate references.

Presentation of written work

Except where specifically stated in the assignment brief, assignment work submissions should be word-processed, in Microsoft Word 2016 format, with a footer comprising: your module code; date; page number.

The following module learning outcomes will be assessed in this assignment:

• Design and synthesise a finite state machine

• Specify the behaviour of a digital system using a hardware description language.

• Design a digital system and its interface to external hardware