Добрый день!
Решил повторить реализацию Cordic алгоритма из kit-e.ru/assets/files/pdf/2011_12_36.pdf на ПЛИС.
Проект состоит из 5 модулей (структурная схема во вложении):
1) reset_block.v - аппаратный сброс и установка всех регистров в начальное положение.
2) step_control.v - модуль. формирующий шаг фазы для вычисления синуса и косинуса, а так же четверть в которой находится выходной сигнал
3) Cordic.v - модуль, формирующий конвейер из блоков, вычисляющих выходные значения синуса и косинуса.
4) rotator[0-15].v - модуль, поворачивающий вектор на заданный угол.
5) select_quarter.v - модуль, подводящий вычисленное значение синуса и косинуса под весь диапазон АЦП.
Нажмите для просмотра прикрепленного файла
В модуле step_control.v значение фазы Angle задает значение выходной частоты.
В статье сказано, что значение Angle в 3216 соответствует фазе в 90 градусов, т.е увеличивая каждый такт значение Angle на 1, на выходе мы получим частоту равную f.out=F.clk/3216/4 (на 4 делится, чтобы получить полный период, а не только до 90 градусов).
Откуда взято, что значение Angle в 3216 соответствует фазе в 90 градусов?