_Ivan_ 0 9 июня, 2018 Опубликовано 9 июня, 2018 · Жалоба Добрый день, коллеги! Существует такой вопрос - есть дизайн, там есть cordic, что переводит вектор из декартовых координат в полярные. Чип - с архитектурой кинтекс-7. По спецификации ip блока не работает на больше чем 180МГц. А в дизайне мне нужно чтоб обсчитывалось на 300МГц. Стоит ли пробовать писать свой велосипед или же ядро xilinx достаточно хорошо написано, оптимизировано и писать даже не стоит пытаться? Прошу поделиться своим опытом. С уважением, Иван. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
magnum16 0 9 июня, 2018 Опубликовано 9 июня, 2018 · Жалоба Попробовать стоит. Можно посмотреть, что другие пишут. С ходу https://pdfs.semanticscholar.org/47be/c660d...7377cef4595.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 9 июня, 2018 Опубликовано 9 июня, 2018 · Жалоба Большое спасибо за ссылку! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 10 июня, 2018 Опубликовано 10 июня, 2018 · Жалоба Существует такой вопрос - есть дизайн, там есть cordic, что переводит вектор из декартовых координат в полярные. Чип - с архитектурой кинтекс-7. По спецификации ip блока не работает на больше чем 180МГц. А в дизайне мне нужно чтоб обсчитывалось на 300МГц. Стоит ли пробовать писать свой велосипед или же ядро xilinx достаточно хорошо написано, оптимизировано и писать даже не стоит пытаться? Есть допотопный алгоритм для решения всех проблем - разделяй и властвуй. В вашем случае стрим на 300 МГц делим на 2 по 155 (с запасом) и ставим 2 ядра кордика, результаты собираем обратно в стрим 300 МГц - делается за час с использованием хлс и штатных ядер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Увы, я тогда по latency пролетаю Ибо кордик у меня считает не каждый вектор отдельно, а ему можно пихать данные каждый такт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 17 июня, 2018 Опубликовано 17 июня, 2018 · Жалоба Увы, я тогда по latency пролетаю Ибо кордик у меня считает не каждый вектор отдельно, а ему можно пихать данные каждый такт. Вы понятие "латентность" ни с чем не путаете? Латентность у кордика и так не маленькая будет особенно у вас в пайплайне. Если вы выравниваете результат с кордика по времени с какими то еще потоками, то по любому ставите фифо на них, а в 2-х канальном варианте вам это фифо придется сделать несколько больше только и всего, но при этом сохранится возможность обработки ваших данных кордиком каждый такт 300 МГц. Конечно же ресурсов такой вариант съест больше чем одно ядро кордика, но в масштабах среднего кинтекса 7 это практически ничто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться