|
|
  |
Использование разных библиотек стандартных ячеек в одном проекте |
|
|
|
Jan 16 2015, 13:43
|
Частый гость
 
Группа: Свой
Сообщений: 96
Регистрация: 11-01-10
Из: Moscow
Пользователь №: 54 725

|
Цитата(Fat Robot @ Oct 24 2014, 00:47)  Добрый день.
Сейчас эту задачу приходится решеать разделением проекта на уровне RTL на две части. Первую синтезировать с библиотекой 12t, вторую с 7t. Синтез и timing closure приходится делать фактически для двух проектов. Еще дополнительно нужна сшивка цепочек сканирования. В общем боль и несправедливость.. Подскажите, если какие-то сдвиги в этом направлении? Может есть что-то автоматическое? А какой маршрут? DC+Encounter?
|
|
|
|
|
Jan 17 2015, 09:51
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Я так понимаю, проблема только в высоте ячеек. Если есть два блока на одном уровне иерархии, причем один надо делать на 12t, а второй на 7t, то и синтез и BE можно делать в один заход. Но для этого надо вводить информацию о пауер-доменах. Как это выглядит: один блок объявляется одним пауер доменом, с библиотекой 12t, а второй блок - объявляется вторым доменом с библиотекой 7t. Тот факт, что питание может совпадать, ничего не меняет - тул начинает блюсти, чтобы элементы одного домена не попали во второй домен. У каденса это маршрут с CPF, у синопсиса UPF. А поскольку UPF недавно признали стандартом IEEE, то каденс по идее должен и с CPF работать. В общем, читайте юзергайды по lowpower, они хорошо описаны и у синопсиса и у каденса.
|
|
|
|
|
Jan 18 2015, 17:08
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Fat Robot @ Jan 18 2015, 00:18)  Принцип разбиения простой: проект на уровне rtl делится на 2 части на верхнем уровне иерархии. Блоки с высокой тактовой объединяются и синтезируются под быструю, но менее компактную 12t-библиотеку. А 'медленные' блоки синтезируются под медленную, но более компактную 7t, при этом 'быстрая' часть подключается в 'медленную', как black box. Тогда, кроме upf/ucf, есть еще вариант, как такое раньше делали. Та часть, которая выглядит как black box, синтезируется отдельно, и разводится совершенно отдельно, получается IP-блок, который при разводке для роутера выглядит черным ящиком с пинами, как, например, блоки памяти, сгенерированные memory compiler-ом, или всякие покупные запчасти.
|
|
|
|
|
Jan 18 2015, 18:01
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Именно об этом подходе идет речь в моем исходном сообщении. "Совершенно отдельно" - это верно лишь умозрительно. На практике же все оборачивается значительным количеством итераций синтеза для обеих частей проекта. Цитата(SM @ Jan 18 2015, 18:08)  Тогда, кроме upf/ucf, есть еще вариант, как такое раньше делали. Та часть, которая выглядит как black box, синтезируется отдельно, и разводится совершенно отдельно, получается IP-блок, который при разводке для роутера выглядит черным ящиком с пинами, как, например, блоки памяти, сгенерированные memory compiler-ом, или всякие покупные запчасти.
|
|
|
|
|
Jan 18 2015, 18:16
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Fat Robot @ Jan 18 2015, 21:01)  Именно об этом подходе идет речь в моем исходном сообщении. Это да, я лишь добавил, что делать при таком подходе с backend-ом. Там все это вырождается в относительно несложную задачу разводки IP-блочка и подключения его потом как единого и неделимого. Он делается со своей сеткой и со своими кольцами, и потом "встает" куда-то в другую сетку, "пробивая" в ней соответствующую брешь, в любое удобное место. Насчет автоматизации синтеза при таком подходе "в лоб" - это ведь получается классический bottom-up синтез вроде, то есть, по терминологии Synopsys DC, compile-characterize-write_script-recompile - в этом автоматизация и заключается. Но, процесс итеративный, тут уж никуда не деться.
|
|
|
|
|
Jan 18 2015, 18:42
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
Все бы ничего, но вот только этот "блочок" около 40% площади занимает. Так что на стороне back-end'a тоже не праздник. В общем, буду смотреть маршруты, предлагаемые для low power. Всем спасибо! Цитата(SM @ Jan 18 2015, 19:16)  Это да, я лишь добавил, что делать при таком подходе с backend-ом. Там все это вырождается в относительно несложную задачу разводки IP-блочка и подключения его потом как единого и неделимого. Он делается со своей сеткой и со своими кольцами, и потом "встает" куда-то в другую сетку, "пробивая" в ней соответствующую брешь, в любое удобное место.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|