|
Dieser Abschnitt beschreibt die in der
Bartels User Language definierten Index-Variablen-Typen für den Schematic Capture Datenzugriff (CAP).
C_ATTRIBUTE - Schaltplan Attribut
Über den Index
C_ATTRIBUTE ist der Zugriff auf die Bauteil-Attribute im Schaltplan möglich. Die Strukturdefinition von
C_ATTRIBUTE lautet:
index C_ATTRIBUTE { // Attribut Index
string NAME; // Attribut Name
string VALUE; // Attribut Wert
};
Der Index
C_ATTRIBUTE ist nur als
of-Index für die Liste der Attribute in
C_NREF zu verwenden.
C_BUSTAP - Schaltplan Busanschluss
Über den Index
C_BUSTAP ist der Zugriff auf die Busanschlüsse (Bustaps) des aktuell geladenen Schaltplans möglich. Die Strukturdefinition von
C_BUSTAP lautet:
index C_BUSTAP { // Busanschluss Index
string NAME; // Busanschluss Name
double X; // Busanschluss X-Koordinate (STD2)
double Y; // Busanschluss Y-Koordinate (STD2)
double ANGLE; // Busanschluss Drehwinkel (STD3)
int MIRROR; // Busanschluss Spiegelung (STD14)
index C_MACRO MACRO; // Verweis auf Busanschluss Makro
index C_CONBASE CON; // Verweis auf Verbindungssegmentgruppe
index C_CONSEG SEG; // Verweis auf Verbindungssegment
};
Die Koordinaten des Busanschlusses liegen immer auf einem Verbindungssegment des entsprechenden Busses. Der Drehwinkel des Busanschlusses ist grundsätzlich ein Vielfaches von 90 Grad. Die Indexvariable
CON ermöglicht den Rückwärtsverweis auf die Verbindungssegmentgruppe, zu der der entsprechende Busanschluss gehört. Die Indexvariable
SEG ermöglicht den Querverweis auf das Verbindungssegment des Busses, auf dem der Busanschluss platziert ist.
C_CNET - Schaltplan Logische Netzliste
Über den Index
C_CNET ist der Zugriff auf die logische Netzliste des aktuell geladenen Schaltplans möglich. Die Strukturdefinition von
C_CNET lautet:
index C_CNET { // Logische Netzliste Index
string NAME; // Netz Name
int NUMBER; // Netz Nummer
int NETGLO; // Netz Globalkennzeichnung:
// 0 = Lokale Netzdefinition
// 1 = Globale Netzdefinition
int BUSNET; // Busnetznummer
};
C_CONBASE - Schaltplan Verbindungssegmentgruppe
Über den Index
C_CONBASE ist der Zugriff auf die Gruppe der Verbindungssegmente einer bestimmten Zeile bzw. Spalte des aktuell geladenen Schaltplans möglich. Die Strukturdefinition von
C_CONBASE lautet:
index C_CONBASE { // Verbindungssegmentgruppe Index
int ORI; // Orientierung:
// 0 = Horizontal
// 1 = Vertikal
double X; // Basis-X-Koordinate (STD2)
double Y; // Basis-Y-Koordinate (STD2)
int SN; // Anzahl Verbindungssegmente
index C_CONSEG; // Liste der Verbindungssegmente
index C_BUSTAP; // Liste der Busanschlüsse
};
Über einen
C_CONBASE Index sind alle Verbindungssegmente einer bestimmten Spalte (Orientierung vertikal) bzw. Reihe (Orientierung horizontal) einschließlich der daran definierten Busanschlüsse zusammengefasst. Der Zugriff auf die zur Verbindungssegmentgruppe gehörenden Verbindungssegmente bzw. Busanschlüsse erfolgt über entsprechende
forall-of-Schleifen.
C_CONSEG - Schaltplan Verbindungssegment
Über den Index
C_CONSEG ist der Zugriff auf die Verbindungssegmente des aktuell geladenen Schaltplans möglich. Die Strukturdefinition von
C_CONSEG lautet:
index C_CONSEG { // Verbindungssegment Index
double X1; // Segment X-Koordinate 1 (STD2)
double Y1; // Segment Y-Koordinate 1 (STD2)
double X2; // Segment X-Koordinate 2 (STD2)
double Y2; // Segment Y-Koordinate 2 (STD2)
int BUSFLAG; // Segment Buskennzeichnung:
// 0 = Normales Segment
// 1 = Bussegment
int GROUP; // Segment Gruppenflag (STD13)
index C_CONBASE CON; // Verweis auf Segmentgruppe
};
Verbindungssegmente sind immer orthogonal platziert, d.h. entweder die X-Koordinaten sind identisch (Orientierung vertikal), oder die Y-Koordinaten sind identisch (Orientierung horizontal). Die Indexvariable
CON ermöglicht den Rückwärtsverweis auf die Segmentgruppe, zu der das entsprechende Verbindungssegment gehört.
C_FIGURE - Schaltplan Figurenelement
Über den Index
C_FIGURE ist der Zugriff auf die platzierten Figurenelemente (Polygone, Verbindungen, Makroreferenzen, Texte) des aktuell geladenen Elements möglich. Die Strukturdefinition von
C_FIGURE lautet:
index C_FIGURE { // Figurenelement Index
int TYP; // Element Typ (CAP3)
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 GROUP; // Element Gruppenflag (STD13)
index C_POOL POOL; // Verweis auf Poolelement
index C_POLY POLY; // Verweis auf Polygonelement
index C_CONBASE CONBASE;// Verweis auf Verbindungssegmentgruppe
index C_NREF NREF; // Verweis auf Makroreferenz (benannt)
index C_TEXT TEXT; // Verweis auf Textelement
};
Die Indexvariable
NAME gibt für benannte Makroreferenzen den Namen und für Texte den Textstring an.
Auf SCM-Symbolebene enthält
NAME das aktuell definierte Bauteilnamensmuster. 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
scm_elem*chg modifiziert werden. Der komplette Datensatz eines Figurenelements kann mit der Funktion
cap_scanfelem über alle Hierarchieebenen abgearbeitet werden.
C_LEVEL - Schaltplan Signalpotential
Über den Index
C_LEVEL ist der Zugriff auf die Connectivity-Level, d.h. auf die Netzlisten- bzw. Signalpotentiale des aktuell geladenen Schaltplans möglich. Die Strukturdefinition von
C_LEVEL lautet:
index C_LEVEL { // Connectivity-Level Index
int IDNUM; // Level Identifikationsnummer
int BUSFLAG; // Level Buskennzeichnung
int SEGFLAG; // Level Segmentverbindungsmodus (Bitmuster):
// 1 = Segment verbunden mit Level
// 2 = Kontaktflächen verbunden mit Level
int ERRFLAG; // Level Fehlerkennzeichnung
int HIGHLIGHT; // Level Highlight Flag
int DISPLAY; // Level Anzeige Attribute
int CNN; // Level Netzanzahl
index C_CNET; // Liste der Netze
};
Der Zugriff auf die zum Signalpotential gehörenden Netze erfolgt über eine entsprechende
forall-of-Schleife.
C_MACRO - Schaltplan Bibliothekselement
Über den Index
C_MACRO ist der Zugriff auf die Makros, d.h. auf die Bibliothekselemente (Symbole, Labels, Marker) des aktuell geladenen Elements möglich. Die Strukturdefinition von
C_MACRO lautet:
index C_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 TAGSYM; // Makro Tagsymbol-/Taglabelmodus (CAP5)
int COMP; // Makro Status (STD16)
string PNAMEPAT; // Makro Bauteilnamensmuster
};
Über die Indexvariable
PNAMEPAT kann das Bauteilnamensmuster für Stromlaufsymbole ermittelt werden.
C_NREF - Schaltplan Makroreferenz (benannt)
Über den Index
C_NREF ist der Zugriff auf die benannten Makroreferenzen, d.h. auf die auf dem aktuell geladenen Element namentlich platzierten Bibliothekselemente möglich. Auf Planebene sind dies die platzierten Bauteile und Labels; auf Symbol- bzw. Labelebene sind dies die platzierten Pins. Die Strukturdefinition von
C_NREF lautet:
index C_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)
int MIRROR; // Referenz Spiegelung (STD14)
int TAGPTYP; // Referenz Tagpintyp (CAP6)
index C_MACRO MACRO; // Verweis auf Makro
index C_ATTRIBUTE; // Liste der Attribute
};
Über die Indexvariable
MACRO ist der Zugriff auf das durch das
C_NREF-Element referenzierte Bibliothekselement möglich. Der Zugriff auf die am Bauteil definierten Attribute erfolgt über eine entsprechende
forall-of-Schleife.
C_POINT - Schaltplan Polygonpunkt
Über den Index
C_POINT ist der Zugriff auf einzelne Polygonpunkte eines Polygons möglich. Die Strukturdefinition von
C_POINT lautet:
index C_POINT { // Polygonpunkt Index
double X; // Polygonpunkt X-Koordinate (STD2)
double Y; // Polygonpunkt Y-Koordinate (STD2)
int TYP; // Polygonpunkt Typ (STD15)
};
Der Index
C_POINT ist nur als
of-Index für die Liste der Polygonpunkte in
C_POLY zu verwenden.
C_POLY - Schaltplan Polygon
Über den Index
C_POLY ist der Zugriff auf die im aktuell geladenen Element definierten Polygone (Flächen, Linien) möglich. Die Strukturdefinition von
C_POLY lautet:
index C_POLY { // Polygon Index
int TYP; // Polygon Typ (CAP2)
double WIDTH; // Polygon Linienbreite (STD2)
double DASHLEN; // Polygon Strichelungslänge (STD2)
double DASHSPC; // Polygon Strichelungsrelativabstand
int DASH; // Polygon Strichelungsmodus
int PN; // Anzahl Polygonpunkte
index C_POINT; // Liste der Polygonpunkte
};
Der Zugriff auf die zum Polygon gehörenden Polygonpunkte erfolgt über eine entsprechende
forall-of-Schleife.
C_POOL - Schaltplan Poolelement
Über den Index
C_POOL ist der Zugriff auf die aktuell geladenen Poolelemente möglich. Die Strukturdefinition von
C_POOL lautet:
index C_POOL { // Poolelement Index
int TYP; // Poolelement Typ (CAP4)
int REFCNT; // Poolelement Referenzierungsanzahl
index C_POOL NXT; // Verweis auf nächstes Poolelement
index C_POOL REF; // Verweis auf Referenz-Poolelement
index C_POLY POLY; // Verweis auf Polygonelement
index C_CONBASE CONBASE;// Verweis auf Verbindungssegmentgruppe
index C_NREF NREF; // Verweis auf Makroreferenz (benannt)
index C_TEXT TEXT; // Verweis auf Textelement
index C_MACRO MACRO; // Verweis auf Bibliothekselement
index C_BUSTAP BUSTAP; // Verweis auf Busanschluss
};
Der Index
C_POOL wird benötigt zur Abarbeitung von Bibliotheksdefinitionen mit Hilfe der Systemfunktion
cap_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.
C_TEXT - Schaltplan Text
Über den Index
C_TEXT ist der Zugriff auf die im aktuell geladenen Element definierten Texte möglich. Die Strukturdefinition von
C_TEXT lautet:
index C_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)
double WIDTH; // Text Linienbreite (STD2)
int MIRROR; // Text Spiegelung (STD14)
int MODE; // Text Modus/Stil (CAP1|CAP7)
int CLASS; // Text Klassenbitmuster
};
CL_ALTPLNAME - Layoutnetzlisteneintrag Alternativbauform
Über den Index
CL_ALTPLNAME ist der Zugriff auf die Liste der Alternativbauformen der aktuell geladenen Layoutnetzliste möglich. Die Strukturdefinition von
CL_ALTPLNAME lautet:
index CL_ALTPLNAME { // Layoutnetzliste Alternativbauformindex
string PLNAME; // Alternativbauform Name
};
CL_ATTRIBUTE - Layoutnetzlisteneintrag Attribut
Über den Index
CL_ATTRIBUTE ist der Zugriff auf die Bauteil- und Netzattribute der aktuell geladenen Layoutnetzliste möglich. Die Strukturdefinition von
CL_ATTRIBUTE lautet:
index CL_ATTRIBUTE { // Layoutnetzliste Attributindex
string NAME; // Attribut Name
string VALUE; // Attribut Wert
};
CL_CNET - Layoutnetzliste
Über den Index
CL_CNET ist der Zugriff auf die Netze der aktuell geladenen Layoutnetzliste möglich. Die Strukturdefinition von
CL_CNET lautet:
index CL_CNET { // Layoutnetzliste Netzindex
string NAME; // Netz Name
int NUMBER; // Netz Nummer
int PRIOR; // Netz Routingpriorität
double RDIST; // Netz Mindestabstand (STD2)
int PINN; // Anzahl Pins
index CL_CPIN; // Liste der Pins
index CL_ATTRIBUTE; // Liste der Attribute
};
Die Netznummer wird allgemein zur Identifizierung eines Netzes herangezogen. Mit der Funktion
cap_getlaytreeidx kann ausgehend von der angegebenen Netznummer der entsprechende
CL_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.
CL_CPART - Layoutnetzlisteneintrag Bauteil
Über den Index
CL_CPART ist der Zugriff auf die Bauteile der aktuell geladenen Layoutnetzliste möglich. Die Strukturdefinition von
CL_CPART lautet:
index CL_CPART { // Layoutnetzliste Bauteilindex
string NAME; // Bauteil Name
string PLNAME; // Physikalisches Bibliotheksteil
int PEQUC; // Bauteil Äquivalenz-Code
int PINN; // Anzahl Pins
int FPINN; // Anzahl nicht angeschlossene Pins
index CL_CPIN; // Liste der Pins
index CL_ALTPLNAME; // Liste der Alternativbauformen
index CL_ATTRIBUTE; // Liste der Attribute
};
Auf die Pinliste, die Alternativbauformen 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).
CL_CPIN - Layoutnetzlisteneintrag Bauteilpin
Über den Index
CL_CPIN ist der Zugriff auf die Bauteilpins der aktuell geladenen Layoutnetzliste möglich. Die Strukturdefinition von
CL_CPIN lautet:
index CL_CPIN { // Layoutnetzliste Bauteilpinindex
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 CL_CNET CNET; // Verweis auf Netz
index CL_CPART CPART; // Verweis auf Bauteil
index CL_ATTRIBUTE; // Liste der Pinattribute
};
Die Pin Routingbreite gibt die Breite an, mit der vom 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.
Schematic Capture Index-Beschreibung (CAP) © 1985-2025 Oliver Bartels F+E • Aktualisiert: 19. October 2013, 08:32 [UTC]
|