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

Bartels System GmbH
Bartels
Bartels AutoEngineer
BAE Produktinfo
BAE Preisliste
BAE Downloads
BAE Dokumentation
BAE Installationsanleitung
BAE Benutzerhandbuch
BAE Bibliotheken
User Language Programmierhandbuch
Vorwort
1 Einleitung
2 Sprachbeschreibung
3 Programmiersystem
4 BAE User Language-Programme
A Konventionen und Definitionen
B Index-Variablen-Typen
B.1 Index-Übersicht
B.2 Standard Index-Beschreibung (STD)
B.3 Schematic Capture Index-Beschreibung (CAP)
B.4 Layout Index-Beschreibung (LAY)
B.5 CAM-View Index-Beschreibung (CV)
B.6 IC Design Index-Beschreibung (ICD)
C Systemfunktionen
BAE Update-Historie
BAE Nächste Version Freigabemitteilungen Vorabinfo
BAE V8.0 Freigabemitteilungen
BAE V7.8 Freigabemitteilungen
BAE V7.6 Freigabemitteilungen
BAE V7.4 Freigabemitteilungen
BAE V7.2 Freigabemitteilungen
BAE V7.0 Freigabemitteilungen
BAE V6.8 Freigabemitteilungen
BAE V6.6 Freigabemitteilungen
BAE V6.4 Freigabemitteilungen
BAE V6.2 Freigabemitteilungen
BAE V6.0 Freigabemitteilungen
BAE V5.4 Freigabemitteilungen
BAE V5.0 Freigabemitteilungen
BAE V4.6 Freigabemitteilungen
BAE V4.4 Freigabemitteilungen
BAE V4.2 Freigabemitteilungen
BAE V4.0 Freigabemitteilungen
BAE V3.4 Freigabemitteilungen
BAE Support
BAE Contrib
BAE Entwickler und Dienstleister
Elektronikentwicklung
Sport
Firmenprofil
Impressum
Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Index-Variablen-Typen :: IC Design Index-Beschreibung (ICD)
Bartels User Language - Programmierhandbuch

B.6 IC Design Index-Beschreibung (ICD)

Bartels AutoEngineer® Dokumentation

Dieser Abschnitt beschreibt die in der Bartels User Language definierten Index-Variablen-Typen für den IC-Design Datenzugriff (ICD).


I_ATTRIBUTE - IC-Design Netzlisteneintrag Attribut

Über den Index I_ATTRIBUTE ist der Zugriff auf die in der Netzliste eingetragenen Bauteil- bzw. Netzattribute des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_ATTRIBUTE lautet:

index I_ATTRIBUTE {           // Attribut Index
      string NAME;            // Attribut Name
      string VALUE;           // Attribut Wert
      };

I_CNET - IC-Design Netzliste

Über den Index I_CNET ist der Zugriff auf die in der Netzliste eingetragenen Netze des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_CNET lautet:

index I_CNET {                // Physikalische Netzliste Index
      string NAME;            // Netz Name
      int NUMBER;             // Netz Nummer
      int PRIOR;              // Netz Routingpriorität
      double RDIST;           // Netz Mindestabstand (STD2)
      int PINN;               // Anzahl Pins
      index I_CPIN;           // Liste der Pins
      index I_ATTRIBUTE;      // Liste der Attribute
      index I_POOL UNRPOOL;   // Verweis auf Unroutes Poolelement
      };

Die Netznummer wird allgemein zur Identifizierung eines Netzes herangezogen. Mit der Funktion icd_gettreeidx kann ausgehend von der angegebenen Netznummer der entsprechende I_CNET Index gefunden werden. Der Mindestabstand gibt die Distanz an, die Leiterbahnen dieses Netzes zu nicht dem entsprechenden Netz zugehörenden Kupferstrukturen mindestens einhalten müssen. Der Zugriff auf die zum Netz gehörenden Pins bzw. Attribute erfolgt über eine entsprechende forall-of-Schleife. Die Indexvariable UNRPOOL ermöglicht den Zugriff auf die noch nicht verlegten Verbindungen (Unroutes, Airlines) des entsprechenden Netzes; die Abarbeitung dieser Verbindungen kann mit Hilfe der Systemfunktion icd_scanpool erfolgen.


I_CPART - IC-Design Netzlisteneintrag Bauteil

Über den Index I_CPART ist der Zugriff auf die in der Netzliste eingetragenen Bauteile des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_CPART lautet:

index I_CPART {               // Netzliste Bauteilindex
      string NAME;            // Bauteil Name
      string PLNAME;          // Physikalisches Bibliotheksteil
      int USED;               // Bauteilplatzierungscode:
                              //    0 = Bauteil nicht platziert
                              //    1 = Bauteil platziert
      int PEQUC;              // Bauteil Äquivalenz-Code
      int PINN;               // Anzahl Pins
      int FPINN;              // Anzahl nicht angeschlossene Pins
      index I_MACRO MACRO;    // Verweis auf Makro
      index I_CPIN;           // Liste der Pins
      index I_ATTRIBUTE;      // Liste der Attribute
      };

Auf die Pinliste und die Attributwerte kann mit Hilfe von entsprechenden forall-of Schleifen zugegriffen werden. Bauteile mit identischen Äquivalenz-Codes dürfen auf ihren Einbauplätzen im Zuge einer Platzierungsoptimierung vertauscht werden (Component Swap).


I_CPIN - IC-Design Netzlisteneintrag Bauteilpin

Über den Index I_CPIN ist der Zugriff auf die in der Netzliste eingetragenen Bauteilpins des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_CPIN lautet:

index I_CPIN {                // Netzliste Pin Index
      string NAME;            // Pin Name
      double RWIDTH;          // Pin Routingbreite (STD2)
      int TREE;               // Pin Netznummer
      int GATE;               // Pin Gatternummer
      int GEQUC;              // Pin Gatter-Äquivalenz-Code
      int GEQUP;              // Pin Äquivalenz-Code
      int GGRPC;              // Pin Gatter-Gruppennummer
      int GPNUM;              // Pin Gatter-Relativnummer
      index I_CNET CNET;      // Verweis auf Netz
      index I_CPART CPART;    // Verweis auf Bauteil
      };

Die Pin Routingbreite gibt die Breite an, mit der von dem Pin zum nächsten Verbindungspunkt geroutet werden soll. Über die Indexvariablen CNET bzw. CPART ist der Rückwärtsverweis auf das Netz bzw. das Bauteil, an dem der Pin definiert ist, möglich. Über die Indexvariablen GATE, GEQUC, GEQUP, GGRPC und GPNUM kann die Zulässigkeit der Gatter- und Pinvertauschbarkeit (Pin/Gate Swap) ermittelt werden.


I_FIGURE - IC Design Figurenelement

Über den Index I_FIGURE ist der Zugriff auf die platzierten Figurenelemente (Polygone, Leiterbahnen, Makroreferenzen, Texte) des aktuell geladenen Elements möglich. Die Strukturdefinition von I_FIGURE lautet:

index I_FIGURE {              // Figurenelement Index
      int TYP;                // Element Typ (ICD5)
      string NAME;            // Element Name
      double SIZE;            // Element Größe (STD2)
      double X;               // Element X-Koordinate (STD2)
      double Y;               // Element Y-Koordinate (STD2)
      double ANGLE;           // Element Drehwinkel (STD3)
      int MIRROR;             // Element Spiegelung (STD14)
      int LAYER;              // Element Lage (ICD1)
      int GROUP;              // Element Gruppenflag (STD13)
      int FIXED;              // Element Fixiert Flag (STD11)
      int TREE;               // Element Netznummer
      int RULEOBJID;          // Element Regelsystemobjekt-Id
      index I_POOL POOL;      // Verweis auf Poolelement
      index I_POLY POLY;      // Verweis auf Polygonelement
      index I_LINE LINE;      // Verweis auf Leiterbahnelement
      index I_NREF NREF;      // Verweis auf Makroreferenz (benannt)
      index I_UREF UREF;      // Verweis auf Makroreferenz (unbenannt)
      index I_TEXT TEXT;      // Verweis auf Textelement
      };

Die Indexvariable NAME gibt für benannte Makroreferenzen den Namen und für Texte den Textstring an. Die Indexvariable LAYER gibt die Lagennummer des Figurenelements an. Die Indexvariable POOL ermöglicht den Zugriff auf das Bibliotheks- bzw. Poolelement, aus dem das Figurenelement aufgebaut ist. Einzelne Daten eines Figurenelements können mit den Funktionen ced_elem*chg modifiziert werden. Der komplette Datensatz eines Figurenelements kann mit der Funktion icd_scanfelem über alle Hierarchieebenen abgearbeitet werden.


I_LEVEL - IC Design Signalpotential

Über den Index I_LEVEL ist der Zugriff auf die Connectivity-Level, d.h. auf die Netzlisten- bzw. Signalpotentiale des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_LEVEL lautet:

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

I_LINE - IC Design Leiterbahn

Über den Index I_LINE ist der Zugriff auf die Leiterbahndaten des aktuell geladenen IC-Layouts möglich. Die Strukturdefinition von I_LINE lautet:

index I_LINE {                // Leiterbahn Index
      double WIDTH;           // Leiterbahn Breite (STD2)
      int LAYER;              // Leiterbahn Lage (ICD1)
      int TREE;               // Leiterbahn Netznummer
      int PN;                 // Anzahl Polygonpunkte
      index I_POINT;          // Liste der Polygonpunkte
      };

I_MACRO - IC Design Bibliothekselement

Über den Index I_MACRO ist der Zugriff auf die Makros, d.h. auf die Bibliothekselemente (Bauteile, Padstacks, Pads) des aktuell geladenen Elements möglich. Die Strukturdefinition von I_MACRO lautet:

index I_MACRO {               // Makrodefinition Index
      string NAME;            // Makro Name
      double MLX;             // Linke Makrobegrenzung (STD2)
      double MLY;             // Untere Makrobegrenzung (STD2)
      double MUX;             // Rechte Makrobegrenzung (STD2)
      double MUY;             // Obere Makrobegrenzung (STD2)
      double MNX;             // Nullpunkt X-Koordinate (STD2)
      double MNY;             // Nullpunkt Y-Koordinate (STD2)
      int CLASS;              // Makro Klasse (STD1)
      int COMP;               // Makro Status (STD16)
      };

I_NREF - IC Design Makroreferenz (benannt)

Über den Index I_NREF ist der Zugriff auf die benannten Makroreferenzen, d.h. auf die auf dem aktuell geladenen Element namentlich platzierten Bibliothekselemente möglich. Auf IC-Layoutebene sind dies die platzierten Zellen; auf Zellenebene sind dies die platzierten Pins. Die Strukturdefinition von I_NREF lautet:

index I_NREF {                // Benannte Referenz Index
      string NAME;            // Referenz Name
      double X;               // Referenz X-Koordinate (STD2)
      double Y;               // Referenz Y-Koordinate (STD2)
      double ANGLE;           // Referenz Drehwinkel (STD3)
      double SCALE;           // Referenz Skalierungsfaktor
      int MIRROR;             // Referenz Spiegelung (STD14)
      index I_MACRO MACRO;    // Makro Index
      };

Über die Indexvariable MACRO ist der Zugriff auf das durch das I_NREF-Element referenzierte Bibliothekselement möglich.


I_POINT - IC Design Polygonpunkt

Über den Index I_POINT ist der Zugriff auf einzelne Polygonpunkte eines Polygons möglich. Die Strukturdefinition von I_POINT lautet:

index I_POINT {               // Polygonpunkt Index
      double X;               // Polygonpunkt X-Koordinate (STD2)
      double Y;               // Polygonpunkt Y-Koordinate (STD2)
      int TYP;                // Polygonpunkt Typ (STD15)
      };

Der Index I_POINT ist nur als of-Index für die Liste der Polygonpunkte in I_POLY bzw. in I_LINE zu verwenden.


I_POLY - IC Design Polygon

Über den Index I_POLY ist der Zugriff auf die im aktuell geladenen Element definierten Polygone (aktive Flächen, Sperrflächen oder Dokumentarlinien) möglich. Die Strukturdefinition von I_POLY lautet:

index I_POLY {                // Polygon Index
      int LAYER;              // Polygon Lage (ICD1)
      int TREE;               // Polygon Netznummer
      int TYP;                // Polygon Typ (ICD4)
      int MVIS;               // Polygon Spiegelungsmodus (ICD3)
      int PN;                 // Anzahl Polygonpunkte
      index I_POINT;          // Liste der Polygonpunkte
      };

Der Zugriff auf die zum Polygon gehörenden Polygonpunkte erfolgt über eine entsprechende forall-of-Schleife. Die Netznummer ist nur für aktive (leitende) Flächen von Bedeutung. Zur Bestimmung der Netzzugehörigkeit aktiver Flächen sind die Funktionen icd_scanfelem bzw. icd_scanall zu verwenden.


I_POOL - IC Design Poolelement

Über den Index I_POOL ist der Zugriff auf die aktuell geladenen Poolelemente möglich. Die Strukturdefinition von I_POOL lautet:

index I_POOL {                // Poolelement Index
      int TYP;                // Poolelement Typ (ICD7)
      int REFCNT;             // Poolelement Referenzierungsanzahl
      int LAYER;              // Poolelement Lage (ICD1)
      index I_POOL NXT;       // Verweis auf nächstes Poolelement
      index I_POOL REF;       // Verweis auf Referenz-Poolelement
      index I_POLY POLY;      // Verweis auf Polygonelement
      index I_LINE LINE;      // Verweis auf Leiterbahnelement
      index I_NREF NREF;      // Verweis auf Makroreferenz (benannt)
      index I_UREF UREF;      // Verweis auf Makroreferenz (unbenannt)
      index I_TEXT TEXT;      // Verweis auf Textelement
      index I_MACRO MACRO;    // Verweis auf Bibliothekselement
      };

Der Index I_POOL wird benötigt zur Abarbeitung von Bibliotheksdefinitionen mit Hilfe der Systemfunktion icd_scanpool. Die Indexvariable REFCNT gibt an, wie oft das entsprechende Poolelement innerhalb des aktuell geladenen Elements referenziert wird. Die Indexvariablen NXT und REF dienen der schnellen Abarbeitung der aktuell referenzierten Poolelemente.


I_TEXT - IC Design Text

Über den Index I_TEXT ist der Zugriff auf die im aktuell geladenen Element definierten Texte möglich. Die Strukturdefinition von I_TEXT lautet:

index I_TEXT {                // Text Index
      string STR;             // Text String
      double X;               // Text X-Koordinate (STD2)
      double Y;               // Text Y-Koordinate (STD2)
      double ANGLE;           // Text Drehwinkel (STD3)
      double SIZE;            // Text Größe (STD2)
      int LAYER;              // Text Lage (ICD1)
      int MIRROR;             // Text Spiegelung (STD14)
      int MODE;               // Text Modus (ICD2)
      };

I_UREF - IC Design Makroreferenz (unbenannt)

Über den Index I_UREF ist der Zugriff auf die unbenannten Makroreferenzen, d.h. auf die auf dem aktuell geladenen Element namenlos platzierten Bibliothekselemente möglich. Auf IC-Layoutebene sind dies die platzierten Vias. Die Strukturdefinition von I_UREF lautet:

index I_UREF {                // Namenlose Referenz Index
      int TREE;               // Referenz Netznummer
      double X;               // Referenz X-Koordinate (STD2)
      double Y;               // Referenz Y-Koordinate (STD2)
      double ANGLE;           // Referenz Drehwinkel (STD3)
      double SCALE;           // Referenz Skalierungsfaktor
      int MIRROR;             // Referenz Spiegelung (STD14)
      index I_MACRO MACRO;    // Verweis auf Makro
      };

Über die Indexvariable MACRO ist der Zugriff auf das durch das I_UREF-Element referenzierte Bibliothekselement möglich.

Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Index-Variablen-Typen :: IC Design Index-Beschreibung (ICD)

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

© 1985-2024 Oliver Bartels F+E Bartels Startseite Kontakt und Impressum

Webentwicklung Baumeister Mediasoft Engineering

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