Функция арктана с кордика с VHDL

Я хочу создать функцию arctan с VHDL для использования в дизайне демодулятора. Мне нужен функциональный блок с делением и арктаном. У меня есть два сигнала, предполагается, что sin(альфа) и cos(альфа) из предыдущих блоков. Я хочу получить альфа с использованием деления [sin(альфа)/cos(альфа) = tan(альфа)], а затем функция арктана. Я обнаружил, что это можно сделать с помощью сердечного алгоритма, но немного запутался. Есть ли у вас какие-либо рекомендации, документы или что-то еще. Как спроектировать разделение & Arctan с Cordic в VHDL?

заранее спасибо

1 ответ

Все, что вам нужно, это CORDIC arctan-функция, без необходимости деления. CORDIC arctan принимает декартовы координаты (X, Y) и преобразовать его в полярные координаты (r, theta), Вы хотите тета.

Вы можете посмотреть в википедии подробности алгоритма. Ваш поставщик fpga уже должен бесплатно предоставить ядро ​​CORDIC IP, например, здесь для Xilinx.

Альтернативная реализация заключается в использовании памяти: касательная - это адрес, а угол - это содержимое по этому адресу. Это будет практично для небольшого количества бит, но, очевидно, не после того, как количество бит станет больше. Это зависит от того, сколько битов вам нужно.

Другие вопросы по тегам