Das BAE-Layoutsystem ist mit mächtigen
Autoplacement-Verfahren ausgestattet. Vor der automatischen Platzierung können die zu platzierenden Bauteile nach dem Mengenprinzip selektiert werden. Mit dem Matrixplacement-Verfahren kann eine selektierbare Menge von Bauteilen automatisch auf einem definierbaren Einbauplatzraster platziert werden. Die integrierten Initialplacement-Funktionen ermöglichen die vollautomatische Durchführung der Bauteilplatzierung. Die Platzierungsoptimierung bietet Funktionen zum automatischen Bauteil- und Pin-/Gattertausch an.
Die
Autoplacement-Funktionen sind im Menü
des Layouteditors unter
,
und
untergebracht.
Sofern Sie sich nicht im
Layouteditor befinden, sollten Sie diesen zunächst aufrufen und das Layout
board aus der Datei
demo.ddb laden.
Löschen Sie nun mit den folgenden Kommandos die Widerstände
r100 und
r101 sowie (mit der Hilfe der Gruppenfunktion) die Schalter
s1000 bis
s1009 :
Bauteile | |
Loeschen Bauteil | |
Positionieren auf "r100",[1.0",2.4"] | |
Loeschen Bauteil | |
Positionieren auf "r101",[1.6",2.4"] | |
Gruppen | |
Gruppe Polygon | |
Bauteile | |
Selektieren | |
Positionieren auf [0.1",0.4"] | |
Positionieren auf [0.6",0.4"] | |
Positionieren auf [0.6",2.4"] | |
Positionieren auf [0.1",2.4"] | |
Fertig | |
Gruppe loeschen | |
In den folgenden Abschnitten werden die soeben gelöschten Bauteile mit Hilfe von
Autoplacement-Funktionen wieder auf das Layout zurückplatziert.
4.4.1 Bauteilmenge
Über
können die zu platzierenden Bauteile ausgewählt werden. Dabei ist die Selektion und Deselektion über Bibliotheksteilnamen, Bauteilnamen und Wildcards möglich.
Deselektieren Sie zunächst mit den folgenden Kommandos alle unplatzierten Bauteile:
Bauteile | |
Bauteilmenge | |
Alles | |
Deselektieren | |
Alle Bauteile deselektieren ? | j |
Abbruch | |
Werfen Sie mit den folgenden Kommandos einen Blick auf die Bauteilliste:
Bauteile | |
Bauteilmenge | |
Bauteilliste | |
Das System sollte nun die folgende Liste mit allen in der Netzliste definierten Bauteilen auf dem Bildschirm ausgeben:
Datei : demo.ddb Plan : board Bauteile : 23
: c100 chip1210 P : c101 chip1206 P : ic10 dil14 P
: k1 relais P : r100 r04a25 U : r101 r04a25 U
: r102 r04a25 P : r103 r04a25 P : r104 minimelf P
: r105 chip1206 P : s1000 s1dilo U : s1001 s1dilo U
: s1002 s1dilo U : s1003 s1dilo U : s1004 s1dilo U
: s1005 s1dilo U : s1006 s1dilo U : s1007 s1dilo U
: s1008 s1dilo U : s1009 s1dilo U : v1 to92 P
: v1000 d04a25 P : x1000 xsubd9bl P - Ende -
Die Bauteilliste enthält alle in der Netzliste definierten Bauteile mit Bauteilname, Bibliotheksteilname und dem Hinweis, ob das Bauteil bereits platziert ist
(P ), oder ob es noch unplatziert ist
(U ). Der Eintrag
S bedeutet, dass das betreffende, unplatzierte Bauteil für die Platzierung selektiert ist. Durch die Eingabe von
A und Betätigen der Eingabetaste
gelangen Sie wieder in das Menü.
Selektieren Sie mit den folgenden Kommandos alle Bauteile, deren Namen mit
r beginnen, zur Menge der zu platzierenden Bauteile:
Bauteile | |
Bauteilmenge | |
Bauteil(e) | |
Selektieren | |
Bauteilname ? | r* |
Bauteilname ? | |
Selektieren | |
Abbruch | |
Die Auswahl von Bauteilnamen für die Bauteilmenge mit den Optionen
und
der Funktion
aus dem Menü
kann auch durch Mausselektion im angebotenen Popupmenü vorgenommen werden. Wahlweise kann ein Bauteilnamensmuster per Tastatur eingegeben werden. Im Auswahlmenü sind jeweils nur die unselektierten, bzw. selektierten Bauteile aufgelistet.
Mit obigen Kommandos wurden die beiden noch nicht platzierten Widerstände
r100 und
r101 für die Platzierung selektiert. Sie können dies mit Hilfe der Funktion
überprüfen (Eintrag
S für diese beiden Bauteile).
Mit der Funktion
aus dem Untermenü
können alle noch nicht platzierten Bauteile für für die Platzierung selektiert werden. Mit der Funktion
besteht die Möglichkeit der Selektion über den Bibliotheksnamen (z.B.
so16 für alle unplatzierten Bauteile mit der Gehäusebauform SO16, oder
dil* für alle unplatzierten DIL-Gehäuse). Mit der jeweiligen Unterfunktion
können Bauteile selbstverständlich auch wieder aus der Menge der zu platzierenden Bauteile entfernt werden.
Das Untermenü
bietet darüber hinaus mit
und
auch Funktionen zur selektiven Auswahl von Bauteilen, die in einem speziellen Blockschaltbild eines hierarchischen Schaltplanentwurfs definiert sind. Hierbei erfolgt die Selektion oder Deselektion der zu platzierenden Bauteile jeweils durch die Spezifikation des Blocknamens. Dieser Blockname wird bei hierarchischen Designs über das Attribut
$blkname automatisch durch den
Packager in den betroffenen Bauteilen eingetragen.
Im
Kapitel 4.3.2 (Abschnitt Manuelle Platzierung) wurde bereits auf die Berücksichtigung der Bauteilmenge durch die Funktionen
und
hingewiesen. Stellen Sie mit den folgenden Kommandos die Koordinatenanzeige auf Inch ein, und platzieren Sie mit Hilfe der Funktion
alle in der Bauteilmenge zur Platzierung selektierten Bauteile (es sind dies die Widerstände
r100 und
r101 ):
Einstellungen | |
Koordinatenanzeige | |
inch Anzeige | |
Bauteile | |
Naechstes Bauteil | |
Positionieren auf [1.0",2.4"] | |
Bauteile | |
Naechstes Bauteil | |
Positionieren auf [1.6",2.4"] | |
Bauteile | |
Naechstes Bauteil | |
Ist die Bauteilmenge leer (weil alle zuvor selektierten Bauteile platziert wurden), dann gibt die Funktion
die Meldung
Alle selektierten Bauteile sind bereits platziert!
aus.
4.4.2 Matrixplacement
Das Matrixplacement-Verfahren ist ein Initialplacement-Algorithmus, mit dessen Hilfe sich die in der Bauteilmenge enthaltenen Bauteile auf in Matrixform definierten Einbauplätzen automatisch platzieren lassen.
Selektieren Sie mit den folgenden Kommandos alle Bauteile mit dem Bibliotheksteilnamen
s1dilo (dies sind die Schalter
s1000 bis
s1009 ) zur Bauteilmenge:
Bauteile | |
Bauteilmenge | |
Macro waehlen | |
Selektieren | |
Bibliotheksteilname ? | s1dilo |
Bibliotheksteilname ? | |
Stellen Sie den Standardwinkel für die Platzierung auf 270 Grad (ohne Spiegelung) ein (die Option hierfür ist ggf. im Bereich
des Dialogs
aus dem Menü
erreichbar):
Bauteile | |
Standardwinkel | |
270 Grad links | |
Definieren Sie nun eine Platzierungsmatrix, Platzieren Sie die in der Bauteilmenge enthaltenen Bauteile auf die Matrix, und entfernen Sie die Matrix wieder:
Bauteile | |
Matrixplacement | |
Matrix definieren | |
Positionieren auf Matrix Ursprung,[0.2",2.3"] | |
Positionieren auf Matrix Abstand,[0.3",2.1"] | |
Positionieren auf Matrix Ende,[0.2",0.5"] | |
Matrix platzieren | |
Matrix entfernen | |
Die Funktion
platziert alle in der Bauteilmenge enthaltenen Bauteile auf die definierte Platzierungsmatrix, wobei auch der aktuell eingestellte Platzierungswinkel und ggf. der Spiegelungsmodus für die Platzierung mit berücksichtigt werden.
Es sind nun alle in der Netzliste definierten Bauteile platziert. Sie können dies mit der Funktion
aus dem Untermenü
überprüfen.
4.4.3 Initialplacement
Die im
System integrierten Initialplacement-Funktionen ermöglichen die vollautomatische Durchführung der Bauteilplatzierung. Hierbei werden die unplatzierten Bauteile innerhalb der Platinenumrandung auf dem aktuell eingestellten Platzierungsraster platziert, wobei vorplatzierte Bauteile (Stecker, LEDs, etc.) ebenso berücksichtigt werden wie die Vorgaben aus der Netzliste. Abblockkondensatoren und SMD-Bauteile werden automatisch erkannt. Die Lötseite kann für die SMD-Platzierung wahlweise gesperrt oder freigegeben werden. Die Bauteile werden selbsttätig in 90-Grad-Schritten gedreht, wobei sich die Freiheitsgrade bei der Bauteilrotation für eine fehlersichere Bestückung wahlweise einschränken lassen. Optional kann ein Bauteilexpansionsparameter zur Generierung von Freiflächen zwischen den Bauteilen definiert werden. Die automatische Platzierung wird durch einstellbare Gewichtungsfaktoren zur Berücksichtigung von Netzlistenvorgaben und zur Bewertung der Bauteil-Segmentpassung gesteuert. Bereits während der Platzierung werden Rip-Up/Retry-Läufe eingeschoben, um die Ausnutzung der Platinenfläche zu optimieren.
Die Initialplacement-Funktionen sind im Untermenü
integriert, welches die folgenden Funktionen umfasst:
Bauteile | |
Autoplacement | |
Zur automatischen Bauteilplatzierung stehen die Funktionen
,
und
zur Verfügung.
Es werden jeweils die aktuell zur Bauteilmenge selektierten Bauteile platziert (siehe
Kapitel 4.4.1). Damit lassen sich selektierbare Bauteilgruppen automatisch platzieren. Bereits platzierte Bauteile, die nicht in der Bauteilmenge enthalten sind, werden von den Platzierungsroutinen wie fixierte Bauteile behandelt und als solche nicht umplatziert.
Das erste für die Platzierung gewählte Bauteil wird auf einem Startpunkt positioniert, der durch die Funktion
automatisch ermittelt wird bzw. in den Funktionen Clusterplacement und Flächenplacement vom Anwender interaktiv festzulegen ist (Prompt
Startpunkt fuer Platzierung waehlen! ). Die Auswahl des Startpunkts ist von essentieller Bedeutung für die Qualität des Platzierungsergebnisses, da sich die Platzierung von Folgebauteilen jeweils an der Platzierung des ersten Bauteils ausrichtet. Wenn das erste zu platzierende Bauteil aus Platzmangel nicht am Startpunkt platziert werden kann, dann ist auch keines der Folgebauteile platzierbar. Wird ein Startpunkt außerhalb der Platinenumrandung gewählt, dann ist kein Bauteil platzierbar. Ist keine Platinenumrandung definiert, dann kann der Startpunkt frei gewählt werden, und Bauteile werden u.U. auch außerhalb der aktuell definierten Elementgrenzen platziert.
Der Fortgang der Bearbeitung während der automatischen Platzierung wird in der Statuszeile protokolliert (Anzeige
Pass : 1/1 Bauteil : <b>/<n> ). Dieser Prozess kann per Tastendruck abgebrochen werden, was ggf. mit der Meldung
Autoplace abgebrochen! quittiert wird. Dabei ist zu beachten, dass es vor dem tatsächlichen Funktionsabbruch u.U. zu kurzen Wartezeiten kommen kann, da der aktuell aktive Ripup- und Retry-Pass in jedem Fall komplettiert werden muss.
Die erfolgreiche Beendigung der Initialplacement-Funktion wird durch die Meldung
Es wurden keine Fehler festgestellt. angezeigt, was zugleich auch bedeutet, dass alle Bauteile platziert werden konnten. Eine durch die Platzierungsfunktion ausgegebene Meldung der Form
<n> Bauteile konnten nicht platziert werden! gibt die Anzahl
<n> der Bauteile an, die mit den eingestelltem Parametern nicht auf dem zur Verfügung stehenden Platz platziert werden konnten. In diesem Fall sind ggf. andere Parameter für die Platzierung (feineres Platzierungsraster, Reduzierung der Bauteilexpansion, Freigabe Bauteildrehung bzw. SMD-Spiegelung; Parametereinstellung siehe unten) zu wählen, um (nach einem
) in einem neuerlichen Platzierungslauf eine Komplettplatzierung zu ermöglichen.
Voll-Autoplace
Die Funktion
führt ein Clusterplacement (siehe unten) mit automatisch gewähltem Startpunkt für die Platzierung sowie anschließend eine (multi-pass) Platzierungs-Optimierung (siehe unten,
Kapitel 4.4.4) mit den dafür eingestellten Parametern für Optimierungszahl und Pin/Gate-Swap-Verfahren durch. Der Startpunkt für die Platzierung ergibt sich dabei aus dem Schwerpunkt der Platinenumrandung. Liegt dieser Schwerpunkt nicht innerhalb der Platinenumrandung, dann können mit
keine Bauteile platziert werden, und es muss Clusterplacement oder Flächenplacement anstelle
verwendet werden.
Ist keine Platinenumrandung definiert, dann wird der absolute Nullpunkt des aktuell geladenen Layouts als Startpunkt gewählt. In diesem Fall sollte nach Ablauf der Platzierung auf die Übersichtsdarstellung umgeschaltet werden, da anschließend Bauteile u.U. außerhalb der aktuell definierten bzw. sichtbaren Elementgrenzen platziert sind.
Clusterplacement
Beim Clusterplacement ist zunächst der Startpunkt für die Platzierung zu wählen. Dieser Startpunkt wird zur Positionierung des ersten für die Platzierung ausgewählten Bauteils verwendet.
Die Funktion
wertet die Netzliste aus und nimmt eine Analyse und Klassifizierung der vorkommenden Netze und Bauteile vor. Danach werden Gruppen von Bauteilen zu Clustern zusammengefasst, die dann entsprechend der für die einzelnen Bauteilcluster ermittelten Platzierungsprioritäten nacheinander auf dem Layout platziert werden. Zur Clusterbildung werden jedem Bauteil mit mehreren Anschlüssen die jeweils verbundenen Bauteile mit einer geringen Anzahl von Anschlüssen (weniger als vier) zugeordnet. Bauteile die ausschließlich zu als Versorgungsnetzen klassifizierten Netzen Verbindungen haben (dies sind in aller Regel Abblockkondensatoren), werden zunächst nicht berücksichtigt und am Ende auf die mit den Versorgungsnetzen verbundenen Gruppen aufgeteilt. Dadurch ergibt sich anschließend automatisch eine sinnvolle Platzierung der Abblockkondensatoren in der Nähe der zugehörigen ICs. Die Aufteilung der Abblockkondensatoren erfolgt nach Alphabet. Da nicht zwischen Steckern und normalen Bauteilen unterschieden werden kann, ist es von Vorteil, bei der Namensgebung für die Bauteile die Stecker am Ende des Alphabets anzusiedeln (z.B. Namensmuster
x??? für Stecker und
ic??? für integrierte Schaltungen), um zu verhindern, dass Abblockkondensatoren an Stecker zugewiesen werden.
Flaechenplacement
Die Funktion
führt eine Flächenplatzierung durch. Dabei ist zunächst der
Startpunkt für die Platzierung zu wählen. Flächenplacement bedeutet, dass die Netzlistendaten nicht berücksichtigt werden, sondern dass lediglich die Bauteilabmessungen als Kriterium für die Platzierung herangezogen werden. Mit dieser Funktion lässt sich zum Beispiel leicht überprüfen, ob der auf der Leiterkarte zur Verfügung stehende Platz überhaupt ausreicht.
Bauteilpinfaktor
Der Bauteilpinfaktor steuert die Reihenfolge, in der die Bauteilgruppen platziert werden. Für die Auswahl des nächsten zu platzierenden Bauteils steht die Kombination zweier Strategien zur Verfügung. Die erste Strategie wählt einfach das Bauteil mit der größten Anzahl von Verbindungen zu den bereits platzierten Bauteilen aus, während die zweite Strategie das Bauteil auswählt, bei dem das Verhältnis der Pins mit Verbindungen zu bereits platzierten Bauteilen zur Gesamtzahl seiner Anschlüsse am höchsten ist. Über den Bauteilpinfaktor wird gesteuert welche Strategie höher zu bewerten ist. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Bauteilpinfaktor | |
Pinanzahlgewichtung [0.0,1.0] (0.90) ? |
können für den Bauteilpinfaktor Werte im Bereich von 0.0 (reine Bewertung der Verbindungsanzahl) bis zu 1.0 (reine Bewertung des Prozentsatzes verbundener Anschlüsse) angegeben werden. Der Defaultwert für den Bauteilpinfaktor beträgt 0.9. Von der Verteilung der Netze her sind hohe Bauteilpinfaktoren grundsätzlich besser als niedrige Faktoren. Allerdings führen hohe Bauteilpinfaktoren häufig dazu, dass besonders bei kleinem Platzangebot zu Beginn der Platzierung viele kleine Bauteile den vorhandenen Platz so fragmentiert belegen, dass später zu platzierende große Bauteile keinen Platz mehr finden.
Segmentpassung
Die Segmentpassung gibt an, inwieweit die Passung der Kantenlängen benachbarter Bauteile berücksichtigt wird, d.h. ob Bauteile gleicher Größe bevorzugt nebeneinander platziert werden. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Segmentpassung | |
Segmentpassung [0.0,1.0] (0.10) ? |
wird der Bewertungsfaktor für die Segmentpassung festgelegt. Es können Werte von 0.0 (keine Berücksichtigung der Segmentpassung) bis 1.0 (Segmentpassung wird vergleichbar den Netzausdehungen bewertet) angegeben werden. Der Defaultwert für die Segmentpassung beträgt 0.1. Mit hoher Segmentpassung platzierte Layouts sehen in der Regel optisch ansprechender aus und sind bei Vorhandensein vieler Busverbindungen besser routbar. Layouts mit mehr "zufällig" verteilten Verbindungen und beengten Verhältnissen sind dagegen häufig bei einer Platzierung mit geringer Segmentpassung einfacher entflechtbar.
Spiegelungsmodus
Der Spiegelungsmodus ist nur für die Platzierung von SMD-Bauteilen von Bedeutung. Bei der Voreinstellung
werden SMD-Bauteile nur ungespiegelt platziert. Mit der Einstellung
kann die automatische Platzierung wahlweise auf der Ober- bzw. Unterseite durchgeführt werden. Die Option
dient der Einschränkung der automatischen Bauteilspiegelung auf SMDs mit nicht mehr als 2 Pins und erlaubt somit die Platzierung von Abblockkondensatoren und anderen Kleinbauteilen auf der Lötseite, während SMD-Bauteile mit mehr als zwei Pins in jedem Fall auf der Bauteilseite platziert werden. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Spiegelungsmodus | |
kann die gewünschte SMD-Spiegelungsoption selektiert werden.
Rotationsmodus
Der Rotationsmodus gibt an um welche Winkel die Bauteile bei der automatischen Platzierung gedreht werden dürfen. Die Standardeinstellung für den Rotationsmodus ist
, d.h. die Bauteile dürfen in beliebigen 90 Grad-Schritten platziert werden. Mit der Option
werden die Bauteile nur ungedreht oder um 90 Grad nach links gedreht platziert. Dieser Modus kann angewendet werden um eine fehlersicherere Bestückung zu erreichen; außerdem verläuft damit die automatische Platzierung schneller, da weniger Platzierungsmöglichkeiten geprüft werden müssen. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Rotationsmodus | |
kann zwischen den beiden Rotationsoptionen gewählt werden.
Bauteilgröße, Bauteilexpansion, Abblockkondensatoren, Platzierungsraster
Die Bauteile werden im aktuell eingestellten Eingaberaster platziert. Dieses Platzierungsraster sollte also vor Durchführung des Initialplacement im Menü
über die Funktion
festgelegt werden. Der Platzbedarf (d.h. die Größe) eines Bauteils wird durch die Elementgrenzen des zugehörigen Makros bestimmt. Beim Erstellen von Bauteilbibliotheken sollte daher darauf geachtet werden, dass die Elementgrenzen nicht unnötig größer als die tatsächlichen Bauteilabmessungen sind. Um in weniger dicht gepackten Designs Platz zwischen den Bauteilen zu schaffen, kann eine Expansionsdistanz angegeben werden, um die die Bauteilumrandung vergrößert werden soll. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Bauteilexpansion | |
Expansionswert ( 0.00mm) ? |
wird der Wert für die Bauteilexpansion eingestellt. Der Defaultwert hierfür beträgt 0.0mm (d.h. keine Bauteilexpansion). Der mit der Funktion Bauteilexpansion angegebene Expansionswert wird auf jeden Bauteiltyp ohne Berücksichtigung individueller Makrogrößen gleichermaßen angewendet. Ausgenommen hiervon sind Abblockkondensatoren, die automatisch erkannt werden und mit geringstmöglichem Abstand zu den zu versorgenden Bauteilen platziert werden. Nach Möglichkeit werden die Abblockkondensatoren hierbei je nach Orientierung der zu versorgenden ICs vorzugsweise jeweils rechts bzw. oberhalb der integrierten Schaltkreise platziert.
Im Vollautoplacement wird ein Automatismus zur schrittweisen Reduktion der Bauteilexpansion aktiviert, wenn keine vollständige Platzierung mit dem eingestellten Wert möglich ist. Der Wert für die Bauteilexpansion wird nach Möglichkeit solange um jeweils 25 Prozent reduziert bis entweder eine vollständige Platzierung möglich ist, oder der Wert für die Bauteilexpansion 0.2mm unterschreitet und auf Null gesetzt wird.
Retrydurchgänge
Da bei der Platzierung jeweils nur die Verbindungen zu bereits platzierten Bauteilen berücksichtigt werden können, kann sich im Laufe der Platzierung für ein bereits platziertes Bauteil eine optimalere Position ergeben. Damit solche Positionen auch genutzt werden, werden bei der automatischen Platzierung Retrydurchgänge eingeschoben, bei denen für jedes platzierte Bauteil nach einer besseren Position gesucht wird. In dieses Verfahren werden auch vorplatzierte, unfixierte Bauteile einbezogen. Vorplatzierte Bauteile, die nicht umplatziert werden dürfen, müssen daher vorher im
Layouteditor (mit Hilfe der Gruppenfunktionen) fixiert werden. Mit der Funktion
Bauteile | |
Autoplacement | |
Einstellungen | |
Retrydurchgaenge | |
Anzahl Retrydurchgaenge [0,9] ( 2) ? |
wird die Anzahl der Retrydurchgänge festgelegt. Die Voreinstellung beträgt zwei Durchgänge, d.h. es wird ein Retrydurchgang nach der Hälfte der platzierten Bauteile und ein Retrydurchgang am Ende der Platzierung durchgeführt. Es sollten nicht zu viele Retrydurchgänge angegeben werden, da dies einerseits stark in die Rechenzeit geht und andererseits bei der Umplatzierung von Bauteilgruppen Kleinbauteile (speziell Abblockkondensatoren) nicht immer an die neue Position mitgenommen werden können, wodurch sich für einzelne Verbindungen unverhältnismäßig lange Leiterbahnlängen ergeben können.
4.4.4 Platzierungsoptimierung
Die Platzierungsoptimierung ermöglicht den Aufruf eines Platzierungsalgorithmus, der iterativ Gehäuse gleicher Bauform gegeneinander vertauscht und Pin/Gate Swaps durchführt, um dadurch die Komplexität des Routingproblems zu entschärfen, d.h. eine Längenminimierung und Entflechtung der noch nicht realisierten Verbindungen ("Airlines", "Unroutes") herbeizuführen. Dieser Algorithmus kann einfach (Einzeloptimierung) oder mehrfach (Multi-Optimierung mit einstellbarer Optimierungszahl) durchlaufen werden, wobei mit der Funktion
zwischen unterschiedlichen Swapverfahren gewählt werden kann; mit der Standardeinstellung
werden sowohl Bauteiltausch (Component Swap) als auch Pin-/Gattertausch durchgeführt, mit
wird der Pin/Gate Swap abgeschaltet, und mit
wird der Bauteiltausch abgeschaltet.
Führen Sie mit den folgenden Kommandos eine 3-fache Platzierungsoptimierung mit Bauteiltausch und Pin/Gate Swap durch:
Bauteile | |
Autoplacement | |
Einstellungen | |
Optimierungszahl | |
Anzahl Durchgaenge : 2 (1..99) ? | 3 |
OK | |
Multi-Optimierung | |
Während der Optimierung zeigt das System in der Statuszeile den aktuellen Durchlauf und die Anzahl der bearbeiteten Bauteile an. Durch einen Tastendruck lässt sich die Platzierungoptimierung jederzeit abbrechen.
Beurteilen Sie mit Hilfe der
-Funktion das Resultat der Platzierungsoptimierung und beachten Sie dabei insbesondere die jeweilige Komplexität des "Airline-Geflechts".
Von der Platzierungsoptimierung ausgenommen sind fixierte Bauteile. Dürfen also bestimmte Bauteile (Stecker, Schalter, Leuchtdioden, usw.) durch die Platzierungsoptimierung nicht umplatziert werden, dann sind diese Bauteile vor dem Aufruf
von Autoplacement-Funktionen (mit Hilfe der Gruppenfunktion) zu fixieren. Dasselbe gilt für Bauteile, für die kein Pin/Gate Swap durchgeführt werden darf (Relais, Mehrfach-Operationsverstärker, etc.). Wir weisen in diesem Zusammenhang auch mit Nachdruck darauf hin, dass ein automatischer Pin/Gate Swap nur dann durchgeführt werden darf, wenn alle in der logischen Bibliothek eingetragenen Swapdefinitionen auch wirklich zulässig sind. Ist dies nicht der Fall, oder bestehen darüber Zweifel, dann ist der automatische Pin-Gattertausch bei der Platzierungsoptimierung unbedingt mit
in der Funktion
abzuschalten. Für Stecker darf in aller Regel kein Pin/Gate Swap definiert werden. Pin/Gate Swaps für Bauteile, bei denen spezielle Attributwerte (z.B.
$val bei Widerstandsnetzwerken) gesetzt werden können, müssen als interne Swaps definiert sein, um zu verhindern, dass Gatter zwischen Bauteilen mit unterschiedlichen Werten getauscht werden. Die Definition von Pin/Gate Swaps erfolgt in der logischen Bibliothek mit Hilfe des Utilityprogramms
loglib (siehe hierzu auch die entsprechende Beschreibung im
Kapitel 7.11 dieses Handbuchs).
Autoplacement © 1985-2024 Oliver Bartels F+E • Aktualisiert: 11. October 2010, 10:30 [UTC]
|