Unless otherwise noted, you may collaborate with other CSE370 students on the homework assignments. Do not look at homework from previous years; this processor is different! You must spend at least 15 minutes working on a problem before seeking assistance. Collaboration means that you may discuss the problems and make notes during the discussion, but you may not look at other student’s work when writing up your homework. Your homework represents your own work—the homework must show that you understand the material and have worked as an individual on every problem. You may not divide up the task of doing the problem sets in the interpretation of collaboration. You may discuss lecture material with anyone.
Files for this assignment are found at \\ntdfs\cs\cse\courses\cse370\04au\HW\hw9.
In this assignment, you will continue the design of the x370 processor.
1. Design the x370 Model 2. This involves adding the data memory to your processor and implementing the load and store instructions. You will find the dram module in the lib370 library.
You may find it convenient to use assignment statements in your schematics to reduce the number of random logic gates you have to draw. Look for the menu item called Continuous Assignment. This will create a block in which you can write assign statement. Note: If the name you are assigning to does not appear in the schematic, i.e. it is a temporary variable, then you write:
wire foo = A & B;
Instead of:
assign foo = A & B;
We will give you a program to test your resulting processor design (fib3.dat). You should turn in a copy of your schematics and Verilog programs, plus a screen shot showing the contents of your register file and data memory at the end of simulation. You must also submit a copy of your project electronically – details will be posted later.
You will write a program that runs on the x370 that does a “phone book search”. We will give you a list of 120 pairs of numbers, each representing a name and a phone number pair. You may save this in the data memory however you like by defining your own “dram.dat” initial data file. Your program will then search for a “name” in this set of data, and return the corresponding “phone number”. We will use location 0 of the data memory as the “name” to search for. Your program should store the associated phone number in data memory location 1 and then halt by branching and looping at location 63 (the last instruction). You must turn in your project electronically and we will run your program to test it.
Files for the extra credit assignment are found at \\ntdfs\cs\cse\courses\cse370\04au\HW\hw9.