Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
virtuoso schematic composer_5.0.pdf
Скачиваний:
97
Добавлен:
05.06.2015
Размер:
3.8 Mб
Скачать

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Using TSG Constructs

The following constructs can be included in a TSG symbol description file.

TSG Construct

Definition

defcell

cell definition

input

input pin

output

output pin

io

I/O pin

defsymbol

symbol definition

viewName

symbol view name

symbolProps

symbol properties

symbolParam

symbol parameter

symbolLabels

symbol labels

controlParam

control parameters

pinNumSpec

pin number specification

pinGraphicSpec

pin graphic specification

pinLocSpec

pin location specification

pinLogicSpec

pin logic type specification

Cell Definition

The defcell construct is the highest level construct in a TSG symbol description file. It has the form CF1 and contains the variable cell name and four constructs: input, output, io, and defsymbol.

These four constructs, specific todefcell, are the only ones that you can include in defcell. Any other construct is ignored by TSG but can be processed by other Cadence tools, such as the symbol and simulation library generator (S/SLG). Refer to Appendix C, “Symbol and Simulation Library Generator.”

The variable cellName represents the cell name portion of a symbol cellview into which the generated symbol is stored. You must specify this cell name as a string.

October 2002

607

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Example:

defcell( <cellName> )

Input Pin

The input construct has the form CF1, and you can include it in the defcell construct. It contains a list of the symbol input pins. By default, all input pins are drawn on the left side of the symbol from top to bottom.

To move an input pin to any other side, you specify the pin in the pinLocSpec construct.

Refer to “PinLocation Specification” on page 617 for details. If a pin specified in this construct is also specified in theoutput or io constructs, an error message is generated.

Example:

defcell( <cellName>

[input( <pinName1> <pinName2> ... <pinNameK> )] )

Output Pin

The output construct has the form CF1, and you can include it in the defcell construct. The output construct contains a list of the symbol’s output pins. By default, all output pins are drawn on the right side of the symbol from top to bottom.

To move an output pin to any other side, you specify the pin in pinLocSpec. Refer to “Pin Location Specification” on page 617 for details. If a pin specified in this construct is also specified in theinput or io constructs, an error message is generated.

Example:

defcell( <cellName>

[output( <pinName1> <pinName2> ... <pinNameK> )] )

I/O Pin

The io construct has the form CF1, and you can include it in the defcell construct. It contains a list of all I/O symbol pins. By default, all I/O pins are drawn on top of the symbol from left to right.

To move an I/O pin to any other side, you specify the pin in the pinLocSpec construct. Refer to “Pin Location Specification” on page 617 for details. If a pin specified in this construct is also specified in theinput or output constructs, an error message is generated.

October 2002

608

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Example:

defcell( <cellName>

[io( <pinName1> <pinName2> ... <pinNameK> )] )

Symbol Definition

The defsymbol construct specifies symbol properties and parameters, control parameters, labels, and pin information. These values override applicable defaults. This construct has the form CF1, and you can include it in the defcell construct.

defsymbol can contain one or more of the constructs symbolProps, symbolParam, symbolLabels, controlParam, pinNumSpec, pinLocSpec, pinGraphicSpec, pinLogicSpec, and clockPins. These constructs, specific todefsymbol, are the only ones that you can include in defsymbol.

Example:

defsymbol( [<viewName>] [symbolProps( ...)] [symbolParam( ...)] [symbolLabels( ...)] [controlParam( ...)] [pinNumSpec( ...)] [pinLocSpec( ...)] [pinGraphicSpec( ...)] [pinLogicSpec( ...)] [clockPins( ...)]

)

Symbol View Name

viewName is an optional parameter that specifies the view name of the cellview to be created. The default value is symbol. If you specify the viewName parameter, it must be a string and must be the first parameter in thedefSymbol construct.

Symbol Properties

The symbolProps construct has the form CF2, and you can include it in the defsymbol construct. This construct can accept any number of property pairs and any number of defTermProp and defVisibleProp subconstructs. The symbolProps construct is used to create properties on the symbol cellview or properties on sets of terminal pins.

symbolProps(

<property pair> <property pair>

.

.

October 2002

609

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

[defTermProp( <terminal list> <property list>

)]

.

.

[defVisibleProp( <property pair> <label attributes>

)]

.

.

)

defTermProp

defTermProp defines properties on the terminals represented by any of the following choices: all, input, output, inputOutput, topPins, bottomPins, leftPins, or rightPins.

Example:

defTermProp( input Iih = 1.24

a = 3)

defVisibleProp

defVisibleProp defines a property and thelabel attributes information for displaying that property.

Within defVisibleProp, you can specify one or more of the following label attributes: location, apply, format, layer, purpose, justification, orientation, isOverbar, fontStyle, and fontHeight.

Example:

defVisibleProp( dName = mara format( "value")

location( "xleft : ytop + 0.0625") justification( centerLeft )

)

property pair

A property pair specification consists of a property name and property value pair. A property pair uses the format

property_name = property_value

property_name can be any identifier or string.property_value can be a simple value plus an optional range, a time, a filename, a SKILL expression, or an NLP expression.

October 2002

610

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Property values other than simple values require a keyword and an argument enclosed in parentheses. Do not leave a space between the keyword and the left parenthesis immediately following it.

When the property pair is specified directly within thesymbolProps construct, a symbol cellview property is created.

simple value

A simple property value can be an integer, a floating-point number (float), or a string

(characters enclosed in quotation marks). The special string values {yes | no | true | false | TRUE | FALSE | t | nil} create Boolean properties. Simple values can also be combined with a range value. When a range is included, enclose the value/range pair in parentheses. For example, the following are valid property pair expressions:

partName = "ALU" ) month = (3 (1 12)))

color = ("red" ("red" "green" "blue")

time

The time keyword indicates the property type is time. Properties of type time are expressed as a time value and an optional range. The time value contains the date, time, and year, enclosed in parentheses. For example, the property

lastChanged = time("Jan 01 8:17:56 2000") is a valid expression. Only the first three characters are needed to specify the month.

filename

The filename keyword indicates the property type is a filename. Followfilename with a string indicating the filename. Enclose the filename string in parentheses. For example, the property myFile = filename("magic.c") is a valid expression.

ilExpr

The ilExpr keyword indicates the property type is a SKILL expression. This type of property requires a valid SKILL expression enclosed in parentheses. For example, pval = ilExpr("if(rc print(\"rc=0"))") is a valid expression.

nlpExpr

The nlpExpr keyword indicates the property type is an NLP expression. This type of property requires a valid NLP expression enclosed in parentheses.

October 2002

611

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

range

Range values are optional arguments when specifying a property. A range value can be either an enumeration type or a pair of values specifying the upper and lower bounds of the range. The values of range must be enclosed in parentheses. If a range is an enumeration type, each value in the range should be a string (a name in quotation marks).

Upper and lower bounding values can be simple numeric values or the argument nil. If nil is specified for a lower or upper bound in a range, the range is unbounded. For example:

p1 = (4 (1 10))

color = ("red" ("red" "green" "blue"))

Symbol Parameter

The symbolParam construct has the form CF2, and you can include it in the defsymbol construct. The following symbol parameters, specific to this construct, are the only ones that can be included in any order without replication. They are not stored in the symbol master property list.

wireSpacing

The minimum spacing between any pair of adjacent pin wires on a side. The default is twice the snap spacing. The value you supply is rounded to the nearest multiple of snap spacing. For more information on snap spacing, refer to the environment variable symSnapSpacing.

wireLength

The length of each pin wire; in other words, a pin stub. The default is twice the value of the wireSpacing field. The value you supply is rounded to the nearest multiple of snap spacing.

vSideLength

The minimum length of the vertical sides. The default ensures enough vertical span to accommodate the pins on both sides. If the value you supply is less than the computed default, the computed default is used. The vSideLength value is rounded to the nearest snap spacing.

hSideLength

The minimum width of the horizontal sides. The default ensures enough horizontal span to accommodate the pins on both the top and bottom sides of the symbol, the part name, and

October 2002

612

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

pin name labels. If the value you supply is less than the computed default, the computed default is used instead. The hSideLength value is rounded to the nearest snap spacing.

pinConnector

The default pin connector graphic. Each entry is mapped into a cellview that contains the actual graphics for the connector. The choices are square, block, and circle. You can add new types by creating a new pin connector cellview and updating the tsgConnectorMasters list in the schConfig.il file.

origin

The default placement of the symbol origin. The choices are topLeftPin, bottomLeftPin, or centerLeft.

Example:

 

symbolParam(

 

wireSpacing

= 0.125

wireLength

= 0.0

vSideLength

= 0.0

hSideLength

= 0.0

pinConnector

= "block"

origin

= topLeftPin )

Symbol Labels

The symbolLabels construct has the form CF1, and you can include it in the defsymbol construct. The symbolLabels construct allows you to define symbol labels. If this construct is not specified, a set of default labels is generated on the symbol.

defLabel

Defines a label with the specified textstring and the label attributes for its display.

symbolLabels(

defLabel( name( string <label attributes> ) )

)

Example:

defLabel( name("[@instanceName]") location( "xleft:(ytop + ybottom)/2") labelType(NLPLabel) justification(upperLeft) layer(instance)

purpose(label)

October 2002

613

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

apply(cellview) fontHeight(0.1)

)

A label specification consists of a name and one or more of the following label attributes: location, apply, labelType, layer, purpose, justification, orientation, isOverbar, fontStyle, and fontHeight.

name

The required name keyword is followed by a name string that specifies the text for the label.

Enclose the label text in quotation marks. If the isOverbar specification is set, place an underscore before and after any text you want an overbar above. For example, the label read|_write_ converts to read|write with an overbar above write.

Label Attributes

The following label attributes are shared by the ldefVisibleProp and defLabel constructs.

location

Location specifies where to place the label. Thelocation keyword is followed by an expression that positions the label on the symbol. The expression can be any SKILL expression that evaluates to a point. The location expression is a function of the variables xleft, xright, ytop, ybottom, and fontHeight for labels applied to a cellview, and of the variables pinSpacing, stubLength, and fontHeight for labels applied to pins. Top, bottom, left, and right pin label positions must be specified separately.

The following specifications are valid location expressions.

location( "xleft : ytop")

Places a label in the upper left corner of a symbol.

location( "(xleft + xright)/2

: ytop + .0625")

Places a label just above the top center of a symbol.

location( "(stubLength)/2

: 0")

Places a pin label halfway down the pin stub for left pins.

location( "0 : -(stubLength)/2")

Places a pin label halfway down the pin stub for top pins.

October 2002

614

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

apply

Apply specifies whether the label is applied to either the cellview or to specific pins. The choices are cellview, top, bottom, left, right, input, output, and inputOutput.

labelType

The optional labelType field (used only in thedefLabel construct) specifies the label type as either normalLabel (default), NLPLabel, or ILLabel.

format

The optional format field (used only in thedefVisibleProp construct) specifies which parts of the property name/value pair are to be displayed. The choices are value (default), name=value, and off.

layer

The optional layer field contains a string that defines the color of the label. The default is device.

purpose

The optional purpose field contains a string that defines the purpose of the label. The default is annotate.

orientation

The optional orientation field determines the rotation of the label in degrees. The choices are R0, R90, R180, and R270.

isOverbar

The optional isOverbar field determines whether a bar or overline is placed over the label text that is placed between underscore characters. Assigning a value of t to isOverbar places the bar on the text. Use nil when no bar is required. The default is nil.

fontStyle

The optional fontStyle field specifies the default font style for a labelfontStyle. requires a string value specifying the new font style. The default is stick.

October 2002

615

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

fontHeight

The optional fontHeight field specifies the default font height for a labelfontHeight. requires a float value specifying the new height.

Control Parameter

The controlParam construct has the form CF2, and you can include it in the defsymbol construct. The controlParam construct contains control parameters you can specify to define execution behavior.

queryMode

Use queryMode only when the specified symbol master already exists in the library. When set to t, TSG runs in query mode in which several questions are asked interactively.

If set to nil (default), TSG runs in the autonomous mode and assumes an existing symbol should be overwritten. It does not prompt you for permission to overwrite an existing symbol cellview. Refer to “Executing TSG” on page 620 for details about the built-in questions when queryMode is set to t.

This control parameter is the only one that can be included in this construct and is not stored in the property list of the symbol master.

Example:

controlParam( queryMode = t )

Pin Number Specification

The pinNumSpec construct has the form CF3, and you can include it in defsymbol. It contains a list of pinName:pinNumber pairs. A colon (:) separates the pin name and pin number. Any pin specified in this construct must also be declared ininput, output, or io or TSG ignores it and its pin number. This construct is most often used for printed circuit board design libraries.

A pin number must be a positive integer. For each pinName:pinNumber pair specified, the p_pinName property, along with the specified pin number, is stored in the symbol master property list for annotation and backannotation into instances.

October 2002

616

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Example:

pinNumSpec(

[<pinName1> : integer] [<pinName2> : integer] )

Pin Graphic Specification

The pinGraphicSpec construct has the form CF3, and you can include it in defsymbol. It contains a list of pinName:string pairs. A colon (:) separates the pin name and string. The construct identifies special pin graphics, such as negation bubbles and clock indicators, to be drawn with the specified pins. The length of the pin stub and the shape of the pin connector are controlled separately with the wireLength and pinConnector symbol parameters.

The default is actHi. The predefined values forpinGraphicSpec are actHi, actLo, ieeeActLo, clock, and actLoClock. Each of these values matches an entry in the schConfig.il file, which maps to a corresponding cellview containing the pin graphics. To create a new type of pin graphic, create a new cellview with the pin graphic and add an entry to the tsgPinGraphicMasters list in the schConfig.il file.

Example:

pinGraphicSpec( [<pinName1> : string] [<pinName2> : string] )

Pin Location Specification

The pinLocSpec construct has the form CF1, and you can include it in defsymbol. The pinLocSpec construct contains up to four subconstructs with which you can specify the pin location in any order without replication. All four of these subconstructs have the CF1 form, and you can include them in the pinLocSpec. Pin names in any of these subconstructs must also be specified in theinput, output, or io constructs or TSG ignores them. This construct allows you to override default pin placement locations.

leftPins

The names of pins to draw on the left of the symbol.

Other pins can be drawn on the left of the symbol. Pins specified ininput are also drawn on the left of the symbol. A pin specified ininput but not specified inpinLocSpec is drawn on the left before those in leftPins. A pin name in leftPins cannot be specified again in the other three subconstructs.

October 2002

617

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

rightPins

The names of pins to draw on the right of the symbol.

Other pins can be drawn on the right of the symbol. Pins specified inoutput are also drawn on the right of the symbol. A pin specified inoutput but not specified inpinLocSpec is drawn on the right before those in rightPins. A pin name in rightPins cannot be specified again in the other three subconstructs.

topPins

The names of pins to draw on the top of the symbol.

Other pins can be drawn on the top of the symbol. Pins specified inio are also drawn on the top of the symbol. A pin specified inio but not in pinLocSpec is drawn on the top before those in topPins. A pin name in topPins cannot be specified again in the other three subconstructs.

bottomPins

The names of pins to draw on the bottom of the symbol.

A pin name in bottomPins cannot be specified again in the other three subconstructs.

Example:

pinLocSpec(

[leftPins( <pinName1> <pinName2> ... <pinNameN> )] [rightPins( <pinName1> <pinName2> ...<pinNameN> )] [topPins( <pinName1> <pinName2> ... <pinNameN> )] [bottomPins( <pinName1> <pinName2> ...<pinNameN> )]

)

Pin Logic Type Specification

Using this construct is not recommended, but it remains supported for backward compatibility. The pinGraphicSpec construct is the preferred method for specifying special pin graphics. The pinLogicSpec construct specifies negation indicators. It has the form CF1, and you can include it in defsymbol. It contains one or more of the following subconstructs to specify the logic types of symbol pins. Both subconstructs have the form

CF1, and you can include them in the pinLogicSpec in any order without replication. Any pins specified in either subconstruct must also be specified in theinput, output, or io constructs; otherwise, TSG ignores this subconstruct.

October 2002

618

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

positive

A list of pin names that indicate the positive logic type of the pins.

negative

A list of pin names that indicate the negative logic pin type. Negative pins appear in the symbol as a bubble.

Clock Pins Specification

Using this construct is not recommended, but it emains supported for backward compatibility. The pinGraphicSpec construct is the preferred method for specifying special pin graphics. The clockPins construct specifies the display of clock indicators. It has the form CF1, and you can include it in defsymbol. Any pins specified must also be specified in input, output, or io or TSG ignores the construct. This construct takes a list of pin names to be drawn as clock pins. Clock pins are designated by a small triangle (a clock indicator) next to the pin.

Configuration Variables

tsgFilterGlobalNames

When this SKILL global variable is set to t, global names ending with an exclamation point are filtered out and do not appear in the symbol; for example,VDD! or GND!. The default is t.

tsgHSymbolBoxFactor, tsgVSymbolBoxFactor

These SKILL global variables represent horizontal and vertical symbol box factors, respectively. They are applied to the horizontal and vertical length of the symbol box to let you have control over the symbol size. The defaults are tsgHSymbolBoxFactor = 1, tsgVSymbolBoxFactor = 1. For example, tsgHSymbolBoxFactor = .7 would make symbols narrower.

tsgKeepPinPlacement

Left and right symbol pins are placed starting near the top of the symbol. Therefore, the uppermost left pin is at the same Y dimension as the uppermost right pin. In other words, the pins are not centered but instead are moved up near the top of the symbol. When additional pins are added, the original pins are not moved and do not need to be rewired. If you want to

October 2002

619

Product Version 5.0

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