Jump to content

    
Sign in to follow this  
pavlovconst

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

Recommended Posts

Всем привет!

 

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

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

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

Share this post


Link to post
Share on other sites

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

50 minutes ago, pavlovconst said:

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

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

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

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

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
1 hour ago, new123 said:

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

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

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

Share this post


Link to post
Share on other sites
14 minutes ago, pavlovconst said:

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

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

Edited by new123

Share this post


Link to post
Share on other sites
13 hours ago, pavlovconst said:

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
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, проверил там пути, они точно такие же.

Edited by new123

Share this post


Link to post
Share on other sites
On 2/13/2021 at 8:17 AM, RobFPGA said:

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

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

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

Share this post


Link to post
Share on other sites

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

4 hours ago, alexadmin said:

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

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

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
1 hour ago, RobFPGA said:

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

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

Share this post


Link to post
Share on other sites
14 hours ago, alexadmin said:

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

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

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

Share this post


Link to post
Share on other sites

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

3 hours ago, Nick_K said:

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

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

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

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
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. Левыми их называть сложно =)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this