DE69232026T2 - Entwurfssystem zur Platzierung von Elementen - Google Patents

Entwurfssystem zur Platzierung von Elementen

Info

Publication number
DE69232026T2
DE69232026T2 DE69232026T DE69232026T DE69232026T2 DE 69232026 T2 DE69232026 T2 DE 69232026T2 DE 69232026 T DE69232026 T DE 69232026T DE 69232026 T DE69232026 T DE 69232026T DE 69232026 T2 DE69232026 T2 DE 69232026T2
Authority
DE
Germany
Prior art keywords
arrangement
area
data
unit
cell
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.)
Expired - Fee Related
Application number
DE69232026T
Other languages
English (en)
Other versions
DE69232026D1 (de
Inventor
Ryusuke Masuoka
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69232026D1 publication Critical patent/DE69232026D1/de
Publication of DE69232026T2 publication Critical patent/DE69232026T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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

Landscapes

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

Description

  • Diese Erfindung betrifft im allgemeinen ein System zum Konstruieren einer Anordnung eines Teils, und im besonderen ein System zum Konstruieren einer Anordnung eines Anordnungselementes, z. B. einer Zelle, eines Anschlusses oder eines Drahtes, in einer integrierten Schaltung, einer gedruckten Schaltungsplatte oder dergleichen.
  • Anordnungselemente wie etwa Zellen, Anschlüsse und Drähte in einer integrierten Schaltung, einer gedruckten Schaltungsplatte oder dergleichen müssen so angeordnet werden, daß Zellen bei den geringstmöglichen Leitungsführungskosten so hoch wie möglich integriert sind.
  • Eine Anordnung von Anordnungselementen ist durch einen Vergleich der Wahrscheinlichkeit einer gegenwärtigen Anordnung mit jener einer neuen Anordnung festgelegt worden, wobei Leitungsführungskosten auf der Basis der Drahtlängen oder Energien, die durch ein simuliertes Annealverfahren berechnet werden, die Wahrscheinlichkeiten bestimmen.
  • Weil ein Anordnungskonstruktionssystem wie dieses eine zunehmende Menge an Zeit beansprucht, wenn die Anzahl von Anordnungselementen steigt, ist ein schnelleres System gesucht worden, da eine integrierte Schaltung oder eine gedruckte Schaltungsplatte dichter bepackt wird.
  • Es folgen nun Definitionen von Ausdrücken, die in der folgenden Beschreibung verwendet werden.
  • Anordnungselement: Ein Anordnungselement ist ein Objekt, das in einer integrierten Schaltung, einer gedruckten Schaltungsplatte oder dergleichen anzuordnen ist. Anordnungselemente wie etwa Zellen, Anschlüsse, die mit einer Zelle verbunden sind, und Drähte sind in einer integrierten Schaltung angeordnet. Anordnungselemente, wie z. B. eine angeordnete Zelle und ein Durchgangsloch, die tatsächlich einen Teil eines Anordnungsbereiches belegen, sind in einer gedruckten Schaltung angeordnet. Eine Zelle ist als einzelnes Anordnungselement definiert, wie z. B. ein einzelner Prozessor oder eine Logikgattereinheit.
  • Anordnungsbereich: Ein Anordnungsbereich ist ein Bereich zum Anordnen von Anordnungselementen und ist strukturiert durch Anordnungselementdaten bezüglich eines Anordnungselementes, das in einem Bereich angeordnet ist, die in einer Speichereinheit gespeichert sind. Ein Anordnungsbereich wird z. B. an ein Display als gedruckte Schaltungsplatte oder integrierte Schaltungsplatte ausgegeben, um darin Anordnungselemente anzuordnen.
  • Einheitsbereich: Ein Einheitsbereich wird erhalten, indem ein Anordnungsbereich durch eine Zuordnung von Daten (z. B. einer Einheitsbereichsnummer) zum Spezifizieren des Einheitsbereiches geteilt wird. Zum Beispiel ist ein Einheitsbereich für eine Zelle gewöhnlich eine Basiszelle (basic cell; nachfolgend als BC abgekürzt), die eine Bildungseinheit einer Zelle in einem Gate-Array ist, und ein Einheitsbereich für einen Draht ist gewöhnlich eine Gittereinheit, wobei ein Gitter als kleinste Einheit einer VLSI (very large scale integrated circuit; Schaltung mit sehr hohem Integrationsgrad) definiert ist. Eine [1] Zelle kann eine Vielzahl von Einheitszellen umfassen.
  • Virtueller Anordnungsbereich: Ein virtueller Anordnungsbereich zum virtuellen Anordnen eines Anordnungselementes ist jedem Anordnungselementtyp in Entsprechung zu Daten (z. B. einer Einheitsbereichsnummer) zum Spezifizieren eines Einheitsbereiches zum Anordnen eines Anordnungselementes zugeordnet. Er ist durch eine Speichereinheit zum Speichern z. B. von Attributen eines Anordnungselementes, eines Eigennamens und einer Einheitsbereichsnummer zum Vornehmen einer Anordnung strukturiert. Wenn ein Anordnungselement eine Zelle, ein Anschluß, ein Draht oder ein Durchgangsloch ist, wird ein virtueller Anordnungsbereich als Zellenbereich, Anschlußbereich, Drahtbereich oder Durchgangslochbereich bezeichnet.
  • Ein herkömmliches Anordnungskonstruktionssystem ist so, daß eine Zelle Daten z. B. an der Position eines Anordnungsbereiches hat, wenn die Anordnung eines Schaltungselementes einer integrierten Schaltung konstruiert wird, und daß ein Anschluß und ein Draht jeweilig Anschlußdaten bezüglich des Verbindens von Zellen und Drahtdaten haben, wodurch eine Anordnung einer Zelle und eines Drahtes, der mit einer Zelle verbunden ist, erhalten wird.
  • Fig. 1 zeigt ein herkömmliches Anordnungskonstruktionssystem.
  • Zu Fig. 1:
  • 1 ist eine Zeigerspeichereinheit zum Speichern eines Zeigers für Anordnungselementdaten (z. B. Zellendaten, Anschlußdaten oder Drahtdaten) bezüglich jedes Anordnungselementtyps;
  • 2 ist eine Anordnungsspeichereinheit zum Speichern von Anordnungselementdaten (z. B. Zellendaten, Anschlußdaten oder Drahtdaten) bezüglich jedes Anordnungselementtyps; und 3 ist eine Anordnungsbereichsspeichereinheit.
  • 3' ist ein Einheitsbereich, der von einem Anordnungsbereich abgeteilt ist, in BC-Einheiten, wobei jede BC eine Koordinatenposition hat, die z. B. in einem x-y-Koordinatenwert ausgedrückt wird;
  • 4 sind Zellendaten bezüglich einer Zelle, die eine Zellennummer 1 hat und ein Anordnungselement darstellt, wie etwa ein Logikgatter in einer integrierten Schaltung;
  • 5 sind Zellendaten bezüglich einer Zelle, die eine Zellennummer 2 hat und ein Anordnungselement darstellt, wie etwa ein Logikgatter in einer integrierten Schaltung;
  • 6 sind Anschlußdaten bezüglich eines Anschlusses, der eine Anschlußnummer A1 hat und die Zelle, die die Zellennummer 1 hat, mit einem Draht verbindet, der eine Drahtnummer 1 hat;
  • 7 sind Anschlußdaten bezüglich eines Anschlusses, der eine Anschlußnummer A2 hat und die Zelle, die die Zellennummer 1 hat, mit einem Draht verbindet, der eine Drahtnummer 2 hat;
  • 8 sind Anschlußdaten bezüglich eines Anschlusses, der eine Anschlußnummer A3 hat und die Zelle, die die Zellennummer 2 hat, mit dem Draht, der die Drahtnummer 2 hat, und einem Draht, der eine Drahtnummer 3 hat, verbindet;
  • 9 sind Anschlußdaten bezüglich eines Anschlusses, der eine Anschlußnummer A4 hat und die Zelle, die die Zellennummer 2 hat, mit dem Draht verbindet, der eine Drahtnummer 3 hat;
  • 10 sind Drahtdaten bezüglich des Drahtes, der die Drahtnummer 1 hat;
  • 11 sind Drahtdaten bezüglich des Drahtes, der die Drahtnummer 2 hat; und
  • 12 sind Drahtdaten bezüglich des Drahtes, der die Drahtnummer 3 hat.
  • Herkömmlicherweise hat die Anordnungsspeichereinheit 2 Datenspeicherbereiche jeweilig für Zellendaten 4 (bezüglich der Zelle mit der Zellennummer 1), Zellendaten 5 (bezüglich der Zelle mit der Zellennummer 2), Anschlußdaten 6 (bezüglich der Zelle mit der Anschlußnummer A1), Anschlußdaten 7 (bezüglich des Anschlusses mit der Anschlußnummer A2), Anschlußdaten 8 (bezüglich des Anschlusses mit der Anschlußnummer A3), Anschlußdaten 9 (bezüglich des Anschlusses mit der Anschlußnummer A4), Drahtdaten 10 (bezüglich des Drahtes mit der Drahtnummer 1), Drahtdaten 11 (bezüglich des Drahtes mit der Drahtnummer 2) und Drahtdaten 12 (bezüglich des Drahtes mit der Drahtnummer 3). Die Zeigerspeichereinheit 1 umfaßt Zeiger für Daten von jeweiligen Anordnungselementen.
  • Der Inhalt der Anordnungsspeichereinheit 2 und der Anordnungsbereichsspeichereinheit 3 wird unten konkreter erläutert. Die Anordnungsbereichsspeichereinheit 3 speichert Koordinatenpositionen von jeweiligen Einheitsbereichen, die von einem Anordnungsbereich abgeteilt sind, und Charakteristiken der Einheitsbereiche, wie zum Beispiel ein Verbot einer Zellenanordnung in einem Einheitsbereich. Die Anordnungsspeichereinheit 2 speichert andererseits konkrete Daten, z. B. von einer Zelle und einem Anschluß. Zum Beispiel speichert die Anordnungsspeichereinheit 2 die Koordinatenposition eines Einheitsbereiches zum Anordnen einer Zelle und die Zellennummer einer Zelle, die mit einem Anschluß verbunden ist.
  • Fig. 2 zeigt eine Datenstruktur eines herkömmlichen Anordnungskonstruktionssystems.
  • Genauer gesagt, Fig. 2 zeigt ein Beispiel für eine Anordnung und Leitungsführung eines Gate-Arrays.
  • Zu Fig. 2:
  • 13 sind Daten, die einen Prozeß eines Gate-Arrays darstellen;
  • 14 ist ein Zeiger für ein Anordnungselement;
  • 15 dient zum Speichern von globalen Daten wie etwa der Temperatur und der Dimensionen eines Anordnungsbereiches in einer integrierten Schaltung;
  • 16 (entspricht 1 in Fig. 1) ist eine Zeigerspeichereinheit zum Speichern von Zeigern für Daten bezüglich jeweiliger Anordnungselemente, wie etwa von einem Zeiger für Zellendaten, einem Zeiger für Anschlußdaten und einem Zeiger für Drahtdaten;
  • 17 ist ein Zellenbereich zum Speichern von Zellendaten in einer Folge von Zellennummern, wie etwa von Koordinatenpositionen der Einheitsbereiche, an denen Zellen (z. B. Zelle 4 (die die Zellennummer 1 hat) und Zelle 5 (die die Zellennummer 2 hat) von Fig. 1) angeordnet sind;
  • 18 ist ein Anschlußbereich zum Speichern von Anschlußdaten in einer Folge von Anschlußnummern, wie etwa von Zellennummern von Zellen, mit denen Anschlüsse (z. B. Anschluß 6 (der die Anschlußnummer A1 hat), Anschluß 7 (der die Anschlußnummer A2 hat), Anschluß 8 (der die Anschlußnummer A3 hat) und Anschluß 9 (der die Anschlußnummer A4 hat) von Fig. 1) verbunden sind, und von Koordinatenpositionen von Einheitsbereichen, an denen die Anschlüsse angeordnet sind; und
  • 19 ist ein Drahtbereich zum Speichern von Drahtdaten in einer Folge von Drahtnummern, wie etwa von Anschlußnummern von Anschlüssen, mit denen Drähte (z. B. Draht 10 (der die Drahtnummer 1 hat), Draht 11 (der die Drahtnummer 2 hat) und Draht 12 (der die Drahtnummer 3 hat)) verbunden sind, und von Koordinatenpositionen der Einheitsbereiche, an denen Drähte angeordnet sind.
  • Die Temperatur und die Dimensionen eines Anordnungsbereiches in einer integrierten Schaltung, die hier als globale Daten bezeichnet werden, sind Parameter zur Verwendung beim Berechnen von Leitungsführungskosten auf der Basis der Drahtlängen oder Energien gemäß einem simulierten Annealverfahren, das später beschrieben wird.
  • Fig. 1 vermittelt den Eindruck, als ob der Zeiger für Zellendaten nur auf Zelle 4 (die die Zellennummer 1 hat) zeigt und der Zeiger für Anschlußdaten nur auf Anschluß 6 (der die Anschlußnummer A1 hat) zeigt. Ein Zeiger für Zellendaten zeigt jedoch tatsächlich auf das Kopfende eines Zellenbereiches (z. B. eines Zellenbereiches 17, der in Fig. 2 gezeigt ist) zum sequentiellen Speichern von Zellendaten.
  • Das heißt, die Anordnungsspeichereinheit 2, die in Fig. 1 gezeigt ist, ist einer Kombination aus dem Zellenbereich 17, dem Anschlußbereich 18 und dem Drahtbereich 19 äquivalent, die in Fig. 2 gezeigt sind.
  • Herkömmlicherweise spezifiziert ein Zeiger für Zellendaten Speicherbereiche von Daten bezüglich jeweiliger Zellen, und ein Zeiger für Anschlußdaten spezifiziert Speicherbereiche von Daten bezüglich jeweiliger Anschlüsse gemäß der Datenstruktur, die in Fig. 2 gezeigt ist. Auf der Basis der Daten in den Speicherbereichen, die durch diese Zeiger spezifiziert werden, ist eine Anordnung konstruiert worden, indem Zellen an spezifizierten Koordinatenpositionen angeordnet wurden, eine Zelle erhalten wurde, die mit einem Anschluß verbunden war, und ein Anschluß mit einer spezifizierten Zelle verbunden wurde.
  • Ein herkömmliches Anordnungskonstruktionssystem wird unten unter Verwendung der Koordinatenpositionen von jeweiligen Einheitsbereichen erläutert, die in Fig. 1 gezeigt sind.
  • Erstens spezifiziert die Zeigerspeichereinheit 1 den Zeiger für Zellendaten oder den Zeiger für Anschlußdaten.
  • Zweitens spezifiziert die Zeigerspeichereinheit 1 gemäß dem Zeiger für Zellendaten sequentiell Zellennummern 1, 2, etc., und schreibt in den Zellenbereich 17 Zellendaten, wie z. B. die Koordinatenpositionen (d. h., (1, 3) für Zelle 4 (die die Zellennummer 1 hat) und (1, 4) für Zelle 5 (die die Zellennummer 2 hat)) der Einheitsbereiche in dem Anordnungsbereich, wo die Zellen 4 und 5 angeordnet sind.
  • Drittens spezifiziert die Zeigerspeichereinheit 1 gemäß dem Zeiger für Anschlußdaten sequentiell Zellennummern A1, A2, A3, A4, etc., und schreibt in den Anschlußbereich 18 Anschlußdaten, wie z. B. die Zellennummern (d. h., 1 für Anschluß 6 (der die Anschlußnummer A1 hat), 1 für Anschluß 7 (der die Anschlußnummer A2 hat), 2 für Anschluß 8 (der die Anschlußnummer A3 hat) und 2 für Anschluß 9 (der die Anschlußnummer A4 hat)) der Zellen, mit denen die Anschlüsse 6 bis 9 verbunden sind.
  • Viertens spezifiziert die Zeigerspeichereinheit 1 gemäß dem Zeiger für Drahtdaten sequentiell Drahtnummern 1, 2, 3, etc., und schreibt in den Drahtbereich 19 Drahtdaten, wie z. B. die Anschlußnummern (d. h., A1 für Draht 10 (der die Drahtnummer 1 hat), A2 und A3 für Draht 11 (der die Drahtnummer 2 hat) und A3 und A4 für Draht 12 (der die Drahtnummer 3 hat)) der Anschlüsse, mit denen die Drähte 10, 11 und 12 verbunden sind.
  • Außerdem sind, obwohl ein Anordnungsbereich einer integrierten Schaltung und ein Drahtbereich einer gedruckten Schaltungsplatte ebenso Anordnungselementdaten enthalten können, die Anordnungselementdaten z. B. auf Daten in bezug auf Zellendimensionen begrenzt, die keine konkreten Daten über einen Anschluß oder einen Draht zwischen Anschlüssen umfassen.
  • Genauer gesagt, die Anordnungselementdaten waren nur auf solche Daten begrenzt, wie etwa bezüglich der Anzahl von Zellen, die ihren Dimensionen nach klassifiziert wurden und in jeweiligen Teilbereichen angeordnet waren.
  • Fig. 3 zeigt ein Verfahren zum Verändern einer Anordnung auf der Basis eines herkömmlichen simulierten Annealverfahrens.
  • Ein herkömmliches Anordnungsveränderungsverfahren wird unten gemäß den Nummern erläutert, die in Fig. 3 gezeigt sind.
  • (1) Neue Koordinatenpositionen werden für Anordnungselemente wie etwa eine Zelle und einen Anschluß stochastisch gebildet. Zum Beispiel wird eine Zufallszahl zum Bestimmen der neuen Koordinatenpositionen verwendet, wobei eine Bildungswahrscheinlichkeit in einem gesamten Anordnungsbereich einheitlich ist.
  • (2) Eine Energiedifferenz vor und nach einer Anordnungsveränderung wird berechnet, wobei eine Energie z. B. durch eine Drahtlänge bestimmt wird.
  • (3) Durch Vergleichen der Energiedifferenz wird ein Index als Benchmark zum Bestimmen dessen gebildet, ob eine Bewegung zu einer neuen Koordinatenposition erfolgen soll oder nicht.
  • (4) Eine beliebige Zahl wird als Zufallszahl erzeugt, die mit dem bei (3) errechneten Index verglichen wird, zum Bestimmen dessen, ob eine Bewegung zu einer neuen Koordinatenposition erfolgen soll oder nicht. Bei Zustimmung zu einer Bewegung zu einer neuen Koordinatenposition erfolgt eine Anordnung an der neuen Koordinatenposition. Bei Ablehnung einer Bewegung zu einer neuen Koordinatenposition wird eine Anordnung an einer gegenwärtigen Koordinatenposition beibehalten.
  • (1) bis (4) werden wiederholt, bis bei (5) durch Erfüllen einer Endbedingung eine optimale Anordnung erhalten wird, wodurch eine optimale Anordnung erzielt wird. (5) Die Endbedingung ist zum Beispiel irgendeine der folgenden: (a) eine vorbestimmte Anzahl von Wiederholungen, (b) eine Wiederholung, bis weniger als eine vorbestimmte Energie erreicht wird, und (c) eine Wiederholung, bis ein Energieverringerungsvolumen kleiner als eine vorbestimmte Energie E am Ende der N-maligen Wiederholung ist, wobei N eine vorbestimmte Zahl ist.
  • Ein herkömmliches Anordnungskonstruktionssystem speichert Anordnungselemente in einer Folge von Zellennummern und in einer Folge von Anschlußnummern, wobei eine Zelle eine Koordinatenposition eines Anordnungsbereiches hat (eine Position zum Anordnen eines Einheitsbereiches), ein Anschluß eine Zellennummer einer Zelle zum Anordnen des Anschlusses hat und ein Draht eine Anschlußnummer hat, mit der der Draht verbunden ist. Wenn eine Zelle einer Anordnungsveränderung unterzogen wird, wird dann, nachdem auf alle Zellen zur Veränderung von Verbindungsdaten (z. B. bezüglich einer Veränderung eines Zellenkoordinatenwertes, eines Anschlusses, der mit einer Zelle verbunden ist und einer Drahtverbindung) sequentiell zugegriffen wurde, auf die Zellen und Anschlüsse zum Erhalten von neuen Anordnungsdaten sequentiell zugegriffen. Daher erfordert ein herkömmliches Anordnungskonstruktionssystem eine große Menge an Zeit zum Verarbeiten einer Anordnungsveränderung. Da ferner auf Grund der Datenstruktur die Koordinatenpositionen in der Folge von Zellennummern und in der Folge von Anschlußnummern zur Konvertierung in eine neue Koordinatenposition bei einer Anordnungsveränderung gesucht werden müssen, ist das herkömmliche Verfahren zum Konstruieren einer Anordnung einer Leitungsführung nicht für ein paralleles Rechnersystem geeignet, das ein Multiprozessorsystem verkörpert.
  • Probleme beim Veränderung einer Zellenanordnung werden unten eingehender erläutert.
  • Wenn eine Zellenanordnung verändert wird, ist ein kritischer Punkt der, daß die veränderte Zelle eine Überlappung mit einer anderen Zelle aufweist. Um eine Zellenüberlappung zu prüfen, muß bei jeder Zelle geprüft werden, ob eine Koordinatenposition nach einer Zellenbewegung dieselbe wie eine Koordinatenposition vor einer Zellenbewegung ist.
  • Wenn eine Zelle bewegt wird, müssen Anschlußdaten aktualisiert werden, da sich die Position eines Anschlusses verändern kann, der mit der Zelle verbunden ist. Wenn eine Zelle keine Anschlußdaten hat, statt dessen aber ein Anschluß Zellendaten hat, wie in Fig. 1 und 2 gezeigt, muß auf alle Anschlußdaten zum Suchen eines Anschlusses zugegriffen werden, der mit einer Zelle verbunden ist.
  • Wenn zum Beispiel eine Position der Zelle verändert wird, die die Zellennummer 1 hat, muß der Zelle mit der Zellennummer 1 eine neue Koordinatenposition gegeben werden. Um zu prüfen, ob an der neuen Koordinatenposition schon eine Zelle existiert, muß geprüft werden, ob die neue Koordinatenposition der Zelle mit der Zellennummer 1 der Koordinatenposition der Zelle mit der Zellennummer 2 gleich ist, indem auf Zellendaten bezüglich der Zelle mit der Zellennummer 2 zugegriffen wird. Um alle Anschlüsse zu suchen, die mit der Zelle mit der Zellennummer 1 verbunden sind, muß geprüft werden, ob jeweilige Anschlüsse (die Anschlußnummern A1, A2, A3 und A4 haben) mit der Zelle mit der Zellennummer 1 verbunden sind oder nicht, indem auf Anschlußdaten bezüglich dieser Anschlüsse (die Anschlußnummern A1, A2, A3 und A4 haben) zugegriffen wird. Daher tendiert die Verarbeitung bei einer Veränderung einer Zellenanordnung dazu, eine größere Menge an Zeit zu beanspruchen.
  • Wenn ein Anordnungselement, wie etwa eine Zelle, einem Anordnungsbereich entspricht, kann eine Zelle wenige Daten haben, wodurch es schwierig, wenn nicht gar unmöglich wird, eine Anordnung zu bestimmen, die einer strikten Beschränkung entspricht (z. B. daß eine einzelne Zelle über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist), die von einer bei einer tatsächlichen Anordnung erforderlichen Zellenform abhängt, oder die erhaltene Anordnung unter einer strikten Beschränkung zu bewerten.
  • Da herkömmlicherweise die Wahrscheinlichkeit des Bildens eines neuen Koordinatenwertes beim Verändern einer Anordnung in dem gesamten Anordnungsbereich einheitlich ist, wird ferner ein Bewegungsziel ungeachtet von Zellencharakteristiken bedingungslos gebildet. Daher ist nicht nur eine Effektivität gering, sondern die Verarbeitung erfordert auch zu viel Zeit.
  • Das Software Engineering Journal, Bd. 5, Nr. 6, November 1990, London, GB, enthält auf den Seiten 339-349 einen Bericht von H. S. Facanha mit dem Titel "Data structures for physical representation of VLSI". Dieser Bericht offenbart ein System gemäß der Präambel des beiliegenden Anspruches 1 und spricht von einem "imaginären quadratischen Gitter", das eine Vielzahl von Rechtecken umfaßt, die größer als eine Basiszelle sind.
  • Diese Erfindung betrifft ein System zum Konstruieren einer Anordnung/Leitungsführung eines Anordnungselementes zum Beschleunigen von Konstruktionsprozessen.
  • Gemäß der vorliegenden Erfindung ist ein System zum Konstruieren einer Anordnung eines Anordnungselementes zur Verwendung in einem Anordnungskonstruktionssystem vorgesehen, das umfaßt: ein Anordnungselementspeichermittel zum Speichern von Anordnungselementdaten, die Anordnungselemente darstellen; ein Anordnungsfestlegungsmittel zum Festlegen einer tatsächlichen Anordnung des Anordnungselementes in einem Anordnungsbereich; und ein Anordnungsausgabemittel zum Ausgeben des Resultates des Festlegens der Anordnung; welches Anordnungsfestlegungsmittel umfaßt: ein Einheitsbereichsdatenspeichermittel zum Speichern von Einheitsbereichsdaten, die Einheitsbereiche darstellen, welche Einheitsbereiche erhalten werden, indem der Anordnungsbereich geteilt wird, wobei der Einheitsbereich eine minimale Einheit ist, in der das Anordnungselement anzuordnen ist; eine Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches, die für jeden Anordnungselementtyp vorgesehen sind, zum Speichern von Anordnungselementdaten, die Anordnungselemente darstellen, die in virtuellen Anordnungsbereichen virtuell angeordnet sind, wobei die virtuellen Anordnungsbereiche eine mehrschichtige Struktur haben, die ein Überlappen eines Anordnungselementes während eines Zwischenzustandes der Konstruktion zuläßt; ein Zeigerspeichermittel zum Spezifizieren von Anordnungselementdaten, die in den Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches gespeichert sind, denen die Einheitsbereiche entsprechen; und ein Anordnungssteuermittel zum Festlegen der Anordnung von Anordnungselementen in dem Anordnungsbereich, so daß die Anordnungselemente, deren Anordnungselementdaten in den virtuellen Anordnungsbereichen gespeichert sind, in jeweiligen Einheitsbereichen in dem Einheitsbereichsdatenspeichermittel angeordnet sind, entsprechend den Anordnungselementdaten, die durch das Zeigerspeichermittel spezifiziert werden.
  • Zum besseren Verstehen der vorliegenden Erfindung und um zu zeigen, wie dieselbe verwirklicht werden kann, wird nun als Beispiel Bezug auf die beiliegenden Figuren genommen, in denen:
  • Fig. 1 ein herkömmliches Anordnungs-/Leitungsführungskonstruktionssystem zeigt;
  • Fig. 2 eine Datenstruktur eines herkömmlichen Anordnungs-/Leitungsführungskonstruktionssystems zeigt;
  • Fig. 3 ein Anordnungsveränderungsverfahren auf der Basis eines herkömmlichen simulierten Annealverfahrens zeigt;
  • Fig. 4 ein Blockdiagramm von einem Beispiel für diese Erfindung ist;
  • Fig. 5 eine Konzeptansicht eines Anordnungsbereiches und eines virtuellen Anordnungsbereiches von einem Beispiel für diese Erfindung ist;
  • Fig. 6 ein Blockdiagramm ist, das eine Struktur einer Ausführungsform dieser Erfindung zeigt;
  • Fig. 7 eine Konzeptansicht einer Ausführungsform eines Anordnungskonstruktionssystems dieser Erfindung ist;
  • Fig. 8 eine Konzeptansicht eines Zellenbereiches und eines Einheitsbereiches bei einer Ausführungsform dieser Erfindung ist;
  • Fig. 9 ein erläuterndes Diagramm ist, das einen Redundanzgrad bei dieser Erfindung zeigt;
  • Fig. 10 ein Diagramm ist, das eine Datenstruktur bei einer Ausführungsform dieser Erfindung darstellt;
  • Fig. 11 ein erläuterndes Diagramm des Inhaltes von Daten ist, deren Struktur in Fig. 10 gezeigt ist;
  • Fig. 12 einen Algorithmus zum Anordnen einer Zelle durch eine Zellenbereichsbildungseinheit zeigt;
  • Fig. 13 eine Ausführungsform eines Algorithmus zum Verändern einer Anordnung zeigt, wenn keine Redundanz vorliegt;
  • Fig. 14 eine Ausführungsform eines Algorithmus zum Verändern einer Anordnung zeigt, wenn eine Redundanz vorliegt;
  • Fig. 15A einen Algorithmus zum Prüfen der Möglichkeit des Anordnens eines Elementes gemäß einem Beispiel für diese Erfindung zeigt;
  • Fig. 15B einen Algorithmus zum Prüfen der Möglichkeit des Anordnens eines Elementes nach einem Stand der Technik zeigt;
  • Fig. 16 ein Beispiel für eine Wahrscheinlichkeitsverteilung beim Bilden eines Koordinatenwertes zeigt;
  • Fig. 17 im Detail die Struktur einer Koordinatenpositionsbildungseinheit von einem Beispiel für diese Erfindung zeigt;
  • Fig. 18 einen Algorithmus für eine Koordinatenpositionsbildungseinheit von einem Beispiel für diese Erfindung zeigt; und
  • Fig. 19 einen Algorithmus eines simulierten Annealverfahrens zeigt, wenn ein Beispiel für diese Erfindung angewendet wird.
  • Diese Erfindung ist darauf gerichtet, ein Anordnungskonstruktionssystem vorzusehen, das den Konstruktionsprozeß bei einfacher Anwendung auf ein paralleles Rechnersystem beschleunigt.
  • Gemäß dieser Erfindung werden virtuelle Anordnungsbereiche zum virtuellen Anordnen von Anordnungselementen wie etwa einer Zelle und eines Anschlusses auf einer Speichereinheit für jeweilige Typen von Anordnungselementen festgelegt. Zeiger spezifizieren virtuelle Bereiche von Anordnungselementen, die in jeweiligen Einheitsbereichen eines Anordnungsbereiches angeordnet sind, zum Erhalten von Anordnungselementen, die in jeweiligen Einheitsbereichen angeordnet sind, auf der Basis von Anordnungselementdaten bezüglich jeweiliger Anordnungselemente in virtuellen Anordnungsbereichen, wodurch Anordnungselementdaten auf einem Anordnungsbereich erhalten werden.
  • Hierbei sollte das Wort "virtuell", das in dem Ausdruck "virtueller Anordnungsbereich" verwendet wird, erstens in der Bedeutung einer Prüfung einer optimalen Anordnung von virtuell angeordneten Anordnungselementen aufgefaßt werden, und zweitens in der Bedeutung einer Erlaubnis eines Überlappens einer Zelle durch eine mehrschichtige Struktur von virtuellen Bereichen (die später beschrieben sind) während eines Zwischenzustandes der Konstruktion, obwohl Zellen bei einer Anordnung in einer gedruckten Schaltungsplatte nicht gestapelt werden können.
  • Fig. 4 ist ein Blockdiagramm dieser Erfindung.
  • Zu Fig. 4:
  • 21 ist eine Anordnungs-/Leitungsführungseinheit, die durch eine zentrale Verarbeitungseinheit eines Computers und einen Hauptspeicher, eine externe Speichervorrichtung oder dergleichen strukturiert ist, zum Anordnen von Anordnungselementen;
  • 22 ist eine Anordnungselementspeichereinheit, die durch eine Speichervorrichtung innerhalb eines Computers oder eine externe Speichervorrichtung wie etwa eine Plattendateivorrichtung strukturiert ist, zum Speichern von Anordnungselementen (einer Zelle, eines Drahtes, etc.);
  • 22' sind Daten bezüglich eines Anordnungselementes A;
  • 22" sind Daten bezüglich eines Anordnungselementes B;
  • 23 ist eine Anordnungsdateneingabeeinheit zum Eingeben von Anordnungsdaten, die eine Drahtanordnungsbedingung definieren, wie etwa Drahtdaten einer Schaltung, die eine Vorrichtung umfassen kann, die Anordnungsdaten eingibt, die in einem magnetischen Medium wie z. B. auf einem Magnetband und in einer Plattenvorrichtung gespeichert sind, oder eine Eingabeeinheit wie z. B. eine Tastatur;
  • 24 sind Anordnungsdaten, die durch die Anordnungsdateneingabeeinheit 23 eingegeben werden;
  • 25 ist ein Parameter, der durch die Anordnungsdateneingabeeinheit 23 eingegeben wird, und drückt einen Parameter aus (wie eine Temperatur, wenn eine Anordnung durch ein simuliertes Annealverfahren (das später beschrieben wird) ausgeführt wird), der zum Bilden einer Koordinatenposition durch eine Koordinatenpositionsbildungseinheit 44 (die später beschrieben wird) erforderlich ist;
  • 29 ist eine Anordnungssteuereinheit, die durch ein Operationsprogramm zum Ausführen von jeweiligen Prozessen strukturiert ist, die auf einer zentralen Verarbeitungseinheit und einem Hauptspeicher entwickelt werden, zum Steuern einer Bildung von Anordnungsdaten.
  • 29' ist eine Speichereinheit, wie z. B. ein Hauptspeicher und ein externer Speicher, zum Speichern von Anordnungselementdaten in bezug auf Anordnungselemente in virtuellen Anordnungsbereichen und auf Einheitsbereichen;
  • 30 ist eine Einheitsbereichsdatenbildungseinheit zum Bilden eines Anordnungsbereiches, zum Teilen des Anordnungsbereiches in Einheitsbereiche, zum Zuordnen von Koordinatenpositionen und zum Setzen der Einheitsbereiche in eine Einheitsbereichsdatenspeichereinheit 31;
  • 31 ist eine Einheitsbereichsdatenspeichereinheit zum Speichern von Einheitsbereichen, die durch die Einheitsbereichsdatenbildungseinheit 30 gebildet werden;
  • 32 ist eine Zeigerbildungseinheit zum Bilden von Zeigern zum Spezifizieren von Anordnungselementen in virtuellen Anordnungsbereichen für jeweilige Einheitsbereiche;
  • 33 ist eine Zeigerspeichereinheit zum Speichern von Zeigern, die Anordnungselemente in jeweiligen Einheitsbereichen spezifizieren;
  • 34 und 35 sind eine Bildungseinheit eines Anordnungselementes A bzw. eine Bildungseinheit eines Anordnungselementes B, zum Bilden in jeweiligen virtuellen Speicherbereichen von Daten (z. B. bezüglich einer Position in Anordnungsbereichen, in denen das Anordnungselement A und das Anordnungselement B angeordnet sind) gemäß den Anordnungsdaten 24, von Daten bezüglich jeweiliger Anordnungselemente und Koordinatenpositionen, die durch die Koordinatenpositionsbildungseinheit 44 (die später beschrieben wird) gebildet werden;
  • 38 und 39 sind eine Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches bzw. eine Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches zum Speichern z. B. von Positionsdaten bezüglich der Anordnung in Anordnungsbereichen von Anordnungselementen A und B, die jeweilig in der Bildungseinheit 34 des Anordnungselementes A und in der Bildungseinheit 35 des Anordnungselementes B gebildet werden.
  • (Der Grund dafür, daß die zwei [2] Typen (d. h., A und B) von Anordnungselementen unterschieden werden, ist der, daß verschiedene Typen von Anordnungselementen, wie etwa eine Zelle, ein Anschluß, ein Draht und ein Durchgangsloch unterschieden werden müssen. Von diesen Anordnungselementen stellt Typ B jene dar, die für ihre Redundanzgrade Rechenschaft ablegen müssen.)
  • 42 ist eine Anordnungsdatenbildungseinheit zum Ausgeben von Anordnungsdaten bezüglich jeweiliger Anordnungselemente in einem Anordnungsbereich auf der Basis von virtuellen Anordnungsdaten von jeweiligen Anordnungselementen, die in der Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und in der Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 gespeichert sind, und von Anordnungsbereichsdaten, die in der Einheitsbereichsdatenspeichereinheit 31 gespeichert sind;
  • 43 ist eine Redundanzgradbestimmungseinheit zum Bestimmen eines Redundanzgrades, z. B. wenn dieselben Drähte in ein und demselben Einheitsbereich redundant angeordnet sind, und zum Registrieren des Redundanzgrades in einem Drahtbereich eines entsprechenden virtuellen Anordnungsbereiches;
  • 44 ist eine Koordinatenbildungseinheit zum Bilden einer Koordinatenposition zum Anordnen eines Anordnungselementes;
  • 45 ist eine Wahrscheinlichkeitsverteilungsbildungseinheit für die Koordinatenpositionsbildungseinheit 44, zum Bilden einer Wahrscheinlichkeitsverteilung, so daß eine Koordinatenposition nach einer Bildung gemäß einer Wahrscheinlichkeitsverteilung von einer Koordinatenposition vor einer Bildung festgelegt wird;
  • 46 ist ein Redundanzgradspeicherbereich zum Speichern des Redundanzgrades, der durch die Redundanzgradbestimmungseinheit 43 bestimmt wird;
  • 47 ist eine Anordnungsausgabeeinheit zum Ausgeben von Anordnungsdaten, die durch die Anordnungsdatenbildungseinheit 42 gebildet wurden, oder eines tatsächlichen Anordnungsbildes an ein Display oder einen Drucker; und
  • 48 ist eine Anordnungsveränderungsnotwendigkeitsbestimmungseinheit zum Bestimmen dessen, ob eine Anordnung gemäß der Anordnung, die durch die Anordnungsdatenbildungseinheit 42 gebildet wurde, verändert werden soll oder eine Anordnung an einer gegenwärtigen Koordinatenposition beibehalten werden soll.
  • Fig. 5 ist eine Konzeptansicht eines Anordnungsbereiches und eines virtuellen Anordnungsbereiches dieser Erfindung.
  • Bevor die Operationen der in Fig. 4 gezeigten Basiskonfiguration erläutert werden, werden die Konzepte eines Anordnungsbereiches und eines virtuellen Anordnungsbereiches dieser Erfindung an Hand von Fig. 5 erläutert.
  • 51 und 52 sind Gruppen von Einheitsbereichen, die in der Einheitsbereichsdatenspeichereinheit 31 gespeichert sind und jeweilig Koordinatenpositionen von Einheitsbereichen 51- 1 bis 51-4 und 52-1 bis 52-4 ausdrücken. Die Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 dient zum Beispiel zum Speichern von Positionsdaten bezüglich der Anordnung des Anordnungselementes A in einem Anordnungsbereich.
  • Die Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 hat eine [1] oder mehrere Schichten von virtuellen Anordnungsbereichen. 38' ist ein virtueller Anordnungsbereich des Anordnungselementes A. 38'-1 ist ein Speicherbereich in einer ersten Schicht, der dem Einheitsbereich 51-1 entspricht. 38'-2 ist ein Speicherbereich in einer zweiten Schicht, der dem Einheitsbereich 51-1 entspricht.
  • Die Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 hat eine [1] oder mehrere Schichten von virtuellen Anordnungsbereichen. 39' ist ein virtueller Anordnungsbereich des Anordnungselementes B. 39'-1 ist ein Speicherbereich in einer ersten Schicht, der dem Einheitsbereich 51-1 entspricht. 39'-2 ist ein Speicherbereich in einer zweiten Schicht, der dem Einheitsbereich 51-1 entspricht. 39'-3 ist ein Speicherbereich in einer dritten Schicht, der dem Einheitsbereich 51-1 entspricht. Die Zeigerspeichereinheit 33 speichert Zeiger für Anordnungselementdaten, die in den virtuellen Anordnungsbereichen 38' und 39' gespeichert sind, in bezug auf Anordnungselemente, die in jeweiligen Einheitsbereichen angeordnet sind.
  • Die Einheitsbereichsdatenspeichereinheit 31 speichert Einheitsbereichsdaten zum Spezifizieren eines Zeigers für Daten in einem virtuellen Anordnungsbereich hinsichtlich eines Anordnungselementes, das gegenwärtig in jedem Einheitsbereich angeordnet ist. Genauer gesagt, die Einheitsbereichsdatenspeichereinheit 31 bewirkt, daß die Zeigerspeichereinheit 33 in dem Einheitsbereich 51-1 Daten in bezug auf Zeiger für das Anordnungselement A und das Anordnungselement B speichert.
  • Der Zeiger für das Anordnungselement A spezifiziert den Speicherbereich 38'-1 (in dem virtuellen Anordnungsbereich des Anordnungselementes A 38') zum Speichern von Daten zum Spezifizieren von Daten bezüglich des Anordnungselementes A, das in dem Einheitsbereich 51-1 anzuordnen ist, z. B. von einer Zellennummer, wenn das Anordnungselement A eine Zelle ist.
  • Der virtuelle Anordnungsbereich des Anordnungselementes A 38' und der virtuelle Anordnungsbereich des Anordnungselementes B 39' haben mehrschichtige Strukturen.
  • Der Grund dafür, daß der virtuelle Anordnungsbereich des Anordnungselementes A 38' zwei [2] Speicherbereiche 38'- 1 und 38'-2 umfaßt, ist zum Beispiel der, daß zwei [2] Zellen in einem Einheitsbereich 51-1 während des Konstruierens gestapelt werden können.
  • Genauer gesagt, wenn der virtuelle Anordnungsbereich des Anordnungselementes A 38' nicht die vielen Speicherbereiche 38'-1 und 38'-2 hat, kann eine Zelle nur zu einem Einheitsbereich bewegt werden, in dem gegenwärtig keine Zelle angeordnet ist. Besonders wenn eine Zelle groß ist, wird es unmöglich, ihre Position zu verändern, wenn sie einmal festgelegt ist.
  • Wenn eine Vielzahl von virtuellen Anordnungsbereichen vorhanden ist, können andere Zellen zu einem Einheitsbereich bewegt werden, der zum Anordnen einer anderen Zelle dient. Ferner wird es möglich, die Zelle, die ursprünglich in dem Einheitsbereich angeordnet war, zu einem anderen Einheitsbereich zu bewegen.
  • Operationen gemäß der Basisstruktur, die in Fig. 5 gezeigt ist, werden unter Bezugnahme auf Fig. 5 (und Fig. 4) erläutert.
  • Die Anordnungs-/Leitungsführungseinheit 21 liest und empfängt Daten bezüglich des Anordnungselementes A und des Anordnungselementes B aus der Anordnungselementspeichereinheit 22 und empfängt Anordnungsdaten und einen Parameter von der Anordnungsdateneingabeeinheit 23.
  • Diese Erfindung ist darauf gerichtet, eine wünschenswertere Anordnung durch mehrmaliges Verändern von Anordnungen zu erhalten. Daher ist eine Anfangsanordnung zum Initiieren einer Anordnungsveränderung erforderlich, die auf die eine oder andere Art, z. B. wahllos, erzeugt werden muß.
  • Die Einheitsbereichsdatenbildungseinheit 30 teilt die Gruppe von Einheitsbereichen 51 und 52 in einem Anordnungsbereich in Einheitsbereiche 51-1 bis 51-4 und 52-1 bis 52-4, indem ihnen Koordinatenpositionen zugeordnet werden.
  • Die Bildungseinheit 34 des Anordnungselementes A und die Bildungseinheit 35 des Anordnungselementes B bilden jeweilig Daten bezüglich des Anordnungselementes A und des Anordnungselementes B in Entsprechung zu jeweiligen virtuellen Anordnungsbereichen auf der Basis von Anordnungsdaten 24. Wenn zum Beispiel sowohl das Anordnungselement A als auch das Anordnungselement B in dem Einheitsbereich 51-1 angeordnet ist, wird das Anordnungselement A virtuell in dem Speicherbereich 38'-1 des virtuellen Anordnungsbereiches 38' in der Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 in dem Einheitsbereich 51-1 angeordnet. Ähnlich wird das Anordnungselement B virtuell in dem Speicherbereich 39'-1 des virtuellen Anordnungsbereiches 39' in der Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 in dem Einheitsbereich 51- 1 angeordnet.
  • Gleichzeitig bildet die Zeigerbildungseinheit 32 in Entsprechung zu der Nummer, die eine Position eines Einheitsbereiches ausdrückt, einen Zeiger für Daten bezüglich eines Anordnungselementes, das in dem Einheitsbereich angeordnet ist, für ein Speichern in einer Zeigereinheit 33.
  • Die Anordnungsdatenbildungseinheit 42 erhält aus virtuellen Anordnungen von jeweiligen Anordnungselementen, die durch die Zeigerspeichereinheit 33 spezifiziert sind, in jeweiligen Einheitsbereichen die Typen und Nummern von Anordnungselementen, die in jeweiligen Einheitsbereichen angeordnet sind, zum Bilden von Anordnungsdaten in der Einheitsbereichsdatenspeichereinheit 30. Gemäß dem Zeiger der Zeigerspeichereinheit 33 für das Anordnungselement A in dem Einheitsbereich 51-1 erhält zum Beispiel die Anordnungsdatenbildungseinheit 22 virtuelle Anordnungsdaten bezüglich des Anordnungselementes A in dem Speicherbereich 38'-1 des Einheitsbereiches 51-1. Gemäß dem Zeiger der Zeigerspeichereinheit 33 für das Anordnungselement B in dem Einheitsbereich 51-1 erhält auch die Anordnungsdatenbildungseinheit 42 virtuelle Anordnungsdaten bezüglich des Anordnungselementes B in dem Speicherbereich 39'-1 des Einheitsbereiches 51- 1. Dann bildet die Anordnungsdatenbildungseinheit 22 Anordnungsdaten bezüglich des Anordnungselementes A und des Anordnungselementes B, die in dem Einheitsbereich 51-1 angeordnet sind. Die Anordnungsdatenbildungseinheit 42 bildet somit Anordnungsdaten für alle Einheitsbereiche zur Ausgabe an die Anordnungsausgabeeinheit 47.
  • Die Anordnungsausgabeeinheit 47 umfaßt zum Beispiel ein Display zum Anzeigen eines Einheitsbereiches in Entsprechung zu Daten, die in der Einheitsbereichsdatenspeichereinheit 31 gespeichert sind, in einem Gitterbild auf einem Bildschirm und zum Ausgeben von Bildern des Anordnungselementes A und des Anordnungselementes B, die in dem Einheitsbereich 51-1 angeordnet sind.
  • Die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 empfängt die Anordnungsdaten, die durch die Anordnungsdatenbildungseinheit 42 gebildet wurden, und bestimmt stochastisch, ob die Anordnung eines Anordnungselementes auf der Basis einer neu gebildeten Anordnung verändert werden soll oder die gegenwärtige Anordnung beibehalten werden soll. Die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 berechnet Leitungsführungskosten oder eine Leitungsführungsenergie (die später beschrieben wird) für die Drahtlänge auf der Basis der neuen Anordnung. Die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 bildet einen Index zum stochastischen Bestimmen der Notwendigkeit einer Anordnungsveränderung auf der Basis der Leitungsführungskosten oder der Leitungsführungsenergie. Dann wird eine Zufallszahl zum Bestimmen der Anordnungsveränderung durch einen Vergleich mit dem Index erzeugt. (Zum Beispiel werden Anordnungselemente anders angeordnet, falls eine erzeugte Zahl kleiner als der Index ist, und sonst "so wie sie sind" beibehalten.) Beim positiven Entscheiden über eine Ausführung einer Anordnungsveränderung verändert die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 die Anordnung eines Anordnungselementes gemäß der neuen Anordnung. Beim negativen Entscheiden über eine Ausführung einer Anordnungsveränderung behält die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 die alte Anordnung bei. Dann instruiert die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 die Koordinatenpositionsbildungseinheit 44, eine nächste Koordinatenposition zu bilden.
  • Bei Empfang einer Instruktion von der Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 48 erzeugt die Koordinatenpositionsbildungseinheit 44 eine andere Koordinatenposition. Jeweilige Datenbildungseinheiten (die Bildungseinheit 34 des Anordnungselementes A, die Bildungseinheit 35 des Anordnungselementes B, die Einheitsbereichsdatenbildungseinheit 30 und die Zeigerbildungseinheit 32) bilden Anordnungsdaten für das Anordnungselement A und das Anordnungselement B zum Speichern in der Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38, der Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39, der Einheitsbereichsdatenspeichereinheit 31 und der Zeigerspeichereinheit 33. Danach werden gemäß dem zuvor beschriebenen Prozeß die neuen Anordnungsdaten gebildet.
  • Diese Erfindung ist so, daß eine Koordinatenpositionsbildung durch die Koordinatenpositionsbildungseinheit 44 nicht ohne Berücksichtigung der Koordinatenposition vor der Koordinatenpositionsbildung erfolgt, sondern so, daß eine Koordinatenposition, die mit der Koordinatenposition vor der Koordinatenpositionsbildung in Wechselbeziehung steht, gemäß der Wahrscheinlichkeitsverteilung erzeugt wird, die durch die Wahrscheinlichkeitsverteilungsbildungseinheit 45 gebildet wird, wodurch bedeutungslose Anordnungsveränderungen minimiert werden.
  • Wenn ferner das Anordnungselement B zum Beispiel ein Draht ist, kann es sein, daß dieselben Drähte in ein und demselben Einheitsbereich eines Anordnungsbereiches redundant angeordnet sind. Diese Erfindung ist so, daß die Redundanzgradbestimmungseinheit 43 solch einen Redundanzgrad bestimmt und die Anordnung/Leitungsführung durch Registrieren des Redundanzgrades ausdrückt. Deshalb können nicht mehrere Schichten mit denselben Drähten in einem virtuellen Anordnungsbereich in Entsprechung zu ein und derselben Koordinatenposition angeordnet werden.
  • Eine Eingabe für die Redundanzgradbestimmungseinheit 43 ist eine Ausgabe von einer Anordnungselementbildungseinheit (z. B. des Bildungsmittels 35 des Anordnungselementes B, das in Fig. 4 gezeigt ist), die eine Bestimmung eines Redundanzgrades verlangt. Die Redundanzgradspeichereinheit 46 speichert eine Ausgabe von der Redundanzgradbestimmungseinheit 43.
  • Die Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 enthält Daten, die in einem Redundanzgradspeicherbereich 46 gespeichert sind, die eine Eingabe für die Anordnungsdatenbildungseinheit 42 sein werden.
  • Diese Erfindung ist so, wie oben beschrieben, daß die Einheitsbereichsdatenspeichereinheit 31 einen Zeiger für einen virtuellen Anordnungsbereich speichert, der Anordnungselementdaten bezüglich eines Anordnungselementes speichert, das in jedem Einheitsbereich anzuordnen ist. Wenn zum Beispiel eine Zelle in dem Einheitsbereich 51-1 zu bewegen ist, braucht nur auf die Speicherbereiche 38'-1 und 38'-2 in dem Bereich 38' des Anordnungselementes A des virtuellen Anordnungsbereiches in der Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 in Entsprechung zu der Zelle zugegriffen zu werden, um zu prüfen, ob in dem Einheitsbereich 51-1 schon eine andere Zelle angeordnet ist. Da es dadurch nicht notwendig ist, auf alle Zellendaten zuzugreifen, wie nach Stand der Technik, kann die Verarbeitungszeit beträchtlich reduziert werden.
  • Obwohl Fig. 4 eine Struktur zeigt, bei der die Einheitsbereichsdatenspeichereinheit 31, die Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und die Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 alle verschieden sind, können diese in einem tatsächlichen Computer in verschiedenen Speicherbereichen derselben Speichereinheit realisiert werden.
  • Fig. 6 ist ein Blockdiagramm, das eine Struktur einer Ausführungsform dieser Erfindung zeigt.
  • Genauer gesagt, Fig. 6 zeigt eine Struktur, wenn eine Anordnung von Schaltungselementen in einer integrierten Schaltungsplatte oder einer gedruckten Schaltungsplatte konstruiert wird.
  • Zu Fig. 6:
  • 56 ist eine Anordnungs-/Leitungsführungseinheit;
  • 57 ist eine Anordnungselementedatei zum Speichern von Zellendaten, Anschlußdaten, Drahtdaten und Durchgangslochdaten;
  • 58 ist eine Anordnungsdateneingabeeinheit z. B. zum Eingeben von Anordnungsdaten und einem Parameter, die z. B. eine Magnetbandvorrichtung, eine Magnetplattenvorrichtung oder eine Tastatur umfaßt;
  • 60 ist eine Anordnungssteuereinheit;
  • 61 ist eine Speichereinheit;
  • 70 ist eine Einheitsbereichsdatenbildungseinheit;
  • 71 ist eine Einheitsbereichsdatenspeichereinheit;
  • 72 ist eine Zeigerbildungseinheit;
  • 72' ist eine Zeigereinheit;
  • 73 ist eine Speichereinheit einer virtuellen Anordnung;
  • 74 ist eine Zellenanordnungsbildungseinheit zum Bilden von Daten bezüglich des Anordnens einer Zelle, die auf einer integrierten Schaltungsplatte oder einer gedruckten Schaltungsplatte angeordnet ist;
  • 75 ist eine Anschlußanordnungsbildungseinheit zum Bilden von Daten bezüglich des Anordnens eines Anschlusses;
  • 76 ist eine Durchgangslochanordnungsbildungseinheit zum Bilden von Daten bezüglich des Anordnens eines Durchgangslochs;
  • 77 ist eine Drahtanordnungsbildungseinheit zum Bilden von Daten bezüglich des Anordnens eines Drahtes;
  • 78 (ist einer von der in Fig. 4 gezeigten Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 äquivalent) ist eine Zellenanordnungsspeichereinheit zum Speichern von Zellenanordnungsdaten, die in der Zellenanordnungsbildungseinheit 74 gebildet werden;
  • 79 (ist einer von der in Fig. 4 gezeigten Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 äquivalent) ist eine Anschlußanordnungsspeichereinheit zum Speichern von Anschlußanordnungsdaten, die durch die Anschlußanordnungsbildungseinheit 75 gebildet werden;
  • 80 (ist einer von der in Fig. 4 gezeigten Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 äquivalent) ist eine Durchgangslochanordnungsspeichereinheit zum Speichern von Durchgangslochdaten, die durch die Durchgangslochanordnungsbildungseinheit 76 gebildet werden;
  • 81 (ist einer von der in Fig. 4 gezeigten Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 äquivalent) ist eine Drahtanordnungsspeichereinheit zum Speichern von Drahtanordnungsdaten, die durch die Drahtanordnungsbildungseinheit 77 gebildet werden;
  • 83 ist eine Redundanzgradbestimmungseinheit;
  • 84 ist eine Koordinatenpositionsbildungseinheit;
  • 85 ist eine Wahrscheinlichkeitsverteilungsbildungseinheit;
  • 87 ist eine Anordnungsveränderungsnotwendigkeitsbestimmungseinheit; und
  • 88 ist eine Anordnungsausgabeeinheit.
  • Fig. 7 ist eine Konzeptansicht einer Ausführungsform eines Anordnungskonstruktionssystems dieser Erfindung.
  • Fig. 7 zeigt die Operationen einer Ausführungsform, die in Fig. 6 dargestellt ist.
  • Zu Fig. 7:
  • 81A und 81B (die der in Fig. 4 gezeigten Speichereinheit der Position des Anordnungselementes A innerhalb eines virtuellen Anordnungsbereiches 38 und Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 39 äquivalent sind) sind Drahtanordnungsspeichereinheiten zum Speichern von Drahtanordnungsdaten, die durch die Drahtanordnungsbildungseinheit 77 gebildet werden;
  • 91 und 93 sind Einheitsbereiche in einem Anordnungsbereich zum Anordnen einer Zelle oder eines Drahtes;
  • 92 ist ein Einheitsbereich zum Anordnen eines Drahtes, eines Anschlusses oder eines Durchgangslochs;
  • 96-1 bis 96-6, 96'-1 und 96'-2 sind virtuelle Drahtbereiche zum virtuellen Anordnen von Drähten, wobei 96-1 und 96'-1 in einer ersten Schicht, 96-2 und 96'-2 in einer zweiten Schicht, 96-3, 96-4, 96-5 und 96-6 jeweilig in dritten, vierten, fünften und sechsten Schichten liegen;
  • 96-1 bis 96-6 sind virtuelle Drahtbereiche zum virtuellen Anordnen von Drähten, die dem Einheitsbereich 91 entsprechen;
  • 96'-1 und 96'-2 sind virtuelle Drahtbereiche zum virtuellen Anordnen von Drähten, die dem Einheitsbereich 92 entsprechen;
  • 97-1, 97-2 und 97-3 sind virtuelle Zellenbereiche zum virtuellen Anordnen von Zellen jeweilig in ersten, zweiten und dritten Schichten, die jeweils eine virtuelle Anordnung einer Zelle ausdrücken und dem Einheitsbereich 91 entsprechen;
  • 98 ist ein virtueller Durchgangslochbereich zum virtuellen Anordnen eines Durchgangslochs, der dem Einheitsbereich 92 entspricht;
  • 99-1 und 99-2 sind virtuelle Anordnungsbereiche zum virtuellen Anordnen von Anschlüssen, die dem Einheitsbereich 92 entsprechen, in ersten bzw. zweiten Schichten.
  • Die Drahtanordnungsspeichereinheiten 81A und 81B sind im Zusammenhang mit der tatsächlichen Konstruktion einer integrierten Schaltung separat vorgesehen. Da nur ein bezeichneter Bereich in einer Platte zum Anordnen einer Zelle zur Verfügung steht, steht der Rest (Drahtanordnungsspeichereinheit 81B) zum Anordnen eines Drahtes (d. h., zur Leitungsführung eines Drahtes) zur Verfügung, ist aber nicht zum Anordnen einer Zelle verfügbar. Von dem bezeichneten Bereich in der Platte ist ein Teil, der nicht zum Anordnen einer Zelle verwendet wird (Drahtanordnungsspeichereinheit 81A), zum Anordnen eines Drahtes (d. h., zur Leitungsführung eines Drahtes) verfügbar.
  • Die Operationen dieser Ausführungsform, die die in Fig. 6 gezeigte Struktur hat, werden unter Bezugnahme auf Fig. 7 erläutert.
  • Die Anordnungs-/Leitungsführungseinheit 56 liest aus der Anordnungselementedatei 57 Zellendaten, wie etwa in bezug auf Zellennamen und Zellendimensionen, Anschlußdaten, wie etwa in bezug auf Anschlußnamen und Anschlußdimensionen, Drahtdaten, wie etwa in bezug auf Drahtnamen und Drahtbreiten, und Durchgangslochdaten. Die Anordnungs-/Leitungsführungseinheit 56 empfängt auch Schaltungsdrahtdaten von der Anordnungsdateneingabeeinheit 58.
  • Hierbei sind Drahtdaten in der Anordnungselementedatei 57 Daten in bezug auf Drahtattribute, wie z. B. die Breite eines einzelnen Drahtes, während Drahtdaten in der Anordnungsdateneingabeeinheit 58 konkrete Daten in bezug auf individuelle Leitungsführungswege sind, wie z. B. die Drahtnummer in einem besonderen Einheitsbereich.
  • Die Einheitsbereichsdatenbildungseinheit 70 bildet einen Anordnungsbereich, den sie in Einheitsbereiche (91, 92 und 93, in Fig. 7 gezeigt) teilt, indem sie Einheitsbereichsnummern zuordnet, und die Einheitsbereichsdatenspeichereinheit 71 speichert die Koordinatenpositionen von jeweiligen Einheitsbereichen.
  • Die Koordinatenpositionsbildungseinheit 84 empfängt von der Anordnungsdateneingabeeinheit 58 Anordnungsdaten und einen Parameter. Die Wahrscheinlichkeitsverteilungsbildungseinheit 85 bildet Anordnungsdaten zum virtuellen Anordnen von Anordnungselementen auf der Basis von Anordnungsdaten und einer Zellenkoordinatenposition und legt eine Koordinatenposition zum Anordnen einer Zelle auf der Basis der Wahrscheinlichkeitsverteilung (Nummer des Einheitsbereiches zum Anordnen einer Zelle) fest. Wenn zum Beispiel eine Koordinatenposition einer Zelle verändert wird, empfängt die Koordinatenpositionsbildungseinheit 84 als Anordnungsdaten die ursprüngliche Koordinatenposition der Zelle.
  • Die Zellenanordnungsbildungseinheit 74 bildet Anordnungsdaten zum virtuellen Anordnen einer Zelle auf der Basis der gebildeten Koordinatenposition zum Speichern in der Zellenanordnungsspeichereinheit 78.
  • Die Anschlußanordnungsbildungseinheit 75, die Durchgangslochanordnungsbildungseinheit 76 und die Drahtanordnungsbildungseinheit 77 bilden Anordnungsdaten zum virtuellen Anordnen von jeweiligen Anordnungselementen auf der Basis der Anordnungsdaten und der Zellenkoordinatenpositionen zum jeweiligen Speichern in der Anschlußanordnungsspeichereinheit 79, der Durchgangslochanordnungsspeichereinheit 80 und der Drahtanordnungsspeichereinheit 81.
  • Die Zeigerbildungseinheit 72 bildet Zeiger zum Spezifizieren von virtuellen Anordnungsbereichen von Anordnungselementen, die in jeweiligen Einheitsbereichen angeordnet sind, zum Speichern in der Zeigerspeichereinheit 72'.
  • Die Anordnungsdatenbildungseinheit 82 bildet Anordnungsdaten, indem sie ein Anordnungselement erhält, das in jeweiligen Einheitsbereichen angeordnet ist, aus Anordnungsdaten bezüglich des Anordnungselementes in einem virtuellen Anordnungsbereich, der durch einen Zeiger gemäß der Zeigerspeichereinheit 72' spezifiziert wird. Das heißt, die Anordnungsdatenbildungseinheit 82 erhält Anordnungselementdaten, die in jedem Einheitsbereich anzuordnen sind, und konvertiert sie in ein Format, das für die Anordnungsausgabeeinheit 88 akzeptabel ist.
  • Die Anordnungsausgabeeinheit 88 empfängt Anordnungsdaten, die von der Anordnungsdatenbildungseinheit 82 ausgegeben werden, und zeigt eine erhaltene Anordnung (eine Zellenanordnung, einen Anschluß, der mit einer Zelle verbunden ist, ein Draht, der zwischen Anschlüssen und zwischen Durchgangslöchern verbindet) in einem tatsächlichen Anordnungsbild auf einem Display an.
  • Ferner nimmt die Anordnungsveränderungsnotwendigkeitsbestimmungseinheit 87 Anordnungsdaten auf, die durch die Anordnungsdatenbildungseinheit 82 gebildet wurden, zum Bestimmen dessen, ob die erhaltene Anordnung als neue Anordnung festzulegen ist oder die gegenwärtige Anordnung beizubehalten ist. Das Verfahren zum Bestimmen der Notwendigkeit einer Anordnungsveränderung wird später beschrieben.
  • Die Redundanzgradbestimmungseinheit 83 zählt die Redundanzgrade, wenn dieselben Drähte in ein und demselben Einheitsbereich angeordnet sind, und registriert die Redundanzgrade in den virtuellen Drahtbereichen zum virtuellen Anordnen von Drähten (z. B. 96-1 bis 96-6, 96'-1 und 96'-2, die in Fig. 7 gezeigt sind), die dem Einheitsbereich entsprechen. Dies dient dazu, zu verhindern, daß dieselben Drähte in mehreren Schichten in einem virtuellen Anordnungsbereich gestapelt werden.
  • Fig. 8 ist eine Konzeptansicht eines Zellenbereiches und eines Einheitsbereiches in einer Ausführungsform dieser Erfindung.
  • Der Zellenbereich entspricht den virtuellen Zellenbereichen 97-1, 97-2 und 97-3, die in Fig. 7 gezeigt sind. Die Sektion (a) zeigt einen Anordnungsbereich, wenn ein Gate-Array angeordnet ist.
  • 130 ist ein Anordnungsbereich, 131, 132 und 133 sind Anordnungsbereiche von Gate-Arrays, und 134 ist ein Einheitsbereich (BC). Die Sektion (a) zeigt den Fall, wenn ein Einheitsbereich eine Basiszelle ist, die eine Zelleneinheit eines Gate-Arrays ist. 135 ist ein Kanalbereich, der zwischen dem Anordnungsbereich 131 eines Gate-Arrays und dem Anordnungsbereich 132 eines Gate-Arrays und zwischen dem Anordnungsbereich 132 eines Gate-Arrays und zwischen dem Anordnungsbereich 133 eines Gate-Arrays liegt. Der Kanalbereich 135 entspricht dem Einheitsbereich 92, der in Fig. 7 gezeigt ist. (Obwohl nicht gezeigt, ist auch ein Kanalbereich in Einheitsbereiche geteilt.)
  • Die Sektion (b) zeigt den Fall, wenn eine einzelne Zelle, die über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist, in Zellenbereichen einer einzelnen Schicht angeordnet ist.
  • In der Sektion (b) ist 140 eine Zelle C, die auf drei [3] Einheitsbereichen angeordnet ist. Die Teile [1], [2] und [3], die in Einheitsbereichen angeordnet sind, bezeichnen die relativen Positionen. 141, 142 und 143 sind der Zellenbereich 1, der Zellenbereich 2 bzw. der Zellenbereich 3.
  • Da die Koordinatenpositionen zum virtuellen Anordnen der Zelle C (140) in dem Zellenbereich 1 und dem Zellenbereich 2 nicht frei sind, ist der Fall gezeigt, bei dem die Zelle C (140) virtuell in dem Zellenbereich 3 angeordnet ist. Die Zelle C (140) ist, wie in der Sektion (b) gezeigt, in Einheitsbereichen durch ein Teilen in [1], [2] und [3], die die relativen Positionen bezeichnen, angeordnet.
  • Die Sektion (c) zeigt den Fall, wenn eine einzelne Zelle, die über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist, über Zellenbereiche in verschiedenen Schichten hinweg angeordnet ist.
  • In der Sektion (c) ist 145 eine Zelle C, die über drei [3] Einheitsbereiche hinweg angeordnet ist. Die Teile [1], [2] und [3], die in Einheitsbereichen angeordnet sind, bezeichnen die relativen Positionen. 146, 147 und 148 sind der Zellenbereich 1, der Zellenbereich 2 bzw. der Zellenbereich 3.
  • Da die Koordinatenpositionen zum virtuellen Anordnen der Teile [1] und [2] der Zelle C (145) in dem Zellenbereich 1 und dem Zellenbereich 2 nicht frei sind, sind die Teile [1] und [2] der Zelle C (145) virtuell in dem Zellenbereich 3 angeordnet, wie in Sektion (c) gezeigt. Da ferner der Zellenbereich 1 nicht frei ist, aber der Zellenbereich 2 (147) als Position zum Anordnen von [3] der Zelle C (145) frei ist, wird Teil [3] der Zelle C (145) virtuell in dem Zellenbereich 2 (147) angeordnet.
  • Fig. 9 ist ein erläuterndes Diagramm, das einen Redundanzgrad dieser Erfindung zeigt.
  • In der Sektion (a) ist 151 ein Einheitsdrahtbereich (der einem der Einheitsbereiche 91, 92 und 93 entspricht, die in Fig. 7 gezeigt sind), dessen Koordinatenposition (1, 1) lautet. 152 ist ein Einheitsdrahtbereich, dessen Koordinatenposition (1, 3) lautet. 153, 154 und 155 sind Drähte, die die Drahtnummern 105, 105 und 297 haben. In der Sektion (b) ist 156 der Redundanzgrad in einem Einheitsdrahtbereich (1, 1). In der Sektion (c) ist 157 ein Redundanzgrad in einem Einheitsdrahtbereich (1, 3).
  • Beim Anordnen eines Drahtes gibt es den Fall, daß Drähte desselben Typs (Drähte, die ein und dieselbe Drahtnummer haben) in demselben Einheitsbereich angeordnet sind. Wenn solche Drähte virtuell in virtuellen Anordnungsbereichen angeordnet werden, registriert ein virtueller Anordnungsbereich in einer einzelnen Schicht einen Redundanzgrad von Drähten, statt die Drähte in mehreren Schichten anzuordnen.
  • Wenn eine Drahtnummer 105 und eine Drahtnummer 297 verdrahtet werden, wie in Sektion (b) gezeigt, registriert eine Schichtnummer 1, da zwei [2] mit der Drahtnummer 105 in einem virtuellen Anordnungsbereich angeordnet sind, der dem Einheitsdrahtbereich (1, 1) entspricht, die Drahtnummer 105 und einen Redundanzgrad 2. Da eine Drahtnummer 297 in dem Einheitsdrahtbereich 1 mit der Koordinatenposition (1, 1) angeordnet ist, registriert dann die Schichtnummer 2 die Drahtnummer 297 mit dem Redundanzgrad 1.
  • Da ähnlich ein Einheitsdrahtbereich mit der Koordinatenposition (1, 3) jeweils einen [1] Draht mit der Drahtnummer 105 und der Drahtnummer 297 hat, wie in Sektion (c) gezeigt, registriert die Schichtnummer 1 die Drahtnummer 105 mit dem Redundanzgrad 1, und die Schichtnummer 2 registriert die Drahtnummer 297 mit dem Redundanzgrad 2.
  • Fig. 10 ist ein Diagramm, das eine Datenstruktur in einer Ausführungsform dieser Erfindung zeigt.
  • Es zeigt den Fall, wenn ein Gate-Array in einer Datenstruktur angeordnet ist, wobei ein herkömmliches Anordnungsverfahren und ein Anordnungsverfahren dieser Erfindung gemischt sind. Da die Datenstruktur des herkömmlichen Anordnungsverfahrens dieselbe wie jene ist, die in Fig. 2 gezeigt ist, ist deren Struktur hier nicht gezeigt.
  • Zu Fig. 10:
  • 71 ist eine Einheitsbereichsdatenspeichereinheit;
  • 73 ist eine Speichereinheit einer virtuellen Anordnung (Speichereinheit von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches);
  • 170 sind Daten, die Anordnungsdrahtdaten eines Gate- Arrays bezeichnen;
  • 171 ist ein Zeiger für Daten (wie etwa Zellendaten in der Anordnungselementedatei 57, die in Fig. 6 gezeigt ist) gemäß einem herkömmlichen Anordnungs-/Leitungsführungsverfahren;
  • 172 sind Zeiger für Daten gemäß einem Anordnungs- /Leitungsführungsverfahren dieser Erfindung;
  • 173 sind Zeiger für Speicherbereiche von jeweiligen Anordnungselementen, die Entsprechungen zu Einheitsbereichen aufweisen;
  • 72' ist eine Zeigerspeichereinheit zum Ausdrücken eines Zeigers für einen Speicherbereich (Zellenbereich, Drahtbereich, etc.) von virtuellen Anordnungsdaten bezüglich eines Anordnungselementes;
  • 175 sind Daten bezüglich eines Zellenbereiches, der zum Speichern einer Einheitsbereichsnummer (Koordinatenposition) zum Anordnen einer Zelle in Entsprechung zu jeder Zellennummer dient; und
  • 176 sind Daten bezüglich eines Drahtbereiches zum Speichern eines Redundanzgrades und einer Koordinatenposition in Entsprechung zu der Nummer eines Drahtbereiches.
  • Eine Datenstruktur dieser Erfindung ist so, daß die Einheitsbereichsdatenspeichereinheit 71 bewirkt, daß ein Zeiger für jedes Anordnungselement, das durch einen Zeiger in jedem Einheitsbereich spezifiziert wird, ein Anordnungselement spezifiziert, das in jedem Einheitsbereich angeordnet ist. Als solche hat die Zeigerspeichereinheit 72' einen Inhalt zum Spezifizieren von Kombinationen zwischen virtuellen Anordnungen einer Zelle, eines Anschlusses und eines Drahtes, die jeweils in Einheitsbereichen angeordnet sind, und Einheitsbereichen jeweilig zum Anordnen einer Zelle, zum Anordnen eines Anschlusses, der mit einer Zelle verbunden ist, und zum Anordnen eines Drahtes, der Anschlüsse verbindet.
  • Die in Fig. 10 gezeigte Datenstruktur wird unten detaillierter erläutert. Erstens umfassen die Zeiger 173 in der Einheitsbereichsdatenspeichereinheit 71 für alle Einheitsbereiche einen Zeiger für eine Einheitsbereichsnummer (z. B. 1), einen Zeiger für Einheitsbereichsdaten (z. B. Daten diesbezüglich, ob der Einheitsbereich 1 angeordnet werden kann) und einen Zeiger für einen Anordnungselementbereich. Der Einheitsbereich, auf den ein Zeiger für einen Zellenbereich zeigt, hat Daten bezüglich der Zellennummer einer Zelle, die in dem Einheitsbereich 1 angeordnet ist. Dann hat der Einheitsbereich, auf den ein Zeiger für einen Drahtbereich zeigt, Daten bezüglich der Drahtnummer eines Drahtes, der in dem Einheitsbereich 1 angeordnet ist.
  • Fig. 11 ist ein erläuterndes Diagramm des Inhaltes von Daten, deren Struktur in Fig. 10 gezeigt ist.
  • Gemäß dieser Erfindung speichert die Speichereinheit der virtuellen Anordnung 73 in Entsprechung zu jeweiligen Einheitsbereichen in der Einheitsbereichsdatenspeichereinheit 71 konkrete Daten bezüglich eines Anordnungselementes (z. B. einer Zelle), das in den Einheitsbereichen anzuordnen ist. Die Koordinatenwerte bezeichnen die Positionen der Einheitsbereiche. Zum Beispiel bezeichnen die Daten innerhalb eines virtuellen Anordnungsbereiches für den Einheitsbereich, dessen Koordinatenwert (1, 1) lautet, das "Anordnen einer ersten BC (Basiszelle) in der Zelle, deren Zellennummer 37 lautet". Da ferner die Daten innerhalb eines virtuellen Anordnungsbereiches für den Einheitsbereich, dessen Koordinatenwert (15, 27) lautet, die Erlaubnis des temporären Anordnens von mehreren Zellen bezeichnen, hat der entsprechende virtuelle Bereich eine Vielzahl von Schichten.
  • Da andererseits gemäß dem herkömmlichen System, das in Fig. 2 gezeigt ist, zum Beispiel der Zellenbereich 17 für eine Zelle eine Koordinatenposition zum Anordnen einer Zelle in Entsprechung zu einer Zellennummer speichert, wie es zuvor beschrieben wurde, müssen dann, wenn eine Zelle an einer besonderen Position angeordnet wird, die Anordnungspositionen von allen Zellen geprüft werden, um die Möglichkeit des Anordnens einer neuen Zelle an ihr zu überprüfen.
  • Fig. 12 zeigt einen Algorithmus zum Anordnen einer Zelle.
  • Die Zellenanordnungsbildungseinheit 74, die in Fig. 6 gezeigt ist, führt diesen Algorithmus aus.
  • (1) Bestimmen, ob alle Teile (z. B. drei [3] Teile [1], [2] und [3] von Zelle C, die in Fig. 8 gezeigt ist) einer Zelle vollständig behandelt worden sind. Bei Vollendung enden die Prozesse. Anderenfalls erfolgt ein Übergang zu (2).
  • (2) Selektieren eines Teils der Zelle, der nicht behandelt worden ist.
  • (3) Erhalten eines Einheitsbereiches, der einer Zellenposition und einer relativen Position (relative Positionen von jeweiligen Teilen in einer Zelle, wenn die Zelle über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist) des selektierten Teils in der Zelle entspricht.
  • (4) Im Falle einer Anordnung: Anordnen eines selektierten Teils in einem Einheitsbereich. Genauer gesagt, die Zellenanordnungsspeichereinheit 78, die in Fig. 7 gezeigt ist, bewirkt, daß ihr Zellenbereich Daten bezüglich des selektierten Teils speichert, und die Zeigerspeichereinheit 72' stellt einen Zeiger auf sie. Im Falle einer Entfernung:
  • Entfernen eines selektierten Teils aus einem Einheitsbereich in einer Zelle.
  • (5) Bestimmen, ob die Prozesse erfolgreich gewesen sind. Falls die Prozesse erfolgreich gewesen sind, erfolgt eine Rückkehr zu (1), wodurch die Prozesse nach (1) wiederholt werden. Falls die Prozesse nicht erfolgreich sind, wird das Resultat nach außen ausgegeben. Falls eine gewünschte Position zum Anordnen einer Zelle eine Anordnung einer Zelle verbietet, wird bestimmt, daß die Verarbeitung ein Fehler ist.
  • Fig. 13 zeigt eine Ausführungsform eines Algorithmus für eine Anordnungsveränderung, wenn keine Redundanz vorliegt.
  • Die Zellenanordnungsbildungseinheit 74, die Anschlußanordnungsbildungseinheit 75 und die Durchgangslochanordnungsbildungseinheit 76 führen diesen Algorithmus aus. Der Algorithmus wird unten gemäß den in Fig. 9 gezeigten Nummern erläutert.
  • (1) Empfang einer Instruktion zum Anordnen eines Anordnungselementes in einem virtuellen Anordnungsbereich oder einer Instruktion zum Entfernen eines Anordnungselementes aus einem virtuellen Anordnungsbereich.
  • (2) Bestimmen, ob es eine Instruktion zum Anordnen oder zum Entfernen eines Anordnungselementes ist. Im Falle eines Anordnens erfolgt ein Übergang zu (3), und im Falle eines Entfernens erfolgt ein Übergang zu (8).
  • (3) Im Falle eines Anordnens: Bestimmen, ob ein gewünschter Einheitsbereich zum Anordnen des Anordnungselementes frei ist. Falls ein freier Bereich vorhanden ist, erfolgt ein Übergang zu (4). Falls kein freier Bereich vorhanden ist, erfolgt ein Sprung zu (5). Bei der Bestimmung bei (3) brauchen die Typen von Anordnungselementen nicht berücksichtigt zu werden, wenn z. B. in dem Einheitsbereich 91, der in Fig. 7 gezeigt ist, gleichzeitig sowohl eine Zelle als auch ein Draht angeordnet werden kann.
  • (4) Registrieren von notwendigen Daten in einem freien Bereich, falls ein Einheitsbereich oder ein entsprechender virtueller Speicherbereich frei ist.
  • (5) Ausgabe des Resultates nach außen, falls kein freier Bereich verfügbar ist.
  • (6) Bestimmen, ob ein Anordnungselement mit solch einem übereinstimmt, für das bei der Bestimmung bei (2), daß die Instruktion zum Entfernen eines Anordnungselementes dient, ein Entfernen aus einem Einheitsbereich des Anordnungselementes angewiesen wurde. Falls beide übereinstimmen, erfolgt ein Übergang zu (7), anderenfalls ein Sprung zu (8).
  • (7) Löschen der Daten in Einheitsbereichen eines Anordnungselementes.
  • (8) Ausgabe einer Meldung nach außen, die eine Nichtübereinstimmung mit einem Anordnungselement der Instruktion mitteilt.
  • Fig. 14 zeigt eine Ausführungsform eines Algorithmus für eine Anordnungsveränderung, wenn eine Redundanz vorliegt.
  • Die Drahtanordnungsbildungseinheit 77 führt diesen Algorithmus aus. Der Algorithmus wird unten gemäß den Nummern erläutert, die in Fig. 14 gezeigt sind.
  • (1) Empfang einer Instruktion zum Anordnen eines Anordnungselementes in einem virtuellen Anordnungsbereich oder einer Instruktion zum Entfernen eines Anordnungselementes aus einem virtuellen Anordnungsbereich.
  • (2) Bestimmen, ob eine Instruktion zum Anordnen oder zum Entfernen eines Anordnungselementes dient. Im Falle einer Instruktion zum Anordnen erfolgt ein Übergang zu (3), und im Falle einer Instruktion zum Entfernen erfolgt ein Sprung zu (8).
  • (3) Im Falle eines Anordnens: Bestimmen, gemäß dem Inhalt der virtuellen Anordnungsbereiche, die jeweiligen Einheitsbereichen entsprechen, ob ein gewünschter Einheitsbereich zum Anordnen des Anordnungselementes solch eines enthält, das mit einem Anordnungselement übereinstimmt. Falls keines vorhanden ist, das mit dem Anordnungselement übereinstimmt, erfolgt ein Übergang zu (4). Falls eines vorhanden ist, das mit dem Anordnungselement übereinstimmt, erfolgt ein Sprung zu (7).
  • (4) Bestimmen, ob ein gewünschter Einheitsbereich zum Anordnen des Anordnungselementes einen freien Bereich hat.
  • (5) Registrieren von notwendigen Daten z. B. in einem freien Einheitsbereich und Schreiben von 1 als Redundanzgrad in den entsprechenden virtuellen Bereich.
  • (6) Falls bei (4) bestimmt wird, daß keiner der Einheitsbereiche frei ist, wird das Resultat nach außen ausgegeben.
  • (7) Inkrementieren des Redundanzgrades in dem bei (3) bestimmten Einheitsbereich um eins [1].
  • (8) Bestimmen, ob ein Anordnungselement mit einem übereinstimmt, für das beim Bestimmen bei (2), daß die Instruktion zum Entfernen eines Anordnungselementes dient, ein Entfernen aus einem Einheitsbereich instruiert wurde. Falls beide übereinstimmen, erfolgt ein Übergang zu (9), anderenfalls ein Sprung zu (12).
  • (9) Bestimmen, ob der Redundanzgrad in dem Bereich, der dem Anordnungselement entspricht, eins [1] beträgt oder nicht. Falls er eins [1] beträgt, erfolgt ein Übergang zu (10). Falls er nicht [1] beträgt, erfolgt ein Übergang zu (11).
  • (10) Wenn der Redundanzgrad in dem Bereich, der dem Anordnungselement entspricht, eins [1] beträgt, wird der Redundanzgrad auf null [0] gesetzt und werden zugeordnete Daten in dem virtuellen Anordnungsbereich gleichzeitig gelöscht.
  • (11) Falls der Redundanzgrad nicht eins [1] beträgt, wird der Redundanzgrad um eins [1] dekrementiert.
  • (12) Falls bei (8) bestimmt wird, daß das Anordnungselement, das in einem Einheitsbereich angeordnet ist, nicht mit einem Anordnungselement übereinstimmt, wird das Resultat nach außen ausgegeben.
  • Bei dem in den Fig. 13 und 14 gezeigten Algorithmus ist es wichtig, prüfen zu können, ob ein Anordnungselement in einem bezeichneten Einheitsbereich angeordnet werden kann oder nicht.
  • Mit anderen Worten, es ist von wesentlicher Bedeutung, zu prüfen, ob ein (identischer) Anordnungselement(-typ) an einer neuen Position angeordnet ist, zu der ein Anordnungselement bewegt wird. Dies ist solchen Beschränkungen zuzuschreiben, daß beim Konstruieren einer tatsächlichen integrierten Schaltung nicht mehr als eine [1] Zelle an einer identischen Position angeordnet werden kann und daß das Volumen von Drähten begrenzt ist, die in einem Bereich angeordnet werden.
  • Fig. 15A zeigt einen Algorithmus zum Prüfen der Möglichkeit des Anordnens eines Elementes gemäß dieser Erfindung.
  • (1) Ein Anordnen eines Anordnungselementes in einem Einheitsbereich mit einem Koordinatenwert (x, y) bewirkt den Start der Prozesse. [Hier wird der Empfang einer Instruktion zum Anordnen des Anordnungselementes A in dem Einheitsbereich 51-1 angenommen, der in Fig. 5 gezeigt ist.]
  • (2) Eine Bestimmung eines Einheitsbereiches ermöglicht das Bestimmen eines Anordnungselementbereiches in einem virtuellen Anordnungsbereich zum Speichern von Daten bezüglich des Anordnungselementes, das in dem Einheitsbereich angeordnet ist, der den Koordinatenwert (x, y) hat. [Die Zeigerspeichereinheit 33 erhält den Bereich 38' des Anordnungselementes A, der in Fig. 5 gezeigt ist.]
  • (3) Es wird bestimmt, ob ein Anordnungselementbereich in einem virtuellen Anordnungsbereich frei ist oder nicht. Da ein virtueller Anordnungsbereich viele Daten in den Anordnungselementbereichen speichern kann, wird geprüft, wie viele Daten in die Anordnungselementbereiche in dem virtuellen Anordnungsbereich geschrieben sind (oder wie viele Leerstellen vorhanden sind). [Es wird geprüft, ob die Speicherbereiche 38'-1 und 38'-2 in dem Bereich 38' des Anordnungselementes A des virtuellen Anordnungsbereiches in der Speichereinheit der Position des Anordnungselementes B innerhalb eines virtuellen Anordnungsbereiches 38 frei sind, die in Fig. 5 gezeigt sind.]
  • (4) Im Falle eines bejahenden Bestimmungsresultates (JA) bei (3) wird geschlußfolgert, daß ein Anordnungselement in einem Anordnungselementbereich in dem virtuellen Anordnungsbereich angeordnet werden kann.
  • (5) Im Falle eines verneinenden Bestimmungsresultates (NEIN) bei (3) wird geschlußfolgert, daß kein Anordnungselement in einem Anordnungselementbereich in dem virtuellen Anordnungsbereich angeordnet werden kann.
  • Wenn ein Anordnungselement über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist, wird geprüft, ob jeder Teil des Anordnungselementes auf seinem entsprechenden Einheitsbereich angeordnet werden kann. Nur wenn alle Teile des Anordnungselementes auf ihren entsprechenden Einheitsbereichen angeordnet werden können, darf das Anordnungselement bewegt werden.
  • Ein Anordnungselementbereich kann, wie oben beschrieben, viele Daten speichern. Hierbei kann die Anzahl der vielen Daten größer als die Grenzzahl bei einer tatsächlichen Anordnung sein. Der Grund dafür wird unten an Hand des Beispiels einer Zellenbewegung erläutert.
  • Eine Vielzahl von Zellen kann nicht an derselben Position gestapelt werden. Das heißt, eine Zelle kann nicht an einer Position zum Anordnen einer anderen Zelle angeordnet werden. Obwohl es bei einer kleinen Zelle nicht sehr schwierig ist, freie Einheitsbereiche für ihre neue Position zu finden, ist es bei einer großen Zelle extrem schwer, freie Einheitsbereiche für ihre neue Position zu finden, wodurch es nicht praktikabel ist, eine große Zelle von einer Ausgangsposition zu bewegen. Falls nur kleine Zellen bewegt werden, ohne das Bewegen von großen Zellen zu Wagen, hängen dennoch die Anordnung und Leitungsführung, die als Endprodukt erhalten werden, zu sehr von der Ausgangsanordnung ab, was nicht sehr hilfreich ist.
  • In solch einem Fall wird eine Vielzahl von Zellen virtuell an ein und derselben Position angeordnet, wodurch das Bewegen für eine große Zelle leichter wird. Der Grund dafür, daß dies als virtuell bezeichnet wird, ist der, daß ein Zustand, bei dem Zellen gestapelt sind, bei einem tatsächlichen Konstruieren unmöglich ist. Dieses Problem wird jedoch dadurch gelöst, daß Überlappungen von Zellen schließlich beseitigt sind, nachdem Zellen wiederholt bewegt worden sind.
  • Fig. 15B zeigt einen Algorithmus zum Prüfen der Möglichkeit des Anordnens eines Elementes nach einem Stand der Technik.
  • Dessen Operationen werden gemäß den untenstehenden Nummern erläutert.
  • (1) Eine Bewegung eines Anordnungselementes zu einer Koordinatenposition (x, y) bewirkt den Start der Prozesse.
  • (Initialisieren des Zählerwertes auf 0.)
  • (2) Bestimmen, ob alle Anordnungselemente verarbeitet worden sind, indem Daten an der Koordinatenposition (x', y') bezüglich aller Anordnungselemente (z. B. Zellen) extrahiert werden, außer bei einem Anordnungselement, das zu bewegen ist.
  • (3) Falls ein Vergleich der Koordinatenposition (x, y) mit der Koordinatenposition (x', y') eine Übereinstimmung ergibt, wird ein nächstes Anordnungselement verarbeitet, indem der Zählerwert um eins [1] inkrementiert wird. Falls ein Vergleich der Koordinatenposition (x, y) mit der Koordinatenposition (x', y') eine Nichtübereinstimmung ergibt, wird ein nächstes Anordnungselement verarbeitet, ohne daß der Zählerwert um eins [1] inkrementiert wird.
  • (4) Nach Vollendung der Vergleiche bei allen Zellen wird geprüft, ob der Zählerwert kleiner als eine Grenzzahl bei einer tatsächlichen Anordnung ist.
  • (5) Es wird geschlußfolgert, daß das Anordnungselement in dem virtuellen Anordnungsbereich angeordnet werden kann, falls der Zählerwert kleiner als die Grenzzahl bei einer tatsächlichen Anordnung ist.
  • (6) Es wird geschlußfolgert, daß das Anordnungselement nicht in dem virtuellen Anordnungsbereich angeordnet werden kann, falls der Zählerwert der Grenzzahl bei einer tatsächlichen Anordnung gleich ist.
  • Nach Stand der Technik als solchem ist zu viel Zeit für die Verarbeitung erforderlich, da beim Bestimmen dessen, ob schon ein anderes Anordnungselement an einer neuen Position eines Anordnungselementes angeordnet ist oder nicht, die Positionen aller Anordnungselemente geprüft werden müssen.
  • Fig. 16 zeigt ein Beispiel für eine Wahrscheinlichkeitsverteilung zum Bilden von Koordinatenwerten.
  • Diese Erfindung gebraucht eine normale Verteilung als Wahrscheinlichkeit zum Bilden der veränderten Koordinatenposition, deren Mittelwert der gegenwärtige Koordinatenwert ist, wobei die Varianz parametriert wird, die z. B. durch einen Nutzer über die Anordnungsdateneingabeeinheit 58 zugeführt wird, die in Fig. 6 gezeigt ist.
  • Zum Beispiel wird eine Koordinatenposition (X, Y) unter Verwendung der folgenden Bildungswahrscheinlichkeitsverteilungen gebildet, wobei Ux und Uy Varianzen für die gegenwärtige Koordinatenposition (x, y) darstellen.
  • f(X) = (2π)-1/2Ux&supmin;¹exp.[-(X - x)²/2Ux²]
  • f(Y) = (2π)-1/2Uy&supmin;¹exp.[-(Y - y)²/2Uy²]
  • In der folgenden Beschreibung wird die Koordinatenposition in BC-Einheiten angegeben, wobei eine ganze Zahl ±0,5 auf die ganze Zahl gerundet wird.
  • Sektion (a) zeigt ein Beispiel für eine Wahrscheinlichkeitsverteilung zum Bilden der X-Koordinatenposition beim Verändern einer Anordnung gemäß dieser Erfindung.
  • Sie zeigt eine normale Verteilung, wobei die gegenwärtige Koordinatenposition x der Mittelwert ist und Ux die Varianz ist. (x = 0, Varianz = 1)
  • Das heißt, der obige Ausdruck wird wie folgt umgeschrieben:
  • f(X) = (2π)-1/2exp.(-X²/2)
  • Bei einer Bildung der Bildungswahrscheinlichkeitsverteilung ist es möglich, eine Wahrscheinlichkeitsverteilung zu bilden, damit ein Bewegen für eine große Zelle schwieriger wird, wobei der Mittelwert des X-Koordinatenwertes die gegenwärtige Koordinatenposition x ist und die Varianz des X-Koordinatenwertes Ux/s ist und der Mittelwert des Y-Koordinatenwertes die gegenwärtige Koordinatenposition y ist und die Varianz des Y-Koordinatenwertes Uy/s ist und der Parameter s Dimensionen einer Zelle darstellt.
  • f(X) = (2π)-1/2(Ux/s)&supmin;¹exp.[-(X - x)²/2(Ux/s)²]
  • f(Y) = (2π)-1/2(Uy/s)&supmin;¹exp.[-(Y - y)²/2(Uy/s)²]
  • Da gemäß den obigen Bildungswahrscheinlichkeitsverteilungen die Varianz desto kleiner ist, je größer die Zelle ist, ist die Zelle um so schwerer zu bewegen, je größer sie ist.
  • Um die Leichtigkeit einer Zellenbewegung durch Dimensionen s einer Zelle einzustellen, die angeben, ob eine einzelne Zelle über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist, wie etwa die Zelle C, die in Fig. 8 gezeigt ist, können alternativ die Varianzen des X-Koordinatenwertes und des Y-Koordinatenwertes anstelle von Ux/s und Uy/s Ux/s1/2 und Uy/s1/2 lauten.
  • Wenn ferner ein Gate-Array angeordnet wird, wie in Sektion (a) von Fig. 8 gezeigt, kann eine normale Verteilung gebildet werden, um eine Verschiebung nach rechts zu erleichtern, wenn die gegenwärtige Koordinatenposition in dem Anordnungsbereich eines Gate-Arrays mit zwei [2] Spalten links ist (eine ungerade X-Koordinatenposition), und nach links, wenn die gegenwärtige Koordinatenposition rechts ist (eine gerade X-Koordinatenposition.
  • Ein Vorteil des Festlegens dieser normalen Verteilungen wird unter Bezugnahme auf Sektion (a) von Fig. 8 eingehender erläutert. Denn eine Verwendung dieser Festlegungsverfahren gestattet die leichtere Akzeptanz einer neuen Koordinatenposition, weil die neue Koordinatenposition voraussichtlich nicht, wie ursprünglich, innerhalb desselben Satzes der zwei [2] Spalten bleiben wird (z. B. in den Spalten 1 und 2). Wenn zum Beispiel die Zelle X an (3, 3) liegt, wird eine neue Anordnung leicht, falls (4, 3) als neue Koordinatenposition selektiert wird, da die Zelle X in denselben zwei [2] Spalten eines Gate-Arrays bleibt. Falls jedoch (2, 3) als neue Koordinatenposition selektiert wird, wird die Akzeptanz der neuen Koordinatenposition im allgemeinen weniger wahrscheinlich, da die Zelle X außerhalb des Kanalbereiches liegt.
  • Durch Parametrierung durch eine positive reelle Zahl aodd und eine negative reelle Zahl aeven, bei Anordnung an einer ungeraden Position gegenüber einer gegenwärtigen Koordinatenposition (x, y), sind der Mittelwert und die Varianz beim Bilden eines X-Koordinatenwertes zum Beispiel x+aodd bzw. Ux/s1/2, während der Mittelwert und die Varianz beim Bilden eines Y-Koordinatenwertes ähnlich y+aodd bzw. Uy/s1/2 sind, wobei aodd > 0 ist.
  • Bei Anordnung an einer geraden Position gegenüber einer gegenwärtigen Koordinatenposition (x, y) sind ferner der Mittelwert und die Varianz beim Bilden des X-Koordinatenwertes x+aeven bzw. Ux/s1/2, während der Mittelwert und die Varianz beim Bilden des Y-Koordinatenwertes ähnlich y+aeven bzw. Uy/s1/2 sind, wobei aeven < 0 ist.
  • Sektion (b) in Fig. 16 zeigt eine normale Wahrscheinlichkeitsverteilung, die zu der gegenwärtigen Position asymmetrisch ist.
  • Anders als bei den obigen Beispielen kann eine Zelle, die eine größere letzte durchschnittliche Bewegungsdistanz aufweist, bei ihrer normalen Verteilung eine größere Varianz haben, wenn eine Parametrierung durch eine Zellenhistorie erfolgt. Die Wahrscheinlichkeitsverteilungsbildungseinheit 85, die in Fig. 6 gezeigt ist, bildet solch eine Verteilung.
  • Wenn eine Parametrierung durch Daten bezüglich einer nahegelegenen BC erfolgt, zu der eine Anordnung verboten ist, kann ein neu gebildeter Koordinatenwert als neue X- Koordinatenposition interpretiert werden, indem die BC entfernt wird, zu der eine Anordnung verboten ist. Wenn zum Beispiel zwei [2] konsekutive BCs vorhanden sind, zu denen eine Anordnung auf der rechten Seite der gegenwärtigen Koordinatenposition verboten ist, ist dann, falls eine neue Koordinatenposition gebildet wird, die einen X-Koordinatenwert hat, der um 3 größer als der gegenwärtige X-Koordinatenwert ist, der neue Koordinatenwert um 5 größer als der gegenwärtige X-Koordinatenwert.
  • Zusätzlich kann eine Bildungswahrscheinlichkeitsverteilung auf verschiedene Weise geändert werden, indem eine normale Verteilung und eine Varianz gemäß den Dimensionen einer integrierten Schaltung, der Anzahl von betreffenden Zellen und einer Temperatur und diversen Energien zur Verwendung bei einem simulierten Annealverfahren (das später eingehend beschrieben wird) verändert werden, wie beispielsweise durch Reduzierung der Varianz einer normalen Verteilung.
  • Ferner ist es effektiv, Koordinatenwerte stochastisch zu bilden, nachdem Anordnungen durch eine Wiederholung von Anordnungsveränderungen entworfen sind, indem anfangs eine Koordinatenposition zufällig gebildet wird, statt eine Koordinatenposition von Beginn an gemäß der obigen Wahrscheinlichkeitsverteilung zu bilden.
  • Fig. 17 zeigt eingehend die Struktur einer Koordinatenpositionsbildungseinheit dieser Erfindung.
  • Zu Fig. 17:
  • 182 ist eine Parameterspeichereinheit zum Speichern eines eingegebenen Parameters;
  • 183 ist eine Steuereinheit;
  • 184 ist eine Zufallszahlenerzeugungseinheit; und
  • 185 ist eine Koordinatenpositionsberechnungseinheit zum Bilden einer Koordinatenposition auf der Basis eines Parameters und einer Zufallszahl.
  • Fig. 18 zeigt einen Algorithmus für die Koordinatenpositionsbildungseinheit dieser Erfindung.
  • Genauer gesagt, Fig. 18 zeigt die Operationen bei der in Fig. 17 gezeigten Konfiguration.
  • Der Algorithmus wird gemäß den Nummern (und nach Bedarf unter Bezugnahme auf Fig. 17) erläutert.
  • (1) Ein Empfang einer Instruktion zum Bilden eines Koordinatenwertes aktiviert die Koordinatenwertbildungseinheit 84.
  • (2) Die Wahrscheinlichkeitsverteilungsbildungseinheit 85 entnimmt der Parameterspeichereinheit 182 einen Parameter, der zum Bilden eines Koordinatenwertes erforderlich ist. (Genauer gesagt, die Steuereinheit 183 entnimmt der Parametersteuereinheit 182 einen Parameter, der zum Bilden eines Koordinatenwertes erforderlich ist, und führt ihn der Koordinatenpositionsberechnungseinheit 185 zu).
  • (3) Bei Empfang einer Instruktion von der Koordinatenpositionsberechnungseinheit 185 entnimmt die Steuereinheit 183 der Zufallszahlenerzeugungseinheit 184 eine erforderliche Zufallszahl.
  • (4) Die Steuereinheit 183 empfängt die erforderliche Zufallszahl, die der Zufallszahlenerzeugungseinheit 104 entnommen wurde, und führt die Zufallszahl der Koordinatenpositionsberechnungseinheit 185 zu.
  • (5) Die Steuereinheit 183 liest einen Koordinatenwert, der durch die Koordinatenpositionsberechnungseinheit 185 berechnet wurde.
  • (6) Die Steuereinheit 183 bestimmt, ob der gebildete Koordinatenwert geeignet oder ungeeignet ist. Im Falle eines negativen Bestimmungsresultates (NEIN) erfolgt eine Rückkehr zu (3) und eine Wiederholung der Prozesse ab da. Im Falle eines bejahenden Bestimmungsresultates (JA) erfolgt ein Übergang zu (7). Die Steuereinheit 183 bestimmt einen Fall, bei dem zum Beispiel eine gebildete Koordinatenposition außerhalb einer gedruckten Schaltungsplatte liegt, als ungeeignet.
  • (7) Die Wahrscheinlichkeitsverteilungsbildungseinheit 85 gibt den gebildeten Koordinatenwert nach außen aus.
  • Durch Wiederholen der Prozesse ab (1) werden die Koordinatenwerte für alle Zellen gebildet.
  • Fig. 19 zeigt einen Algorithmus eines simulierten Annealverfahrens bei Anwendung dieser Erfindung.
  • Das simulierte Annealverfahren dient zum Berechnen einer Energie für einen Status, bei dem eine Anordnung in Anbetracht des Redundanzgrades einer Zelle und der Drahtlänge erfolgt. Durch einen Vergleich der Energie für den neuen Status mit jener für den gegenwärtigen Status wird ein Index, der durch eine Temperatur parametriert wird und durch die Einstelltemperatur und Energiedifferenz bestimmt wird, als Benchmark zum Bestimmen dessen berechnet, ob eine Anordnung verändert werden soll oder nicht. Eine zufällig erzeugte Zahl wird selektiert, zum Bestimmen dessen, ob eine neue Anordnung eingesetzt werden soll oder nicht, durch einen Vergleich mit dem Index als Benchmark. Ein Vergleich des Indexes mit der selektierten Zahl ermöglicht eine Selektion zwischen dem Einsatz der neuen Anordnung und keiner Veränderung gegenüber der gegenwärtigen Anordnung. Durch Verändern der Temperatur werden die Prozesse wiederholt, bis keine Zellenredundanz vorhanden ist, oder bis die optimale Anordnung erhalten ist, bei der die Energie durch eine Reduzierung der Drahtlänge minimiert wird.
  • Das Zellenredundanzkonzept wird unten erläutert, wobei das Konzept auf einen Einheitsbereich angewendet wird. Genauer gesagt, die Zellenredundanz betrifft eine Vielzahl von spezifischen Zellen, die ein und denselben Einheitsbereich belegen. Bei dem in Fig. 7 gezeigten Beispiel beträgt die Zellenredundanz des Einheitsbereiches 2, falls drei [3] Zellenbereiche ein und demselben Einheitsbereich entsprechen, von denen zwei [2] die Zellennummern 127 und 213 registrieren und der verbleibende eine [1] nichts registriert. Hierbei muß jedoch erwähnt werden, daß sich die hier verwendete Zellenredundanz von dem Redundanzgrad bei einem identischen Draht unterscheidet.
  • Der Algorithmus wird gemäß den in Fig. 14 gezeigten Nummern erläutert.
  • (1) Start der Prozesse.
  • (2) Setzen einer Anordnung auf einen initialisierten Anordnungsstatus. (Initialisierung) Als Initialisierung werden ein Datenbereich als virtueller Anordnungsbereich und verschiedene Parameter eingestellt.
  • (3) Entscheidung, ob eine Beendigung erfolgen soll. Wenn keine Beendigung erfolgen soll, geht der Prozeß zu (4) über. Im Falle einer Beendigung erfolgt ein Übergang zu (11), nachdem eine optimale Anordnung erhalten ist und der Prozeß endet. Eine Bedingung, die jener ähnlich ist, die bei (5) von Fig. 3 erläutert wurde, wird als Beendigungsbedingung verwendet.
  • (4) Aktualisieren einer Temperatur T. Ein Nutzer bestimmt die Aktualisierungsbreite (d. h., eine inkrementale Veränderung oder eine dekrementale Veränderung) der Temperatur T z. B. gemäß einem Ausdruck T = T0&alpha;k, wobei T0 eine Anfangstemperatur ist, &alpha; eine reelle Zahl zwischen 0 und 1 ist und k die Anzahl von Aktualisierungen ist.
  • (5) Selektieren eines Anordnungselementes als Ziel einer Statusveränderung, z. B. sequentiell für jeden Typ eines Anordnungselementes.
  • (6) Selektieren eines nächsten Status (eines Koordinatenwertes, etc.) für ein selektiertes Anordnungselement, wodurch ein Kandidat für eine neue Anordnung erhalten wird.
  • (7) Berechnen einer Energiedifferenz Delta-E zwischen einem gegenwärtigen Status und einem selektierten Status, ähnlich wie bei (2) von Fig. 3. Auf der Basis von Delta-E erfolgt eine Berechnung eines Benchmark-Indexes exp(-K Delta-E/T) zur Verwendung beim Bestimmen einer Veränderung eines Koordinatenwertes.
  • (8) Selektieren eines Zahlenwertes p als einheitliche Zufallszahl zwischen null [0] und eins [1].
  • (9) Bestimmen, ob eine Bedingung p < exp(-K Delta-E/T) erfüllt ist. Bei Erfüllung dieser Bedingung erfolgt ein Übergang zu (10). Bei Nichterfüllung dieser Bedingung erfolgt eine Wiederholung von (3) an.
  • (10) Einsetzen eines neuen Status, der der Kandidat für eine neue Anordnung ist, als gegenwärtigen Status.
  • Die Bedingung (9) in dem obigen Algorithmus stellt eine Beziehung dar, daß dann, wenn eine Energiedifferenz Delta-E (> 0) zwischen einem gegenwärtigen Status und einem selektierten Status (einem neuen Status) bei einer Temperatur T klein ist, eine Zufallszahl p die Bedingung, die durch (9) dargestellt wird, wahrscheinlich leichter erfüllt, als wenn die Energiedifferenz Delta-E groß ist. Ferner stellt sie eine Beziehung dar, daß ein neuer Status mit höherer Wahrscheinlichkeit selektiert wird, da eine Zufallszahl p, wenn die Temperatur T hoch ist, die Bedingung, die durch (9) dargestellt wird, leichter erfüllt, als wenn die Temperatur niedrig ist.
  • Ein simuliertes Annealverfahren dient zum sequentiellen Ausführen der obigen Prozesse (von einer Epoche) für jeweilige Zellen und wiederholt Epochen, bis eine optimale Anordnung erhalten ist.
  • Ferner ist diese Erfindung zusätzlich zu dem Fall, bei dem die Anordnung eines Schaltungselementes erhalten wird, auf andere Anordnungskonstruktionen wie etwa auf eine Anordnungskonstruktion einer Telefonvermittlungszentrale anwendbar.
  • Zusätzlich ist diese Erfindung nicht nur auf ein simuliertes Annealverfahren anwendbar, sondern auch auf andere Algorithmen wie etwa auf ein GA-(genetisches Algorithmus)- Verfahren, das von einem Evolutionsmodell auf Genbasis abgeleitet ist.
  • Das GA-Verfahren drückt zum Beispiel einen Anordnungsstatus als geeigneten Code (eine Kette von Symbolen) aus, indem anfangs eine Vielzahl von Codes vorgesehen wird, die als Gene bezeichnet werden. Durch Bewirken einer Mutation (einer zufälligen Veränderung eines Symbols) und eines partiellen Austausches von zwei [2] Genen wird ein neuer Gensatz erhalten. Ein besserer Gensatz wird selektiert, indem eine geeignete Zielfunktion auf Genglieder in dem Gensatz angewendet wird. Der beste Gensatz wird schließlich erhalten, indem die obige Prozedur mehrere Male wiederholt wird.
  • Da bei dieser Erfindung bewirkt wird, wie oben eingehend beschrieben, daß Daten bezüglich eines Anordnungselementes wie etwa eines Drahtes oder einer Zelle, die für eine Anordnung/Leitungsführung erforderlich sind, in einem virtuellen Anordnungsbereich in Entsprechung zu Einheitsbereichen in einem Anordnungsbereich angeordnet werden, kann eine Anordnung leichter verändert werden. Da ferner Daten in einem großen Volumen aufgestellt werden können, macht es diese Erfindung möglich, feine Beschränkungen in Abhängigkeit von einer Position und einer Form zu bewerten, die für eine Anordnung/Leitungsführung erforderlich sind.
  • Weiterhin kann diese Erfindung sehr leicht auf ein System zum Konstruieren auf einem parallelen Rechnersystem angewendet werden, indem bewirkt wird, daß jeweilige Prozessorelemente eines parallelen Rechnersystems Gruppen in Einheitsbereichen entsprechen.
  • Des weiteren kann durch das Verfahren zum Verändern einer Anordnung gemäß dieser Erfindung die Verarbeitungszeit reduziert werden, die zum Erhalten einer optimalen Anordnung erforderlich ist, da eine Wahrscheinlichkeitsverteilung zum Bilden eines Koordinatenwertes verändert werden kann.
  • Diese Erfindung kann nicht nur durch die Halbleiterindustrie verwendet werden, die eine LSI konstruiert, sondern auch durch verschiedene andere Industriezweige, die ein System zum Konstruieren von optimalen Anordnungen von Anordnungselementen in vorbestimmten Bereichen benötigen.

Claims (1)

1. System zum Konstruieren einer Anordnung eines Anordnungselementes, zur Verwendung in einem Anordnungskonstruktionssystem, das umfaßt:
ein Anordnungselementspeichermittel (22) zum Speichern von Anordnungselementdaten, die Anordnungselemente darstellen;
ein Anordnungsfestlegungsmittel (21) zum Festlegen einer tatsächlichen Anordnung des Anordnungselementes in einem Anordnungsbereich; und mit
einem Einheitsbereichsdatenspeichermittel (31) zum Speichern von Einheitsbereichsdaten, die Einheitsbereiche darstellen, welche Einheitsbereiche erhalten werden, indem der Anordnungsbereich geteilt wird, wobei der Einheitsbereich eine minimale Einheit ist, in der das Anordnungselement anzuordnen ist; und
ein Anordnungsausgabemittel (47) zum Ausgeben des Resultates des Festlegens der Anordnung;
dadurch gekennzeichnet, daß das Anordnungsfestlegungsmittel (21) umfaßt:
eine Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39), die für jeden Anordnungselementtyp vorgesehen sind, zum Speichern von Anordnungselementdaten, die Anordnungselemente darstellen, die in virtuellen Anordnungsbereichen (38', 39') virtuell angeordnet sind, wobei die virtuellen Anordnungsbereiche eine mehrschichtige Struktur haben, die ein Überlappen eines Anordnungselementes während eines Zwischenzustandes der Konstruktion erlaubt;
ein Zeigerspeichermittel (33) zum Spezifizieren von Anordnungselementdaten, die in den Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39) gespeichert sind, denen die Einheitsbereiche entsprechen; und
ein Anordnungssteuermittel (29) zum Festlegen der Anordnung von Anordnungselementen in dem Anordnungsbereich, so daß die Anordnungselemente, deren Anordnungselementdaten in den virtuellen Anordnungsbereichen (38', 39') gespeichert sind, in jeweiligen Einheitsbereichen in dem Einheitsbereichsdatenspeichermittel (31) angeordnet sind, gemäß den Anordnungselementdaten, die durch das Zeigerspeichermittel (33) spezifiziert werden.
2. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 1, bei dem:
die virtuellen Anordnungsbereiche (38', 39') in der Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39) Speicherbereiche (38'-1, 38'-2, 39'-1, 39'-2 und 39'-3) umfassen, die in mehrere Schichten strukturiert sind, zum Speichern derselben Arten von Anordnungselementdaten in Anzahlen, die jeweilige Grenzzahlen übersteigen, in Entsprechung zu den Einheitsbereichen.
3. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 1, bei dem:
die Einheitsbereiche, die von dem Anordnungsbereich abgeteilt wurden und deren Positionen in dem Einheitsbereichsdatenspeichermittel (31) gespeichert sind, eine Vielzahl von Gate-Array-Anordnungsbereichen und Kanalbereichen zwischen den Gate-Array-Anordnungsbereichen umfassen;
die Vielzahl von Gate-Array-Anordnungsbereichen Einheitsbereiche umfaßt, die den Dimensionen von Basiszellen entsprechen, die Bildungseinheiten von Zellen in Gate-Arrays sind.
4. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 1, bei dem:
eines (39) der Speichermittel von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39) einen Redundanzgradspeicherbereich (46) zum Speichern eines Redundanzgrades von Anordnungselementen umfaßt, die in demselben Einheitsbereich in dem Anordnungsbereich angeordnet sind; und
das Anordnungssteuermittel (29) umfaßt:
ein Einheitsbereichsdatenbildungsmittel (30), zum Teilen des Anordnungsbereiches in Einheitsbereiche und zum Bewirken dessen, daß das Einheitsbereichsdatenspeichermittel (31) ein Resultat des Teilens speichert;
ein Zeigerbildungsmittel (32) zum Bilden von Zeigern, die dem Einheitsbereich entsprechen, und zum Speichern in dem Zeigerspeichermittel (33);
eine Vielzahl von Anordnungselementbildungsmitteln (34, 35) jeweilig in Entsprechung zu der Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39), zum Bilden von Anordnungselementdaten, die Positionen der Anordnungselemente in dem Anordnungsbereich enthalten;
ein Redundanzgradbestimmungsmittel (43) zum Bestimmen der Redundanzgrade von Anordnungselementen, deren Anordnungselementdaten neu gebildet werden, unter Verwendung einer Ausgabe von einem (35) von der Vielzahl von Anordnungselementbildungsmitteln (34, 35), die demjenigen (39) von der Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39) entspricht, das den Redundanzgradspeicherbereich (46) hat, und des Speicherinhaltes des Redundanzgradspeicherbereiches (46);
ein Anordnungsdatenbildungsmittel (42) zum Bilden von Anordnungsdaten bezüglich einer Anordnung von Anordnungselementen in den Einheitsbereichen in dem Anordnungsbereich unter Verwendung der Speicherinhalte des Einheitsbereichsdatenspeichermittels (31) und der Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39) und zum Ausgeben der Anordnungsdaten an das Anordnungsausgabemittel (47);
ein Anordnungsveränderungsnotwendigkeitsbestimmungsmittel (48) zum Bestimmen dessen, ob eine Veränderung einer Anordnung von Anordnungselementen in dem Anordnungsbereich notwendig ist oder nicht, unter Verwendung von Anordnungsdaten, die durch das Anordnungsdatenbildungsmittel (42) gebildet werden;
ein Wahrscheinlichkeitsverteilungsbildungsmittel (45) zum Bilden einer Wahrscheinlichkeitsverteilung zum Bilden von neuen Koordinatenwerten, die die Grundlagen zum Bilden von neuen Anordnungsdaten auf der Basis einer angenommenen Anordnung darstellen, nachdem das Anordnungsveränderungsnotwendigkeitsbestimmungsmittel (48) die Notwendigkeit für eine Anordnungsveränderung bestimmt hat; und
ein Koordinatenpositionsbildungsmittel (44) zum Bilden einer neuen Koordinatenposition für eine Anordnung unter Verwendung der Wahrscheinlichkeitsverteilung, die durch das Wahrscheinlichkeitsverteilungsbildungsmittel (45) gebildet wird, und zum Ausgeben des Resultates des Bildens der neuen Koordinatenposition an das Einheitsbereichsdatenbildungsmittel (30), das Zeigerbildungsmittel (32) und die Vielzahl von Anordnungselementbildungsmitteln (34, 35).
5. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 4, bei dem:
das Anordnungselementspeichermittel (22) eine Anordnungselementedatei (57) umfaßt, zum Speichern von Zellendaten, die den Namen und die Dimensionen einer Zelle enthalten, von Anschlußdaten, die den Namen und den Typ eines Anschlusses enthalten, von Drahtdaten, die eine Drahtbreite enthalten, und von Durchgangslochdaten bezüglich eines Durchgangslochs;
die Vielzahl von Speichermitteln von Anordnungselementpositionen innerhalb eines virtuellen Anordnungsbereiches (38, 39), die den vielen Typen von Anordnungselementen entsprechen, jeweils ein Zellenanordnungsspeichermittel (78) umfaßt, ein Anschlußanordnungsspeichermittel (79), ein Durchgangslochanordnungsspeichermittel (80) und ein Drahtanordnungsspeichermittel (81), das einen Redundanzgradspeicherbereich (83') hat; und
die Vielzahl von Anordnungselementbildungsmitteln (34, 35) jeweils ein Zellenanordnungsbildungsmittel (74) umfaßt, zum Ausgeben von Zellenanordnungsdaten an das Zellenanordnungsspeichermittel (78), ein Anschlußanordnungsbildungsmittel (75) zum Ausgeben von Anschlußanordnungsdaten an das Anschlußanordnungsspeichermittel (79), ein Durchgangslochanordnungsbildungsmittel (76) zum Ausgeben von Durchgangslochanordnungsdaten an das Durchgangslochanordnungsspeichermittel (80) und ein Drahtanordnungsbildungsmittel (77) zum Ausgeben von Drahtdaten an das Drahtanordnungsspeichermittel (81) und das Redundanzgradbestimmungsmittel (43).
6. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
Einheitsbereiche, deren Positionen in dem Einheitsbereichsdatenspeichermittel (31) gespeichert sind, Einheitsbereiche (91, 93) jeweils zum Anordnen einer Zelle oder eines Drahtes und einen Einheitsbereich (92) zum Anordnen eines Drahtes, eines Anschlusses oder eines Durchgangslochs umfassen; und
Zeiger, die in dem Zeigerspeichermittel (33) gespeichert sind, umfassen:
einen Zeiger zum Spezifizieren einer ersten Schicht (96-1) in mehreren Schichten von Drahtbereichen (96- 1 bis 96-6), die jeweils zum Speichern von Drahtdaten bezüglich eines Drahtes dienen und in dem Drahtanordnungsspeichermittel (81) gespeichert sind, um in dem Einheitsbereich (91) angeordnet zu werden,
einen Zeiger zum Spezifizieren einer ersten Schicht (97-1) in mehreren Schichten von Zellenbereichen (97-1 bis 97-3), die zum Speichern von Daten bezüglich einer Zelle dienen und in dem Zellenanordnungsspeichermittel (78) gespeichert sind, um in dem Einheitsbereich (91) angeordnet zu werden,
einen Zeiger zum Spezifizieren einer ersten Schicht (96'-1) in mehreren Schichten von Drahtbereichen (96'-1, 96'-2), die zum Speichern von Drahtdaten bezüglich eines Drahtes dienen und in dem Drahtanordnungsspeichermittel (81) gespeichert sind, um in dem Einheitsbereich (92) angeordnet zu werden,
einen Zeiger zum Spezifizieren einer ersten Schicht (99-1) in mehreren Schichten von Anschlußbereichen (99-1, 99-2), die zum Speichern von Anschlußdaten bezüglich eines Anschlusses dienen und in dem Anschlußanordnungsspeichermittel (79) gespeichert sind, um in dem Einheitsbereich (92) angeordnet zu werden, und
einen Zeiger zum Spezifizieren eines Durchgangslochbereiches (98) zum Speichern von Durchgangslochdaten bezüglich eines Durchgangslochs, der in dem Durchgangslochanordnungsspeichermittel (80) gespeichert ist, um in dem Einheitsbereich (92) angeordnet zu werden.
7. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
das Zellenanordnungsspeichermittel (78) Daten bezüglich jeweiliger Teile einer einzelnen Zelle, die über eine Vielzahl von Einheitsbereichen in dem Anordnungsbereich hinweg angeordnet ist, in einer einzelnen von mehreren Schichten von Zellenbereichen speichert, die jeweilig den Einheitsbereichen entsprechen.
8. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
das Zellenanordnungsspeichermittel (78) Daten bezüglich jeweiliger Teile einer einzelnen Zelle, die über eine Vielzahl von Einheitsbereichen in dem Anordnungsbereich hinweg angeordnet ist, in verschiedenen Schichten von mehreren Schichten von Zellenbereichen speichert, die jeweilig den Einheitsbereichen entsprechen.
9. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
das Drahtanordnungsspeichermittel (81) bewirkt, daß der Redundanzgradspeicherbereich (83') als Redundanzgrad jeweilige Anzahlen von identischen Drähten speichert, die in denselben Einheitsbereichen in Entsprechung zu mehreren Schichten eines Drahtbereiches in dem Drahtanordnungsspeichermittel (81) angeordnet sind.
20. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
Einheitsbereichsdaten, die in dem Einheitsbereichsdatenspeichermittel (31) gespeichert sind, die Einheitsbereichsnummern von jeweiligen Einheitsbereichen umfassen, die von dem Anordnungsbereich abgeteilt sind, wobei Einheitsbereichsdaten die Typen von Anordnungselementen enthalten, die nicht in dem Einheitsbereich angeordnet werden können, und Zeiger zum Spezifizieren einer Zeigerspeicherposition für Daten innerhalb eines virtuellen Anordnungsbereiches bezüglich eines Anordnungselementes, das in dem Einheitsbereich anzuordnen ist, in dem Zeigerspeichermittel (33);
Zeigerdaten, die in dem Zeigerspeichermittel (33) gespeichert sind, die Zeiger für einen Zellenbereich, einen Drahtbereich, einen Anschlußbereich bzw. einen Durchgangslochbereich jeweilig in Entsprechung zu den Einheitsbereichen umfassen;
Zellenanordnungsdaten, die in dem Zellenanordnungsspeichermittel (78) gespeichert sind, Zellenbereichsdaten, die die Zellenbereichsnummern und Einheitsbereichspositionen zum Anordnen von Zellen enthalten, für jeweilige Zellenbereiche in mehreren Schichten umfassen; und
Drahtanordnungsdaten, die in dem Drahtanordnungsspeichermittel (81) gespeichert sind, Drahtbereichsdaten, die Redundanzgrade von Drähten und die Zellennummern von Zellen zum Anordnen der Drähte enthalten, für jeweilige Drahtbereiche in mehreren Schichten umfassen.
11. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem das Zellenanordnungsbildungsmittel (74) umfaßt:
ein erstes Mittel zum Bestimmen dessen, ob Zellenanordnungsprozesse für alle Teile einer einzelnen Zelle, die über eine Vielzahl von Einheitsbereichen hinweg angeordnet ist, vollendet worden sind oder nicht;
ein zweites Mittel, das im Falle eines negativen Bestimmungsresultates durch das erste Mittel aufgerufen wird, zum Selektieren von einem [1] der Teile in der einzelnen Zelle, der noch nicht verarbeitet worden ist;
ein drittes Mittel zum Erhalten eines Einheitsbereiches, der dem Teil entspricht, der in dem zweiten Mittel selektiert wird, aus der Position zum Anordnen des Teils der einzelnen Zelle und der relativen Position des selektierten Teils in der einzelnen Zelle;
ein viertes Mittel zum Anordnen des selektierten Teils in dem Einheitsbereich;
ein fünftes Mittel zum Bestimmen dessen, ob das Resultat des vierten Mittels erfolgreich ist oder nicht, und zum Zurückkehren zu dem ersten Mittel im Falle eines bejahenden Bestimmungsresultates;
ein sechstes Mittel, das im Falle eines negativen Bestimmungsresultates durch das fünfte Mittel aufgerufen wird, zum Ausgeben eines Resultates, das einen Fehler bezeichnet, nach außen;
ein siebtes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das erste Mittel aufgerufen wird, zum Beenden eines Zellenanordnungsprozesses.
12. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem das Zellenanordnungsbildungsmittel (74), das Anschlußanordnungsbildungsmittel (75) und das Durchgangslochanordnungsbildungsmittel (76) jeweilig umfassen:
ein erstes Mittel zum Empfangen einer Instruktion zum Verändern einer Anordnung eines entsprechenden Anordnungselementes;
ein zweites Mittel zum Bestimmen dessen, ob die Instruktion ein Anordnen oder ein Entfernen eines Anordnungselementes betrifft;
ein drittes Mittel, das im Falle des Bestimmens eines Anordnens in dem zweiten Mittel aufgerufen wird, zum Bestimmen dessen, ob ein Einheitsbereich, der zum Anordnen des Anordnungselementes gewünscht wird, frei ist oder nicht;
ein viertes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Registrieren von notwendigen Daten in einem freien Bereich;
ein fünftes Mittel, das im Falle eines negativen Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Ausgeben des Resultates nach außen, falls kein freier Bereich verfügbar ist;
ein sechstes Mittel, das im Falle des Bestimmens eines Entfernens in dem zweiten Mittel aufgerufen wird, zum Bestimmen dessen, ob ein Anordnungselement mit einem übereinstimmt oder nicht, für das ein Entfernen aus einem Einheitsbereich des Anordnungselementes instruiert wurde;
ein siebtes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das sechste Mittel aufgerufen wird, zum Löschen von Daten aus Einheitsbereichen des Anordnungselementes; und
ein achtes Mittel, das im Falle eines negativen Bestimmungsresultates durch das sechste Mittel aufgerufen wird, zum Ausgeben einer Nachricht, die eine Nichtübereinstimmung mit einem Anordnungselement der Instruktion nach außen meldet.
13. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem das Drahtanordnungsbildungsmittel (77) umfaßt:
ein erstes Mittel zum Empfangen einer Instruktion zum Verändern einer Anordnung eines Drahtes;
ein zweites Mittel zum Bestimmen dessen, ob eine Instruktion ein Anordnen oder ein Entfernen eines Drahtes betrifft;
ein drittes Mittel, das im Falle einer Bestimmung eines Anordnens in dem zweiten Mittel aufgerufen wird, zum Bestimmen dessen, ob ein Einheitsbereich, der zum Anordnen des Drahtes gewünscht wird, einen Draht hat, der mit dem genannten Draht übereinstimmt;
ein viertes Mittel, das im Falle eines negativen Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Bestimmen dessen, ob ein Einheitsbereich, der zum Anordnen des Anordnungselementes gewünscht wird, einen freien Bereich hat oder nicht;
ein fünftes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das vierte Mittel aufgerufen wird, zum Registrieren von notwendigen Daten z. B. in einem freien Einheitsbereich und zum Schreiben von eins [1] als Redundanzgrad in den entsprechenden virtuellen Bereich;
ein sechstes Mittel, das im Falle eines negativen Bestimmungsresultates durch das vierte Mittel aufgerufen wird, zum Ausgeben des Resultates nach außen;
ein siebtes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Inkrementieren des Redundanzgrades des Drahtes in dem Einheitsbereich um eins [1];
ein achtes Mittel, das im Falle einer Bestimmung eines Entfernens in dem zweiten Mittel aufgerufen wird, zum Bestimmen dessen, ob ein Draht mit einem übereinstimmt oder nicht, für den ein Entfernen aus einem Einheitsbereich instruiert wurde;
ein neuntes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das achte Mittel aufgerufen wird, zum Bestimmen dessen, ob der Redundanzgrad in dem Bereich, der dem Anordnungselement entspricht, eins [1] ist oder nicht;
ein zehntes Mittel, das im Falle einer bejahenden Bestimmung in dem neunten Mittel aufgerufen wird, zum Setzen des Redundanzgrades auf null [0] und zum gleichzeitigen Löschen von zugeordneten Daten in dem virtuellen Anordnungsbereich;
ein elftes Mittel, das im Falle eines negativen Bestimmungsresultates durch das neunte Mittel aufgerufen wird, zum Dekrementieren der Redundanzgrade, die nicht eins [1] sind, um eins [1]; und
ein zwölftes Mittel, das im Falle eines negativen Bestimmungsresultates durch das achte Mittel aufgerufen wird, zum Ausgeben dessen nach außen, daß kein Draht mit einem übereinstimmt, für den ein Entfernen aus einem Einheitsbereich instruiert wurde.
14. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 5, bei dem:
das Zellenanordnungsbildungsmittel (74) zum Prüfen einer Zellenanordnungsmöglichkeit, das Anschlußanordnungsbildungsmittel (75) zum Prüfen einer Anschlußanordnungsmöglichkeit, das Durchgangslochanordnungsbildungsmittel (76) zum Prüfen einer Durchgangslochanordnungsmöglichkeit und das Drahtanordnungsbildungsmittel (77) zum Prüfen einer Drahtanordnungsmöglichkeit jeweilig umfassen:
ein erstes Mittel zum Empfangen einer Instruktion zum Anordnen eines Anordnungselementes in einem Einheitsbereich, dessen Position durch einen Koordinatenwert (x, y) spezifiziert wird;
ein zweites Mittel zum Erhalten eines virtuellen Anordnungsbereiches, der Anordnungselementdaten eines Anordnungselementes speichert, das in dem Einheitsbereich anzuordnen ist, der durch den Koordinatenwert spezifiziert wird;
ein drittes Mittel zum Bestimmen dessen, ob der virtuelle Anordnungsbereich einen Leerraum hat oder nicht;
ein viertes Mittel, das im Falle eines bejahenden Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Bestimmen dessen, daß das Anordnungselement angeordnet werden kann; und
ein fünftes Mittel, das im Falle eines negativen Bestimmungsresultates durch das dritte Mittel aufgerufen wird, zum Bestimmen dessen, daß das Anordnungselement nicht angeordnet werden kann.
15. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 4, ferner mit:
einem Anordnungsdateneingabemittel (23) zum Eingeben von Anordnungsdaten (24), die Drahtdaten einer Schaltung enthalten, dem Anordnungssteuermittel (29) und zum Eingeben eines Parameters (25), der eine Konstante zum Bilden einer Wahrscheinlichkeitsverteilung enthält, einem Wahrscheinlichkeitsverteilungsbildungsmittel (45) in dem Anordnungssteuermittel (29).
16. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 15, bei dem:
das Wahrscheinlichkeitsverteilungsbildungsmittel (45) Wahrscheinlichkeitsverteilungen zum Bilden eines neuen Koordinatenwertes (X, Y) gemäß normalen Verteilungen bildet, die Mittelwerte haben, die einem gegenwärtigen Koordinatenwert (x, y) gleich sind, unter Verwendung von Varianzen Ux und Uy, die als Teile von Parametern (25) von dem Anordnungsdateneingabemittel (23) zugeführt werden,
f(X) = (2&pi;)-1/2Ux&supmin;¹exp.[-(X - x)²/2Ux²] ist,
f(Y) = (2&pi;)-1/2Uy&supmin;¹exp.[-(Y - y)²/2Uy²] ist,
und
das Koordinatenwertbildungsmittel (44) eine neue Koordinatenposition gemäß den Wahrscheinlichkeitsverteilungen bildet.
17. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 15, bei dem:
das Wahrscheinlichkeitsverteilungsbildungsmittel (45) Wahrscheinlichkeitsverteilungen zum Bilden eines neuen Koordinatenwertes (X, Y) gemäß normalen Verteilungen bildet, die Mittelwerte haben, die einem gegenwärtigen Koordinatenwert (x, y) gleich sind, unter Verwendung von Varianzen Ux und Uy, die als Teile von Parametern (25) von dem Anordnungsdateneingabemittel (23) zugeführt werden, und von s als Dimensionen einer einzelnen Zelle, die durch die Anzahl von Einheitsbereichen definiert ist, über die hinweg die einzelne Zelle angeordnet ist,
f(X) = (2&pi;)-1/2(Ux/s)&supmin;¹exp.[-(X - x)²/2(Ux/s)²] ist,
f(Y) = (2&pi;)-1/2(Uy/s)&supmin;¹exp.[-(Y - y)²/2(Uy/s)²] ist,
und
das Koordinatenpositionsbildungsmittel (44) eine neue Koordinatenposition gemäß den Wahrscheinlichkeitsverteilungen bildet.
18. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 15, bei dem:
das Wahrscheinlichkeitsverteilungsbildungsmittel (45) unter Verwendung eines gegenwärtigen Koordinatenwertes (x, y), einer positiven reellen Zahl aodd und einer negativen reellen Zahl aeven einen ersten Satz von Wahrscheinlichkeitsverteilungen mit den Mittelwerten x+aodd und y+aodd und einen zweiten Satz von Wahrscheinlichkeitsverteilungen mit den Mittelwerten x+aeven und y+aeven bildet; und
das Koordinatenpositionsbildungsmittel (44) eine neue Koordinatenposition auf der Basis eines gegenwärtigen Koordinatenwertes (x, y) unter Verwendung von einem [1] von dem ersten Satz von Wahrscheinlichkeitsverteilungen und dem zweiten Satz von Wahrscheinlichkeitsverteilungen bildet.
19. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 15, bei dem:
das Wahrscheinlichkeitsverteilungsbildungsmittel (45) umfaßt:
ein Zufallszahlenerzeugungsmittel (184) zum Erzeugen einer Zufallszahl,
ein Koordinatenpositionsberechnungsmittel (185) zum Berechnen eines Koordinatenwertes,
ein Steuermittel (183) zum Steuern des Zufallszahlenerzeugungsmittel (184) und des Koordinatenpositionsberechnungsmittels (185); und
das Koordinatenpositionsbildungsmittel (44) ferner ein Parameterspeichermittel (182) zum Speichern eines Parameters umfaßt, der von dem Parameterdateneingabemittel (23) eingegeben wird.
20. System zum Konstruieren einer Anordnung eines Anordnungselementes nach Anspruch 19, bei dem:
das Koordinatenpositionsbildungsmittel (44) eine Instruktion zum Bilden einer Koordinatenposition bei einem Koordinatenpositionsbildungsprozeß empfängt;
das Steuermittel (183) eine Zufallszahl empfängt, die durch das Zufallszahlenerzeugungsmittel (184) erzeugt wird;
das Steuermittel (183) die empfangene Zufallszahl dem Koordinatenpositionsberechnungsmittel (185) zuführt;
das Steuermittel (183) den Koordinatenwert liest, der durch das Koordinatenpositionsberechnungsmittel (185) berechnet wird;
das Steuermittel (183) bestimmt, ob der gelesene Koordinatenwert geeignet oder ungeeignet ist; und
das Steuermittel (183) einen Koordinatenwert ausgibt, den es als geeignet bestimmt hat, und anderenfalls seine Prozesse durch Empfangen einer Zufallszahl wiederholt, die durch das Zufallszahlenerzeugungsmittel (184) erzeugt wird.
DE69232026T 1991-10-15 1992-10-15 Entwurfssystem zur Platzierung von Elementen Expired - Fee Related DE69232026T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3266105A JP2601586B2 (ja) 1991-10-15 1991-10-15 配置要素の配置配線方法

Publications (2)

Publication Number Publication Date
DE69232026D1 DE69232026D1 (de) 2001-10-04
DE69232026T2 true DE69232026T2 (de) 2002-01-24

Family

ID=17426387

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69232026T Expired - Fee Related DE69232026T2 (de) 1991-10-15 1992-10-15 Entwurfssystem zur Platzierung von Elementen

Country Status (5)

Country Link
US (1) US5475608A (de)
EP (1) EP0538035B1 (de)
JP (1) JP2601586B2 (de)
KR (1) KR970008535B1 (de)
DE (1) DE69232026T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5691913A (en) * 1994-03-28 1997-11-25 Matsushita Electric Ind. Co. Layout designing apparatus for circuit boards
US5640328A (en) * 1994-04-25 1997-06-17 Lam; Jimmy Kwok-Ching Method for electric leaf cell circuit placement and timing determination
US5535134A (en) * 1994-06-03 1996-07-09 International Business Machines Corporation Object placement aid
US5619419A (en) * 1994-09-13 1997-04-08 Lsi Logic Corporation Method of cell placement for an itegrated circuit chip comprising integrated placement and cell overlap removal
US6516307B1 (en) 1995-02-24 2003-02-04 Fujitsu Limited Next alternative generating apparatus using simulated annealing and method thereof
JPH08235150A (ja) * 1995-02-24 1996-09-13 Fujitsu Ltd シミュレーティド・アニーリングによる次候補生成装置および方法
US5796625A (en) * 1996-03-01 1998-08-18 Lsi Logic Corporation Physical design automation system and process for designing integrated circuit chip using simulated annealing with "chessboard and jiggle" optimization
JP3204381B2 (ja) * 1997-11-04 2001-09-04 エヌイーシーマイクロシステム株式会社 半導体装置の自動配置配線方法
US6099583A (en) * 1998-04-08 2000-08-08 Xilinx, Inc. Core-based placement and annealing methods for programmable logic devices
US6898773B1 (en) * 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
JP2003076734A (ja) * 2001-09-03 2003-03-14 Fujitsu Ltd 集積回路設計装置及び集積回路設計方法並びにプログラム
US6782518B2 (en) * 2002-03-28 2004-08-24 International Business Machines Corporation System and method for facilitating coverage feedback testcase generation reproducibility
US7113945B1 (en) * 2002-04-10 2006-09-26 Emc Corporation Virtual storage device that uses volatile memory
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
US7526739B2 (en) * 2005-07-26 2009-04-28 R3 Logic, Inc. Methods and systems for computer aided design of 3D integrated circuits
US7404166B2 (en) * 2005-10-24 2008-07-22 Lsi Corporation Method and system for mapping netlist of integrated circuit to design
US10606650B2 (en) * 2015-03-24 2020-03-31 Telefonaktiebolaget Lm Ericsson (Publ) Methods and nodes for scheduling data processing
CN109920787B (zh) * 2017-12-12 2021-05-25 中芯国际集成电路制造(北京)有限公司 互连结构的设计方法、装置及制造方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1502554A (de) * 1965-12-01 1968-02-07
US4630219A (en) * 1983-11-23 1986-12-16 International Business Machines Corporation Element placement method
JPS60114968A (ja) * 1983-11-28 1985-06-21 Hitachi Ltd 推論システム
US4700316A (en) * 1985-03-01 1987-10-13 International Business Machines Corporation Automated book layout in static CMOS
US4918614A (en) * 1987-06-02 1990-04-17 Lsi Logic Corporation Hierarchical floorplanner
JPH02242474A (ja) * 1989-03-16 1990-09-26 Hitachi Ltd 素子配置最適化方法及び装置並びに最適配置判定方法及び装置
EP0431532B1 (de) * 1989-12-04 2001-04-18 Matsushita Electric Industrial Co., Ltd. Plazierungsoptimierungssystem mit Hilfe von CAD
US5208759A (en) * 1990-12-13 1993-05-04 Vlsi Technology, Inc. Method for placement of circuit components in an integrated circuit

Also Published As

Publication number Publication date
JP2601586B2 (ja) 1997-04-16
KR930009077A (ko) 1993-05-22
JPH05108759A (ja) 1993-04-30
EP0538035A2 (de) 1993-04-21
EP0538035B1 (de) 2001-08-29
EP0538035A3 (de) 1994-12-28
US5475608A (en) 1995-12-12
KR970008535B1 (ko) 1997-05-24
DE69232026D1 (de) 2001-10-04

Similar Documents

Publication Publication Date Title
DE69232026T2 (de) Entwurfssystem zur Platzierung von Elementen
DE69521507T2 (de) System und verfahren zur auf einem modell basierender prüfung von lokalen entwurfsregeln
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE69824765T2 (de) Polygondarstellung im Layout eines integrierten Schaltkreises
DE69527331T2 (de) Datenwiedererfindungssystem, Datenverarbeitungssystem, Datenwiedererfindungsverfahren und Datenverarbeitungsverfahren
DE69424944T2 (de) Datenreduktion in einem system zur analysierung von geometrischen datenbanken
DE112016007220T5 (de) Kontaktplanprogrammbearbeitungsunterstützungsvorrichtung und Kontaktplanprogrammbearbeitungsverfahren
DE68927794T2 (de) Optimierung der Organisation mehrerer diskreter Elemente
DE68926189T2 (de) Verarbeitungsverfahren von Layoutdaten
DE60116769T2 (de) Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung
DE68927433T2 (de) Schemagenerator und Verfahren zur Schemaherstellung
DE69226106T2 (de) Datenbankherstellungsverfahren und Gerät
DE69026764T2 (de) Verfahren zur Datenübertragung mit hoher Geschwindigkeit
DE2718110A1 (de) Datenverarbeitungseinheit
DE2714805A1 (de) Datenverarbeitungssystem
DE68922870T2 (de) Textverarbeitungseinrichtung für europäische Sprachen mit Rechtschreibungs-Korrekturfunktion.
DE4010828A1 (de) Verfahren zum dekompilieren eines anwenderprogramms bei einer industriesteuerung
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE3855494T2 (de) Abfragevorrichtung und -methode
DE69327021T2 (de) Dekodierschaltung für einen Kode variabler Länge
DE3850444T2 (de) Progammverwaltungsverfahren für verteilte Verarbeitungssysteme und angepasste Vorrichtung.
DE2926322A1 (de) Speicher-subsystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE3121046C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee