Glade Reference


Creating and Using Technology Files

A techfile can be created using a text editor or by importing GDS2 or LEF and then exporting the techfile created, and subsequently editing the exported file to set colors, fill styles etc. Layer colours, stipples, linestyles can all be edited directly using the LSW.

 

Layer definitions

The layers section comprises lines beginning with a LAYER keyword and 11 parameters:

//    Name Purpose Export Import RGB sel? vis? fillstyle linestyle valid? mask
LAYER pwell drawing 31:0,31:1 31:0 (150,150,217,255) t t empty plain t o ;
LAYER nwell drawing 32:0 32:0 (170,0,255,255) t t empty plain t o ;
LAYER diff drawing 33:0,46:1 33:0 (0,204,0,255) t t dots2 plain t o ;
LAYER od2 drawing 40:0 40:0 (217,204,0,255)t t dots2 plain t o ;
LAYER poly1 drawing 130:0,130:2 130:0 (255,0,0,255) t t zagr1 plain t o ;

The first parameter is the layer name, the second parameter its purpose. The default purpose for drawing layers is 'drawing'. When reading LEF/DEF 3-4 other purposes are required - 'pin' for port shapes, 'boundary' for obstructions (blockages), 'net' for routing shapes and optionally 'text' for pin text. The combination of layer name and layer purpose uniquely defines a layer-purpose pair, thus it is not permitted to use the same combination oflayer name and purpose more than once.

Parameter 3 is the GDS2/OASIS layer number(s) and datatype(s) for exporting to map a layer-purpose pair to a GDS/OASIS layer and datatype. They are in the format of one or more layer/datatype pairs e.g. 13:0. Multiple pairs may be specified e.g. 13:0,13:1,13:4 using ',' as a delimiter - note that no whitespace is allowed. Parameter 4 is the GDS/OASIS layer number and datatype for importing to map a layer-purpose pair to a GDS/OASIS layer and datatype e.g. 16:0

The fifth parameter is the layer color expressed in RGBA (red-green-blue-alpha) values. Values for R, G, B and A can range from 0 to 255. Thus (255,0,0,255) defines bright red (and fully opaque) and (255,255,0, 128) defines yellow (and half transparent). The RGBA values should be delimited by commas and surrounded by brackets as shown. No spaces or tab characters are permitted in a RGBA value.

The alpha channel (A), the fourth component of the RGBA value represents the transparency of the layer, with 255 being opaque and 0 fully transparent. Alpha blending is supported for both OpenGL mode and software rasterisation mode.

The sixth and seventh parameters define whether the layer is selectable and/or visible. Permissable values are 't' for true and 'f' for false.

The eighth and ninth parameters define the fillstyle and linestyle for the layer. These are defined by name and reference fill and line styles as described below.

The tenth parameter defines whether a layer is valid, i.e. visible in the LSW. This can be useful for 'hiding' certain layers. The eleventh parameter is the mask number for use with colouring and is an integer; the default is 0 for no colouring.

Note that technology file lines end in a ';' character. This defines the logical line end and must be present. Carriage returns and line feeds are ignored and a '//' defines a comment line which is also ignored.

The order of the LAYER lines in the techfile controls the drawing order of the layers. To draw a layer 'on top' of another it should follow the other layer.

 

Line Styles

//    NameWidthStyle
LINEplain0SOLID;
LINEthicksolid4SOLID;
LINEthick2SOLID;
LINEdashed22DASH;
LINEdotted0DOT;
LINEdashdot0DASHDOT;
LINEdashdotdot0DASHDASHDOT;

Line styles start with the LINE keyword followed by 3 parameters: the linestyle name, the line width and the line style. Line widths should normally be set to 0 for a minimum width line as this gives slightly better rendering performance than a linewidth of 1 (which otherwise will display the same). Line styles can be one of the following: SOLID, DASH, DOT, DASHDOT or DASHDOTDOT.

 

Stipple Patterns

//
// Stipple Patterns.
//
// Name Type Pattern
STIPPLE patt1 STIPPLE
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;

STIPPLE empty HOLLOW ;
STIPPLE solid SOLID ;
STIPPLE cross CROSSED ;

Stipple patterns begin with a STIPPLE keyword followed by a stipple name. The second parameter can be one of HOLLOW, SOLID, CROSSED or STIPPLE, which define the kind of stipple pattern. In the case of a STIPPLE fill pattern a 16 by 16 bit stipple pattern comprised of 1's and 0's follows which defines the fill pattern.Stipple patterns can be 8x8, 16x16, 32x32. Other sizes will get 'filled' to the nearest greater bit width/height.

 

Via Definitions

Vias can be defined by the VIA keyword.

//
// Via rules.
//
VIA P_M1
poly drawing -0.5 -0.5 0.5 0.5
cont drawing -0.2 -0.2 0.2 0.2
metal drawing -0.5 -0.5 0.5 0.5 ;

A via has a name then a list of via layers comprising a layer/purpose pair name and coordinates of the layer rectangle. The list of via layers should normally be in order from lowest processed layer up, starting with a routing layer, then a cut layer, then a routing layer. Multiple shapes can be defined for each layer e.g. cut layer (for multi cut vias).

 

Width and Spacing rules

Each layer can have a minimum width and minimum space rule that can be used for basic rules checks. The syntax is as follows:

//
// Spacing rules.
//
// Minimum Width (distance between inner edges of the layer)
MINWIDTH poly drawing 0.25 ;
//
// Minimum Diagonal Width (distance between inner edges of the layer)
MINDIAGWIDTH poly drawing 0.25 ;
//
// Minimum Spacing (distance between outer edges of the layer)
MINSPACE poly drawing 0.30 ;
//
// Minimum Diagonal Spacing (distance between outer edges of the layer)
MINDIAGSPACE poly drawing 0.30 ;
//
// Minimum Spacing (distance from outer edge of one layer to outer edge of the second layer)
MINSPACE poly drawing active drawing 0.07 ;
//
// Minimum Enclosure (distance from inner edge of first layer enclosing outer edge of second layer)
MINENC active drawing pimp drawing 0.24 ;
//
// Minimum Extension (distance from inner edge of first layer extending beyond outer edge of second layer)
MINEXT poly drawing active drawing 0.18 ;
//
// Minimum Overlap (distance from inner edge of first layer to inner edge of overlapping second layer)
MINOVLP pplus drawing active drawing 0.18 ;
//
// Minimum Area of the layer
MINAREA active drawing 0.122 ;
//
// Minimum Hole Area of the layer
MINHOLEAREA active drawing 0.122 ;

 

Layer Function

Layers can have a FUNCTION defined which indicates their usage. This is mainly for LEF/DEF applications but also used by the Create Path command to define via layers between routing layers. Without this information, the change layer up/down feature of Create Path will not work.

//
// Layer Function.
//
FUNCTION metal1 net ROUTING ;
FUNCTION metal1 boundary BLOCKAGE ;

Valid function keywords are WELL, DIFFUSION, IMPLANT, CUT, MASTERSLICE, ROUTING, BLOCKAGE, PIN, OVERLAP

 

Layer Connectivity

The Trace Net command requires layer connectivity information in order to trace connection through vias etc. The format of this is as follows:

//
// Layer Connections.
//
CONNECT metal1 drawing BY via1 drawing TO metal2 drawing ;
CONNECT metal1 drawing TO metal1a drawing ;

The first form connects two routing layers by a via layer; the second format connects two routing layers directly.

 

MultiPartPaths

MultiPartPath (MPP) definitions can be defined in the techfile. A MPP is a path that can have multiple layers, including cut layers, but can be entered and edited just like a normal path.

//
// MultiPartPath rules.
MPP nguard LAYER NTUB drawing WIDTH 14.5 BEGEXT 7.25 ENDEXT 7.25 OFFSET 0.0 ;
MPP nguard LAYER GASAD drawing WIDTH 4.5 BEGEXT 2.25 ENDEXT 2.25 OFFSET 0.0 ;
MPP nguard LAYER NPLUS drawing WIDTH 9.5 BEGEXT 4.75 ENDEXT 4.75 OFFSET 0.0 ;
MPP nguard LAYER WINDOW drawing WIDTH 2.5 BEGEXT -1.25 ENDEXT 1.25 SPACE 3 LENGTH 2.5 OFFSET 0.0 ;
MPP nguard LAYER METAL drawing WIDTH 5.0 BEGEXT 2.5 ENDEXT 2.5 OFFSET 0.0 ;

Here nguard is the name of the MPP; following the LAYER keyword is the layer and purpose; then a WIDTH defining the width of the layer, BEGEXT defining the extension of the layer away from the first vertex, ENDEXT defining the extension of the layer away from the last vertex. OFFSET if present is the offset of the layer from the centreline, negative being to the left (inside) of the MPP and positive being to the right (outside). If SPACE and LENGTH keywords are present following the ENDEXT value, the layer is assumed to be a cut layer and will have square cuts of size LENGTH spaced SPACE apart, with an optionall OFFSET.

 

Techfile limits

Currently 4096 layer-purpose pairs are supported, of which 24 are system-defined. The maximum logical line length in the techfile is limited to 32768 characters. There are no limits to the number of line and fill styles that can be defined.

 

 

Contents|Index

Copyright © Peardrop Design 2024.