Часть 9: ИНСТРУМЕНТЫ


plug

9-8: Генерация фрейма контактных площадок

plug


Генератор фрейма контактных площадок читает дисковый файл и размещает кольцо площадок вокруг вашего чипа. Площадки хранятся в отдельной библиотеке и компилируются в текущую библиотеку для создания фрейма площадок.

Формат дискового файла фрейма площадок следующий:

celllibrary LIBRARYFILE [copy]

; идентифицирует файл с площадками

facet PADFRAMEFACET

; создает фасет для поддержки фрейма площадок

core COREFACET

; размещает вашу схему в центре фрейма площадок

align PADFACET INPUTPORT OUTPUTPORT

; определяет входные и выходные порты на площадках

place PADFACET [GAP] [PORTASSOCIATION]

; помещает площадку во фрейм площадок

rotate DIRECTION

; поворачивает угол в размещении площадки

Файл должен иметь точно одинаковые celllibrary и facet заявления, поскольку они идентифицируют библиотеку площадок и фасет фрейма площадок. Если строка celllibrary заканчивается ключевым словом copy, тогда фасеты из этой библиотеки копируются в библиотеку с кольцом площадок (по умолчанию они только иллюстрированы, создавая кросс-библиотечную ссылку на библиотеку площадок). Файл может иметь только одно core заявление для размещения вашей цепи верхнего уровня внутри фрейма площадок. Если нет заявления core , тогда площадки размещаются без какой-либо схемы в середине.

Заявление align используется для идентификации точек соединения на площадках, которые будут использованы при размещении. Каждая площадка должна иметь входной и выходной порт, определяющие края площадки. Эти порты обычно на питающих и земляных шинах, которые проходят через площадку. Когда размещаются площадки, выходной порт одной площадки соотносится со входным портом следующей площадки.

Каждая площадка, которая размещена с заявлением place пристраивается к предыдущей площадке соответственно фактору расположения. Может быть дан пробел (gap) в размещении, который разбрасывает две площадки на указанное расстояние. Например, заявление:

place padIn gap=100

требует, чтобы площадка "padIn" была расположена так, чтобы ее входной порт оказался на 100 единиц лямбда отдален от выходного порта предыдущей площадки.

Если был дан фасет ядра facet, вы можете также указать соединение между площадками и портами ядра. Это сделано получением одного или более соединений порта (port associations) в заявлениях place . Формат связи порта - это просто PADPORT = COREPORT. Например, заявление (statement):

place padOut tap=y

указывает, что порт "tap" на размещенной площадке будет соединен с портом "y" на фасете ядра.

Соединение порта может также создать экспорт на площадке. Заявление:

place padOut export tap=o7

создает экспорт на площадке из ее порта "tap" и называет его "o7".

Заявление rotate поворачивает последующие площадки на указанную величину. Заявление имеет только две формы: rotate c - поворот по часовой стрелке, и rotate cc - поворот против часовой стрелки.

Вот пример дискового файла фрейма площадок с законченной компоновкой. Файл массива - "pads4u.arr" (из папки "Examples"), и он ждет нахождения фасета, названного "tool-PadFrame" (находящегося в библиотеке "samples.txt", которую вы можете прочитать субкомандой Readable Dump команды Import меню File).

; указать библиотеку с площадками  

; разместить верхний край площадок

celllibrary pads4u.txt

place PAD_corner{lay}


place PAD_gnd{lay} gnd_in=gnd

; создать фасет, названный "padframe"

place PAD_vdd{lay} m1m2=vdd

facet padframe



; разместить правый край площадок

; разместить этот фасет, как "ядро - core"

rotate c

core tool-PadFrame

place PAD_corner{lay}


place PAD_in{lay} out=pulse

; установить выравнивание площадок

place PAD_spacer{lay}

; (с экспортами input и output)


align PAD_in{lay} dvddL dvddR

; разместить нижний край площадок

align PAD_out{lay} dvddL dvddR

rotate c

align PAD_vdd{lay} dvddL dvddR

place PAD_corner{lay}

align PAD_gnd{lay} dvddL dvddR

place PAD_out{lay} in=out1

align PAD_corner{lay} dvddL dvddR

place PAD_out{lay} in=out2

align PAD_spacer{lay} dvddL dvddR



; разместить левый край площадок


rotate c


place PAD_corner{lay}


place PAD_in{lay} out=in1


place PAD_in{lay} out=i

Figure 9.16

Этот файл размещает 8 площадок в кольцо (2 на каждой стороне), и также размещает угловые "площадки" для создания изгиба. Входные площадки соединяются с 2 входными портами "a1" и "a2". Выходные площадки соединяются с 3 выходными портами "out1", "out2" и "out3". Площадки питания и земли соединяются с портами "vdd" и "gnd".

Заметьте, что генератор размещает образцы площадок, но не соединяет их друг с другом. В порядке создания единообразного кольца питания и земли между площадками, вы можете использовать автотрассировщик  (Auto-router) или имитатор (Mimic-router) (см. раздел 9-5).

Соединения между площадками и портами фасета ядра используют Unrouted arcs (из Generic технологии, см. раздел 7-9). Эти дуги могут быть конвертированы в реальную геометрию потоковым трассировщиком (river router). Чтобы это сделать вы должны выбрать дуги на одной стороне фрейма площадок и использовать субкоманду River-Route команды Routing меню Tools (см. раздел 9-5, где больше о трассировке). Поскольку потоковый трассировщик всегда подгоняет геометрию влево и вниз, это будте работать только для левой и нижней сторон. Для поворота верха и правой стороны вы должны повернуть всю схему (выберите все и поверните на 180 градусов). После поворота верха и правой стороны (теперь левой и низа) вы можете вернуть схему в ее оригинальную позицию. Законченная компоновка показана здесь, полностью проиллюстрированная.

Figure 9.17


Prev

Предыдущий

   

Contents

Содержание

   

Следующий

Next