Ein Leiterplattenlayout soll auf Anhieb richtig funktionieren, das wünscht sich jeder Entwickler. Wichtig hierfür ist es, die Designvorgaben (Constraints), nach welchen die Platine entworfen werden soll, genau zu ermitteln und zu definieren. Dazu zählen folgende Fragen: Was sind die Abmessungen? Welches Gewicht hat das Kupfer? Soll die Leiterplatte ein- oder doppelseitig ausgelegt werden?
Designvorgaben sind heute viel mehr als nur die physikalischen Abmessungen. Die wichtigsten Vorgaben werden von den Anforderungen der differenziellen Leitungspaare, BGAs, Low-Voltage-Komponenten und parallelen Hochgeschwindigkeits-Schnittstellen definiert. Im Idealfall würde der Designer mit einer Correct-by-Design-Methode den Designvorgaben strikt folgen und so Fehler während des Entwurfsprozesses vermeiden. In der realen Welt ist die frühzeitige Verifikation der Signalintegrität wichtig, denn nur so lässt sich das Einhalten aller Designvorgaben gewährleisten.
Designvorgaben festlegen
Setzt ein Entwickler das falsche Werkzeug ein, können Frustration und Fehler die Folge sein. Hat er mehrere Fenster offen und kann deshalb nicht alle Designvorgaben auf einmal sehen, so ist dies verwirrend, fehleranfällig und zwingt ihn dazu, jede Designvorgabe einzeln zu aktualisieren. Modernere Designwerkzeuge bieten Vorteile gegenüber traditionellen, dialogbasierten Ansätzen, indem sie einen auf Tabellenkalkulation basierten Ansatzes zur einfachen Erfassung und Bewertung von Designvorgaben verwenden. Leistungsfähige Tabellenkalkulations-Bearbeitungsfunktionen wie mehrreihiges/mehrspaltiges Kopieren und Einfügen erlauben es, eine große Anzahl von Constraint-Werten schnell zu erfassen und zu modifizieren. Das Öffnen von zwei Instanzen des Constraint-Managers erlaubt es, Constraint-Werte von einem Projekt in ein anderes zu kopieren. Dies macht ein Wiederverwenden von Designvorgaben möglich.
Es gibt einige Designvorgaben, die für ein bestimmtes Designprojekt hilfreich sein können oder nicht. Zu den gemeinsamen Designvorgaben gehören:
Topologische Designvorgaben reglementieren die Routing-Muster für bestimmte Netze. Sie werden verwendet, um die Routing-Struktur zu steuern und Längenbeschränkungen auf Netzverzweigungen (Pin-Paaren) anzuordnen. Zwei übliche Designvorgaben sind der Topologie-Typ und die maximale Stichleitungslänge. Der Topologie-Typ legt entweder keine Beschränkungen für das Routing fest, oder das Routing wird in einer definierten Weise eingeschränkt. Die Designvorgabe für die maximale Stichleitungslänge gilt für Netztypen mit eingeschränkter Topologie. Sie begrenzt die Leiterbahnlänge, die mit einer benachbarten Netzverzweigung geteilt wird. Beide Designvorgaben können auf Constraint-Class-Level spezifiziert oder durch einzelne Netze überschrieben werden.
Längen-Constraints beschränken die Routing-Länge für Netze und Teile von Netzen. Dafür beinhalten sie die minimale, die maximale und die abgeglichene Länge. Die Designvorgaben für die minimale und maximale Länge können Constraint-Klassen, einzelnen Netzen oder individuellen Netzverzweigungen (Pin-Paaren) zugeordnet werden. Um eine passende Längenvorgabe zu definieren, ist eine Gruppe mit abgeglichenen Längen erforderlich. Dieser Ansatz beschränkt die relative Länge der Gruppenmitglieder, zum Beispiel sollte die Längendifferenz zwischen zwei beliebigen Gruppenmitgliedern den spezifizierten Toleranzwert nicht überschreiten. Eine Gruppe abgeglichener Längen kann entweder Netze oder Teile von Netzen (Pin-Paare) umfassen. Das Mischen von Netzen und Pin-Paaren in einer Gruppe ist nicht erlaubt.
Routing-Constraints legen Randbedingungen für die verwendeten Routing-Lagen, erlaubte Via-Auswahl und Leiterbahnbreiten fest. Routing-Constraints werden auf der Ebene der Netzklassen definiert und für alle Netze in der Netzklasse angewendet. Sie führen zu Beschränkungen bei der Nutzung der Routing-Schichten, der für das Routing erlaubten Via-Typen und der erlaubten Bandbreite für die Leiterbahnbreite.
Abstands-Constraints definieren einen minimal erlaubten Abstand zwischen den Kanten von zwei Routing-Objekten (zum Beispiel Leiterbahnen, Pads und Kupferflächen) auf einer bestimmten Routing-Lage.
Designvorgaben für Differenzialpaare sind: Leiterbahnbreite, Differenzabstand und maximale Separierungslänge. Die maximale Separierungslänge ist lagenunabhängig und definiert, auf welcher maximalen Länge Leiterbahnen den Differtentialabstandwert verletzen dürfen.
Designvorgaben für Spannungsversorgungsnetze: Tools wie PADS erkennen auf der Basis vordefinierter Standardnamen wie GND, VCC, +5 bis 12 V etc. automatisch Spannungsversorgungsnetze.
Gruppierung nach Klassen
Wenn man in den frühen Phasen des Designprozesses Netzklassen und Constraint-Klassen richtig definiert und anordnet, vereinfacht das die Definition und das Management von Designvorgaben deutlich. In Gruppen eingeteilte Designvorgaben machen das Layout effizienter, verringern die Designzeit und sparen schließlich Kosten ein.
Netzklassen werden verwendet, um die Definition der Routing-Constraints von Netzen mit ähnlichen Charakteristiken zu organisieren und zu beschleunigen. Für eine Netzklasse lassen sich die für das Routing erlaubten Lagen, die entsprechenden Leiterbahnbreiten für diese Lagen und die für die Netze in diesen Netzklassen erlaubten Via-Typen definieren. Bei differenziellen Paaren kann der Designer zusätzlich einen von der Lage abhängigen Abstand für die Differenzialpaare definieren.
Constraint-Klassen verwendet man, um die Definition der Länge, Topologie und anderer Designvorgaben für Netze mit ähnlichen elektrischen und Timing-Eigenschaften zu organisieren und zu beschleunigen. Obwohl Designvorgaben, die einer Constraint-Klasse zugeordnet sind, automatisch allen Netzen in einer Klasse zugeordnet werden, lassen sich Constraint-Werte an einzelne Netze, Pin-Paare und differenzielle Paare anpassen.
Da die Anzahl von Differenzialpaaren zunimmt, wird es mühsam, die Paare einzeln zu definieren. Automatisierung macht es einfach, die Differenzialpaare schnell und einfach zu erstellen. Netznamen folgen in der Regel Mustern. Mit Hilfe dieser Muster lassen sich die Netznamen finden, die den Differenzialpaaren zugeordnet werden sollen. Mit einer Liste der vorgeschlagenen Differenzialpaare lassen sich die Treffer deaktivieren, die nicht zugeordnet werden sollen.
Verletzungen
Üblicherweise werden Verstöße gegen die Designvorgaben innerhalb des Layout-Werkzeugs überprüft. Einige neuere Werkzeuge unterstützen das Betrachten von Verstößen gegen die Designvorgaben sowohl innerhalb des Layouts als auch in der Constraint-Management-Umgebung. Durch Betrachten der Verstöße in der Umgebung, wo die Designvorgaben festgelegt wurden, wird der Prozess gleichermaßen für Ingenieure und Designer zugänglich und für den Workflow logischer.
Fazit
Constraint-Management sollte intuitiv, schnell und einfach und speziell auf die täglichen Arbeitsabläufe der Designer zugeschnitten sein. Ein einheitlicher Ansatz gewährleistet eine Correct-by-Design-Methode und verhindert Fehler, die verursacht werden, wenn in der Schaltplan- und Layout-Umgebung separate Constraint-Management-Tools zum Einsatz kommen. Alle Designvorgaben sollten synchronisiert und im gesamten Flow zugänglich sein.