Welcome to the Bartels Group of Companies
IC Design Index-Beschreibung (ICD) - Deutsche Version IC Design Index Description (ICD) - English Version
Bartels

Bartels System GmbH
Bartels
Bartels AutoEngineer
BAE Product Info
BAE Price List
BAE Downloads
BAE Documentation
BAE Installation Guide
BAE User Manual
BAE Libraries
User Language Programmer's Guide
Preface
1 Introduction
2 Language Description
3 Programming System
4 BAE User Language Programs
A Conventions and Definitions
B Index Variable Types
B.1 Index Reference
B.2 Standard Index Description (STD)
B.3 Schematic Capture Index Description (CAP)
B.4 Layout Index Description (LAY)
B.5 CAM View Index Description (CV)
B.6 IC Design Index Description (ICD)
C System Functions
BAE Update History
BAE Next Version Release Notes Preliminary
BAE V8.0 Release Notes
BAE V7.8 Release Notes
BAE V7.6 Release Notes
BAE V7.4 Release Notes
BAE V7.2 Release Notes
BAE V7.0 Release Notes
BAE V6.8 Release Notes
BAE V6.6 Release Notes
BAE V6.4 Release Notes
BAE V6.2 Release Notes
BAE V6.0 Release Notes
BAE V5.4 Release Notes
BAE V5.0 Release Notes
BAE V4.6 Release Notes
BAE V4.4 Release Notes
BAE V4.2 Release Notes
BAE V4.0 Release Notes
BAE V3.4 Release Notes
BAE Support
BAE Contributions
BAE Development and Service Companies
Electronics Development
Bartels Sport Service
Company Profile
Corporate Info
Bartels :: Bartels AutoEngineer :: BAE Documentation :: User Language Programmer's Guide :: Index Variable Types :: IC Design Index Description (ICD)
Bartels User Language - Programmer's Guide

B.6 IC Design Index Description (ICD)

Bartels AutoEngineer® Dokumentation

This section describes the Bartels User Language index variable types for the IC Design data access (ICD).


I_ATTRIBUTE - IC Design Net List Attribute

The I_ATTRIBUTE index variable type provides access to the connection list part or net attributes of the currently loaded IC layout. The structure definition of I_ATTRIBUTE is:

index I_ATTRIBUTE {           // Attribute Index
      string NAME;            // Attribute Name
      string VALUE;           // Attribute Value
      };

I_CNET - IC Design Net List

The I_CNET index variable type provides access to the connection list nets of the currently loaded IC layout. The structure definition of I_CNET is:

index I_CNET {                // Connection List Net Index
      string NAME;            // Net Name
      int NUMBER;             // Net Tree Number
      int PRIOR;              // Net Routing Priority
      double RDIST;           // Net Minimum Distance (STD2)
      int PINN;               // Net Pin Count
      index I_CPIN;           // Net Pin List
      index I_ATTRIBUTE;      // Net Attribute List
      index I_POOL UNRPOOL;   // Link to Unroutes Pool Element
      };

The net tree number is used for identifying the net. The icd_gettreeidx function provides access to the I_CNET index for a given net tree number. The minimum distance applies to the traces of the net; this distance must at minimum be kept to copper structures not belonging to the corresponding net. The net pin and/or attribute list can be accessed through a corresponding forall-of loop. The UNRPOOL variable provides access to the unrouted connections of the net; the corresponding airlines can be processed with the icd_scanpool system function.


I_CPART - IC Design Net List Part Entry

The I_CPART index variable type provides access to the connection list parts of the currently loaded IC layout. The structure definition of I_CPART is:

index I_CPART {               // Connection List Part Index
      string NAME;            // Part Name
      string PLNAME;          // Part Physical Library Name
      int USED;               // Part Placement Code:
                              //    0 = Part not placed
                              //    1 = Part placed
      int PEQUC;              // Part Equivalence Code
      int PINN;               // Part Pin Count
      int FPINN;              // Part Free Pin Count
      index I_MACRO MACRO;    // Link to Macro
      index I_CPIN;           // Part Pin List
      index I_ATTRIBUTE;      // Part Attribute List
      };

The part pin and/or attribute lists can be accessed through corresponding forall-of loops. Component swaps can be applied on parts with identical equivalence codes to optimize the placement.


I_CPIN - IC Design Net List Part Pin Entry

The I_CPIN index variable type provides access to the connection list part pins of the currently loaded IC layout. The structure definition of I_CPIN is:

index I_CPIN {                // Net List Pin Index
      string NAME;            // Pin Name
      double RWIDTH;          // Pin Routing Width (STD2)
      int TREE;               // Pin Net Tree Number
      int GATE;               // Pin Gate Number
      int GEQUC;              // Pin Gate Equivalence Code
      int GEQUP;              // Pin Equivalence Code
      int GGRPC;              // Pin Gate Group Number
      int GPNUM;              // Pin Gate Relative Number
      index I_CNET CNET;      // Link to Pin Net
      index I_CPART CPART;    // Link to Pin Part
      };

The pin routing width defines the width for routing to the next connection point. The CNET and CPART variables provide backward links to the corresponding connection list net and part entries, respectively. The GATE, GEQUC, GEQUP, GGRPC and GPNUM variables can be utilized for checking pin/gate swap allowance.


I_FIGURE - IC Design Figure Element

The index variable type I_FIGURE provides access to all placed figure elements (polygons, traces, macro references, texts) of the currently loaded IC Design element. The structure definition of I_FIGURE is:

index I_FIGURE {              // Figure Element Index
      int TYP;                // Element Type (CAP3)
      string NAME;            // Element Name
      double SIZE;            // Element Size (STD2)
      double X;               // Element X Coordinate (STD2)
      double Y;               // Element Y Coordinate (STD2)
      double ANGLE;           // Element Rotation Angle (STD3)
      int MIRROR;             // Element Mirror Mode (STD14)
      int LAYER;              // Element Layer (ICD1)
      int GROUP;              // Element Group Flag (STD13)
      int FIXED;              // Element Fixed Flag (STD11)
      int TREE;               // Element Net Tree Number
      int RULEOBJID;          // Element Rule System Object Id
      index I_POOL POOL;      // Link to Pool Element
      index I_POLY POLY;      // Link to Polygon Element
      index I_LINE LINE;      // Link to Trace Element
      index I_NREF NREF;      // Link to Macro Reference (named)
      index I_UREF UREF;      // Link to Macro Reference (unnamed)
      index I_TEXT TEXT;      // Link to Text Element
      };

The NAME variable holds either the name for a named macro reference or the string of a text element. The LAYOUT variable specifies the element layer number. The POOL variable provides a cross link to the library pool element which builds up the figure element. The figure element attributes can be changed with the ced_elem*chg functions. A feature for scanning the complete figure element data with all hierarchy levels is provided with the icd_scanfelem function.


I_LEVEL - IC Design Signal Level

The I_LEVEL index variable type provides access to the connectivity levels, i.e., the net list and/or signal levels of the currently loaded IC layout. The structure definition of I_LEVEL is:

index I_LEVEL {               // Connectivity Level Index
      int LEVVAL;             // Level Value (ICD6)
      };

I_LINE - IC Design Trace

The I_LINE index variable type provides access to the path and/or trace data defined on the currently loaded IC layout. The structure definition of I_LINE is:

index I_LINE {                // Line Path Index
      double WIDTH;           // Line Path Width (STD2)
      int LAYER;              // Line Path Layer (ICD1)
      int TREE;               // Line Path Tree Number
      int PN;                 // Line Path Point Count
      index I_POINT;          // Line Path Point List
      };

I_MACRO - IC Design Library Element

The I_MACRO index variable type provides access to the macros, i.e., the library elements (cell, pin) used on the currently loaded IC Design element. The structure definition of I_MACRO is:

index I_MACRO {               // Macro Definition Index
      string NAME;            // Macro Name
      double MLX;             // Left Macro Border (STD2)
      double MLY;             // Lower Macro Border (STD2)
      double MUX;             // Right Macro Border (STD2)
      double MUY;             // Upper Macro Border (STD2)
      double MNX;             // Macro Origin X Coordinate (STD2)
      double MNY;             // Macro Origin Y Coordinate (STD2)
      int CLASS;              // Macro Class Code (STD1)
      int COMP;               // Macro Status (STD16)
      };

I_NREF - IC Design Named Macro Reference

The I_NREF index variable type provides access to the named macro references, i.e., the name-specified library elements placed on the currently loaded element. These are cells on IC layout hierarchy level or pin on cell hierarchy level. The structure definition of I_NREF is:

index I_NREF {                // Named Reference Index
      string NAME;            // Reference Name
      double X;               // Reference X Coordinate (STD2)
      double Y;               // Reference Y Coordinate (STD2)
      double ANGLE;           // Reference Rotation Angle (STD3)
      double SCALE;           // Reference Scale Factor
      int MIRROR;             // Reference Mirror Flag (STD14)
      index I_MACRO MACRO;    // Link to Macro
      };

The MACRO variable provides a cross link for accessing the referenced library element.


I_POINT - IC Design Polygon Point

The I_POINT index variable type provides access to the polygon points of a specific polygon or trace element. The structure definition of I_POINT is:

index I_POINT {               // Polygon Point Index
      double X;               // Polygon Point X Coordinate (STD2)
      double Y;               // Polygon Point Y Coordinate (STD2)
      int TYP;                // Polygon Point Type (STD15)
      };

The I_POINT index can only be applied as of-index for the point lists in I_POLY and/or I_LINE.


I_POLY - IC Design Polygon

The I_POLY index variable type provides access to the polygons (active areas, forbidden areas, outline, documentary lines) defined on the currently loaded IC Design element. The structure definition of I_POLY is:

index I_POLY {                // Polygon Index
      int LAYER;              // Polygon Layer (ICD1)
      int TREE;               // Polygon Net Tree Number
      int TYP;                // Polygon Type (ICD4)
      int MVIS;               // Polygon Mirror Mode (ICD3)
      int PN;                 // Polygon Point Count
      index I_POINT;          // Polygon Point List
      };

The polygon net tree number is only valid for active areas. The icd_scanfelem and/or icd_scanall function must be used to check the signal level of passive copper.


I_POOL - IC Design Pool Element

The I_POOL index variable type provides access to the currently loaded pool elements. The structure definition of I_POOL is:

index I_POOL {                // Pool Element Index
      int TYP;                // Pool Element Type (ICD7)
      int REFCNT;             // Pool Element Reference Count
      int LAYER;              // Pool Element Layer (ICD1)
      index I_POOL NXT;       // Link to Next Pool Element
      index I_POOL REF;       // Link to Reference Pool Element
      index I_POLY POLY;      // Link to Polygon Element
      index I_LINE LINE;      // Link to Trace Element
      index I_NREF NREF;      // Link to Macro Reference (named)
      index I_UREF UREF;      // Link to Macro Reference (unnamed)
      index I_TEXT TEXT;      // Link to Text Element
      index I_MACRO MACRO;    // Link to Library Element
      };

The I_POOL index is used for processing library definitions with the icd_scanpool system function. The REFCNT variable specifies, how often the pool element is currently referenced. The NXT and REF variables allow for fast pool element list traversal.


I_TEXT - IC Design Text

The I_TEXT index variable type provides access to text data defined on the currently loaded IC Design element. The structure definition of I_TEXT is:

index I_TEXT {                // Text Index
      string STR;             // Text String
      double X;               // Text X Coordinate (STD2)
      double Y;               // Text Y Coordinate (STD2)
      double ANGLE;           // Text Rotation Angle (STD3)
      double SIZE;            // Text Size (STD2)
      int LAYER;              // Text Layer (ICD1)
      int MIRROR;             // Text Mirror Flag (STD14)
      int MODE;               // Text Mode (ICD2)
      };

I_UREF - IC Design Unnamed Macro Reference

The I_UREF index variable type provides access to the unnamed macro references, i.e., the library elements placed on the currently loaded element without name specification. These are vias on IC layout hierarchy level. The structure definition of I_UREF is:

index I_UREF {                // Unnamed Reference Index
      int TREE;               // Reference Net Tree Number
      double X;               // Reference X Coordinate (STD2)
      double Y;               // Reference Y Coordinate (STD2)
      double ANGLE;           // Reference Rotation Angle (STD3)
      double SCALE;           // Reference Scale Factor
      int MIRROR;             // Reference Mirror Flag (STD14)
      index I_MACRO MACRO;    // Link to Macro
      };

The MACRO variable provides a cross link for accessing the referenced library element.

Bartels :: Bartels AutoEngineer :: BAE Documentation :: User Language Programmer's Guide :: Index Variable Types :: IC Design Index Description (ICD)

IC Design Index Description (ICD)
© 1985-2024 Oliver Bartels F+E • Updated: 19 October 2009, 15:26 [UTC]

© 1985-2024 Oliver Bartels F+E Bartels Homepage Contact and Corporate Info

Web Development by Baumeister Mediasoft Engineering

IC Design Index-Beschreibung (ICD) - Deutsche Version IC Design Index Description (ICD) - English Version