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

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

The following example shows a symbol generated from the TSG symbol description file shown above.

TSG Symbol Description File Structure

Basic File Structure

A TSG file is an ASCII file used as input to TSG for generating symbol cellviews. To create the file, you must use a special format that includes several constructs and keywords. All constructs have one of the following forms (CF = construct format):

CF1:

=keyword( [variable] ... [variable] [construct] ... [construct] )

CF2:

=keyword( [keyword = value]

... [keyword = value] [construct] [construct] )

CF3:

=keyword( [variable : value] ...

[variable : value] )

Some constructs can appear only inside certain other constructs. Some keywords can appear only once within a construct.

To define more than one symbol in a TSG file, you can use multipledefcell constructs.

Unless otherwise specified, draw input pins on the left side, output pins on the right side, and

I/O pins along the top.

®

To add comments to a TSG file, use the Cadence SKILL language comment characters ; or /* */ .

An illustration of the structure of the defcell construct, which is the only top-level construct allowed in a TSG file, follows.

October 2002

603

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Following the defcell example are further syntax descriptions for properties and labels.

Text in bold = keywords

Text in italics = data types

Text in angle brackets = < names of variables > cellName must be a character string pinName must be a pin name string

Words in square brackets = [optional]. Can be placed anywhere inside their own constructs

defcell( <cellName>

[input( <pinName1> <pinName2> ... <pinNameN> )] [output( <pinName1> <pinName2> ... <pinNameN> )] [io( <pinName1> <pinName2> ... <pinNameN> )] [defsymbol( [viewName]

[symbolProps( <property pair> <property pair>

.

.

[defTermProp( <terminal list> <property list>

)]

.

.

[defVisibleProp( <property pair> <label attributes>

)]

.

.

)] [symbolParam(

[wireSpacing = float] [wireLength = float] [vSideLength = float] [hSideLength = float] [pinConnector = string]

[origin = topLeftPin | bottomLeftPin | centerLeft]

)] [symbolLabels(

defLabel(<label specification>) defLabel(<label specification>)

.

.

)] [controlParam(

[queryMode = t | nil] )]

[pinNumSpec(

[<pinName1> : integer]

.

[<pinNameK> : integer] )] [pinLocSpec(

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

[pinGraphicSpec(

October 2002

604

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

[<pinName1> : string]

.

.

.

[<pinNameN> : string] )] [pinLogicSpec(

[positive( <pinName1> <pinName2> ... <pinNameN> )] [negative( <pinName1> <pinName2> ... <pinNameN> )] )]

[clockPins( <pinName1> <pinName2> ... <pinNameN> )]

)]

)

<property list>:= <property pair> <property list> | <property pair> <property pair>:= <property name> = <property value>

<property name>:= <string> <property value>:=

<simple value> |

( <simple value> [(<range>)]) | time( <time value> ) | filename( <filename value> ) | ilExpr( <string> ) |

nlpExpr( <string> )

<simple value>:= <string> | <numeric value> | <boolean value> <numeric value>:= <integer> | <float>

<boolean value>:= yes | no | true | false | TRUE | FALSE | t | nil <time value>:= <string>

<filename value>:= <string>

<range>:= <enumeration> | <lower bound> <upper bound> <enumeration>:= <string> <enumeration> | <string> <lower bound>:= <numeric value> | nil

<upper bound>:= <numeric value> | nil

<terminal list>:= all | input | output | inputOutput | topPins | bottomPins | leftPins | rightPins

<label specification>:=

name( string <label attributes>) <label attributes>:=

location("<expression>:<expression>") apply(string)

[labelType(normalLabel | NLPLabel | ILLabel)] [format("value" | "name=value" | "off") ] [layer(string) ]

[purpose(string) ] [justification(float) ]

[orientation( R0 | R90 | R180 | R270 ) ] [isOverbar(t/nil) ]

[fontStyle(string) ] [fontHeight(float) ]

Data Types

Some data types used in a TSG symbol description file are defined in the following sections.

October 2002

605

Product Version 5.0

Virtuoso Schematic Composer User Guide

Text-to-Symbol Generator

Character String

A character string can contain one or more alphanumeric characters (a–z, A–Z, 0–9), the underscore (_), and the question mark (?). The first character cannot be a number. Any character other than these must be enclosed in quotation marks (" "). Blank characters must be replaced by an underscore. Examples of character strings are as follows:

SN74LS169A Am2901_MPR006 FFTchip_2MC_V1 "RAM_1M-6/86"

Pin Name String

A pinName string is similar to a character string except that any slash ( / ) is replaced by a vertical bar ( | ). For example, X/Y is transformed to X|Y. Examples of pinName strings are as follows:

OutputEnable inputA "Read|Write_" "Up_|Down"

Terminal List

A terminal list consists of one of the following values:

all

Specifies all terminals of the cell.

input

Specifies all input terminals.

output

Specifies all output terminals.

inputOutput

Specifies all input/output terminals.

topPins

Specifies all top pin terminals.

bottomPins

Specifies all bottom pin terminals.

leftPins

Specifies all left pin terminals.

rightPins

Specifies all right pin terminals.

October 2002

606

Product Version 5.0

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