-
Die
vorliegende Erfindung betrifft ein Verfahren zum Entwerfen von Zeitablaufbudgets
zur Verwendung beim Design einer Großintegrationsschaltung (LSI)
und insbesondere ein Verfahren, das eine LSI-Schaltung entwerfen
kann, während
es in geeigneter Weise Signalverzögerungen berücksichtigt,
wenn Logikblöcke
der LSI-Schaltung angeordnet werden.
-
Ein
LSI-Entwurf besteht gewöhnlich
aus einem Schritt zur Blockanordnung, um zu bestimmen, in welchen
LSI-Teilen Logikblöcke
angeordnet werden, nachdem eine Logik aufgebaut wurde und die Logik
in Logikblöcke
unterteilt wurde, einem Schritt, um die Logikblöcke, die gemäß der Blockanordnung
angeordnet sind, durch Elemente wie Transistoren usw. zu ersetzen,
und einem Schritt, um die Elemente zu verdrahten.
-
Für das oben
beschriebene gewöhnliche
Entwurfsverfahren wird die Anordnung der Logikblöcke jedoch zum Zeitpunkt der
Blockanordnung bestimmt, ohne zu untersuchen, ob Signalverzögerungen
auftreten, wenn eine Logikschaltung gemäß den vorgegebenen Angaben
verdrahtet wird. Wenn die Logikschaltung tatsächlich durch das Ersetzen der
Logikblöcke
durch Elemente gebildet wird, und die Logikblöcke verdrahtet werden, stimmen
Signalverzögerungen
deshalb in einigen Fällen
nicht mit den Angaben überein.
-
Da
die Anordnung der Logikblöcke
gewöhnlich
zu diesem Zeitpunkt geändert
werden muß,
wird häufig eine
Verfahrensrückkehr
zu dem Schritt zur Blockanordnung durchgeführt, um die Operationen zu
wiederholen. Das Neuerstellen einer Blockanordnung bei der Wiederholung
der Operationen schließt
häufig
ein, wie die Logik in Blöcke
unterteilt wird.
-
Wie
oben beschrieben tritt bei gewöhnlichen
LSI-Entwurfsverfahren
eine Wiederholung häufig
auf, und viel Zeit ist zum Entwurf erforderlich und gleichzeitig
verlangt es von einem Entwerfer viel Arbeit ab, was zu erhöhten Entwurfskosten
führt.
-
Dies
beruht darauf, daß Operationen
durchgeführt
werden, ohne irgendwelche Signalverzögerungen zu berücksichtigten,
und im Ergebnis stimmen Signalverzögerungen häufig nicht mit Angaben überein,
wenn eine Logikschaltung tatsächlich
angeordnet wird.
-
Es
ist wünschenswert,
ein Verfahren zum Entwerfen von Zeitablaufbudgets zu schaffen, das
Logikblöcke
anordnen kann, während
es auf geeignete Weise Signalverzögerungen am Anfang eines LSI-Entwurfs
berücksichtigt.
-
Ein
Verfahren zum Entwerfen von Zeitablaufbudgets ist ein Verfahren,
das einen LSI-Entwurf voranbringt, während es ein Zeitablaufbudget
auswertet.
-
Die
Veröffentlichung
Yasushi Ogawa u.a.: "Timing-
and Constraint-oriented Placement for Interconnected LSIS in Mainframe
Design", Proceedings
of the ACM/IEEE Design Automation Conference, San Francisco, 17.-21.
Juni 1991, Proceedings of the ACM/IEEE Design Automation Conference
(DAC), US, Band Conf. 28, 17. Juni 1991 (17.06.1991), Seiten 253-258, ISBN: 0-89791-395-7,
offenbart ein Entwurfsverfahren, das hierarchische Stiftbelegung
verwendet, die sich auf die physikalische Hierarchie, den Zeitablauf
berücksichtigende Plazierung
und Zeitablaufanalyse bezieht, und ein Verzögerungsmodell zusammen mit
der Sektorextrahierung von Unterschaltungen. Das Entwurfsverfahren
berücksichtigt
jedoch den Grad der Erreichung von Logikblöcken nicht, wenn der Zeitablauf
während
des Entwurfsverfahrens angepaßt
wird.
-
In
einer Ausführungsform
der vorliegenden Erfindung umfaßt
das Verfahren die folgenden Schritte:
Entwerfen einer Logik,
die in eine LSI eingebettet werden soll, und Unterteilen der Logik
in Logikblöcke;
Einstellen eines Verzögerungswerts
zwischen Stiften eines Logikblocks und Bauen eines Signalverzögerungsmodells;
Anzeigen
des eingestellten Verzögerungswerts
für einen
Entwerfer zusammen mit einer Zwischenverbindungsbeziehung zwischen
den Logikblöcken;
und
Entwerfen der Logikblöcke
durch Berücksichtigung
des Verzögerungswerts;
wobei eine Zeitablaufbedingung eines Zeitablaufs für eine Signalfortpflanzung
durch Berechnen von Signaleingangs/Signalausgangszeiten bei/von
einem Logikblock von dem Verzögerungswert
beschrieben wird; und
wobei, wenn ein Zeitablaufbudget interner
Speicherelemente über
mehrere Logikblöcke
nicht in einen Zielverzögerungswert
auf Grundlage der Zeitablaufbedingung fällt, ein neues Zeitablaufbudget
der Blöcke
durch Verändern
des Zeitablaufbudgets gemäß einer
proportionalen Verteilung unter Berücksichtigung eines Grads der Erreichung
des Entwurfs von jedem Logikblock erzeugt wird.
-
In
der obigen Ausführungsform
wird ein Verfahren zum Entwerfen von Zeitablaufbudgets geschaffen, das
einen LSI-Entwurf
voranbringt, während
es die Verzögerungswerte
der Logikblöcke
berücksichtigt,
so daß es
möglich
wird, die Anzahl der Situationen zu verringern, in denen eine Signalverzögerung nicht
in einen erforderlichen Zeitrahmen in einem fortgeschrittenen Stadium
des LSI-Entwurfs fällt.
Folglich können
die Anzahl der Male, die Operationen in einem Entwurfsstadium wiederholt
werden müssen,
und die Entwurfskosten verringert werden. Im Ergebnis kann ein effizienter
LSI-Entwurf umgesetzt werden.
-
Bevorzugte
Merkmale der Erfindung werden nun rein beispielhaft mit Bezugnahme
auf die beiliegenden Zeichnungen beschrieben, in denen:
-
1 ein
Stadium des LSI-Entwurfs/Herstellung erklärt, auf das/die eine bevorzugte
erfindungsgemäße Ausführungsform
angewendet wird;
-
2 das
Verfahren erklärt,
das eine Zeitablaufbedingung eines Logikblocks in einer Vorrichtung
zum Entwerfen eines Zeitablaufbudgets gemäß einer erfindungsgemäßen Ausführungsform
einstellt;
-
3 eine
Abwandlung eines Modellierverfahrens für eine Zeitablaufbedingung
eines Logikblocks gemäß einer
erfindungsgemäßen Ausführungsform
erklärt;
-
4 die
Beziehung zwischen einer Netzliste, einer Zeitablaufbedingungsbeschreibung
und einem Modell erklärt;
-
5 einen
Rechenausdruck einer Wegverzögerung
beispielhaft darstellt;
-
6 das
Verfahren erklärt,
das überprüft, ob eine
Verzögerung
zwischen Speicherelementen, die sich über Blöcke erstreckt, in eine Zielverzögerung von
einer Zwischenblocknetzliste und einer Blockzeitablaufbeschreibung
fällt oder
nicht, und ein Prüfergebnis
ausgibt (Nr. 1);
-
7 das
Verfahren erklärt,
das überprüft, ob die
Verzögerung
zwischen Speicherelementen, die sich über Blöcke erstreckt, in eine Zielverzögerung von
einer Zwischenblocknetzliste und einer Blockzeitablaufbeschreibung
eines Blocks (Nr. 2) fällt
oder nicht;
-
8 das
Verfahren erklärt,
das ein Zeitablaufbudget eines Logikblocks erzeugt, durch welches
eine Zeitablaufbedingung eines Logikblocks in Signaleingangs- und
Signalaus gangszeiten von Eingangs- und Ausgangsstiften umgewandelt
wird;
-
9 ein
Verarbeitungsverfahren zeigt, das verwendet wird, wenn ein Verzögerungswert
einen erforderlichen Wert als Ergebnis des Berechnens eines Verzögerungswerts
von jedem Weg unter Verwendung der bevorzugten erfindungsgemäßen Ausführungsform
nicht erfüllt;
-
10 ein
weiteres Beispiel des Verfahrens erklärt, das ein Zeitablaufbudget
abwandelt;
-
11 das
Verfahren erklärt,
das ein Zeitablaufbudget anpaßt,
während
es einen Grad der Zielerreichung hinzufügt;
-
12 eine
Beschreibung der Gruppierung interner Speicherelemente beispielhaft
darstellt;
-
13 das
Verfahren erklärt,
das Regeln aufstellt, um eine Beschreibung eines Verfahrens zu vereinfachen,
das einen Taktversatz für
interne Speicherelemente in einer Zeitablaufbudgetbeschreibung oder
Zeitablaufbedingungsbeschreibung eines Blocks bereitstellt;
-
14 die
Zeitablaufüberprüfung unter
Berücksichtigung
eines Taktversatzes beispielhaft darstellt;
-
15 das
Verfahren erklärt,
das ein Signal oder einen Weg in einer Blockanordnung gemäß der bevorzugten
erfindungsgemäßen Ausführungsform
anzeigt;
-
16 ein
weiteres Beispiel des Anzeigeverfahrens aus 15 erklärt;
-
17 ein
Blockdiagramm ist, das die Anordnung einer Vorrichtung zum Entwerfen
von Zeitablaufbudgets gemäß der bevorzugten
erfindungsgemäßen Ausführungsform
zeigt; und
-
18 die
Hardwareumgebung eines Computers erklärt, die erforderlich ist, wenn
die Vorrichtung zum Entwerfen von Zeitablaufbudgets gemäß der bevorzugten
erfindungsgemäßen Ausführungsform
durch ein Programm umgesetzt wird.
-
1 erklärt ein Stadium
des/der LSI-Entwurfs/Herstellung,
für welche(s)
eine bevorzugte erfindungsgemäße Ausführungsform
angewendet wird.
-
Schritt
S1 ist ein Stadium, das RTL-Entwurf (Registerübertragungsniveau) genannt
wird, in dem eine Logik, die auf einer LSI angebracht werden soll,
unter Verwendung einer RTL-Beschreibung entworfen wird. In der bevorzugten
erfindungsgemäßen Ausführungsform
bestimmt ein Entwerfer einen Signalverzögerungswert nach seiner eigenen
Schätzung
während
dem Stadium des RTL-Entwurfs und entwirft einen Logikblock, während er
einen ungefähren
Verzögerungswert
zwischen Logikblöcken
berechnet. Folglich kann ein Verzögerungswert auf einen ungefähr erwünschten
Wert eingestellt werden, wenn Logikblöcke verdrahtet werden.
-
In
Schritt S2 wird Logiksynthese (Logikaufbau) unter den Logikblöcken auf
Grundlage der RTL-Beschreibung durchgeführt, die in Schritt S1 erzeugt
wurde. Sobald die RTL-Beschreibung
erhalten wird, kann die Synthese automatisch von einem vorhandenen
Programm durchgeführt
werden. Als ein Ergebnis der Logiksynthese in Schritt S2 wird eine
Netzliste in Schritt S3 erzeugt. Die Netzliste besteht aus Daten,
die anzeigen, wie Komponenten wie Transistoren, die auf einer LSI
angebracht sind, logisch verbunden werden sollen.
-
In
Schritt S4 wird einer Blockanordnung, um zu bestimmen, in welchen
LSI-Teilen die Logikblöcke
angeordnet werden auf Grundlage der Netzliste, die in Schritt S3
erhalten wurde, erzeugt. Die bevorzugte erfindungsgemäße Ausführungsform
wird auch in dem Stadium verwendet, indem die Blockanordnung erzeugt wird.
Wie Komponenten verbunden sind, ergibt sich nämlich aus der Netzliste. Deshalb
kann ein Verzögerungswert
aus dieser Information berechnet werden, wenn die Logikblöcke verbunden
sind, und es kann bestimmt werden, ob der Verzögerungswert zu einem Wert führt, der
für die
Operationen der LSI erforderlich ist. Wenn der Verzögerungswert
den erforderlichen Wert nicht erfüllt, kehrt das Verfahren hierauf
zu der Logiksynthese in Schritt S2 zurück, und eine Netzliste wird
erzeugt. Wenn der Verzögerungswert
den erforderlichen Wert bei der Erzeugung der Blockanordnung in
Schritt S4 erfüllt,
kann die Anordnungsinformation der Logikblöcke erhalten werden.
-
Wenn
die Anordnungsinformation in Schritt S5 erhalten wird, werden die
Logikblöcke
auf Grundlage der erhaltenen Anordnungsinformation angeordnet und
wird eine versuchsweise Verdrahtung durchgeführt. Dann wird in Schritt S6
eine Verzögerungsberechnung
mit einer Verdrahtungslänge
auf Grundlage der versuchsweisen Verdrahtung ausgeführt und
eine Verzögerungssimulation
wird in Schritt S7 durchgeführt.
-
Da
die versuchsweise Verdrahtung durchgeführt wird, wird das Vorliegen
einer Verzögerung
aufgrund eines Umwegs der Verdrahtung, die sich nicht aus der Netzliste
ergibt, und dergleichen offensichtlich. Wenn der Verzögerungswert
nicht in den erforderlichen Wert als ein Ergebnis der Verzögerungssimulation
fällt,
wird hierauf eine Blockanordnung in Schritt S4 neu erzeugt. Selbst
wenn die neue Erzeugung einer Blockanordnung in Schritt S4 als nicht
ausreichend angesehen wird, geht das Verfahren auf die Logiksynthese
in Schritt S2 zurück.
Dann werden die Operationen wieder durchgeführt.
-
Wenn
es sich erweist, daß der
Verzögerungswert
in den erforderlichen Wert in der Verzögerungssimulation in Schritt
S7 fällt,
werden die Komponenten innerhalb der entsprechenden Logikblöcke automatisch
angeordnet und in Zelleinheiten in Schritt S8 verdrahtet. Dann wird
eine Verzögerungsberech nung
in Schritt S9 für
den Zustand durchgeführt,
in dem alle Komponenten angeordnet und verdrahtet sind. In Schritt
S10 wird eine Verzögerungsberechnung
durchgeführt.
Wenn der Verzögerungswert
so bestimmt wurde, daß er
nicht in den erforderlichen Wert in der Verzögerungssimulation in Schritt
S10 fällt,
werden die Operationen wiederholt, indem beispielsweise die automatische
Anordnung und Verdrahtung in Schritt S8 wieder durchgeführt wird, eine
Blockanordnung neu erzeugt wird, oder die Logiksynthese wieder durchgeführt wird.
Wenn der Verzögerungswert
so bestimmt wird, daß er
in den erforderlichen Wert in der Verzögerungssimulation in Schritt
S10 fällt,
wird erkannt, daß der
LSI-Entwurf vollständig
ist. Das Verfahren beginnt daher mit einem Herstellungsstadium des
Schritts S11.
-
2 erklärt das Verfahren,
das eine Zeitablaufbedingung eines Logikblocks in einer Vorrichtung
zum Entwerfen von Zeitablaufbudgets gemäß einer bevorzugten erfindungsgemäßen Ausführungsform
einstellt.
-
Ein
Teil, das durch ein Quadrat in 2 eingeschlossen
ist, zeigt das Stadium eines Logikblocks eines Modells, das eine
Verteilung von Verzögerungswerten
zum Auswerten eines Zeitablaufbudgets darstellt, und Einstellungen
der Verzögerungswerte,
die innerhalb des Logikblocks definiert sind. Zusätzlich legt
eine Beschreibung in einem oberen Teil aus 2 das Modell
der Verteilung von Verzögerungswerten
des Logikblocks fest.
-
In
dieser bevorzugten Ausführungsform
wird eine Zeitablaufbedingung eines Logikblocks dadurch beschrieben,
daß ein
oder mehrere interne Signalspeicher veranlaßt werden, eine große Anzahl
interner Speicherelemente, FFs usw. darzustellen, die in einem Logikblock
eingeschlossen sein sollten.
-
Wenn
diese bevorzugte Ausführungsform
im Stadium des RTL-Entwurfs verwendet wird, wird der Zeitablauf
eines Logikblocks grob durch die Intuition eines Entwerfer in Einheiten
von Logikblöcken
gemäß einer Zykluszeit
eines gesamten Chips zugeordnet oder gemäß der Größe eines Logikblocks oder der
Anzahl der internen Zellen geschätzt.
Wenn diese bevorzugte Ausführungsform
im Stadium der Erzeugung des Anordnungsplans verwendet wird, beschreibt
eine Person, die für
das Entwerfen eines jeden Logikblocks verantwortlich ist, eine Zeitablaufbedingung
durch Berechnen eines Verzögerungswerts
auf Grundlage eines repräsentativen
RC-Werts (Widerstand und Kondensator), der aus der technologischen
Information (charakteristische Daten die von einem Hersteller von
jeder Komponente bereitgestellt werden) für jeden Weg erhalten wird,
während
eine Verbindung interner Zellen auf Grundlage der Information einer
Netzliste geprüft
wird.
-
In
der Beschreibung im oberen Teil aus 2 werden
zwei Stiftgruppen definiert. Die Stiftgruppen werden „pingr
A" und „pingr
B" genannt. „pingr
A" schließt die Stifte „ADDRA
T", „ADDRA
C", „ADDRB
T" und „ADDRB
C", von denen jeder
aus einem Bit 0 bis einem Bit 11 besteht, und „NULL T" und „NULL C", von denen jeder aus einem Bit 0 bis
zu einem Bit 2 besteht, und dergleichen ein. Ähnlich schließt die "pingr B" „DOUT" und „XDOUT" ein, die aus einem Bit 0 und einem
Bit 11 bestehen.
-
Zusätzlich werden
interne Speicherelemente wie „FF1", „FF2", „FF3" usw. als ein interner
Signalspeicher „IL
0" definiert. Außerdem definiert
eine Beschreibung „Verzögerung des
Wegs von A nach B 500",
daß ein
Verzögerungswert
eines Wegs von einem Stift „A" (der Stiftgruppe „A" in diesem Fall)
zu einem Stift „B" (der Stiftgruppe „B" in diesem Fall)
500 ps beträgt. Ähnlich definiert
die Beschreibung in dem oberen Teil, daß ein Verzögerungswert von dem Stift „A" zu einem Stift „OFLG" 600 ps ist, ein
Verzögerungswert
von dem Stift „A" zu dem IL (internen
Signalspeicher) 250 ps ist, ein Verzögerungswert von dem IL zu dem
Stift „B" 230 ps ist, ein
Verzögerungswert
von einem Stift „CK0" zu dem Stift „B" 450 ps ist, ein
Verzögerungswert
von einem Stift „CK1" zu dem Stift „B" 430 ps ist, ein
Verzögerungswert
von einem Stift „RST0" zu dem Stift „B" 400 ps ist und ein
Verzögerungswert
von einem Stift „RST1" zu dem Stift „B" 420 ps ist. Das
heißt,
das Modellieren einer Zeitablaufbedingung eines Logikblocks wird
durchgeführt.
-
Wie
oben beschrieben, wird eine große
Anzahl interner Speicherelemente, die ursprünglich vorhanden sein sollten,
durch einen oder mehrere interne Signalspeicher dargestellt, und
eine Zeitablaufbedingung wird beschrieben, so daß das Modellieren einer Zeitablaufbedingung
eines Logikblocks vereinfacht werden kann.
-
3 erklärt eine
Abwandlung des Verfahrens zum Modellieren einer Zeitablaufbedingung
für einen Logikblock
gemäß der bevorzugten
erfindungsgemäßen Ausführungsform.
-
In
dieser Abwandlung werden Logikblöcke
hierarchisch in einer Beschreibung der Zeitablaufbedingung des Logikblocks
beschrieben. Wie in einem unteren Teil aus 3 gezeigt
ist, ist ein kleiner Logikblock, der als Block 1 bezeichnet
ist, nämlich
in einem Logikblock eingeschlossen, der einen großen äußeren Rahmen
hat. Auf diese Weise kann ein Grad der Freiheit einer Beschreibung
der Zeitablaufbedingung vergrößert werden
und ein genaueres Modellieren kann umgesetzt werden.
-
Ein
oberes Teil der 3 stellt eine Zeitablaufbeschreibung
beispielhaft dar. Da ein Teil über
einer Linie, die mit (a) bezeichnet ist, ähnlich zu dem aus 2 ist,
wird seine Erklärung
ausgelassen. Ein Teil unter der Linie, die mit (a) bezeichnet ist,
stellt die Verzögerungswerte
der Wege ein, die den Block 1 durchlaufen. Für Block 1 sind
zwei Eingänge
und zwei Ausgänge
angeordnet. Das Teil unter der Linie (a) definiert, daß ein Verzögerungswert
von einem Stift „A" zu einem Stift „in1" des Blocks 1 200
ps ist, ein Verzögerungswert
von einem Stift „A" zu einem Stift „in2" des Blocks 1 150
ps ist, ein Verzögerungswert
von einem Stift „out1" des Blocks 1 zu
einem Stift „B" 300 ps ist, und
ein Verzögerungswert
von einem Stift „out2" des Blocks 1 (?)
zu dem Stift „B" 250 ps ist. Auch
die Verzögerungen
im Block 1 können
eingestellt werden (obwohl sie in der Beschreibung nicht eingeschlossen
sind). Die Verzögerungen
können
beispielsweise wie in einem unteren rechten Teil der 2 eingestellt
sein.
-
Außerdem kann
jede Beschreibung der Zeitablaufbedingung in dieser bevorzugten
Ausführungsform von
einer Netzliste erzeugt werden, nachdem die Netzliste erzeugt wurde.
-
4 erklärt die Beziehung
zwischen einer Netzliste, einer Beschreibung der Zeitablaufbedingung und
einem Modell.
-
Wenn
ein Modell von einer Netzliste vereinfacht und erzeugt wird, um
eine Beschreibung des Zeitablaufs wie in 4 gezeigt
zu ermöglichen,
wird eine Beschreibung der Zeitablaufbedingung eines Logikblocks erzeugt,
indem die drei folgenden Verzögerungstypen
erhalten werden:
- – eine maximale Verzögerung eines
Wegs von einem Eingangsstift zu allen internen Speicherelementen;
- – eine
maximale Verzögerung
eines Wegs von einem Eingangstift zu einem Ausgangsstift;
- – eine
maximale Verzögerung
eines Wegs von allen internen Speicherelementen zu einem Ausgangsstift.
-
Interne
Speicherelemente werden nämlich
kollektiv durch einen oder mehrere interne Signalspeicher in einem
Modell dargestellt. Selbst wenn einen Netzliste mehrere interne
Speicherelemente und ihre Verbindungsbeziehung beschreibt, werden
sie deshalb zu einer Verbindung zu/von einem oder mehreren internen Signalspeichern
in einem Modell zusammengefaßt.
Als eine repräsentative
Verbindung zu einem internen Signalspeicher wird hierbei der größte Verzögerungswert
unter mehreren Verbindungen zu dem internen Signalspeicher, der
in der Netzliste beschrieben ist, eingestellt. Als eine repräsentative
Verbindung von dem internen Signalspeicher wird auch der größte Verzögerungswert
eingestellt.
-
Auch
für eine
Verbindung von einem Stift zu einem Stift innerhalb eines Logikblocks
können
zusätzlich mehrere
Wege möglicherweise
in einer Netzliste beschrieben werden. In diesem Fall wird ein Weg,
der den größten Verzögerungswert
hat, als ein repräsentativer
aus den mehreren Wegen eingestellt. Auf diese Weise wird eine Beschreibung
der Zeitablaufbedingung auf Grundlage eines zusammengebauten Modells
durchgeführt.
-
Wie
oben beschrieben werden Verzögerungswerte
auf Grundlage technologischer Information hierbei berechnet, nachdem
einen Netzliste erzeugt wurde.
-
5 stellt
einen Rechenausdruck einer Wegverzögerung beispielhaft dar.
-
In
dieser Figur wird nachgeprüft,
ob ein Verzögerungswert
eines Wegs, der bei einem internen Signalspeicher des Blocks 1 beginnt
und bei einem internen Signalspeicher des Blocks 3 über Block 2 endet,
in eine Zykluszeit eines Chips (die mit 1000 ps hier eingeschätzt wird)
fällt oder
nicht, Die Berechnung wird wie folgt durchgeführt. Zuerst wird angenommen,
daß ein
Verzögerungswert
eines internen Signalspeichers, der eine Sendeseite „FF" ist, „a" ist. Es wird auch
angenommen, das ein Verzögerungswert
von dem internen Signalspeicher zu einem Ausgangsstift im Block 1 „b" ist, ein Verzögerungswert
von dem Ausgangsstift des Blocks 1 zu einem Eingangsstift
des Blocks 2 „c" ist, ein Verzögerungswert
im Block 2 „d" ist, ein Verzögerungswert vom
Block 2 zum Block 3 „e" ist, und ein Verzögerungswert von einem Eingangsstift
zu einem internen Signalspeicher im Block 3 „f" ist, und ein Verzögerungswert
des internen Signalspeichers des Blocks 3 „g" ist. Eine Gesamtsumme
dieser Verzögerungswerte
ist ein Betrag der Signalverzögerung
(ein Verzögerungswert
des Wegs). Durch Beurteilung, ob ein Betrag, der durch Addition
eines Taktversatzes α zu
einem Betrag der Signalverzögerung
erhalten wird, in 1000 ps, was die Zykluszeit des Chips ist, fällt oder
nicht , kann bestimmt werden, daß der Verzögerungswert geeignet entworfen
ist.
-
6 und 7 erklären das
Verfahren, das überprüft, ob eine
Verzögerung
zwischen Speicherelementen, die sich über Blöcke erstreckt, in eine Zielverzögerung gemäß einer
Zwischenblocknetzliste und einer Beschreibung des Zeitablaufbedingung
eines Blocks fällt,
und ein Prüfergebnis
ausgibt.
-
6 ist
ein Flußdiagramm,
das das Verfahren zeigt, um eine Wegverzögerungsliste zu erzeugen.
-
Zuerst
werden in Schritt S20 eine, Netzliste, eine Zeitablaufbeschreibung
und eine Zykluszeit eingegeben. Dann wird ein Weg von der Netzliste
im Schritt S21 extrahiert. In Schritt S22 wird ein Verzögerungswert des
Wegs mit dem Rechenausdruck, der mit Bezug auf die 5 erklärt wird,
berechnet. Dann wird in Schritt S23 bestimmt, ob der Verzögerungswert
des Wegs die Zykluszeit überschreitet
oder nicht. Wenn der Verzögerungswert
die Zykluszeit nicht überschreitet,
geht das Verfahren zum Schritt S21 und ein weiterer Weg wird verarbeitet.
Wenn im Schritt S23 bestimmt wurde, daß der Verzögerungswert des Wegs die Zykluszeit überschreitet,
wird eine Wegliste in Schritt S24 ausgegeben. Ein Entwerfer ist
dann gezwungen, eine neue Netzliste oder Blockanordnung zu erzeugen.
-
7 stellt
Wegverzögerungslisten
und ein Modell beispielhaft dar. Ein oberes Teil dieser Figur stellt das
Modell beispielhaft dar, während
ihr unteres Teil die Pfadverzögerungslisten
beispielhaft darstellt. Die erste Liste unter den Listen in dem
unteren Teil aus 7 beschreibt einen Weg, der
bei einem „FF" beginnt, einen weiteren
Block durchquert, und bei einem „FF" des anderen Blocks endet. Ein Ausgangslogikblock
heißt „FAD", und der Weg beginnt
bei einem internen Signalspeicher des „FAD". Die erste Zeile der ersten Liste beweist,
daß der
interne Signalspeicher des „FAD" mit dem Stift „A148" des FAD verbunden
ist und ein Verzögerungswert
1552 ps ist. Die nächste
Zeile zeigt ein Netz zwischen Blöcken
an, das eine Verbindung von dem Stift „A148" des „FAD" zu einem Stift „A64H" eines Blocks „OPR" anzeigt. Dieses Netz heißt „M FAD
RESULT BYTE7 P7".
Ein Verzögerungswert
dieses Netzes wird auf 0 ps eingestellt. Außerdem beschreibt die letzte
Zeile der ersten Liste einen Weg von dem Stift „A64H" des „OPR" zu seinem internen Signalspeicher,
und ein Verzögerungswert
beträgt
129 ps. Der Verzögerungswert
des gesamten Wegs, der in der zweiten Spalte von rechts in der letzten
Zeile der ersten Liste beschrieben wird, beträgt 1681 ps. Die letzte Spalte
in der letzten Zeile der Liste beschreibt eine Differenz zu 1000
ps, was die Zykluszeit ist, und den gesamten Verzögerungswert.
In diesem Fall zeigt die Spalte an, daß der Verzögerungswert des Wegs um 681
ps größer als
die Zykluszeit ist.
-
Da
das Lesen der anderen Listen ähnlich
ist, wird eine Erklärung
ausgelassen.
-
8 erklärt das Verfahren,
das ein Zeitablaufbudget eines Logikblocks erzeugt, mit dem eine
Zeitablaufbedingung eines Logikblocks in Signaleingangs- und Signalausgangszeiten
von Eingangs- und Ausgangsstiften umgewandelt wird.
-
Die
Eingangszeit und Ausgangszeit werden jeweils für Eingangs- und Ausgangsstifte
wie folgt erzeugt. Ein Erzeugungsverfahren wird bestimmt, indem
eine maximale Verzögerung
bis zu einem internen Speicherelement dadurch berechnet wird, daß ein Weg
von jedem Stift in einer Rückwärtsrichtung
zurückverfolgt
wird.
-
Die
Einstellungsformate der Eingangs- und Ausgangszeiten in einem Modell
werden unten beispielhaft dargestellt.
-
Eingangsstiftformat
-
Eingangsverzögerung Durchgangszeit
Eingangsstiftname Als die Durchgangszeit wird eine Durchgangszeit
eines Wegs, der den größten Verzögerungswert
unter den Wegen hat, die durch den Eingangsstift durchgehen, eingestellt.
-
Der
Name des Eingangsstifts ist der Name des Eingangsstifts eines Blocks,
der verarbeitet werden soll.
-
Ausgangsstiftformat
-
Ausgangsverzögerung Durchgangszeit
Ausgangsstiftname Als die Durchgangszeit wird eine Durchgangszeit
eines Weges, der den größten Verzögerungswert
unter den Wegen hat, die durch den Ausgangsstift durchgehen, eingestellt.
-
Der
Ausgangsstiftname ist der Name eines Ausgangsstifts eines Blocks,
der verarbeitet werden soll.
-
In
einem Beschreibungsbeispiel in einem unteren Teil der 8 sind „A01", „A02", „A03" ... als Eingangsstifte
des Blocks 1 gezeigt und sind „001", „002",... als Ausgangsstifte
des Blocks 1 gezeigt. Eine Eingangszeit eines Eingangsstifts
ist einer Eingangszeit eines Wegs, der den größten Verzögerungswert unter allen Verzögerungswerten
der Teile der Wege hat, die durch den Eingangsstift durchgehen,
und in einer Rückwärtsrichtung
bis zu einem internen Signalspeicher von irgendeinem der Logikblöcke zurückverfolgt werden. In
diesem Beispiel ist eine Eingangszeit des Eingangsstifts „A01" 431.00 ps. Dies
bedeutet, daß der
maximale Wert einer Laufverzögerung
von einem internen Signalspeicher zu irgendeinem der Logikblöcke 431.00
ps beträgt
und daß ein
Signal deshalb bei dem Eingangsstift „A01" zu der Zeit 431.00 ps auf Grundlage
der Annahme, daß die
Ausgangszeit bei den internen Signalspeicher 0 ist, eingeht. Ähnlich zeigt
die Beschreibung an, daß die
Eingangszeit des Eingangsstifts „A02" 423.00 ps beträgt, und daß die Eingangszeit des Eingangsstifts „A03" 531.00 ps beträgt.
-
Zusätzlich ist
eine Ausgangszeit eines Ausgangsstifts eine Zeit, die erhalten wird,
indem zu einer Eingangszeit eines Eingangsstifts ein Verzögerungswert
eines Wegs addiert wird, der den größten Gesamtverzögerungswert
unter den Wegen hat, die von dem Ausgangsstift bis zu dem Eingangsstift
in dem Logikblock zurückverfolgt
werden. Dementsprechend ist eine Ausgangszeit des Ausgangsstifts „001" 802.00 ps, und ist
eine Ausgangszeit des Ausgangsstifts „002" 822.00 ps.
-
Anzumerken
ist, das die Eingangs- und Ausgangsstifte anders als die Stifte,
die in 8 gezeigt sind, in Block 1 angeordnet
sind, und ihre Beschreibungen sind ausgelassen. Dementsprechend
bedeutet die Beschreibung, die in dieser Figur gezeigt ist, nicht,
daß ein
Signal bei dem Eingangsstift „A01" immer zu der Zeit 431,00
ps eingeht und immer zu der Zeit 802,00 ps von dem Ausgangsstift „001" ausgeht. Diese Beschreibung ist
allgemein, und Signale, die von den Ausgangsstiften „001" und „002" ausgehen, sind nicht
notwendigerweise von einem der Eingangsstifte „A01", „A02" und „A03" eingegangen.
-
9 zeigt
ein Verarbeitungsverfahren, das verwendet wird, wenn ein Verzögerungswert
einen erforderlichen Wert als ein Ergebnis des Berechnens des Verzögerungswerts
eines Wegs gemäß der bevorzugten erfindungsgemäßen Ausführungsform
nicht erfüllt.
-
In
dieser bevorzugten Ausführungsform
wird geprüft,
ob eine Inkonsistenz in einem Zeitablaufbudget (ein tolerierbarer
Bereich einer Zeitablaufverschiebung) auftritt, wenn das Zeitablaufbudget
abgewandelt wird.
-
Wenn
ein Weg (NG-Weg), auf dem eine Eingangszeit eines Signals nicht
in eine Zykluszeit fällt,
wie in 9 erfaßt
wird, erkennt ein Entwerfer diesen Weg nämlich auf einem Bildschirm
und wandelt manuell die Eingangs- und Ausgangszeiten der Eingangs-
und Ausgangsstifte eines jeden Logikblocks ab. Angenommen, daß die manuellen
Abwandlungen zu einem unteren Teil aus 9 führen, so
ist in diesem Fall der Wert der Eingangszeit „atime" des Blocks 3 kleiner als derjenige
der Ausgangszeit „dtime" des Blocks 2 einer
vorhergehenden Stufe. Das Phänomen,
daß die
Eingangszeit des Blocks 3 eine frühere Zeit als die Ausgangszeit
des Blocks 2 ist, wenn sich ein Signal vom Block 2 zum
Block 3 fortpflanzt, ist inkonsistent. Deshalb wird dies
als ein Fehler angesehen, und eine Warnung wird an einen Entwerfer
zum Beispiel dadurch ausgegeben, daß eine Anzeigefarbe der fehlerhaften
Zeit geändert
wird. Ähnlich
ist das Phänomen,
daß die
Ausgangszeit „dtime" des Ausgangsstifts
kleiner als die Eingangszeit „atime" des Eingangsstifts
in Block 3 ist, inkonsistent. Deshalb wird dies als ein
Fehler angesehen, und eine Warnung wird an den Entwerfer auf ähnliche
Weise ausgegeben.
-
Wie
oben beschrieben, ist ein Modell gemäß der oben beschriebenen bevorzugten
Ausführungsform auf
einem Bildschirm beim Endgerät
eines Entwerfers angezeigt, und der Entwerfer kann das Modell mit
einem Keyboard usw. abwandeln, wodurch ein Entwurf effizient durchgeführt werden
kann.
-
10 erklärt ein weiteres
Beispiel des Verfahrens zur Abwandlung eines Zeitablaufbudgets.
-
Zusätzlich liegt
das folgende Verfahren als ein Verfahren vor, das die Eingangs-
und Ausgangszeiten abwandelt, wenn eine Eingangszeit eines Wegs
nicht in eine Zykluszeit, wie oben beschrieben, fällt.
-
Wenn
eine Verzögerung
zwischen Speicherelementen, die sich über Blöcke erstreckt, nicht in eine Zielverzögerung fällt, wird
nämlich
eine Beschreibung des Zeitablaufbudgets der Blöcke automatisch mit einer Berechnung
einer proportionalen Verteilung erzeugt, und so dafür zu sorgen,
daß die
Verzögerung
in die Zielverzögerung
fällt.
Ein Rechenausdruck für
diese Umsetzung ist die folgende Gleichung.
-
-
Wobei τ eine Zykluszeit
einer Schaltung ist, T(A, Rückwärts) ein
Maximalwert ist, wenn eine Spur von „A" zu einem Startpunkt in einer Rückwärtsrichtung
zurückverfolgt
wird, und T(A, Vorwärts)
ein Maximalwert ist, wenn eine Spur von „A" zu einem Endpunkt in einer Vorwärtsrichtung
zurückverfolgt
wird. „B", „C" und „D" sind auch ähnlich.
-
Durch
Anpassen der Eingangs- und Ausgangszeiten mit solch einer proportionalen
Berechnung kann ein Verzögerungs wert
von jedem Weg gleichmäßig angepaßt werden.
Diese Operation kann von einem Computer ausgeführt werden, nur ein Ergebnis
kann einem Entwerfer dargestellt werden (z.B. durch Anzeigen eines
Ergebnisses auf einem Bildschirm eines Endgeräts), und der Entwerfer kann
veranlaßt
werden zu bestimmen, ob das Ergebnis verwendet werden soll oder
nicht.
-
Zusätzlich wird
es bequemer, indem ein Block, der bereits entworfen wurde, unverändert gelassen wird,
wenn eine proportionale Verteilung wie oben beschrieben durchgeführt wird.
Das heißt,
unterschiedliche Entwerfer entwerfen das Innere entsprechender Logikblöcke. Auf
den Empfang einer Benachrichtigung hin, daß ein anderer Entwerfer den
von ihm verantworteten Block beendet hat, wird ein Block, der noch
nicht entworfen wurde, veranlaßt,
eine Zeitablaufverschiebung zu absorbieren, ohne das der andere
Entwerfer veranlaßt
ist, den beendeten Block neu zu entwerfen, um seinen Verzögerungswert
zu ändern.
Im Ergebnis wird ein Block, der früher entworfen wurde, unverändert gelassen,
so daß ein
Entwurf vorangeht, ohne oft zu einem früheren Stadium zurückzugehen.
-
Außerdem wird
das oben beschriebene Verfahren, das ein Zeitablaufbudget mit einer
proportionalen Verteilung für
Stifte eines Blocks bestimmt, auch auf den Fall angewendet, in dem
ein Block, der noch nicht entworfen wurde, veranlaßt wird,
eine Anpassung eines Zeitablaufbudgets zu absorbieren. Wenn ein
Block entworfen wurde, wird der Block hinsichtlich des Zeitablaufs
unverändert
gelassen, und eine proportionale Verteilung wird für Blöcke durchgeführt, die
noch nicht entworfen wurden. Im Ergebnis kann eine Anpassung des Zeitablaufbudgets
gleichmäßig durch
die Blöcke
angepaßt
werden, die noch nicht entworfen wurden, und ein Lastungleichgewicht,
wie eine Absorption des Zeitablaufbudgets, die von einem Block durchgeführt wird,
kann verhindert werden.
-
11 erklärt das Verfahren,
das ein Zeitablaufbudget anpaßt,
während
es einen Grad der Zielerreichung berücksichtigt. Wenn eine proportionale
Verteilung eines Zeitablaufbudgets wie oben beschrieben durchgeführt wird,
wird der Grad der Zielerreichung eines jeden Blocks angezeigt, und
eine Anpassung wird durchgeführt,
während
der angezeigte Grad berücksichtigt
wird. Der Grad der Zielerreichung eines jeden Blocks variiert abhängig von
einem Entwurfsstadium. Angenommen, daß Block 1 angepaßt werden
soll, so ist es in vielen Fällen
unsicher, in welchem Ausmaß eine
Anpassung durchgeführt
werden sollte, da die Verzögerungstoleranz
der Blöcke 2 und 3 nicht
bekannt ist. Wenn angenommen wird, daß die Grade der Zielerreichung der
Blöcke 2 und 3 100
Prozent betragen und in diesem Fall unverändert gelassen werden, muß eine Verzögerung nur
durch den Block 1 angepaßt werden. Wenn der/die Grad(e)
der Zielerreichung eines anderen oder anderer zughöriger Blöcke zu diesem
Zeitpunkt angezeigt werden, ist offensichtlich bewiesen, welche
Blöcke angepaßt werden
sollten. Eine proportionale Verteilung wird durchgeführt, während solch
ein Grad der Zielerreichung berücksichtigt
wird.
-
Der
Grad der Zielerreichung wird von einem Entwerfer eines jeden Blocks
als ungefährer
Prozentsatz dargestellt, der den Verarbeitungsstatus seiner Entwurfsoperationen
anzeigt. Wenn der Grad der Zielerreichung 100 Prozent ist,
wenn eine Verzögerung
mit einer proportionalen Verteilung angepaßt wird, wird der Betrag der
Anpassung nämlich
auf 0 eingestellt. Wenn beispielsweise die Grade der Zielerreichung
von zwei Blöcken
jeweils 30 und 50 Prozent sind, wird eine proportionale Verteilung
durchgeführt,
indem eine Gewichtung von 5:3 zugewiesen wird.
-
11 erklärt das oben
beschriebene Verfahren, das auf unterschiedliche Fälle angewendet
wird.
-
Im
Fall 1 sind die Grade der Zielerreichung der Blöcke 2 und 3 100
Prozent. Ein Block, der eine Verzögerung anpassen kann, ist deshalb
nur Block 1 auf einem Weg von Block 1 zu Block 3,
so daß die
Verzögerung
im Block 1 angepaßt
werden muß.
Im Fall 2 ist der Grad der Zielerreichung des Blocks 3 100
Prozent, und eine Verzögerung
-kann nicht im Block 3 angepaßt werden. Jedoch sind die
Grade der Zielerreichung der Blöcke 1 und 2 jeweils
50 und 30 Prozent. Dementsprechend kann die Verzögerung durch die Blöcke 1 und 2 angepaßt werden.
Beispielsweise kann ein Verhältnis
einer Verzögerungsanpassung,
die durch die Blöcke 1 und 2 durchgeführt wird,
auf 3:5 eingestellt werden. Im Fall 3 sind die Grade der
Zielerreichung der Blöcke 1, 2 und 3 jeweils
50, 30 und 40 Prozent. Deshalb können
alle Blöcke 1 bis 3 verwendet
werden, um eine Verzögerung
anzupassen. Ein Anpassungsverhältnis
kann zu diesem Zeitpunkt auf 1/5: 1/3: 1/4 eingestellt werden. Oder
die Verzögerung
kann mit einem gleichen Verhältnis
der entsprechenden Blöcke
angepaßt
werden, indem erkannt wird, daß die
Grade der Zielerreichung ungefähr
gleich sind.
-
Wenn
eine Beschreibung eines Zeitablaufbudgets (eine Beschreibung der
Eingangs- und Ausgangszeiten eines Blocks) in eine Beschreibung
einer Zeitablaufbedingung (eine Beschreibung von Verzögerungswerten)
umgewandelt wird, wird ein Verzögerungswert
von einem Stift „A" zu einem Stift „X" als q-p in der Beschreibung
der Zeitablaufbedingung berech net, beispielsweise wenn atime=p für den Eingangsstift „A" und dtime=q für den Ausgangsstift „X".
-
12 stellt
eine Beschreibung für
das Gruppieren interner Speicherelemente dar.
-
In
der bevorzugten erfindungsgemäßen Ausführungsform
kann ein Taktversatz für
interne Speicherelemente in einer Beschreibung eines Zeitablaufbudgets
oder einer Beschreibung einer Zeitablaufbedingung eines Logikblocks
bereitgestellt werden.
-
Für diese
Umsetzung werden die internen Speicherelemente gruppiert, Namen
wie „IL1", „IL2",... „ILn" usw. werden vergeben,
Versatzwerte werden jeweils für
die Gruppen angegeben, und die internen Speicherelemente, die zu
den entsprechenden Gruppen gehören,
werden numeriert.
-
Ein
Beispiel einer Beschreibung ist in 12 gezeigt.
In dieser Figur werden interne Signalspeicher „IL1" bis „IL4", die interne Speicherelemente darstellen,
in einem Modell namens „CZEU2ALU
A" beschrieben. Für „IL1", „IL2", „IL3" und IL4 werden die
Taktversatze jeweils auf 0, 100, 300 und –100 ps eingestellt. Zusätzlich werden
interne Speicherelemente, die solche Taktversatze haben, in entsprechenden
Linien beschrieben und gruppiert.
-
13 erklärt ein Verfahren,
das Regeln aufstellt, um so eine Beschreibung in einem Verfahren
zu vereinfachen, das für
interne Speicherelemente in einer Beschreibung eines Zeitablaufbudgets
oder einer Beschreibung einer Zeitablaufbedingung eines Logikblocks
einen Taktversatz bereitstellt.
-
Wenn
ein Symbol IL in einem Modell, wie es in (1) aus 13 gezeigt
ist, ausgelassen wird, wird ein Taktversatz als 0 behandelt. Ein
Versatzwert einer Gruppe, die einen Namen IL hat, wird als auf einen
Vorgabewert wie in (2) aus 13 gezeigt,
eingestellt erkannt. Wenn das gleiche Interne Speicherelemente sowohl in
einer Gruppe mit einem Namen „ILn" (n ist eine ganze
Zahl) als auch in einer Gruppe mit dem Namen „IL" eingeschlossen ist, wird der Einstellung
von ILn der Vorrang gegeben. Wie in (3) aus 13 gezeigt,
wird der Gruppenname eines internen Signalspeichers „IL" als ILn definiert.
Für eine
Beschreibung von Gruppen kann eine Gruppe, die einen größeren Wert „n" hat, vor einer Gruppe
beschrieben werden, die einen kleineren Wert „n" hat, und Gruppennamen können angegeben
werden, indem „n" verwendet werden,
die nicht aufeinanderfolgen, sondern willkürlich sind. Wenn der Gruppenname „IL" zweifach definiert
ist, wie in (4) aus 13 gezeigt, wird zusätzlich eine
Warnung ausgegeben, und der Einstellung einer späteren Beschreibungsanweisung in
einem Beschreibungsbefehl von IL-Gruppen wird der Vorrang gegeben.
Wenn „FF", das ein anderes
internes Speicherelement ist, zweifach definiert ist, wird eine
Warnung ausgegeben, und Vorrang wird grundsätzlich einer späteren Gruppendefinitionsanweisung
gegeben.
-
14 stellt
die Zeitablaufüberprüfung unter
Berücksichtigung
eines Taktversatzes beispielhaft dar.
-
Hier
wird überprüft, ob eine
Verzögerung
zwischen Speicherelementen, die sich über Blöcke erstreckt, in eine Zielverzögerung gemäß einer
Zwischenblocknetzliste, einer Beschreibung der Zeitablaufbedingung
eines Blocks und dem oben beschriebenen Blockversatz interner Speicherelemente
fällt.
-
Wenn
beispielsweise ein Taktversatz 0 ps wie oben in 14 gezeigt
ist, wird eine Zeitanpassung durchgeführt, indem überprüft wird, ob eine Zeitablaufzeit
eines Wegs, die aus der oben beschriebenen Beschreibung der Eingangs-
und Ausgangszeiten erhalten wird, in eine Zykluszeit (1000 ps in
diesem Fall) fällt. Wenn
der Taktversatz eines internen Signalspeichers „IL" auf einer Sendeseite –300 ps
ist und derjenige eines internen Signalspeichers „IL" auf einer Empfangsseite
500 ps ist, wie in der Mitte der 14 gezeigt,
wird zusätzlich überprüft, ob ein
Zeitablauf in 1800 ps fällt,
was erhalten wird, indem 300 und 500 ps zu der normalen Zykluszeit
1000 ps addiert wird. Dies beruht darauf, das der interne Signalspeicher
auf der Empfangsseite um 300 ps voraus ist, während der interne Signalspeicher
auf der Ausgangsseite um 500 ps hinterher ist. Selbst wenn der Zeitablauf
hinter einer Zeitperiode hinterher ist, die erhalten wird, indem
800 ps einschließlich
des Taktversatzes zu der Zykluszeit addiert wird, ist es deshalb
immer noch ausreichend den Zeitablauf gemäß einem Takt einzuhalten. Wenn
die Taktversatze interner Signalspeicher auf einer Empfangsseite
und einer Ausgangsseite 0 beziehungsweise –200 ps sind, wie unten in 14 gezeigt,
ist ein Takt auf der Ausgangsseite um 200 ps voraus. Deshalb muß ein Signal
um diesen Zeitbetrag früher
eintreffen. Dementsprechend muß der Zeitablauf
des Wegs in 800 ps fallen, was erhalten wird, indem 200 ps von der
Zykluszeit 1000 ps abgezogen wird.
-
Auf
diese Weise kann eine Zeitablaufanpassung unter Berücksichtigung
von Taktversatzen durchgeführt
werden.
-
15 erklärt ein Verfahren,
das Signale oder Wege in einer Blockanordnung gemäß der bevorzugten erfindungsgemäßen Ausführungsform
anzeigt.
-
Mit
diesem Anzeigeverfahren werden Signale und kritische Wege in einem
Blockdiagramm in einer Blockanordnung auf einem Bildschirm eines
Endgeräts,
das ein Entwerfer verwendet, auf Grundlage einer Korrespondenztabelle
zwischen Signalnamen in dem Blockdiagramm und denjenigen in einer
Netzliste angezeigt.
-
Ein
Blockdiagramm, das auf der linken Seite von 15 gezeigt
ist, veranschaulicht eine Zwischenverbindungsbeziehung zwischen
Funktionsblöcken.
In der Zwischenzeit ist die rechte Seite aus 15 ein Entwurfsplanungsbildschirm
und veranschaulicht die Anordnung von aktuellen Elementen und Funktionsblöcken auf
einer LSI. Solche Skizzen werden auf einem Bildschirm eines Endgeräts angezeigt,
auf dem ein Entwurfswerkzeug, das ein Entwerfer verwendet, installiert
ist. Der Entwerfer beschreibt Signale und Verdrahtung in dem Blockdiagramm
für eine
Anzeige, so daß er
visuell auf dem Entwurfsplanungsbildschirm erkennen kann, auf welchen
Wegen die beschriebenen Signale durchgehen und sich fortpflanzen,
oder auf welchen Wegen die beschriebene Verdrahtung ausgeführt wird.
-
Im
Ergebnis kann überprüft werden,
ob Signalflüsse
oder die Verdrahtung einer entworfenen LSI unerwünscht angeordnet sind oder
nicht.
-
16 zeigt
ein weiteres Beispiel des Anzeigeverfahrens, das in 15 gezeigt
ist.
-
In
dieser bevorzugten erfindungsgemäßen Ausführungsform
sind Signale gemäß einer
Bedingung gruppiert, sind die Gruppen mit Namen bezeichnet, und
sind die Signalflüsse
in einer Blockanordnung auf Grundlage der vergebenen Gruppennamen
angezeigt.
-
Wie
durch eine Beschreibung in einem oberen linken Teil der 16 angezeigt,
gibt „Zwischenblock" die Verdrahtung
zwischen Blöcken
an, „Länge ≥ 8000 Gitterpunkte" gibt an, daß die Verdrahtung,
die eine Länge
gleich oder größer als
8000 Gitterpunkte hat, auf einem Entwurfsplanungsbildschirm angezeigt
wird, und ein Name „A" wird dieser Gruppe
gegeben. „Zwischenblock(p,
q)" zeigt Zwischenblöcke an,
die durch „p" und „q" angegeben sind. „Bus A*" zeigt einen Block
an, der mit einem Bus, der diesen Namen hat, verbunden ist und unter
einem Gruppennamen „B" gruppiert ist. „Zwischenblock&& Länge ≥ 3000 Gitterpunkte
=>C" ist ähnlich.
Ein Anzeigebeispiel dieser Gruppierung ist in einem oberen rechten
Teil der 16 gezeigt.
-
Wenn
beispielsweise eine Verdrahtungslänge so lang wie eine Gruppe
A ist, ist die Wahrscheinlichkeit hoch, daß die Verdrahtung normalerweise
ausgeführt
wird, indem ein sehr komplizierter Weg sofort nach dem Entwurf zurückverfolgt
wird. Dementsprechend wird die Verdrahtung, deren Länge lang
ist, auf einem Entwurfsplanungsbildschirm angezeigt, so daß sehr hilfreiche
visuelle Information zur Berücksichtigung
der Optimierung der Verdrahtung erhalten werden kann.
-
Wie
unten in 16 gezeigt, wird zusätzlich eine
Bedingung bestimmt, indem angenommen wird, daß es keine Wiederholerzellen
gibt, wenn Signale gemäß der Bedingung
gruppiert werden.
-
Dies
ist für
das Entwerfen einer neuen LSI effektiv, während Entwurfsinformation einer
vorher entworfenen LSI als Hilfsmittel verwendet wird. Da die Entwurfsinformation
eines vorher entworfenen LSI-Entwurfs nämlich Information eines vollständigen Produkts
ist, werden Wiederholer an vielen Stellen eingefügt. Wenn eine neue LSI entworfen
wird, führt
er jedoch zu einer LSI, der Funktionen hat, die sich von denen der
vorhergehenden LSI unterscheiden. Deshalb unterscheiden sich eine
angebrachte Logik und Verdrahtung. Dementsprechend sind die Stellen
von Wiederholern, die verwendet werden, um den Zeitablauf anzupassen,
normalerweise anders als die einer vorhergehenden LSI. Deshalb ist
es effizienter einen Entwurf zu beginnen, ohne Wiederholer für das Schätzen von
Verzögerungswerten
zu verwenden. Wenn die Entwurfsinformation einer vorhergehenden
LSI als Hilfsmittel wieder verwendet wird, ist es deshalb effektiv,
die oben beschriebene Bedingung für eine Anzeige, wie etwa eine
Signalbedingung usw. unter der Annahme, daß es keine Wiederholer gibt,
zu bestimmen und anzuzeigen.
-
In
diesem Fall werden Signale normalerweise in dem Zustand „Wiederholer
berücksichtigen", wie in einem oberen
linken Teil der 16 gezeigt, gruppiert. Wenn
jedoch angegeben wurde, daß Wiederholer
ignoriert werden sollen, wird eine Bedingung unter der Annahme,
daß es
keine Wiederholer wie in dem Fall „Wiederholer ignorieren" gibt, bestimmt und
die Signale werden gruppiert.
-
Ein
unteres Teil der 16 zeigt das Konzept für den Fall,
das Wiederholer in der Entwurfsinformation eingeschlossen sind,
aber zur Zeit einer Anzeige ignoriert werden. Ein Verzögerungsbetrag
weicht abhängig davon
ab, ob die Wiederholer berücksichtigt
werden oder nicht. Deshalb wird eine Verzögerung durch Ansehen der Anzeige
geeignet entworfen.
-
17 ist
ein Blockdiagramm, das den Aufbau einer Vorrichtung zum Entwerfen
von Zeitablaufbudgets gemäß der bevorzugten
erfindungsgemäßen Ausführungsform
zeigt.
-
Eine
Vorrichtung 10 zum Entwerfen von Zeitablaufbudgets gemäß dieser
bevorzugten Ausführungsform
umfaßt
eine Einheit 11 zum Beschreiben einer Modell/Zeitablauf-Bedingung,
eine Einheit 12 zum Durchführen von Operationen, ein vorhandenes
Entwurfswerkzeug 13, und eine Anzeigeeinrichtung 14.
Ein Nutzer, der ein LSI-Entwerfer ist, entwirft eine LSI mit dem
vorhandenen Entwurfswerkzeug (13?). Zu diesem Zeitpunkt macht
der Nutzer einen Entwurf, während
notwendige Informationen auf der Anzeigeeinrichtung 14 angezeigt wird.
wenn ein Logikblock gebaut wird und eine Netzliste oder eine Blockanordnung
erzeugt wird. Zu diesem Zeitpunkt wird ein Entwurf gemacht, während ein
Zeitablaufbudget in dieser bevorzugten erfindungsgemäßen Ausführungsform
ausgewertet wird. Für
diese Umsetzung umfaßt
die Vorrichtung 10 zum Entwerfen von Zeitablaufbudgets
die Einheit 11 zum Beschreiben eines Modells/Zeitablaufbedingung
und die Einheit 12 zum Durchführen von Operationen, die Operationen
durchführt,
die für
die Beschreibung eines Modells oder einer Zeitablaufbedingung erforderlich
sind.
-
Die
Einheit 11 zum Beschreiben eines Modells/Zeitablaufbedingung
interpretiert eine Modellbeschreibung und eine Beschreibung einer
Zeitablaufbedingung wie diejenigen, die in 2 gezeigt
sind, baut ein Modell, und zeigt das gebaute Modell auf der Anzeigeeinrichtung 14 an.
Wenn ein Verfahren zu Anpassen eines Zeitablaufs oder eine Verdrahtungsanzeige
auf einem Entwurfsplanungsbildschirm durchgeführt wird, wird die Einheit 12 zum
Durchführen
von Operationen veranlaßt,
die notwendigen Operationen durchzuführen, und die Anzeigeeinrichtung 14 wird
veranlaßt,
ein Ergebnis der Operationen anzuzeigen.
-
Der
Nutzer, der ein LSI-Entwerfer ist, bringt den Entwurf interaktiv
voran, während
er die Anzeige auf der Anzeigeeinrichtung 14 sieht, und
berichtigt die Entwurfstadien, die in 1 gezeigt
sind, während
er ein Zeitablaufbudget mit einem Modell anpaßt.
-
18 zeigt
die Hardwareumgebung eines Computers, die erforderlich ist, wenn
die Vorrichtung zum Entwerfen von Zeitablaufbudgets gemäß der bevorzugten
erfindungsgemäßen Ausführungsform
durch ein Programm umgesetzt wird. Eine CPU 21 führt ein
Programm aus, während
sie sequentiell das Programm von einem ROM 22 oder einem
RAM 21 liest, der über
einen Bus 20 verbunden ist. Das Programm, das die bevorzugte
erfindungsgemäße Ausführungsform
umsetzt, wird durch die CPU21 ausgeführt, nachdem es von einer Speichereinrichtung 27 wie
einer Harddisk usw. zu dem RAM 23 kopiert wurde. Oder das
Programm, das auf einem tragbaren Speichermedium 29 wie
einer Floppydisk einer CD-ROM, eine DVD, einer MO usw. gespeichert
ist, wird von einer Leseeinrichtung 28, die auf den RAM 23 kopiert
wurde, gelesen und durch die CPU 32 ausgeführt. Zusätzlich kann
das Programm, das auf dem tragbaren Speichermedium 29 gespeichert
ist, ausgeführt
werden, nachdem es durch Kopieren auf das Speichermedium 27 auf
einem Computer installiert wurde.
-
Eine
Eingabe/Ausgabe-Einrichtung 30 wird durch ein Keyboard,
eine Maus, eine Vorlage, einen CRT-Monitor, einen LCD-Monitor usw.
konfiguriert. Die Eingabeeinrichtung 30 benachrichtigt
die CPU 21 über eine
Eingabe von einem Nutzer, der ein LSI-Entwerfer ist, als ein Befehl
oder veranlaßt
die Speichereinrichtung 27, eine Modellbeschreibung wie eine
Zeitablaufbeschreibung usw. zu speichern. Oder die Eingabeeinrichtung 30 wird
verwendet, um ein Modell grafisch anzuzeigen, oder einen Entwurfsplanungsbildschirm
anzuzeigen.
-
Eine
Kommunikationsschnittstelle 24 verbindet einen Computer
mit einem Informationsprovider 26 über ein Netzwerk 25 und
ermöglicht
es, daß das
Programm von dem Informationsprovider 26 gedownloadet wird.
Oder eine Verbindung kann zu einem Nutzer, der ein LSI-Entwerfer
ist und einen weiteren Logikblock entwirft, statt zu dem Informationsprovider 26 hergestellt
werden, und der Nutzer kann das Programm unter der Netzwerkumgebung
ausführen,
um den Entwurf voranzubringen. In diesem Fall kann der Grad der
Zielerreichung, der von jedem Entwerfer eingestellt wird, allen
Nutzern, die LSI-Entwerfer sind, über das Netzwerk mitgeteilt
werden, wodurch die Entwurfsumgebung bequemer gemacht werden kann.
-
Erfindungsgemäß wird ein
LSI-Entwurf sequentiell vorangebracht, während ein Zeitablaufbudget
ausgewertet wird. Deshalb wird es möglich, die Anzahl der Fälle zu verringern,
in denen der Signalübertragungszeitablauf
eine erforderliche Bedingung nicht erfüllt, nachdem ein genauer Entwurf
gemacht wurde, wodurch die Anzahl der Wiederholungen in einem LSI-Entwurfsstadium verringert
wird, und der LSI-Entwurf billig und effizient vorangebracht wird.