Как стать автором
Обновить

Комментарии 17

Это мужик да? На картинке?

25 часов работы над статьей ради вопроса о гендерной пренадлежности персонажа с картинки. Спасибо, именно на такие комментарии я и рассчитывал :)

Спасибо за статью. Интересно было узнать о такой возможности у Xilinx. А как эта система реагирует на изменения значительно влияющие на архитектуру проекта? Переназначение какого нибудь глобального Enable например. расчет синхронизаций не сыпется?

Надеюсь, что материал был полезен.
К вопросу таймингов при внесении изменений. Анализ будет выполнен заново. Если Вы откроете ЕСО то увидите, что там есть кнопка расчёта таймингов, однако принцип и последовательность создания отчётов идентична обыкновенным этапам проектирования. Я написал лишь про малую часть возможностей, на самом деле их больше. Я бы рекомендовал обратиться к соответствующим руководствам, ссылки на которые приведены в библиографическом списке. Если этого будет не достаточно, напишите мне, я попробую найти дополнительную информацию.


На самом деле, внесение изменений и последующий анализ и итерационные этапы размещения и трассировки удобнее делать через скрипты, в которых ищются пути с отрицательными слаками, затем этот датапаф устанавливается в unroute и процесс размещения и трассировки выполняется заново, до тех пор пока слаки не станут положительными, если это вообще будет возможно достичь.

Это прямо целая подробная инструкция или мануал!
Спасибо за качественный материал, буду вчитываться.
Ну я бы рекомендовал запастись чайком и терпением и, желательно, какой нибудь отладкой (любой, на на которой стоит кристалл от Xilinx не ниже 7-го семейства). Обязательно запустите Vivado, в ECO можно и без отладки работать. Вчитывание без практики в руководство даст только 65% пользы.
Руководство действительно большое (91 страница), выполнение займет не менее часа, вероятнее даже в районе полутора.
При работе в режиме ECO, пожалуйста, будьте крайне внимательны. Не всегда с первого раза очевидно, почему не удаляется цепь. Я про эти моменты указал в статье.
При возникновении трудностей, обращайтесь.

PS: Если всё-таки пройдете руководство полностью, напишите сколько времени это заняло? Спасибо.
Хорошо, попробую и отпишусь. Вам спасибо)
Потрясающее руководство по столь малоизвестной фиче Vivado. Огромная Вам благодарность.
Расскажите, как Вы «вышли» на ECO flow? Это была необходимость или в каком-то мануале наткнулись на её описание и копнули глубже?
Спасибо. Надеюсь пригодится Вам при работе.
Касательно литературы, я указал в начале статьи руководства, на которые опирался при написании:
В процессе написания я буду опираться на несколько основных документов, в которых описан режим ECO [3], [4], [5]

Ссылки на них в библиографическом списке кликабельны.

Как я узнал про ECO. На предпоследнем месте работы нас направили на обучение в тренинг центр Xilinx (в РФ). Собственно там про это и упомянули/рассказали совсем не много. Но значение особо этому не придал. Ну режим как режим. Теперь на лекциях в этом самом тренинг центре я рассказываю про него всем достаточно подробно :)

Где я его применял/использовал и использовал ли?
Да, приходилось. В заключении я про это упомянул. Этот проект был с испанцами, которые как оказалось, про режим ECO тоже не особо были в курсе. Я собрал тестовый проект, написал скрипты и показал как оно работает. Там мы изменяли как раз содержимое блочной памяти для защиты от копирования, без какого-либо вмешательства в трассировку кристалла.
Еще один пример применения, год/полтора назад я помогал в подготовке стендов, используемых для сбора статистики, где мы реализовывали разнообразные физически неклонируемые функции (PUF — physical unclonable function). Здесь я уже использовал ECO именно для отладки, поскольку банально забыл подключить нужные цепи к ILA. Благо проников хватало. Реализации PUF кстати были сделаны на Arty.

PS: Если всё-таки пройдете руководство полностью, напишите сколько времени это заняло? Спасибо.

Прошёлся по руководству выполняя всё шаг за шагом, сверяя Ваши скриншоты с тем, что получалось у меня, на всё ушло около часа.
Отлично. Спасибо Вам большое за проверку и информацию о времени.
Если есть какие-то неточности, пожалуйста, дайте знать, чтобы я внес соответствующие правки в руководство.
Спасибо. Очень хорошая статья.
Рад стараться, главное чтобы от всего этого кому-нибудь была польза
Спасибо. У меня проекты небольшие, там и перетрассировать недолго, но вдруг пригодится в будущем. Надо потренироваться, как раз 2018.1 вышел.
Буквально в начале этого года мы как-то рассуждали о подобной фиче — чтобы можно было дебагер переключать между нужными сигналами в схеме с минимальной разводкой. Еще думали, что это бы реально давало конкурентные преимущества САПРа — неужели у Xilinx денег нет? Особенно актуально это было год назад, когда время горело, а переразводка проекта занимала по 2-3 часа и разводка была поставлена на конвейер: во время разводки с сделанными изменениями параллельно готовилась и даже запускалась следующая, а результаты текущей по заверешнию уже вносились или отменялись далее, когда ещё разводилась вторая.
Месяц назад я нашёл эту статью.
Сегодня дошли руки прочитать.
Я узнал, что оказывается всё уже давно есть.
Ё-моё! ;)

Написать объёмную и качественную статью требует прилично времени, спасибо за это!
Спасибо за отзыв.
Надеюсь, что руководство будет не только прочитано, но и выполнено :)

Мне все же интересно узнать, что интересует уважаемую публику. Какие темы еще стоит осветить и написать по ним руководства с «лабораторками»?

Появилась идея и она частично реализована (пока только в объеме 20 страниц чистого текста) о влиянии атрибутов на синтез HDL кода. Казалось бы, что это достаточно банально и всем уже известно, однако читая руководства сталкиваешься с отсутствием примеров и картинок, разъясняющих суть дела, а если картинка и встречается, то чтобы ее получить точно такую же как в руководстве приходится прибегать к некоторым «хитростям». К тому же многое разбросано по разным гайдам, а не собрано в один, и не всегда очевидно в каких гайдах именно стоит искать.

Поэтому кому, что будет интересно пишите в комментариях. Попробую разобрать интересующие тематики.
Ну, выполнять приведённый пример лично мне неинтересно. Но у меня есть свой «тяжёлый» проект — вот на нём я и поэкспериментирую ;)

Если уровень ваших статей примерно одинаковый, то полезна будет любая. Особенно новичкам. Организация и работа софт-процессора (азы показаны в этой статье). Vivado'вские моменты с TCL. Региональное размещение частей проекта в кристалле. SDSoC. Частичная реконфигурация. Много чего интересного есть ;)

Атрибуты — отлично. Я не против) Кстати, всегда интересовало, в vivado есть такой полезный атрибут как mark_debug, его удобно применять для сохранения названия цепи, чтобы потом вытащить в debug, но можно ли на топ-уровне проекта как-то прописать путь к сигналу, вложенному в подмодули этого проекта? У меня в своё время не получилось и я прописывал атрибут в тексте самого подмодуля (это отдельный файл). Это не так часто требуется, но было бы удобно делать в топе. Или это нужно делегировать на уровень XDC и ручками всё сделать там?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории