реклама на сайте
подробности

 
 
> Нужна помощь с IP блоком Cordic v6 от xilinx
YaGo
сообщение Dec 15 2017, 20:58
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 30-07-14
Пользователь №: 82 405



Здравствуйте! Нужна помощь с ядром Cordic v6. Использую Vivado 2017.1. Сделал тестовый проект, в котором одно это ядро. Оно используется для вычисления arctan.
Ядро пробовал настраивать тремя способами:

1) ядро не зависит от clk. Режим без конвейера(no pipelining). Триггеров нет






Результат post-implementation timing simulation для imag = 1, real = 1:





как видно, результат вычислений стал верным через 25,385 нс, но tvalid "поднялся и опустился" гораздо раньше.


2)ядро зависит от clk. Режим без конвейера(no pipelining). частота clk равна 200 МГц. Задержка выхода(latency) равна 3 такта







create_clock -period 5.000 -name clk -waveform {0.000 2.500} [get_ports clk]


При такой конфигурации ядра, проект перестает собираться. [Timing 38-282] The design failed to meet the timing requirements. Please see the timing summary report for details on the timing violations.


3)ядро зависит от clk. Режим с конвейером(pipelining mode - optimal). частота clk равна 200 МГц. Задержка выхода(latency) равна 22 такта







create_clock -period 5.000 -name clk -waveform {0.000 2.500} [get_ports clk]


При такой конфигурации ядра, проект собираться.

Результат post-implementation timing simulation для imag = 1, real = 1:



как видно, результат вычислений стал верным через 22 такта, и сигнал tvalid "поднялся и опустился" синхронно.


Подскажите, пожалуйста, что я делаю не так. Мне нужна конфигурация 2, т.е. задержка выхода 3 такта

Может у кого-нибудь есть модуль для вычисления arctan, лучше чем у xilinx? Задержка выхода должна быть минимальной.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dvladim
сообщение Dec 17 2017, 17:56
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Т.е. фактически вам нужно получить результат за 3 такта на частоте 200 МГц - те. за 15 нс.
Однако в 1-м случае результат получается минимум за 25.3 нс. И как вы собираетесь получить его быстрее?
Конвейеризация - это способ увеличить пропускную способность, а не снизить задержку.

Теперь по результатам ваших вариантов:
1-й - задержка 25.3 нс (и это видимо минимальная), а сигнал valid в этом случае значения не имеет.
2-й - задержка 3 такта и это естественно не укладывается во временные ограничения.
3-й - задержка 22 такта и во временные ограничения вполне укладывается.
Чтобы оценить минимальную задержку, поставьте по 1-му варианту регистры по входу и выходу и посмотрите минимальную частоту.
Если она не устраивает, меняйте схему: переводите вычисления на таблицы, снижайте разрядность и т.п. Конвейер вам задержку не снизит.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016