Pull to refresh

Comments 5

спасибо за публикацию.
от себя хочу порекомендовать мануал для пользователей timequest от altera. советую начать с главы 2, там самые основы основ очень хорошо разжевываются.
Старался, спасибо.
К сожалению, пост получился достаточно поверхностный, поскольку чтобы рассказать в подробностях, к примеру, о об одних только разновидностях арок (синхронные, асинхронные, setup, hold, recovery, removal, и т.д. и т.п.), пришлось бы давать подробный обзор формата Liberty (Synopsys). А это уже уходит далеко за рамки FPGA, и получился бы уже не пост, а целая статья страниц на н-цать. Впрочем, в книге по третьей ссылке из моего поста это все есть.
> Многие начинающие разработчики… не до конца понимают влияние временных ограничений… на результаты синтеза

Потому что хрен производители тулзов об это рассказывают. Ну то есть общие слова и понятия на уровне учебника — да, а вот конкретные критерии оптимизации и внутреннее устройство алгоритмов — за семью замками.
Эти знания точно есть у саппорта/консультантов коммерческих САПР (в Cadence и Synopsys, как минимум), поскольку их готовят на Западе, и регулярно посылают на тренинги для повышения квалификации. Но делятся они этими знаниями очень неохотно, поскольку информация об алгоритмах САПР действительно закрыта, по большей части. Есть еще специалисты в МИЭТ (Зеленоград), которые пишут свои тулы для синтеза БМК. А в остальном да, доступной информации мало, и хороших учебников (на русском) видимо нет. Да и на английском тоже.

Но в принципе, никакого секрета и нет, на самом деле, поскольку все эти алгоритмы выросли из научных публикаций 30-40 летней давности. К примеру, упоминание DAG (Directed Acyclic Graph — ациклический орграф) я видел в какой то статье IEEE начала 80х. Потом уже, все эти фундаментальные наработки собрали в кучу, и направили в прикладное/коммерческое русло. Т.е. когда в 90х годах появлялись первые тулы Synopsys, Cadence, Altera и т.д., вся теория уже давно была разработана.
В приват задали вопрос: не совсем понятно, как проводится расчет времени.
Прежде всего надо помнить, что STA всегда делает расчет на два крайних случая: самый быстрый вариант (расчет hold), и самый медленный (расчет setup).

Как производится расчет АТ для левого верхнего элемента И:
1й входной сигнал придет не раньше 0нс, и не позже 1нс (0-1). Если элемент И сработает по этому сигналу, то получим разброс задержек 2-4
2й входной сигнал придет не раньше 1нс, и не позже 2нс (1-2). Если элемент И сработает по этому сигналу, то получим разброс задержек 3-5

Что мы с этого имеем: Для расчета hold — самое ранее, это срабатывание через 2нс (по первому сигналу). Для расчета setup — самое позднее срабатывание через 5нс (по второму сигналу). Итого, получаем 2-5.
Всегда надо помнить о Hold — это критично для работы синхронных схем. Setup можно нарушать, а hold ни в коем случае. Об этом написано во второй публикации https://habrahabr.ru/post/302806/
Only those users with full accounts are able to leave comments. Log in, please.