MickeyMouse 0 13 февраля, 2019 Опубликовано 13 февраля, 2019 (изменено) · Жалоба Добрый день! Речь идет про обычные многоступенчатые триггерные синхронизаторы(несколько последовательно-включенных флопов). Какими способами их можно оптимально размещать/разводить? Т.е. максимально близко друг к другу. Скажем в том же Vivado при работе с ПЛИС можно указать атрибут типа async_reg для таких случаев. Есть ли что-то подобное(простое и лаконичное) в Innovus. Сразу скажу, что такие варианты знаю: - просто констрейнить путь - далать отдельный макро(слишком гиморойно) - использовать specifyNetWeight(плохо работает) - делать Fence для синхронизатора - их не обязательно максимально близко размещать(не вдаваясь в подробности, в моем случае желательно) Изменено 13 февраля, 2019 пользователем MickeyMouse Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvlwork 0 13 февраля, 2019 Опубликовано 13 февраля, 2019 · Жалоба Ну а лучше всего чтобы синхронизатор был библиотечным элементом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Avex 1 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба Чем меньше паразитная емкость между стадиями сдвигового регистра-пересинхронизатора, тем ниже вероятность получить метастабильное состояние. Поэтому желание поставить такие флопы рядом понятно, и тем более понятно, почему делают специальные селлы для пересинхронизации. Если же спец. селлов нет, и малтибит селлов нет, то проще всего сдвигать эти флопы в кучу сразу после плейса, и назначать им статус fixed. Или же сдвигать их после каждой оптимизации. Двигать можно руками, но проще заскриптовать через ECO команды. Еще, можно сделать свой селл-синхронизатор в том же инновусе, выписать либу или ILM-модель, а потом использовать в дизайне как иерархический блок. Либо, попробовать объединять флопы в SDP структуры. Но я так никогда не заморачивался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MickeyMouse 0 21 февраля, 2019 Опубликовано 21 февраля, 2019 · Жалоба В 14.02.2019 в 21:40, Aleх сказал: Чем меньше паразитная емкость между стадиями сдвигового регистра-пересинхронизатора, тем ниже вероятность получить метастабильное состояние. Поэтому желание поставить такие флопы рядом понятно, и тем более понятно, почему делают специальные селлы для пересинхронизации. Если же спец. селлов нет, и малтибит селлов нет, то проще всего сдвигать эти флопы в кучу сразу после плейса, и назначать им статус fixed. Или же сдвигать их после каждой оптимизации. Двигать можно руками, но проще заскриптовать через ECO команды. Еще, можно сделать свой селл-синхронизатор в том же инновусе, выписать либу или ILM-модель, а потом использовать в дизайне как иерархический блок. Либо, попробовать объединять флопы в SDP структуры. Но я так никогда не заморачивался. Спасибо за подробный ответ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться