Willkommen bei Bartels diese Seite zur Startseite machen... diese Seite zu den Favoriten hinzufügen... diese Seite an einen Bekannten schicken... druckerfreundliche Seitenanzeige... Seitenübersicht anzeigen... Seitenübersicht mit allen Seiteninhalten anzeigen...
Utilities - Deutsche Version Utilities - 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
Bartels AutoEngineer® - Benutzerhandbuch

Kapitel 7
Utilities

Bartels AutoEngineer® Dokumentation

Dieses Kapitel beschreibt die Utilityprogramme des Bartels AutoEngineer. Diese Programme laufen üblicherweise im Batchbetrieb, d.h. sie können von der Betriebssystemebene aus aufgerufen werden und benötigen kein Grafikinterface für den Dialog mit dem Benutzer. Die Utilityprogramme sind nützliche Zusatzwerkzeuge für die Bibliotheksverwaltung, zum Auswerten von DDB(Design DataBase)-Files, zur Konfiguration des AutoEngineers, zum Umsetzen von (Fremd-)Netzlisten, usw. usf.

 

Inhalt

7.1BAEHELP
7.2BAESETUP, BSETUP
7.3BICSET (IC-Design)
7.4BLDRING (IC-Design)
7.5CONCONV
7.6COPYDDB
7.7FONTCONV
7.8FONTEXTR
7.9INSTALL
7.10LISTDDB
7.11LOGLIB
7.12NETCONV
7.13REDASC
7.14RULECOMP
7.15ULC - User Language Compiler
7.16User Language Interpreter
7.17USERLIST
7.18VALCONV

 

7.1 BAEHELP

Name

baehelp - BAE Windows Online-Dokumentation

Synopsis

baehelp [file]

Beschreibung

Das Programm baehelp aktiviert unter Windows den Default-Webbrowser zum Laden der wahlweise über das Argument file angegebenen (HTML-)Datei bzw. URL. Ist kein Argument angegeben, dann wird automatisch das BAE Benutzerhandbuch aus dem Verzeichnis ../baedoc relativ zum BAE-Programmverzeichnis geladen.

Warnungen

baehelp ist nur unter Windows ablauffähig.

 

7.2 BAESETUP, BSETUP

Name

baesetup - Bartels AutoEngineer Setup Modul
bsetup - Bartels AutoEngineer Setup Utility

Synopsis

bsetup -encode <code>
bsetup setupfile

Beschreibung

Freischaltung von BAE-Software-Autorisierungen

Der Aufruf

bsetup -encode <code>

dient der Freischaltung von BAE-Autorisierungen im Feld. Die Option -encode erwartet als Argument den Autorisierungscode für die freizuschaltende BAE-Software-Konfiguration. Dieser Autorisierungscode ist im Bedarfsfall bei der Bartels System GmbH erhältlich. Der bsetup-Aufruf muss aus dem aktuellen BAE-Programmverzeichnis auf der Maschine, an der der freizuschaltende Hardlock-Key installiert ist, erfolgen. Unmittelbar nach Aufruf des Utilityprogramms bsetup mit der Option -encode (und einem korrekten Autorisierungscode) ist der Bartels AutoEngineer einmal zum Zwecke der Übernahme bzw. Freischaltung der neuen Autorisierung aufzurufen. Erst bei nachfolgenden BAE-Aufrufen erfolgt dann eine korrekte Autorisierungsprüfung, d.h. nach dem BAE-Aufruf zur Freischaltung der neuen Autorisierung (zu beachten ist hierbei die Meldung Neue Optionen : <sw-config>. in der Statuszeile) muss ein Programmabbruch veranlasst werden bevor ein produktives Arbeiten mit dem AutoEngineer wieder möglich ist.

Übernahme und Modifikation von BAE-Setupdaten

Der Aufruf

bsetup setupfile

dient der Übernahme von Setupdaten in den Bartels AutoEngineer, d.h. die anwenderspezifische Gestaltung der BAE-Benutzeroberfläche, die firmenrelevante Definition der Lagenzuordnung in den Layoutmenüs sowie die Einstellung von Standard-Bibliotheks-Suchpfaden und -Namen, usw. Hierbei erwartet bsetup als Argument den Dateinamen setupfile der Setupdatei (diese Datei muss mit der Extension .def verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben). bsetup liest die Setupdatei und speichert die darin enthaltenen Setup-Parameter in der Datei bsetup.dat (im aktuellen Verzeichnis) ab. Beim Aufruf des AutoEngineers werden die in dieser Datei gespeicherten Setup-Parameter eingelesen und sind somit für die Dauer der Bearbeitung im AutoEngineer verfügbar (Voraussetzung hierfür ist die Installation von bsetup.dat im BAE-Programm-Verzeichnis).

Unter Windows, Linux und Unix können die nachfolgend aufgeführten Systemparameter wahlweise auch mit dem über die Funktion Setup aus dem BAE-Hauptmenü aufrufbaren baesetup modifiziert werden. baesetup ist dialogboxorientiert und daher wesentlich einfacher zu bedienen als bsetup vor dessen Aufruf üblicherweise eine DEF-Datei mit dem kompletten BAE-Parameterdatensatz erstellt bzw. modifiziert werden muss. baesetup bietet zusätzlich die Möglichkeit, die geänderten Setupdaten in eine bsetup-kompatible DEF-Datei zu exportieren.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Setupdatei beginnt mit dem Schlüsselwort SETUP und endet mit END.. Kommentare können zwischen /* und */ eingefügt werden.

Kommando LAYMENUTEXT

Mit dem Kommando LAYMENUTEXT lassen sich die Menüs für die Signallagen-Auswahl festlegen. Die Syntax hierfür lautet:

LAYMENUTEXT LINE <line> ("<text>",<layer>);

Über <line> ist die Menüzeile (im Bereich von 1 bis 12) anzugeben. Der Eintrag <text> gibt den auf dem Menüfeld erscheinenden Text an und kann vom Benutzer frei vergeben werden. <layer> gibt die durch das Menüfeld selektierte (Signal-)Lage an, wobei von 1 bis 100 gewählt werden kann. Eine Sonderform des LAYMENUTEXT-Kommandos ist

LAYMENUTEXT TOPLAYER ("<text>");

Obige Zeile, in der lediglich <text> geändert werden darf, ermöglicht die Definition einer Signallage als Oberste Lage.

Kommando LAYPADLAYER

Mit dem Kommando LAYPADLAYER kann eine Lagenzuordnung auf Padebene ermöglicht (ENABLE) oder verhindert werden (DISABLE). Die Syntax für dieses Kommando lautet:

LAYPADLAYER (ENABLE) ;

bzw.

LAYPADLAYER (DISABLE) ;

Dieses Kommando ist historisch bedingt, da in früheren Software-Versionen auf Padebene die Zuweisung von Flächen auf Lagen möglich war. Der Eintrag ENABLE sollte also nurmehr dazu dienen, alte Job-Files zu aktualisieren. Wir empfehlen ansonsten den Eintrag DISABLE (siehe stdset.def).

Kommando LAYPLTMARKLAY

Über das Kommando LAYPLTMARKLAY lässt sich eine Dokumentarlage definieren die durch den CAM-Prozessor im Alle Lagen-Modus grundsätzlich mit ausgegeben wird (sinnvoll ist hier z.B. die Lage für die Film-Passermarken). Die Syntax hierfür lautet:

LAYPLTMARKLAY (<layer>) ;
Kommando LAYGRPDISPLAY

Mit dem Kommando LAYGRPDISPLAY lässt sich eine Dokumentarlage bzw. Darstellungsebene definieren, die mit der Layouteditor-Gruppenfunktion Bewegtdarstellung über den Menüpunkt Nur Baugruppenlage ausschließlich zur Darstellung bewegter Gruppen angezeigt werden soll. Die Syntax für dieses Kommando lautet:

LAYGRPDISPLAY (<layer>) ;
Kommando LAYDOCLAYER

Mit dem Kommando LAYDOCLAYER können bis zu 100 Dokumentarlagen definiert werden. Dabei ist zu beachten, dass eine Dokumentarlage im Grunde aus 3 "Seiten", nämlich Seite 1 (unterste Lage, Lötseite), Seite 2 (oberste Lage, Bauteilseite) und Beide Seiten bestehen kann. Damit ist es möglich, Elemente der Seite 1 der Dokumentarlage auf die Seite 2 zu spiegeln und umgekehrt (z.B. SMD-Bauteil von Bauteilseite auf Lötseite spiegeln mit entsprechender Spiegelung von am SMD-Bauteil definierten Dokumentar-Grafik, Dokumentar-Text, ...). Beim Plotten werden - sofern der Modus Alle Lagen eingeschaltet ist - die unter Beide Seiten abgelegten Elemente sowohl beim Plotten der Seite 1, als auch beim Plotten der Seite 2 hinzugefügt. Die Syntax für das LAYDOCLAYER-Kommando lautet:

LAYDOCLAYER <layer> ("<text>",<side>,<rotate>[,<index>]) ;

Der Eintrag <layer> gibt die Nummer der Dokumentarlage an, wobei von 1 bis 100 gewählt werden kann. Der Eintrag <text> gibt den vom Benutzer frei wählbaren Text an, der auf dem Menüfeld als Bezeichnung für die Dokumentarlage erscheinen soll. <side> gibt den Modus für die Abfrage nach der Seite bei der Generierung von Elementen auf der entsprechenden Dokumentarlage an, wobei folgende Einträge erlaubt sind:

SIDE1Eingaben erfolgen automatisch auf Seite 1 der Dokumentarlage
SIDE2Eingaben erfolgen automatisch auf Seite 2 der Dokumentarlage
BOTH Eingaben erfolgen automatisch auf Beide Seiten der Dokumentarlage
NONE Eingaben auf der Dokumentarlage mit Möglichkeit der Auswahl der Dokumentarlagenseite (Optionen Seite 1, Seite 2, Beide Seiten)

Der Parameter <rotate> erlaubt die Festlegung der Richtlinien für das Spiegeln und Rotieren von Texten, wobei folgende Einträge erlaubt sind:

LOGICAL Text kann frei gedreht und gespiegelt werden und bleibt dabei leserichtig (z.B. fü Bestückungsplan)
PHYSICALerlaubt beliebiges Drehen und Spiegeln des Textes, wobei jedoch dessen Position nicht durch die Funktionen Name bewegen bzw. Attribut bewegen verändert werden kann (z.B. für Bestückdaten)
NOROTATEBauteil kann frei gedreht und gespiegelt werden, der Text bleibt jedoch fixiert (ansonsten wie PHYSICAL; z.B. für Bohrplan)

Über den Parameter <index> kann optional ein Ausgabeindex für die Festlegung der Anzeigereihenfolge der Dokumentarlagen in der Farbpalette und in den Lagenauswahlmenüs vorgegeben werden. Die Indexnummerierung beginnend bei 1. Dokumentarlagen ohne Indexvorgabe werden fortlaufend auf die noch freien Anzeigepositionen verteilt. Mit Hilfe des <index>-Parameters können häufig benutzte Dokumentarlagen am Beginn der Dokumentarlagenauswahl platziert werden, und die Dokumentarlagen lassen sich in der Dokumentarlagenauswahl entsprechend ihrer Funktionalität gruppieren.

Kommando DOCMENU

Mit dem Kommando DOCMENU können Dokumentarlagen an die oberste Ebene in den Lagenauswahlmenüs des Layoutsystems zugewiesen werden um die Auswahl häufig benutzter Dokumentarlagen zu vereinfachen bzw. zu beschleunigen. Die Syntax für das DOCMENU-Kommando lautet:

DOCMENU <menuline> (<layer>) ;

<menuline> ist hierbei die Zeile bzw. Position an der die über die Dokumentarlagennummer <menuline> angegebene Dokumentarlage in den obersten Ebenen der Lagenauswahlmenüs angezeigt werden soll.

Kommando USERUNITS

Mit dem Kommando USERUNITS kann die Voreinstellung der Längeneinheiten für die Koordinatenein- und ausgabe definiert werden. Die Syntax für dieses Kommando lautet:

USERUNITS (METRIC) ;

bzw.

USERUNITS (IMPERIAL) ;

Dabei gibt METRIC eine Einstellung auf mm-Einheiten und IMPERIAL eine Einstellung auf Inch-Einheiten an.

Kommando SCMDEFLIBRARY

Mit dem Kommando SCMDEFLIBRARY lässt sich ein Verweis auf die Stromlaufbibliothek <stdlib>.ddb mit Standardsymbolen (Pin, Bustap, Junction, Labels, ...) und gleichzeitig ein Verweis auf das Verzeichnis <libpath> mit den Stromlaufbibliotheken einstellen. Die Syntax hierfür lautet:

SCMDEFLIBRARY ("<libpath>/<stdlib>");

Der Datenbank-Pfad <libpath> ist dabei frei wählbar, sollte jedoch auf das Verzeichnis verweisen, in dem neben der Datei <stdlib>.ddb mit den Standardsymbolen auch alle anderen benötigten Stromlauf-Bibliotheksdateien zu finden sind. Zu beachten ist dabei, dass / das Trennzeichen für Hierarchien (sowohl im Dateiverzeichnis, als auch auf Datenbank-Ebene) darstellt (im Unterschied zu DOS: \). Bei richtiger Definition dieser System-Variablen kann jedes SCM-Bibliothekssymbol entweder über Popupmenü durch die Selektion der SCM-Bibliotheksdatei und die Anwahl des gewünschten Symbols oder direkt durch die Eingabe von

<scmlib>/<symbolname>

in den Stromlauf geladen werden (also z.B. mit 74ls/74ls90 oder passiv/r). Auf die in <stdlib>.ddb definierten Sondersymbole kann ohne explizite Selektion der Bibliotheksdatei direkt zugegriffen werden. Darüber hinaus ist im Schaltplaneditor auch weiterhin die explizite Selektion der Stromlaufbibliothek über die Funktion Bibliotheksname im Menü Einstellungen möglich (die Eingabe von - bewirkt dabei das Löschen des aktuellen Eintrags, die Eingabe von ! bzw. . die Einstellung der über SCMDEFLIBRARY definierten Bibliothek).

Kommando LAYDEFLIBRARY

Mit dem Kommando LAYDEFLIBRARY lässt sich der Pfadname der Bibliothek mit den Layoutsymbolen definieren. Die Syntax für dieses Kommando lautet:

LAYDDEFLIBRARY ("<libpath>");

Der Datenbank-Pfad <libpath> ist dabei frei wählbar; zu beachten ist dabei, dass / das Trennzeichen für Hierarchien im Dateiverzeichnis darstellt (im Unterschied zu DOS: \). Bei richtiger Definition dieser System-Variablen kann jedes in der Datei <libpath>.ddb enthaltene Layoutsymbol durch die Angabe von

<symbolname>

in das Layout geladen werden (also z.B. mit dil16 oder sot23). Darüber hinaus ist sowohl im Layouteditor als auch im Autoplacement auch weiterhin die explizite Selektion der Layoutbibliothek über die Funktion Bibliotheksname im Menü Einstellungen möglich (die Eingabe von - bewirkt dabei das Löschen des aktuellen Eintrags, die Eingabe von ! bzw. . die Einstellung der über LAYDEFLIBRARY definierten Bibliothek).

Neben dem Default-Pfadnamen für die Symbolbibliothek im BAE-Layoutsystem setzt das Kommando LAYDEFLIBRARY zusätzlich auch den Pfadnamen der Standardbibliothek für die Funktion Symbollogik anzeigen zur Anzeige Logischer Bibliotheksdefinitionen im Schaltplaneditor.

Kommando LAYDEFELEMENT

Mit dem Kommando LAYDEFELEMENT lässt sich ein Default-Eintrag für den Namen des jeweils zu generierenden Layouts festlegen. Die Syntax für dieses Kommando lautet:

LAYDEFELEMENT ("<layout-elementname>");

Die Definition dieses Eintrages erleichtert das Arbeiten mit dem Packager ganz erheblich, da dabei jeweils die Abfrage nach dem Layoutelement einfach mit der Eingabetaste quittiert werden kann, und die Software dann selbsttätig den über LAYDEFELEMENT definierten Namen einträgt (selbstverständlich ist auch weiterhin eine explizite Spezifikation des Layoutelementnamens möglich).

Kommando PROJROOTDIR

Mit dem Kommando PROJROOTDIR kann das Startverzeichnis für die optionale Directory-Auswahl in den Datei-Auswahlmenüs festgelegt werden. Bei der Verzeichnisauswahl werden dann jeweils die Unterverzeichnisse des mit PROJROOTDIR definierten Wurzelverzeichnisses zur Auswahl angezeigt. Die Syntax für das Kommando PROJROOTDIR lautet

PROJROOTDIR ("<rootdir>");

wobei für <rootdir> das gewünschte Wurzelverzeichnis für die Directory-Auswahl anzugeben ist. Enthält die Setupdatei kein PROJROOTDIR-Kommando, dann wird das aktuelle Verzeichnis für die Verzeichnisauswahl verwendet. Mögliche Einträge für <rootdir> sind z.B. / (Wurzelverzeichnis des aktuellen Laufwerks), d: (Wurzelverzeichnis des PC-Laufwerks D:), c:/cad_data (Verzeichnis cad_data auf dem PC-Laufwerk C:), /pcb/projects (Verzeichnisbaum pcb/projects des aktuellen Laufwerks), usw. Der <rootdir>-Eintrag des PROJROOTDIR-Kommandos darf keine Sonderzeichen wie z.B. . oder \ enthalten.

Kommando WINMENUMODE

Die Windows- bzw. Motif-Versionen der BAE-Software können wahlweise mit Pulldownmenüs oder mit Seitenmenüs betrieben werden. Das bsetup-Kommando WINMENUMODE dient dazu, die gewünschte Benutzeroberfläche zu aktivieren. Mit dem folgenden Kommando wird die BAE-Standardbenutzeroberfläche mit Seitenmenüs aktiviert; dies ist zugleich die Standardeinstellung für den Fall, dass in der Setupdatei kein WINMENUMODE-Kommando eingetragen ist:

WINMENUMODE (SIDEMENU);

Mit dem folgenden Kommando wird in den Windows- bzw. Motif-Versionen der BAE-Software die BAE-Benutzeroberfläche mit Pulldownmenüs (Kontextmenüs erreichbar über linke Maustaste, Funktionswiederholung über rechte Maustaste) aktiviert:

WINMENUMODE (PULLDOWN);

Mit dem folgenden Kommando wird in den Windows- bzw. Motif-Versionen der BAE-Software die BAE-Benutzeroberfläche mit Pulldownmenüs (Kontextmenüs Windows-konform erreichbar über rechte Maustaste, Funktionswiederholung über linke Maustaste) aktiviert:

WINMENUMODE (PULLDOWN_RMB_CONTEXT);

Die DOS- und X11-Versionen der BAE-Software können grundsätzlich nur mit der BAE-Standardbenutzeroberfläche betrieben werden.

Kommando FRAMECOLOR

Mit dem Kommando FRAMECOLOR kann die Farbzuordnung für die Benutzeroberfläche der BAE-Module definiert werden. Die Syntax für dieses Kommando lautet:

FRAMECOLOR <screenarea> (<colornumber>);

<screenarea> gibt den Arbeitsbereich der Benutzeroberfläche an. Hierbei sind folgende Einträge für die Benutzeroberflächen der BAE-Grafikmodule (BAE-Shell, Schaltplaneditor, Layouteditor, Autorouter, CAM-Prozessor, CAM-View) möglich:

IdentifierArbeitsbereich
DIALAREA Status-/Eingabezeile
LISTAREA Textausgabe/Grafikarbeitsbereich
MENUHEAD Menü-Header/Info-Feld
MENUHEAD BACK Menü-Header/Info-Feld Hintergrund
MAINMENU Hauptmenü
MAINMENU BACK Hauptmenü Hintergrund
SUBMENUA Menü/Untermenü
SUBMENUA BACK Menü/Untermenü Hintergrund
EMENMARK Menü-Kursor enabled (System erwartet Eingabe)
EFILMARK Menü-Balken enabled (System erwartet Eingabe)
DMENMARK Menü-Kursor disabled (System arbeitet)
DFILMARK Menü-Balken disabled (System arbeitet)
POPMTEXT Popupmenü Text
POPMBUTT Popupmenü Button
POPMBACK Popupmenü Hintergrund
POPMFRAM Popupmenü Rahmen
POPMFILL Directory-Popupmenü Hintergrund

<colornumber> gibt die Farbnummer an. Dabei sind Werteinträge von 1 bis 15 erlaubt. Die Zuordnung der Farbnummer zu der entsprechenden Farbe erfolgt gemäß folgender Liste:

FarbnummerFarbe
1Blau
2Grün
3Kobaltblau
4Rot
5Violett
6Braun
7Hellgrau
8Dunkelgrau
9Hellblau
10Hellgrün
11Hellkobaltblau
12Hellrot
13Hellviolett
14Gelb
15Weiß

Beispiele

Im Lieferumfang des AutoEngineers ist ein Setup-File-Template (nach Installation im BAE-Programm-Verzeichnis unter stdset.def) mit folgendem Inhalt enthalten:

SETUP

/* Bartels AutoEngineer Standard Setup */

/* Menue Lagenbezeichnungen */
LAYMENUTEXT LINE 1   ("Lage &1 (Loets.)",1);
LAYMENUTEXT LINE 2   ("Lage &2",2);
LAYMENUTEXT LINE 3   ("Lage &3",3);
LAYMENUTEXT LINE 4   ("Lage &4",4);
LAYMENUTEXT TOPLAYER ("Lage n (Bes&ts.)");

/* Dokumentarlagen */
LAYDOCLAYER 1 ("Bestueckungsplan",SIDE2,LOGICAL);
LAYDOCLAYER 2 ("Loetmaske",NONE,PHYSICAL);
LAYDOCLAYER 3 ("Bohrplan",BOTH,NOROTATE);
LAYDOCLAYER 4 ("Film Passermarken",BOTH,PHYSICAL);
LAYDOCLAYER 5 ("Baugruppen",BOTH,LOGICAL);
LAYDOCLAYER 6 ("Bauteil-DRC",SIDE2,LOGICAL);
LAYDOCLAYER 7 ("Pin-Nummer",SIDE2,LOGICAL);
LAYDOCLAYER 8 ("Lotauftrag (SMD)",SIDE2,LOGICAL);
LAYDOCLAYER 9 ("Bemassung/Hinweise",SIDE2,LOGICAL);

/* Pad Lagenabfrage Freigabe */
LAYPADLAYER (DISABLE);

/* Film Passermarken */
LAYPLTMARKLAY (4);

/* Teilweise Gruppen Darstellung */
LAYGRPDISPLAY (5);

/* Standard Suchpfade und Namen */
SCMDEFLIBRARY ("/baelib/stdsym");
LAYDEFLIBRARY ("/baelib/laylib");
LAYDEFELEMENT ("s1");

/* Standard Benutzereinheiten */
USERUNITS (METRIC);

/* Windows/Motif Menueform */
WINMENUMODE (PULLDOWN);

/* Farbeinstellungen Grafik allgemein */
FRAMECOLOR DIALAREA (11);
FRAMECOLOR LISTAREA (14);

/* Farbeinstellungen Seitenmenu rechts */
FRAMECOLOR MENUHEAD (10);
FRAMECOLOR MENUHEAD BACK (8);
FRAMECOLOR MAINMENU (12);
FRAMECOLOR MAINMENU BACK (8);
FRAMECOLOR SUBMENUA (10);
FRAMECOLOR SUBMENUA BACK (8);

/* Farbeinstellungen Selektionsbalken */
FRAMECOLOR EMENMARK (2);
FRAMECOLOR DMENMARK (15);
FRAMECOLOR EFILMARK (8);
FRAMECOLOR DFILMARK (4);

/* Farbeinstellungen Popupmenu */
FRAMECOLOR POPMTEXT (3);
FRAMECOLOR POPMBUTT (14);
FRAMECOLOR POPMBACK (8);
FRAMECOLOR POPMFRAM (15);
FRAMECOLOR POPMFILL (1);

/* Farbeinstellungen Textprogramme */
FRAMECOLOR DIALLINE (10);
FRAMECOLOR OUTLINES (14);
FRAMECOLOR HEADLINE (12);

END.

Obige Setupdatei sollte an die benutzer- bzw. firmenspezifischen Anforderungen (Aufbau der Benutzeroberfläche, Zugriff auf Stromlauf- und Layoutbibliotheken, Zuordnung der Signallagen, Verwendung von Dokumentarlagen, usw.) angepasst werden und kann dann mit dem folgenden Kommando in die Software eingespielt werden:

>  bsetup stdset Return-/Eingabetaste (CR)

Dateien

bsetup.dat -- Setupdatei kompiliert (im BAE-Programm-Verzeichnis)
stdset.def -- Setupdatei-Quellcode (Template)

Siehe auch

BAE Shell, Schaltplaneditor, Layouteditor, Autorouter, CAM-Prozessor, CAM-View, Packager.

Diagnose

Die durch bsetup erzeugten Fehlermeldungen sind selbsterklärend.

 

7.3 BICSET (IC-Design)

HINWEIS: Das Utilityprogramm bicset ist nur in Bartels AutoEngineer IC-Design verfügbar!

Name

bicset - Bartels AutoEngineer IC-Design Setup Utility

Synopsis

bicset setupfile

Beschreibung

Das Utilityprogram bicset dient der Konfiguration von Setupdaten für das IC-Designsystem des Bartels AutoEngineer IC-Design-System. Hierzu zählen Standardzellen-Dimensionsangaben für die automatische Platzierung, Lagenzuordnungen und Lagenmenüdefinitionen, DRC-Parameter, usw. bicset erwartet als Argument den Dateinamen setupfile der Setupdatei (diese Datei muss mit der Extension .def verfügbar sein; beim Programmaufruf ist diese Dateinamensendung wegzulassen). bicset liest die Setupdatei und speichert die darin enthaltenen Setup-Parameter in der Datei bsetup.dat (im aktuellen Verzeichnis) ab. Beim Aufruf des IC-Designsystems des Bartels AutoEngineers IC-Design-Systems werden diese Parameter aus der Datei bsetup.dat im BAE-Programm-Verzeichnis geladen und aktiviert.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Setupdatei beginnt mit dem Schlüsselwort SETUP und endet mit END.. Kommentare können zwischen /* und */ eingefügt werden.

Dieser Abschnitt wird zur Zeit überarbeitet. Wir bitten um Nachsicht.

Beispiele

Im Lieferumfang der Bartels AutoEngineer IC-Design Software ist die IC-Design-Setupdatei icset.def (im BAE-Programm-Verzeichnis) mit folgendem Inhalt enthalten:

SETUP

/* Bartels AutoEngineer IC Design Setup */

Dieser Abschnitt wird zur Zeit überarbeitet. Wir bitten um Nachsicht.

END.

Obige Setupdatei können Sie an Ihre spezifischen Anforderungen anpassen und dann mit dem folgenden Kommando kompilieren bzw. aktivieren:

>  bicset icset Return-/Eingabetaste (CR)

Dateien

bsetup.dat -- Setupdatei kompiliert (im BAE-Programm-Verzeichnis)
icset.def -- Setupdatei-Quellcode (Template)

Siehe auch

BAE-Shell, Chipeditor, Cellplacer, Cellrouter.

Diagnose

Die durch bicset erzeugten Fehlermeldungen sind selbsterklärend.

 

7.4 BLDRING (IC-Design)

HINWEIS: Das Utilityprogramm bldring ist nur in Bartels AutoEngineer IC-Design verfügbar!

Name

bldring - Bartels AutoEngineer IC-Design Build Ring Utility

Synopsis

bldring ringdescriptionfile

Beschreibung

Das Utilityprogram bldring dient zur automatisierten Erstellung eines Chip-Basislayouts aus einer Beschreibungsdatei. Die Beschreibungsdatei entählt Informationen über die verwendeten Zellmakros und Sektionen zur Platzierung eines ässeren (rechteckigen) Rings mit Bondingpadzellen und beliebigen anderen Zellplatzierungen. Bei den Bondingpadzellen muss nur die relative Abfolge der Padzellen in den einzelnen Ringseiten spezifiziert werden, die Platzierungskoordinaten werden automatisch aus den Zellmakrobeschreibungen und den Ringdimensionen bestimmt. In den nicht von Bondingpads belegten Teilen des Rings werden automatisch Metallstrukturen zum Durchschleifen zweier Spannungsversorgungen erzeugt. Bei den festen Zellplatzierungen ist eine Koordinatenangabe relativ zu den Begrenzungen des Rings möglich, so dass einmal definierte Strukturen einfach in verschieden grosse Designs übernommen werden können. bldring erwartet als Argument den Dateinamen ringdescriptionfile der Beschreibungsdatei (diese Datei muss mit der Extension .rig verfügbar sein; beim Programmaufruf ist diese Dateinamensendung wegzulassen). Die Namen der Ausgabedatei und des darin erzeugten IC-Designelementes werden in der Ringbeschreibungsdatei spezifiziert.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Setupdatei beginnt mit dem Schlüsselwort ring und wird durch das Dateiende beendet. Kommentare können zwischen /* und */ eingefügt werden.

Dieser Abschnitt wird zur Zeit überarbeitet. Wir bitten um Nachsicht.

Beispiele

Dieser Abschnitt wird zur Zeit überarbeitet. Wir bitten um Nachsicht.

Dateien

Siehe auch

Chipeditor.

Diagnose

Die durch bldring erzeugten Fehlermeldungen sind selbsterklärend.

 

7.5 CONCONV

Name

conconv - Connections Conversion Utility

Synopsis

conconv projectname libraryfile

Beschreibung

Das Programm conconv dient der Übertragung von physikalischen (d.h. gepackten) ASCII-Netzlisten aus den Formaten BAE, CALAY, MARCONI oder RACAL in das interne Netzlistenformat des Bartels AutoEngineer.

conconv erwartet als erstes Argument den Dateinamen projectname der Netzlistendatei (diese Datei muss mit der Extension .con verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben).

conconv erwartet als zweites Argument den Namen libraryfile der Layoutbibliothek, aus der die Gehäusebauformen geladen werden sollen. libraryfile muss im DDB(Design DataBase)-Format vorliegen, und im Dateinamen die Extension .ddb aufweisen (diese Extension ist beim Programmaufruf nicht mit anzugeben).

conconv liest die ASCII-Netzliste <projectname>.con und prüft, ob alle darin enthaltenen Layoutsymbole in der Bibliothek <libraryfile>.ddb definiert sind. Es wird das Job-File <projectname>.ddb generiert und die Freelist <projectname>.fre ausgegeben. Die Freelist wird vom System nicht weiter benötigt und ist zur Auswertung durch den Benutzer bestimmt (Anzeige nicht angeschlossener Pins, Statistik). Im Job-File befindet sich nunmehr die übersetzte Netzliste. Auch die ASCII-Netzliste <projektname>.con wird jetzt nicht mehr benötigt, sollte jedoch für etwaige Änderungen aufgehoben werden.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Eingabedatei mit der einzulesenden ASCII-Netzliste muss mit dem Kommando LAYOUT beginnen und mit dem Kommando END. enden. Kommentare können an beliebiger Stelle zwischen /* und */ eingefügt werden. Das LAYOUT-Kommando hat folgendes Format:

LAYOUT <elementname>;

<elementname> gibt den Namen der Netzliste bzw. des in der Zieldatei zu erstellenden Layouts an.

Bauteilliste

Nach dem LAYOUT-Kommando folgt die Bauteilliste, die mit dem Schlüsselwort PARTS beginnen muss und für jedes Bauteil ein Kommando der Form

<part> : <plname> ;

enthält. <part> ist hierbei der Bauteilname, <plname> der Physical Library Name, d.h. der Name des Gehäuses bzw. des Layoutsymbols.

Netzliste

Nach der Bauteilliste folgt die Netzliste, die je nach Format mit einem entsprechenden Schlüsselwort beginnen muss (CONNECT für Bartels-Format, CALAY für CALAY-Format, RACAL für RACAL-Format, MARCONI für MARCONI-Format). Im Bartels-Format ist für jedes Netz ein Kommando der Form

<part>.<pin>=<part>.<pin>=...=<part>.<pin>

bzw.

/<net>/ <part>.<pin>=<part>.<pin>=...=<part>.<pin>

einzutragen. Zusätzlich können hinter "/<net>/" die folgenden Netzattribute definiert werden:

PRIORITY(<prior>) MINDIST(<dist>) ROUTWIDTH(<width>)

Obige Netzattribute werden vom Autorouter berücksichtigt, wobei <prior> die Routingpriorität, <dist> den minimalen Abstand des Netzes zu anderen Potentialen und <width> die netzbezogene Leiterbahnbreite spezifizieren. Darüber hinaus kann für jeden einzelnen Pin (jeweils hinter "<pin>", in Klammern) eine pinbezogene Leiterbahnanschlussbreite definiert werden. <prior> ist als Integerwert, die anderen Werte jeweils in Millimetern anzugeben.

Im CALAY-Format ist für jedes Netz ein Kommando der Form

<part>(<pin>),<part>(<pin>),...,<part>(<pin>)

bzw.

/<net> <part>(<pin>),<part>(<pin>),...,<part>(<pin>)

einzutragen. Darüber hinaus kann für jeden einzelnen Pin (jeweils hinter "<pin>", abgetrennt durch ein Komma) eine pinbezogene Leiterbahnanschlussbreite (Einheit mm) definiert werden.

Im RACAL-Format ist für jedes Netz eine Kommandosequenz der Form

.ADD_TER        <part> <pin> <net>
.TER            <part> <pin>
                <part> <pin>
                :
                <part> <pin>

einzutragen. Die RACAL-Netzliste ist mit dem Schlüsselwort .END abzuschließen.

Im MARCONI-Format ist für jedes Netz ein Kommando der Form

<part> <pin> <part> <pin> ... <part> <pin> ; <net> /

einzutragen.

Beispiele

Netzliste (design.con) im Bartels-Format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
CONNECT
        /net1/ c2.2=t1.3;
        /net2/ c1.2(0.4)=t1.2=r1.2;
        /gnd/ PRIORITY(2) MINDIST(0.4) t1.1=c1.1(0.4);
        /vcc/ PRIORITY(1) ROUTWIDTH(0.5) c2.1=r1.1;
END.

Netzliste (design.con) im CALAY-Format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
CALAY
        /net1 c2(2),t1(3);
        /net2 c1(2,0.4),t1(2),r1(2);
        /gnd t1(1),c1(1,0.4);
        /vcc c2(1,0.5),r1(1,0.5);
END.

Netzliste (design.con) im RACAL-Format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
RACAL
        .ADD_TER        c2 2 net1
        .TER            t1 3
        .ADD_TER        c1 2 net2
        .TER            t1 2
                        r1 2
        .ADD_TER        t1 1 gnd
        .TER            c1 1
        .ADD_TER        c2 1 vcc
        .TER            r1 1
.END
END.

Netzliste (design.con) im MARCONI-Format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
MARCONI
        c2 2 t1 3 ; net1 /
        c1 2 t1 2 r1 2 ; net2 /
        t1 1 c1 1 ; gnd /
        c2 1 r1 1 ; vcc /
END.

Alle oben aufgeführten Netzlisten können mit folgendemAufruf transferiert werden:

>  conconv design laylib Return-/Eingabetaste (CR)

Obiger Aufruf bewirkt, dass die ASCII-Netzliste design.con eingelesen wird, deren Einträge in der Bauteilliste gegen die Gehäusebibliothek laylib.ddb geprüft werden, und anschließend die Netzliste (mit Bauteilliste) unter dem Namen board im Jobfile design.ddb abgespeichert wird. Wurde der conconv-Lauf fehlerfrei beendet, dann kann man nun den Layouteditor aufrufen, ein Layout mit dem Elementnamen board im Jobfile design.ddb erzeugen, und anschließend im Menü Bauteile jeweils mit Naechstes Bauteil die in der Bauteilliste eingetragenen Bauteile in das Layout laden. Zu beachten ist hierbei, dass beim Laden der Bauteile dieselbe Bibliothek laylib.ddb verwendet wird, wie beim conconv-Aufruf spezifiziert (evtl. Einstellung im Layouteditor über Einstellungen - Bibliotheksname).

Siehe auch

netconv

Diagnose

Die durch conconv erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

In den Eingabedaten sind Bauteilnamen, Pinnamen oder Netznamen mit Sonderzeichen (-, +, /, (, =, usw.) in einfachen oder doppelten Anführungszeichen anzugeben.

 

7.6 COPYDDB

Name

copyddb - Copy Design Database Utility

Synopsis

copyddb srcfile dstfile {-ms|-md|-mr}
        {-a|-as|-al|-ac|-sp|-ss|-sl|-sm|-ll|-lp|-ls|-ld|-cl|-cc|-cp|
         -drc|-llib|-gtab|-fnt|-sct|-lct|-ict|-ulp|-ull|-rule|-recover} [pattern]

Beschreibung

Das Programm copyddb kopiert selektierbare Datenbankeinträge von einem DDB(Design DataBase)-File in ein anderes. Damit lässt sich copyddb als im Batch-Mode betreibbares Programm zum Mischen von Bibliotheken oder zur Aktualisierung von Job-Design-Files verwenden.

copyddb erwartet zwei Dateinamen als Argumente. srcfile und dstfile sind die Namen der DDB-Quell- bzw. der DDB-Zieldatei (diese Dateien müssen mit der Extension .ddb verfügbar sein, wenn die Dateinamen beim Programmaufruf ohne Extension angegeben wurden). copyddb kopiert Einträge aus der Quelldatei in die Zieldatei, wobei über den Merge-Switch gesteuert werden kann, ob evtl. in der Zieldatei bereits vorhandene Einträge überschrieben werden dürfen oder nicht, bzw. ob lediglich in der Zieldatei bereits vorhandene Elemente ersetzt werden sollen (replace).

copyddb erwartet optional ein Schlüsselwort als Argument. Über dieses pattern werden die Namen der zu kopierenden Elemente spezifiziert. Die Angabe des Schlüsselwortes kann mit Wildcards erfolgen. Ist kein Schlüsselwort angegeben, dann werden alle Elemente der selektierten Klasse kopiert. Die Selektion der zu kopierenden Objektklasse erfolgt über den Class Switch.

Optionen

Merge Switch (erforderlich):

-msMerge Source (Quelldatei ist Master)
-mdMerge Destination (Zieldatei ist Master)
-mrMerge Replace (Quelldatei ist Master)

Class Switch (erforderlich):

-a Alle Klassen
-as Alle SCM-Klassen (wie alle -s?-Switches)
-al Alle Layout-Klassen (wie alle -l?-Switches)
-ac Alle Chip/IC Design-Klassen (wie alle -c?-Switches)
-sp SCM Pläne (mit Bauteilliste und logischer Netzliste)
-ss SCM Symbole (mit Logischer Bibliothek)
-sl SCM Labels
-sm SCM Marker
-ll Layout Pläne (mit physikalischer Netzliste und Routingdaten)
-lp Layout Bauteile
-ls Layout Padstacks
-ld Layout Pads
-cl Chip/IC Design Layouts (mit physik. Netzliste und Routingdaten)
-cc Chip/IC Design Zellen
-cp Chip/IC Design Pins
-drc Layout Design Rule Check Parameterblöcke
-llib Logische Bibliothekseinträge
-gtab Gerber Blendentabellen
-fnt BAE-Zeichensatzdaten
-sct SCM Farbtabellen
-lct Layout Farbtabellen
-ict Chip/IC Design Farbtabellen
-ulp User Language-Programme
-ull User Language-Libraries
-rule Regelsystemdefinitionen
-recoverAlle Klassen (Restaurierungsmodus für korrupte DDB-Dateien)

Beispiele

Kopieren aller Layoutsymbole deren Namen mit so1 beginnen (z.B. so14, so16, ...) aus newlib.ddb nach laylib.ddb mit laylib.ddb als Master-File:

>  copyddb newlib laylib -md -lp so1* Return-/Eingabetaste (CR)

Kopieren aller SCM-Einträge aus design.ddb nach redesign.ddb mit design.ddb als Master-File:

>  copyddb design redesign -ms -as Return-/Eingabetaste (CR)

Erneuern der in design.ddb enthaltenen Padstack-Definitionen, deren Namen mit finger beginnen, entsprechend den in laylib.ddb enthaltenen Definitionen:

>  copyddb laylib design -ms -ls finger* Return-/Eingabetaste (CR)

Kopieren aller User Language-Libraries aus ulcprog.vdb nach ullibs.sav mit ulcprog.vdb als Master-File:

>  copyddb ulcprog.vdb ullibs.sav -ms -ulp Return-/Eingabetaste (CR)

Ersetzen von in design.ddb enthaltenen Layoutbauteilen durch entsprechend benannte Layoutbauteile aus library.ddb, d.h. Aktualisieren der jobspezifischen Layoutbibliothek in design.ddb:

>  copyddb library design -mr -lp Return-/Eingabetaste (CR)

Dateien

bae.log -- Logfile (im aktuellen Verzeichnis)

Siehe auch

listddb.

Die Funktionalität zum Kopieren von DDB-Dateielementen ist auch in der User Language-Systemfunktion ddbcopyelem implementiert.

Diagnose

Die durch copyddb erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

copyddb ist ein mächtiges Werkzeug zur Manipulation von DDB-Dateiinhalten. Achten Sie ganz besonders darauf, WAS Sie mit copyddb tun. Konflikte könnten auftreten, wenn unterschiedliche SCM- und/oder Layoutpläne gemischt werden, da dadurch auch Bauteil-Listen, Netzlisten, Bauteil-Attribute gemischt werden. Die unsachgerechte Anwendung von copyddb kann insbesondere zu Problemen im Packager bzw. in der Backannotation führen. Wir weisen daher mit Nachdruck darauf hin, nach dem Gebrauch von copyddb den Inhalt der Zieldatei auf Konsistenz zu überprüfen!

 

7.7 FONTCONV

Name

fontconv - Font Conversion Utility

Synopsis

fontconv fontfile libraryfile

Beschreibung

Das Programm fontconv dient dazu, im ASCII-Format erstellte Vektorfontdaten in eine Fontbibliothek zu übertragen.

Das Argument fontfile gibt den Namen der Fontbeschreibungsdatei an (diese muss mit der Extension .fon verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben).

Mit dem Argument libraryfile wird die Bibliothek angegeben, in der die Fontdaten eingetragen werden. Die Bibliotheksdatei erhält die Extension .fnt, die beim Aufruf nicht mit anzugeben ist. Die Fontbibliothek des Bartels AutoEngineer trägt den Namen ged.fnt und befindet sich im gleichen Verzeichnis wie die ausführbaren Programmdateien.

Format der Eingabedatei

Die Fontbeschreibungsdatei ist nach folgendem Schema aufgebaut:

FONT <fontname>;
CHAR <ord>;
        POLY (0, 0), (10, 10), (10, 0) ;
        :
:
END.

<fontname> gibt den Namen des Fonts in der Bibliothek an. <ord> gibt die ASCII-Ordnungszahl des definierten Zeichens an (z.B. 65 für A). Es können Zeichen im Bereich von 0..255 definiert werden. Werden in einer Beschreibungsdatei für die gleiche ASCII-Nummer verschiedene Zeichenbeschreibungen angegeben, so gilt die jeweils letzte. Die Zeichen (CHARacter) werden als Liste von Linienzügen (POLYgonen) beschrieben. Ein Polygon wird durch Aufzählung der Koordinaten seiner Eckpunkte angegeben. Die Koordinaten sind ganzzahlig in einem 32x48 Raster anzugeben, ausgehend von 0,0 in der linken unteren Ecke. Es ergibt sich also ein Wertebereich von 0..31 für X-Koordinaten und 0..47 für Y-Koordinaten. Ein Zeichen kann bis zu 32 Eckpunkte enthalten. Kommentare beliebiger Länge können zwischen den Zeichenketten /* und */ an beliebiger Stelle eingefügt werden.

Beispiele

Inhalt der Datei test.fon mit Definition für ! und " (je 4 Eckpunkte und 2 Polygone):

/* Name des Fonts in der Bibliothek */
FONT test;
/* ASCII-Code 33 fuer '!' */
CHAR 33;
        /* Kurzer unterer Strich */
        POLY (16,5),(16,9);
        /* Langer oberer Strich */
        POLY (16,13),(16,45);
/* ASCII-Code 34 fuer '"' */
CHAR 34;
        /* Linker Strich */
        POLY (12,40),(4,32);
        /* Rechter Strich */
        POLY (16,32),(24,40);
END.

Eintragen in die Fontbibliothek (ged.fnt) mit:

>  fontconv test ged Return-/Eingabetaste (CR)

Dateien

ged.fnt -- BAE-Fontbibliothek (im Programmverzeichnis)

Siehe auch

fontextr

Diagnose

Die durch fontconv erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

Ein eventuell schon in der Bibliothek enthaltener Font gleichen Namens wird kommentarlos ersetzt.

 

7.8 FONTEXTR

Name

fontextr - Font Extraction Utility

Synopsis

fontextr fontname libraryfile

Beschreibung

Das Programm fontextr dient dazu, Vektorfontdaten aus dem internen Bibliotheksformat in ein les- und editierbares ASCII-Format umzuwandeln.

Das Argument fontname gibt den Namen des Fonts in der Bibliothek an. Die ausgelesen Fontdaten werden in einer ASCII-Textdatei mit dem Namen <fontname>.fon abgelegt.

Mit dem Argument libraryfile wird die Bibliothek angegeben, aus der die Fontdaten ausgelesen werden. Die Bibliotheksdatei hat die Extension .fnt, die beim Aufruf nicht mit anzugeben ist. Die Fontbibliothek des Bartels AutoEngineers trägt den Namen ged.fnt und befindet sich im gleichen Verzeichnis wie die ausführbaren Programmdateien.

Format der Ausgabedatei

Die Fontbeschreibungsdatei ist nach folgendem Schema aufgebaut:

FONT <fontname>;
CHAR <ord>;    /* 'ASCII-Character' */
        POLY (0, 0), (10, 10), (10, 0) ;
        :
:
END.

<fontname> gibt den Namen des Fonts in der Bibliothek an. <ord> gibt die ASCII-Ordnungszahl des definierten Zeichens an, z.B. 65 für A. Die Zeichen (CHARacter) werden als Liste von Linienzügen (POLYgonen) beschrieben. Ein Polygon wird durch Aufzählung der Koordinaten seiner Eckpunkte angegeben. Am Ende der Kopfzeile jeder Zeichendefinition steht in Kommentarform die ASCII-Repräsentation des Zeichens.

Beispiele

Auslesen des Fonts standard aus der Fontbibliothek ged.fnt (und Ablegen der Zeichensatzdaten in der ASCII-Datei standard.fon):

>  fontextr standard ged Return-/Eingabetaste (CR)

Dateien

ged.fnt -- BAE-Fontbibliothek (im Programmverzeichnis)

Siehe auch

fontconv

Diagnose

Die durch fontextr erzeugten Fehlermeldungen sind selbsterklärend.

 

7.9 INSTALL

Name

install - Bartels AutoEngineer Installation Utility

Synopsis

install
install [-c] srcfile[pattern] dstfile[directory\*]

Beschreibung

Mit dem Programm install kann die PC-Software des Bartels AutoEngineer ganz oder teilweise vom Installationsmedium der BAE-Software auf die PC-Festplatte installiert werden. Darüber hinaus lassen sich mit install auch einzelne oder mehrere Dateien entweder komprimieren oder dekomprimieren.

Die Installation der BAE-PC-Software kann nur mit diesem Utilityprogramm durchgeführt werden, da die Dateien auf den Installationsdisketten des Bartels AutoEngineer in einem komprimierten Format ausgeliefert werden.

BAE-Softwareinstallation

Die Installation der BAE-PC-Software kann mit dem Aufruf

install

gestartet werden. Voraussetzung hierfür ist, dass das aktuelle Verzeichnis den Inhalt des BAE-Install-Kits enthält (dies ist z.B. dann der Fall, wenn die Disk 1 des BAE-Install-Kits in einem Diskettenlaufwerk oder die BAE-CD-ROM im CD-ROM-Laufwerk eingelegt ist, und wenn das Arbeitsverzeichnis mit dem entsprechenden Laufwerk übereinstimmt). Nach Aufruf von install durchläuft der Benutzer eine Abfragesequenz, in der u.a. der Installationsmodus sowie die Zielverzeichnisse zur Installation der BAE-Softwarekomponenten abgefragt werden. Der Installationsmodus gibt an, welche Dateien kopiert werden sollen. Bei einer Neu-Installation werden alle Dateien kopiert. Bei einer Update-Installation werden auf .dat, .def und .fnt endende Systemdateien mit benutzerspezifischen Setupdaten, Farb- oder Blendentabellen, Zeichensätzen, usw. nicht überschrieben. Bei der Abfrage der Verzeichnisse werden Defaultnamen angezeigt. Diese können durch einfaches Drücken der Eingabetaste Return-/Eingabetaste (CR) übernommen werden. Die Pfadnamen der Zielverzeichnisse können editiert werden. Wahlweise können Zielverzeichnisnamen auch gelöscht werden, um die Installation der entsprechenden Softwarekomponenten zu unterdrücken. Ist eines der Zielverzeichnisse nicht vorhanden, dann wird es während der Installation nach Bestätigung durch den Benutzer automatisch angelegt.

Komprimieren/Dekomprimieren von Dateien

Selektierbare Dateien lassen sich mit der Aufrufart

install [-c] srcfile[pattern] dstfile[directory\*]

dekomprimieren (ohne Option -c) bzw. komprimieren (mit Option -c), wobei die Spezifikation von Wildcards optional zulässig ist (pattern). Ist das Ziel ein Verzeichnis für mehrere über Wildcard spezifizierte Dateien, so muss \* an den Verzeichnisnamen angehängt werden.

Beispiele

Dekomprimieren aller .ddb-Dateien von Floppy/Laufwerk A und Kopieren in ein Verzeichnis auf Festplatte:

>  install a:\*.ddb c:\baelib\* Return-/Eingabetaste (CR)

Dekomprimieren der Datei ged.fnt von Floppy/Laufwerk B und Kopieren in ein Verzeichnis auf Festplatte:

>  install b:\ged.fnt c:\bae Return-/Eingabetaste (CR)

Komprimieren der Datei design.ddb und Ablegen der komprimierten Datei unter design.cmp:

>  install -c design.ddb design.cmp Return-/Eingabetaste (CR)

Diagnose

Die durch install erzeugten Fehlermeldungen sind selbsterklärend.

 

7.10 LISTDDB

Name

listddb - List Design Database Utility

Synopsis

listddb ddbfile listfile

Beschreibung

Mit dem Programm listddb kann der Inhalt von DDB(Design DataBase)-Files ausgelistet werden.

Das Argument ddbfile gibt den Namen der DDB-Datei an, deren Inhalt ausgelistet werden soll (die DDB-Datei muss mit der Extension .ddb verfügbar sein, wenn der Dateiname beim Programmaufruf ohne Extension angegeben wurde).

Das Argument listfile gibt den Namen der ASCII-Datei an, auf die der Inhalt der DDB-Datei ausgelistet werden soll.

Beispiele

Auflisten des Inhalts von laylib.ddb auf die Datei laylib.lst:

>  listddb laylib laylib.lst Return-/Eingabetaste (CR)

Siehe auch

copyddb

Diagnose

Die durch listddb erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

Das listfile Argument gibt den Namen der durch listddb zu erzeugenden Ausgabedatei an. listddb führt keine Prüfung auf Existenz dieser Datei durch. Geben Sie daher in keinem Fall den Namen einer noch benötigten existierenden Datei an, da diese sonst durch listddb kommentarlos überschrieben wird!

 

7.11 LOGLIB

Name

loglib - Logical Library Maintenance

Synopsis

loglib loglibfile libraryfile

Beschreibung

Das Programm loglib dient dazu, Informationen über die Zuordnung der Stromlaufsymbole zu den Layoutsymbolen, die Zuordnung von logischen zu physikalischen Anschlüssen, Pin- und Gattertausch, feste Versorgungsanschlüsse, usw. in ein DDB(Design DataBase)-File einzuspielen. Dies ist notwendig, um die Transformation von Schaltplänen in das Layout, d.h. die Umsetzung logischer Netzlisten in physikalische (mit Hilfe des Packagers oder umgekehrt über Backannotation) zu ermöglichen.

loglib erwartet als erstes Argument den Namen loglibfile einer ASCII-Datei (Loglibdatei), in der die logische Bibliotheksinformation abgelegt ist (diese Datei muss mit der Extension .def verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben).

loglib erwartet als zweites Argument den Namen libraryfile der DDB-Datei, in das die logische Bibliotheksinformation einzuspielen ist (diese Datei erhält die Extension .ddb beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben).

Gebrauch

Das Programm loglib muss immer zur Anwendung kommen, wenn ein neues (oder geändertes) Stromlaufsymbol definiert wurde bzw. wenn sich eine neue (oder geänderte) Zuweisung von Stromlauf- zu Layoutsymbol ergibt. Im Regelfall wird zunächst das Stromlaufsymbol in der Stromlaufbibliothek erstellt (oder editiert). Anschließend wird (falls nicht schon existent) in der Layoutbibliothek das Layoutsymbol definiert, in welches das Stromlaufsymbol gepackt werden soll. Schließlich sind die entsprechenden Einträge in einer Loglibdatei zu erstellen und die darin eingetragenen Definitionen mit dem Programm loglib in die Layoutbibliothek einzuspielen.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Loglibdatei beginnt mit dem Schlüsselwort loglib und endet mit end.. Kommentare können zwischen /* und */ eingefügt werden.

Kommando part

Über das part-Kommando erfolgt die Zuweisung des Stromlaufsymbols an das Layoutsymbol. Die Syntax für dieses Kommando lautet:

part <llname> : <plname>

Der Packager wird bei der Umsetzung des Stromlaufs in das Layout entsprechend des eingetragenen part-Kommandos das durch <llname> (Logical Library Name) gegebene Stromlaufsymbol in die durch <plname> (Physical Library Name) gegebene Gehäuseform packen. Steht vor <plname> das Schlüsselwort default, so besteht die Möglichkeit, bei der Stromlauf-Erstellung über einen entsprechenden Werteintrag für das am Stromlaufsymbol <llname> definierte Attribut $plname dem Packager eine andere Gehäusezuweisung vorzugeben:

part <llname> : default <plname>

Wird für <plname> eine (durch Komma getrennte) Liste von Gehäusen angegeben, dann besteht während der Bauteilplatzierung im Layout die Möglichkeit der Zuweisung der entsprechenden Alternativbauform(en) an das betreffende Bauteil. Die Syntax hierfür lautet:

part <llname> : [default] <plname>[,<plname>,...,<plname>]

Der erste <plname>-Eintrag entspricht dabei dem Default-Gehäuse für das entsprechende Bauteil. Die nachfolgenden Einträge spezifizieren die Alternativbauformen, die über die Funktion Bauform aendern während der Platzierung des entsprechenden Bauteils gewählt werden können. Die Auswahlreihenfolge im Menü zur Bauformauswahl entspricht hierbei der Reihenfolge der <plname>-Einträge im part-Kommando. Im Layout durchgeführte Zuweisungen alternativer Gehäusebauformen müssen mit Backannotation in den Stromlauf zurückgemeldet werden. In jedem Fall haben jedoch im Stromlauf über das Attribut $plname definierte Gehäusezuweisungen höhere Priorität.

Mit Hilfe des Schlüsselwortes class kann das Bauteil wahlweise einer Bauteilklasse zugewiesen werden:

part <llname> : class <partclassname> [default] <plname>

Bauteilklassen werden vom Packager ausgewertet, um die Zulässigkeit der Zuweisung zu alternativen Bauteildefinitionen über das Attribut $rlname (Requested Logical Library Name) zu prüfen.

Soll eine einmal über loglib vorgenommene Zuweisung vollständig aus der Bibliothek gelöscht werden, so kann dies mit dem Kommando

delete part <llname> ;

geschehen. Die Loglibdatei bietet außerdem die Möglichkeit virtuelle Symbole zu definieren, also Stromlaufsymbole, die keinem Layoutsymbol zuzuordnen sind. In diesem Fall ist im part-Kommando anstelle des <plname> das Schlüsselwort virtual einzutragen:

part <llname> : virtual ;

Das Kommando part ermöglicht über das Schlüsselwort logical die Definition rein logischer Bauteile:

part <llname> : logical ...

Die Definition logischer Bauteile ohne Gehäusezuweisung ermöglicht die Generierung logischer Netzlisten (z.B. im Format EDIF für PLD- bzw. LCA-Design).

Die Zuweisung unterschiedlicher Stromlaufsymbole in ein einziges Gehäuse (z.B. Spule und Kontakt beim Relais) geschieht durch Verwendung der Schlüsselwörter mainpart und subpart in den entsprechenden part-Kommandos:

part <mainllname> : mainpart <plname>
:
part <subllname> : subpart <mainllname>

Bei der subpart-Definition ist zu beachten, dass hier anstelle eines Verweises auf einen <plname> ein Verweis auf den <llname> des mainpart (<mainllname>) einzutragen ist.

Für den Fall, dass eine 1:1-Zuordnung zwischen den logischen Pins und den physikalischen Anschlüssen vorliegt (d.h. das Stromlaufsymbol ist genau einem Layoutsymbol zugeordnet, und die Pinbezeichnungen entsprechen sich), dann genügt es, das part-Kommando mit einem Strichpunkt abzuschließen:

part <llname> : <plname> ;

Liegt der Sonderfall der 1:1-Zuordnung nicht vor, oder sind Pin- und Gattertausch, Versorgungsanschlüsse, feste Attribute oder ähnliches zu definieren, dann geschieht dies mit den entsprechenden, nachfolgend beschriebenen Kommandos unmittelbar nach dem part-Kommando in geschweiften Klammern:

part <llname> : <plname> { <commands> }
Kommando net

Über das Kommando net können Netze definiert werden, die im Schaltbild immer wieder auftreten und deshalb nicht einzeln verdrahtet werden müssen (z.B. feste Versorgungsanschlüsse). Die Syntax hierfür lautet:

net "<netname>" : ( <pinlist> ) ;

Durch Voranstellen des Dollarzeichens ($) kann mit dem Kommando net ein Netznamensattribut anstelle des Netznamens definiert werden:

net "$<netname>" : ( <pinlist> ) ;

Ist auf dem zugehöhrigen SCM-Symbol ein entsprechendes Attribut definiert, dann kann im Stromlauf eine variable, bauteilspezifische Versorgungsspannungszuweisung durch einen entsprechenden Netznamenseintrag (z.B. vcc, vss, 0v, etc.) für das Netznamensattribut vorgenommen werden.

Eine Sonderform des net-Kommandos ist das internal-Kommando, in dem anstelle einer Netznamensdefinition lediglich das Schlüsselwort internal eingetragen ist:

net internal : ( <pinlist> ) ;

Das internal-Kommando sorgt dafür, dass die in der zugehörigen <pinlist> definierten Anschlüsse durch den Packager automatisch miteinander verbunden werden. <pinlist> enthält (getrennt durch Komma) die Liste der Pins. Die pin-Einträge definieren die physikalischen Pinbezeichnungen. Enthält ein Pinname Sonderzeichen, dann ist er in Anführungszeichen anzugeben.

Kommando bus

Mit Hilfe des bus-Kommandos können bereits direkt am Bauteil Busse definiert werden. Die Syntax für dieses Kommando lautet:

bus ( <buspinlist> ) ;

<buspinlist> definiert hierbei die Liste der am Bauteil definierten logischen Pins, über die jeweils ganze Busse angeschlossen werden können. Die Definition der jeweiligen Bussignale kann dann z.B. mit dem xlat-Kommando (siehe unten) erfolgen. Dabei ergeben sich die entsprechenden logischen Pinbezeichnungen jeweils aus dem Bus(pin)namen und dem Bussignalnamen in folgendem Format:

"<buspin>.<bussignal>"
Kommando pin

Das Kommando pin dient der Auflistung der am Stromlaufsymbol definierten logischen Anschlüsse. Die Syntax für dieses Kommando lautet:

pin ( <pinlist> ) ;

<pinlist> enthält hierbei die Liste der logischen Pinbezeichnungen am Stromlaufsymbol.

Bei der Angabe von Pinnamen lassen sich optional auch ganze Bereiche in der Form

<startpin>-<endpin>[:<schrittweite<]

angeben. So kann z.B. die Pinliste pin(a1,a2,a3,a4) mit pin(a1-a4); oder die Pinliste pin(c2,c4,c6,c8,c10) mit pin(c2-c10:2) spezifiziert werden. Es sind auch mehrere Bereiche wie z.B. pin(a1-a32,b1-b2,c1-c32); in einem Kommando erlaubt. Die Bereichsangabe dient nur der Verkürzung der Eingabe. Beim Abspeichern und der Anzeige mit Symbollogik zeigen werden weiterhin die vollständigen Pinnamenslisten verwendet.

Das Kommando

pin none ;

unterdrückt die automatische 1:1-Zuordnung von Symbol- zu Layoutbauteilpins bei fehlendem pin-Kommando und gestattet somit z.B. die Erstellung universell verwendbarer mainpart-Symbole ohne Pins.

Kommando xlat

Über das Kommando xlat erfolgt die Zuordnung der (über Kommando pin definierten) logischen Pins zu den physikalischen Anschlüssen am Gehäuse, d.h. die Definition der Gatterzuordnung. Die Syntax für das xlat-Kommando lautet:

xlat ( <lplist> ) to ( <pplist> )
  or ( <pplist> ) or ... or ( <pplist> ) ;

<lplist> enthält die Liste der am Stromlaufsymbol definierten logischen Pinbezeichnungen. Die <pplist>-Einträge definieren (entsprechend der in <lplist> vorgegebenen Reihenfolge) die Zuweisungen der logischen zu den physikalischen Pinbezeichnungen.

Für jedes xlat-Kommando mit Alternativen (d.h. mit or-Optionen zur Definition von Gattern) wird automatisch eine swap-Definition für bauteilübergreifenden Gattertausch generiert, sofern nicht explizit ein swap internal-Kommando (siehe unten) mit angegeben wurde.

Kommando swap

Das Kommando swap erlaubt die Definition von Pin-, Gatter-, oder Pingruppen-Vertauschbarkeit (vgl. hierzu Funktion Bauteile - Pin/Gate Swap im Layouteditor). Die Syntax für das swap-Kommando lautet:

swap <swapdefinition> ;

Die <swapdefinition> enthält gestaffelt in bis zu vier Klammerebenen die Vertauschbarkeits-Definitionen, wobei über Pinlisten die physikalischen Anschlüsse der jeweils vertauschbaren Swap-Ebene angegeben sind. Die Funktion der jeweiligen Klammerebene ergibt sich aus folgendem Schema:

(     Bauteil-Tausch    )
([   Pingruppentausch  ])
([(    Gattertausch   )])
([((    Pintausch    ))])

Um die Möglichkeit des bauteilübergreifenden Gatter-Tausches zu unterdrücken, kann im swap-Kommando hinter dem Schlüsselwort swap das Schlüsselwort internal eingefügt werden.

Kommando newattr

Mit Hilfe des Kommandos newattr können über die Loglibdatei Attribute mit Werteinträgen in die Bibliothek übernommen werden. Die Syntax hierfür lautet:

newattr "$<attname>" = "<attvalue>" ;

<attname> definiert dabei den Attributnamen, und <attvalue> enthält den zugehörigen Attributwert. Derartige Attributwertzuweisungen können im Layout durch die Definition des Textes <attname> (z.B. auf einer Dokumentarlage) visualisiert werden. Auch kann der entsprechende Werteintrag mit Hilfe von User Language-Programmen bzw. mit dem Utilityprogramm userlist weiter in Richtung Postprozess, PPS, usw. ausgewertet werden (typische Beispiele: $sachnummer für Stücklisten, $delay für Simulation, $bauteilhoehe für Bestückautomat, $preis, $lieferant, $toleranz, usw.).

Das Kommando newattr ermöglicht auch die Definition bzw. Zuweisung pinspezifischer Attribute bzw. Attributwerte. Die Syntax hierfür lautet:

newattr "$<attname>" = "<attvalue>" to ( <pplist> ) ;

In der Pinliste sind die physikalischen Pinbezeichnungen einzutragen. Damit können z.B. Pintypdefinitionen eingetragen werden wie sie für Electronic Rule Check (ERC) oder zur Generierung von Netzlisten für Simulatoren wie PSpice benötigt werden.

Der Packager erlaubt über das Pinattribut $pintype eine Plausibilitätsprüfung für die im Schaltplan vorgenommenen Verbindungen zwischen Pins verschiedener Typen. Die Pinattribute werden zweckmässigerweise in den logischen Definitionen der Symbole fest für die einzelnen Layoutbauteilpins vergeben. Unterstützt werden die folgenden Pintypen:

$pintypePintyp
in Eingabe-Pin
out Ausgabe-Pin
bidiBidirektionaler Anschluss
anl Analoger Anschluss
sup Stromversorgungsanschluss

Der ERC überprüft für Netze mit mindestens einem Eingang, ob an diesem Netz ein normaler Ausgang, ein bidirektionaler Anschluss oder ein Versorgungsspannungspin vorhanden ist und gibt ggf. die Warnmeldung Netz 'Netzname' hat nur Eingaenge! aus. Außerdem überprüft der ERC, ob an einem normalen Ausgang ein anderer Ausgang, ein bidirektionaler Anschluss oder ein Versorgungsspannungspin angeschlossen ist und gibt ggf. die Warnmeldung Treiber-Kollision auf Netz 'Netzname'! aus.

Das newattr-Kommandos unterstützt auch die Vergabe variantenspezifischer Attribute. Dazu ist die Variantennummer dem Attributnamen nach dem Anführungszeichen mit Komma getrennt anzuhängen. Damit lassen sich bei fixer Verwendung von Varianten für alle Projekte, wie z.B. 110 Volt und 230 Volt oder deutsch und english den einzelnen Varianten unterschiedliche feste Attributwerte zuordnen. Ohne Variantennummernangabe wird der Attributwert der Basisvariante zugeordnet.

Über das Kommando newattr kann durch Zuweisung der speziellen Werte ?id?, ?symid?extension und ?partid?extension eine automatische Generierung von ID-Attributwerten durch den Packager angefordert werden. ?id? erzeugt dabei fortlaufende ID-Werte nach dem Schema id1, id2 usw., bei ?symid?extension und ?partid?extension wird die gegebene Extension mit Unterstrich an den Schaltplansymbolnamen bzw. den Layoutbauteilnamen des gerade bearbeiteten Symbols angehängt. So ergibt z.B. ?partid?diffpair1 ID-Werte nach dem Schema ic1_diffpair1, ic2_diffpair1 usw. Die automatische ID-Generierung ist nützlich, wenn newattr auf mehrere Pins verweist, da so automatisch eine Beziehung zwischen Pins hergestellt werden kann, wie sie z.B. für die Markierung von Differential Pairs benötigt wird.

Bei Vorgabe des speziellen Wertes !unique! gibt das newattr-Kommando keine Attributzuweisung aus der logischen Definition heraus an, sondern steuert die Gatterzuordnung durch den Packager so, dass nur Symbole mit gleichen Werten für die so markierten Attribute zusammen in ein Layoutbauteil gepackt werden. Dabei werden die swap-Kommandos automatisch so berücksichtigt, dass Gatter bauteilübergreifend nur zwischen Bauteilen mit gleichen Werten für die so markierten Attribute getauscht werden können. Die !unique!-Einstellung kann somit anstelle der Packungssteuerung über $rpname-Attribute bei Symboltypen mit unterschiedlichen Attributwerten innerhalb eines Projekts verwendet werden. Dies ist z.B. bei Widerstandsarrays nützlich:

part ra_so16r : so16r {
    newattr "$val" = "!unique!";
    pin (1-16);
    swap internal (
        (( 1,16)),(( 2,15)),(( 3,14)),(( 4,13)),
        (( 5,12)),(( 6,11)),(( 7,10)),(( 8, 9))
        );
    }

Das folgende Beispiel zeigt die Verwendung des !unique!-Werts bei der Definition eines Operationsverstärkers mit Versorgungsspannunszuweisung über Attributwerte:

part op_lm324 : dil14 {
    pin (/i,i,o);
    net "$vplus" : (4);
    net "$vminus" : (11);
    newattr "$vplus" = "!unique!";
    newattr "$vminus" = "!unique!";
    xlat (/i, i, o)
      to ( 2, 3, 1)
      or ( 6, 5, 7)
      or ( 9,10, 8)
      or (13,12,14);
    swap internal ((2,3,1),(6,5,7),(9,10,8),(13,12,14));
    }
Kommando netattr

Über das Kommando netattr kann bereits im Stromlauf die Möglichkeit der Spezifikation von Router-Steuerparametern angeboten werden. Die Syntax für das Kommando netattr lautet:

netattr <netatt> "$<attname>" : ( <pinlist> ) ;

Für <netatt> können beliebige Attributnamen eingesetzt werden, wobei jedoch folgende Schlüsselworte spezielle Attribute zur Autorouter-Steuerung definieren, d.h. vom System in spezieller Weise ausgewertet werden:

routwidthnetzbezogene Leiterbahnbreite (in mm)
powwidth pinbezogene Anschlussbreite für die über Kommando net definierten Signale (in mm)
mindist netzbezogener Mindestabstand zu anderen Potentialen (in mm)
priority netzbezogene Routing-Priorität (Integer; je größer, desto höher die Priorität)

Die mit dem AutoEngineer gelieferte Bibliothek enthält in route.ddb virtuelle Stromlaufsymbole, über die netattr-Einträge im Stromlauf möglich sind. Die entsprechende Loglibdatei (route.def) hat folgenden Inhalt:

loglib
part att_rw : virtual
{
    pin (x);
    netattr routwidth "$val" : (x);
}
part att_pw : virtual
{
    pin (x);
    netattr powwidth "$val" : (x);
}
part att_md : virtual
{
    pin (x);
    netattr mindist "$val" : (x);
}
part att_pr : virtual
{
    pin (x);
    netattr priority "$val" : (x);
}
end.

Wie aus obiger Loglibdatei zu ersehen ist, enthalten die virtuellen Symbole jeweils einen Pin (benannt x) und ein Attribut. Die Zuweisung des jeweiligen Attributes an ein bestimmtes Signal erfolgt im Stromlauf-Editor durch Anschluss des virtuellen Symbols (über Pin x) an das betreffende Signal sowie Eintrag des entsprechenden Attributwertes.

Durch die Möglichkeit der Definition beliebiger anwendungsspezifischer Netzattribute lassen sich zusätzliche Signalnetzinformationen auf gesonderte Weise verarbeiten bzw. auswerten. Solche Netzattribute lassen sich z.B. zur Kontrolle des Layoutprozesses (maximal/minimal zulässige Leiterbahnlänge, Parallelführung von Leiterbahnen, Lagenzuordnung, usw.) verwenden oder können zur Steuerung nachgeschalteter Simulationsprozesse bzw. Laufzeitanalysen oder zur Prüfung von ECL/EMV-Regeln herangezogen werden (tatsächliche Leiterbahnlängen, Parallelverlauf von Leiterbahnen, usw.). Die Bereitstellung entsprechender Tools zur Auswertung anwendungsspezifischer Netzattribute kann mit Hilfe entsprechender User Language-Programme erfolgen.

Über das Kommando netattr kann durch Zuweisung der speziellen Werte ?id?, ?symid?extension und ?partid?extension eine automatische Generierung von ID-Attributwerten durch den Packager angefordert werden. ?id? erzeugt dabei fortlaufende ID-Werte nach dem Schema id1, id2 usw., bei ?symid?extension und ?partid?extension wird die gegebene Extension mit Unterstrich an den Schaltplansymbolnamen bzw. den Layoutbauteilnamen des gerade bearbeiteten Symbols angehängt. So ergibt z.B. ?partid?diffpair1 ID-Werte nach dem Schema ic1_diffpair1, ic2_diffpair1 usw. Die automatische ID-Generierung ist nützlich, wenn netattr auf mehrere Netze verweist, da so automatisch eine Beziehung zwischen Netzen hergestellt werden kann, wie sie z.B. für die Markierung von Differential Pairs benötigt wird.

Kommando call

Über das call-Kommando erfolgt die Zuweisung von Blockstromlaufplänen an Stromlaufsymbole für hierarchisches Schaltplandesign. Die Syntax hierfür lautet:

call <blockname> ;

Die Definition des Bauteiles erfolgt dabei virtual. Die Pins des Stromlaufsymbols werden den gleichnamigen Modulports in den Blockstromlaufplänen zugewiesen.

Kommando architecture

Über das Kommando architecture lassen sich Stromlaufsymbole (vom Typ virtual) aus intern beliebig verschalteten anderen Stromlaufsymbolen aufbauen, die zudem mehreren Layoutbauteilen zugeordnet sein können. Die Syntax hierfür lautet:

architecture { <partlist> }

<partlist> enthält eine Auflistung der verwendeten Symbole jeweils mit in Klammern gesetzter kommaseparierter Auflistung der Symbolpins in der Form:

<pinname:connection>

Hierbei kann <connection> der Name eines Pins des <architecture>-Symbols sein. In der Form <net netname> kann der Anschluss an ein global benanntes Netz erfolgen. Mit <net & intnetname> oder <& intnetname> kann ein nur lokal für das <architecture>-Symbol gültiges Netz referenziert werden.

Beispiele

Loglibdatei example.def mit der Definition dreier Bauteile:

loglib

/* Example Loglib File */
part 74ls00 : dil14, so14
{
    newattr "$partnumber" = "A-NAND-X11B82";
    newattr "$pintype" = "in" to (1,2,4,5,9,10,12,13);
    newattr "$pintype" = "out" to (3,6,8,11);
    newattr "$pintype" = "sup" to (7,14);
    pin (a,b,y);
    net "vcc" : (14);
    net "$groundnetname" : (7);
    xlat ( a, b, y)
      to ( 1, 2, 3)
      or ( 4, 5, 6)
      or (13,12,11)
      or (10, 9, 8);
    swap (((1,2),3),((4,5),6),((13,12),11),((10,9),8));
}

part tx27 : default sot23;

part tr_bc547 : class "npn-transistor" default to92
{
    pin (e,b,c);
    xlat (e,b,c)
      to (1,2,3);
}
end.

In obigem Beispiel ist das Gatter 74ls00 definiert, das bis zu viermal in das Gehäuse dil14 gepackt werden kann, wobei die logischen Pins (a,b,y) wahlweise den physikalischen Anschlüssen (1,2,3), (4,5,6), (13,12,11) oder (10,9,8) zugewiesen werden können. Dieses Gehäuse kann im Layout gegen die Alternativbauform so14 getauscht werden. Außerdem ist für das Bauteil 74ls00 das Attribut mit Namen partnumber und Wert A-NAND-X11B82 definiert, und jedem physikalischen Pin ist ein Attribut zur Spezifikation des Pintyps zugewiesen. Der Anschluss 14 des Gehäuses dil14 ist fest mit dem Signal vcc verbunden, während der Anschluss 7 auf Stromlaufebene durch Zuweisung eines Netznamenseintrags (z.B. vss) an das Attribut $groundnetname des Symbols 74ls00 mit dem gewünschten Signalnetz verbunden werden kann. Über das swap-Kommando sind für das Gehäuse dil14 mit den vier Gattern 74ls00 folgende Tauschmöglichkeiten definiert:

Pintausch: (1,2) bzw. (4,5) bzw. (13,12) bzw. (10,9)
Gattertausch: (1,2,3) mit (4,5,6) bzw. (13,12,11) bzw. (10,9,8)
Bauteil-Tausch: (1,2,3,4,5,6,13,12,11,10,9,8)

Neben dem Bauteil 74ls00 sind in obigem Beispiel auch noch das Bauteil tx27 (per Default direkt dem Gehäuse sot23 zugeordnet) sowie der NPN-Transistor tr_bc547 (mit Zuweisung an Bauteilklasse npn-transistor) definiert.

Obige Loglibdatei example.def lässt sich mit folgendem loglib-Aufruf in die DDB-Datei mylib.ddb einspielen:

>  loglib example mylib Return-/Eingabetaste (CR)

Folgendes Beispiel zeigt die Zuweisung verschiedener Stromlaufsymbole an ein einziges Gehäuse (in diesem Fall geschieht dies für ein Relais-Bauteil mit zwei Kontakten und einer Spule):

loglib
/* Relais-Bauteil */
part rel2 : mainpart dilrel
{
    xlat (a,b) to (1,7) or (8,14);
    swap ((1,7),(8,14));
}
part rel2sub : subpart rel2
{
    xlat (p,m) to (2,6);
}
end.

Folgendes Beispiel zeigt die Definition der beiden Busse b1 und b2 mit den Bussignalen 0, 1, 2 und 3 am Bauteil buspart (das entsprechende Stromlaufsymbol buspart besitzt in diesem Fall die beiden Pins b1 und b2, von wo aus alle definierten Bussignale über entsprechende Busverbindungen abgegriffen werden können):

loglib
/* Bus-Bauteil */
part buspart : sot8
{
    bus (b1,b2);
    xlat (b1.0,b1.1,b1.2,b1.3) to (1,2,3,4);
    xlat (b2.0,b2.1,b2.2,b2.3) to (5,6,7,8);
}
end.

Folgendes Beispiel zeigt die Definition eines Symbols für das hierarchische Schaltplandesign. Dem Stromlaufsymbol dff werden dabei die zugehörigen Blockstromlaufpläne dff zugewiesen. Die Pins s, r, q und /q müssen auf den entsprechenden Blockstromlaufplänen als Modulports definiert sein.

loglib
/* Hierarchisch aufgebautes Flip-Flop */
part dff : virtual
{
    pins (s,r,q,/q);
    call dff;
}
end.

Folgendes Beispiel zeigt eine synthetische Symboldefinition über das Kommando architecture. Das Stromlaufsymbol delay wird dabei intern aus einer Serienschaltung von vier 74ls04-Invertern aufgebaut, die über lokale interne Netze miteinander verbunden sind.

loglib
/* Synthetisch generierte Inverter-Serienschaltung */
part delay : virtual
{
    pin (in,out);
    architecture
    {
        part "74ls04" (a:in,y:&connect1);
        part "74ls04" (a:&connect1,y:&connect2);
        part "74ls04" (a:&connect2,y:&connect3);
        part "74ls04" (a:&connect3,y:out);
    }
}
end.

Dateien

Das bei der Software-Installation des Bartels AutoEngineer generierte Bibliotheks-Verzeichnis enthält neben der Layoutbibliothek laylib.ddb für alle mitgelieferten Stromlauf-Bibliotheksdateien die entsprechenden Loglibdateien (*.def), die alle bereits mit dem Programm loglib in die Layoutbibliothek eingespielt sind.

Siehe auch

Packager.

Die Funktionalität zur Kompilierung logischer Bibliotheksdefinitionen ist auch in der User Language-Systemfunktion con_compileloglib implementiert.

Diagnose

Die durch loglib erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

In den Eingabedaten sind Bauteilnamen, Pinnamen oder Netznamen mit Sonderzeichen (-, +, /, (, =, usw.) in einfachen oder doppelten Anführungszeichen anzugeben.

Wird im Stromlauf oder im Layout während der Bearbeitung ein Symbol aus einer Bibliotheksdatei in eine Projektdatei geladen, dann wird datentechnisch eine komplette Kopie des Symbols in der Projektdatei abgelegt. Dies führt dazu, dass im Laufe der Bearbeitung in jeder Projektdatei automatisch eine projektspezifische Bibliothek angelegt wird. Wird über eine Loglibdatei eine Veränderung vorgenommen, von der Layoutsymbole betroffen sind, die bereits in einer projektspezifischen Layoutbibliothek existieren, dann muss loglib auch auf die entsprechende Projektdatei angewendet werden damit z.B. die richtige Pin/Gate-Swap-Information in die projektspezifische Bibliothek eingetragen wird. Bei falscher oder fehlender Anwendung von loglib kommt es spätestens beim Packager-Lauf zu Fehlermeldungen wie etwa Bauteil nicht in Bibliothek!, Bauteil nicht definiert! oder Pin nicht gefunden!.

 

7.12 NETCONV

Name

netconv - Logical Netlist Conversion Utility

Synopsis

netconv projectname

Beschreibung

Das Programm netconv dient dazu, logische (d.h. ungepackte) ASCII-Netzlisten in den Bartels AutoEngineer zu übertragen.

netconv erwartet den Namen projectname des Projektes, für das die logische Netzliste umgesetzt werden soll. netconv liest die ASCII-Datei <projectname>.net und legt die darin enthaltene logische Netzliste unter dem Namen netlist in einem DDB-File mit Namen <projectname>.ddb ab. Diese logische Netzliste lässt sich mit dem Packager in eine physikalische (d.h. gepackte) Netzliste umwandeln. Anschließend kann das Layout erstellt werden, wobei auch Pin-/Gattertausch entsprechend den durch den Packager übertragenen swap-Kommandos (siehe hierzu auch Programm loglib) durchgeführt werden kann.

Format der Eingabedatei

Dateianfang, Dateiende, Kommentare

Die Eingabedatei muss mit dem Kommando NETLIST; beginnen und mit dem Kommando END. enden. Kommentare können an beliebiger Stelle zwischen /* und */ eingefügt werden.

Bauteilliste

Die Bauteilliste muss mit dem Schlüsselwort PARTS beginnen und kann für jedes Bauteil ein Kommando der Form

<part> : <llname> ;

enthalten. <part> ist der Bauteilname, und <llname> ist der Logical Library Name bzw. der Name des Stromlaufsymbols.

Netzliste

Die Netzliste muss mit dem Schlüsselwort CONNECT beginnen und für jedes Netz ein Kommando der Form

<part>.<pin>=<part>.<pin>=...=<part>.<pin>;

bzw.

/<net>/ <part>.<pin>=<part>.<pin>=...=<part>.<pin>;

enthalten. <net> ist hierbei der Netzname, <part> der Bauteilname und <pin> die Pinbezeichnung.

Beispiele

Inhalt der Datei design.net:

NETLIST;
/* Part list */
PARTS
        ic1 : 74ls00;
        ic2 : 74ls00;
        c1 : c;
/* Net list */
CONNECT
        ic1.a = ic2.y;
        ic2.a = ic1.y;
        /vcc/ c1.1;
        /vss/ c1.2;
END.

Übertragen der logischen Netzliste aus design.net in den Bartels AutoEngineer mit Hilfe von netconv:

>  netconv design Return-/Eingabetaste (CR)

Nach fehlerfreiem netconv-Lauf wurde die logische Netzliste aus design.net unter dem Namen netlist im DDB-File design.ddb abgespeichert. Diese logische Netzliste lässt sich nun mit Hilfe des Packager in eine physikalische umwandeln, und anschließend kann das entsprechende Layout erstellt werden.

Siehe auch

conconv, loglib, Packager.

Diagnose

Die durch netconv erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

Mit netconv können logische Netzlisten in den AutoEngineer übernommen werden. Sofern bei der Erstellung des zugehörigen Layouts Pin- und/oder Gattertausch vorgenommen wird, ist dies mit Hilfe der Backannotation in den Stromlauf zurückzumelden. Hierzu ist möglicherweise mit geeigneten Werkzeugen eine Auswertung des durch die Backannotation erzeugten Assignmentsdatei vorzunehmen.

In den Eingabedaten sind Bauteilnamen, Pinnamen oder Netznamen mit Sonderzeichen (-, +, /, (, =, usw.) in einfachen oder doppelten Anführungszeichen anzugeben.

 

7.13 REDASC

Name

redasc - REDAC ASCII Input Interface

Synopsis

redasc projectname [libraryfile]

Beschreibung

Das Programm redasc erlaubt die Übernahme von Layoutdaten des Redac-MAXI-Systems, d.h. sowohl die Transformation von Layoutsymbolen als auch die Übertragung der Bauteilliste, der Netzliste und der Platzierung im CDI-Format in den Bartels AutoEngineer.

redasc erwartet als Argument den Namen projectname der umzusetzenden CDI-Datei (diese Datei muss mit der Extension .cdi verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben).

redasc erwartet optional als Argument den Namen libraryfile einer Layoutbibliothek (diese Datei muss im DDB(Design DataBase)-Format mit der Extension .ddb verfügbar sein; beim Programmaufruf ist diese Extension nicht mit anzugeben). Für den Fall, dass in der CDI-Datei nicht alle benötigten Layoutsymbole definiert sind, kann redasc diese aus dem libraryfile laden (sofern natürlich darin vorhanden).

redasc liest die CDI-Datei <projectname>.cdi und erzeugt das Design-File <projectname>.ddb mit den in der CDI-Datei definierten Layoutsymbolen, überträgt die in der CDI-Datei enthaltene Bauteilliste, Netzliste und Platzierung in das Design-File und erzeugt die Freelist <projectname>.fre. Die Freelist wird vom System nicht weiter benötigt und ist zur Auswertung durch den Benutzer bestimmt (Anzeige nicht angeschlossener Pins, Statistik). Das Design-File enthält nach dem redasc-Lauf die benötigte (jobspezifische) Layoutbibliothek, die übersetzte Bauteil- und Netzliste sowie die Platzierung und kann im Layouteditor weiterbearbeitet werden.

Siehe auch

conconv

Diagnose

Die durch redasc erzeugten Fehlermeldungen sind selbsterklärend.

 

7.14 RULECOMP

Name

rulecomp - Bartels Rule System Compiler

Synopsis

rulecomp srcfile [-l]

Beschreibung

Der Compiler rulecomp dient der Übersetzung von Quellcodedateien zur Spezifikation von Regeldefinitionen für das im Bartels AutoEngineer integrierte Neuronale Regelsystem.

rulecomp erwartet als erstes Argument den Quellcodedateinamen srcfile der Regeldefinition. (diese Datei muss mit der Extension .rul verfügbar sein; beim Programmaufruf ist der Dateiname ohne diese Extension anzugeben). rulecomp übersetzt die angegebene Quellcodedatei und speichert die darin definierten Regeln bzw. Regelsätze in der Datei brules.vdb im BAE-Programmverzeichnis. Diese Regeln können später dann von speziellen BAE-Systemfunktionen bzw. von anwenderspezifischen User Language-Programmen angewendet bzw. abgearbeitet werden.

Optionen

Die Kommandozeilenoptionen des Regelcompilers bestehen aus einem Bindestrich (-) gefolgt von der Optionsspezifikation. Optionspezifikationen, die nur aus einem Buchstaben und der wahlweisen Angabe einer numerischen Modus- oder Schalterangabe bestehen, bezeichnet man häufig als Switches oder Flags.

Listing Option [-l]

Mit der Option -l kann die Listingausgabe gesteuert werden. Wenn die Option -l nicht angegeben ist, dann erfolgt keine Listingausgabe. Ist die Option -l angegeben, dann erzeugt der Rule System Compiler eine Listingausgabe für die kompilierten Regeln bzw. Regelsätze. Der Name der Listingdatei wird aus dem Namen der Quelltextdatei durch Abändern der Dateinamenserweiterung in .lst erzeugt. Die Listingdatei wird vom System nicht weiter benötigt, sie ist lediglich zur Auswertung durch den Benutzer bestimmt.

Beispiele

Kompilieren der in routstd.rul enthaltenen Regeldefinitionen; die übersetzten Regeldefinitionen werden unter dem Namen routstd in der Datei brules.vdb im BAE-Programmverzeichnis abgelegt:

>  rulecomp routstd Return-/Eingabetaste (CR)

Kompilieren der in routstd.rul enthaltenen Regeldefinitionen mit Ausgabe eines Listings auf die Datei routstd.lst; die übersetzten Regeldefinitionen werden unter dem Namen routstd in der Datei brules.vdb im BAE-Programmverzeichnis abgelegt:

>  rulecomp rulestd -l Return-/Eingabetaste (CR)

Dateien

brules.vdb -- BAE-Regeldatendatei (im BAE-Programmverzeichnis)

Siehe auch

Bartels AutoEngineer Benutzerhandbuch - Kapitel 6

Diagnose

Die durch rulecomp erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

rulecomp ist ein mächtiges Programmierwerkzeug zur Erzeugung von Regeln zur automatisierten Generierung bzw. Bearbeitung von Designdaten im Bartels AutoEngineer. Wir empfehlen daher nachdrücklich, jede mit rulecomp erzeugte Regel vor einem produktiven Einsatz zunächst in einer unkritischen Umgebung (Test-Software-Installation, Test-Job, Arbeitsdateien vorher sichern, ...) einem sorgfältigen Test zu unterziehen.

 

7.15 ULC - User Language Compiler

Name

ulc - Bartels User Language Compiler

Synopsis

ulc [-wcon|-wcoff] [[-S[ource]] srcfile...]
    [-lib libname...] [-dll libname...]
    [{-cp|-cl} [dstname...]]
    [-I[nclude] includepath...] [-D[efine] macroid...]
    [-O[0|1]] [-e[0|1]] [-w[0|1|2|3|4]] [-t[0|1]]
    [-l[0|1|2|3|4|5]] [-ld listingdirectory name]
    [-dp prgname...] [-dl libname...]
    [-ulp prgfilename] [-ull libfilename]
    [-log logfilename]

Beschreibung

Der User Language Compiler ulc dient dazu, User Language-Quelltext in User Language-Maschinenprogramme bzw. in User Language-Libraries zu übersetzen. User Language-Programme können vom User Language Interpreter ausgeführt werden. User Language-Libraries werden üblicherweise aus häufig benötigten Quelltexten erzeugt. Der Maschinencode von User Language-Libraries kann wahlweise statisch (während der Kompilierung durch den User Language Compiler) oder dynamisch (während der Laufzeit durch den User Language Interpreter) eingebunden werden in anderen Maschinencode (Programme oder Libraries). Der Vorteil des Librarykonzepts besteht darin, dass häufig benötigte Quelltexte nur einmal der zeitaufwändigen Kompilierung unterzogen werden müssen; anschließend kann der entsprechende Maschinencode über die sehr viel schnelleren Linkprozesse referenziert werden.

Optionen

Die Kommandozeilenoptionen des User Language Compilers bestehen aus einem Bindestrich (-) oder einem Schrägstrich (/) gefolgt von der Optionsspezifikation. Optionspezifikationen, die nur aus einem Buchstaben und der wahlweisen Angabe einer numerischen Modus- oder Schalterangabe bestehen, bezeichnet man häufig als Switches oder Flags. Diese speziellen Optionen können wahlweise gruppiert werden wie z.B. in /l2Ow3 oder -O1w3l2, wo jeweils der Modus 2 für die Listingausgabe selektiert, der Optimierer aktiviert und der Warning Severity Level auf 3 gesetzt werden.

Wildcard Option [-wcon|-wcoff]

Mit Hilfe dieser Option kann die Berücksichtigung von Wildcards bei der Spezifikation von Datei- und Elementnamen aktiviert (Option -wcon; Default) bzw. deaktiviert (Option -wcoff) werden. Ist die Wildcarderkennung aktiviert, dann erlangen die Zeichen ? und * Sonderbedeutung bei der Spezifikation von Datei- und Elementnamen; ? ist dann Platzhalter für ein beliebiges Zeichen, * ist dann Platzhalter für eine beliebige Anzahl beliebiger Zeichen. Die Deaktivierung der Wildcarderkennung ist notwendig, um die Bearbeitung von Programmnamen wie z.B. scm_? oder ged_* zu ermöglichen.

Source File Option [[-S[ource]] srcfile...]

Mit dieser Option werden die Namen der zu übersetzenden Quelltextdateien spezifiziert. Die Dateinamen dürfen dabei Verzeichnispfade enthalten, d.h. die Quelltextdateien müssen nicht notgedrungen im aktuellen Verzeichnis abgelegt sein. Bei der Auswertung von Dateinamen werden Wildcards berücksichtigt, sofern die Wildcarderkennung mit der Option -wcon (siehe oben) aktiviert ist. Dateinamen können wahlweise mit oder ohne Namenserweiterung spezifiziert werden. Wird die Namenserweiterung weggelassen, dann für der Compiler automatisch die Extension .ulc an die entsprechenden Dateinamen an. Quelltextdateinamen mit anderen Namenserweiterungen der müssen also mit ihrer Extension spezifiziert werden. Damit ist es dann allerdings auch möglich, z.B. User Language-Libraries aus Includedateien mit der Extension .ulh zu erzeugen. Der Type des zu erzeugenden Maschinencodes wird mit den Optionen -cp (für User Language-Programme; siehe unten) bzw. -cl (für User Language-Libraries) festgelegt. Der Elementname des erzeugten Maschinencodes ergibt sich aus dem Quelltextdateinamen, wobei der Verzeichnispfad und die Dateinamenserweiterung weggelassen werden. Ein von dieser Konvention abweichender Name für den Maschinencode kann mit den Optionen -cp bzw. -cl (siehe unten) spezifiziert werden. Das Schlüsselwort -Source bzw. -S ist bei der Spezifikation von Quelltextdateinamen nur dann erforderlich, wenn sich sonst Mehrdeutigkeiten bei der Auswertung der Kommandozeile ergeben könnten. Dies ist z.B. dann nicht der Fall, wenn die Quelltextdateinamen die ersten Namensargumente im Compileraufruf darstellen. Mit Hilfe der Schlüsselworte -Source bzw. -S können andererseits jedoch an beliebigen Stellen in der Kommandozeile Quelltextdateien spezifiziert. Ist weder die Option -dp noch die Option -dl (siehe unten) spezifiziert, dann erwartet der User Language Compiler die Angabe von zumindest einer Quelltextdatei.

Static Link Option [-lib libname...]

Die Static Link Option -lib erwartet den Namen einer oder mehrerer User Language-Libraries sowie die Spezifikation von zumindest einer Quellcodedatei (siehe oben, Option -Source). Die mit -lib angeforderten Libraries müssen in kompilierter Form in der Datei ulcprog.vdb im BAE-Programmverzeichnis verfügbar sein. Der im User Language Compiler integrierte Linker bindet den Maschinencode der angeforderten Libraries in den Maschinencode der zu übersetzenden Quelltextdateien ein.

Dynamic Link Option [-dll libname...]

Die Dynamic Link Option -lib erwartet den Namen einer oder mehrerer User Language-Libraries sowie die Spezifikation von zumindest einer Quellcodedatei (siehe oben, Option -Source). Die mit -dll angeforderten Libraries müssen in kompilierter Form in der Datei ulcprog.vdb im BAE-Programmverzeichnis verfügbar sein. Der im User Language Compiler integrierte Linker erzeugt die für den User Language Interpreter notwendigen Informationen zur Laufzeiteinbindung der angeforderten Libraries in den Maschinencode der zu übersetzenden Quelltextdateien.

Create Program/Library Option [{-cp|-cl} [dstname...]]

Mit dieser Option wird der Typ des zu erzeugenden Maschinencodes festgelegt. Der User Language Compiler kann sowohl User Language-Programme als auch User Language-Libraries generieren. Wenn weder die Option -cp noch die Option -cl angegeben ist, dann erzeugt der Compiler User Language-Programme. Mit der Option -cp kann die Generierung von Programmen explizit veranlasst werden, die Option -cl hingegen veranlasst die Generierung von Libraries; es dürfen nicht beide Optionen gleichzeitig angegeben werden. Der Elementname des zu erzeugenden Maschinencodes ergibt sich standardmäßig aus dem jeweiligen Quellcodedateinamen durch Elimination des Verzeichnispfades und der Namenserweiterung. Abweichend von dieser Konvention können mit den Optionen -cp und -cl explizit andere Elementnamen für zu erzeugenden Maschinencode angegeben werden, wobei dann aber nur noch genau eine Quelltextdatei spezifiziert werden darf (siehe oben, Option -Source). Der generierte Maschinencode wird unter dem spezifizierten Zielelementnamen in der Datei ulcprog.vdb im BAE-Programmverzeichnis abgelegt. Wildcards werden bei der Angabe von Zielelementnamen für Maschinencode grundsätzlich nicht berücksichtigt. Die explizite Angabe mehrerer Zielelementnamen dagegen ist zulässig; damit ist es möglich den Maschinencode einer einzelnen Quelltextdatei unter verschiedenen Namen abzulegen, also z.B. aus der Quelltextdatei bae_st.ulh mit einem einzigen Compileraufruf die Programme scm_st, ged_st, usw. zu erzeugen.

Include Path Option [-I[nclude] includepath...]

Mit der Option -Include (bzw. -I) können Alternativpfade für die Suche nach Includedateien spezifiziert werden. Diese Option erwartet zumindest einen Verzeichnispfadnamen als Argument. Stößt der Compiler im Quelltext auf eine #include-Anweisung, dann sucht er zunächst im aktuellen Verzeichnis nach der angeforderten Includedatei und dehnt die Suche anschließend auf die mit der Option -Include angegebenen Verzeichnisse aus, wobei die Verzeichnisse in der Reihenfolge ihrer Spezifikation abgesucht werden.

Define Option [-D[efine] macroid...]

Mit der Option -Define (bzw. -D) können beim Compileraufruf Makros definiert werden. Diese Option erwartet zumindest einen Makronamen als Argument. Die Option -Define entspricht der #define-Anweisung im Quelltext, d.h. die mit dieser option definierten Makros können in den Preprozessoranweisungen #ifdef und #ifndef zur Steuerung der bedingten Übersetzung ausgewertet werden.

Optimizer Option [-O[0|1]]

Mit der Option -O kann der Optimierer des User Language Compilers aktiviert bzw. deaktiviert werden. Per Default (d.h., wenn diese Option nicht spezifiziert ist) ist der Optimierer deaktiviert. Die Option -O bzw. -O1 aktiviert den Optimierer. Mit der Option -O0 kann der Optimierer explizit deaktiviert werden. Der Optimierer befreit den Maschinencode von Redundanzen, und gestaltet ihn durch Modifikationen effizienter. Optimierter Maschinencode benötigt in der Regel erheblich weniger Festplatten- und Hauptspeicher und kann schneller geladen und abgearbeitet werden. Es wird daher dringend empfohlen, den Optimierer zu aktivieren.

Error Severity Option [-e[0|1]]

Mit der Option -e kann der Error Severity Level gesetzt werden. Per default (d.h., wenn diese Option nicht spezifiziert ist) ist der Wert 1 eingestellt. Die Option -e0 setzt den Error Severity Level auf 0; die Option -e bzw. -e1 setzt den Error Severity Level explizit auf 1. Ist der Error Severity Level auf 1 eingestellt, dann versucht der Compiler alle beim Compileraufruf spezifizierten Quelltextdateien zu übersetzen (ungeachtet etwaiger Fehler beim übersetzen einzelner Quelltexte); ein Error Severity Level von 0 hingegen veranlasst den Compiler, den Übersetzungsvorgang bei der ersten fehlerhaften Quelltextdatei abzubrechen.

Warning Severity Option [-w[0|1|2|3|4]]

Mit der Option -w kann der Warning Severity Level auf einen Wert von 0 bis 4 gesetzt werden. Per Default (d.h., wenn diese Option nicht spezifiziert ist) ist der Wert 0 eingestellt. Wird diese Option ohne die explizite Angabe eines Levels angegeben (-w), dann wird der Wert 3 eingestellt. Jede im Compiler definierte Warnmeldung ist einem speziellen Warning Severity Level zugeordnet, wobei höhere Werte unwichtigere Warnungen kennzeichnen. Der Compiler gibt nur die Warnungen aus, deren Warning Severity Level kleiner oder gleich dem mit der Option -w eingestellten Level ist, d.h. mit dieser Option kann die Ausgabe weniger bedeutsamer Warnmeldungen unterdrückt werden.

Top Level Warnings Only Option [-t[0|1]]

Mit der Option -t können wahlweise Warnungen mit Bezug auf die Kompilierung von Includedateien unterdrückt werden (Wert 1). Per Default (d.h., wenn diese Option nicht spezifiziert ist bzw. der Optionswert 0 gesetzt ist) werden Warnmeldungen mit Bezug auf alle kompilierten Quellcodedateien ausgegeben. Ist dieser Optionswert auf 1 gesetzt, dann unterdrückt der User Language Compiler die Ausgabe von Warnmeldungen mit Bezug auf die Kompilierung von Includedateien und gibt lediglich die Warnmeldungen mit Bezug auf die "Top-Level"-Quellcodedatei(en) aus. Dies reduziert die Anzahl der Warnmeldungen und erleichtert damit deren Analyse insbesondere dann, wenn mit Standardincludedateien gearbeitet wird, die (eine Vielzahl von) Funktionen und Variablen enthalten, welche nicht in jedem Programm verwendet werden.

Listing Option [-l[0|1|2|3|4|5]]

Mit der Option -l kann die Listingausgabe gesteuert werden. Dabei können Listingmode im Bereich von 0 bis 5 spezifiziert werden. Mit dem Listingmodus 0 wird keine Listingausgabe erzeugt, während der Modus 5 die detailliertesten Informationen liefert. Modus 0 ist der Standardwert, d.h. wenn die Option -l nicht angegeben ist, dann erfolgt auch keine Listingausgabe. Wird diese Option ohne die explizite Angabe des Modus spezifiziert (-l), dann wird der Modus 5 eingestellt. Der Name der Listingdatei wird aus dem Namen der Quelltextdatei durch Abändern der Dateinamenserweiterung in .lst erzeugt. Die Listingdatei wird vom System nicht weiter benötigt, sie ist lediglich zur Auswertung durch den Benutzer bestimmt.

Listing Directory [-ld listingdirectoryname]

Die Option -ld gestattet die Spezifikation eines alternativen Verziechnisses für die mit der Option -l auszugebenden Listindateien. Dies ist insbesondere bei der Verwendung von make-Utilities zur automatisierten Compilierung geänderter User Language-Programme nützlich, um das Quellverzeichnis "sauber" zu halten. Im Verzeichnis baeulc wird ein makefile bereitgestellt, das die Abhägigkeiten der User Language-Programme von Includedateien enthält und mit Listingdateien in einem Unterverzeichnis (lst) arbeitet.

Delete Program Option [-dp prgname...]

Mit der Option -dp können einmal übersetzte User Language-Programme wieder aus der Datei ulcprog.vdb im BAE-Programmverzeichnis gelöscht werden. Diese Option erwartet den Elementnamen zumindest eines Programms als Argument. Bei der Auswertung der Elementnamen werden Wildcards berücksichtigt, sofern die Wildcarderkennung mit der Option -wcon (siehe oben) aktiviert ist. Beim Versuch, nicht-existente Libraries zu löschen, werden Warnungen ausgegeben. Damit nicht Maschinencode gelöscht werden kann, der unmittelbar zuvor im gleichen Compilerlauf erzeugt wurde, erfolgt das Löschen von Programmen grundsätzlich immer bevor mit der Übersetzung von Quelltexten begonnen wird.

Delete Library Option [-dl libname...]

Mit der Option -dl können einmal übersetzte User Language-Libraries wieder aus der Datei ulcprog.vdb im BAE-Programmverzeichnis gelöscht werden. Diese Option erwartet den Elementnamen zumindest einer Library als Argument. Bei der Auswertung der Elementnamen werden Wildcards berücksichtigt, sofern die Wildcarderkennung mit der Option -wcon (siehe oben) aktiviert ist. Beim Versuch, nicht-existente Libraries zu löschen, werden Warnungen ausgegeben. Damit nicht Maschinencode gelöscht werden kann, der unmittelbar zuvor im gleichen Compilerlauf erzeugt wurde, erfolgt das Löschen von Libraries grundsätzlich immer bevor mit der Übersetzung von Quelltexten begonnen wird.

Program Database File Name Option [-ulp prgfilename]

Per Default speichert der User Language Compiler User Language-Programme in der Datei ulcprog.vdb im Programmverzeichnis des Bartels AutoEngineer ab. Mit der Option -ulp kann hierfür eine andere Datei angegeben werden.

Library Database File Name Option [-ull libfilename]

Per Default speichert der User Language Compiler User Language-Libraries in der Datei ulcprog.vdb im Programmverzeichnis des Bartels AutoEngineer ab. Mit der Option -ull kann hierfür eine andere Datei angegeben werden.

Log File Option [-log logfilename]

Der User Language Compiler gibt alle Meldungen auf die Standardausgabe und gleichzeitig auf eine Reportdatei aus. Die Ausgabe auf die Reportdatei erfolgt, um längere Listen von Meldungen, welche insbesondere bei der Übersetzung mehrerer Quelltextdateien entstehen können, zu sichern. Der Standardname der Reportdatei ist ulc.log (im aktuellen Verzeichnis). Mit der option -log kann ein anderer Dateiname für die Reportdatei angegeben werden.

Beispiele

Kompilieren des in ulprog.ulc enthaltenen User Language-Programms mit Optimierung und Ausgabe von Warnmeldungen; das übersetzte Programm wird unter dem Namen ulprog in der Datei ulcprog.vdb im BAE-Programmverzeichnis abgelegt:

>  ulc ulprog -Ow Return-/Eingabetaste (CR)

Kompilieren des in ulprog.ulc enthaltenen User Language-Programms mit Erzeugung einer Listingdatei (ulprog.lst); das übersetzte Programm wird unter dem Namen newprog in der Datei ulcprog.vdb im BAE-Programmverzeichnis abgelegt:

>  ulc ulprog -l -cp newprog Return-/Eingabetaste (CR)

Löschen der User Language-Programme mit Namen ulprog und newprog sowie der User Language-Libraries, deren Namen mit test beginnen und auf lib enden, aus der Datei ulcprog.vdb im BAE-Programmverzeichnis:

>  ulc -dp ulprog newprog -dl test*lib Return-/Eingabetaste (CR)

Erzeugen der User Language-Library libsll aus der Quelltextdatei libbae.ulh (der Optimierer ist aktiviert; ein Listing wird auf die Datei libbae.lst ausgegeben):

>  ulc libbae.ulh -cl libsll -l2O Return-/Eingabetaste (CR)

Kompilieren aller im aktuellen Verzeichnis enthaltenen Quelltextdateien mit der Extension .ulc sowie statisches Linken der generierten Maschinenprogramme mit der User Language-Library libsll (das Makro USELIB wird zur Kontrolle der bedingten Übersetzung definiert; der Optimierer ist aktiviert):

>  ulc *.ulc -Define USELIB -lib libsll -O Return-/Eingabetaste (CR)

Generieren der User Language-Libraries libstd und stdlib aus der Quelltextdatei std.ulh (der Optimierer ist aktiviert, Warnmeldungen mit Severity Level kleiner oder gleich 2 werden ausgegeben):

>  ulc -w2 -O -cl libstd stdlib -Source std.ulh Return-/Eingabetaste (CR)

Generieren der User Language-Library liblay aus der Quelltextdatei \baeulc\lay.ulh mit dynamischen Linken der Library libstd (der Optimierer ist aktiviert, der Warning Severity Level ist auf den Standardwert 3 gesetzt, die Compiler-Meldungen werden auf die Reportdatei genlib.rep anstelle ulc.log ausgegeben):

>  ulc /wO -cl liblay -S \baeulc\lay.ulh -dll libstd -log genlib.rep Return-/Eingabetaste (CR)

Generieren der User Language-Programm laypcr und tracerep aus den Quelltextdateien laypcr.old und tracerep.ulc mit dynamischem Linken der Library liblay (der Optimierer ist aktiviert):

>  ulc laypcr.old /dll liblay /cp -O /S tracerep Return-/Eingabetaste (CR)

Dateien

ulcprog.vdb -- BAE-User Language-Datenbank (im BAE-Programmverzeichnis)

Siehe auch

userlist, User Language Interpreter, Bartels User Language Programmierhandbuch

Diagnosis

Die durch ulc erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

ulc ist ein Programmierwerkzeug zur Erzeugung von Programmen, die die Manipulation von DDB-Dateiinhalten ebenso wie die Erzeugung von Fertigungsdaten zulassen. Auch eine weit reichende Änderung der Benutzeroberfläche ist durch die mit ulc erzeugten Programme möglich. Daher sollte jedes mit ulc erzeugte Programm vor einem produktiven Einsatz in jedem Fall zunächst in einer unkritischen Umgebung (Test-Software-Installation, Test-Job, Arbeitsdateien vorher sichern, ...) einem sorgfältigen Test unterzogen werden. In diesem Zusammenhang muss auch eindringlich auf die Möglichkeit des Missbrauchs durch Dritte (Einspielen zerstörerisch wirkender Programme in Ihr eigenes ulcprog.vdb) hingewiesen werden.

 

7.16 User Language Interpreter

Beschreibung

Der Bartels User Language Interpreter erlaubt die Ausführung von kompilierten, d.h. durch den Bartels User Language Compiler generierten Bartels User Language-Programmen. Der Bartels User Language Interpreter ist in nahezu allen Programmmodulen des Bartels AutoEngineer eingebunden.

Aufruf von User Language-Programmen

In dem Menü Datei ist im Schaltplaneditor, im Layouteditor, im Neuronalen Autorouter, im CAM-Prozessor, im CAM-View-Modul und im Chipeditor des Bartels AutoEngineer ein Menüpunkt Anwenderfunktion vorhanden, mit dem es möglich ist, ein in ulcprog.vdb (im BAE-Programmverzeichnis) gespeichertes User Language-Programm über seinen Namen zu starten.

Der Start eines User Language-Programms ist auch durch Betätigung einer Standardtaste (0, 1, ..., 9, a, b, c, ...) oder einer Funktionstaste (F1, F2, ..., F12) möglich, sofern sich der Anwender in der Menüleiste befindet; hierzu muss in ulcprog.vdb ein User Language-Programm mit dem Namen scm_<c> bzw. scm_f<n> (im Schaltplaneditor), ged_<c> bzw. ged_f<n> (im Layouteditor), ar_<c> bzw. ar_f<n> (im Autorouter), cam_<c> bzw. cam_f<n> (im CAM-Prozessor), cv_<c> bzw. cv_f<n> (im CAM-View-Modul) oder ced_<c> bzw. ced_f<n> (im Chipeditor) verfügbar sein. <c> gibt dabei das gedrückte Zeichen, f<n> die gedrückte Funktionstaste an.

Sind Programme mit den Namen scm_st, ged_st, ar_st, cam_st, cv_st bzw. ced_st vorhanden, so werden diese automatisch beim Start des entsprechenden Programmoduls ausgeführt.

Über die Bartels User Language werden darüber hinaus Systemfunktionen zur Tastaturprogrammierung und Menübelegung zur Verfügung gestellt. Durch eine geeignete Verwendung dieser Funktionen (z.B. in den User Language-Startupprogrammen) lässt sich die Benutzeroberfläche des Bartels AutoEngineer sogar während der Bearbeitung dynamisch verändern. Und schließlich besteht über eine weitere User Language-Systemfunktion die Möglichkeit User Language-Programme aus anderen User Language-Programmen heraus aufzurufen.

Beispiele

Aufruf des User Language-Programms ulprog:

DateiLinke Maustaste (LMB)
AnwenderfunktionLinke Maustaste (LMB)
Programmname ?ulprog Return-/Eingabetaste (CR)

Dateien

ulcprog.vdb -- BAE-User Language-Datenbank im BAE-Programmverzeichnis

Siehe auch

User Language Compiler, Schematic Editor, Layouteditor, Autorouter, CAM-Prozessor, CAM-View, userlist, Bartels User Language - Programmierhandbuch

Diagnose

Die durch den User Language Interpreter erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

Der Bartels User Language Interpreter ist ein Programm, das die Manipulation von DDB-Dateiinhalten ebenso wie die Erzeugung von Fertigungsdaten zulässt. Auch eine weit reichende Änderung der Benutzeroberfläche ist durch den Einsatz des Bartels User Language Interpreters mmöglich. Daher sollte jedes User Language-Programm vor einem produktiven Einsatz in jedem Fall zunächst in einer unkritischen Umgebung (Test-Software-Installation, Test-Job, Arbeitsdateien vorher sichern, ...) einem sorgfältigen Test unterzogen werden. In diesem Zusammenhang muss auch eindringlich auf die Möglichkeit des Missbrauchs durch Dritte (Einspielen zerstörerisch wirkender Programme in Ihr eigenes ulcprog.vdb) hingewiesen werden.

 

7.17 USERLIST

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.

 

7.18 VALCONV

Name

valconv - VALID to Bartels Conversion

Synopsis

valconv projectname

Beschreibung

Das Programm valconv erlaubt die Übertragung von Bauteil- und Netzlisten, die mit dem VALID-Stromlaufeditor erstellt wurden, in den Bartels AutoEngineer.

Das Argument projectname gibt den Namen des DDB(Design DataBase)-Files an, in das die VALID-Bauteil- und die VALID-Netzliste zu transferieren sind (es wird eine Datei mit Namen <projectname>.ddb generiert; die Extension .ddb ist beim Programmaufruf nicht mit anzugeben).

valconv liest die VALID-Bauteilliste aus der Datei mit Namen pstxprt, die VALID-Netzliste wird aus der Datei pstxnet gelesen. Diese beiden Dateien werden vom VALID-System generiert und müssen sich beim valconv-Aufruf im aktuellen Verzeichnis befinden.

Nach erfolgreichem valconv-Lauf befindet sich im generierten DDB-File eine logische, d.h. eine ungepackte Netzliste. Diese Netzliste muss im Bartels AutoEngineer mit Hilfe des Packagers in eine physikalische, d.h. eine gepackte Netzliste umgesetzt werden. Erst dann kann im Layouteditor auf der Basis dieser Netzliste das Layout erstellt werden.

Dateien

pstxprt -- VALID-Bauteilliste
pstxnet -- VALID-Netzliste

Siehe auch

netconv, Packager, loglib

Diagnose

Die durch valconv erzeugten Fehlermeldungen sind selbsterklärend.

Warnungen

In den Eingabedaten sind Bauteilnamen, Pinnamen oder Netznamen mit Sonderzeichen (-, +, /, (, =, usw.) in einfachen oder doppelten Anführungszeichen anzugeben.

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

Utilities
© 1985-2025 Oliver Bartels F+E • Aktualisiert: 26. January 2007, 17:23 [UTC]

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

Webentwicklung Baumeister Mediasoft Engineering

diese Seite zur Startseite machen... diese Seite zu den Favoriten hinzufügen... diese Seite an einen Bekannten schicken... druckerfreundliche Seitenanzeige... Seitenübersicht anzeigen... Seitenübersicht mit allen Seiteninhalten anzeigen... Utilities - Deutsche Version Utilities - English Version