ECE 449 Assignment 4

Reference: RiSC-16 computer

  1. Add an external timer to our second NiosII system for the purpose of measuring interrupt latency. Have one of the switches start the timer, and let the NiosII system stop the timer. The number of cycles should be displayed on the 7-segment displays and available for input to the NiosII system (via PIO interface). Use this system to measure the interrupt latency - from the time the switch is toggled until the NiosII system is able to stop the timer.

  2. We have previously noted that the library strlen function is optimized to process 32-bit words rather than 8-bit bytes. Write a test program in C and use the debugger to step through the code for strings of different lengths and determine how the algorithm in strlen works. You may also extract the strlen code, export it to another environment (e.g. Microsoft Visual C) and test the code there.

  3. Download the jsim1 project that implements the load/store operations of the RiSC-16 processor. Do the following
    1. Run the project and fix any faults in its operation (hopefully none)
    2. Write a simulator in C that reads the memory initialization file and executes the program cycle by cycle.
    3. Write a filter program that reads a vector table file and outputs only time values corresponding to positive clock edges. You can specify a starting time and clock period (e.g. 30 ns start and 40 ns period).

  4. Write a behavioral simulator in C for the RiSC-16 computer. (see Prof Jacob's writeup p1a.pdf.

  5. Write an assembler in C for the RiSC-16 computer. (see Prof Jacob's writeups p1a.pdf and p1b.pdf).

  6. Design a processor (in Verilog) that implements the ADD, ADDI, and LUI instructions. (see Prof Jacob's writeups p2a.pdf and p1b.pdf).


Maintained by John Loomis, last updated 18 March 2010