DE60005670T2 - Aktualisierung der platzierung während der technologieabbildung - Google Patents

Aktualisierung der platzierung während der technologieabbildung Download PDF

Info

Publication number
DE60005670T2
DE60005670T2 DE60005670T DE60005670T DE60005670T2 DE 60005670 T2 DE60005670 T2 DE 60005670T2 DE 60005670 T DE60005670 T DE 60005670T DE 60005670 T DE60005670 T DE 60005670T DE 60005670 T2 DE60005670 T2 DE 60005670T2
Authority
DE
Germany
Prior art keywords
matching
node
weight
nodes
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 - Lifetime
Application number
DE60005670T
Other languages
English (en)
Other versions
DE60005670T8 (de
DE60005670D1 (de
Inventor
Arnold Ginetti
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.)
Cadence Design Systems Inc
Original Assignee
Cadence Design Systems Inc
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 Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Publication of DE60005670D1 publication Critical patent/DE60005670D1/de
Application granted granted Critical
Publication of DE60005670T2 publication Critical patent/DE60005670T2/de
Publication of DE60005670T8 publication Critical patent/DE60005670T8/de
Active legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Surgical Instruments (AREA)
  • Air Bags (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Description

  • Diese Anmeldung steht in Bezug mit der gemeinsam angemeldeten U.S. Patentanmeldung Nummer 09/322,696 für "Using Budgeted Required Time During Technology Mapping".
  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft das Gebiet der Elektronikentwurfsautomatisierung. Insbesondere betrifft diese Erfindung den Betrieb eines Technologieabbildungswerkzeugs.
  • HINTERGRUND DER ERFINDUNG
  • Moderne Logik-Schaltkreise sind so komplex, dass Designer im Allgemeinen computerbasierte Techniken benötigen, um bei ihrem Entwurf zu helfen. Während des Entwurfs eines komplexen Logik-Schaltkreises, wird ein "Technologie-Mapping" genannter Prozess verwendet, um eine abstrakte Darstellung eines Entwurfs in eine technologieabhängige Netzliste zu transformieren, welche eine Darstellung des Entwurfs ist, die Zellen einer technologiespezifischen Zielbibliothek verwendet. Die abstrakte Darstellung des Entwurfs besteht im Allgemeinen aus kombinatorischen Blöcken, die von sequentiellen Blöcken getrennt sind. Ein kombinatorischer Block stellt eine boolesche Gleichung mit mehreren Eingängen dar, bei der die Ausgabe eine logische Kombination der Eingangssignale ist, und wird oft mittels gerichteter azyklischer Graphen (Directed Acyclic Graphs, DAGs) dargestellt. Ein sequentieller Block ist einer, der eine Zustandsrepräsentation enthält, so dass die Ausgabe nicht einfach eine logische Kombination der Eingaben sind.
  • Das Technologie-Mapping kann in einer Folge von Schritten ausgeführt werden. In einem ersten Schritt partitioniert der Technologie-Mapper einen DAG in eine Menge gekoppelter Logik-Konen und Pufferbäume. Ein Logik-Konus ist eine Menge verzweigungsfreier gekoppelter 2-Eingang-UND-Knoten und 2-Eingang-ODER-Knoten, begrenzt von Mehrfachverzweigungsknoten, Invertern und Puffern. Ein Pufferbaum ist eine Menge gekoppelter Inverter und Puffer (manchmal reduziert auf eine einfache Mehrfachverzweigungsleitung), begrenzt von 2-Eingang-UND-Knoten und 2-Eingang-ODER-Knoten, und von DAG-Endpunkten. In 1 ist ein DAG so dargestellt, dass er in drei Logik-Konen und acht Pufferbäume partitioniert worden ist. Nachdem der DAG partitioniert worden ist, werden die Logik-Konen und die Pufferbäume in eine Vorwärts-Breitensuche-(Breadth First Search, BFS)Reihenfolge sortiert.
  • Die Logik-Konen werden einer nach dem anderen überkachelt, entsprechend der BFS-sortierten Reihenfolge. Während des Überkachelungsschrittes wird angenommen, dass die Eingaben jedes Logik-Konus sowohl in direkter als auch in invertierter Form verfügbar sind. Ferner wird die Überkachelung für jeden Logik-Konus sowohl in direkter als auch in invertierter Form unternommen, wobei die beste Überkachelung beibehalten wird. An jedem Knoten eines Logik-Konus iteriert der Technologie-Mapper über alle der verfügbaren Bibliothekszellen, um zu ermitteln, ob die jeweilige Zelle den aktuellen Knoten überdecken kann. Dies bezieht ein, festzustellen, ob ein Überdecken in direkter oder invertierter Form möglich ist. Wenn dies der Fall ist, wird eine Zuordnung zwischen den aktuellen Zelleneingangsanschlüssen und den Eingangsknoten, die die Zelle ansteuern, festgelegt. Die Polarität der Anschlüsse wird ebenfalls definiert. Wenn der Technologie-Mapper den Wurzelknoten eines Logik-Konus (dessen Ausgabe die Ausgabe des Logik-Konus ist) erreicht, ermittelt er die beste Überdeckung für den gesamten Logik-Konus. Diese Auswahl induziert eine Polarität auf dem Logik-Konus, sowie auf allen Logik-Konus-Eingangsanschlüssen.
  • Die Pufferbäume werden dann einer nach dem anderen gepuffert, basierend auf: (i) der Anfangspolarität der Logik--Konus-Eingangsanschlüsse, die von dem Pufferbaum angesteuert werden, (ii) die vom Überkachler erzeugte Polarität der Logik-Konus-Eingangsanschlüsse, die von dem Pufferbaum angesteuert werden, und (iii) die vom Überkachler erzeugte Polarität der Logik-Konus-Ausgangsanschlüsse, die den Pufferbaum ansteuern. Das Ergebnis der Überkachelung und der Pufferung ersetzt die abstrakte Darstellung des kombinatorischen Blocks in dem Entwurf.
  • Bei dem obigen Überkachelungsschritt besucht der Technologie-Mapper Knoten innerhalb eines Logik-Konus in einer BFS-Reihenfolge von den Eingängen hin zu dem Ausgang. An jedem besuchten Knoten ruft der Technologie-Mapper einen Matcher in einer ersten Phase mit einer gegebenen matchbaren Bibliothekszelle auf. Der Matcher erzeugt eine Liste von Matches, wobei jedes aus der folgenden Information zusammengesetzt ist:
  • Figure 00030001
    Tabelle 1.
  • Zum Beispiel würde in dem Fall von 2a der für Knoten n aufgerufene Matcher ein Match erzeugen, das Information, wie beispielsweise die in 2b dargestellte, aufweist. Ein Kinderknoten ist einer, der einen Ausgang aufweist, der mit einem Eingang des aktuellen Knotens gekoppelt ist.
  • Nachdem die Erzeugung der Liste der Matches abgeschlossen ist, werden potentielle Knotenüberdeckungen bestimmt. Eine Knotenüberdeckung ist rekursiv definiert als ein Match plus eine Überdeckung für jeden Kinderknoten des Matches. Eine Knotenüberdeckung kann als eine Menge gekoppelter Komponenten gesehen. werden, die erforderlich sind, um die Funktionalität dieses Knotens ab den Logik-Konus-Eingangsanschlüssen zu überdecken. Eine Knotenüberdeckung weist die folgende Information auf:
  • Figure 00040001
    Tabelle 2
  • Wie hier verwendet, weist die Güte einer Überdeckung die Fläche der Überdeckung und den Schlupf der Überdeckung auf. Der Schlupf der Überdeckung wird automatisch gefolgert, indem die Anstieg/Abfall-Ankunftszeiten des überdeckten Knotens mit den eingeplanten benötigten Zeiten des überdeckten Knotens verglichen werden. In einigen Fällen ist auch das Potential in die Güte einbezogen, physikalische Probleme (d. h. Routing-Probleme) zu schaffen. Eine Logik-Konus-Wurzelknoten-Überdeckung kann eine Logik-Konus-Überdeckung genannt werden, weil die vollständige Überdeckung des Logik-Konus mittels rekursiven Besuchens der Kinderknotenüberdeckungen dieser Überdeckung deutlich gemacht wird.
  • Der Überkachelungsprozess generiert viele potentielle Überdeckungen und es ist eine schwierige Aufgabe, die beste von diesen auszuwählen. Die Aufgabe ist zum Teil deshalb schwierig, weil Überdeckungen schwierig zu vergleichen und abzustimmen sind. Zum Beispiel ist es nicht klar, ob eine kleinere und langsamere Überdeckung einer größeren und schnelleren Überdeckung bevorzugt werden soll. Dennoch existiert ein Minderwertigkeitsverhältnis zwischen einigen Überdeckungen, das einen einfachen Vergleich dieser Überdeckungen erlaubt. Eine Überdeckung wird als minderwertig gegenüber einer anderen Überdeckung betrachtet, wenn sie schlechter (d. h. größer, schlechterer Schlupf, schwieriger zu place-and-route) als die andere Überdeckung in mindestens einem Aspekt ist und nicht besser als die andere Überdeckung in jeglichem anderen Aspekt ist. Minderwertige Überdeckungen können im Allgemeinen sofort beim Überkachelungsprozess zurückgewiesen werden.
  • Eine Kinderknotenüberdeckung heißt Logik-Entwurf-Regel(LDR)-kompatibel mit einer Knotenüberdeckung, wenn die Kopplung der Kinderüberdeckung mit der Knotenüberdeckung keine LDR-Verletzung schafft.
  • Zwei Überdeckungen werden als Timing-äquivalent betrachtet, wenn der Unterschied zwischen ihren Schlupfen kleiner als eine gewisse Schwelle τ ist. Das physikalische Konzept hinter dem Parameter τ ist die Tatsache, dass unter einer gewissen Schwelle das innerhalb einer Timing-Maschine gemessene Timing nicht sinnvoll ist. Man beachte, dass die direkte Wirkung des Parameters τ ist, dass nicht minderwertige Überdeckungen als minderwertig betrachtet werden können. Zum Beispiel, wenn die Überdeckung a einen um τ/2 besseren Schlupf erzeugt als Überdeckung b und wenn Überdeckung b kleiner ist als Überdeckung a, dann wird die Überdeckung a der Überdeckung b gegenüber als minderwertig betrachtet und wird zurückgewiesen. Diese Zurückweisung ist sinnvoll bis zu einer gewissen Schwelle, weil die Auswahl kleinerer Überdeckungen die Endgröße des Entwurfs verringert und somit die durchschnittliche Verdrahtungskapazität des Entwurfs verringert.
  • In einer zweiten Phase ordnet der Technologie-Mapper Überdeckungen den Matches zu, die von dem Matcher erzeugt wurden und bewertet die Güte dieser Überdeckungen. Die Güte einer Überdeckung, die ausschließlich von Logik-Konus-Eingangsanschlüssen angesteuert wird, kann wie folgt berechnet werden:
    • – die Fläche ist die Fläche der gematchten Zelle; und
    • – der Schlupf wird berechnet als die Differenz zwischen der von der Timing-Maschine eingeplanten benötigten Zeit und der von der Timing-Maschine berechneten Ankunftszeit an dem Ausgangsknoten der gematchten Zelle.
  • Während des Erzeugens der unterschiedlichen Überdeckungen vergleicht der Technologie-Mapper die Güte der Überdeckungen, wobei er zurückweisbare Überdeckungen aussondert, wie beispielsweise Überdeckungen, die nicht einer Logik-Entwurf-Regel gehorchen, Überdeckungen, die Gatter überdecken, die sehr weit voneinander entfernt platziert sind, und minderwertige Überdeckungen.
  • Die Güte einer Überdeckung, die nicht ausschließlich von Logik-Konus-Eingangsanschlüssen angesteuert wird, wird wie folgt berechnet:
    • – die Fläche ist die Summe der Fläche der gematchten Zelle plus die Flächen der Überdeckungskinderknotenüberdeckungen; und
    • – der Schlupf wird berechnet als die Differenz zwischen der von der Timing-Maschine eingeplanten benötigten Zeit und der von der Timing-Maschine berechneten Ankunftszeit an dem Ausgangsknoten der gematchten Zelle.
  • Sobald der Logik-Konus-Ausgangsknoten besucht worden ist und sobald die Überdeckungsgütewerte bekannt sind, wählt der Technologie-Mapper die geeignetste Logik-Konus-Überdeckung (die, welche am besten den Nebenbedingungen genügt) für diesen Logik-Konus. Diese Auswahl impliziert die Polarität des Logik-Konus-Eingangsanschlusses. Die Kinderknotenüberdeckungen werden rekursiv gefunden, indem die Überdeckungskinderknotenüberdeckungen besucht werden: Diese rekursiven Besuche implizieren die Logik-Konus-Eingangsanschluss-Polarität.
  • 3a stellt einen typischen Logik-Konus dar. Die Knoten n und m sind schon überkachelt worden und die direkten Überdeckungen sind wie in 3b beziehungsweise 3c gezeigt. Beim Überkacheln von Knoten p erzeugt der Matcher eine Folge von potentiellen Matches, wobei eines von diesen ein 2-Eingang-UND-Gatter ist. Das Ziel des Matchers ist es, die Überdeckungen zu finden, welche die beste Güte für den aktuellen Logik-Konus zur Folge haben. Ein Problem ist es, dass die Güte des Logik-Konus erst bekannt ist, sobald er vollständig überkachelt wurde. Somit kann die beste Überdeckung für einen gegebenen Knoten erst dann bekannt sein, nachdem der Logik-Konus überkachelt wurde. Für jeglichen Zwischenknoten muss der Matcher die Güte aller möglichen Überdeckungen berechnen und alle nicht minderwertigen Überdeckungen abspeichern. In dem in 3 dargestellten Fall würde der Matcher Überdeckung 1 (n) mit Überdeckung 1 (m), Überdeckung 1 (n) mit Überdeckung 2 (m), Überdeckung 2 (n) mit Überdeckung 1 (m) und Überdeckung 2 (n) mit Überdeckung 2 (m) versuchen. Im allgemeinen Fall müssen eine große Anzahl von Überdeckungsgüten für jeden Knoten berechnet werden. Man beachte auch, dass die Überdeckungsgüteberechnung selbst ein CPU-intensiver Prozess ist. Sie besteht primär aus dem Platzieren einer gematchten Zelle, dem Berechnen der Verdrahtungskapazität und dem Berechnen des Timings der Überdeckung. Die Ortsangabe der gematchten Zelle ist erforderlich, weil die Verdrahtungskapazität aus der Verdrahtungslänge zwischen der gematchten Zelle und anderen gematchten Zellen berechnet wird. Um die Verdrahtungslänge zu berechnen, ist die Ortsangabe der gematchten Zellen erforderlich.
  • Üblicherweise sind zwei Verfahren benutzt worden, um die Platzierung einer gematchten Zelle aus einer anfänglichen globalen Platzierung zu berechnen:
    • – Center of Mass of Covered Nodes-Verfahren (CM-of-Covered-Verfahren);
    • – Center of Mass of Fan-Verfahren (CM-of-Fan-Verfahren).
  • Das CM-of-Covered-Verfahren weist das Platzieren eines gematchten Gatters in dem Massenzentrum der Positionen der unterschiedlichen Basisgatter auf, die von der gematchten Zelle überdeckt werden. Das CM-of-Fan-Verfahren weist das Platzieren der gematchten Zelle in dem Massenzentrum der Verbindungsleitungen der gematchten Zelle auf, so dass die gesamte Leitungslänge minimiert wird, die erforderlich ist, um diese gematchte Zelle anzuschließen. Diese Verfahren sind in Pedram, Massoud et al. "Layout Driven Technology Mapping", 28. ACM/IEEE Entwurfsautomatisierungskonferenz, 1991, beschrieben. Ein Nachteil des CM-of-Covered-Verfahrens ist es, dass die Platzierung einer gematchten Zelle unabhängig von den Verbindungsleitungen der gematchten Zelle ist. Ein Nachteil des CM-of-Fan-Verfahrens ist es, dass, um die Länge der Verbindungsleitungen zu minimieren, die Positionen der Gatter erforderlich sind, die mit der gematchten Zelle gekoppelt sind, aber die Position des Gatters, das von der aktuellen gematchten Zelle angesteuert wird, noch nicht bekannt ist. Ebenso, weil mehrere Überdeckungen für jeden Kinderknoten beibehalten werden, sind die Positionen der Gatter, die die aktuelle gematchte Zelle ansteuern, nicht bekannt.
  • Ein weiteres Problem mit herkömmlichen Verfahren ist, dass eine große Anzahl potentieller Überdeckungen für jeden Knoten in einem Logik-Konus aufrechterhalten werden muss. Wenn der Logik-Konus größer wird, wächst auch die Menge der Überdeckungsinformation, die gespeichert werden muss. Jede folgende Knotengüteberechnung erfordert eine größer werdende Menge von Rechenressourcen. Die Komplexität herkömmlicher Verfahren scheitert dabei, gut mit zunehmender Größe von Logik-Konen und Zell-Bibliotheken zu skalieren. Was erforderlich ist, ist ein System und ein Verfahren zum Berechnen der Platzierung einer gematchten Zelle aus einer globalen Platzierung, die die Verbindungsleitungen der gematchten Zelle berücksichtigt, die aber keine Information über die Position der Zellen benötigt, die mit der gematchten Zelle gekoppelt sind. Was ebenfalls erforderlich ist, ist ein System und ein Verfahren zur Auswahl von Überdeckungen für jeden Knoten, das nicht rechnerisch schwer wird, wenn Logik-Konus- und Zellbibliotheksgrößen groß werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein System und ein Verfahren zum Berechnen der Position einer gematchten Zelle werden dargelegt, die die Zusammenschaltungen dieser Zelle berücksichtigen, ohne sich auf die Ortsangaben von Zellen zu stützen, die mit der gematchten Zelle gekoppelt sind. Das neue Verfahren wird als das Weighted Center of Mass of Covered-Verfahren (kurz WCM-of-Covered-Verfahren) bezeichnet. Bei diesem Verfahren werden verschiedenen Knoten Gewichte gegeben, die Teil des Matches sind. Diese Gewichte basieren auf der Anzahl von Kopplungen zwischen den Knoten und Kinderknoten des Matches. Die Platzierung der gematchten Zelle basiert auf den Anfangspositionen, die den das Match bildenden Knoten gegebenen ist, und den für diese Knoten berechneten Gewichten.
  • Ein System und ein Verfahren zur Auswahl, welche Überdeckungen für jeden Knoten beizubehalten sind, reduziert die Rechenlast für große Logik-Konen und große Zell-Bibliotheken. An jedem Knoten werden nur K Überdeckungen beibehalten. Diese Überdeckungen haben Timing-Güten, die um die ideale Timing-Güte für diesen Knoten zentriert sind, und weisen keine minderwertigen Überdeckungen auf. Die Rechenlast bei der Auswahl der Überdeckungen für jeden Knoten basiert auf der Zahl K und der Anzahl von Eingaben für diesen Knoten.
  • KURZBESCHREIBUNG DER FIGUREN
  • 1 stellt die Partitionierung eines DAG in Logik-Konen und Pufferbäume dar.
  • 2a und 2b stellen die Beziehung zwischen Knoten eines Logik-Konus und möglichen Matches für diese Knoten dar.
  • 3a, 3b und 3c stellen die Beziehung zwischen Knoten eines Logik-Konus und mögliche Überdeckungen bei diesen Knoten dar.
  • 4 stellt ein Flussdiagramm des Ablaufs einer Ausführungsform der Erfindung dar.
  • 5 stellt die Gewichte dar, die Knoten einer gematchten Zelle zugeordnet sind.
  • 6 stellt das Weighted Center of Mass-Verfahren dar.
  • 7 stellt die Beziehung zwischen einem Match und den Kinderknoten des Matches dar.
  • 8a und 8b stellen die Timing-Gütematrix P dar.
  • DETAILIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Eingabe eines Technologie-Mappers ist eine zerlegte Netzliste, die aus (i) Grund-2-Eingang-UND-Gattern, (ii) Grund-2-Eingang-ODER-Gattern, (iii) Invertern und (iv) sequentiellen Elementen besteht. Logik-Konen dieser Netzliste werden identifiziert und der Technologie-Mapper arbeitet auf jeder dieser Logik-Konen. In der dargestellten Ausführungsform wurde die Netzliste auf eine Timinggesteuerte Art konstruiert, so dass keine Restrukturierung der Netzliste erforderlich ist. Jetzt bezugnehmend auf 4, stellt ein Flussdiagramm den Ablauf eines Technologie-Mappings gemäß einer Ausführungsform der Erfindung dar. Der Technologie-Mapper durchläuft eine Schleife 400 über jeden Knoten des Logik-Konus in BFS-Reihenfolge. Zuerst werden alle Eingangsknoten gebildet, dann jede folgende Knotenschicht. Der Ausgangsknoten des Logik-Konus wird als Letztes gebildet. An jedem Knoten werden Matches aus einer Bibliothek matchbarer Zellen gefunden 402. Jede Zelle der Bibliothek, die den aktuellen Knoten matchen kann, in direkter oder invertierter Form, wird einer Liste potentieller Matches für diesen Knoten hinzugefügt. Jedes Match weist die Funktionalität des aktuellen Knotens und Null oder mehr Kinderknoten des aktuellen Knotens auf. Die Information, die jedes Match bildet, kann aufweisen: den aktuellen Knoten, die gematchte Bibliothekszelle, die Polarität des Matches des entsprechenden Knotenausgangsanschlusses, die Kinderknoten, die von diesem Match erreicht werden, die Zuordnung zwischen den Kinderknoten und den Gattereingangsanschlüssen und die Polarität von jedem der Kinderknoten.
  • Der Technologie-Mapper durchläuft dann eine Schleife 404 über alle der potentiellen Matches für diesen Knoten. Für jeden Knoten muss die Platzierung der Bibliothekszelle, die diesem Match entspricht, berechnet werden 406. Um dies zu tun, wird eine gematchte Zelle in dem Massenzentrum der gewichteten Positionen der unterschiedlichen Grundgatter platziert, die von der gematchten Zelle überdeckt werden (der aktuelle Knoten und Kinderknoten, die von dem Match überdeckt werden). Wie in 5 dargestellt, werden die Gewichte an diese Knoten gemäß der Anzahl von Verbindungen von diesen Knoten zu Knoten verteilt, die nicht Teil des Matches sind. In der exemplarischen Ausführungsform der Erfindung sind die Gewichte:
    • – Gewicht 0 für einen Knoten, der keinen anderen Knoten außerhalb der gematchten Zelle berührt (zum Beispiel der Knoten b in 5);
    • – Gewicht 1 für einen Knoten, der genau einen Knoten außerhalb der gematchten Zelle berührt (zum Beispiel die Knoten a und c in 5); und
    • – Gewicht 2 für einen Knoten, der genau zwei der Knoten außerhalb der gematchten Zelle berührt (zum Beispiel die Knoten d, e und f in 5).
  • In dieser Ausführungsform wird kein Gewicht für Knoten festgelegt, die drei oder mehr Gematchte-Zelle-Anschlüsse berühren, weil in diesem Fall die gematchte Zelle nur einen einzigen Knoten überdeckt und keine Gewichtung erforderlich ist. Für andere Ausführungsformen, in denen Knoten mit mehr als drei anderen Knoten in Kontakt stehen können, würde ein Gewicht für Knoten festgelegt werden, die mehr als zwei Knoten außerhalb der gematchten Zelle berühren.
  • Die gematchte Zelle wird dann im Massenzentrum der gewichteten Knoten platziert, die das Match bilden. Jene Knoten mit einem Gewicht von 2 üben den zweifachen Einfluss von Knoten mit Gewicht 1 aus. Jene Knoten mit einem Gewicht von 0 üben keinerlei Einfluss aus. 6 stellt die Implementierung einer Gewichtetes-Massenzentrum-Berechnung dar. Zuerst wird ein Referenzkoordinatenpunkt bestimmt, beispielsweise Punkt o. Dann wird für jeden gewichteten Knoten (a, b und c) ein zweidimensionaler Vektor (va, vb und vc) von dem Referenzpunkt o zu dem Knoten berechnet. Die Zahl auf jedem Knoten von 6 zeigt das Gewicht auf diesem Knoten. Der Betrag jedes Vektors (va, vb und vc) wird multipliziert mit dem Gewicht des zugeordneten Knotens und die multiplizierten Vektoren werden summiert. Der Betrag des summierten Vektors wird dann durch die Summe aller Knotengewichte geteilt, was einen Vektor V liefert, der zu dem gewichteten Massenzentrum der Knoten zeigt.
  • Dieses Verfahren hat den Vorteil, dass Verbindungsleitungen berücksichtigt werden, ohne dass Information über die Position der Knoten erforderlich ist, die den gematchten Knoten ansteuern und die von ihm angesteuert werden. Es hat auch den Vorteil, dass es relativ leicht zu implementieren ist. Man beachte, dass in anderen Ausführungsformen die Gewichtswerte in den Fällen von einer oder zwei berührten Zellkopplungen auf andere Werte als 1 und 2 gesetzt werden können.
  • Nachdem der Ort der gematchten Zellen berechnet wurde, wird die Pin-to-Pin-Timing-Güte jeder Kinderüberdeckung des Matches berechnet 408. Im allgemeinen Fall gibt es Knoten, die nicht Teil des Matches sind, aber die Kinderknoten von Knoten sind, die Teil des Matches sind. Wie in 7 dargestellt, werden die Knoten n und m als Kinderknoten des Matches betrachtet. Wenn es solche Kinderknoten gibt, werden sie vor dem aktuellen Knoten von dem Technologie-Mapper besucht worden sein und eine Menge von K Überdeckungen wird für jede dieser Matchkinderknoten bestimmt worden sein. Um die Pin-to-Pin-Timing-Güte für jede Kinderüberdeckung des Matches zu berechnen, ist es erforderlich zu wissen, wo das Match sich befinden wird, weil die Entfernung von der Kinderüberdeckung zu dem Match die Kapazität und somit das Timing der Kopplung zwischen ihnen beeinflusst. Da die Match-Stelle berechnet worden ist 406, kann die Timing-Güte für jede Überdeckung jedes Kinderknotens des Matches direkt berechnet werden. Um das zu häufige Wiederberechnen der Timing-Güte zu vermeiden, kann die Timing-Güte für jede Überdeckung mit der Kapazitätslast, die verwendet wurde, in einen Cache aufgenommen werden, so dass, wenn irgendwelche künftigen Berechnungen der Timing-Güte für die Überdeckung eine ähnliche Kapazität haben, die Timing-Güte aus dem Cache gelesen werden kann.
  • Aus diesen Match-Überdeckungs-Timing-Güten wird eine Timing-Gütematrix bestimmt 410. Eine Timing-Gütematrix P ist definiert als eine N-kreuz-K-Matrix, wobei jedes Element Pij die Timing-Güte des Matches aufgrund der j-ten Überdeckung des i-ten Kinderknotens des Matches ist. Diese Guten werden berechnet, indem die Kinderrüberdeckungs-Timing-Güte auf dem Match-Timing-Bogen von dem Kinderknoten zu dem Match-Ausgangsknoten fortgepflanzt wird. Wie hier verwendet, ist ein Timing-Bogen ein Pfad von einem Eingang eines Matches zu dem Ausgang des Matches. Die Guten jeder Zeile der Matrix P, die zu einem einzelnen Kinderknoten korrespondieren, werden von am besten zu am schlechtesten geordnet, wie in 8a dargestellt. Eine sortierte Liste von Überdeckungen für den aktuellen Knoten wird von am besten zu am schlechtesten konstruiert. Wie oben angedeutet, wird jede Überdeckung nicht nur ein spezielles Match einbeziehen, sondern auch eine spezielle Überdeckung für jeden Kinderknoten des Matches. Die schlechteste Überdeckung für das aktuelle Match wird die sein, die die Kinderknotenüberdeckungen in der Spalte der Matrix P verwendet, die zu den schlechtesten Timing-Guten korrespondiert. In 8a ist dies die ganz rechte Spalte, die aus den Timings 3, 4, 9, 7 und 6 ns besteht. Das langsamste dieser Timings, 9 ns, ist die Timing-Güte für die Überdeckung, die diese Kinderknotenüberdeckungen verwendet. Diese Überdeckung wird konstruiert 412, indem das aktuelle Match mit jeder der spezifizierten Überdeckungen für die Kinderknoten kombiniert wird. Ein Test wird durchgeführt 414 zum Bestimmen, ob es schon mindestens K Überdeckungen innerhalb einer vordefinierten Gütespanne Δ gibt und ob die aktuelle Überdeckung außerhalb von Δ ist. In einer Ausführungsform der Erfindung ist es bevorzugt, K Überdeckungen innerhalb einer Spanne Δ einer "idealen" Gütezeit zu finden. Solch eine ideale Gütezeit kann mittels Durchführen eines Null-Schlupf-Algorithmus (Zero Slack Algorithm, ZSA) oder einer Iterative-Minimax-PERT-(Iterative Minimax-PERT, IMP) Berechnung erhalten werden. Die ZSA- und IMP-Algorithmen sind in Youssef, Habib et al., "Bounds on Net Delays for VLSI Circuits", IEEE Transactions on Circuits and Systems, Vol. 39, No. 11, November 1992, beschrieben. Der IMP-Algorithmus verteilt Schlupf als eine Funktion von Gewichten, die auf Gatter-Timing-Bogen festgelegt sind. Im Kontext dieser Ausführungsform können diese Gewichte automatisch als eine Funktion der Flexibilität des Logik-Konus, von dem das Gatter ein Teil ist, generiert werden.
  • Güte-Timings, die viel langsamer als die ideale sind, resultieren in nicht erfüllten Timing-Güten-Kriterien Güten-Timings, die viel schneller als die ideale sind, resultieren oft in nicht optimalen Timing- und Flächen-Tradeoffs. Nachdem K Überdeckungen innerhalb Δ bestimmt worden sind, ist es nicht länger erforderlich, Überdeckungen zu berücksichtigen, die nicht in Δ sind. In einer Ausführungsform der Erfindung ist Δ gleich K mal τ. Wenn beide dieser Tests positiv sind, dann gibt es keine weiteren Überdeckungen des aktuellen Matches für die Überdeckungsliste und das Ende der Schleife für das aktuelle Match 422 wurde erreicht. Ansonsten wird ein weiterer Test durchgeführt 416, um zu bestimmen, ob die aktuelle Überdeckung minderwertig gegenüber einer anderen Überdeckung in der Liste ist. Eine Überdeckung kann zum Beispiel als minderwertig betrachtet werden, wenn sie langsameres Timing als eine andere Überdeckung aufweist und sie eine Fläche hat, die mindestens so groß wie die andere Überdeckung ist. In diesem Stadium können andere Kriterien angewendet werden, um zu bestimmen, ob die Überdeckung beibehalten werden soll. Wenn die Überdeckung zum Beispiel irgendwelche Logik-Entwurf-Regeln verletzt oder wenn die Überdeckung Platzierungsprobleme schafft, soll die Überdeckung zurückgewiesen werden als ob sie minderwertig wäre. Wenn die aktuelle Überdeckung nicht zurückgewiesen wird, dann wird die Überdeckung zu der Überdeckungsliste für dieses Match hinzugefügt 418.
  • Nach dem Hinzufügen der Überdeckung 418 (im Falle nicht-zurückgewiesener Überdeckungen) oder nach Bestimmen 416, dass eine Überdeckung minderwertig ist, wird die Matrix P angepasst 420, um die aktuelle Überdeckung zu entfernen. Jede Instanz der aktuellen Timing-Güte, in diesem Fall die 9 ns Timing-Güte, wird aus Matrix P entfernt und jede solche Zeile wird nach rechts verschoben, wie in 8b. Die neue rechte Spalte korrespondiert zu einer anderen Überdeckung mit einer besseren Timing-Güte, in diesem Fall 8 ns. Eine neue Überdeckung wird für diese Spalte konstruiert 412 und der Prozess wird wiederholt, bis mindestens eine Zeile vollständig entfernt wurde, in diesem Fall nachdem die 4ns-Überdeckung zu der sortierten Liste hinzugefügt worden ist.
  • An diesem Punkt ist das aktuelle Match fertig 422 und die Ausführung fährt mit dem nächsten Match 404 fort. Dieser Prozess wird fortgesetzt, indem Überdeckungen zu der Überdeckungsliste für den aktuellen Knoten hinzugefügt werden, bis alle Matches verbraucht worden sind.
  • An diesem Punkt ist die Überdeckungsliste fertig. Die K Überdeckungen, die dem idealen Güte-Timing am nächsten sind, werden beibehalten 424 und die anderen Überdeckungen werden gelöscht. In einer Ausführungsform ist K 3 und Δ wird als K*τ berechnet, wobei τ die Hälfte des Pin-to-Pin-Verzögerungstimings des schnellsten Inverters der Zell-Bibliothek ist.
  • Nach Bestimmen der finalen Liste von K Überdeckungen für den aktuellen Knoten ist das Ende der Knotenschleife 426 erreicht und die Ausführung fährt mit dem nächsten Knoten 400 fort. Nachdem alle Knoten überdeckt worden sind, hat der letzte besuchte Knoten, der "Wurzelknoten", K individuelle Überdeckungen, wobei jede ein spezielles Match für jeden Knoten des Baumes impliziert. Die optimale Wurzelknotenüberdeckung wird zum Beispiel ausgewählt, indem bestimmt wird, welche der idealen Timing-Güte für den gesamten Baum am nächsten ist. Diese Wurzelknotenüberdeckung weist die gesamte Information auf, die erforderlich ist, um zu bestimmen, welches Match für jeden Knoten des Baumes geeignet ist.
  • Die obige Beschreibung ist eingefügt, um den Ablauf exemplarischer Ausführungsformen zu illustrieren und ist nicht dazu beabsichtigt, den Anwendungsbereich der Erfindung zu beschränken. Der Anwendungsbereich der Erfindung ist nur von den folgenden Ansprüchen zu beschränken. Aus der obigen Beschreibung werden viele Variationen für einen Fachmann ersichtlich sein, die noch von dem Anwendungsbereich der Erfindung umfasst wären.

Claims (21)

  1. Computer-implementiertes Verfahren zum Bestimmen einer Ortsangabe für eine passende Zelle während des Prozesses des Technologie-Mappings, während des Entwurfs eines Logik-Schaltkreises, wobei die passende Zelle eine Menge von passenden Knoten aufweist, wobei wenigstens einer der passenden Knoten an mindestens einen nicht-passenden Knoten gekoppelt ist, jeder passende Knoten eine anfängliche, damit verknüpfte Position hat und das Verfahren die Schritte aufweist: Zuordnen eines Gewichts zu jedem passenden Knoten, basierend auf der Anzahl nicht-passender Knoten an welche der passende Knoten gekoppelt ist; Zuordnen eines Ortsvektors (va, vb, vc) zu jedem passenden Knoten, wobei jeder der Ortsvektoren (va, vb, vc) die Lage des zugeordneten passenden Knotens relativ zu einem gemeinsamen Ursprung darstellt; Multiplizieren jedes Ortsvektors (va, vb, vc) mit dem zugeordneten Gewicht des verknüpften passenden Knotens; Summieren der multiplizierten Ortsvektoren (va, vb, vc); und Erzeugen einer Ortsangabe einer passenden Zelle durch Teilen der summierten Ortsvektoren (va, vb, vc) durch die Summe aller mit den passenden Knoten verknüpften Gewichte.
  2. Verfahren gemäß Anspruch 1, wobei der Schritt des Zuordnens eines Gewichts zu jedem passenden Knoten aufweist: Zuordnen eines Gewichts von Null zu jedem passenden Knoten (b, p), welcher nicht mit irgendeinem nicht-passenden Knoten verknüpft ist; Zuordnen eines ersten Gewichts zu jedem passenden Knoten (a, c), welcher mit genau einem nicht-passenden Knoten verknüpft ist; und Zuordnen eines zweiten Gewichts zu jedem passenden Knoten (d, e, f, n, m), welcher mit genau zwei nicht-passenden Knoten verknüpft ist.
  3. Verfahren gemäß Anspruch 2, wobei das zweite Gewicht einen Wert hat, der zweimal so groß ist wie der Wert des ersten Gewichts.
  4. Verfahren gemäß Anspruch 1, wobei die passenden Knoten nicht aufeinanderfolgende Elemente einer Netzliste sind, welche festgelegt wurde, basierend auf durch Zeitvorgabe beschränkter Information.
  5. Verfahren gemäß Anspruch 4, wobei die Netzliste UND-Knoten mit zwei Eingängen, ODER-Knoten mit zwei Eingängen, Inverter und sequenzielle Blöcke aufweist.
  6. Verfahren gemäß Anspruch 4, ferner aufweisend den Schritt: Benutzen der Lage der passenden Zellen zum Berechnen einer Verdrahtungslänge zwischen der passenden Zelle und einer anderen Zelle.
  7. Verfahren gemäß Anspruch 6, ferner aufweisend den Schritt: Benutzen der berechneten Verdrahtungslänge zum Berechnen einer Leitungskapazität einer Leitung zwischen der passenden Zelle und einer anderen Zelle.
  8. Computer-lesbares Medium, welches ein Computerprogramm zum Bestimmen einer Ortsangabe einer passenden Zelle aufweist, während des Prozesses des Technologie-Mappings, während des Entwurfs eines Logik-Schaltkreises, wobei die passende Zelle eine Menge von passenden Knoten aufweist, wobei wenigstens einer der passenden Knoten an mindestens einen nicht-passenden Knoten gekoppelt ist, jeder passende Knoten eine anfängliche, damit verknüpfte Position hat und das Computerprogramm, wenn es durch einen Prozessor ausgeführt wird, die Schritte ausführt: Zuordnen eines Gewichts zu jedem passenden Knoten, basierend auf der Anzahl nicht-passender Knoten an welche der passende Knoten gekoppelt ist; Zuordnen eines Ortsvektors (va, vb, vc) zu jedem passenden Knoten, wobei jeder der Ortsvektoren (va, vb, vc) die Lage des verknüpften passenden Knotens relativ zu einem gemeinsamen Ursprung darstellt; Multiplizieren jedes Ortsvektors (va, vb, vc) mit dem zugeordneten Gewicht der verknüpften passenden Knoten; Summieren der multiplizierten Ortsvektoren (va, vb, vc); und Erzeugen eines Ortsvektors (va, vb, vc) einer passenden Zelle durch Teilen der summierten Ortsvektoren (va, vb, vc) durch die Summe aller mit den passenden Knoten verknüpften Gewichte.
  9. Computer-lesbares Medium gemäß Anspruch 8, wobei der Schritt des Zuordnens eines Gewichts zu jedem passenden Knoten aufweist: Zuordnen eines Gewichts von Null zu jedem passenden Knoten (b, p), welcher nicht mit irgendeinem nicht-passenden Knoten verknüpft ist; Zuordnen eines ersten Gewichts zu jedem passenden Knoten (a, c), welcher mit genau einem nicht-passenden Knoten verknüpft ist; und Zuordnen eines zweiten Gewichts zu jedem passenden Knoten (d, e, f, n, m), welcher mit genau zwei nicht-passenden Knoten verknüpft ist.
  10. Computer-lesbares Medium gemäß Anspruch 9, wobei das zweite Gewicht einen Wert hat, der zweimal so groß ist wie der Wert des ersten Gewichts.
  11. Computer-lesbares Medium gemäß Anspruch 8, wobei die passenden Knoten nicht aufeinanderfolgende Elemente einer Netzliste sind, welche festgelegt wurde, basierend auf durch Zeitvorgabe beschränkter Information.
  12. Computer-lesbares Medium gemäß Anspruch 11, wobei die Netzliste UND-Knoten mit zwei Eingängen, ODER-Knoten mit zwei Eingängen, Inverter und sequenzielle Blöcke aufweist.
  13. Computer-lesbares Medium gemäß Anspruch 11, wobei das Computerprogramm, wenn es ausgeführt wird, überdies den Schritt ausführt: Benutzen der Lage der passenden Zelle zum Berechnen einer Verdrahtungslänge zwischen der passenden Zelle und einer anderen Zelle.
  14. Computer-lesbares Medium gemäß Anspruch 13, wobei das Computerprogramm, wenn es ausgeführt wird, überdies den Schritt ausführt: Benutzen der berechneten Verdrahtungslänge zum Berechnen einer Leitungskapazität einer Leitung zwischen der passenden Zelle und einer anderen Zelle.
  15. System zum Bestimmen einer Ortsangabe für eine passende Zelle, während des Prozesses des Technologie-Mappings, während des Entwurfs eines Logik-Schaltkreises, wobei die passende Zelle eine Menge von passenden Knoten aufweist, wobei wenigstens einer der passenden Knoten an mindestens einen nicht-passenden Knoten gekoppelt ist, jeder passende Knoten eine anfängliche, damit verknüpfte Position hat und das System aufweist: Mittel zum Zuordnen eines Gewichts zu jedem passenden Knoten, basierend auf der Anzahl nicht-passender Knoten, an welche der passende Knoten gekoppelt ist; Mittel zum Zuordnen eines Ortsvektors (va, vb, vc) zu jedem passenden Knoten, wobei jeder der Ortsvektoren (va, vb, vc) die Lage des verknüpften passenden Knotens relativ zu einem gemeinsamen Ursprung darstellt; Mittel zum Multiplizieren jedes Ortsvektors (va, vb, vc) mit dem zugeordneten Gewicht des verknüpften passenden Knotens; Mittel zum Summieren der multiplizierten Ortsvektoren (va, vb, vc) ; und Mittel zum Erzeugen einer Ortsangabe einer passenden Zelle durch Teilen der summierten Ortsvektoren (va, vb, vc) durch die Summe aller mit den passenden Knoten verknüpften Gewichte.
  16. System gemäß Anspruch 15, wobei die Mittel des Zuordnen eines Gewichts zu jedem passenden Knoten aufweisen: Mittel zum Zuordnen eines Gewichts von Null zu jedem passenden Knoten (b, p), welcher nicht mit irgendeinem nichtpassenden Knoten verknüpft ist; Mittel zum Zuordnen eines ersten Gewichts zu jedem passenden Knoten (a, c), welcher mit genau einem nicht-passenden Knoten verknüpft ist; und Mittel zum Zuordnen eines zweiten Gewichts zu jedem passenden Knoten (d, e, f, n, m), welcher mit genau zwei nichtpassenden Knoten verknüpft ist.
  17. System gemäß Anspruch 16, wobei das zweite Gewicht einen Wert hat, der zweimal so groß ist wie der Wert des ersten Gewichts.
  18. System gemäß Anspruch 15, wobei die passenden Knoten nicht aufeinanderfolgende Elemente einer Netzliste sind, welche festgelegt wurde, basierend auf durch Zeitvorgabe beschränkter Information.
  19. System gemäß Anspruch 18, wobei die Netzliste UND-Knoten mit zwei Eingängen, ODER-Knoten mit zwei Eingängen, Inverter und sequenzielle Blöcke aufweist.
  20. System gemäß Anspruch 18, ferner aufweisend: Mittel zum Benutzen der Lage der passenden Zelle, zum Berechnen einer Verdrahtungslänge zwischen der passenden Zelle und einer anderen Zelle.
  21. System gemäß Anspruch 20, ferner aufweisend: Mittel zum Benutzen der berechneten Verdrahtungslänge, zum Berechnen einer Leitungskapazität einer Leitung zwischen der passenden Zelle und einer anderen Zelle.
DE60005670T 1999-05-28 2000-05-19 Aktualisierung der platzierung während der technologieabbildung Active DE60005670T8 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US322262 1999-05-28
US09/322,262 US6405345B1 (en) 1999-05-28 1999-05-28 Updating placement during technology mapping
PCT/US2000/013920 WO2000073926A2 (en) 1999-05-28 2000-05-19 Updating placement during technology mapping

Publications (3)

Publication Number Publication Date
DE60005670D1 DE60005670D1 (de) 2003-11-06
DE60005670T2 true DE60005670T2 (de) 2004-08-19
DE60005670T8 DE60005670T8 (de) 2005-11-24

Family

ID=23254104

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60005670T Active DE60005670T8 (de) 1999-05-28 2000-05-19 Aktualisierung der platzierung während der technologieabbildung

Country Status (5)

Country Link
US (1) US6405345B1 (de)
EP (1) EP1192559B1 (de)
AT (1) ATE251320T1 (de)
DE (1) DE60005670T8 (de)
WO (1) WO2000073926A2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519743B1 (en) * 2000-08-24 2003-02-11 Cadence Design Systems, Inc. Method and system for timing and area driven binary and/or matching
US6557144B1 (en) * 2000-12-14 2003-04-29 Lsi Logic Corporation Netlist resynthesis program based on physical delay calculation
US6766500B1 (en) * 2001-12-06 2004-07-20 Synopsys, Inc. Multiple pass optimization for automatic electronic circuit placement
US7594204B1 (en) * 2003-10-06 2009-09-22 Altera Corporation Method and apparatus for performing layout-driven optimizations on field programmable gate arrays
US7308666B1 (en) * 2004-12-16 2007-12-11 Cadence Design Systems, Inc. Method and an apparatus to improve hierarchical design implementation
JP2007004563A (ja) * 2005-06-24 2007-01-11 Nec Electronics Corp ライブラリ作成装置、ライブラリ作成プログラムおよびライブラリ作成方法
US20070256037A1 (en) * 2006-04-26 2007-11-01 Zavadsky Vyacheslav L Net-list organization tools
US7634743B1 (en) 2006-07-21 2009-12-15 Cadence Design Systems, Inc. Method for updating a placed and routed netlist
US9361415B1 (en) 2014-08-05 2016-06-07 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a multi-fabric electronic design spanning across multiple design fabrics
US10102327B2 (en) * 2014-12-31 2018-10-16 Stmicroelectronics, Inc. Integrated circuit layout wiring for multi-core chips
US10097182B2 (en) 2014-12-31 2018-10-09 Stmicroelectronics, Inc. Integrated circuit layout wiring for multi-core chips
US9779193B1 (en) 2015-03-31 2017-10-03 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations
US9881119B1 (en) 2015-06-29 2018-01-30 Cadence Design Systems, Inc. Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics
US9881120B1 (en) 2015-09-30 2018-01-30 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a multi-fabric mixed-signal design spanning across multiple design fabrics with electrical and thermal analysis awareness
US10346573B1 (en) 2015-09-30 2019-07-09 Cadence Design Systems, Inc. Method and system for performing incremental post layout simulation with layout edits
US9798840B1 (en) 2015-10-15 2017-10-24 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing a simulation platform with dynamic device model libraries for electronic designs
US10331841B1 (en) 2016-01-15 2019-06-25 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing virtual prototyping for electronic designs
US9934354B1 (en) 2016-06-30 2018-04-03 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing a layout-driven, multi-fabric schematic design
US10354037B1 (en) 2016-06-30 2019-07-16 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design
US10133841B1 (en) 2016-09-30 2018-11-20 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing three-dimensional integrated circuit designs
US10049174B2 (en) * 2016-12-16 2018-08-14 Synopsys, Inc. Exact delay synthesis
US10325051B2 (en) * 2016-12-16 2019-06-18 Synopsys, Inc. Exact delay synthesis

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524082A (en) 1991-06-28 1996-06-04 International Business Machines Corporation Redundancy removal using quasi-algebraic methods
US5513124A (en) * 1991-10-30 1996-04-30 Xilinx, Inc. Logic placement using positionally asymmetrical partitioning method
US5349659A (en) * 1992-01-23 1994-09-20 Cadence Design Systems, Inc. Hierarchical ordering of logical elements in the canonical mapping of net lists
US5787010A (en) * 1992-04-02 1998-07-28 Schaefer; Thomas J. Enhanced dynamic programming method for technology mapping of combinational logic circuits
US5553000A (en) 1992-11-05 1996-09-03 Nec Usa, Inc. Eliminating retiming bottlenecks to improve performance of synchronous sequential VLSI circuits
US5526276A (en) * 1994-04-21 1996-06-11 Quicklogic Corporation Select set-based technology mapping method and apparatus
US5696694A (en) 1994-06-03 1997-12-09 Synopsys, Inc. Method and apparatus for estimating internal power consumption of an electronic circuit represented as netlist
US5537330A (en) * 1994-06-10 1996-07-16 International Business Machines Corporation Method for mapping in logic synthesis by logic classification
JPH08212246A (ja) * 1995-02-08 1996-08-20 Hitachi Ltd 論理生成方法
US5838585A (en) 1995-03-24 1998-11-17 Lsi Logic Corporation Physical design automation system and method using monotonically improving linear clusterization
US5805462A (en) * 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
US5801957A (en) 1995-11-01 1998-09-01 Digital Equipment Corporation Implicit tree-mapping technique
US5815406A (en) * 1996-03-25 1998-09-29 International Business Machines Corporation Method and system for designing a circuit using RC and timing weighting of nets
US5754454A (en) 1997-03-03 1998-05-19 Motorola, Inc. Method for determining functional equivalence between design models
US5974242A (en) 1997-09-25 1999-10-26 The United States Of America As Represented By The Secretary Of The Army Methods and computer programs for minimizing logic circuit design using identity cells
US6195788B1 (en) * 1997-10-17 2001-02-27 Altera Corporation Mapping heterogeneous logic elements in a programmable logic device
US6154874A (en) 1998-04-17 2000-11-28 Lsi Logic Corporation Memory-saving method and apparatus for partitioning high fanout nets

Also Published As

Publication number Publication date
WO2000073926A3 (en) 2001-09-13
DE60005670T8 (de) 2005-11-24
WO2000073926A2 (en) 2000-12-07
DE60005670D1 (de) 2003-11-06
ATE251320T1 (de) 2003-10-15
EP1192559B1 (de) 2003-10-01
EP1192559A2 (de) 2002-04-03
US6405345B1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
DE60005670T2 (de) Aktualisierung der platzierung während der technologieabbildung
DE69724245T2 (de) Verfahren zur plazierung von taktpuffern in einem taktverteilungssystem
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
DE69031513T2 (de) Minimierung der Verbindungskosten von elektronisch verbundenen Objekten
DE3853265T2 (de) Reduzierung der logischen Weglänge unter Verwendung von Boolescher Minimierung.
DE60318086T2 (de) System und methode zur reduzierung von leitungsverzögerung oder überlastung bei der synthese von hardware-solvern
DE3689538T2 (de) Integrierte Schaltung und Optimierungsverfahren dafür.
DE69332391T2 (de) Struktur und Methode zur Versorgung einer wieder konfigurierbaren Emulation-Schaltung
DE19824796B4 (de) Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion
US6311313B1 (en) X-Y grid tree clock distribution network with tunable tree and grid networks
US5956257A (en) Automated optimization of hierarchical netlists
US6205571B1 (en) X-Y grid tree tuning method
DE69321124T2 (de) Verfahren zur simulation einer elektronischen schaltung mit verbesserter genauigkeit.
DE69738556T2 (de) Interaktiver cad-apparat zum entwerfen des zusammenbaus von logischen schaltungen
DE19639629C2 (de) Programmierbare, monolithische, integrierte Logikschaltung und Verfahren zum Implementieren derselben
US6334205B1 (en) Wavefront technology mapping
DE69909452T2 (de) Eine datenbank, die nützlich ist, um ein system zu konfigurieren und/oder zu optimieren und ein verfahren, um diese datenbank zu generieren
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE69225527T2 (de) Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung
DE69425744T2 (de) Verfahren zur modellierung von bidirektionalen oder multiplikativ gesteuerten signalpfaden in einem system zum erreichen eines statisch geplanten allzwecksimulators
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE3688580T2 (de) Verfahren zur Verdrahtungsverbesserung von Meisterbild-DCVS-Chips.
DE69533567T2 (de) Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8380 Miscellaneous part iii

Free format text: DIE VERTRETER SIND ZU AENDERN IN: VIERING, JENTSCHURA, & PARTNER, 80538 MUENCHEN