CS251 - Computer Organization
Computer Science 251
Computer Organization

Dickinson College
Fall Semester 2000
Grant Braught


Project #6 - Micro-Programming Our Machine

Assignment:

In this assignment you will be developing the micro-program that our machine uses to fetch, decode and execute machine language instructions. You will also be writing an assembly language program that fully tests your micro-program. Each group will complete their own version of project 6.



Getting Started:

This section outlines the process for getting the machine simulator up and running with the provided starter micro-program and test program.

  1. Create a directory for the project.

  2. Download all of the "New Files" and the "Old Files" from below.

  3. Copy your working solutions to project #2, #3, #4 and #5 to the project directory.

  4. Download the given solutions to any of the projects to which your solutions did not work.

  5. Download the analyze.bash file.


  6. Run analyze.bash. If errors are generated identify and correct them then rerun analyze.bash.

  7. Download the following files:
    1. microprog-start.masm
    2. microasm.jar
    3. test-start.asm
    4. Assembler.jar

  8. Assemble the micro-program into an image file for the Microprogram ROM in the microprogram control control unit of the VHDL simulator:


  9. Assemble the test program into an image file for the main memory of the VHDL simulator:


  10. Execute the VHDL machine simulation:
  11. From here you will need to augment the microprog-start.masm file with implementations for each of the remaining machine language instructions. As you add the microinstructions for each machine language instruction, document its functionality as was done for the ones you were given. It is recommended that you add one machine language instruction at a time testing each as it is added and only going onto the next instruction when the current one works. Testing each new machine language instruction requires adding assembly language to the test-start.asm file. Your assembly language test program should use comments similar to those provided to thoroughly document your testing process.

Design Document:

The design document for this project must fully describe the implementation and testing of the machine language instructions ADD, LOAD and BZERO.

The design section of your document must thoroughly discuss how ADD, LOAD and BZERO are implemented. This discussion should focus on describing the effects that the microinstructions have on the components of the datapath and why those actions implement the machine language. Use the standard abbreviations for the datapath components as described in class 19 when referring to the datapath.

The test section of your document must thoroughly describe how the ADD, LOAD and BZERO instructions were tested. This will include a description of the assembly language instructions that were used and why they are effective. To be complete you will need to discuss the machine language generated by assembling the portion of your test program related to ADD, LOAD and BZERO. This discussion should clearly show that your implementation has been thoroughly tested. In particular, you will need to show that the offset feature of LOAD has been tested and that BZERO works both when the branch is taken and when it is not.

Submissions:

For this project you must submit:

Files:

Files you may need for this project: