Pull to refresh
9
0
Константин Павлов@pConst

FPGA dev

Send message

Давайте немного отвлечемся от ОС и начнем с другого:

  1. Пускай ОС и версия IDE одна и та же. Берем два одинаковых проекта и собираем их с разными SEED. Логика раскладывается на чипе различным образом, и поэтому в отчетах тайминга видим различные Fmax. Логично?

  1. Теперь собираем одинаковые проекты в разных версиях IDE на одной ОС, SEED не трогаем. Разные версии среды отличаются версиями библиотек, или, может, какими-то настройками, реализацией алгоритмов, наличием или отсутствием дополнительных шагов оптимизации. Снова получим различную разводку логики на кристалле и разные Fmax

  1. Ну и возвращаемся к ОС. Снова берем два идентичных проекта. Как и в случае 2, на процесс сборки будут влиять внешние условия. Расстановка примитивов на кристалле снова будет отличаться, что повлияет на Fmax

В итоге, на Fmax во всех рассмотренных случаях влияет один фактор - физическое расположение примитивов и связей между ними. Механизм одинаковый во всех трех случаях. Считать, что расчеты временного анализатора в одной из ОС "подкручены" - это из разряда теорий заговора =)

Как вы предлагаете проверить "действительную" производительность? Что и чем измерять? =)

Возможно, что 200 при сборке под Windows равно в железе 250 при сборке под Linux.

Вполне логичное рассуждение. В IDE встроен временной анализатор, который делает для нас расчеты слеков и Fmax. Полное знание о том, как делаются эти расчеты, и какой там уровень пессимизма заложен - есть только у производителя. Нам ничего не остается, кроме как доверять этим отчетам

Далеко не всем нужна повторяемость сборки. Это просто один из нюансов, для кого-то важный, для кого-то - нет

В своих догадках мы можем опираться на документацию производителя. А производители говорят нам, что используют так называемый "timing driven" синтез и имплементацию. https://www.intel.com/content/www/us/en/programmable/quartushelp/17.0/logicops/logicops/def_synth_timing_driven_synthesis.htm

https://docs.amd.com/r/en-US/ug904-vivado-implementation/Routing

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

А если цели добиваться высоких частот нет - среда будет экономить время и завершит сборку. Хотя возможности дополнительной оптимизации дизайна у нее еще есть

В разных ОС вызовы системных функций реализованы по-разному. У Linux свой API, у винды - свой. Поэтому и разница. А если вы не меняете ОС и версию IDE - то производитель гарантирует детерминированность. То есть выходные файлы будут бит-в бит идентичными.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity