Функция арктана с кордика с VHDL
Я хочу создать функцию arctan с VHDL для использования в дизайне демодулятора. Мне нужен функциональный блок с делением и арктаном. У меня есть два сигнала, предполагается, что sin(альфа) и cos(альфа) из предыдущих блоков. Я хочу получить альфа с использованием деления [sin(альфа)/cos(альфа) = tan(альфа)], а затем функция арктана. Я обнаружил, что это можно сделать с помощью сердечного алгоритма, но немного запутался. Есть ли у вас какие-либо рекомендации, документы или что-то еще. Как спроектировать разделение & Arctan с Cordic в VHDL?
заранее спасибо
1 ответ
Все, что вам нужно, это CORDIC arctan-функция, без необходимости деления. CORDIC arctan принимает декартовы координаты (X, Y)
и преобразовать его в полярные координаты (r, theta)
, Вы хотите тета.
Вы можете посмотреть в википедии подробности алгоритма. Ваш поставщик fpga уже должен бесплатно предоставить ядро CORDIC IP, например, здесь для Xilinx.
Альтернативная реализация заключается в использовании памяти: касательная - это адрес, а угол - это содержимое по этому адресу. Это будет практично для небольшого количества бит, но, очевидно, не после того, как количество бит станет больше. Это зависит от того, сколько битов вам нужно.