Willkommen bei Bartels
USERLIST - Deutsche Version USERLIST - English Version
Bartels

Bartels System GmbH
Bartels
Bartels AutoEngineer
BAE Produktinfo
BAE Preisliste
BAE Downloads
BAE Dokumentation
BAE Installationsanleitung
BAE Benutzerhandbuch
Vorwort
1 Einleitung
2 Schaltungsentwurf
3 Packager
4 Leiterkartenentwurf
5 IC-/ASIC-Entwurf
6 Regelsystem
7 Utilities
7.1 BAEHELP
7.2 BAESETUP, BSETUP
7.3 BICSET (IC-Design)
7.4 BLDRING (IC-Design)
7.5 CONCONV
7.6 COPYDDB
7.7 FONTCONV
7.8 FONTEXTR
7.9 INSTALL
7.10 LISTDDB
7.11 LOGLIB
7.12 NETCONV
7.13 REDASC
7.14 RULECOMP
7.15 ULC - User Language Compiler
7.16 User Language Interpreter
7.17 USERLIST
7.18 VALCONV
BAE Bibliotheken
User Language Programmierhandbuch
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 :: BAE Benutzerhandbuch :: Utilities :: USERLIST
Bartels AutoEngineer® - Benutzerhandbuch

7.17 USERLIST

Bartels AutoEngineer® Dokumentation

Name

userlist - User Programmable List Generator

Synopsis

userlist scriptfile projectfile jobname

Beschreibung

Das Programm userlist ist ein anwenderprogrammierbarer ASCII-Listengenerator, mit dem Daten aus Design-File-Netzlisten in einem vom Benutzer frei festlegbaren Format extrahiert werden können. Dabei lassen sich die Art der Ausgabe (Vor-/Nachkommastellen, Ausgabe von Schlüsselwörtern, usw.) und der Typ der auszugebenden Information (Bauteilattribute, Pinattribute, usw.) vom Benutzer in einem Spezifikationsfile (userlist-Script) frei definieren.

Das Programm userlist interpretiert das vom Anwender erstellte userlist-Script <scriptfile>.usf, liest die unter <jobname> im Design-File <projectfile>.ddb abgelegte Netzliste und generiert eine Ausgabedatei mit Namen <projectfile>.<ext> (die Extension <ext> ist im Script zu definieren).

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Am Dateianfang des userlist-Scripts ist die Extension des Ausgabefiles über den Parameter EXTENSION zu definieren:

EXTENSION = "<ext>";

Das userlist-Script muss mit dem Schlüsselwort ENDSPEC enden. Kommentare können zwischen /* und */ eingefügt werden.

FOR-Kommando

Die Auswahl von Elementen eines Bereiches erfolgt mit

FOR (ALL <class> ) { <commands> }

<class> gibt die Klasse der zu bearbeitenden Objekte an. Hierfür können die Schlüsselworte NETS, PARTS, PINS, ATTRIBUTES bzw. <attname> eingesetzt werden. NETS bezeichnet die Objektklasse Netzliste, PARTS die Bauteilliste, PINS die Pinliste und ATTRIBUTES die Attributliste. <attname> erlaubt die Abarbeitung der Attributwertliste für das Attribut mit dem durch <attname> gegebenen Namen. Die Kommandoliste <commands> wird für jedes Element der angegebenen Objektklasse einmal abgearbeitet. Dabei können, soweit sinnvoll, weitere FOR-Schleifen verschachtelt werden. Bei verschachtelten FOR-Schleifen beziehen sich die Objektklassen jeweils auf die in der übergeordneten Schleife angegebene Objektklasse. So arbeitet in

FOR (ALL NETS) { FOR (ALL PINS) {...}}

die PINS-Schleife jeweils die Pins des aktuellen Netzes der NETS-Schleife ab.

Ausgabe-Befehle

Zur Ausgabe stehen die Kommandos PRINT und PRINTFOR zur Verfügung. Die Syntax für das Kommando PRINT lautet:

PRINT(<parameters>);

In <parameters> ist - getrennt durch Kommas - die Liste der auszugebenden Parameter enthalten. In Anführungszeichen angegebene Parameter werden unverändert ausgegeben. Anführungszeichen selbst werden mit dem Schlüsselwort QUOTES ausgegeben. Tabulatorzeichen können mit TAB erzeugt werden. Eine neue Zeile erreicht man durch Angabe von CR. Die restlichen Parameter geben Elemente der Datenbank an. Dabei kann durch Angabe von

:<length>:<decimals>

die Anzahl der Gesamtstellen und Nachkommastellen zur Ausgabe von Zahlen und Strings angegeben werden. Wird <length> negativ angegeben, so wird der Ausgabestring linksbündig in dem durch die Gesamtstellen definierten Ausgabefeld dargestellt. Mit

%<length>:<decimals>

werden Leerstellen zu Beginn des Ausgabefeldes mit Nullen aufgefüllt. Standardeinstellung sind 3 Nachkommastellen und eine Feldbreite, die der Länge des darzustellenden Elements entspricht. Reichen die angegebenen Gesamtstellen nicht zur Ausgabe aus, so verbreitert sich das Ausgabefeld entsprechend. Bei Elementen, die Distanzen angeben, kann die Ausgabe durch Nachstellen von " MM" bzw. " INCH" in der entsprechenden Längeneinheit erfolgen. Beispiele für die Anwendung des PRINT-Kommandos sind:

PRINT(QUOTES,PINWIDTH:7:3,QUOTES);              /* Output: "  3.756" */
PRINT(QUOTES,PINWIDTH%7:3,QUOTES);              /* Output: "003.756" */
PRINT(QUOTES,PINWIDTH:-7:3,QUOTES);             /* Output: "3.756  " */

In PRINT-Kommandos kann hinter der Angabe von Namen und Attributen mit durch Leerzeichen getrennten UPPER- oder. LOWER-Texten eine Ausgabe der Namen bzw. Attribute in Groß- bzw. Kleinschreibung erzwungen werden.

Das Kommando PRINTFOR dient zur Ausgabe von Listen unbekannter Länge mit Trennzeichen zwischen den einzelnen Elementen. Die Syntax für dieses Kommando lautet:

PRINTFOR (ALL <class>) SEPERATOR(<sep>),ELEMENTS(<elements>);

Die Trennzeichen zwischen den einzelnen Elementen werden über den Seperator <sep> spezifiziert (z.B. ., CR, usw.). In <elements> stehen die Daten, die zu einem Listenelement ausgegeben werden sollen. Für die Parameterliste in <sep> und <elements> gilt die gleiche Syntax, wie für die Parameterliste in PRINT. Steht PRINTFOR innerhalb einer FOR-Schleife, so beschränkt sich die Ausgabe automatisch auf das gerade aktuelle Element der FOR-Schleife.

IF-Abfragen

Das IF-Kommando dient zur bedingten Abarbeitung von Kommandos. Die Syntax hierfür lautet:

IF (<expr>) { <commands> }

bzw.

IF (<expr>) { <commands> } ELSE { <commands> }

Die Bedingungsanweisung <expr> besteht entweder aus

? <attr>

oder

<attr> <operator> <attr|constant>

Der Ausdruck ? <attr> prüft, ob das mit <attr> angegebene Attribut vorhanden ist. Für vergleichende Ausdrücke stehen die Operatoren (<operator>) = (gleich), <> (ungleich), < (kleiner), > (größer), <= (kleiner oder gleich), >= (größer oder gleich) zur Verfügung.

Zählvariable

Die Befehle

CLEARCOUNTER;

und

COUNTUP;

dienen zur Ansteuerung eines Zählers. Mit CLEARCOUNTER wird der Zähler auf Null gesetzt. COUNTUP erhöht den Zähler um eins. Der aktuelle Wert des Zählers steht als Attribut COUNTVALUE zur Verfügung.

Attribute

Es können folgende Attribute ausgegeben werden:

NetzdatenNETNAME Netzname
NETPINCOUNT Anzahl der Pins am Netz
PRIORITY Netz-Priorität (für Router)
MINDIST Netz-Mindestabstand (für Router)
NETNUMBER Netznummer
BauteildatenPARTNAME Bauteilname
PINCOUNT Anzahl der Pins am Bauteil
FREEPINS Anzahl der nichtangeschlossenen Pins am Bauteil
PARTATTRIBCOUNT Anzahl der Attribute des Bauteiles
$attributname Wert des angegebenen Attributes
PindatenPINNAME Pinname
PINWIDTH Pinbezogene Anschlussbreite
Allgemeine DatenPROJECTNAME Projekt- bzw. Design-Name
ATTRIBCOUNT Gesamthäufigkeit der aktuellen Kombination Attributname, Attributwert
ATTRIBNAME Name des aktuellen Attributes
ATTRIBVALUE Wert des aktuellen Attributes
COUNTVALUE Aktueller Wert des Counters

Beispiele

Netzlisten-Generator conconv.usf:

/* Connection List Generator */
EXTENSION = ".con";
PRINT ("LAYOUT ", PROJECTNAME, ";", CR);
PRINT ("PARTS",CR);
FOR (ALL PARTS)
{
    PRINT ("  ",PARTNAME," : ",$plname,";",CR);
}
PRINT ("CONNECT",CR);
FOR (ALL NETS)
{
    PRINT ("  /", NETNAME,"/ ");
    PRINTFOR (ALL PINS)
        SEPERATOR ("="), ELEMENTS (PARTNAME,".",PINNAME);
    PRINT (";",CR);
}
PRINT ("END.",CR);
ENDSPEC

Durch einen Aufruf der Form

>  userlist conconv design board Return-/Eingabetaste (CR)

wird die Netzliste board des Job-Files design.ddb gelesen und auf die Datei design.con ausgegeben. Die Ausgabe hat dann folgendes Format:

LAYOUT board;
PARTS
        ic1 : dil14;
        ic2 : dil14;
        ic3 : dil16;
CONNECT
        /gnd/ ic1.1=ic2.2=ic3.9;
        /vcc/ ic1.11=ic2.5=ic3.7;
END.

Partlister:

EXTENSION = ".ptl";
FOR (ALL $plname)
{
    PRINT (ATTRIBCOUNT," ",ATTRIBVALUE,CR);
}
ENDSPEC

Ausgabedatei <job>.ptl, z.B.:

3 cap50
4 dil14
2 dil16
1 r75

Diagnose

Die durch userlist erzeugten Fehlermeldungen sind selbsterklärend.

Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: BAE Benutzerhandbuch :: Utilities :: USERLIST

USERLIST
© 1985-2017 Oliver Bartels F+E • Aktualisiert: 13. February 2009, 23:34 [UTC]

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

Webentwicklung Baumeister Mediasoft Engineering

USERLIST - Deutsche Version USERLIST - English Version