CORDIC Architecture in System Verilog

Output

CORDIC stands for COordinate Rotation DIgital Computer and this task was to implement the equation below using this architecture. Restricted to 16-bit parallel input/output I chose to internal cast the value as 32-bit as to improve the accuracy of any calculations then cast back to a 16-bit output. An interesting challenge as I have never used System Verilog for trigonometric function before. A part from the maths the system is relatively simple and is pipelined using two separate blocks to compute the entire equation.

Find a zip file of code here as no report was submitted only an automated testbench was used to mark the design; for which I received 96%.