EEC 281 - Homework/Project #4

Work individually, but I strongly recommend working with someone in the class nearby so you can help each other when you get stuck, with consideration of the Course Collaboration Policy. Please send an email to me if something is not clear and I will update the assignment using green font.

Notes:


Total: 270 points

1. [70 pts] This problem requires the design of a block which calculates the complex number e for a given θ, every cycle. It would be very useful as a very-high-precision complex numerically-controlled oscillator. The latency may be as many cycles as needed.



2. [200 pts] This problem involves the design, implementation, synthesis, and testing of a custom hardware Sum of the Absolute Difference (SAD) computational unit and post-processor. The primary specifications are as follows:

Other requirements:

Build the testing environment as follows:

Submit the following.


Hint: See the Synthesis handout for details on the achievable cycle time and reading synthesis timing reports.

Hint: See the "matlab: tips for 281" web page for suggestions on addressing memories in matlab.

Hint: See the "verilog: example code" web page for example code in case it is helpful



Updates:
2024/02/29  Posted
2024/03/12  Update regarding memory ports
2024/03/14  Fixed "min" instead of "max", removed requirement for order of SAD calculations
2024/03/18  Added clock and reset inputs to list