Cordic Sin Coswere building a streaming sin cos generator using the Cordic algorithm, and introducing quantization to convert the floating point model to fixed-point hardware implementation. You will be comparing the precision of the implementation against the software C library to gauge the quantization error.Begin by compiling the C code to generate the Cordic algorithm.Goals:· Build a 16-stage quantized cordic algorithm that generates the Sin Cos values· Simulate in software for theta in range -360 to 360 degrees, and generate quantized outputs for sin and cos· Implement a 16-stage hardware pipelined coordic in VHDL · Compare fixed point results to the software implemtation, and determine the precision of quantization error.· Determine the number of samples per sec with a 100Mhz clock (10ns period). References:· FIFO architecture: · Coordic algorithm in C: Implementation:· Compile the coordic c-code and generate the inputs and outputs using 16-bit quantization.· Implement the coordic_stage in VHDL; · Implement coordic in VHDL, instantiating 16 hardware-pipelined coordic_stage components using the LOOP-GENERATE statement. The coordic module should read in theta via FIFO, and output SIN and COS values to seperate output FIFOs.Verification:· In your testbench, generate 16-bit quantized fixed-point values for theta between -360 to 360 degrees, feeding them into the input FIFO of the coordic module.· Configure your testbench with the following generic paramters:o 32-bit wide datao 16-element FIFOo Frequency of 100MHZ (10ns clock period)Compare Results:· Compare the output of SIN and COS to the software values to check for bit-true accuracy. · Report on quantization precision (e.g. to what degree of accuracy compared with the floating point software algorithm).