As you progress to the further demos the number of tests that you will be expected to pass will increase. With each iteration all prior tests are expected to continue to pass as well as the additional tests for that demo stage.

1. Tests for Demo 1

1.1 Simple tests (testprograms/public/inst_tests)

These tests target each instruction individually and use a minimal number of other instructions to test their behavior. For tests for a specific instruction copy the *.asm file named for the instruction from: /u/k/a/karu/courses/cs552/spring2016/handouts/testprograms/public/inst_tests/

2.1 Complex tests for demo2 (testprograms/public/complex_demo2)

3. Additional tests for final demo

For the final demo, there are several more tests provided. All are are subdirectories from:
~karu/courses/cs552/spring2016/handouts/testprograms/public/

There are two categories of tests:

Simple tests

The same as previously but when you just begin adding a new feature, use these tests to make sure basic functionality is still there. I recommend you use these tests as you start integrating different memories to your processor.

inst_tests

Exhaustive tests

I recommend, that you run all of these when you make a large change to your processor. When you believe stalling instruction memory is complete for example, run all of these and make sure they all pass. similarly when your data-cache is fully integrated run them all and make sure your processor works.

3.1 Programs required for final submission (for final demo).

Your submission must include the following:

perf.summary.log

complex_demofinal.summary.log

rand_final.summary.log

rand_ldst.summary.log

rand_idcache.summary.log

rand_icache.summary.log

rand_dcache.summary.log

complex_demo1.summary.log

complex_demo2.summary.log

rand_complex.summary.log

rand_ctrl.summary.log

inst_tests.summary.log

You can use the script run-final-all.sh to run all the required tests. It will create all these summary.log files. Running all the tests will take about 40 minutes. So plan ahead!

If you look closely, you will see that rand_final has a mix of tests from all the categories.

rand_mem and rand_simple are intentionally left out to reduce the time it takes to run all simulations