|
|
Dieser Abschnitt beschreibt die in der Bartels User Language definierten Index-Variablen-Typen für den Layout Datenzugriff (LAY). L_ALTPLNAME - Layoutnetzlisteneintrag AlternativbauformÜber den Index L_ALTPLNAME ist der Zugriff auf die in der Netzliste des aktuell geladenen Layouts eingetragenen Alternativbauformen möglich. Die Strukturdefinition von L_ALTPLNAME lautet: index L_ALTPLNAME { // Alternativbauform Index string PLNAME; // Alternativbauform Name }; L_ATTRIBUTE - Layoutnetzlisteneintrag AttributÜber den Index L_ATTRIBUTE ist der Zugriff auf die in der Netzliste des aktuell geladenen Layouts eingetragenen Bauteil- bzw. Netzattribute möglich. Die Strukturdefinition von L_ATTRIBUTE lautet: index L_ATTRIBUTE { // Attribut Index string NAME; // Attribut Name string VALUE; // Attribut Wert }; L_CNET - LayoutnetzlisteÜber den Index L_CNET ist der Zugriff auf die in der Netzliste des aktuell geladenen Layouts eingetragenen Netze möglich. Die Strukturdefinition von L_CNET lautet: index L_CNET { // Layoutnetzliste string NAME; // Netz Name int NUMBER; // Netz Nummer int PRIOR; // Netz Routingpriorität double RDIST; // Netz Mindestabstand (STD2) int VIS; // Netz Sichtbarkeitsflag int PINN; // Anzahl Pins index L_CPIN; // Liste der Pins index L_ATTRIBUTE; // Liste der Attribute index L_POOL UNRPOOL; // Verweis auf Unroutes Poolelement }; Die Netznummer wird allgemein zur Identifizierung eines Netzes herangezogen. Mit der Funktion
lay_gettreeidx kann ausgehend von der angegebenen Netznummer der entsprechende
L_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
L_CPART - Layoutnetzlisteneintrag BauteilÜber den Index L_CPART ist der Zugriff auf die in der Netzliste des aktuell geladenen Layouts eingetragenen Bauteile möglich. Die Strukturdefinition von L_CPART lautet: index L_CPART { // Netzliste Bauteilindex string NAME; // Bauteil Name string PLNAME; // Physikalisches Bibliotheksteil int USED; // Bauteilplatzierungscode: // 0 = Bauteil nicht platziert // 1 = Bauteil platziert // 2 = Bauteil platziert und zur Gruppe selektiert int PEQUC; // Bauteil Äquivalenz-Code int PINN; // Anzahl Pins int FPINN; // Anzahl nicht angeschlossene Pins index L_MACRO MACRO; // Verweis auf Makro index L_CPIN; // Liste der Pins index L_ALTPLNAME; // Liste der Alternativbauformen index L_ATTRIBUTE; // Liste der Attribute }; Auf die Pinliste, die Alternativbauformen und die Attributwerte kann mit Hilfe von entsprechenden
L_CPIN - Layoutnetzlisteneintrag BauteilpinÜber den Index L_CPIN ist der Zugriff auf die in der Netzliste des aktuell geladenen Layouts eingetragenen Bauteilpins möglich. Die Strukturdefinition von L_CPIN lautet: index L_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 L_CNET CNET; // Verweis auf Netz index L_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
L_DRCERROR - Layout DRC-FehlermarkerÜber den Index L_DRCERROR ist der Zugriff auf die vom Design Rule Check angezeigten Fehlermarker des aktuell geladenen Layoutelements möglich. Die Strukturdefinition von L_DRCERROR lautet: index L_DRCERROR { // DRC-Fehlermarker Index int TYP; // DRC-Fehlertyp: // 1 = Kupferabstandsverletzung // 2 = Dokumentarlagen-Sperrflächenverletzung // 3 = Dokumentarlagen-Höhensperrflächenverletzung // 4 = HF-Designregelverletzung // 5 = Polygonablage-Designregelverletzung int LAYER; // DRC-Fehlermarker Lage (LAY1) double RLX; // DRC-Fehlermarker linke Begrenzung (STD2) double RLY; // DRC-Fehlermarker untere Begrenzung (STD2) double RUX; // DRC-Fehlermarker rechte Begrenzung (STD2) double RUY; // DRC-Fehlermarker obere Begrenzung (STD2) double CHKDIST; // DRC-Fehlermarker DRC-Mindestabstandsvorgabe (STD2) double ERRDIST; // DRC-Fehlermarker tatsächlicher Elementabstand (STD2) string IDSTR; // DRC-Fehler-Id-String index L_FIGURE FIG1; // DRC-Fehlerelement 1 index L_FIGURE FIG2; // DRC-Fehlerelement 2 }; L_DRCERROROK - Layout DRC-FehlerakzeptierungÜber den Index L_DRCERROROK ist der Zugriff auf die DRC-Fehlerakzeptanzeinstellungen des aktuell geladenen Layoutelements möglich. Die Strukturdefinition von L_DRCERROROK lautet:
L_DRILL - Layout BohrungÜber den Index L_DRILL ist der Zugriff auf die Bohrdaten des aktuell geladenen Padstack-Bibliothekselements möglich. Die Strukturdefinition von L_DRILL lautet: index L_DRILL { // Bohrung Index double X; // Bohrung X-Koordinate (STD2) double Y; // Bohrung Y-Koordinate (STD2) double RAD; // Bohrung Radius (STD2) int CLASS; // Bohrung Klasse (LAY5) }; Bei der Verwendung des Index L_DRILL in der Drillscanfunktion von lay_scanfelem, lay_scanall bzw. lay_scanpool ist zu beachten, dass in dem Index die Platzierungsdaten der Bohrung auf dem Padstack eingetragen sind. Die Koordinaten auf dem Layout bzw. Bauteil werden durch die übergebenen transformierten Koordinaten angegeben. L_FIGURE - Layout FigurenelementÜber den Index L_FIGURE ist der Zugriff auf die platzierten Figurenelemente (Polygone, Leiterbahnen, Makroreferenzen, Texte, Bohrungen) des aktuell geladenen Elements möglich. Die Strukturdefinition von L_FIGURE lautet: index L_FIGURE { // Figurenelement Index int TYP; // Element Typ (LAY6) 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/Klasse (LAY1 | LAY5) int GROUP; // Element Gruppenflag (STD13) int FIXED; // Element Fixiert Flag (STD11 | STD12) int TREE; // Element Netznummer index L_POOL POOL; // Verweis auf Poolelement index L_POLY POLY; // Verweis auf Polygonelement index L_LINE LINE; // Verweis auf Leiterbahnelement index L_NREF NREF; // Verweis auf Makroreferenz (benannt) index L_UREF UREF; // Verweis auf Makroreferenz (unbenannt) index L_TEXT TEXT; // Verweis auf Textelement index L_DRILL DRILL; // Verweis auf Bohrelement }; Die Indexvariable
L_LEVEL - Layout SignalpotentialÜber den Index L_LEVEL ist der Zugriff auf die Connectivity-Level, d.h. auf die Netzlisten- bzw. Signalpotentiale des aktuell geladenen Layouts möglich. Die Strukturdefinition von L_LEVEL lautet: index L_LEVEL { // Connectivity-Level Index int LEVVAL; // Level Wert (LAY7) }; L_LINE - Layout LeiterbahnÜber den Index L_LINE ist der Zugriff auf die Leiterbahndaten des aktuell geladenen Layouts bzw. Bauteils möglich. Die Strukturdefinition von L_LINE lautet: index L_LINE { // Leiterbahn Index double WIDTH; // Leiterbahn Breite (STD2) int LAYER; // Leiterbahn Lage (LAY1) int TREE; // Leiterbahn Netznummer int PN; // Anzahl Polygonpunkte index L_POINT; // Liste der Polygonpunkte }; L_MACRO - Layout BibliothekselementÜber den Index L_MACRO ist der Zugriff auf die Makros, d.h. auf die Bibliothekselemente (Bauteile, Padstacks, Pads) des aktuell geladenen Elements möglich. Die Strukturdefinition von L_MACRO lautet: index L_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) }; L_NREF - Layout Makroreferenz (benannt)Über den Index L_NREF ist der Zugriff auf die benannten Makroreferenzen, d.h. auf die auf dem aktuell geladenen Element namentlich platzierten Bibliothekselemente möglich. Auf Layoutebene sind dies die platzierten Bauteile; auf Bauteilebene sind dies die platzierten Pins. Die Strukturdefinition von L_NREF lautet: index L_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 LAYOFF; // Referenz Lagenoffset (LAY1) int MIRROR; // Referenz Spiegelung (STD14) index L_MACRO MACRO; // Makro Index }; Über die Indexvariable
L_POINT - Layout PolygonpunktÜber den Index L_POINT ist der Zugriff auf einzelne Polygonpunkte eines Polygons möglich. Die Strukturdefinition von L_POINT lautet: index L_POINT { // Polygonpunkt Index double X; // Polygonpunkt X-Koordinate (STD2) double Y; // Polygonpunkt Y-Koordinate (STD2) int TYP; // Polygonpunkt Typ (STD15) }; Der Index
L_POINT ist nur als
L_POLY - Layout PolygonÜber den Index L_POLY ist der Zugriff auf die im aktuell geladenen Element definierten Polygone (Kupferflächen, Sperrflächen, Umrandung, Potentialflächen, Dokumentarlinien, Dokumentarflächen, Füllbereiche, Schraffurflächen oder Split-Powerplane-Flächen) möglich. Die Strukturdefinition von L_POLY lautet: index L_POLY { // Polygon Index int LAYER; // Polygon Lage (LAY1) int TREE; // Polygon Netznummer int TYP; // Polygon Typ (LAY4) int MVIS; // Polygon Spiegelungsmodus (LAY3) bzw: // LAY3 + 4 = gestricheltes Polygon // LAY3 + 8 = gepunktetes Polygon double WIDTH; // Polygon Linienbreite (STD2) double DASHLEN; // Polygon Strichelungslänge (STD2) double DASHSPC; // Polygon Strichelungsrelativabstand int PN; // Anzahl Polygonpunkte index L_POINT; // Liste der Polygonpunkte }; Der Zugriff auf die zum Polygon gehörenden Polygonpunkte erfolgt über eine entsprechende
L_POOL - Layout PoolelementÜber den Index L_POOL ist der Zugriff auf die aktuell geladenen Poolelemente möglich. Die Strukturdefinition von L_POOL lautet: index L_POOL { // Poolelement Index int TYP; // Poolelement Typ (LAY8) int REFCNT; // Poolelement Referenzierungsanzahl int LAYER; // Poolelement Lage (LAY1) index L_POOL NXT; // Verweis auf nächstes Poolelement index L_POOL REF; // Verweis auf Referenz-Poolelement index L_POLY POLY; // Verweis auf Polygonelement index L_LINE LINE; // Verweis auf Leiterbahnelement index L_NREF NREF; // Verweis auf Makroreferenz (benannt) index L_UREF UREF; // Verweis auf Makroreferenz (unbenannt) index L_TEXT TEXT; // Verweis auf Textelement index L_DRILL DRILL; // Verweis auf Bohrelement index L_DRCERROR DRCERR;// Verweis auf DRC-Fehlerelement index L_MACRO MACRO; // Verweis auf Bibliothekselement }; Der Index
L_POOL wird zur Abarbeitung von Bibliotheksdefinitionen mit Hilfe der Systemfunktion
lay_scanpool benötigt. Die Indexvariable
L_POWLAYER - Layout VersorgungslageÜber den Index L_POWLAYER ist der Zugriff auf die Definition der Versorgungslagen des aktuell geladenen Layouts möglich. Die Strukturdefinition von L_POWLAYER lautet: index L_POWLAYER { // Versorgungslage Index index L_CNET CNET; // Verweis auf Netz index L_LEVEL LEVEL; // Verweis auf Level int LAYER; // Versorgungslagencode (LAY1) }; Die Indexvariable
L_TEXT - Layout TextÜber den Index L_TEXT ist der Zugriff auf die im aktuell geladenen Element definierten Texte möglich. Die Strukturdefinition von L_TEXT lautet: index L_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 LAYER; // Text Lage (LAY1) int MIRROR; // Text Spiegelung (STD14) int MODE; // Text Modus (LAY2) }; L_UREF - Layout Makroreferenz (unbenannt)Über den Index L_UREF ist der Zugriff auf die unbenannten Makroreferenzen, d.h. auf die auf dem aktuell geladenen Element namenlos platzierten Bibliothekselemente möglich. Auf Layout- bzw. Bauteilebene sind dies die platzierten Vias; auf Padstackebene sind dies die platzierten Pads. Die Strukturdefinition von L_UREF lautet: index L_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) int LAYOFF; // Referenz Lagenoffset (LAY1) int MIRROR; // Referenz Spiegelung (STD14) index L_MACRO MACRO; // Verweis auf Makro }; Über die Indexvariable
Layout Index-Beschreibung (LAY) |
|