The Delta NIOS Emulator

Overview: Delta is a NIOS instruction set emulator. It emulates one instruction or assembler directive at a time and displays the corresponding change in register and memory state in the system (hence the name delta). Delta is designed as a learning tool, to be used to experiment with sequences of instructions to observe their impact on registers and memory, in a way that is easier than code-compile-download-debug repitition on a real NIOS system.

Getting Started: Delta should build on most linux systems (including CYGWIN as distributed with the NIOS environment). Download this tarball and expand in an appropriate directory by typing "tar xvf delta.tar". Then simply type "make" in the delta code directory to build.

Using Delta: Simly type "delta" to execute. Delta will display a command prompt (>) at which you can type NIOS instructions in standard NIOS assembly format. Delta implements most NIOS instructions, but does not implement branches, jumps, procedure call/return, memory mapped devices (such as those on the DE2), nor interrupts. Delta also supports the compiler directives %gprel, %lo, %hi, and %hiadj. After the execution of every instruction Delta displays the impact on the corresponding registers and memory locations, showing any intermediate steps (such as the calculation of addresses). Delta also shows whether values are sign-extended (SE32()) or zero-extended (ZE32()).

Disclaimer: Delta is not guaranteed to be accurate with a real NIOS system (although that is our goal). If you observe any differences between delta and a real NIOS system (other than unimplemented instructions and directives) or discover other bugs please let us know.

About: Delta was created by Daniel Cooperman under the supervision of Prof. Greg Steffan.