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

Узнать длину конвейера

Всем привет!

 

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

Хочу узнать задержку распространения данных по тракту в стороннем коде. 

Может ли такое сделать Timequet или Vivado? Или, может, есть сторонние тулы, которые анализируют нетлист?

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


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

Приветствую!
 

50 minutes ago, pavlovconst said:

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

Хочу узнать задержку распространения данных по тракту в стороннем коде. 

Может ли такое сделать Timequet или Vivado? Или, может, есть сторонние тулы, которые анализируют нетлист?

Не  помню  такого готового функционала. 

Но в  Vivado  можно  сделать TCL скрипт  который  сможет находить  в нетлисте  путь между  заданными начальным и конечным регистрами и соответственно считать число промежуточных регистров.
Да  и в Qu  тоже наверное можно но IMHO сложнее.

 

Удачи! Rob.

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


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

1 hour ago, new123 said:

TimeQuest пишет время пути

Вы, наверное, не то имеете ввиду. Мне нужны не комбинационные шаги между смежными регистрами, а количество регистров в длинном вычислительном конвейере

Нашел команду report_path в доке по Таймквесту. По описанию,  с опцией -min_path очень похоже на то, что я ищу, но получить результат пока не получилось. Пишет "No paths were found"

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


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

14 minutes ago, pavlovconst said:

Вы, наверное, не то имеете в виду.

вот я имелл ввиду то, что Rob выше описал. А задать правильно путь, это по началу целое искусство =) лучше конечно GUI для начала пользоваться, нагляднее.

Изменено пользователем new123

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


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

13 hours ago, pavlovconst said:

Вы, наверное, не то имеете ввиду. Мне нужны не комбинационные шаги между смежными регистрами, а количество регистров в длинном вычислительном конвейере

Нашел команду report_path в доке по Таймквесту. По описанию,  с опцией -min_path очень похоже на то, что я ищу, но получить результат пока не получилось. Пишет "No paths were found"

report_path используется только для комбинаторики. Через регистры оно не покажет ничего. Единственный вариант, как указал @RobFPGA это пропарсить нетлист через тикль скрипт.

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


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

Приветствую!

 

Кстати  для Vivado есть прикольный внешний tools как раз  для работы  с нетлистом   RapidWright.  Этакая надстройка над Vivado-вским TCL API. 

Прикольная  шутка. Если порыться  то может и готовое  что найдете и не придется самому на TCL трассировать нетлист. 

 

Удачи! Rob.

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


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

3 hours ago, Nick_K said:

report_path используется только для комбинаторики. Через регистры оно не покажет ничего. Единственный вариант, как указал @RobFPGA это пропарсить нетлист через тикль скрипт.

попробую еще раз вставить свои 5 копеек, вдруг это все таки то, что надо

 

генерю список нужных путей, с параметром full_path

report_timing -to_clock { .... } -setup -npaths 10 -detail full_path...

 

Далее могу просматривать конкретно каждый путь, как он проходит и сколько времени занимает

К примеру, как у меня идет сигнал от трансивера до нужной мне логики
image.thumb.png.76b95f64d52c5b1e6471c47438f73612.png

 

Буквально вчера, у меня тут стоял встроенный pileline от квартуса между трансивером и логикой и я его тоже видел. Ради интереса, сделал EDA Netlist Writer, проверил там пути, они точно такие же.

Изменено пользователем new123

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


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

On 2/13/2021 at 8:17 AM, RobFPGA said:

Кстати  для Vivado есть прикольный внешний tools как раз  для работы  с нетлистом   RapidWright.  Этакая надстройка над Vivado-вским TCL API. 

Прикольная  шутка. Если порыться  то может и готовое  что найдете и не придется самому на TCL трассировать нетлист.

Открыл первый же пример: "проанализировали тайминги, получили столько-то. А вивада показывает с ошибкой на 30пс меньше". И как теперь с этим жить?

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


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

Приветствую!

4 hours ago, alexadmin said:

Открыл первый же пример: "проанализировали тайминги, получили столько-то. А вивада показывает с ошибкой на 30пс меньше". И как теперь с этим жить?

Мучатся всю оставшееся жизнь за бесцельно потерянные пикосекунды  :biggrin:

Увы, я плотно с RapidWright  не работал. Но читал где то статью что эти ребята  делали свой быстрый анализ  времянки в FPGA  чтобы использовать  в своих алгоритмах  palce & route.
Может это оно?

 

Удачи! Rob.

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


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

1 hour ago, RobFPGA said:

Мучатся всю оставшееся жизнь за бесцельно потерянные пикосекунды  :biggrin:.

Если бы потерянные. Они ведь наоборот, в Vivade излишне оптимистичные получились! То-то самолеты все в воду падают...

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


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

14 hours ago, alexadmin said:

Если бы потерянные. Они ведь наоборот, в Vivade излишне оптимистичные получились! То-то самолеты все в воду падают...

Мне вот больше интересно, как "левые" ребята смогли открыть и разобраться с нетлистом, сгенерированным в Виваде. И ещё и к этому всему подтянуть значения зашифрованных либ Xilinx'а? Ведь значения таймингов описани лишь приблизительно для компонентов и без какого-либо упоминания межкомпонентных соединений.

То что сама Вивада пишет лучше значения, наверное на то есть причины - как минимум ей виднее и она знает чутка больше, чем некие парни с обочины.

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


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

Приветствую!

3 hours ago, Nick_K said:

Мне вот больше интересно, как "левые" ребята смогли открыть и разобраться с нетлистом, сгенерированным в Виваде. И ещё и к этому всему подтянуть значения зашифрованных либ Xilinx'а? Ведь значения таймингов описани лишь приблизительно для компонентов и без какого-либо упоминания межкомпонентных соединений.

То что сама Вивада пишет лучше значения, наверное на то есть причины - как минимум ей виднее и она знает чутка больше, чем некие парни с обочины.

Вот  что  что мне попадалось на глаза. 

При желании  можно и самому  провести исследовательскую работу генерируя  сотни  нетлистов  с разными  интерконнектами и анализируя  результаты задержек в том же Vivado :shok:

 

Удачи! Rob.

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


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

On 2/13/2021 at 8:17 AM, RobFPGA said:

Кстати  для Vivado есть прикольный внешний tools как раз  для работы  с нетлистом   RapidWright.

Нашел еще один похожий тулкит, тоже написанный на Java - https://github.com/byuccl/RapidSmith2

9 hours ago, Nick_K said:

чем некие парни с обочины

RapidWright лежит в официальном репозитории Xilinx-a. Левыми их называть сложно =)

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...