|CS552 Course Wiki: Spring 2008||Main »
20 points each
Consider the example single-error-correcting code with a minimum Hamming distance of three example in the ECC1 handout.
Multiply the following 2's complement 8-bit numbers using Booth's algorithm. Show the steps as shown in Fig. 3.11.2 in Section 3.11 of the In More Depth of the COD3e CD. Verify your answer by computing A, B and the product in decimal.
Multiplicand A = 0010 1011 Multiplier B = 0101 0101
Divide the following positive numbers using the restoring division algorithm. Show all the steps as in Figure 3.12 on page 186 of the text book.
Verify your answer by converting A and B and your result (A / B) and remainder to decimal.
A = 0101 1000 B = 0101
Write tests for mem_system_perfbench.v carried over from hw5. If you already wrote address traces for hw5, you can simply resubmit - simply say see hw5 in your handed in homework.
This is a more carefully constructed testbench that is meant to check the performance of your design. For example, is your cache reporting cache hits and misses correctly. Are the requests being serviced in the correct amount of time etc. This testbench takes as input a memory address trace in a file called mem.addr. This file must be in the same location as your verilog files. An example mem.addr file is provided. The format of the file is the following:
You must write different address traces to test your module and prove that it does implement the cache correct. Determining what to test and show is an important part of this problem. Carefully document and show in your homework, what cases you are testing. Pick representative inputs from this testbench, by examining the waveforms. You must handin annotated waveforms to prove that your design works correctly during hits, misses, writebacks, and refills.
|Page last modified on May 14, 2008|