Перейти к содержанию

CORDIC на 300МГц на 7 серии

Добрый день, коллеги!

 

Существует такой вопрос - есть дизайн, там есть cordic, что переводит вектор из декартовых координат в полярные. Чип - с архитектурой кинтекс-7. По спецификации ip блока не работает на больше чем 180МГц.

А в дизайне мне нужно чтоб обсчитывалось на 300МГц. Стоит ли пробовать писать свой велосипед или же ядро xilinx достаточно хорошо написано, оптимизировано и писать даже не стоит пытаться?

Прошу поделиться своим опытом.

 

С уважением, Иван.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо за ссылку!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Существует такой вопрос - есть дизайн, там есть cordic, что переводит вектор из декартовых координат в полярные. Чип - с архитектурой кинтекс-7. По спецификации ip блока не работает на больше чем 180МГц.

А в дизайне мне нужно чтоб обсчитывалось на 300МГц. Стоит ли пробовать писать свой велосипед или же ядро xilinx достаточно хорошо написано, оптимизировано и писать даже не стоит пытаться?

Есть допотопный алгоритм для решения всех проблем - разделяй и властвуй.

В вашем случае стрим на 300 МГц делим на 2 по 155 (с запасом) и ставим 2 ядра кордика, результаты собираем обратно в стрим 300 МГц - делается за час с использованием хлс и штатных ядер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Увы, я тогда по latency пролетаю

Ибо кордик у меня считает не каждый вектор отдельно, а ему можно пихать данные каждый такт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Увы, я тогда по latency пролетаю

Ибо кордик у меня считает не каждый вектор отдельно, а ему можно пихать данные каждый такт.

Вы понятие "латентность" ни с чем не путаете? Латентность у кордика и так не маленькая будет особенно у вас в пайплайне. Если вы выравниваете результат с кордика по времени с какими то еще потоками, то по любому ставите фифо на них, а в 2-х канальном варианте вам это фифо придется сделать несколько больше только и всего, но при этом сохранится возможность обработки ваших данных кордиком каждый такт 300 МГц. Конечно же ресурсов такой вариант съест больше чем одно ядро кордика, но в масштабах среднего кинтекса 7 это практически ничто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти