Part 2 / Diploma Computer Science Project Suggestions
This is a list of ideas for possible Part 2 projects that I am willing
to supervise or provide further input to. If you are interested in any of
these projects for your final year, please contact me at the usual address.
If you are interested in any of these projects, or have an idea
for a similarly related project, please get in touch so that we may discuss
your proposal.
This project is to design and implement an assembler and simulator
for a micromachine used within a large multicore processor. The
micromachine is a small 8-bit controller with a set of 7
instructions and very limited data. It is used to control NAND memory
operations, for which a further 6 instructions relate to that specific
application.
The assembler translates human-readable instructions and operands
into a C static array for inclusion into other software. In the first
instance the assembler should provide basic assembly operation. This
may then be further enhanced with file inclusion and macro
functionality. This tool is expected to be part of a larger build
system and so needs to provide a standard command line interface. It is
a requirement that the assembler be written in C or C++.
The simulator should be graphical tool, showing how the micromachine
interprets the set of instructions and how it manipulates the registers
under its control. It is intended that it would be used during
microcode development and should provide all useful information
(instruction counts, timing information, etc) to the user. This tool
may be written in any language and GUI environment, although Java is
recommended as it preferable that the simulator work on Linux and Windows
platforms.
Requirements:
Familiarity with C/C++ (for assembler)
Basic understanding of lexical analysis, parsing, grammars