Jump to content

    

Recommended Posts

Приветствую.

Озадачился размещением ячеек не стандартной (L-образной) формы.

Вычитал о слое OVERLAP.

LAYER OVERLAP
	TYPE OVERLAP ;
END OVERLAP

 

В LEF файле на ячейку прописал:

OBS

LAYER M1 ;
	RECT .... ;
	RECT .... ;

LAYER OVERLAP ;
	RECT 0 0 5.76 2.8 ;
	RECT 2.4 2.8 5.76 5.6 ;

END

 

В результате placeDesign encounter/innovus автоматически не вставляют в незадействованные места другие (обычные прямоугольные) ячейки, а лепят их друг на друга.

При этом, если ручками поставить прямоугольные ячейки в незадействованные области L-образных ячеек, то checkPlace проходит без ошибок.

Среди ключей команд placeDesign и setPlaceMode подходящего не нашел. На что обратить внимание?

 

 

 

 

 

 

Снимок.JPG

Share this post


Link to post
Share on other sites

Я не очень понял, о чем вы пишете, но на тонких процессах часто селлы сделаны так, что ставить их слитно (без зазора) нельзя. В этом случае создаются группы селлов, и специальные правила, как плейсить рядом селлы из разных групп - с каким зазором и т.д. Для референса даю команды specifyCellEdgeSpacing и specifyCellEdgeType, почитайте в мануале. Надеюсь, это то самое, о чем вы спросили :-)

Share this post


Link to post
Share on other sites
9 minutes ago, Aleх said:

Я не очень понял, о чем вы пишете, но на тонких процессах часто селлы сделаны так, что ставить их слитно (без зазора) нельзя. В этом случае создаются группы селлов, и специальные правила, как плейсить рядом селлы из разных групп - с каким зазором и т.д. Для референса даю команды specifyCellEdgeSpacing и specifyCellEdgeType, почитайте в мануале. Надеюсь, это то самое, о чем вы спросили :-)

Спасибо, посмотрю.

 

Процесс 65 нм.

Я спросил о том, как при размещении ячеек не прямоугольной формы вставлять в незадействованные их области другие ячейки.

Снимок2.JPG

Share this post


Link to post
Share on other sites

У вас за границы селла что то торчит? Т.е. гемеотрия макро в лефе - одна, а внутренние шейпы выпирают наружу, за пределы макро?

Если наружу что то неважное торчит, и вы хотите избежать drc, то надо это в obstruction перевести в лефе. А если важное, то лучше размеры селла увеличить. Или использовать команды, что я привел выше.

p.s. ааа.. может, у вас селлы многоэтажные? или речь вообще не о стандартных селлах, а о макроблоках?

Edited by Aleх

Share this post


Link to post
Share on other sites
13 hours ago, Aleх said:

У вас за границы селла что то торчит? Т.е. гемеотрия макро в лефе - одна, а внутренние шейпы выпирают наружу, за пределы макро?

Если наружу что то неважное торчит, и вы хотите избежать drc, то надо это в obstruction перевести в лефе. А если важное, то лучше размеры селла увеличить. Или использовать команды, что я привел выше.

p.s. ааа.. может, у вас селлы многоэтажные? или речь вообще не о стандартных селлах, а о макроблоках?

 

Наоборот. Граница ячейки прямоугольная, иначе ее и не задать. А вот физически (по shape) ячейка буквой L. 

Получается, что в пределах границ ячейки (Boundary box) имеется свободное место, в которое могут быть размещены другие ячейки (Available for placement).
Ячейки многоэтажные, но с этим нет проблемы.

Проблема в том, при place автоматически задействовать эти свободные места. Сам синтезатор это не делает, но вот если руками вставить в свободное место ячейку, то checkPlace проходит без проблем.

В LEF/DEF Language Reference есть абзац про Rectilinear Blocks:

Quote

Rectilinear Blocks

Normally, footprint descriptions in LEF are rectangular. However, it is possible to describe rectilinear footprints using an overlap layer. The overlap layer is defined specifically for this purpose and does not contain any routing. Describe a rectilinear footprint by setting the SIZE of the macro as a whole to a rectangular bounding box, then defining obstructions within the bounding box on the overlap layer. The obstructions on the overlap layer indicate areas within the bounding box which no other macro should overlap. The obstructions should completely cover the rectilinear shape of the macro, but not the portion of the bounding box that might overlap with other macros during placement. Note: Specify the overlaps for the macro using the OBS statement. To do this, specify a layer of type OVERLAP and then give the overlap geometries, as shown in Figure 1-83 on page 193.


Так же есть информация следующего содержания (прикрепляю скрин).

Пробовал оба варианта как вместе так и по отдельности, безрезультатно.

 

Screenshot_1.png

Edited by Dantist2k17

Share this post


Link to post
Share on other sites

Я такого никогда не делал, и даже ничего подобного не видел. Это альфачип такое чудо выдумал?

Вот, заметил:

LAYER OVERLAP ;
	RECT 0 0 5.76 2.8 ;
	RECT 2.4 2.8 5.76 5.6 ;

У вас высота селлов кратна 5.76? Тогда откуда цифра 2.8? Должны отличаться в два раза. Просто, если вы хоть чуть чуть залезете на площадь для размещения других селлов, плейсер не будет эту площадь использовать. Проверьте всю геометрию в лефе, соответствия питчам в теч лефе

Share this post


Link to post
Share on other sites
27 minutes ago, Aleх said:

Я такого никогда не делал, и даже ничего подобного не видел. Это альфачип такое чудо выдумал?

Вот, заметил:


LAYER OVERLAP ;
	RECT 0 0 5.76 2.8 ;
	RECT 2.4 2.8 5.76 5.6 ;

У вас высота селлов кратна 5.76? Тогда откуда цифра 2.8? Должны отличаться в два раза. Просто, если вы хоть чуть чуть залезете на площадь для размещения других селлов, плейсер не будет эту площадь использовать. Проверьте всю геометрию в лефе, соответствия питчам в теч лефе

Я тоже не делал и не видел, но судя по информации из LEF/DEF Languafe Reference такое возможно.

Это я для примера накидал ячейку. Никто не мешает размечать ядро какими угодно SITE, стыковка ячеек и согласование с шагом разводки это задача тех, кто ячейки рисует (с этим проблем нет).

В соотношении 2 к 1 есть какой-то сакральный смысл? Я придерживаюсь того мнения, что оно условно (в разумных пределах).

Я экспериментирую, сам же делаю и tech_lef и ячейки, по размерам все согласовано. Но placer не использует не задействованную площадь внутри ячейки, в том и проблема. К сожалению нагуглить по этому поводу ничего не получилось. Возможно я не правильно понял информацию изложенную в LEF/DEF Languafe Reference.

Share this post


Link to post
Share on other sites

Сакральный смысл такой: есть сайт стандарт селлов, ваш селл должен соответствовать этому сайту (если хотите размещать разные селлы вместе), а значит должен быть такой же высоты, или кратен. Ширина должна быть кратна минимальной ширине филлера. То же касается и выреза вашего селла - высота и ширина кратны. И я полагаю что эта же кратность должна быть у OVERLAP - попробуйте. Это же конструкция исключительно для p&r тула.

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this