Im Lieferumfang des
Bartels AutoEngineer sind eine Reihe von Schaltzeichenbibliotheken enthalten. Natürlich kann jedoch der Fall eintreten, dass Sie für Ihren aktuell zu bearbeitenden Schaltplan ein Symbol benötigen, welches noch nicht in einer dieser mitgelieferten Bibliotheken enthalten ist. Nachfolgend wird anhand von Beispielen die Erstellung derartiger Bibliothekssymbole beschrieben. Dabei werden entsprechend der Datenbankhierarchie (siehe hierzu auch
Kapitel 1.3) ausgehend von der untersten Hierarchieebene zunächst ein Pinsymbol (auf Markerebene), anschließend ein Stromlaufsymbol (auf Symbolebene) und schließlich noch zwei Labelsymbole (auf Labelebene) definiert. Alle diese Symbole werden in einem DDB-File mit Namen
demo.ddb
abgelegt. Gehen Sie hierzu zunächst in das bei der Software-Installation angelegte BAE-Jobs-Verzeichnis (z.B.
c:\baejobs
), und starten Sie den
AutoEngineer:
> C:
> cd c:\baejobs
> bae
Rufen Sie das Schaltplan-Modul auf:
Schaltplan | |
Sie befinden sich nun im Stromlauf-Editor des
Bartels AutoEngineer und können mit der Erstellung der Bibliothekselemente beginnen. Bevor Sie jedoch eigene Stromlaufsymbole erstellen, sollten Sie sich mit den Normen zur Schaltzeichenerstellung vertraut machen. Häufig existieren firmenspezifische Konventionen, die zu beachten sind. Beispiele hierfür sind etwa das Raster für die Schaltzeichendarstellung, die Mindestbreite für das Schaltzeichen, die Kennzeichnung von Ein- und Ausgängen oder von Steuerblöcken, die Mindesthöhe für Texte, das Raster zur Platzierung der Pins, die Lage des Schaltzeichen-Nullpunktes, usw. Insbesondere der Nullpunkt und das Raster zur Platzierung der Pins sollte so grob (z.B. 2mm) gewählt werden, dass später in dem zur Schaltplanerstellung gewählten Raster (z.B. 1mm) die Verbindungen problemlos an diese Pins herangeführt werden können.
Abbildung 2-1 zeigt die SCM-Bibliothekssymbole, die wir in diesem Abschnitt erstellen werden.
Abbildung 2-1: SCM-Bibliothekssymbole
2.2.1 Marker-Erstellung
Erzeugen des Markersymbols
Generieren Sie mit den folgenden Befehlen in der Datei
demo.ddb
einen Marker mit dem Elementnamen
p
und einer Elementgröße von 10*10 mm:
Datei | |
Neues Element | |
Marker | |
Dateiname ? | demo |
Elementname ? | p |
Elementbreite (mm/") ? | 10 |
Elementhoehe (mm/") ? | 10 |
Auf dem Bildschirm sehen Sie nun einen quadratischen Rahmen mit einem Kreuz in der Mitte. Der Rahmen beschreibt die Elementgrenzen des Markers, während das Kreuz die Position des Element-Nullpunktes kennzeichnet.
Definieren des Kontaktbereiches
Pinsymbole dienen auf Planebene zur visuellen Überprüfung von Netzlistenänderungen, d.h. sobald eine Verbindung am Marker richtig angeschlossen wurde, wird der am Marker definierte Kontaktbereich nicht mehr auf dem Schema angezeigt. Die Kontaktflächen der Marker werden beim Plotten des Planes nicht mitgeplottet.
Definieren Sie nun im Nullpunkt des Markers einen quadratischen Kontaktbereich mit einer Kantenlänge von 1mm. Dies geschieht mit folgenden Befehlen:
Grafik | |
Neuer Kontaktbereich | |
Sprung absolut | |
Abs. X Koordinate (mm/") ? | 0.5 |
Abs. Y Koordinate (mm/") ? | 0.5 |
Sprung relativ | |
Rel. X Koordinate (mm/") ? | -1 |
Rel. Y Koordinate (mm/") ? | 0 |
Sprung relativ | |
Rel. X Koordinate (mm/") ? | 0 |
Rel. Y Koordinate (mm/") ? | -1 |
Sprung relativ | |
Rel. X Koordinate (mm/") ? | 1 |
Rel. Y Koordinate (mm/") ? | 0 |
Fertig | |
Definieren der Referenz
Wir haben nun bereits die grafische Gestaltung des Markersymbols abgeschlossen. Der Marker sollte jedoch noch mit einer Referenz für die Pinbezeichnung ausgestattet werden. Hierzu sei kurz die Bedeutung des
$
-Zeichens erklärt. Im AutoEngineer definiert das
$
-Zeichen eine Variable, die - auf einer Hierarchiestufe gesetzt - auf den höheren Hierarchieebenen den Namen des Elements anzeigt. So zeigt das auf Markerebene platzierte
$
-Zeichen auf Schaltzeichen- und Schaltplanebene den Pinnamen an, ein
$
-Zeichen auf Symbolebene platziert zeigt auf Schaltplanebene den Bauteilnamen an, usw.
Platzieren Sie nun mit folgenden Befehlen das
$
-Zeichen mit einer Texthöhe von 2mm an der Koordinate [-0.5,0.5]:
Texte | |
Neuer Text | |
Text ? | $ |
Textgroesse | |
Texthoehe ( 4.00mm) ? | 2 |
Sprung absolut | |
Abs. X Koordinate (mm/") ? | -0.5 |
Abs. Y Koordinate (mm/") ? | 0.5 |
Definieren der Elementgrenzen
Nun sollten noch die Elementgrenzen des Markers so umdefiniert werden, dass sie die Objekte des Markers möglichst dicht umschließen. Dies geschieht wie folgt:
Einstellungen | |
Obere Elementgrenze | |
Sprung absolut | |
Abs. X Koordinate (mm/") ? | 0 |
Abs. Y Koordinate (mm/") ? | 0 |
Untere Elementgrenze | |
Sprung absolut | |
Abs. X Koordinate (mm/") ? | 0 |
Abs. Y Koordinate (mm/") ? | 0 |
Sichern des erstellten Markersymbols
Speichern Sie das Markersymbol nun mit folgenden Befehlen ab:
Datei | |
Speichern | |
Das Markersymbol ist nun definiert und unter dem Elementnamen
p
in der Datei
demo.ddb
abgespeichert. Sie können dies wie folgt überprüfen:
Datei | |
Dateiinhalt | |
Marker | |
Dateiname ? | |
Da bei der Abfrage nach dem Dateinamen ein leerer String angegeben wurde, verwendet das System den Dateinamen des im Speicher befindlichen Elements (also
demo.ddb
). Das System sollte nun im Grafikarbeitsbereich folgende Liste mit den in der Datei
demo.ddb
enthaltenen Markersymbolen ausgeben:
Typ : Marker / Datei : demo.ddb
:p - Ende -
Betätigen Sie nun die Leertaste, um wieder in die Menüoberfläche zu gelangen.
2.2.2 Symbol-Erstellung
Wir wollen im Folgenden ein neues Bibliothekssymbol mit dem Elementnamen
CD4081
erstellen. Dieses Symbol kann in einer neuen oder in einer bereits bestehenden Bibliotheks- oder Projektdatei generiert werden. In diesem Beispiel erstellen wir das Symbol in unserer aktuellen Bibliotheksdatei
demo.ddb
.
Bei dem zu definierenden Bauteil
CD4081
bietet es sich an, nicht das komplette IC als ein Symbol zu erzeugen, sondern als Einzelgatter, da es innerhalb des Packages vier mal vorkommt. Wenn Sie die im Folgenden aufgeführten Arbeitsschritte richtig nachvollziehen, sollte sich das in
Abbildung 2-2 dargestellte Symbol ergeben.
Abbildung 2-2: Stromlaufsymbol CD4081
Erzeugen des Stromlaufsymbols
Erzeugen Sie mit folgenden Befehlen ein neues Symbol (d.h. ein neues Element vom Typ Symbol) mit dem Elementnamen
CD4081
in der Datei
demo.ddb
(sofern vom vorhergehenden Arbeitsschritt noch ein Element der Datei
demo.ddb
geladen ist, genügt die Angabe eines leeren Strings (Betätigen der Eingabetaste
) auf die Abfrage nach dem Dateinamen):
Datei | |
Neues Element | |
Symbol | |
Dateiname ? | demo |
Elementname ? | cd4081 |
Blatt (C)omplex/(L)ogik/(G)ate/(D)iskret/(M)anuell ? | g |
Die Symbolgröße legt vordefinierte Elementgrenzen für das Symbols fest. Die Elementgrenze ist der aktive Arbeitsbereich, innerhalb dessen Objekte platziert werden können. Dieser Bereich lässt sich auch nachträglich verändern. Sie können die Elementbreite und die Elementhöhe entweder manuell eingeben oder einfach eine der folgenden vordefinierten Elementgrößen auswählen:
Option | Element-/Symbolgröße |
| 50 × 90 mm |
| 30 × 30 mm |
| 15 × 15 mm |
| 15 × 10 mm |
Selektion des Pinsymbols
Selektieren Sie zunächst den zuvor erstellten Marker
p
, der für dieses Schaltzeichen als Pinsymbol verwendet werden soll:
Einstellungen | |
Einstellungen | |
Name Pinsymbol | |
Bauteilpin Marker Name ? | p |
Sie können mit Hilfe obiger Parameterzuweisung Schaltzeichen aus Pinsymbolen mit unterschiedlicher Geometrie erstellen. Per Default wird vom System der Marker mit dem Namen
pin
verwendet (achten Sie darauf, dass dieser Marker auch in der voreingestellten Bibliothek verfügbar ist; siehe hierzu auch die Beschreibung des Kommandos
SCMDEFLIBRARY
im Programm
bsetup).
Platzieren der Pins
Nun sind die Pins des Symbols zu definieren. Das Bauteil
CD4081
beinhaltet 4 gleiche AND-Gatter mit den Eingängen
A
und
B
sowie dem Ausgang
Y
. Dies sind die logischen Namen der Pins (andere logische Pins könnten z.B. mit
INPUT
,
OUT
,
CLK
, etc. bezeichnet sein). Die Zuordnung zum jeweiligen physikalischen Pin erfolgt später mit Hilfe des Utilityprogramms
loglib (siehe hierzu auch die Beschreibung zum
Packager in
Kapitel 3.2 dieses Handbuchs). 1:1-Zuordnungen, d.h. die Identität logischer und physikalischer Pinbezeichnungen, sind natürlich ebenso möglich.
Die Marker des Schemasymbols sind die Bauteile, aus denen das Symbol interaktiv erstellt wird. Um in der Sprache des
AutoEngineer zu bleiben: Das Symbol des Symbols ist der Marker!
Dieser zunächst etwas verwirrende Satz ist jedoch logisch. Ein Symbol wird aus Markern erstellt, welche die Pins des Symbols repräsentieren. Die Markerebene ist die unterste Hierarchieebene des Schematics. Folgender Zusammenhang ist gegeben: Der Marker ist das Element, durch dessen Platzierung auf der Symbolebene Symbole erzeugt werden, während durch das Platzieren der Symbole auf Planebene Schaltpläne erzeugt werden.
Platzieren Sie nun die Pins
A
,
B
und
Y
an den Koordinaten [2,10], [2,2] und [12,6] im Symbol:
Symbole | |
Neues Symbol | |
Bauteilname ? | a |
Positionieren auf [2,10] | |
Neues Symbol | |
Bauteilname ? | b |
Positionieren auf [2,2] | |
Neues Symbol | |
Bauteilname ? | y |
Positionieren auf [12,6] | |
Die Marker sind nun platziert und stellen innerhalb des
CD4081
-Gatters die Pins
A
,
B
und
Y
dar. Die Koordinaten der Marker werden während der Platzierung im Statusfenster der Benutzeroberfläche angezeigt.
Die Eingabe eines
/
vor dem Bauteilnamen bewirkt die inverse Schreibweise des Namens. Damit ließe sich z.B. ein negierter Ausgang durch die Definition des Bauteilnamens
/y
kennzeichnen. Dies gilt auch für Texte.
Grafik
Das Symbol besteht jetzt zwar aus allen für das Einzelgatter
CD4081
benötigten Pins, aber noch nicht aus der Symbolgeometrie, wie Sie entsprechend Ihren Bedürfnissen oder nach Norm in der Schaltung erscheinen soll.
Erstellen Sie jetzt mit folgenden Kommandos die Symbol-Outline des
CD4081
:
Grafik | |
Neue Grafiklinie | |
Positionieren auf [4,1] | |
Positionieren auf [4,11] | |
Positionieren auf [10,11] | |
Positionieren auf [10,1] | |
Positionieren auf [4,1] | |
Fertig | |
Um das Symbol zu komplettieren, sind jetzt die Pins als Grafiklinien oder Flächen einzuzeichnen. Gehen Sie wie folgt vor:
Grafik | |
Neue Grafiklinie | |
Positionieren auf Pin "A", [2,10] | |
Positionieren auf [4,10] | |
Fertig | |
Nun ist eine waagrechte Grafiklinie ausgehend vom Mittelpunkt des Pins
A
bis zur Symbol-Outline eingezeichnet. Diese Linie ist auch nach Anschluss des Markers
A
im Plan als Pin sichtbar und wird mitgeplottet. Kopieren sie nun die am Pin
A
gezeichnete Grafiklinie auf die Pins
B
und
Y
:
Grafik | |
Grafik kopieren | |
Positionieren auf Pin "A", [2,10] | |
Positionieren auf Pin "B", [2,2] | |
Grafik kopieren | |
Positionieren auf Pin "A", [2,10] | |
Positionieren auf [10,6] | |
Text und Attribute
Die grafische Gestaltung des neuen Symbols ist nun abgeschlossen. Das Symbol sollte jedoch noch mit einigen Texten ausgestattet werden. Zunächst setzen wir die Variable für die Symbol-Referenz, d.h. wir legen fest, an welcher Stelle am Symbol der Bauteilname (IC01, R20, V2) erscheinen soll. Hierzu sei nochmals kurz die Bedeutung des
$
-Zeichens erklärt. Im
AutoEngineer wird durch den Text
$
eine Variable definiert, die auf den nächst höheren Hierarchieebenen den Namen des Elements anzeigt. Ein
$
als Text auf Symbolebene platziert zeigt also auf Planebene den Bauteilnamen an.
Platzieren Sie nun den Text
$
mit einer Textgröße von 3mm:
Texte | |
Neuer Text | |
Text ? | $ |
Textgroesse | |
Texthoehe ( 2.00mm) ? | 3 |
Positionieren auf [4,11] | |
Zur Kenntlichmachung der Funktion des Symbols im Plan sollte noch ein
&
-Zeichen für das AND-Gatter im Symbol platziert sein.
Texte | |
Neuer Text | |
Text ? | & |
Textgroesse | |
Texthoehe ( 3.00mm) ? | 4 |
Positionieren auf [6,4] | |
Als nächstes tragen Sie mit folgender Befehlsfolge den Gatternamen
CD4081
(Texthöhe 1mm) in das Symbol ein:
Texte | |
Neuer Text | |
Text ? | CD4081 |
Textgroesse | |
Texthoehe ( 4.00mm) ? | 1 |
Positionieren auf [5,1] | |
Definieren Sie nun das Attribut
$plname
als Kommentartext (Texthöhe 1mm ist noch eingestellt):
Texte | |
Neuer Text | |
Text ? | $plname |
Kommentartext | |
Positionieren auf [5,0] | |
Im Schaltplanpaket des Bartels AutoEngineer wird unterschieden zwischen Standardtext und Kommentartext. Sowohl Standardtext als auch Kommentartext werden auf dem Bildschirm dargestellt, bei der Generierung von Plots werden jedoch nur die Standardtexte ausgegeben. Somit besteht über die Definition von Kommentartexten die Möglichkeit, Attribute oder Texte beim Plotten auszublenden.
Es besteht auch die Möglichkeit, Texte mit Rahmen zu versehen. Die Einstellung erfolgt beim Platzieren des Textes in den über die rechte Maustaste erreichbaren Untermenüs der Funktionen
,
bzw.
über die Optionen
,
und
.
erzeugt einen Textrahmen im Abstand von 1/8 der Texthöhe,
erzeugt einen Textrahmen im Abstand von 1/4 der Texthöhe. Bei Aktivierung offener Rahmen wird die am Textursprung befindliche vertikale Rahmenlinie offen gelassen; dadurch können Textfahnen für Labels erzeugt werden, die sich dynamisch der Textlänge anpassen. Die Optionen
und
können simultan angewendet werden. Bei der Plotausgabe kann es dazu kommen, dass Textnegierungsstriche mit Textrahmen verschmelzen. Die Gefahr hierzu besteht insbesondere beim Plotten kleiner Texte mit großen Stiften. Mit der Option
werden alle Textrahmeneinstellungen zurückgesetzt.
Die über die rechte Maustaste in den Funktionen
,
und
erreichbaren Untermenüs enthalten auch die Optionen
und . Damit
wird die Möglichkeit der Drehung für den bearbeiteten Text abgeschaltet. Texte, für die der Modus
gesetzt ist, werden in allen Datenbankhierarchieebenen immer ungedreht angezeigt bzw. geplottet.
Mit
wird der Text zentriert an der Platzierungsposition ausgerichtet.
Um diese Modi wieder abzuschalten, ist die Option
aus demselben Untermenü auf den Text anzuwenden.
Attribute werden im AutoEngineer als Texte bestehend aus dem
$
-Zeichen und nachfolgend dem (kleingeschriebenen) Attributnamen auf Symbolebene definiert. Diese Attribute haben die Funktion von Variablen, d.h. derartigen Attributen können auf Planebene Werte zugewiesen werden. Die in
Tabelle 2-1 aufgeführten Attribute besitzen aufgrund programmbedingter Konventionen eine besondere Bedeutung.
Tabelle 2-1: Spezielle Attribute im Bartels AutoEngineer
Attributname | Funktion/Bedeutung |
$ | Referenzname |
$$ | Logischer Referenzname |
$llname | Logical Library Name |
$plname | Physical Library Name (und alternative Layoutgehäusebauformen) |
$ulname | Used Library Name (alternative Layoutgehäusezuweisung) |
$rpname | Requested Part Name |
$rbname | Requested Backannotated Part Name |
$gp | Gate Pin |
$blkname | Hierarchieblock-Name |
$pageref | SCM-Label-Stromlaufblatt-Namensliste |
$pagecref | SCM-Label-Stromlaufblatt-Kommentarliste |
$orgname | Ursprüngliche(r)/interne(r) SCM-Symbol-/Bauteilname(n) eines Layoutbauteils |
$pagename | Schaltplanbattname(n) eines Layoutbauteils |
$blkrname | Schaltplanblockname(n) eines Layoutbauteils |
$rlname | Requested Logical Library Name |
$rlext | Requested Logical Library Name Extension |
$val | Wert |
$pow | Leistung |
$type | Bauteiltyp |
$comment | Kommentar (englisch) |
$commentge | Kommentar (deutsch) |
$manufacturer | Hersteller |
$partside | Bauteilseite (top = ungespiegelt, bottom = gespiegelt) |
$pltbaeversion | Bartels AutoEngineer Software-Versionsnummer (nur Lesezugriff) |
$pltbaebuild | Bartels AutoEngineer Software-Buildnummer (nur Lesezugriff) |
$pltfname | Projektdateipfadname |
$Pltfname | Projektdateipfadname (Großschreibung) |
$pltfsname | Projektdateiname (ohne Verzeichnispfad) |
$Pltfsname | Projektdateiname (Großschreibung, ohne Verzeichnispfad) |
$pltpagecnt | Gesamtanzahl Projektschaltplanblätter |
$pltename | Elementname |
$Pltename | Elementname (Großschreibung) |
$pltdatede | Aktuelles Datum (deutsches Format) |
$pltdateus | Aktuelles Datum (US-amerikanisches Format) |
$pltdate2de | Aktuelles Datum (deutsches Format; zweistellige Jahreszahl) |
$pltdate2us | Aktuelles Datum (US-amerikanisches Format; zweistellige Jahreszahl) |
$plttime | Aktuelle Uhrzeit |
$pltsdatede | SCM-/Layout-Sicherungsdatum (deutsches Format) |
$pltsdateus | SCM-/Layout-Sicherungsdatum (US-amerikanisches Format) |
$pltsdate2de | SCM-/Layout-Sicherungsdatum (deutsches Format; zweistellige Jahreszahl) |
$pltsdate2us | SCM-/Layout-Sicherungsdatum (US-amerikanisches Format; zweistellige Jahreszahl) |
$pltstime | SCM-/Layout-Sicherungsuhrzeit |
$pltpname | Layoutelementname des letzten Packager-Laufs |
$Pltpname | Layoutelementname des letzten Packager-Laufs (Großschreibung) |
$pltpdatede | Datum (deutsches Format) des letzten Packager-Laufs |
$pltpdateus | Datum (US-amerikanisches Format) des letzten Packager-Laufs |
$pltpdate2de | Datum (deutsches Format; zweistellige Jahreszahl) des letzten Packager-Laufs |
$pltpdate2us | Datum (US-amerikanisches Format; zweistellige Jahreszahl) des letzten Packager-Laufs |
$pltptime | Uhrzeit des letzten Packager-Laufs |
$pltcname | Layoutelementname |
$pltcdatede | Datum des letzten Namensupdates (deutsches Format) |
$pltcdateus | Datum des letzten Namensupdates (US-amerikanisches Format) |
$pltcdate2de | Datum des letzten Namensupdates (deutsches Format; zweistellige Jahreszahl) |
$pltcdate2us | Datum des letzten Namensupdates (US-amerikanisches Format; zweistellige Jahreszahl) |
$pltctime | Uhrzeit des letzten Namensupdates |
$pltfbname | Elementspezifischer Projektdateiname ohne die Endung .ddb |
$Pltfbname | Elementspezifischer Projektdateiname ohne die Endung .ddb (Großschreibung) |
$pltfbsname | Elementspezifischer Projektdateiname ohne die Endung .ddb und ohne den Verzeichnispfad |
$Pltfbsname | Elementspezifischer Projektdateiname ohne die Endung .ddb und ohne den Verzeichnispfad (Großschreibung) |
$pltecomment | DDB-Elementkommentar - Elementspezifischer Kommentartext |
$drcblk | Design Rule Check Block (Pin/-Netzattribut) |
$net | Pinnetzname |
$netname | Netzname (Netzattribut) |
$nettype | Netztyp (Pin-/Netzattribut) |
$powpin | Versorgungspindefinition (Pinattribut) |
$viastk | Viapadstacktyp (Netzattribut) |
$notest | Deaktivierung automatische Testpunktgenerierung (Netzattribut) |
$routdis | Deaktivierung Autorouting (Netzattribut) |
$layers | Autoroutinglagen (Netzattribut) |
$@ | Layoutbauteilname (Padstackattribute) |
Die Systemattribute
$pltbaeversion
und
$pltbaebuild
dienen der Anzeige bzw. Ausgabe der Versions- und Buildnummer der
Bartels AutoEngineer-Software. Diese ermöglicht die für ISO-Zertifizierungen benötigte Dokumentation des verwendeten Softwarestandes auf Schaltplanausgaben.
Die Attribute
$
,
$llname
,
$plname
,
$gp
,
$ulname
und
$blkname
werden vom System automatisch gesetzt. Die Referenz
($
) wird auf der jeweils nächsthöheren Hierarchieebene durch den Namen des Elements ersetzt; auf Schaltplanebene wird hierfür der durch den
Packager erzeugte Bauteil- bzw. Pinname eingesetzt. Auf Symbolebene kann über das Attribut
$$
der logische Bauteilname zur Anzeige auf Schaltplanebene auch nach dem
Packager-Lauf referenziert werden, und auf Markerebene kann über das Attribut
$$
entsprechende die logische Pinbezeichnung zur Anzeige auf Schaltplanebene auch nach dem
Packager-Lauf referenziert werden.
Auf Symbolebene platzierte
$llname
-Texte werden auf Schaltplanebene durch den Namen des Symbolmakros ersetzt. Das
$llname
-Attribut kann nicht interaktiv bzw. explizit gesetzt werden, da der
Packager automatisch die korrekte Symbolnamenszuweisung vornimmt. Die Dokumentation des Symbolnamens mit Hilfe von
$llname
-Texten erleichtert die Erstellung neuer Schaltplansymbole aus existierenden Symbolen, da der
$llname
-Text des neuen Symbols auf Schaltplanebene automatisch durch dessen neuen Namen ersetzt wird und ein Editieren des Textes daher unnötig ist.
Im Layout kann
$llname
zur Visualisierung des Schaltzeichen-Namens verwendet werden. Außerdem überträgt der
Packager die Namen der SCM-Symbolpins automatisch auf das Pinattribut
$llname
welches im Layout durch die Definition entsprechender Texte auf Padstackebene visualisiert werden kann.
Über den Physical Library Name
($plname
) kann auf Schaltplanebene ein Symbol abweichend von der vordefinierten Defaultzuweisung aus der Logischen Bibliothek (siehe hierzu auch die Beschreibungen des Utilityprogramms
loglib sowie des
Packagers). in ein anderes Gehäuse zugewiesen werden. So kann z.B. durch Zuweisung des Wertes
so14
an das Attribut
$plname
die Verwendung der SMD-Gehäusebauform
so14
(anstelle der bedrahteten Bauform)
dil14
) erzwungen werden.
Durch eine
$plname
-Attributwertzuweisung der Form
[dil14,so14]
kann wahlweise auch eine Auswahlliste möglicher Alternativbauformen an das Layout übergeben werden.
Die
überträgt die im Layout zugewiesene Gehäusebauform in das
$ulname
-Attribut (Used Library Name), D.h., über dieses Attribut können im Stromlauf alternative Layoutgehäusezuweisungen angezeigt bzw. abgefragt werden.
Mit dem Requested Part Name
($rpname
) können Symbole auf Schaltplanebene bestimmten Bauteilen zugewiesen werden (z.B.
IC4
anstelle der durch den
Packager automatisch generierten Zuweisung); diese Funktion wird benötigt, um die Zuweisung bestimmter Schaltplansymbole an definierte Gehäuse zu erzwingen (z.B. bei Relais oder Mehrfach-Operationsverstärkern).
Mit dem Requested Backannotated Part Name
($rbname
) können wie mit
$rpname
Symbole auf Schaltplanebene bestimmten Bauteilen zugewiesen werden. Mit
$rbname
zugewiesene Layoutbauteilnamen können aber im Gegensatz zu
$rpname
-Zuweisungen im
Layouteditor geändert werden und
überträgt geänderte Layoutbauteilnamen zurück in die
$rbname
-Attribute der zugehörigen Schaltplansymbole.
Mit Hilfe des Attributs
$gp
(Gate Pin) ist es möglich, bei Mehrfachsymbolen im Schaltplan explizit vorzugeben, welche Position ein Gatter im Layoutbauteil einnimmt. Das Attribut
$gp
ist dazu auf den Namen des ersten im
xlat
-Kommando der logischen Definition aufgeführten Layoutbauteilpins des gewünschten Gatters zu setzen (siehe hierzu auch
loglib). Um Überbelegungskonflikte zu vermeiden, sollte das
$gp
-Attribut immer entweder für alle Gatter oder kein Gatter eines Layoutbauteiles gesetzt werden. Das
$gp
-Attribut ermöglicht z.B. bei Mehrfach-Operationsverstärkern eine spezifische Zuordnung der einzelnen Komponenten. Darüberhinaus können durch Zuweisungen von Pinbezeichnungen an dieses Attribut Steckerpinsymbole für die Anschlüsse mehrpoliger Stecker definiert werden, sofern die Steckeranschlüsse über
xlat
jeweils als Einzelpin-Gatter definiert sind. Mit dem
$gp
-Attribut zugewiesene Gatter und Pins sind vom Pin- und Gattertausch ausgeschlossen.
Der Hierarchie-Blockname
($blkname
) wird vom
Packager bei der Bearbeitung hierarchisch aufgebauter Schaltpläne automatisch mit dem Namen des Hierarchie-Blocks besetzt, in dem das entsprechende Bauteil definiert wurde.
Über das Attribut
$pltpagecnt
kann im Schaltplan die Gesamtanzahl der im aktuellen Projekt enthaltenen Schaltplanblätter angezeigt werden.
Auf Labelebene platzierte
$pageref
-Texte werden auf Schaltplanebene durch die Namensliste der Schaltplanblätter ersetzt, auf denen das durch den Label angegebene Netz verwendet wird.
Auf Labelebene platzierte
$pagecref
-Texte werden auf Schaltplanebene durch die Kommentare der Schaltplanblätter ersetzt, auf denen das durch den Label angegebene Netz verwendet wird.
Die Attribute
$orgname
(ursprüngliche(r)/interne(r) SCM-Symbol-/Bauteilname(n) bzw. SCM-(Teil-)Netzname),
$pagename
(Schaltplanbattname(n)) und
$blkrname
(Schaltplanblockname(n)) zur Bestimmung der Herkunft aus hierarchischen Schaltplanblöcken werden vom
Packager automatisch an Layoutbauteile zugewiesen.
Über eine Bauteildefinitionszuweisung an das Symbolattribut
$rlname
(Requested Logical Library Definition) kann eine vom Symbolnamen abweichende Bauteildefinition aus der Logischen Bibliothek referenziert werden. Dies ermöglicht z.B. die Zuweisung spezifischer Gehäusebauformen mit verschiedenen Festattributen für Sachnummern an Schaltplansymbole. Um Fehlzuweisungen zu vermeiden, müssen die referenzierten Bauteildefinitionen mit Hilfe des entsprechenden
loglib-Eintrags der gleichen Bauteilklasse zugeordnet sein (siehe hierzu auch
Kapitel 7.11). Bei
mainpart/subpart
-Symbolen ist zu beachten, dass diese nur korrespondierend gewechselt werden können. D.h., bei Definitionen wie z.B.
amain/asub
und
bmain/bsub
dürfen die Symbole, die in ein Gehäuse gepackt werden, entweder
amain/asub
oder
bmain/bsub
referenzieren, die Kombinationen
amain/bsub
und
bmain/bsub
sind hingegen nicht zulässig.
Mit
$rlext
(Requested Logical Library Name Extension) können von Symbolnamen abweichende Bauteildefinitionszuweisungen ähnlich wie mit
$rlname
vorgenommen werden.
$rlext
-Einträge weisen den
Packager an, logische Bibliotheksdefinitionen mit spezifischen Namenserweiterungen (vom Basisnamen getrennt durch Unterstrich _
) an die entsprechenden Symbole zuzuweisen. Dies ermöglicht z.B. die Zuweisung spezifischer standardisierter bzw. herstellerspezifischer Gehäusebauformen mit verschiedenen Festattributen für Sachnummern an Schaltplansymbole.
Die optionalen Attribute
$val
(Value/Wert),
$pow
(Power/Leistung),
$type
(Bauteiltyp),
$comment
(Kommentar englisch),
$commentge
(Kommentar deutsch) und
$manufacturer
(Hersteller) sind in den mitgelieferten Bibliotheken des
Bartels AutoEngineer zum Teil vordefiniert. Die Definition dieser Attribute bzw. die Eintragung der entsprechenden Attributwerte können nach Bedarf vom Anwender durchgeführt werden.
Über das Bauteilattribut
$partside
kann für ein Bauteil vorgegeben werden, ob es nur ungespiegelt (Attributwert
top
) oder nur gespiegelt (Attributwert
bottom
) platziert werden darf. Beim manuellen und automatischen Platzieren hat diese Vorgabe Vorrang vor anderen Spiegelungseinstellungen. Entgegen der Vorgabe platzierte Bauteile werden vom DRC markiert und im
/ als Bauteilseitenfehler gelistet. Die Bibliothek
ROUTE enthält das Tagsymbol
tag_sym_partside zum Setzen des Attributs
$partside
.
Die Attribute
$plttime
(aktuelle Uhrzeit),
$pltdatede
(aktuelles Datum, deutsche Notation) und
$pltdateus
(aktuelles Datum, US-Notation) werden bei geladenem Schaltplan bzw. Layout bei der Bilddarstellung und bei der Plotausgabe jeweils durch die aktuelle Uhrzeit bzw. das aktuelle Datum ersetzt.
Die Attribute
$pltstime
(Layout-Sicherungsuhrzeit),
$pltsdatede
(Layout-Sicherungsdatum, deutsche Notation) und
$pltsdateus
(Layout-Sicherungsdatum, US-Notation) werden bei der Bilddarstellung und bei der Plotausgabe jeweils durch die Uhrzeit bzw. das Datum der zuletzt für das aktuell geladene Layout durchgeführten Sicherung ersetzt.
Bei der Anzeige der Uhrzeit- und Datumsangaben spielt es keine Rolle, auf welcher Datenbankebene (Marker, Symbol/Label, Plan bzw. Pad, Padstack, Bauteil, Layout) der jeweilige Attributtext definiert ist. Existiert ein gesetztes herkömmliches Attribut mit gleichem Namen auf einer untergeordneten Hierarchieebene (Symbol/Marker bzw. Bauteil/Padstack) bzw. Bauteil so besitzt dieses Priorität bei der Anzeige bzw. Ausgabe.
Die Attribute
$pltpname
(Layoutelementname),
$pltpdatede
(Datum, deutsche Notation),
$pltpdateus
(Datum, US-Notation) und
$pltptime
(Uhrzeit) werden bei geladenem Schaltplan bzw. Layout bei der Bilddarstellung und bei der Plotausgabe jeweils durch den Layoutelementnamen bzw. die Uhrzeit bzw. das Datum des zuletzt durchgeführten
Packager-Laufs ersetzt.
Die Attribute
$pltdate2de
,
$pltdate2us
,
$pltsdate2de
,
$pltsdate2us
,
$pltpdate2de
und
$pltpdate2us
sind Varianten mit zweistelliger Jahreszahlanzeige der Attribute
$pltdatede
,
$pltdateus
,
$pltsdatede
,
$pltsdateus
,
$pltpdatede
und
$pltpdateus
.
Die Attribute
$pltcname
,
$pltcdatede
,
$pltcdate2de
,
$pltcdateus
,
$pltcdate2us
und
$pltctime
dienen der Anzeige des Layoutelementnamens sowie des Datums und der Uhrzeit des zuletzt durchgeführten Namensupdates. Im Gegensatz zu den Attributen zur Anzeige von
Packager-Daten werden diese Einträge zusätzlich auch bei der Durchführung einer
geändert.
Mit den Attributtexten
$pltfbname
(File Base Name) bzw.
$pltfbsname
(File Base Short Name) ist es möglich, den Namen der Projektdatei auf dem aktuell geladenen Element anzuzeigen.
$pltfbname
zeigt den Projektdateinamen ohne die Endung
.ddb
an.
$pltfbsname
zeigt den Projektdateinamen ohne die Endung
.ddb
und ohne den Verzeichnispfad an.
Das Systemattribut
$pltecomment (Elementkommentar) dient der Zuweisung von Kommentaren an DDB-Elemente.
Die Zuweisung erfolgt wahlweise über das Untermenü
/ oder für das aktuell geladene Element auch in der Dialogbox
/ .
Bei der Auswahl von DDB-Dateielementen wird dieser Kommentar neben dem Elementnamen angezeigt. Bei der PDF-Ausgabe von Schaltplänen wird bei vorhandenem Schaltplanblattkommentar der Kommentar anstatt des Blattnamens in das Seiteninhaltsverzeichnis des PDF-Dokumentes übernommen.
Das Netzattribut
$netname
wird vom
Packager als Netzname an das angeschlossenen Netz übertragen und hat Vorrang vor eventuell per Label zugewiesenen Netznamen. Damit ist eine eindeutige Benennung auch für solche Netze mit unterschiedlich benannten Labels möglich.
Das Pinattribut
$nettype
wird vom
Packager automatisch von Pins auf die angeschlossenen Netze übertragen. Sind an einem Netz Pins mit unterschiedlichen Attributwerteinträgen für
$nettype
angeschlossen so wird für das Netz der Wert
mixed
eingetragen. Das Pinattribut
$drcblk
wird vom
Packager automatisch von Pins auf die angeschlossenen Netze übertragen. Der Attributwerteintrag für
$drcblk
addressiert in
BAE HighEnd einen Parameterblock mit Entwurfsregeln, der damit an das entsprechende Netz zugewiesen wird.
Das Pinattribut
$powpin
steuert, dass ein Symbolpin ebenso wie über
net
-Kommandos definierte Pins seine Anschlussbreite aus dem Netzattribut für die Versorgungspinanschlussbreite bezieht. Das Tagsymbol
tag_pin_powerpin aus der Bibliothek
ROUTE kann zum Setzen dieses Pinattributs verwendet werden. Alternativ kann das Pinattribut
$powpin
in der Symbollogik auch fest zugewiesen werden:
newattr "$powpin" = "1" : (pinname);
Das Netzattribut
$viastk
dient der Zuweisung von Viatypen an Netze. Netzspezifische Viapadstackzuweisungen werden vom
Autorouter entsprechend berücksichtigt.
Durch die Zuweisung des Netzattributs
$notest
können spezifische Netze von der automatischen Testpunktgenerierung durch den
Packager ausgenommen werden.
Durch die Zuweisung des Netzattributs
$routdis
können spezifische Netze vom Autoroutingprozess ausgenommen werden. Über das Netzattribut
$layers
können netzspezifische Routinglagen (durch Komma getrennte Signallagennummern) für den Autoroutingprozess in
BAE HighEnd an spezifische Netze zugewiesen werden.
Das Attribut
$@
ist padstack- bzw. layoutspezifisch. Ein auf Padstackebene platzierter
$@
-Text wird auf Layoutebene durch den Namen des Bauteils ersetzt, auf dem der Padstack als Pin platziert ist. Damit ist es möglich, für außerhalb eines Bauteils platzierte Pins den Namen des zugehörigen Bauteils am Pin zu dokumentieren (z.B. für die Funktion
).
Ein auf Padstackebene platzierter
$@
-Text wird auf Layoutebene durch den Namen des Bauteils ersetzt, auf dem der Padstack als Pins platziert ist. Damit ist es z.B. möglich bei mit
ausserhalb eines Bauteils platzierten Pins den Namen des zugehörigen Bauteils am Pin zu dokumentieren.
Neben den in
Tabelle 2-1 aufgeführten Attributen können beliebige andere Attribute definiert werden (typische Beispiele hierfür sind
$tolerance
,
$identno
,
$sachnummer
,
$preis
,
$lieferant
,
$delay
,
$bauteilhoehe
, usw.).
Mit der Funktion
aus dem Menü
bzw.
können Symbolattribute bewegt bzw. platziert werden. Die mit
festgelegten Textoffsets haben Vorrang vor ggf. mit
vorgegebenen, globalen Textoffsets. Die Selektion des zu verschiebenden Attributs erfolgt durch Anklicken des Attributtexts. Der Symbolname selbst gilt ebenfalls als Attribut und kann somit mit der Funktion
auch selektiv verschoben werden, ohne die Platzierung der übrigen Symbolattribute zu beeinträchtigen.
Attributwerte können im Schaltplaneditor mit der Funktion
aus dem Menü
oder durch entsprechende Einträge in der Bauteilbibliothek an Bauteile zugewiesen werden.
In den Windows- und Motifversionen aktiviert die Funktion
eine Dialogbox für die Attributwerteingabe. Es werden bis zu 12 Attribute simultan dargestellt. Bei mehr als 12 Attributen kann über die Schaltflächen
und
zwischen mehreren Attributseiten hin- und hergeblättert werden. In der Dialogbox ist jedem Attribut eine Zeile zugeordnet. Diese besteht aus der Schaltfläche
, dem Attributwerteingabefeld und dem Attributnamenslabel. Mit
wird der Attributwert komplett zurückgesetzt. Die Rücksetzung wird durch Anzeige von
!nicht_gesetzt!
für den Attributwert signalisiert. Die Rücksetzung unterscheidet sich von der Eingabe eines Leerstrings für den Attributwert. Ein Leerstring wird als solcher beim Attribut eingetragen und erscheint auch in der Netzliste. Nicht gesetzte Attribute werden überhaupt nicht in die Netzliste übertragen.
Die zugewiesenen Attribute werden in die Netzliste eingetragen und durch den
Packager in das Layousystem übertragen. Im Layout können Attribute durch entsprechende Textdefinitionen (z.B. auf Dokumentarlagen) visualisiert werden. Auch können die entsprechenden Werteinträge mit
User Language-Programmen oder mit Hilfe des Utilityprogramms
userlist praktisch beliebig weiter in Richtung Fremdsysteme, CAM, PPS, usw. ausgewertet werden.
Symbolnamensmuster
Als nächstes sollte dem System das gewünschte Muster für die automatische Bauteilbenennung im Schaltplan mitgeteilt werden:
Symbole | |
Symbolname Muster | |
Name Muster () ? | IC?? |
Hiermit ist das Muster für die automatische Bauteilbenennung auf
IC
und 2 Stellen für die Nummerierung festgelegt. Wird kein Muster definiert, so gilt der Defaultwert
N????
, d.h. es werden Bauteilnamen beginnend mit dem Buchstaben
N
und nachfolgend 4 Stellen für die Nummer vergeben. Die Startnummer für die automatische Bauteilnummerierung ergibt sich zu 10 beim Symbolnamensmuster
??
, 100 bei
???
, 1000 bei
????
, usw. Damit ist i.d.R. sichergestellt, dass sich bei einer später im Layout notwendigen Bauteilumbenennung keine Namenskonflikte ergeben können. Eine solche Bauteilumbenennung wird z.B. durchgeführt, um die Lesbarkeit des Bestückungsplans (insbesondere für die Handbestückung) zu verbessern. Dies ist üblicherweise wichtiger, als eine nach irgendwelchen erdachten Regeln durchgeführte Benennung der Stromlaufsymbole auf dem Schaltplan (die Funktion des Bauteils bzw. der Schaltung ist hier ja bereits am Symbol abzulesen). Daher empfehlen wir, bei der Platzierung der Stromlaufsymbole die Funktion zur automatischen Bauteilbenennung zu benutzen und erst im Layout die endgültige Nummerierung zu erzeugen. Entsprechende Funktionen - auch zur automatischen Bauteilbenennung - stehen sowohl im
Layouteditor als auch im
Autoplacement zur Verfügung.
Definieren der Elementgrenzen
Setzen Sie nun die rechte obere Ecke der Elementgrenze auf die Koordinate [14,14]:
Einstellungen | |
Obere Elementgrenze | |
Positionieren auf [14,14] | |
Definieren des Nullpunkts
Der Nullpunkt des Symbols ist auf Planebene dessen Pickpunkt. Das ist der Punkt des Symbols, der am Fadenkreuz hängt. Am zweckmäßigsten ist es, diesen Punkt auf einen der Pins (in unserem Fall z.B. Pin
A
, Koordinate [2,10]) zu legen:
Einstellungen | |
Nullpunkt | |
Positionieren auf Pin "A", [2,10] | |
Sichern des erstellten Symbols
Das Symbol
CD4081
ist nun vollständig definiert. Vergessen Sie nicht, dieses Symbol mit folgenden Kommandos zu sichern:
Datei | |
Speichern | |
2.2.3 Label-Erstellung
Labelsymbole dienen auf Schaltplanebene der Definition von Signalen bzw. Netznamen. Mit Hilfe von Labels ist es daher möglich, Netze über verschiedene Stromlaufblätter einer Projektdatei hinweg miteinander zu verbinden. Labels werden auf Schaltplanebene mit der Funktion
aus dem Menü
geladen. Sofern ein Labelsymbol mit dem auf die Abfrage nach dem Netznamen spezifiziertem Namen verfügbar ist, wird dieses Symbol geladen. Ist dies nicht der Fall, dann wird (sofern in der eingestellten Bibliothek verfügbar) per Default das Labelsymbol
standard
geladen, welches eine Referenz zur Anzeige des Netznamens enthalten sollte. Neben dem Labelsymbol
standard
haben auch die beiden im System vordefinierten Labelsymbole
bustap
und
port
besondere Bedeutung. Das Labelsymbol
bustap
wird für Busanschlüsse verwendet. Das Labelsymbol
port
wird für die Definition von Modulports beim hierarchischen Schaltplandesign verwendet. Im Folgenden werden wir in der DDB-Datei
demo.ddb
die beiden Labelsymbole
vss
und
vdd
speziell zur Darstellung von Masse bzw. positiver Versorgung für CMOS-Technologie erstellen.
Erzeugen des Labelsymbols
Erzeugen Sie mit folgenden Kommandos ein neues Labelsymbol (d.h. ein neues Element vom Typ Label) mit dem Elementnamen
vss
innerhalb der Datei
demo.ddb
(sofern vom vorhergehenden Arbeitsschritt noch ein Element der Datei
demo.ddb
geladen ist, genügt die Selektion des
-Buttons im Popupmenü bzw. die Angabe eines leeren Strings (Betätigen der Eingabetaste
) auf die Abfrage nach dem Dateinamen):
Datei | |
Neues Element | |
Label | |
Dateiname ? | demo |
Elementname ? | vss |
Blatt (S)tandard/(M)anuell ? | m |
Elementbreite (mm/") ? | 6 |
Elementhoehe (mm/") ? | 10 |
Platzieren des Pinsymbols
Platzieren Sie mit folgenden Kommandos das Markersymbol
p
an der Koordinate [3,7]:
Symbole | |
Neues Symbol | |
Bibliotheksteilname ? | p |
Positionieren auf [3,7] | |
Grafik
Zeichnen Sie eine vertikale Grafiklinie ausgehend vom eben positionierten Marker bis zur Koordinate [3,4], und generieren Sie eine rechteckige Grafikfläche:
Grafik | |
Neue Grafiklinie | |
Positionieren auf Marker, [3,7] | |
Positionieren auf [3,4] | |
Fertig | |
Neue Grafikflaeche | |
Positionieren auf [1,3] | |
Positionieren auf [1,4] | |
Positionieren auf [5,4] | |
Positionieren auf [5,3] | |
Fertig | |
Text
Tragen Sie mit folgenden Kommandos den Label-Namen
Vss
als Text (Texthöhe 2mm) an der Koordinate [1,1] ein:
Texte | |
Neuer Text | |
Text ? | Vss |
Textgroesse | |
Texthoehe ( 1.00mm) ? | 2 |
Positionieren auf [1,1] | |
Definieren des Nullpunktes
Setzen Sie den Element-Nullpunkt des Labels auf die aktuellen Marker-Position (Koordinate [3,7]):
Einstellungen | |
Nullpunkt | |
Positionieren auf Marker, [3,7] | |
Sichern des erstellten Symbols
Das Labelsymbol
vss
ist jetzt vollständig definiert. Vergessen Sie nicht, dieses Symbol mit folgenden Kommandos abzuspeichern:
Datei | |
Speichern | |
Erzeugen eines neuen Labelsymbols aus einem bestehenden
Das Labelsymbol
vdd
kann aus dem soeben erstellten Labelsymbol
vss
generiert werden. Kopieren Sie hierzu das noch geladene Labelsymbol
vss
auf
vdd
, und laden Sie
vdd
:
Datei | |
Ablegen auf Namen | |
Dateiname ? | |
Elementname ? | vdd |
Laden | |
Label | |
Dateiname ? | |
Elementname ? | vdd |
Im Grafikarbeitsbereich sehen Sie nun das Labelsymbol
vdd
, welches zunächst noch genauso aussieht, wie das Symbol
vss
. Durch einige Manipulationen können Sie das geladene Labelsymbol abändern.
Löschen Sie zunächst mit den folgenden Kommandos den Text
Vss
sowie die rechteckige Grafikfläche:
Texte | |
Text loeschen | |
Positionieren auf [-2,-6] | |
Grafik | |
Grafik loeschen | |
Positionieren auf [-2,-4] | |
Bewegen Sie nun die vertikale Grafiklinie um 2mm nach unten:
Grafik | |
Grafik bewegen | |
Positionieren auf [0,-3] | |
Positionieren auf [0,-5] | |
Bewegen Sie nun das Markersymbol um 5mm nach unten:
Symbole | |
Bewegen Symbol/Label | |
Positionieren auf [0,0] | |
Positionieren auf [0,-5] | |
Generieren Sie nun eine dreieckige Grafikfläche, die in Form einer Pfeilspitze nach oben zeigt (um einen spitzen Winkel zu erzeugen, ist es notwendig, zwischenzeitlich in das Menü
zu wechseln, um den Winkel freizugeben):
Grafik | |
Neue Grafikflaeche | |
Positionieren auf [-1,-2] | |
Positionieren auf [1,-2] | |
Raster/Winkel | |
Nur W freigeben | |
Positionieren auf [0,0] | |
Fertig | |
Tragen Sie mit folgenden Kommandos den Label-Namen
Vdd
als Text (Texthöhe 2mm ist noch eingestellt) an der Koordinate [-2,0] ein:
Texte | |
Neuer Text | |
Text ? | Vdd |
Positionieren auf [-2,0] | |
Setzen Sie den Elementnullpunkt des Labels auf die aktuelle Markerposition (Koordinate [0,-5]):
Einstellungen | |
Nullpunkt | |
Positionieren auf Marker, [0,-5] | |
Das Labelsymbol
vdd
ist nun vollständig definiert. Vergessen Sie nicht, dieses Symbol mit folgenden Kommandos abzuspeichern:
Datei | |
Speichern | |
Bibliotheksbearbeitung
© 1985-2024 Oliver Bartels F+E