Skip to content
stpe edited this page Mar 1, 2013 · 2 revisions

JNiosEmu is a development environment and emulator to allow programming in assembler, easily assemble and execute the code and see what happens. All this without requiring prior knowledge of complex tool chains.

The system JNiosEmu emulates is a subset of the Nios II platform.

Scope of this document

The scope of this document is to describe the different features of JNiosEmu and how to use the application. Features of the Nios II platform will only be described briefly when necessary, for further details see the official Nios II manual from Altera. The purpose of this document is not to teach assembly programming.

Purpose of JNiosEmu

The purpose JNiosEmu is to provide an easy to use tool where you may try out programming using assembler. The application is not a full-fledged build environment; it does not actually compile, link and produce executable files from your code. What it does is that is emulates a simple computer system including registers, memory and basic I/O devices which allows you to run assembler instructions.

A range of features are implemented to make it easier to see what really happens when the assembler instructions are executed. There are views of the registers, memory and variables where read and writes are indicated by color. The position of the program counter is visually indicated and it is always possible to see what the internal representation of an assembler instruction is.

Note the JNiosEmu does not try to emulate a full computer system. Things like the pipeline and caches are not emulated, additionally only a subset of the Nios II platform is supported.

Additionally there was a limited amount of time to develop JNiosEmu since it was developed as a course assignment (see below), therefore the scope was narrowed somewhat to simplify the implementation. For example, as of this release interrupts are not supported and there is no support to compile and link multiple files.

Background

In the course 2G1518 Computer Hardware Engineering the Nios II platform was used to teach basic computer architecture and assembler programming. The platform fulfills the purpose but for students without prior knowledge of assembler programming the learning curve is unnecessary steep. A rather complex tool chain of different command-line tools need to be used in order to assemble and link the program. It is only possible to execute the program on the actual hardware that is not available to students outside the scheduled lab classes. Additionally, simply looking at a value in a register is rather complex for someone starting out to learn assembler.

This is what JNiosEmu intends to solve.

JNiosEmu was developed as a project assignment in the course 2D1363 Software Engineering at the Royal Institute of Technology (KTH).

Authors

With additional assistance from

  • Christian Mörck
  • Martin Fryxell

For contact information, please see the JNiosEmu web page at http://jniosemu.codetouch.com

Copyright

The names of other companies, products and services may be the property of their respective owners.

JNiosEmu is copyright by its authors, but is free to use for non-commercial purposes.