DE112021002870T5 - Halbleiterschaltungs-entwurf und einheits-pin-anordnung - Google Patents

Halbleiterschaltungs-entwurf und einheits-pin-anordnung Download PDF

Info

Publication number
DE112021002870T5
DE112021002870T5 DE112021002870.7T DE112021002870T DE112021002870T5 DE 112021002870 T5 DE112021002870 T5 DE 112021002870T5 DE 112021002870 T DE112021002870 T DE 112021002870T DE 112021002870 T5 DE112021002870 T5 DE 112021002870T5
Authority
DE
Germany
Prior art keywords
pin
unit
chip
computer
pins
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021002870.7T
Other languages
English (en)
Inventor
Lukas Daellenbach
Ralf Richter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021002870T5 publication Critical patent/DE112021002870T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Es können ein Halbleiterschaltungs-Entwurfsverfahren, ein System und ein Computerprogrammprodukt zum Anordnen eines Einheits-Pins auf einer Grenze einer Einheit einer zu entwerfenden Halbleiterschaltung bereitgestellt werden. Es werden Pin-Positionsdaten empfangen, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb des Chipbereichs und außerhalb der Einheit einer Halbleiterschaltung umfassen, mit welcher der Einheits-Pin elektrisch zu verbinden ist. Es werden die Koordinaten eines Mittelpunkts der Einheit bestimmt, ebenso wie eine Linie, welche den Mittelpunkt und die Chip-Pin-Position kreuzt. Der Einheits-Pin wird auf einem Schnittpunkt der Grenze der Einheit mit der Linie angeordnet, welche den Mittelpunkt kreuzt.

Description

  • HINTERGRUND
  • Die Erfindung betrifft allgemein Chip-Layouts eines Halbleiters und insbesondere Halbleiterschaltungs-Entwürfe, bei welchen ein Einheits-Pin auf einer Grenze einer Einheit einer Halbleiterschaltung angeordnet wird.
  • Ein guter Chipentwurf bleibt einer der Bereiche, wo Erfahrung viel ausmacht, obwohl Entwickler und Chipentwerfer durch hochentwickelte Tools und Abstraktionssprachen unterstützt werden, zum Beispiel VHDL (Very High-Speed Integrated Circuit Hardware Description Language). Typischerweise werden eine große komplexe Halbleiterschaltung und die Form eines Chips nicht von einem Entwickler oder einem kleinen Team entworfen, sondern von einer Mehrzahl von Teams, die an verschiedenen Einheiten des Halbleiterchips arbeiten. Zu Beginn des Entwurfsverfahrens konzentrieren sich die Teams auf verschiedene funktionelle Einheiten, arbeiten möglicherweise nur locker zusammen, d.h. sie beginnen, ihre spezielle Einheit zu entwerfen, ohne direkte Erfordernisse von anderen Einheiten einzubeziehen. Während späterer Stufen des Entwurfs können jedoch verschiedene Teams zusammenarbeiten, um das Halbleiter-Endprodukt zu optimieren. Beispielsweise kann die Verdrahtung zwischen den verschiedenen Einheiten unter Verwendung verschiedener Signalwege in verschiedenen Metallschichten in einer späteren Stufe in dem Entwicklungsverfahren entworfen werden. Ferner kann das Endprodukt durch Zusammenarbeit zwischen den verschiedenen Teams optimiert werden. Zum Beispiel werden, um in der Verdrahtungsphase kurze Längen der Drähte zwischen verschiedenen Einheiten zu erreichen, die relativen Positionen der verschiedenen Einheiten zueinander berücksichtigt. Wenn eine zweite Einheit „südlich“ einer ersten Einheit positioniert ist, dann sollte in einem optimalen Fall der Verbindungsdraht zwischen der ersten und der zweiten Einheit die erste Einheit nicht auf deren „Nordseite“ verlassen.
  • Als ein weiterer Aspekt kann auch berücksichtigt werden, dass einige Änderungen der Pin-Anordnungen sehr spät in einem Entwurfsverfahren erfolgen können. Daher muss ein Verfahren zum Verbinden von Einheiten auf einem neu entworfenen Chip möglicherweise sehr flexibel sein, aber gleichzeitig ein hohes Maß an Optimierung ermöglichen. In diesem Zusammenhang sollte beachtet werden, dass die Einheiten des Chips, der entworfen wird, aus mehreren Blöcken von Makros zusammengesetzt sind, zum Beispiel Regression Analysis and linear Models (RLMs), Registern, Caches usw., die zu den Einheiten vereinigt werden. Eine Mehrzahl von Einheiten kann als Kerne oder vollständige Halbleiterchips konstruiert werden. Um die Einheiten miteinander oder mit Eingabe/Ausgabe-Pins (I/O-Pins) zu verbinden, werden Einheits-Pins, die an der Grenze einer Einheit angeordnet sind, als Endpunkte für elektrische Verbindungen zu anderen Einheiten verwendet. In der Anfangsphase der Entwicklung können Einheits-Pins definiert und positioniert werden, aber nicht von Anfang an elektrische Verbindungen zu Einheiten aufweisen.
  • Die US-Patentveröffentlichung Nr. 2016/0232275 A1 offenbart ein „Verfahren, ein System und ein computerlesbares Medium ... welche effiziente Entwurfsverfahren für integrierte Schaltungen ermöglichen. Insbesondere werden Tools beschrieben, welche Entwerfern von integrierten Schaltungen ermöglichen, einen Entwurf einer integrierten Schaltung ohne Schaltlogik zu visualisieren und aus dieser Visualisierung Positionen logischer Verbindungen üblicher Knoten in dem Entwurf zu identifizieren.“
  • Ferner offenbart die US-Patentveröffentlichung Nr. 2006/0053396 A1 ein „Automatisierungssystem für elektronische Entwürfe“, welches für eine Optimierung von Register-Transfer-Level-Modellen (RTL-Modellen) von „elektronischen Entwürfen sorgt, um detaillierte Randbedingungen und Daten zu erzeugen, welche die Anforderungen für die Back-End-Abläufe, die zur Fabrikation des Entwurfs führen, genau definieren. Das System nimmt das RTL-Modell eines elektronischen Entwurfs und setzt es in eine effiziente übergeordnete hierarchische Darstellung der Hardware-Realisierung des Entwurfs um.“
  • Jedoch verbleibt aufgrund der Komplexität der Optimierung der Verdrahtung trotz der Lehren der US 2016/0232275 und der US 2006/0053396 das Problem der Positionierung von Einheits-Pins. Die Verdrahtung zwischen den Einheiten und der inneren Struktur der Einheiten sollte im besten Fall berücksichtigt werden, wenn die Metalldrahtschichten optimiert werden. Entsprechend besteht ein Bedarf für einen Mechanismus zum optimalen Anordnen von Einheits-Pins während des Chipentwurfsverfahrens.
  • KU RZDARSTELLU NG
  • Ausführungsformen der vorliegenden Erfindung richten sich auf den Bedarf für einen Weg, Einheits-Pins während des Chipentwurfsverfahrens einer Halbleiterschaltung optimal anzuordnen. Eine Erscheinungsform der vorliegenden Offenbarung stellt ein Verfahren zum Entwerfen einer Halbleiterschaltung auf eine Weise bereit, wie die Einheits-Pins optimal angeordnet werden, indem die Verdrahtung zwischen den Einheiten und der inneren Struktur der Einheiten berücksichtigt wird, wenn die Metalldrahtschichten optimiert werden. Das Verfahren umfasst Empfangen von Pin-Positionsdaten, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb des Chipbereichs umfassen, der außerhalb der Einheit positioniert ist, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden. Das Verfahren umfasst ferner Bestimmen von Koordinaten eines Mittelpunkts der Einheit, Bestimmen einer Position einer Linie, die sich vom Mittelpunkt der Einheit durch die Chip-Pin-Position erstreckt, und Anordnen des Einheits-Pins an einem Schnittpunkt, wo eine Grenze der Einheit die Linie schneidet, die sich von dem Mittelpunkt der Einheit durch die Chip-Pin-Position erstreckt.
  • Eine weitere Erscheinungsform des Verfahrens zum Entwerfen der Halbleiterschaltung kann ferner Definieren der Linie, die sich vom Mittelpunkt der Einheit durch die Chip-Pin-Position erstreckt, durch eine Funktion und Variieren mindestens eines Parameters der Funktion umfassen, bis ein Überlappen der Anordnung des Einheits-Pins mit zuvor angeordneten Einheits-Pins vermieden wird. Dies verhindert die Anordnung mehrerer Einheits-Pins an derselben Stelle an der Grenze der Einheit.
  • Eine weitere Erscheinungsform des Verfahrens zum Entwerfen der Halbleiterschaltung kann ferner die Schritte des wiederholten Anordnens mehrerer Einheits-Pins umfassen, wobei eine Reihenfolge der Anordnung der Einheits-Pins auf Grundlage von Randbedingungsinformationen des Entwurfs priorisiert wird. In einigen Ausführungsformen umfassen die Randbedingungsinformationen des Entwurfs eine Gruppe von Metallschichtpositionen innerhalb der Halbleiterschaltung, die zum Anordnen des Einheits-Pins darauf verwendbar sind. Gegebenenfalls kann die Verwendbarkeit der Gruppe von Metallschichtpositionen zum Anordnen des Einheits-Pins darauf auf einer Länge einer Linie beruhen, die sich zwischen dem Chip-Pin und dem Einheits-Pin erstreckt, und wobei das Verfahren Sortieren der Einheits-Pins gemäß der Länge der Linien umfasst, die sich zwischen dem Chip-Pin und dem jeweiligen Einheits-Pin erstrecken, der angeordnet wird.
  • Gemäß einer weiteren Erscheinungsform der vorliegenden Offenbarung kann ein System zum Entwerfen eines Halbleiterschaltungs-Entwurfs bereitgestellt werden. Das System kann einen Empfänger aufweisen, der dafür konfiguriert ist, Pin-Positionsdaten zu empfangen, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb eines Chipbereichs umfassen können, der sich außerhalb der Einheit befindet, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden. Außerdem kann das System ein Bestimmungsmodul, welches dafür konfiguriert ist, Koordinaten eines Mittelpunkts der Einheit zu bestimmen, ein zweites Bestimmungsmodul, welches dafür konfiguriert ist, eine Position einer Linie zu bestimmen, die sich von dem Mittelpunkt der Einheit durch die Chip-Pin-Position erstreckt, und ein Positionierungsmodul aufweisen, welches dafür konfiguriert ist, den Einheits-Pin an einem Schnittpunkt anzuordnen, wo eine Grenze der Einheit die Linie schneidet, die sich vom Mittelpunkt der Einheit durch die Chip-Pin-Position erstreckt.
  • Ferner können Ausführungsformen die Form eines Computerprogrammprodukts zum Entwerfen einer Halbleiterschaltung annehmen, auf welches über ein computernutzbares oder computerlesbares Medium zugegriffen werden kann, welches Programmcode zur Verwendung durch einen Computer oder ein beliebiges Befehlsausführungssystem oder in Verbindung damit bereitstellt. Für die vorliegende Beschreibung kann ein computernutzbares oder computerlesbares Medium eine beliebige Vorrichtung sein, welche Mittel zum Speichern, Übermitteln, Weiterleiten oder Transportieren des Programms zur Verwendung durch das Befehlsausführungssystem, die Befehlsausführungsvorrichtung oder die Befehlsausführungseinheit oder in Verbindung damit enthalten kann.
  • Eine weitere Erscheinungsform der vorliegenden Offenbarung umfasst ein Computersystem, welches mindestens einen Prozessor, ein Halbleiter-Entwurfssystem, das mit dem mindestens einen Prozessor verbunden ist, wobei das Halbleiter-Entwurfssystem einen Empfänger, ein erstes Bestimmungsmodul, ein zweites Bestimmungsmodul und ein Positionierungsmodul umfasst, und ein computerlesbares Speichermedium umfasst, das mit dem mindestens einen Prozessor verbunden ist. Das computerlesbare Speichermedium des Computersystems enthält Programmanweisungen, welche ein durch einen Computer realisiertes Verfahren zur Ausführung bringen, wobei das durch einen Computer realisierte Verfahren umfasst: Empfangen von Pin-Positionsdaten von dem Empfänger durch den mindestens einen Prozessor, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb eines Chipbereichs umfassen, der außerhalb einer Einheit positioniert ist, für welche ein Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden; Empfangen von Koordinaten eines Mittelpunkts der Einheit, bestimmt durch ein Bestimmungsmodul, durch den mindestens einen Prozessor; Positionieren einer Linie, die sich von dem Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, durch den mindestens einen Prozessor; und Anweisen der Anordnung des Einheits-Pins auf einer Grenze der Einheit, durch den mindestens einen Prozessor, wo die Linie, die sich von dem Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, die Grenze der Einheit schneidet.
  • Weitere Erscheinungsformen der vorliegenden Offenbarung umfassen ein durch einen Computer realisiertes Verfahren, umfassend: Empfangen einer Chip-Pin-Koordinatendatei, welche x,y-Koordinaten einer Einheit und x,y-Koordinaten eines Chip-Pins umfasst, durch einen Prozessor; Einrichten eines Mittelpunkts der Einheit auf Grundlage der x,y-Koordinaten der Einheit durch den Prozessor; Ziehen einer Pin-Linie von dem Mittelpunkt der Einheit zu den x,y-Koordinaten des Chip-Pins durch den Prozessor; Identifizieren eines Schnittpunkts durch den Prozessor, wobei die Pin-Linie eine Grenze der Einheit schneidet, wenn die Pin-Linie von dem Mittelpunkt der Einheit zu den x,y-Koordinaten des Chip-Pins gezogen wird; und Bestätigen durch den Prozessor, dass an dem Schnittpunkt kein Pin positioniert ist, und nach der Bestätigung, dass an dem Schnittpunkt kein Pin positioniert ist, Anordnen eines Einheits-Pins an dem Schnittpunkt auf der Grenze der Einheit durch den Prozessor.
  • Figurenliste
  • Ausführungsformen der vorliegenden Erfindung werden in Bezug auf verschiedene Gegenstände beschrieben. Insbesondere werden einige Ausführungsformen in Bezug auf Ansprüche des Verfahrenstyps beschrieben, während andere Ausführungsformen in Bezug auf Vorrichtungen, Computerprogrammprodukte oder Ansprüche des Systemtyps beschrieben werden. Der Fachmann erkennt jedoch aus der obigen und der folgenden Beschreibung, dass, sofern nicht anders angegeben, zusätzlich zu jeder Kombination zwischen Merkmalen, die zu einem Gegenstandstyp gehören, auch jede Kombination von Merkmalen, die sich auf verschiedene Gegenstände beziehen, insbesondere zwischen Merkmalen der Ansprüche des Verfahrens-, System-, Computerprogrammprodukt- und Vorrichtungs-Typs, als in diesem Dokument offenbart anzusehen ist.
  • Die oben definierten Erscheinungsformen und weitere Erscheinungsformen der vorliegenden Erfindung werden aus den Ausführungsbeispielen ersichtlich, die hierin im Folgenden beschrieben werden, und werden in Bezug auf die Ausführungsbeispiele erläutert, jedoch ist die Erfindung nicht auf diese beschränkt.
  • Bevorzugte Ausführungsformen der Erfindung werden lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 1 zeigt einen Ablaufplan, welcher eine Ausführungsform eines Halbleiterschaltungs-Entwurfsverfahrens zum Anordnen eines Einheits-Pins auf einer Grenze einer Einheit einer Halbleiterschaltung beschreibt.
    • 2 zeigt ein Schaubild einer beispielhaften Ausführungsform einer Einheit, welches die Positionierung eines Einheits-Pins, der innerhalb einer Einheit positioniert wird, und eines Chip-Pins beschreibt.
    • 3 zeigt ein Schaubild einer anderen beispielhaften Ausführungsform, welches die Anordnung des Einheits-Pins und eines Chip-Pins beschreibt.
    • 4a zeigt ein Schaubild einer Ausführungsform, welches mehrere Einheiten einer Halbleiterschaltung darstellt, die dafür konfiguriert sind, auf einem Halbleiter-Die elektrisch verbunden zu werden.
    • 4b zeigt ein Schaubild einer alternativen Ausführungsform eines Halbleiter-Die, welches eine Mehrzahl von Einheiten darstellt, die dafür konfiguriert sind, auf dem Halbleiter-Die elektrisch verbunden zu werden.
    • 5a zeigt einen Ablaufplan, welcher eine Ausführungsform eines Verfahrens zum Anordnen von Einheits-Pins in einer Halbleiterschaltung beschreibt.
    • 5b zeigt einen Ablaufplan, welcher eine alternative Ausführungsform eines Verfahrens zum Anordnen von Einheits-Pins in einer Halbleiterschaltung beschreibt.
    • 6 zeigt einen Ablaufplan, welcher eine Ausführungsform eines Verfahrens zum Herstellen einer Halbleiterschaltung unter Verwendung einer Halbleiterschaltung darstellt, die gemäß dem Verfahren entworfen wird, das in 5a, 5b dargestellt ist, und/oder wie in der vorliegenden Anmeldung beschrieben.
    • 7 zeigt ein Blockschaubild einer Ausführungsform eines Systems zum Entwerfen einer Halbleiterschaltung.
    • 8 zeigt eine Ausführungsform eines Datenverarbeitungssystems, welches das System gemäß 7 aufweist.
  • DETAILLIERTE BESCHREIBUNG
  • Im Zusammenhang dieser Beschreibung können die folgenden Konventionen, Begriffe und/oder Ausdrücke verwendet werden:
  • Der Begriff „Einheits-Pin“ kann einen Verbindungspunkt einer funktionellen Einheit der Halbleiterschaltung (des Chips) bezeichnen, wobei der Einheits-Pin auf einer (typischerweise rechteckigen) Grenze der Einheit positioniert ist. Alle Einheits-Pins können kombiniert werden, um eine Schnittstelle einer Einheit zu dem Rest des Chips zu definieren. Eine Halbleiterschaltung kann typischerweise eine Mehrzahl von Einheiten aufweisen, welche selektiv miteinander verbunden sein können.
  • Der Begriff „Grenze“ kann einen Rand einer Einheit bezeichnen. Beispielsweise eine rechteckige oder andere Form, welche einen Umfang um eine Einheit herum bildet. In einigen Ausführungsformen kann die geometrische Form der Einheit konvex sein.
  • Der Begriff „Einheit“ kann eine funktionelle Gruppe von miteinander in Wechselwirkung stehenden Einheiten innerhalb einer Halbleiterschaltung oder eines Chips bezeichnen. Eine Einheit kann unter Verwendung von Metallschichten innerhalb des Chips verbunden werden und kann mit anderen Einheits-Pins anderer Einheiten verbunden werden, welche die Halbleiterschaltung bilden.
  • Der Begriff „Halbleiterschaltung“ kann eine untereinander verbundene Gruppe von Halbleitereinheiten bezeichnen, die auf einem Trägermaterial integriert sind. Beispielsweise kann ein Trägermaterial ein massives Halbleitermaterial, ein Substrat und/oder einen Isolator umfassen. Die Halbleiterschaltung kann eine Mehrzahl von Halbleitereinheiten aufweisen und die Halbleitereinheiten unter Verwendung einer Mehrzahl von Metallverdrahtungsschichten verbinden. In einigen Fällen können bis zu Millionen von Halbleitereinheiten gleichzeitig verbunden sein. In einigen Ausführungsformen können Teilgruppen der Halbleitereinheiten zu Einheiten innerhalb der vollständigen Einheit kombiniert werden.
  • Der Begriff „Chip-Pin“ kann einen Verbindungspunkt innerhalb einer Halbleitereinheit einer größeren integrierten Halbleiterschaltung bezeichnen. In einigen Fällen kann nur die Position des Chip-Pins bekannt sein (auf Grundlage des Need-to-know-Prinzips). Zum Einrichten der Verbindungen innerhalb der Halbleitereinheit muss es nicht erforderlich sein zu wissen, zu welcher Einheit der Chip-Pin gehört. In einigen Ausführungsformen kann der Chip-Pin auch mit einem I/O-Pin verbunden sein. Der „I/O“-Pin kann sich auf einen Verbinder beziehen, der auf der Außenfläche des Chips positioniert ist. In Fällen, wenn die Chip-Position möglicherweise noch nicht bekannt ist, können stattdessen die Koordinaten der betreffenden Einheit verwendet werden.
  • Der Begriff „Mittelpunkt“ kann einen geometrischen Gleichgewichtspunkt bezeichnen. In einigen Ausführungsformen kann der Mittelpunkt ein Mittelpunkt einer Einheit sein. In Ausführungsformen, wobei die Grenze der Einheit ein Rechteck ist, kann der Mittelpunkt der Schnittpunkt der beiden Diagonalen sein, die sich von den Ecken (d.h. dem Eckpunkt) am Rand des Rechtecks aus erstrecken (wie zum Beispiel in 2 dargestellt).
  • Der Begriff „Linie“ kann eine geometrische Linie bezeichnen, welche sich unendlich in beide Richtungen erstreckt oder welche sich in einigen Fällen zwischen zwei Punkten auf einer geometrischen Ebene erstreckt und/oder welche sich zwischen Ebenen erstreckt. Zum Beispiel eine Linie, welche sich vom Mittelpunkt einer Einheit bis zu dem Chip-Pin erstreckt. Die Linie kann eine gerade Linie oder in einigen Fällen eine gekrümmte Linie sein.
  • Der Begriff „Schnittpunkt“ kann sich auf eine Position eines Schnitts beziehen, wo eine Linie, die sich von der Mitte der Einheit durch die Chip-Pin-Position erstreckt, eine Einheitsgrenze kreuzt. Mit anderen Worten ein Kreuzungspunkt, wobei die Linie die Einheitsgrenze kreuzt.
  • Die offenbarten durch einen Computer realisierten Halbleiterschaltungs-Entwurfsverfahren, Systeme und Computerprogrammprodukte zum Positionieren von Einheits-Pins auf einer Halbleiterschaltung können viele Vorteile, technische Effekte, Beiträge und/oder Verbesserungen bieten:
  • Die offenbarten Ausführungsformen, umfassend Verfahren, Computerprogrammprodukte und Systeme, können für eine optimierte Anordnung von Einheits-Pins in verschiedenen Phasen des Chipentwurfs sorgen. Durch Integrieren einer Ansicht der Einheit selbst und der Richtung, in welcher ein Chip-Pin innerhalb des Entwurfs positioniert ist, machen es die offenbarten Ausführungsformen möglich, die am besten geeignete Position des Einheits-Pins auf der Einheitsgrenze zu bestimmen.
  • Die vorgeschlagenen Lösungen, die durch die Ausführungsformen hierin beschrieben werden, sind nicht nur hilfreich und nützlich am Beginn des Entwurfsverfahrens, sondern auch in späteren Phasen des Entwurfsverfahrens. Auch in solchen Fällen, wobei weitere Pins angeordnet werden können, um weitere Verbindungen zwischen Einheiten einzurichten, die möglicherweise in einen fast fertigen Chipentwurf integriert werden müssen. Beispielsweise kann in einer Einheit, die eine rechteckige Grenze aufweist, die Halbleiterschaltung entworfen werden, indem eine Einheits-Pin-Position ausgewählt wird, die entlang der Linie angeordnet ist, die sich von der Mitte der Einheit durch den Chip-Pin erstreckt, um eine elektrische Verbindung einzurichten. In einigen Fällen können jedoch zuvor andere Pins an der vorgeschlagenen Stelle für den Einheits-Pin oder in Bereichen angeordnet worden sein, die blockiert sind und die gewünschte Einheits-Pin-Position nicht aufnehmen können. In Ausführungsformen der vorliegenden Offenbarung kann erkannt werden, wenn der Bereich an dem Schnittpunkt von einem anderen Pin blockiert ist. Zum Beispiel aufgrund der Gegenwart eines anderen Einheits-Pins, eines Stromversorgungs-Pins oder von Takt-Pins. Ausführungsformen der vorliegenden Offenbarung können dazu beitragen, eine nächstgelegene freie Stelle für einen Einheits-Pin zu finden oder eine höhere Metallschicht für eine freie Stelle zum Anordnen des Einheits-Pins zu suchen.
  • In späteren Phasen des Chipentwurfs können die Chipentwickler eine detaillierte Zeiteinteilungsbeschreibung der Anschlussstellen und Schaltungen nutzen. Gemäß diesen Phasen des Chipentwurfs unterstützen Ausführungsformen der vorliegenden Offenbarung ein Anordnen des Einheits-Pins derart, dass diese Zeiteinteilungsanforderungen reflektiert werden. Zum Beispiel durch Anordnen eines Einheits-Pins auf einer Metallschicht, welche diese Zeiteinteilungsanforderungen unterstützen kann. Für wichtige Verbindungen können höhere, teurere Metallschichten verwendet werden, welche schnellere Verbindungen und Verbindungen über längere Strecken ermöglichen können.
  • Somit können die hierin beschriebenen offenbarten Ausführungsformen eine sehr flexible Lösung für eine optimierte Anordnung neuer Einheits-Pins und ein Umpositionieren vorher vorhandener Einheits-Pins während späterer Phasen des Halbleiter-Entwurfsverfahrens ermöglichen.
  • Im Folgenden werden Ausführungsformen beschrieben, welche auf das Verfahren sowie auf das zugehörige System und Computerprogrammprodukte anwendbar sind:
  • In einigen Ausführungsformen kann der Mittelpunkt der Einheit einer geometrischen Mitte oder einem Schwerpunkt eines Bereichs der Einheit entsprechen. Die geometrische Mitte oder der Schwerpunkt der Einheit kann eine praktische Wahl sein, da die Mitte einfach bestimmt werden kann, insbesondere wenn die Form der Einheit eine einfache geometrische Form ist. Zum Beispiel ein Rechteck oder ein Dreieck, da eine mathematische Mitte bestimmbar sein kann. Dies kann auch der Fall für konvex geformte Einheitsentwürfe sein.
  • Gemäß einigen Ausführungsformen kann ein Mittelpunkt einer anderen Einheit als die Chip-Pin-Position verwendet werden. Dies kann besonders nützlich sein, wenn sich die andere Einheit nicht genau neben oder in Nachbarschaft der Einheit befindet, für welche der Einheits-Pin angeordnet wird. Gegebenenfalls kann der Pin, zu dem die Chip-Pin-Position gehört, auch ein Eingabe/Ausgabe-Pin sein, d.h. eine Verbindung zur Außenseite der integrierten Halbleitereinheit. Grundsätzlich kann jede Position, die durch die Netzliste der integrierten Halbleitereinheit beschreibbar sein kann, als Chip-Pin-Position verwendet werden.
  • Gemäß einer beispielhaften Ausführungsform des Verfahrens kann die Einheit eine konvexe Geometrie aufweisen und insbesondere kann die Geometrie eine rechteckige Form aufweisen. Es können jedoch auch andere Formen möglich sein. Beispielsweise eine L-Form oder eine U-Form. In solchen Fällen mit alternativen Formen können spezielle Definitionen und Bestimmungsverfahren für die Mitte oder den Mittelpunkt der Einheit verwendet werden, um sicherzustellen, dass der innere Verbindungspunkt, mit welchem die Einheits-Pins verbunden sein sollen, innerhalb der Grenzen der Einheit liegt. Eine Betrachtung der Einheitsform kann berücksichtigt werden, da im Allgemeinen eine konkave Form den Schwerpunkt (welcher auch als Mitte der Einheitsform verwendet werden kann) außerhalb der Grenze der Einheit haben kann.
  • Gemäß einigen Ausführungsformen kann die Linie, die sich vom Mittelpunkt einer Einheit zu dem (oder durch den) Chip-Pin erstreckt, eine gerade Linie sein, welche den Mittelpunkt der Einheit und den Chip-Pin kreuzt. Das Ziehen einer geraden Linie durch die Einheit kann der einfachste Weg sein, um den Schnittpunkt der Linie mit dem Rand oder der Grenze der Einheit zu bestimmen. Zum Beispiel, wo sich die Punkte von zwei Linien schneiden. Alternativ und gemäß anderen Ausführungsformen kann die Linie auch durch eine Funktion definiert sein, die durch die Ebene definiert ist, welche die Fläche des Halbleiters innerhalb einer x,y-Ebene bildet. Zum Beispiel kann die Funktion eine Polynomfunktion der Notation y = F(x) (oder eine beliebige andere wie sin, tan, ex, ...) sein. In hierin beschriebenen Ausführungsformen kann mindestens ein Parameter der Funktion variiert werden, bis ein Überlappen des anzuordnenden Einheits-Pins mit zuvor angeordneten Einheits-Pins vermieden wird. So wird verhindert, dass neue Einheits-Pins und vorhandene Einheits-Pins an derselben Stelle angeordnet werden.
  • In weiteren Ausführungsformen kann die Einheitsgrenze theoretisch verfügbare Positionen entlang der Einheitsgrenze aufweisen, welche einen vorab definierten regelmäßigen Gitterabstand zueinander aufweisen können, so dass von den theoretisch verfügbaren Positionen die nächstgelegene zu dem Schnittpunkt zwischen der Linie von der Mitte durch den Chip-Pin (beides auf Grundlage einer Linie einer Funktion) ausgewählt werden kann.
  • Hierin beschriebene Ausführungsformen können außerdem ein wiederholtes Anordnen mehrerer Einheits-Pins umfassen, wobei eine Reihenfolge des Anordnens der Einheits-Pins auch auf Entwurfs-Randbedingungsinformationen beruhen kann. Entwurfs-Randbedingungsinformationen, welche die Anordnung von Einheits-Pins beeinflussen, können zeitliche Randbedingungen, eine Position einer Voltage Drain Drain (Vdd) und/oder von Masse, blockierte Bereiche usw. umfassen. Unterschiedliche erforderliche Verbindungen zu Chip-Pins können unterschiedliche Randbedingungen aufweisen. So kann es nützlich sein, Einheits-Pins mit engeren zugrunde liegenden Randbedingungen oder mit Randbedingungen, die schwieriger einzuhalten sind, zuerst auf der Halbleiterschaltung anzuordnen. In einigen Ausführungsformen kann eine Randbedingung zum Anordnen des Einheits-Pins eine vorab ausgewählte Seite des Einheitsrands sein. Zum Beispiel kann ein Chipentwerfer aus einem übergeordneten Grund vorab eine spezielle Seite (oben, unten, linke Seite, rechte Seite) der Einheit auswählen oder bestimmen.
  • Gemäß einer anderen Ausführungsform können die Entwurfs-Randbedingungsinformationen auch eine Gruppe von Metallschichtpositionen innerhalb der Halbleiterschaltung umfassen, welche zum Anordnen des Einheits-Pins verwendbar sein können (z.B. in Kombination mit freien Stellen auf der Einheitsgrenze). Jedoch können die Randbedingungen komplex sein und können Mehrfachabhängigkeiten aufweisen. Vorab definierte Regeln können dazu beitragen, die besten Prioritäten und somit eine optimierte Reihenfolge für den iterativen Ansatz einzustellen. In einigen Ausführungsformen kann die Gruppe verwendbarer Metallschichtpositionen auf Grundlage einer Länge der Linie zwischen dem Chip-Pin, der auf dem Halbleiter angeordnet wird, und dem Einheits-Pin bestimmt werden. Außerdem kann das Verfahren Sortieren der Einheits-Pins, die auf dem Halbleiter angeordnet werden, gemäß der Länge der Linien zwischen dem Chip-Pin und dem entsprechenden Einheits-Pin umfassen. Überdies kann in einigen Ausführungsformen die Bestimmung der verwendbaren Metallschichtpositionen auf Grundlage der Länge als eine Randbedingung reflektiert werden und kann mit einer oder mehreren weiteren Randbedingungen kombiniert und zusammen mit diesen berücksichtigt werden, was durch die Randbedingungsinformationen beschrieben wird, wie oben detailliert erörtert.
  • 1 zeigt eine beispielhafte Ausführungsform eines Ablaufplans des Halbleiterschaltungs-Entwurfsverfahrens 100 zum Anordnen eines Einheits-Pins auf einer Grenze einer Einheit einer Halbleiterschaltung (d.h., des Chips, der durch das Verfahren entworfen wird). Während des Schritts 102 des Verfahrens 100 werden Pin-Positionsdaten empfangen. Die Pin-Positionsdaten können als Teil der Netzinformationen empfangen werden, welche auch als die „Netzliste“ bezeichnet werden. Die Pin-Positionsdaten können eine Beschreibung mindestens einer Chip-Pin-Position innerhalb des Chipbereichs aufweisen, der außerhalb der Grenzen der Einheit positioniert ist, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden. Beispiele für die Chip-Position, die durch die Positionsdaten beschrieben werden, können eine Beschreibung in Form von x-y-Koordinaten und eine Beschreibung in Form von relativen Positionen des Halbleiters umfassen (z.B. eine untere linke Ecke der Halbleiterschaltung). Die aktuelle Einheit und die andere Einheit können mit demselben Netzwerk verbundener Komponenten verbunden sein (bezeichnet als das „Netz“ oder die „Netze“). In einigen Fällen kann der Chip-Pin jedoch auch eine Stelle einer anderen Einheit repräsentieren oder der Chip-Pin kann auch ein I/O-Pin eines Chips sein (d.h. ein Pin, welcher mit der Außenseite des Chips verbindet).
  • Im Schritt 104 des Verfahrens 100 werden Koordinaten eines Mittelpunkts der Einheit bestimmt und im Schritt 106 wird eine Position einer Linie bestimmt, welche sich vom Mittelpunkt der Einheit erstreckt oder diesen kreuzt und sich zu der (oder durch die) Chip-Pin-Position erstreckt. Beispielsweise kann die Linie, die im Schritt 106 bestimmt wird, in einigen Fällen eine gerade Linie sein oder eine polynomische Linie, welche ein oder mehrere gekrümmte Merkmale aufweisen kann. Im Schritt 108 kann der Einheits-Pin in dem Verfahren 100 auf einem Schnittpunkt einer Grenze der Einheit mit der Linie angeordnet werden (d.h., wo die Linie aus dem Schritt 106 die Grenze der Einheit schneidet). Beispielsweise kann der Schritt des Anordnens des Einheits-Pins auf dem Schnittpunkt der Grenze der Einheit mit der Linie durch Auswählen einer Position des neuen Einheits-Pins aus der Netzliste durchgeführt werden. Dieser Prozess des Verfahrens 100 kann überall während des Chip-Entwurfs angewendet werden ist nicht auf eine spezielle Phase des Entwurfsverfahrens des Chips begrenzt. Es sei angemerkt, dass in den beispielhaften Ausführungsformen die Einheits-Pin-Position zwischen der Mitte der Einheit und dem Chip-Pin angeordnet sein kann.
  • 2 zeigt ein Schaubild 200 einer beispielhaften Einheit 202. Wie dargestellt, zeigt das Schaubild 200 einen Pin 212 innerhalb der Einheit 202 und einen Chip-Pin 218 und/oder alternativ einen Chip-Pin 220. Es kann angenommen werden, dass ein Pin 212 der Untereinheit (angezeigt als ein Rechteck innerhalb der Einheit 202) der Einheit 202 mit dem Chip-Pin 218 oder 220 verbunden werden kann. Somit lautet die Frage, wo soll der Einheits-Pin 214, 216, 217 auf der Grenze 204 der Einheit 202 angeordnet werden? Dabei kann es am einfachsten erscheinen, den Einheits-Pin 214 an der Position anzuordnen, die auf der oberen Grenze der Grenze 204 der Einheit 202 angezeigt ist, oder alternativ den Einheits-Pin 214 auf der linken Seite (nicht dargestellt) der Grenze 204 anzuordnen, da dies als der kürzeste Weg von dem Pin 212 zu der Grenze 204 angesehen werden kann. Eine solche Konstruktion der Einheit 202 wäre jedoch von Nachteil, da die Verdrahtung von dem Einheits-Pin 214 entweder zu dem Chip-Pin 218 oder zu dem Chip-Pin 220 möglicherweise um den Rand der Einheit 202 herumgeführt werden muss.
  • Somit könnte gemäß den vorgeschlagenen Ausführungsformen der Einheits-Pin 216 oder der Einheits-Pin 217 auf dem „südlichen“ Rand der Einheitsgrenze 204 angeordnet sein, in Abhängigkeit davon, ob eine Verbindung mit dem Chip-Pin 218 oder mit dem Chip-Pin 220 eingerichtet werden soll. Somit wird, wenn eine Verbindung zu dem Chip-Pin 218 hergestellt wird, der bereits positionierte Einheits-Pin 214 neu positioniert zu dem Einheits-Pin 216, wie durch die gestrichelte Linie 214a angezeigt. Man findet die Position des Einheits-Pins 216, wie dargestellt, indem man eine Linie 208 vom Mittelpunkt 206 der Einheit 202 zu dem Chip-Pin 218 konstruiert (und in ähnlicher Weise zu dem Chip-Pin 220 durch die Linie 210 in dem Fall, wobei eine Verbindung zu dem Chip-Pin 220 hergestellt wird). Der Einheits-Pin 216 wird auf dem Schnittpunkt (d.h. dem Kreuzungspunkt) entlang der Grenze 204 (der Seite der Einheit zwischen ihrem Mittelpunkt 206 und dem Chip-Pin 218) angeordnet, wobei der Rand der Grenze 204 so gewählt wird, dass er von einer Linie geschnitten wird, die vom Mittelpunkt 206 der Einheit 202 zu dem Chip-Pin 218 gezeichnet wird.
  • 3 zeigt ein Schaubild 300 einer anderen beispielhaften Anordnung des Einheits-Pins 216 und eines Chip-Pins 218. Eine Bestimmung des Schnittpunkts zwischen der Linie 208 und der Grenze 204 kann durch Bestimmen der Steigung der Linie 208 zwischen dem Mittelpunkt 206 der Einheit 202 und dem Chip-Pin 218 vorgenommen werden. Das Verhältnis der x-Seiten (Δxk/ Δxs) ist gleich dem Verhältnis der y-Seiten (Δyk/ Δys) = k. Somit kann der Schnittpunkt (oder Kreuzungspunkt) auf einer vertikalen Grenze 204 der Einheit 202 bestimmt werden durch xKreuz = xEinheitslinie, wenn xPinxA ≤ xSchwerpunkt;
    deswegen gilt yKreuz = k * Δys+ ySchwerpunkt. Alternativ gilt dann, wenn der Schnittpunkt auf einer horizontalen Grenze 204 der Einheit 202 liegt, yKreuz = yEinheitsrand und xKreuz = k * Δxs+ ySchwerpunkt.
  • Die Informationen, mit welchen der Schnittpunkt auf der Grenze 204 auf Grundlage der Position des Mittelpunkts 206 und des Chip-Pins 218, 220 bestimmt wird, können in einer Chip-Pin-Koordinatendatei zusammengefasst werden. Durch den ChipEntwurf wird bestimmt, wo die Netze (d.h. in der Netzliste) anfänglich mit der Einheit 202 verbunden sind (d.h. wo die jeweiligen Quellen positioniert sind) oder wo sie enden (d.h. wo die Senke positioniert ist). Dies gilt für Netze zwischen Einheiten 202, aber auch zwischen Einheiten 202 und den Chip-Verbindern, zum Beispiel I/O-Pins.
  • Ein Beispiel für das Format einer solchen zugehörigen Chip-Pin-Koordinatendatei kann sein:
    • Netzbezeichnung, xy-Koordinate-Einheit (Kern), xy-Pin-Koordinate innerhalb der Einheit (Kern).
  • In anderen Fällen kann die Chip-Pin-Koordinatendatei durch das folgende Format verwaltet werden:
    • Netzbezeichnung, xy-Koordinate-Chip, xy-Pin-Koordinate innerhalb des Chips,
    • Netzbezeichnung, xy-Koordinate-Puffer (Erfinder), xy-Pin-Koordinate innerhalb des Puffers (oder Wandlers).
  • Wenn die genaue Pin-Position auf dem Chip unbekannt ist, kann in der Chip-Pin-Koordinatendatei nur die xy-Koordinate der Einheit verfügbar sein. Der Algorithmus verwendet diese Informationen entsprechend.
  • Wie oben erwähnt, können außer einer geraden Linie andere Verbindungslinien zwischen dem Schwerpunkt der Einheit 202 und dem externen Pin, d.h. dem Chip-Pin 218, 220, verwendet werden. Beispielsweise können eine Polynomfunktion, umfassend eine quadratische Funktion oder höherdimensionale Funktionen, oder Typen von Linien verwendet werden, welche eine oder mehrere Flanken oder Kurven aufweisen. Diese Funktionen können die Mitte der Einheit 202 und die Chip-Pin-Position 218, 220 kreuzen. Außerdem kann der Unterschied zwischen der Einheits-Pin-Position 214, 216, 217, bestimmt durch das hierin beschriebene vorgeschlagene Verfahren und andere beispielhafte Ausführungsformen zum Bestimmen des Schnittpunkts (zum Beispiel durch die lineare Funktion) minimal sein. Ferner können die Halbleiterentwürfe berücksichtigen, dass es kein Überlappen mit Versorgungsleitungen oder anderen Signal-Pin-Linien gibt. Somit kann die bestimmte Einheits-Pin-Position 214, 216, 217 an eine freie Pin-Position verschoben werden, zum Beispiel gemäß einem vorab definierten Abstand von Einheits-Pins oder einem vorab definierten Gitter von Einheits-Pins, um Konflikte mit anderen Rahmenbedingungen und Pin-Anordnungen zu vermeiden.
  • 4a, 4b zeigen Schaubilder 400, 401, welche eine Mehrzahl von Einheiten A bis G aufweisen, die dafür konfiguriert sind, elektrisch auf einem Halbleiter-Die 420 verbunden zu werden. 4a zeigt die Einheiten A, B, C, D, E, F und G für ein besseres Verständnis der Anordnung der Einheits-Pins gemäß den hierin beschriebenen vorgeschlagenen Ausführungsformen. Das Seitenverhältnis der Seiten jeder Einheit A bis G kann die Länge der Diagonalen 407, 409, 410, 412 bestimmen, die durch den Mittelpunkt der Einheit A bis G führen. Diese separaten Chipbereiche, die aus den Diagonalen 407, 409, 410, 412 resultieren, die durch den Mittelpunkt der Einheit A bis G führen, bilden vier Teilbereiche 402, 404, 406, 408, die hierin als „Diagonalen“ (Dreiecke oder andere resultierende Formen, welche an der Grenze des Chip-Die abgeschnitten sein können) bezeichnet werden. Dies erfolgt auf eine Weise, dass sich jede Einheitsseite auf einen größeren und einen kleineren Bereich bezieht. Es kann angenommen werden, dass während des Entwurfs einer bestimmten Einheit A, B, C, D, E, F oder G alle Netze einer Einheit A bis G mit Chip-Pins verbunden werden, welche in einem dieser vier Teilbereiche 402, 404, 406, 408 positioniert sein können. Die Positionen der Chip-Pins bestimmen, auf welcher Seite der Einheit A bis G (d.h. auf welchem Rand des Einheitsrands) der Einheits-Pin zu positionieren ist.
  • Bei Anwendung des Konzepts der vier Diagonalen wird bestimmt, wie viele Einheits-Pins je Einheitsseite positioniert werden können. Die Anzahl dieser Pins entspricht der Anzahl an Chip-Pins innerhalb dieses Bereichs. Diese Funktion kann jedoch als optional angesehen werden, da sie nicht immer erforderlich ist, um zu bestimmen, in welchem der Diagonalenbereiche der Chip-Pin positioniert wird, da die Linie (siehe oben) die richtige Seite der Einheit für die Anordnung der Einheits-Pins bestimmt. Wenn statt der endlosen Linie eine Strecke von der Mitte der Einheit bis zu dem Einheits-Pin gezogen wird, kann die richtige Grenzseite des Rands der Einheit automatisch bestimmt werden.
  • In 4b ist ein Beispiel dargestellt, welches das Diagonalenkonzept zeigt. In diesem Fall wird die Einheit F mit den Chip-Pins verbunden. Zum Beispiel, wenn die untere Seite der Einheit F den Bereich zwischen den Diagonalen 410 und 412 bestimmt und bestimmt, welche Einheits-Pins auf der unteren Grenzlinie der Einheit F positioniert werden sollten. In ähnlicher Weise können in 4a für Chip-Pins, die innerhalb der Diagonalen positioniert sind, die den Bereich 404 aufweist, der zwischen den Diagonalen 407 und 409 gebildet wird, ihr entsprechender Einheits-Pin auf der Grenzlinie positioniert sein, die entlang der unteren Seite der Einheit B verläuft. Für Chip-Pins, die innerhalb des Bereichs 406 liegen, wie durch die Diagonalen 407, 409 gebildet, können ihre Einheits-Pins entlang den rechten Randlinien der Einheit B positioniert sein.
  • 5a zeigt einen Ablaufplan 500, welcher eine Ausführungsform eines Verfahrens zum Anordnen von Einheits-Pins in einem Halbleiter zeigt. Eine Liste 502, welche Chip-Pin-Positionen, eine Netzbezeichnung, eine Einheitenkennung und gegebenenfalls ein oder mehrere weitere Details aufweist, wird verwendet und gelesen, um das Anordnungsverfahren zu beginnen 504. Im Schritt 506 wird der Mittelpunkt der Einheit bestimmt. Im Schritt 508 beginnt das Verfahren mit dem ersten Einheits-Pin. Im Schritt 510 wird eine Bestimmung der Position der Pin-Linie (d.h. der Linie 208, wie in 2 dargestellt) zwischen dem Mittelpunkt der Einheit und der Chip-Pin-Position vorgenommen. Im Schritt 512 wird die Bestimmung des Schnittpunkts (d.h., wie durch die Einheit 216, 217 in 2 dargestellt) zwischen der Pin-Linie und der Grenze der Einheit durchgeführt. Im Schritt 514 wird der Einheits-Pin auf dem bestimmten Schnittpunkt positioniert oder der Einheits-Pin wird auf die Position des Schnittpunkts neu positioniert.
  • Während des Schritts 516 wird eine Bestimmung durchgeführt, ob alle Einheits-Pins positioniert sind. Wenn nicht alle Einheits-Pins positioniert sind, wird das Verfahren zum Schritt 508 zurückgeführt und beginnt mit dem nächsten noch nicht positionierten Einheits-Pin. Wenn hingegen im Schritt 516 die Bestimmung vorgenommen wird, dass alle Einheits-Pins positioniert worden sind, geht das Verfahren zum Schritt 518 über und endet. In einigen Ausführungsformen kann nach dem Abschluss des Verfahrens zum Entwerfen einer Halbleiterschaltung im Schritt 518 der Entwurf der Halbleiterschaltung ausgegeben und/oder als physische Daten (d.h. Halbleiter-Entwurfsdaten) gespeichert werden. Ausführungsformen der Halbleiter-Entwurfsdaten, welche die Halbleiterschaltung beschreiben, können bei der Herstellung der Halbleiterschaltung gemäß dem Entwurf, der durch die Halbleiter-Entwurfsdaten beschrieben wird, auf einem physischen Chip verwendet werden. Zum Beispiel gemäß dem Herstellungsverfahren, das durch den nachstehenden Ablaufplan 600 beschrieben wird.
  • 5b zeigt einen Ablaufplan 520, welcher eine alternative Ausführungsform des Verfahrens zum Entwerfen eines Halbleiters zeigt. In der alternativen Ausführungsform kann bei dem Verfahren ferner die richtige Metallschicht des Halbleiters berücksichtigt werden. Dies liegt daran, dass Pins nur auf Metallschichten angeordnet werden können, welche für die entsprechende Einheit verfügbar sind. Im Prinzip wird die Metallschicht in Abhängigkeit von der Länge des Abstands von Pin zu Pin gemäß der Pin-Linie (der Linie zwischen der Mitte der Einheit und dem Chip-Pin) ausgewählt. Dabei sollte bedacht werden, dass für eine Einheit eine begrenzte vorab definierte Anzahl an Metallschichten verfügbar sein kann, von denen nur wenige für Einheits-Pins verwendet werden können (typischerweise die oberen vier von acht Schichten). Aus diesem Grund können die Pin-Linien Buckets zugewiesen werden, welche sich auf die Anzahl verwendbarer Metallschichten des Halbleiters beziehen. Dann können die Buckets gemäß der Länge nach Gruppen sortiert werden. Das Sortieren kann auf viele Weisen erfolgen, z.B. von oben nach unten oder von unten nach oben (d.h. nach zunehmender oder abnehmender Länge).
  • Ausführungsformen des Verfahrens, das durch 5b beschrieben wird, können beim Schritt 522 beginnen, wobei eine Liste Chip-Pin-Positionen, mindestens eine Netzbezeichnung, verfügbare Positionen für Einheits-Pins, erforderliche Einheits-Pins, eine oder mehrere Randbedingungen (zum Beispiel Netzkosten, welche die Randbedingungen reflektieren) und gegebenenfalls eine oder mehrere weitere Variablen aufweist. Das Verfahren beginnt beim Schritt 524 und im Schritt 526 wird eine Bestimmung des Mittelpunkts der Einheit vorgenommen.
  • Im Schritt 528 werden alle der Pin-Linien bestimmt und gemäß Buckets auf Längenbasis, wo die Pin-Linie zugewiesen ist, zugewiesen. In einigen Ausführungsformen können im Schritt 530 weitere Eingaben bereitgestellt werden, demgemäß, welche Buckets speziellen Pin-Linien zugewiesen sind, und gemäß der entsprechenden ausgewählten Metallschicht. Im Schritt 532 werden alle der Buckets, entweder von oben nach unten oder von unten nach oben, gemäß ihrer Länge sortiert. Im Schritt 534 wird ein erster Bucket ausgewählt und mit dem ersten Bucket beginnt der erste Durchlauf.
  • Im Schritt 536 wird die erste (oder nächste) Pin-Linie ausgewählt. Es wird ein Schnittpunkt bestimmt und der Einheits-Pin wird auf den neu bestimmten Schnittpunkt geschoben. Im Schritt 538 wird eine Bestimmung vorgenommen, ob für den im Schritt 534 ausgewählten Bucket alle Pin-Linien angesteuert worden sind. Wenn nicht alle der Pin-Linien angesteuert worden sind, kehrt das Verfahren zum Schritt 536 zurück, wo mit der nächsten Pin-Linie fortgefahren wird, und es wird der nächste Schnittpunkt zum Anordnen des Einheits-Pins dargestellt. Wenn hingegen im Schritt 538 bestimmt wird, dass alle Pin-Linien für den ausgewählten Bucket abgeschlossen worden sind, kann das Verfahren zum Schritt 540 übergehen. Im Schritt 540 wird weiter bestimmt, ob alle Buckets angesteuert worden sind. Wenn nicht alle der Buckets für die Einheit angesteuert worden sind, kehrt das Verfahren zum Schritt 534 zurück und es wird dem nächsten Bucket fortgefahren, der der nächsten verwendbaren Metallschicht des Halbleiters zugewiesen ist. In ähnlicher Weise geht das Verfahren, wenn im Schritt 540 bestimmt wird, dass alle Buckets abgeschlossen worden sind, zum Schritt 542 über und endet. In einigen Ausführungsformen kann nach Abschluss des Verfahrens zum Entwerfen einer Halbleiterschaltung im Schritt 542 der Entwurf der Halbleiterschaltung als physische Daten ausgegeben und/oder gespeichert werden. Ausführungsformen der Halbleiter-Entwurfsdaten, welche die Halbleiterschaltung beschreiben, können bei der Herstellung der Halbleiterschaltung gemäß dem Entwurf, der durch die Halbleiter-Entwurfsdaten beschrieben wird, auf einem physischen Chip verwendet werden. Zum Beispiel gemäß dem Herstellungsverfahren, das durch den nachstehenden Ablaufplan 600 beschrieben wird.
  • 6 veranschaulicht einen Ablaufplan 600, welcher ein Verfahren zum Herstellen einer Halbleiterschaltung unter Verwendung physischer Entwurfsdaten der Halbleiterschaltung zeigt, die durch den einen oder die mehreren Verfahrensschritte, die durch die Ablaufpläne 500, 520 beschrieben werden, und/oder die hierin detailliert beschriebenen Ausführungsformen entworfen wird. Ausführungsformen des Verfahrens, das durch den Ablaufplan 600 dargestellt wird, können in einigen Fällen eine Fortsetzung der Halbleiterschaltungs-Entwurfsschritte sein, die durch die Ausführungsformen des Ablaufplans 500 oder des Ablaufplans 520 beschrieben werden. Beispielsweise in Situationen, bei denen eine nahtlose Integration zwischen Halbleiterschaltungs-Entwurf und Herstellung der Halbleiterschaltung gemäß den Halbleiter-Entwurfsdaten vorliegen kann, die durch das Verfahren zum Entwerfen von Halbleiterschaltungen, wie hierin beschrieben, ausgegeben werden. In alternativen Fällen können die Halbleiter-Entwurfsphase und die Herstellungsphasen durch separate und/oder eigenständige Einheiten durchgeführt werden. Beispielsweise können Entwerfer und Hersteller unterschiedliche Personen, Geschäfte, Unternehmen, Firmen usw. sein. In Situationen, wenn der Halbleiterschaltungs-Entwerfer und der -Hersteller separate Einheiten sind, kann der Halbleiterentwerfer die Halbleiterschaltung gemäß einem oder mehreren Verfahrensschritten entwerfen, die durch die Ablaufpläne 500, 520 beschrieben werden, und/oder wie hierin beschrieben, und als Ausgabe des Verfahrens zum Entwerfen der Halbleiterschaltung Halbleiterschaltungs-Entwurfsdaten erzeugen, welche den Halbleiterentwurf beschreiben. Die Halbleiterschaltungs-Entwurfsdaten können einem Hersteller bereitgestellt werden. Auf Grundlage der Halbleiterschaltungs-Entwurfsdaten kann der Hersteller die Halbleiterschaltung auf einem physischen Chip gemäß dem bereitgestellten Halbleiterentwurf herstellen, wie durch einen oder mehrere Verfahrensschritte dargestellt, die im Ablaufplan 600 beschrieben werden.
  • Im Schritt 602 des Ablaufplans 600 werden Halbleiterschaltungs-Entwurfsdaten erhalten oder bereitgestellt, welche (zumindest teilweise) auf dem Entwurf (den Entwürfen) des Halbleiterentwurfs beruhen, der durch einen oder mehrere Schritte der Verfahren ausgegeben wird, die durch den Ablaufplan 500 und/oder den Ablaufplan 520 beschrieben werden. Ausführungsformen der Halbleiterschaltung können gemäß einem oder mehreren bekannten Verfahren, wie allgemein durch die Schritte des Ablaufplans 600 beschrieben, unter Verwendung der Halbleiterschaltungs-Entwurfsdaten hergestellt werden, die im Schritt 602 erhalten oder bereitgestellt werden. Im Allgemeinen kann ein Wafer mit mehreren Kopien des fertigen Halbleiterschaltungs-Entwurfs hergestellt und auf solche Weise geschnitten (d.h. vereinzelt) werden, dass jeder der Dies, die aus dem Wafer geschnitten werden, eine Kopie der Halbleiterschaltung aufweist. Im Schritt 604 kann das Verfahren zum Herstellen der Halbleiterschaltung Herstellen von Masken für eine Lithographie auf Grundlage des finalisierten physischen Layouts der Halbleiterschaltung umfassen. Im Schritt 606 wird der Wafer unter Verwendung der im Schritt 604 erzeugten Masken hergestellt, um eine Photolithographie und ein Ätzen der Halbleiterschaltung auf jeden Die des Wafers vorzunehmen. Die einzelnen Dies des Wafers, welche die Kopien der hergestellten Halbleiterschaltung aufweisen, können zu den jeweiligen einzelnen Dies vereinzelt werden. Im Schritt 608 kann jeder einzelne Die, der die Halbleiterschaltung aufweist, geprüft und sortiert werden, um alle möglicherweise fehlerhaften Dies herauszufiltern.
  • Wie oben erwähnt, können bei der Bestimmung der richtigen Einheits-Pin-Position auf der Grenze der Einheit auch eine Reihe von Randbedingungen reflektiert werden. Neben anderen Netz-Randbedingungen können ein Abfallen und ein Ansteigen der Signale berücksichtigt werden. Wenn ein Zeitplanungsmodell verfügbar ist und auch Aussagen für jeden Pin, ist es möglich, Verdrahtungs-Codes und Metallschichten zu bestimmen und den Pins die richtige Metallschicht zuzuweisen. Oft besteht das Problem, dass der Benutzer, der den Halbleiter entwirft, möglicherweise nur die Zeitplanungsinformationen für eine gegebene Einheit oder einen gegebenen Kern kennt. Jedoch können Benutzer, wie oben beschrieben, die xy-Position der Einheit empfangen und für jedes verbundene Netz durch eine Pin-Chip-Koordinatendatei empfangen, wo diese Position gespeichert werden kann. Für ein Zeitplanungsmodell wird die Ankunftszeit tATFernesEnde in der Pin-Chip-Koordinatendatei gespeichert. Überdies kann in hierin beschriebenen Ausführungsformen mit der Ankunftszeit des zugehörigen nahen Endes, tATNahesEnde, eine verfügbare Netz-Zeitverzögerung bestimmt werden durch: ΔtNetz = tATFernesEnde- Ende tATNahesEnde.
  • Mit einem Zeitplanungsmodell und der Netzlänge bestimmt der Algorithmus für jedes Netz die beste Metallschicht zur Verwendung für den Leitweg und für die Pins. Mit der obigen gegebenen Zeitplanung werden Zeitplanungsdaten gemäß der verfügbaren Zeitverzögerung ΔtNetz für ein Netz bestimmt. In einigen Fällen sind dem Algorithmus Einzelheiten der verwendeten Technologie „bekannt“, wie die spezielle resistiv-kapazitive Verzögerung (RC-Verzögerung) jeder Metallschicht (welche typischerweise von der Größe des Metalldrahts in beiden Richtungen abhängt) und die ausgewählte Breite, um die RC-Verzögerung der Schicht und der Breite zu berechnen ΔtSchichtBreite. Mit beiden Informationskomponenten wählt der Algorithmus die beste Drahtrandbedingung für ein gegebenes Netz und auch für den Pin aus, um ΔtSchichtBreite > ΔtNetz zu erreichen.
  • In einigen Ausführungsformen kann die Logik, die beschreibt, welche Netzverbindungen und Schnittstellen auf dem Chip zwischen den verschiedenen Einheiten verfügbar sind, als Teil der Netzliste, der Pin-Chip-Koordinatendatei und/oder der Pin-Positionsdaten bereitgestellt werden. Einige hierin beschriebene Ausführungsformen können dafür geeignet sein, ein Logikmodell zu verwenden, um Informationen über die jeweilige(n) Netzquelle(n) oder Senke(n) des Halbleiters zu erhalten. Die Netzlisteninformationen können auch verwendet werden, um die Anordnungsinformationen für den Chip zu erhalten.
  • In einigen Ausführungsformen kann die gesamte Logik auf einem Schema des Chips angeordnet sein, so dass das Schema (oder der Grundriss, ft) die aktuelle Logikausgabe It repräsentiert. Bei der nominalen Logikentwicklung kann es sich um ein paralleles Entwicklungsverfahren handeln. Innerhalb der Logik des Chip-Schemas können die Schnittstellen zwischen den Einheiten auf dem Chip definiert sein, aber die Realisierung erfolgt manchmal nicht innerhalb desselben Zeitrahmens (zum Beispiel nicht mit demselben Zeitstempel). In einigen Fällen sind die Netze nicht vollständig verbunden. Jedoch definiert, obwohl die Netze des Halbleiters nicht vollständig verbunden sind, die Logik, die in dem Schema des Chips enthalten ist, eingehende und ausgehende Verbindungen, von welchen eine Schnittstelle eines Teilnetzes verbunden ist. In einigen anderen Fällen kann ein Chip eine neue Logik It+1 und einen Bodenplan ft aufweisen. Auf dieser Grundlage können neue Positionen für Einheits-Pins bestimmt werden. Das vorgeschlagene Konzept kann entscheidend daran mitwirken. Deswegen kann das vorgeschlagene Konzept nicht nur am Beginn eines Verdrahtungsverfahrens eines Halbleiters angewendet werden, sondern auch am Ende und/oder zwischen verschiedenen Entwicklungsschritten des Chips. In einigen Fällen können Einheits-Pins bereits zu einer Zeit auf der Einheit angeordnet sein, zu der einzelne logische Blöcke nicht vollständig definiert sind, was zu Schnittstellen zwischen den logischen Blöcken führt, die in einem zugrunde liegenden Modell noch nicht vollständig definiert sind. Somit kann eine logische Beschreibung der Schnittstellennetze ausreichend sein, um die hierin beschriebenen vorgeschlagenen Konzepte anzuwenden.
  • In den Zeichnungen zeigt 7 ein Blockschaubild einer Ausführungsform eines Halbleiterschaltungs-Entwurfssystems 700 zum Anordnen eines Einheits-Pins auf einer Grenze einer Einheit einer Halbleiterschaltung. Das System 700 weist einen Empfänger, insbesondere einen Empfänger 702, auf, der zum Empfangen von Pin-Positionsdaten geeignet ist. Ausführungsformen der Pin-Positionsdaten können eine Chip-Pin-Position eines Chip-Pins innerhalb des Chipbereichs aufweisen, der sich außerhalb der Einheit befindet, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden. Die Pin-Positionsdaten können durch eine zugrunde liegende Netzliste bereitgestellt werden, welche Positionen und Verbindungen zwischen ausgewählten aktiven und passiven elektronischen Komponenten des Chips beschreibt.
  • Ausführungsformen des Systems 700 können ferner ein erstes Bestimmungsmittel aufweisen, welches ein erstes Bestimmungsmodul 704 umfassen kann, das zum Bestimmen von Koordinaten eines Mittelpunkts der Einheit konfiguriert oder geeignet ist, und ein zweites Bestimmungsmodul 706 umfassen kann, das zum Bestimmen einer Linie geeignet oder konfiguriert ist, die den Mittelpunkt der Einheit und die Chip-Pin-Position kreuzt. Ausführungsformen des Systems 700 können ein Positionierungsmodul 708 umfassen, welches zum Anordnen des Einheits-Pins an dem Schnittpunkt an einer Grenze der Einheit und der Pin-Linie, die sich vom Mittelpunkt der Einheit bis zu dem Chip-Pin erstreckt, geeignet oder konfiguriert ist.
  • Es sei auch angemerkt, dass Einheiten und/oder Module selektiv miteinander verbunden werden können, um elektrische Signale auszutauschen, welche Daten tragen und zu und/oder von einer oder der anderen Einheit und/oder einem und/oder dem anderen Modul übertragen. Dies bezieht sich hauptsächlich auf den Empfänger 702, das erste Einheitsbestimmungsmodul 704, das zweite Bestimmungsmodul 706 und das Positionierungsmodul 708. Alternativ zu den selektiven Verbindungen zwischen den Modulen/Einheiten können sie auch mit einem internen Systembussystem 710 verbunden sein.
  • In Ausführungsformen des Halbleitersystems 700 können Halbleiterschaltungs-Entwurfsdaten ausgegeben und/oder gespeichert werden, welche das physische Layout der Halbleiterschaltung beschreiben. Die Halbleiterschaltungs-Entwurfsdaten können gemeinsam nutzbar und/oder zu einem oder mehreren Herstellern oder Herstellungssystemen für Halbleiterschaltungen übertragbar sein, die in der Lage sind, die durch die Entwurfsdaten beschriebene Halbleiterschaltung auf einem physischen Chip herzustellen. Beispielsweise Bereitstellen der Entwurfsdaten an ein Herstellungssystem, welches in der Lage ist, eine Herstellung gemäß einem oder mehreren Schritten durchzuführen, die durch das Herstellungsverfahren allgemein beschrieben werden, das in dem Ablaufplan 600 dargestellt ist, oder wie hierin beschrieben. In einigen Ausführungsformen kann das System 700 in der Lage sein, sowohl die Halbleiterschaltungs-Entwurfs- als auch die Halbleiterschaltungs-Herstellungsphase durchzuführen. In alternativen Ausführungsformen kann das System 700 Halbleiterschaltungs-Entwurfsfunktionen ausführen und ein oder mehrere separate Herstellungssysteme können die Halbleiterschaltungs-Entwürfe auf den physischen Chips (d.h. dem einzelnen Die) herstellen.
  • Ausführungsformen der Erfindung können zusammen mit praktisch jeder Art von Computer realisiert werden, ungeachtet dessen, ob die Plattform zum Speichern und/oder Ausführen von Programmcode geeignet ist. 8 zeigt als ein Beispiel ein Datenverarbeitungssystem 800, welches zum Ausführen von Programmcode geeignet ist, der auf das vorgeschlagene Verfahren bezogen ist. Das Datenverarbeitungssystem 800 ist nur ein Beispiel eines geeigneten Computersystems und soll keine Beschränkung hinsichtlich des Anwendungsumfangs oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung darstellen, ungeachtet dessen, ob das Computersystem 800 realisiert werden kann und/oder welche der oben ausgeführten Funktionalitäten ausführen kann.
  • In dem Computersystem 800 gibt es Komponenten, welche mit zahlreichen anderen universellen oder speziellen Datenverarbeitungs-Systemumgebungen oder Konfigurationen betreibbar sind. Beispiele gut bekannter Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem 800 geeignet sein können, umfassen, ohne darauf beschränkt zu sein, Personal-Computer-Systeme, Server-Computer-Systeme, Thin Clients, Thick Clients, Handeinheiten oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Mikroprozessorbasis, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computer-Systeme und verteilte Cloud-Computing-Umgebungen, welche beliebige der obigen Systeme oder Einheiten umfassen, und Ähnliches. Das Computersystem 800 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, wie Programmmodulen, die durch das Computersystem 800 ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. umfassen, welche bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen realisieren. Ausführungsformen des Computersystems 800 können in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten erfüllt werden, die durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien angeordnet sein, einschließlich Speichereinheiten.
  • Wie in der Figur dargestellt, ist das Computersystem 800 in der Form einer universellen Datenverarbeitungseinheit dargestellt. Die Komponenten des Computersystems 800 können, ohne darauf beschränkt zu sein, einen oder mehrere Prozessoren oder eine oder mehrere Verarbeitungseinheiten 802, einen Systemspeicher 804 und einen Bus 806 umfassen, welcher eine oder mehrere Systemkomponenten miteinander verbindet, z.B. den Systemspeicher 804 mit der Verarbeitungseinheit 802. Der Bus 806 repräsentiert eine oder mehrere von beliebigen von mehreren Arten von Busstrukturen, z.B. einen Speicherbus oder eine Speichersteuerung, einen Peripheriebus, einen beschleunigten Graphik-Port und einen Prozessor- oder lokalen Bus, bei denen eine Vielfalt von Busarchitekturen verwendet werden. Beispielhaft und ohne beschränkend zu sein, umfassen solche Architekturen einen Industry-Standard-Architecture-Bus (ISA-Bus), einen Micro-Channel-Architecture-Bus (MCA-Bus), einen Enhanced-ISA-Bus (EISA-Bus), einen lokalen Video-Electronics-Standards-Association-Bus (VESA-Bus) und einen Peripheral-Component-Interconnect-Bus (PCI-Bus). Das Computersystem 800 kann eine oder mehrere Arten von durch ein Computersystem lesbaren Medien umfassen. Solche Medien können beliebige verfügbare Medien sein, auf die durch das Computersystem 800 zugegriffen werden kann, und sie können flüchtige und/oder nicht-flüchtige Medien, entfernbare und/oder nicht-entfernbare Medien umfassen.
  • Der Systemspeicher 804 kann durch ein Computersystem lesbare Medien in der Form von flüchtigem Speicher umfassen, wie z.B. Direktzugriffsspeicher (RAM) 808 und/oder Cache-Speicher 810. Das Computersystem 800 kann ferner andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computersystem-Speichermedien umfassen. Lediglich beispielhaft kann ein Speichersystem 812 zum Auslesen aus einem nicht-entfernbaren, nicht-flüchtigen magnetischen Medium und Schreiben in ein nicht-entfernbares, nichtflüchtiges magnetisches Medium (nicht dargestellt und es kann typischerweise als ein „Festplattenlaufwerk“, eine „Festplatte“ oder ein „Solid-State-Laufwerk“ bezeichnet werden) bereitgestellt werden. Wenngleich nicht dargestellt, können ein magnetisches Plattenlaufwerk zum Auslesen aus einer entfernbaren, nicht-flüchtigen magnetischen Platte und Schreiben in eine entfernbare, nicht-flüchtige magnetische Platte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Auslesen aus einer entfernbaren, nicht-flüchtigen optischen Platte und Schreiben in eine entfernbare, nicht-flüchtige optische Platte, z.B. eine CD-ROM, eine DVD-ROM oder ein anderes optisches Medium, bereitgestellt werden. In solchen Fällen kann jedes durch eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 806 verbunden sein. Wie nachstehend weiter dargestellt und beschrieben wird, kann der Speicher 804 mindestens ein Programmprodukt umfassen, welches eine Gruppe von Programmmodulen (z.B. mindestens eines) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen, umfassend, ohne darauf beschränkt zu sein, das erste Bestimmungsmodul 704, das zweite Bestimmungsmodul 706 und das Positionierungsmodul 708 (wie in 7 dargestellt).
  • Beispielhaft, und ohne darauf beschränkt zu sein, können in dem Speicher 804 ein Programm/Hilfsprogramm, welches eine Gruppe von Programmmodulen 816 (mindestens eines) aufweist, sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten gespeichert sein. Jedes aus den Betriebssystemen, dem einen oder den mehreren Anwendungsprogrammen, den anderen Programmmodulen und den Programmdaten oder eine Kombination davon kann eine Realisierung einer Netzwerkumgebung umfassen. Die Programmmodule 816 führen im Allgemeinen die Funktionen und/oder die Methoden von Ausführungsformen der Erfindung aus, wie hierin beschrieben.
  • Das Computersystem 800 kann auch mit einer oder mehreren externen Einheiten 818, wie einer Tastatur, einer Zeigeeinheit, einer Anzeigevorrichtung 820 usw., einer oder mehreren Einheiten, welche einem Benutzer ermöglichen, mit dem Computersystem 800 zu interagieren, und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.) Daten austauschen, welche dem Computersystem 800 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen (zum Beispiel über ein Kommunikationsnetzwerk). Ein solcher Datenaustausch kann über Eingabe/Ausgabe-Schnittstellen (I/O-Schnittstellen) 814 erfolgen. Ausführungsformen des Computersystems 800 können mit einem oder mehreren Netzwerken wie einem lokalen Netzwerk (Local Area Network, LAN), einem allgemeinen Fernnetzwerk (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über den Netzwerkadapter 822 Daten austauschen. Wie dargestellt, kann der Netzwerkadapter 822 über den Bus 806 mit den anderen Komponenten des Computersystems 800 Daten austauschen. Es versteht sich, dass, obwohl nicht dargestellt, andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem 800 verwendet werden könnten. Beispiele umfassen, ohne darauf beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
  • Außerdem kann das Halbleiterschaltungs-Entwurfssystem 700 zum Anordnen eines Einheits-Pins an einer Grenze einer Einheit einer Halbleiterschaltung mit dem Bussystem 806 verbunden und/oder als eine oder mehrere Komponenten und/oder Programmmodul 816 in das Computersystem 800 integriert sein.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sind zu Veranschaulichungszwecken gegeben worden, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Dem Fachmann werden viele Modifikationen und Variationen ersichtlich sein, ohne vom Umfang und von der Idee der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber marktüblichen Technologien bestmöglich zu erläutern oder um anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Die vorliegende Erfindung kann als ein System, ein Verfahren und/oder ein Computerprogrammprodukt verkörpert sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit computerlesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das Medium kann ein elektronisches, ein magnetisches, ein optisches, ein elektromagnetisches, ein Infrarot- oder ein Halbleitersystem für ein Ausbreitungsmedium sein. Beispiele für ein computerlesbares Medium können einen Halbleiter- oder Solid-State-Speicher, ein Magnetband, eine entfernbare Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), eine starre magnetische Platte und eine optische Platte umfassen. Aktuelle Beispiele für optische Platten umfassen Compact-Disk-Nur-Lese-Speicher (CD-ROM), Compact-Disk-Read/Write (CD-R/W), DVD und Blu-Ray-Disk.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste speziellerer Beispiele des computerlesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine Digital Versatile Disk (DVD), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein computerlesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse), oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Fernverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, Instruction-Set-Architecture-Anweisungen (ISA-Anweisungen), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Fernnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gate-Arrays (FPGA, Field Programmable Gate Arrays) oder programmierbare Logik-Arrays (PLA, Programmable Logic Arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels computerlesbarer Programmanweisungen ausgeführt werden können.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Handlungen erzeugen. Diese computerlesbaren Programmanweisungen können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das computerlesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, umfassend Anweisungen, welche Aspekte der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder festgelegten Funktion/Handlung umsetzen.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Operationsschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, anderen programmierbaren Vorrichtungen oder einer anderen Einheit ausgeführten Anweisungen die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Handlungen umsetzen.
  • Die Ablaufpläne und/oder die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren dargestellt stattfinden. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die hierin verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. Wie hierin verwendet, sollen die Singularformen „ein“, „eine“ und „der‟, „die“, „das“ auch die Pluralformen umfassen, sofern es nicht durch den Kontext eindeutig anders angezeigt wird. Es versteht sich ferner, dass die Begriffe „weist auf“ und/oder „aufweisend“, wenn sie in der vorliegenden Beschreibung verwendet werden, das Vorliegen angegebener Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifizieren, aber nicht das Vorliegen oder Hinzufügen eines oder mehrerer anderer Elemente, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material oder jede Handlung zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen umfassen, wie speziell beansprucht. Die Beschreibung der vorliegenden Erfindung ist zu Zwecken der Veranschaulichung und der Beschreibung gegeben worden, soll aber nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Dem Fachmann werden viele Modifikationen und Variationen ersichtlich sein, ohne vom Umfang und von der Idee der Erfindung abzuweichen. Die Ausführungsformen wurden gewählt, um die Prinzipien der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu verstehen, wie sie für die bestimmte vorgesehene Verwendung geeignet sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 2016/0232275 [0006]
    • US 20060053396 [0006]

Claims (25)

  1. Verfahren zum Entwerfen einer Halbleiterschaltung, wobei das Verfahren umfasst: Empfangen von Pin-Positionsdaten, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb des Chipbereichs umfassen, der sich außerhalb einer Einheit befindet, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden; Bestimmen von Koordinaten eines Mittelpunkts der Einheit; Bestimmen einer Position einer Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt; und Anordnen des Einheits-Pins auf einer Grenze der Einheit, wo die Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, die Grenze der Einheit schneidet.
  2. Verfahren nach Anspruch 1, wobei der Mittelpunkt einer geometrischen Mitte eines Bereichs der Einheit entspricht.
  3. Verfahren nach Anspruch 1, wobei die Chip-Pin-Position ein Mittelpunkt einer anderen Einheit ist.
  4. Verfahren nach Anspruch 1, wobei die Einheit eine konvexe Geometrie aufweist.
  5. Verfahren nach Anspruch 1, wobei die Linie eine gerade Linie ist, welche den Mittelpunkt und den Chip-Pin kreuzt.
  6. Verfahren nach Anspruch 1, wobei die Linie durch eine Funktion definiert wird und wobei das Verfahren ferner umfasst: Variieren mindestens eines Parameters der Funktion, bis ein Überlappen der Anordnung des Einheits-Pins mit zuvor angeordneten Einheits-Pins vermieden wird.
  7. Verfahren nach Anspruch 1, außerdem umfassend wiederholtes Anordnen mehrerer Einheits-Pins, wobei eine Reihenfolge des Anordnens der Einheits-Pins auf Entwurfs-Randbedingungsinformationen beruht.
  8. Verfahren nach Anspruch 7, wobei die Entwurfs-Randbedingungsinformationen einen Satz von Metallschichtpositionen innerhalb der Halbleiterschaltung umfassen, die zum Anordnen des Einheits-Pins verwendbar sind.
  9. Verfahren nach Anspruch 8, wobei die Verwendbarkeit des Satzes von Metallschichtpositionen zum Anordnen des Einheits-Pins auf Grundlage einer Länge einer Linie zwischen dem Chip-Pin und dem Einheits-Pin bestimmt wird und wobei das Verfahren Sortieren der Einheits-Pins gemäß der Länge der Linien umfasst, die sich von dem Chip-Pin und dem entsprechenden Einheits-Pin erstrecken, der angeordnet wird.
  10. Verfahren nach Anspruch 1, wobei eine Randbedingung für das Anordnen des Einheits-Pins eine vorab ausgewählte Seite der Grenze der Einheit ist.
  11. System zum Entwerfen einer Halbleiterschaltung, wobei das System aufweist: einen Empfänger, welcher zum Empfangen von Pin-Positionsdaten konfiguriert ist, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb eines Chipbereichs umfassen, der sich außerhalb einer Einheit befindet, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden; ein Bestimmungsmodul, welches zum Bestimmen von Koordinaten eines Mittelpunkts der Einheit konfiguriert ist; ein zweites Bestimmungsmodul, welches zum Bestimmen einer Position einer Linie konfiguriert ist, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt; und ein Positionierungsmodul, welches zum Anordnen des Einheits-Pins auf einer Grenze der Einheit konfiguriert ist, wo die Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, die Grenze der Einheit schneidet.
  12. System nach Anspruch 11, wobei der Mittelpunkt einer geometrischen Mitte eines Bereichs der Einheit entspricht.
  13. System nach Anspruch 11, wobei die Chip-Pin-Position ein Mittelpunkt einer anderen Einheit ist.
  14. System nach Anspruch 11, wobei die Einheit eine konvexe Geometrie aufweist.
  15. System nach Anspruch 11, wobei die Linie eine gerade Linie ist, welche den Mittelpunkt und den Chip-Pin kreuzt.
  16. System nach Anspruch 11, wobei die Linie durch eine Funktion definiert ist und wobei das Positionierungsmodul zum Variieren mindestens eines Parameters der Funktion konfiguriert ist, bis ein Überlappen des Einheits-Pins mit zuvor angeordneten Einheits-Pins vermieden wird.
  17. System nach Anspruch 11, wobei das Positionierungsmodul zum wiederholten Anordnen mehrerer Einheits-Pins konfiguriert ist, wobei eine Reihenfolge des Anordnens der Einheits-Pins auf Entwurfs-Randbedingungsinformationen beruht.
  18. System nach Anspruch 17, wobei die Entwurfs-Randbedingungsinformationen einen Satz von Metallschichtpositionen innerhalb der Halbleiterschaltung umfassen, die zum Anordnen des Einheits-Pins verwendbar sind.
  19. System nach Anspruch 18, wobei die Verwendbarkeit des Satzes von verwendbaren Metallschichtpositionen zum Anordnen des Einheits-Pins auf Grundlage einer Länge der Linie zwischen dem Chip-Pin und dem Einheits-Pin bestimmt wird und wobei das Verfahren Sortieren der Einheits-Pins gemäß der Länge der Linien umfasst, die sich von dem Chip-Pin und dem entsprechenden Einheits-Pin erstrecken, der angeordnet wird.
  20. Computerprogrammprodukt zum Entwerfen einer Halbleiterschaltung, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium umfasst, welches darauf verkörperte Programmanweisungen aufweist, wobei die Programmanweisungen durch ein oder mehrere Datenverarbeitungssysteme oder Steuerungen ausführbar sind, um zu bewirken, dass das eine oder die mehreren Datenverarbeitungssysteme ein durch einen Computer realisiertes Verfahren ausführen, umfassend: Empfangen von Pin-Positionsdaten, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb eines Chipbereichs umfassen, der sich außerhalb einer Einheit befindet, für welche der Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden; Bestimmen von Koordinaten eines Mittelpunkts der Einheit; Bestimmen einer Position einer Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt; und Anordnen des Einheits-Pins auf einer Grenze der Einheit, wo die Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, die Grenze der Einheit schneidet.
  21. Computerprogrammprodukt nach Anspruch 20, wobei das durch einen Computer realisierte Verfahren ferner umfasst: wiederholtes Anordnen mehrerer Pins, wobei eine Reihenfolge des Anordnens der Einheits-Pins auf Entwurfs-Randbedingungsinformationen beruht, wobei die Entwurfs-Randbedingungsinformationen einen Satz von Metallschichtpositionen innerhalb der Halbleiterschaltung umfassen, die zum Anordnen des Einheits-Pins verwendbar sind.
  22. Computerprogrammprodukt nach Anspruch 21, wobei das durch einen Computer realisierte Verfahren, das ausgeführt wird, ferner umfasst: Bestimmen einer Verwendbarkeit des Satzes von Metallschichtpositionen zum Anordnen des Einheits-Pins auf Grundlage einer Länge der Linie zwischen dem Chip-Pin und dem Einheits-Pin, und wobei das Verfahren Sortieren der Einheits-Pins gemäß der Länge der Linien der Einheits-Pins zwischen dem Chip-Pin und dem entsprechenden Einheits-Pin umfasst, der angeordnet wird.
  23. Computersystem, aufweisend: mindestens einen Prozessor; ein Halbleiter-Entwurfssystem, welches mit dem mindestens einen Prozessor verbunden ist, wobei das Halbleiter-Entwurfssystem einen Empfänger, ein erstes Bestimmungsmodul, ein zweites Bestimmungsmodul und ein Positionierungsmodul aufweist; und ein computerlesbares Speichermedium, welches mit dem mindestens einen Prozessor verbunden ist, wobei das computerlesbare Speichermedium Programmanweisungen enthält, welche ein durch einen Computer realisiertes Verfahren zur Ausführung bringen, umfassend: Empfangen von Pin-Positionsdaten von dem Empfänger durch den mindestens einen Prozessor, wobei die Pin-Positionsdaten eine Chip-Pin-Position eines Chip-Pins innerhalb eines Chipbereichs umfassen, der sich außerhalb einer Einheit befindet, für welche ein Einheits-Pin konfiguriert ist, elektrisch damit verbunden zu werden; Empfangen von Koordinaten eines Mittelpunkts der Einheit, die durch ein Bestimmungsmodul bestimmt werden, durch den mindestens einen Prozessor; Positionieren einer Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, durch den mindestens einen Prozessor; und Anweisen eines Anordnens des Einheits-Pins auf einer Grenze der Einheit durch den mindestens einen Prozessor, wo die Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, die Grenze der Einheit schneidet.
  24. Computersystem nach Anspruch 23, wobei der Schritt des Positionierens der Linie, die sich vom Mittelpunkt der Einheit zu der Chip-Pin-Position erstreckt, durch eine Funktion definiert ist und das durch einen Computer realisierte Verfahren ferner umfasst: Variieren mindestens eines Parameters der Funktion durch den mindestens einen Prozessor, bis ein Überlappen der Anordnung des Einheits-Pins mit zuvor angeordneten Einheits-Pins vermieden wird.
  25. Durch einen Computer realisiertes Verfahren, umfassend: Empfangen einer Chip-Pin-Koordinatendatei durch einen Prozessor, welche xy-Koordinaten einer Einheit und xy-Koordinaten eines Chip-Pins aufweist; Einrichten eines Mittelpunkts der Einheit durch den Prozessor auf Grundlage der xy-Koordinaten der Einheit; Erstrecken einer Pin-Linie von dem Mittelpunkt der Einheit zu den xy-Koordinaten des Chip-Pins durch den Prozessor; Identifizieren eines Schnittpunkts durch den Prozessor, wobei die Pin-Linie eine Grenze der Einheit schneidet, wenn sich die Pin-Linie vom Mittelpunkt der Einheit zu den xy-Koordinaten des Chip-Pins erstreckt; und Bestätigen durch den Prozessor, dass kein Pin an dem Schnittpunkt positioniert ist, und nach der Bestätigung, dass kein Pin an dem Schnittpunkt positioniert ist, Anordnen eines Einheits-Pins auf der Grenze der Einheit an dem Schnittpunkt durch den Prozessor.
DE112021002870.7T 2020-07-02 2021-05-19 Halbleiterschaltungs-entwurf und einheits-pin-anordnung Pending DE112021002870T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/919,127 US10997350B1 (en) 2020-07-02 2020-07-02 Semiconductor circuit design and unit pin placement
US16/919,127 2020-07-02
PCT/IB2021/054294 WO2022003438A1 (en) 2020-07-02 2021-05-19 Semiconductor circuit design and unit pin placement

Publications (1)

Publication Number Publication Date
DE112021002870T5 true DE112021002870T5 (de) 2023-03-09

Family

ID=75689385

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002870.7T Pending DE112021002870T5 (de) 2020-07-02 2021-05-19 Halbleiterschaltungs-entwurf und einheits-pin-anordnung

Country Status (7)

Country Link
US (2) US10997350B1 (de)
JP (1) JP2023530875A (de)
KR (1) KR20230024325A (de)
CN (1) CN115769217A (de)
DE (1) DE112021002870T5 (de)
GB (1) GB2611691A (de)
WO (1) WO2022003438A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997350B1 (en) * 2020-07-02 2021-05-04 International Business Machines Corporation Semiconductor circuit design and unit pin placement
CN114021519B (zh) * 2021-11-04 2022-11-29 北京百度网讯科技有限公司 链状量子芯片的布线方法、装置、电子设备及存储介质
CN114861587B (zh) * 2022-04-07 2023-03-10 珠海妙存科技有限公司 一种芯片载板引脚排布设计方法、***、装置与存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060053396A1 (en) 1998-01-30 2006-03-09 Tera Systems, Inc. Creating optimized physical implementations from high-level descriptions of electronic design using placement-based information
US20160232275A1 (en) 2015-02-11 2016-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for logical design connectivity-based automatic macro placement

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006024A (en) * 1996-11-01 1999-12-21 Motorola, Inc. Method of routing an integrated circuit
US6298468B1 (en) * 1999-05-04 2001-10-02 Prosper Design Systems Pte. Ltd. Placement-based pin optimization method and apparatus for computer-aided circuit design
US7275230B2 (en) * 2004-06-11 2007-09-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods to gather and display pin congestion statistics using graphical user interface
JP4508947B2 (ja) * 2005-05-30 2010-07-21 Okiセミコンダクタ株式会社 半導体装置の自動設計方法および自動設計装置
WO2007149717A2 (en) * 2006-06-08 2007-12-27 Lightspeed Logic, Inc. Morphing for global placement using integer linear programming
WO2007146966A2 (en) * 2006-06-12 2007-12-21 Otrsotech, Llc Methods and systems for placement
WO2007147150A2 (en) * 2006-06-15 2007-12-21 Lightspeed Logic, Inc. Simultaneous dynamical integration applied to detailed placement
US7752588B2 (en) * 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
JP5365192B2 (ja) * 2006-07-06 2013-12-11 日本電気株式会社 半導体集積回路の階層設計方法および装置
US7536665B1 (en) * 2006-07-25 2009-05-19 Cadence Design Systems, Inc. User-guided autorouting
US9747406B2 (en) * 2010-11-29 2017-08-29 Synopsys, Inc. Spine routing with multiple main spines
US8966425B1 (en) * 2012-06-03 2015-02-24 Pulsic Limited Clock tree generation and routing
CN103745475B (zh) 2014-01-22 2017-02-08 哈尔滨工业大学 一种用于球形引脚元件的检测与定位方法
US9201999B1 (en) * 2014-06-30 2015-12-01 Cadence Design Systems, Inc. Integrated circuit floorplan having feedthrough buffers
US10372860B2 (en) * 2015-07-01 2019-08-06 Synopsys, Inc. Netlist abstraction for circuit design floorplanning
US10133840B2 (en) 2015-12-04 2018-11-20 International Business Machines Corporation Priority based circuit synthesis
US9898571B2 (en) * 2016-02-05 2018-02-20 International Business Machines Corporation Layout of interconnect lines in integrated circuits
US10235490B1 (en) * 2017-05-08 2019-03-19 Cadence Design Systems, Inc. Methods and systems for centering of pins during instance abutment
US10592704B2 (en) 2017-07-05 2020-03-17 Brookshire Software, LLC System and method for electronic automated printed circuit design
US10559558B2 (en) 2017-09-29 2020-02-11 Taiwan Semiconductor Manufacturing Co., Ltd. Pin modification for standard cells
US10467373B2 (en) * 2018-02-21 2019-11-05 Xilinx, Inc. Method of selecting routing resources in a multi-chip integrated circuit device
US10810341B1 (en) * 2019-06-17 2020-10-20 Xilinx, Inc. Method and system for making pin-to-pin signal connections
CN111241775B (zh) 2019-12-27 2023-05-30 成都锐成芯微科技股份有限公司 集成电路版图拼接方法
US10997350B1 (en) * 2020-07-02 2021-05-04 International Business Machines Corporation Semiconductor circuit design and unit pin placement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060053396A1 (en) 1998-01-30 2006-03-09 Tera Systems, Inc. Creating optimized physical implementations from high-level descriptions of electronic design using placement-based information
US20160232275A1 (en) 2015-02-11 2016-08-11 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for logical design connectivity-based automatic macro placement

Also Published As

Publication number Publication date
WO2022003438A1 (en) 2022-01-06
GB2611691A (en) 2023-04-12
CN115769217A (zh) 2023-03-07
US11354478B2 (en) 2022-06-07
JP2023530875A (ja) 2023-07-20
US10997350B1 (en) 2021-05-04
KR20230024325A (ko) 2023-02-20
US20220004691A1 (en) 2022-01-06
GB202300521D0 (en) 2023-03-01

Similar Documents

Publication Publication Date Title
DE69813892T2 (de) Polygon darstellung im layout eines integrierten schaltkreises
DE112021002870T5 (de) Halbleiterschaltungs-entwurf und einheits-pin-anordnung
DE60116769T2 (de) Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung
DE102019116952B4 (de) Integrierte-schaltkreis-struktur, layout-schaubild-verfahren und system
JP4474404B2 (ja) パッキングベースのマクロ配置方法とそれを用いた半導体チップ
DE112014003741T5 (de) Detektieren und Anzeigen einer Behebungsführung für Multi-Strukturierung
DE102017125395A1 (de) Zellstrunkturen und Halbleitervorrichtungen damit
DE102014108739B4 (de) Layoutentwurfsverfahren für Doppelstrukturierung
DE102015200694A1 (de) Verfahren, computersystem und computerlesbares speichermedium zum erzeugen eines layouts eines integrierten schaltkreises
DE102019105154A1 (de) Vorrichtung und Verfahren für ein feldprogrammierbares Quanten-Array
DE102019116733A1 (de) Verfahren, vorrichtung und system eines integrierten schaltungslayouts
DE102019128996A1 (de) Integriertes schaltungsfinnenbelegungsverfahren, system und struktur
EP0441810A1 (de) Verfahren zur plazierung von modulen auf einem träger.
DE112013005820T5 (de) Graphische Benutzerschnittstelle für ein Werkzeug zur Lageplanerstellung bei der Entwurfsautomatisierung elektronischer Systeme
DE102013106539A1 (de) Verfahren zur Verifikation eines Layouts für Polysilizium-Zellrandstrukturen in FinFET-Standardzellen
DE102019116744A1 (de) Verfahren zum erzeugen eines layoutdiagramms, das hervorstehendestiftzellengebiete aufweist, und eine darauf basierendehalbleitervorrichtung
DE102018108579A1 (de) Integrierte schaltung und verfahren zu deren herstellung
DE102019123621B4 (de) Routungsressourcenverbesserndes verfahren zum generieren von layout-diagrammen, und system dafür
DE102019117226A1 (de) Schaltkreis mit adaptiven speicherassistenzfähigkeiten
DE102021110414A1 (de) Vier-cpp-breite speicherzelle mit vergrabenem leistungsgitter und verfahren zu deren herstellung
DE112022003147T5 (de) Regionsbasiertes layoutleitungsführen
DE102019125900B4 (de) Metallschnittgebiet-positionierungsverfahren und system
DE102021111423A1 (de) Halbleitervorrichtung und Verfahren zu ihrer Herstellung
DE10205559A1 (de) Verflochtene Verbindungen für integrierte Schaltungen
DE102022132158A1 (de) Verfahren, system und computerprogrammprodukt zum entwerfen von integrierten schaltkreisen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence