Projects:2015s1-18 ARM Processor For Digital Systems Practicals

From Projects
Revision as of 01:11, 23 October 2015 by A1660810 (talk | contribs) (disARMed Assembler)
Jump to: navigation, search

ARM Processor For Digital Systems Practicals

Formatting syntax

heading : = text = Note: text will have underline under it across the page Sub-heading : == text == Note: text will have underline across the page Sub Sub-heading : === text === Note: text will be bolded

Introduction

Aim


Motivation

Use Case Scenario

Key Requirements


disARMed Processor


Downloader System Adept 2 DeppD

disARMed Assembler

emuARM


Introduction

Aim

The aim of the project is to aid first year and second year students with their learning of digital systems and computer architecture in Digital Systems courses. The outcome of the project is to create a set of tools as a teaching aid for the laboratories of these Digital Systems courses. Motivation

Motivation


Use Case Scenarios

This section describes the scenarios of how and where the teaching aid will be used.

1st Year Digital System course laboratories

Students will be provided with an example assembly language program. They will simulate the program on the Host PC and observe the execution of the instructions. They can modify the program. The students will run the example assembly language program on the FPGA board and observe the outcome. There will be specifications provided in the lab which require the students to design logic blocks to connect the disARMed processor with the peripheral blocks such as the LEDs.

Figure 1.2 shows an example where the students are required to connect the disARMed microprocessor with the LEDs peripheral block with the address decoder coloured in blue.

Figure 1.2: Example of Logic Block Design


2nd Year Digital System course laboratories

Second year students will create their own assembly language programs and simulate it on the Host PC. They will observe how each instruction is executed, the datapath each instruction follows, and the change in values in the registers and memory.


The students will download their assembly program onto the Basys-2 FPGA board and run it with the disARMed microprocessor. They will observe the interactions of the microprocessor with the peripheral blocks on board the Basys-2 FPGA board. In addition, students will explore the Verilog code of the disARMed microprocessor. Students will be given an incomplete disARMed microprocessor where they have to design and implement the missing module.


For example, the microprocessor may be missing the ALU component and students will be required to design their own ALU as shown below (in blue rectangle).

Figure 1.3: Example of microprocessor architecture component design


Key Requirements

  • disARMed Processor
  • Simulation system
  • Downloader

Edit Required

System Overview

In this section, we will discuss how the system works,...

System Design

The following diagram shows the overview of the system, as well as how information will flow within the system.


Figure 1.3: Overview of system


disARMed Processor

Processor Core


Memory System


Communication Interface


Downloader System

Adept 2 Introduction Why we have chosen to use it How it is used inthe project and what for

DeppD

Introduction (Mention the purpose, how it will be used, etc)
Design (Talk about how it was designed)
Outcome

disARMed Assembler

Assembler is the program that reads assembly code and translates it to machine code. Assembly source code can be written with any text editor. The assembler will read the source file and detect any syntax errors and pop error messages correspondingly, then after correction converts correct code to a hex file. Then the hex file will be transferred by the downloader to FPGA board for execution. Both disARMed assembler and downloader are written in Java.

The assembler has two main modules, parser and translator. Parser breaks each assembly instruction into its underlying components (operators and operands and other fields), and translator generates machine code(hex code) according to encoding rules.

assembler work flow

It's packed as a single java .jar file and used as a command line program. User simply type command:

java -jar Assembler.jar <directory/file.s>

If the assembler source code is correctly written, the assembler will display the symbol table and corresponding machine code. Otherwise, an error message will pop to indicate the erroneous code. The assembler will generate a hex file containing the machine code which will then be transferred by the downloader.

usage of assembler

emuARM

Introduction
Why we have chosen to use it
what is is used for in the project
How it is used/will be used
include a picture of its front panel

References