Glade Reference


Symbol Editing

 

The Symbol Editor is activated when a cellView with viewType 'symbol' is opened. The Symbol Editor is used to edit symbol views used in schematics; a symbol is a device such as a mos transistor, logic gate or block.

Symbol requirements

 

Creating a symbol.

Use the Create menu commands to create shapes on the device layer to represent the symbol (line, rectangle, polygon, circle, ellipse, arc).

Next, create pins using the Create->Pin menu command. Pins require a name (e.g a mos transistor gate pin may be called 'G'), a use (e.g. SIGNAL, POWER etc) and a direction. A pin shape is automatically created according to the direction - NONE generates a square pin, INPUT, OUTPUT and INOUT create polygonal pins.

Then add device labels using the Create->Label menu command.

Add device properties to the symbol by using the Edit->Properties->Query CellView menu command or 'Q' bindkey to add or modify the symbol's properties.

Lastly a selection rectangle can be added by setting the current layer to 'boundary' in the LSW and creating a rectangle that covers the instance. This will then be used for dynamic highlighting and selection, rather than the instance bounding box (which can be extended due to labels etc).

 

NLP syntax

NLP (Net List Property) syntax is used for labels with type NLPLabel, and for the hierarchical netlister.

An NLP expression is enclosed in square brackets. An NLP label can consist of multiple expressions and other text, which is copied literally. Expressions must be delimited by whitespace. To add special characters into an NLP expression, use backquoting. Currently \[ (left quare bracket), \] (right square bracket) and \s (space) are supported.

[@instName] evaluates to the name of the instance.

[@libName] evaluates to the name of the instance library.

[@cellName] evaluates to the name of the instance cell master.

[@viewName] evaluates to the name of the instance master view.

[@modelName] evaluates to the value of the instance master property 'modelName'.

[@elementNum] evaluates to the number of the instance, if the instance name is of the form <char><digits> (which is the default for instance creation)

[@someName] evaluates to the value of the property 'someName' on the instance.

An expression can have formatting information about the property. For example [@w:w=%u] with an instance property w of value 1.0 will evaluate to 'w=1.0u'. [@w:w=%u:w=2.2u] with no property w will evaluate to 'w=2.2u'. If a default is not given then the property will evaluate to a null string.

A linefeed character can be inserted into a NLP label expression using the sequence \n. For example:

[@w:w=%u\n:] [@l:l=%u\n:]

If the instance has properties w, l e.g. w=6u l=1u then the resulting display will be:

w=6u
l=6u

 

 

NLPDeviceFormat properties

A property with the name NLPDeviceFormat is used to control the schematic netlister. A NLPDeviceFormat property on a symbol is a whitespace delimited sequence:

<string><expression> <string> <expression>...

<string> is an arbitrary string of zero or more characters. Backquoted characters \n, \[, \] are treated as a newline character and literal [ or ].

<expression> is a NLP expression enclosed in square brackets and can be of the form:

[|<pinName>:%:<default>] where <pinName> is replaced by the name of the net connecting to the instance pin of an instance of the symbol. If the instance does not have an instance pin, then the expression evaluates to <default>

[@<propName>:<string>%:<default>] as for NLP labels.

 

For example a nmos device may have a NLPDeviceFormat property of

M[@elementNum] [|D:%] [|G:%] [|S:%] [|B:%:gnd!] [@modelName] [@w:w=%u:w=2.0u] [@l:l=%u:l=0.13u] [@m:m=%]

 

 

 

 

 

Contents|Index

Copyright © Peardrop Design 2016.