ECE 595c Computer and Digital Design Assignment 1

Write a Word document discussing the following projects. Submit supporting Verilog projects. Demonstrate the working projects to the instructor (and class). If you are not able to complete this assignment by the due date, submit a progress report documenting your work to that time.

  1. Design and implement a DE2 project that displays an eight-letter word on the 7-segment displays. Use diglab1 as a starting point. Note that you can use the right-most 7 keys to set any pattern on HEX7 and that the corresponding hex code appears on the right most seven segment displays.

  2. Write a C (or Java) program to calculate pseudo-random numbers of varying bit size (e.g. 4-bit, 8-bit, 16-bit, 32-bit, etc.). Use these random integers (e.g. A and B) to calculate P = A * B (note that the product is twice as many bits as the operands)., Q = A/B (also calculate the remainder R), G = gcd(A,B) (greatest common divisor), and R = sqrt(A).

  3. Write Verilog modules to perform the above calculations. Use behavioral Verilog where possible. Compare your custom module to a standard Megafunction, where one exists. Explore the structure of the resulting synthesis, document the number of LE's as a function of the operand size and the estimated calculation time vs. operand size. Use the DE2 board Cyclone II unit as a target processor. Divide up the work so that each of you is responsible for one of the following (in order of priority):
    1. pseudorandom number generator
    2. multiplication unit
    3. divider unit
    4. integer square root
    5. GCD unit

  4. Download and run the small 16-bit processor (non pipelined) dsim2 and the corresponding DE2 project dsimlab2. You should also download and use tblview.zip and qdoc.zip.


Maintained by John Loomis, last updated 1 June 2011