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 9 parameters:

// Technology file example
//
// Name Type Number dtype RGB sel? vis? fillstyle linestyle
LAYER pwell drawing 1 0 (150,150,217,255) t t empty plain ;
LAYER nwell drawing 2 0 (170,0,255,255) t t empty plain ;
LAYER diff drawing 3 0 (0,204,0,255) t t dots2 plain ;
LAYER od2 drawing 4 0 (217,204,0,255) t t dots2 plain ;
LAYER poly1 drawing 13 0 (255,0,0,255) t t zagr1 plain ;

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

Parameters 3 and 4 are the GDS2 layer number and datatype. These are used in importing and exporting GDS2 to map a layer-purpose pair to a GDS layer and datatype.

The fifth parameter is the layer color expressed in RGBA (red-green-blue-alpha) terms. Values for R, G, B and A can range from 0 to 255. Thus (255,0,0) defines bright red and (255,255,0) defines yellow, etc. 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.

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

// Line Styles.
//
// Name Width Style
LINE plain 0 SOLID ;
LINE thicksolid 4 SOLID ;
LINE thick 2 SOLID;
LINE dashed2 2 DASH ;
LINE dotted 0 DOT ;
LINE dashdot 0 DASHDOT ;
LINE dashdotdot 0 DASHDOTDOT ;

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 Fill 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 of the layer
MINWIDTH poly drawing 0.25 ;
//
// Minimum Spacing of the layer
MINSPACE poly drawing 0.30 ;
//
// Minimum Spacing of the layer to another layer
MINSPACE poly drawing active drawing 0.07 ;
//
// Minimum Enclosure (first layer must enclose second by rule)
MINENC active drawing pimp drawing 0.24 ;
//
// Minimum Extension (first layer must extend beyond second layer by rule)
MINEXT poly drawing active drawing 0.18 ;
//
// Minimum Area of the layer
MINAREA 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 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 ;
MPP nguard LAYER GASAD drawing WIDTH 4.5 BEGEXT 2.25 ENDEXT 2.25 ;
MPP nguard LAYER NPLUS drawing WIDTH 9.5 BEGEXT 4.75 ENDEXT 4.75 ;
MPP nguard LAYER WINDOW drawing WIDTH 2.5 BEGEXT -1.25 ENDEXT 1.25 SPACE 3 LENGTH 2.5 ;
MPP nguard LAYER METAL drawing WIDTH 5.0 BEGEXT 2.5 ENDEXT 2.5 ;

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. For normal layers, BEGEXT defines the extension of the layer away from the first vertex, ENDEXT defining the extension of the layer away from the last vertex. For contact layers with SPACE/LENGTH, BEGEXT is the offset of contacts from the start vertex of the MPP, ENDEXT is the offset of contacts from the end vertex of the MPP.

// With offset
MPP nguard LAYER METAL drawing WIDTH 5.0 BEGEXT 2.5 ENDEXT 2.5 OFFSET 0.5 ;
MPP nguard LAYER WINDOW drawing WIDTH 2.5 BEGEXT -1.25 ENDEXT 1.25 SPACE 3 LENGTH 2.5 OFFSET -0.75 ;

Optionally if SPACE and LENGTH keywords are present the layer is assumed to be a cut layer and will have square cuts of size LENGTH spaced SPACE apart.

Optionally the keyword OFFSET can be used after either ENDEXT (for a normal path) or LENGTH (for a contact path) and defines an offset of that layer's centreline to the MPP centreline. A negative OFFSET shifts the points of that layer to the inside (the left of a directed segment), a positive OFFSET shifts the points of that layer to the outside (the right of a directed segment). Note the keywords and values must be in the order given above.

 

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 2023.