Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
layout editor.pdf
Скачиваний:
180
Добавлен:
05.06.2015
Размер:
3.04 Mб
Скачать

Virtuoso XL Layout Editor User Guide

Setting Up Device Abutment for Virtuoso XL Layout Editor

Abutment Requirements

Devices can be abutted only between pins of different instances. Abutment of pins requires the following conditions:

Both instances must be pcells set up for abutment or cells with abutment properties.

Both instances must be from the same master or have the abutClass property.

To abut two different cells, you must add the property abutClass to the pin of each cell and enter the same abutment class name as the value for each property.

If two similar pcells have different parameter values, they have different submasters; in that case, abutment works only if they have the same master.

Both instance pins must be connected to the same net.

Both instance pins must be defined on shapes of the same layer or on layers that are defined as equivalent layers in the technology file.

Both instance pins can have the same abutment direction if the rotation of one of the pins, but not both is either “R180” or “MY”, or any other rotation that transforms the left hand side to the right hand side.

The shapes of the two pins must be identical, or one of them must be able to be completely contained within the other.

During placement, the Connectivity Extractor and Auto Abutment options in the Virtuoso XL Options form must be turned on.

Abutted devices can share diffusion, contacts, metal tabs, or any shape combined in an instance pin.

Setting Up Cells for Abutment

You can set up both regular cells (in any technology) and pcells for abutment. To set up a regular cell so that it can be abutted, you need to add the following four properties to the pins.

abutFunction

abutOffset

abutAccessDir

abutClass

December 2002

115

Product Version 5.0

Virtuoso XL Layout Editor User Guide

Setting Up Device Abutment for Virtuoso XL Layout Editor

You can also place these properties on a cellview to set up abutment for all the pins in the cellview. If any pin in the cellview also has properties that differ from the properties on the cellview, the properties on the pin override the properties on the cellview.

If you are using pcells, you can use the default abutment functions.

abutFunction

abutFunction is a callback that you create to process abutment and un-abutment.The

®

value of this property is a string consisting of the name of a user-defined Cadence SKILL function that is executed before abutment takes place. Auto-abutment passes this function eight arguments in a list made up of the following information in this order:

1.The dbId of the cell being abutted

2.The dbId of the cell being abutted to

3.The dbId of the pin figure of the cell being abutted

4.The dbId of the pin figure of the cell being abutted to

5.The abutment access direction of pin being abutted (integer):

1 - top

2 - bottom

4 - left

8 - right

6.An integer with a valid value of 1or 2 that indicates connection condition:

1 - pins are connected to the same net and do not connect to any other pin

2 - pins are connected to the same net and the net connects to other pins

7.An integer specifying auto-abutment events:

1 - abutFunction must compute and return abutment offset (in the direction of abutment)

2 - abutFunction must adjust pcell parameters for abutment. This is called before the offset event.

3 - abutFunction must adjust pcell parameters for unabutment

4 - abutFunction must compute and return spacing offset for non abutment.

December 2002

116

Product Version 5.0

Virtuoso XL Layout Editor User Guide

Setting Up Device Abutment for Virtuoso XL Layout Editor

8.A dbId that is the abutment group pointer available to events 2 and 3. It is used to store information so that unabutment can return pins to their original state. It is a generally accepted method to use the group attribute of a cell to hold original parameter values prior to modification by abutment.

abutFunction returns different values for different auto-abutment events:

If the event is 1, it returns a floating-point number, the offset needed to abut the cells in the direction of abutment. If it returns two floating-point numbers, the second number is the distance in user units that the abutting cell is moved perpendicularly to the abutting edge.

If the event is 2, it returns t for success and nil for failure.

If the event is 3, it can return anything; the value returned is not used.

Here is an example of the abutFunction property:

procedure( abutFunction(iA iB pA pB pASide connection event @optional (group nil)) prog((result)

case(event

(1 ; Compute offset

result = getAbutmentOffset(iA iB pA pB pASide connection)

)

(2 ; Adjust pcell parameters

result = setAbutmentParams(iA iB pA pB pASide connection group)

)

(3 ; Adjust pcell parameters back to default resetAbutmentParams(group iA iB)

result = t

)

(t ; Anything else return a nil result = nil

)

)

return(result)

)

)

abutOffset

abutOffset 5

abutOffset sets an offset based on the reference edge. The reference edge is the outside edge of the pin that triggered the abutment on each cell in the direction defined by the abutment direction. The value of this offset is a floating-point number. This number can be

December 2002

117

Product Version 5.0

Virtuoso XL Layout Editor User Guide

Setting Up Device Abutment for Virtuoso XL Layout Editor

positive or negative and indicates a distance (in user units) to offset the reference edge to the outside direction of the cell. A negative number causes the pins to overlap.

If the abutFunction parameter adjustment event returns nil, auto-abutment looks for a property on the pin called abutOffset and applies the value of this property for offset. If the property abutOffset does not exist, auto-abutment uses the outside edge of the pin with no offset.

Alignment Perpendicular to Abutment Direction

If the pin of the device being abutted overlaps the other pin on the bottom or top, the pins are aligned by the bottom or top edges, respectively. This also applies from side to side when abutment is vertical.

Interactive move places one cell approximately overlapping another

Cells are first aligned and then the offset is applied. In this case, abutOffset = 0 or not set

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

res

 

 

 

 

 

 

 

 

 

 

res

 

res

 

res

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

abutOffset = -5

 

abutOffset = 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

res

 

res

 

res

 

 

res

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 2002

118

Product Version 5.0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]