OpenCores

CORDIC delay off by one clock

Back to bugtracker overview.

Information:
Type :: BUG
Status :: CLOSED
Assigned to :: Howard, A. LeFevre

Description:
Files affected:

gh_CORDIC_rotation
gh_CORDIC_vectoring
gh_r_2_polar
gh_r_2_polar_a

There appears to be either
a) an extra clock cycle delay in delay elements of the r_2_polar entities or
b) tapping x_out one clock cycle too early in the CORDIC modules X(iterations-1) instead of X(iterations)

The effect of this is that the phase appears to be mapped to the wrong quadrant for some inputs.

As a first pass, I went through the r_2_polar modules and replaced every instance of iterations with iterations-1 except for the generic into the CORDIC_rotation. This seems to cure the symptom, but I'm not sure if the rotation should be tapping x_out off of iterations-1 or iterations...

If there is a way to get the files to you I can show you what I changed.

Once it is determined where the error lies, I can submit a polar_2_r module that I cobbled together in the pattern of r_2_polar.

Comments:

A. LeFevre, Howard Nov 7, 2009
You are correct. The indexing for dXLY, dXS, and dYS in defining the mode signal should be (iterations-1).

This is an error in the gh_r_2_polar.vhd, gh_r_2_polar_a.vhd, and gh_r_2_polar_28.vhd files.

Unfortunately, the changes opencores.org made to the web suite make it hard to upload the corrected files...

Post a comment:
Login to post comments!

Back to bugtracker overview.

© copyright 1999-2012 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.