DE3886242T2 - Torverarbeitungsanordnung zum Simulationsverarbeitungssystem. - Google Patents
Torverarbeitungsanordnung zum Simulationsverarbeitungssystem.Info
- Publication number
- DE3886242T2 DE3886242T2 DE88301452T DE3886242T DE3886242T2 DE 3886242 T2 DE3886242 T2 DE 3886242T2 DE 88301452 T DE88301452 T DE 88301452T DE 3886242 T DE3886242 T DE 3886242T DE 3886242 T2 DE3886242 T2 DE 3886242T2
- Authority
- DE
- Germany
- Prior art keywords
- gate
- evaluation
- data
- memory
- information
- 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
Links
- 238000004088 simulation Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 title description 7
- 238000011156 evaluation Methods 0.000 claims description 89
- 230000015654 memory Effects 0.000 claims description 78
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 description 12
- 230000002265 prevention Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241001633942 Dais Species 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf eine Gatterprozessoranordnung für ein Simulationsprozessor-(SP)-System, wie ein Simulationsprozessorsystem, das aus einem Steuerprozessor, Eingangs- und Ausgangsprozessoren und einer Ereignisübertragungsanordnung besteht und für die logische Verifikation von höchstintegrierten Schaltkreisen (VLSI's) vor der Produktion verwendet wird.
- Im allgemeinen ist es bei der Operation eines Gatterprozessors notwendig, Bewertungsverfahren zum Bewerten der Daten von Gattern in dem zu verifizierenden Logiknetz und eine Interprozessorübertragung zum Übertragen von Daten zwischen Gatterprozessoren auszuführen, die Sektionen des zu verifizierenden Logiknetzes entsprechen.
- Bei einem vorher vorgeschlagenen Gatterprozessor werden, wenn eine Vielzahl von Eingangsdaten für ein Gatter gleichzeitig geändert wird, die Bewertungen desselben Gatters dupliziert, und solche duplizierten Bewertungen verringern die Effektivität des Systems.
- Auch kann bei solchen duplizierten Bewertungen ein Pseudoereignis auftreten, das ein Problem dahingehend verursacht, daß zusätzliche Anordnungen und Verfahren erforderlich sind, um solch ein Pseudoereignis zu verarbeiten.
- Außerdem muß, wenn eine Vielzahl von Ausgangsfächerungen eines Grenzgatters in einer Sektion des Logiknetzes, die einem Gatterprozessor entspricht, in einer anderen Sektion des Logiknetzes vorkommt, die einem anderen Gatterprozessor entspricht, eine Vielzahl von Datenübertragungen ausgeführt werden, selbst wenn diese Vielzahl von Bestimmungsgattern in demselben anderen Gatterprozessor enthalten ist. Dies verursacht das Problem, daß solch eine Vielzahl von Datenübertragungen die Effektivität des Systems reduziert.
- Wenn die Datenübertragung zwischen Gatterprozessoren in einer besonderen späteren Periode bei einem Schritt der Verarbeitung oft auftritt, wird ferner die Geschwindigkeit der Verarbeitung in dem betreffenden Gatterprozessor verringert, wodurch eine Verzögerung bei der Verarbeitung herbeigeführt wird. Dies bewirkt das Problem, daß solch eine Verzögerung auch die Effektivität des Systems reduziert.
- Ferner ist es erforderlich, einen doppelten Zugriff, d. h. Lesen und Schreiben, auf einen Netzstatusspeicher in einem Gatterprozessor in einem Maschinenzyklus auszuführen. Dies begrenzt die Geschwindigkeit der Operation und reduziert somit die Effektivität des Systems.
- Demzufolge ist es wünschenswert, eine Gatterprozessoranordnung für ein Logiksimulationsprozessorsystem vorzusehen, die die oben beschriebenen Probleme vermeiden kann.
- Ein Artikel in IEEE Design and Test, August 1984, Seiten 21 bis 39, von T. Blank mit dem Titel "A Survey of Hardware Accelerators used in Computer-aided Design" beschreibt verschiedene Typen eines Simulationsprozessors, einschließlich Hardwarelogiksimulatoren von NEC ("HAL"), Zycad and Dais Systems ("Megalogician"), die dem oben erwähnten Stand der Technik entsprechen.
- Ein Beitrag aus den Konferenzunterlagen des 9. Jahressymposiums über Computerarchitektur, Austin, Texas, USA, April 1982, von M. Abramovici et al. mit dem Titel "A Logic Simulation Machine" beschreibt einen Simulationsprozessor mit den Merkmalen der Präambel des beiliegenden Anspruches 1. Bei diesem Simulationsprozessor werden vielfache Veränderungen bei den Eingaben desselben Gatters durch eine Strategie in zwei Durchläufen verarbeitet, indem zuerst eine "Bewertungsliste" von zu bewertenden Elementen kompiliert wird und dann die tatsächliche Bewertung ausgeführt wird.
- Gemäß der vorliegenden Erfindung ist ein Gatterprozessor für ein Logiksimulationsprozessorsystem vorgesehen, das einen Steuerprozessor, Eingangs- und Ausgangsprozessoren und ein Ereignisübertragungsnetz enthält, welcher Gatterprozessor umfaßt:-
- einen Pufferspeicher für neue Ereignisse zum Speichern eines Ereignisses zu einer Zeitlage "t" für ein vorbestimmtes Logikelement in einer Sektion eines Logiknetzes;
- eine Ausgangsfächerungsanordnung zum Halten von Verbindungsinformationen für das genannte vorbestimmte Logikelement und zum vorhergehenden Lesen der Daten davon zu einer Zeitlage "t", wobei die Eingangsdaten des genannten vorbestimmten Logikelementes zu einer Zeitlage "t+1" verändert werden;
- einen Netzstatusspeicher zum Halten von Netzstatusinformationen, die Eingangsdaten und Ausgangsdaten eines vorbestimmten Logikelementes entsprechen; und
- eine Bewertungsanordnung, die betriebsfähig ist, um die Daten in dem genannten Netzstatusspeicher zu lesen, um Informationen für eine Veränderung des Netzstatus zu einer Zeitlage "t+1" zu erzeugen, und um die genannten erzeugten Informationen dem Ereignisübertragungsnetz und/oder dem genannten Pufferspeicher für neue Ereignisse zuzuführen;
- dadurch gekennzeichnet, daß der genannte Netzstatusspeicher angeordnet ist, um die genannten Informationen von dem genannten Pufferspeicher für neue Ereignisse zu Beginn jedes Operationszyklus zu empfangen, und um die genannten Informationen der genannten Bewertungsanordnung zuzuführen, ohne Daten von ihr zu empfangen;
- und daß ein Bewertungsgatterpufferspeicher vorgesehen ist, der eine Vielzahl von Bewertungsgatterspeicherabschnitten hat, wovon jeder mit der genannten Ausgangsfächerungsanordnung oder der genannten Bewertungsanordnung verbunden werden kann, bei dem Eingangsdaten eines vorbestimmten Logikelementes, die zu der Zeitlage "t" verändert werden, von einem der Bewertungsgatterspeicherabschnitte der Bewertungsanordnung zugeführt werden, während Eingangsdaten eines vorbestimmten Logikelementes, die zu der Zeitlage "t+1" verändert werden, durch einen anderen der Bewertungsgatterspeicherabschnitte empfangen werden.
- Als Beispiel wird nun Bezug auf die beiliegenden Zeichnungen genommen, in denen:
- Fig. 1 ein Beispiel einer Trennung eines Logiknetzes, für das eine Logiksimulation durch ein Simulationsprozessorsystem unter Verwendung einer Gatterprozessoranordnung anzuwenden ist, in Sektionen zeigt;
- Fig. 2 ein Beispiel von Operationen der Logikelemente in dem Logiknetz von Fig. 1 zeigt;
- Fig. 3 ein Logiksimulationsprozessorsystem zeigt, auf das eine Gatterprozessoranordnung, die die vorliegende Erfindung verkörpert, angewendet werden kann;
- Fig. 4 einen Gatterprozessor nach Stand der Technik zeigt;
- Fig. 5 ein Gatterprozessorsystem für ein Logiksimulationsprozessorsystem zeigt, das die vorliegende Erfindung verkörpert;
- Fig. 6 die Struktur des Netzstatusspeichers in dem Gatterprozessorsystem von Fig. 5 zeigt;
- Fig. 7 ein Anordnungsbeispiel von Logikelementen zum Erläutern der Operation des Netzstatusspeichers von Fig. 6 zeigt;
- Fig. 8 ein Operationsbeispiel des Netzstatusspeichers von Fig. 6 zeigt; und
- Fig. 9 ein Beispiel der Operation des Gatterprozessorsystems zeigt, das die vorliegende Erfindung verkörpert.
- Bevor eine Ausführungsform der vorliegenden Erfindung beschrieben wird, werden eine vorher vorgeschlagene Anordnung und Operation unter Bezugnahme auf Fig. 1, Fig. 2, Fig. 3 und Fig. 4 beschrieben.
- Ein Beispiel einer Trennung eines Logiknetzes in einem höchstintegrierten Schaltkreis (VLSI), für das eine Logiksimulation durch ein Simulationsprozessorsystem unter Verwendung einer Gatterprozessoranordnung einzusetzen ist, in Sektionen ist in Fig. 1 gezeigt. Das Logiknetz in einem VLSI, das in Fig. 1 gezeigt ist, wird durch ein Simulationsprozessorsystem unter Verwendung einer Gatterprozessoranordnung verifiziert.
- Das Logiknetz ist zum Beispiel in eine Sektion p und eine Sektion q geteilt, wie in Fig. 1 gezeigt. Sektion p enthält die Exklusives-ODER-Gatter g&sub1; , g&sub2; , g&sub3; und g&sub4; , die UND-Gatter g&sub5; , g&sub6; , g&sub7; und g&sub8; , ein ODER-Gatter g&sub9; und die ODER-Gatter g&sub1;&sub0; und g&sub1;&sub1; , und Sektion g enthält ein UND- Gatter g&sub1; , ein ODER-Gatter g&sub2; , ein NICHT-Gatter g&sub3; und einen Puffer g&sub4;. In Sektion p wird Gatter g&sub9; als Grenzgatter behandelt. In Sektion q kann ein Phantomgatter g&sub9; angenommen werden, wie durch eine Strichlinie gezeigt. Die Daten Zi von dem Gatter g&sub9; in Sektion p sind zu mehreren Gattern in Sektion q zu übertragen. Die Exklusives-ODER-Gatter g&sub1; , g&sub2; , g&sub3; und g&sub4; liefern Übertragsdaten
- und Ci und Eingangsdaten xi bzw. yi.
- Als Erläuterung des Bewertungsverfahrens ist ein Beispiel von Veränderungen der Eingangs-/Ausgangsdaten der Gatter g&sub5; bis g&sub8; in Sektion p des in Fig. 1 gezeigten Netzes in Fig. 2 dargestellt, ORDER-1 bis ORDER-9 bezeichnen die Reihenfolge, in der Daten von den Gattern die Bewertungsanordnung in dem Gatterprozessor passieren.
- In Fig. 2 ist ersichtlich, daß Doppelbewertungen für ein einzelnes Gatter ausgeführt werden müssen, wenn eine Vielzahl von Eingaben für ein Gatter verändert wird. Ferner ist ersichtlich, daß bei ORDER-5, ORDER-7 und ORDER-9 von Gatter g&sub8; die Ausgabe von Gatter g&sub8; folglich auf Grund einer Folge von Veränderungen der Eingangsdaten nicht verändert wird, aber bei den dazwischenliegenden ORDER-5 und ORDER-7 die Ausgangsdaten verändert werden und somit Pseudoereignisse auftreten.
- Ein Logiksimulationsprozessorsystem, auf das eine Gatterprozessoranordnung angewendet ist, ist in Fig. 3 gezeigt. Das Logiksimulationsprozessorsystem ist aus einem Simulationsprozessor 81, einem Computer 82 und einer Ingenieurarbeitsstation (Anzeige und Tastatur) konstruiert. Der Simulationsprozessor enthält einen Steuerprozessor 7, ein Ereignisübertragungsnetz 2, Gatterprozessoren 500, 501, ... 563, einen Eingangsprozessor 61 und einen Ausgangsprozessor 62. Die Gatterprozessoren 500, 501, ... 563 entsprechen jeweils Sektionen des Logiknetzes. Die Struktur und Operation des Ereignisübertragungsnetzes ist zum Beispiel in den japanischen Patentanmeldungen Nr. 62-4522 und 62-4523, eingereicht am 12. Januar 1987, und in der entsprechenden EP-A-0 275 176 eingehend erläutert.
- Ein Beispiel des Gatterprozessors nach Stand der Technik ist in Fig. 4 gezeigt. Der Gatterprozessor von Fig. 4 ist aus einem Ereignisübertragungsnetz 2', einem Puffer 500h', einem Speicher eines neuen Ereignisses 500c', einer Ausgangsfächerungsanordnung 500d' in der Form einer Pipeline, einer Bewertungsanordnung 500e' in der Form einer Pipeline und einem Netzstatusspeicher 500f' gebildet.
- In dem Gatterprozessor von Fig. 4 speichert der Netzstatusspeicher 500f' die Informationen der Zustände der Gatter als Logikeinheiten in der Sektion des Logiknetzes, die dem gegenwärtigen Gatterprozessor entspricht. Der Speicher eines neuen Ereignisses 500c' speichert die Ereignisinformationen für das Gatter, das eine Ausgabe hat, die zu einer Zeitlage t verändert wird, auf der Grundlage des Ergebnisses einer Bewertung, die in der Bewertungsanordnung 500e' zu einer Zeitlage "t-1" ausgeführt wurde. Der Puffer 500h' hält die Informationen, die von anderen Gatterprozessoren empfangen wurden. Die Ausgangsfächerungsanordnung 500d' hält die Informationen des Gatters, dessen Eingabe entsprechend der Veränderung eines Ereignisses, die von dem Speicher eines neuen Ereignisses 500c' zugeführt wurde, verändert wird, auf der Grundlage von gehaltenen Informationen über die Verbindung der Gatter in der Sektion des Logiknetzes. Die Bewertungsanordnung 500e' empfängt die Informationen über das Gatter, das einer Eingabenveränderung ausgesetzt war, wie sie durch die Ausgangsfächerungsanordnung 500d' extrahiert wurde, empfängt Informationen über das gewünschte Gatter von dem Netzstatusspeicher 500f' und bestimmt den Ausgabewert des Gatters, das einer Eingabenveränderung ausgesetzt war. Der bestimmte Ausgabewert wird dem Speicher eines neuen Ereignisses 500c' zugeführt.
- Ein Gatterprozessorsystem für ein Logiksimulationsprozessorsystem, das die vorliegende Erfindung verkörpert, ist in Fig. 5 gezeigt. In Fig. 5 ist ein einzelner Gatterprozessor in einem Gatterprozessorsystem gezeigt.
- Der Gatterprozessor von Fig. 5 enthält ODER-Gatter 500a und 500b, einen Speicher eines neuen Ereignisses 500c, eine Ausgangsfächerungsanordnung (Pipeline-Typ) 500d, eine Bewertungsanordnung (Pipeline-Typ) 500e, einen Netzstatusspeicher 500f und eine Bewertungsgatterpufferspeichereinheit 500g. Die Bewertungsgatterpufferspeichereinheit 500g enthält Bewertungsgatterspeicher 500g&sub1; und 500g&sub2;. Ein Ereignisübertragungsnetz 2 ist als Interprozessorübertragungsmittel vorgesehen. Die Ausgabe der Bewertungsanordnung 500e wird dem Ereignisübertragungsnetz 2 durch das ODER-Gatter 500b zugeführt.
- Die Verbindungen zwischen der Ausgangsfächerungsanordnung 500d und der Bewertungsanordnung 500e und den Bewertungsgatterspeichern 500g&sub1; und 500g&sub2; in der Bewertungsgatterpufferspeichereinheit 500g werden durch eine Schaltsteueranordnung 500g&sub4; verändert. Eine Kennzeichenregistrierungsanordnung 500g&sub3; arbeitet in Verbindung mit den Bewertungsgatterspeichern 500g&sub1; und 500g&sub2;.
- Die Bewertungsgatterspeicher 500g&sub1; und 500g&sub2; arbeiten wie folgt. Zu einer Zeitlage t werden die Daten eines Gatters, das eine Eingabe hat, die zu einer Zeitlage '"t+1" verändert wird, von der Ausgangsfächerungsanordnung 500d durch den Bewertungsgatterspeicher 500g&sub1; empfangen, und die Daten eines Gatters, das die Eingabe hat, die zu einer Zeitlage t verändert wird, werden von dem Bewertungsgatterspeicher 500g&sub2; der Bewertungsanordnung 500e zugeführt.
- Zu der nächsten Zeitlage "t+1" werden die Verbindungen zwischen der Ausgangsfächerungsanordnung 500d und der Bewertungsanordnung 500e und den Bewertungsgatterspeichern 500g&sub1; und 500g&sub2; geschaltet, die Daten eines Gatters, das eine Eingabe hat, die zu einer Zeitlage "t+1" verändert wird, werden von dem Bewertungsgatterspeicher 500g&sub1; der Bewertungsanordnung 500e zugeführt, und die Daten eines Gatters, das eine Eingabe hat, die zu einer Zeitlage "t+2" verändert wird, werden von der Ausgangsfächerungsanordnung 500d durch den Bewertungsgatterspeicher 500g&sub2; empfangen, der in der vorhergehenden Zeitlage frei wird.
- In jedem der Bewertungsgatterspeicher 500g&sub1; und 500g&sub2; wird, wenn die betreffenden Daten die Daten eines Grenzgatters oder von internen/Grenzgattern sind, das Speichern von der maximalen Adresse des Bewertungsgatterspeichers ausgeführt, und wenn die betreffenden Daten die Daten nur eines internen Gatters sind, wird das Speichern von der minimalen Adresse des Bewertungsgatterspeichers ausgeführt, und somit werden die Klassifizierung der Gatter und das Speichern der Daten von solchen klassifizierten Gattern in den Bewertungsgatterspeicher ausgeführt.
- Wenn ein Datum für eine Adresse des Bewertungsgatterspeichers gespeichert wird, die dem betreffenden Gatter entspricht, wird ein Kennzeichen für diese Adresse registriert, so daß für diese Adresse keine weiteren Daten gespeichert werden können, und dementsprechend tritt keine Doppelbewertung auf. Wo die Daten von Gattern, die in dem Bewertungsgatterspeicher gespeichert sind, gelesen sind, wird das entsprechende Kennzeichen auf 0 geändert, so daß alle Kennzeichen gelöscht sind, wenn das Lesen beendet ist.
- Der Netzstatusspeicher 500f wird zu Beginn der Operationsperiode aktualisiert, und die Bewertungsanordnung 500e liest nur die Eingangs- und Ausgangsdaten der Gatter. Die Bewertungsanordnung 500e ist konstruiert, um einen gleichzeitigen Zugriff auf die Ausgabe des Gatters und die Eingabe des Gatters auszuführen.
- Ein Beispiel der Struktur des Netzstatusspeichers 500f in Fig. 5 ist in Fig. 6 gezeigt. Der Netzstatusspeicher ist aus den Speicherabteilungen NS0, NS1, NS2, NS3 und NS4 konstruiert, die denselben Speicherinhalt haben. Der Inhalt der Speicherabteilungen NS0, NS1, ... NS4 kann durch die Identifizierungen ga(1), ga(2), ga(3), ga(4) und g der Gatter gelesen werden.
- Ein Beispiel der Anordnung der Gatter, die zu behandeln sind, ist in Fig. 7 gezeigt. Die Operation des Netzstatusspeichers 500f bezüglich der Anordnung von Fig. 7 ist in Fig. 8 gezeigt. Bei der Leseoperation werden die Zugriffe durch unterschiedliche Adressen gleichzeitig ausgeführt, um Daten zu lesen. Bei der Schreiboperation, d. h., bei der Aktualisierungsoperation, braucht nur eine einzelne Adresse aktualisiert zu werden. Bei der in Fig. 8 gezeigten Operation wird entweder eine Leseoperation oder eine Schreiboperation in einem Operationszyklus ausgeführt.
- Ein Beispiel der Operation des Gatterprozessorsystems, das die vorliegende Erfindung verkörpert, wird beschrieben. Es wird angenommen, daß ein erster der Gatterprozessoren der Sektion p des Netzes von Fig. 1 zugeordnet ist und ein anderer der Gatterprozessoren der Sektion q des Netzes von Fig. 1 zugeordnet ist.
- Die Daten des Gatters, das Eingaben hat, die zu einer Zeitlage "t-1" verändert werden, werden durch die Bewertungsanordnung 500e des ersten Gatterprozessors bewertet.
- Als Resultat werden die Veränderungen der Daten von 0 auf 1 in Gatter g&sub1; , 0 auf 1 in Gatter g&sub2; , 1 auf X in Gatter g&sub3; und 1 auf 0 in Gatter g&sub4; bestätigt. X bezeichnet ein unbekanntes Datum, bei dem nicht bestimmt werden kann, ob es 0 oder 1 ist. Diese Veränderungen werden in dem Speicher eines neuen Ereignisses 500c gespeichert und der Ausgangsfächerungsanordnung 500d zugeführt. Die Daten von Gattern, die Eingangssignale haben, die zu einer Zeitlage t verändert werden, werden von der Ausgangsfächerungsanordnung 500d zugeführt und in der Bewertungsgatterpufferspeichereinheit 500g registriert.
- Es wird angenommen, daß der Bewertungsgatterspeicher 500g&sub1; mit der Bewertungsanordnung 500e verbunden ist und der Bewertungsgatterspeicher 500g&sub2; mit der Ausgangsfächerungsanordnung 500d verbunden ist. Die Datenfolge: d. h. Daten g&sub5; , Daten g&sub6; , Daten g&sub7; , Daten g&sub5; , Daten g&sub8; , Daten g&sub6; , Daten g&sub8; , Daten g&sub7; und Daten g&sub8; , wird dem Bewertungsgatterspeicher zugeführt. In dieser Folge wird die Datenfolge: d. h. Daten g&sub5; , Daten g&sub6; , Daten g&sub7; , Daten g&sub8; in dem Bewertungsgatterspeicher 500g&sub2; gespeichert, aber die zweiten Daten: d. h. die zweiten Daten g&sub5; , die zweiten Daten g&sub6; die zweiten Daten g8&sub8; , die zweiten Daten g&sub7; und die zweiten Daten g&sub8; werden auf Grund der Verhinderung einer Doppelregistrierung nicht in dem Bewertungsgatterspeicher 500g&sub2; gespeichert.
- Wenn die Verarbeitung der Bewertungsanordnung 500e für alle Gatterprozessoren und die Übertragung beendet sind, wird die Zeitlage die Zeitlage t. Die Ausgangsfächerungsanordnung 500d kann zu der Zeitlage t noch in Betrieb sein.
- Zu der Zeitlage t wird der Netzstatusspeicher 500f durch den Speicher eines neuen Ereignisses 500c aktualisiert.
- Falls das Ereignisüberwachungskennzeichen für irgendeines der Gatter g&sub1; bis g&sub4; hergestellt ist, werden die Gatternummerdaten, die Gatterprozessornummerdaten p (des betreffenden Gatterprozessors), die Ereignisüberwachungskennzeichen-ETN-Daten und die neuen/alten Werte von dem Speicher eines neuen Ereignisses 500c nach außerhalb des Gatterprozessors übertragen und dem Ereignisüberwachungsprozessor zugeführt.
- Das Überwachungskennzeichen für das Gatterereignis wird in der Bewertungsanordnung 500e lokal gehalten, und somit werden die Daten 0, 0, 1 und 1 der Gatter g&sub1; , g&sub2; , g&sub3; und g&sub4; auf 1, 1, X und 0 aktualisiert.
- Wenn das Aktualisieren und die Ausgangsfächerungsoperation beendet sind, und wenn die Daten g&sub5; , Daten g&sub6; Daten g&sub7; und Daten g&sub8; in dem Bewertungsgatterspeicher 500g&sub2; registriert sind, findet das Schalten zwischen dem Bewertungsgatterspeicher 500g&sub1; und dem Bewertungsgatterspeicher 500g&sub2; statt, und der Bewertungsgatterspeicher 500g&sub2; führt die Daten g&sub5; , Daten g&sub6; , Daten g&sub7; und Daten g&sub8; der Bewertungsanordnung 500e zu. Die Daten eines Gatters, die in der Bewertungsgatterpufferspeichereinheit 500g gespeichert sind, umfassen die Gatternummer, die Prozessornummer und den Übertragungsmodus. Der Übertragungsmodus bezeichnet einen des internen Gattermodus, des Grenzgattermodus und des internen/Grenzgattermodus. Wo der Modus des Grenzgatters gültig ist, bezeichnet die Prozessornummer die Prozessornummer des Übertragungsziels. Bei den oben beschriebenen Operationen sind alle Gatter g&sub5; bis g&sub8; interne Gatter, und somit tritt die vorhergehende Verarbeitung für die Grenzgatter nicht auf.
- Bei der Bewertungsoperation wird bestätigt, daß die Veränderung von 0 auf 1 der Daten g&sub5; und die Veränderung von 0 auf X der Daten g&sub6; zu einer Zeitlage "t+1" stattfinden. Diese Veränderungen werden in dem Speicher eines neuen Ereignisses 500c registriert, und die Ausgangsfächerungsanordnung 500d registriert dann die Daten g&sub9; in dem Bewertungsgatterspeicher 500g&sub1;.
- In diesem Fall ist der Übertragungsmodus für Gatter g&sub9; der interne/Grenzgattermodus, und die Prozessornummer ist q. Falls n Zielprozessoren q&sub1; , q&sub2; , ... qn vorhanden sind, werden die Daten g&sub9; n Mal von der Ausgangsfächerungsanordnung 500d zugeführt, aber nur bei der ersten Zuführung ist der Modus der interne/Grenzgattermodus und die Prozessornummer q&sub1;. Bei den zweiten bis n-ten Malen ist der Modus der Grenzgattermodus, und die Prozessornummer ist qi , wobei i 2, 3, . .. n ist.
- Gemäß der Verhinderungsanordnung der Doppelregistrierung, wobei die Anordnung für Gatter g&sub1; registriert wird, wird auch die Anordnung für die Gatter g&sub2; bis gn registriert. Wenn Gatter g&sub1; durch die Doppelregistrierungsverhinderungsfunktion ausgeschlossen wird, werden die Gatter g&sub2; bis gn durch die Doppelregistrierungsverhinderungsfunktion auch ausgeschlossen.
- Wenn die Bewertung aller Gatterprozessoren und die Übertragung abgeschlossen sind, wird die Zeit die Zeitlage "t+1". Zu der Zeitlage "t+1" werden die Daten g&sub5; und g&sub6; von 0 und 0 auf 1 und X aktualisiert.
- Nachdem das Aktualisieren und die Ausgangsfächerungsoperation beendet sind, findet das Schalten zwischen dem Bewertungsgatterspeicher 500g&sub1; und dem Bewertungsgatterspeicher 500g&sub2; statt, und die Daten g&sub9; werden der Bewertungsanordnung 500e zugeführt. Denn der Modus ist der interne/Grenzgattermodus.
- Selbst wenn Daten von vielen der anderen internen Gatter in der Bewertungsgatterpufferspeichereinheit 500g registriert sind, werden die Daten g&sub9; zuerst gelesen und verarbeitet. Wenn die Veränderung von Daten g&sub9; von 0 auf 1 bestätigt ist, registriert die Bewertungsanordnung 500e die Veränderung bei den Daten g&sub9; in dem Speicher eines neuen Ereignisses 500c, sendet eine Anforderung an die Ausgangsfächerungsanordnung 500d und führt eine Übertragung nach außerhalb durch. Falls der Modus der Grenzgattermodus ist, findet nur eine Übertragung nach außerhalb statt.
- Wenn eine Übertragung zu dem Gatterprozessor für Sektion p vorhanden ist, werden die Daten in dem Speicher eines neuen Ereignisses 500c registriert, und eine Anforderung zum Lesen durch die Ausgangsfächerungsanordnung wird ausgeführt, wenn die Bewertungsanordnung 500e keine Registrierung in dem Speicher eines neuen Ereignisses 500c veranlaßt, das heißt, außer wenn ein Ereignis in dem internen Gattermodus oder dem internen/Grenzgattermodus auftritt.
- Ein Beispiel der Operation des Gatterprozessorsystems, das den Gatterprozessor für das Logiknetz Sektion p und den Gatterprozessor für das Logiknetz Sektion q enthält und die vorliegende Erfindung verkörpert, ist in Fig. 9 gezeigt.
- Zuerst werden Daten g&sub5; der Ausgangsfächerungsanordnung 500d des gegenwärtigen Gatterprozessors für Sektion p zugeführt. Die Ausgangsfächerungsanordnung 500d führt die Informationen g&sub9; zu. Die Daten g&sub9; haben zwei Ziele: Sektion p und Sektion q. Die Informationen g&sub9; werden auf der Seite der maximalen Adresse des Bewertungsgatterspeichers 500g&sub1; gespeichert.
- Die Daten g&sub9; mit den Zielen Sektion p und Sektion q werden der Bewertungsanordnung 500e zugeführt. Die Daten g&sub9; mit dem Ziel Sektion p werden von der Bewertungsanordnung 500e durch das ODER-Gatter 500a dem Speicher eines neuen Ereignisses 500c zugeführt. Demzufolge wird die Veränderung von 0 auf 1 der Daten g&sub9; in dem Speicher eines neuen Ereignisses 500c gespeichert. Die Daten g&sub9; mit dem Ziel Sektion q werden von der Bewertungsanordnung 500e durch das ODER-Gatter 500b und das Ereignisübertragungsnetz 2 dem anderen Gatterprozessor für Sektion q zugeführt.
- In dem anderen Gatterprozessor für Sektion q werden die Daten g&sub9; mit dem Ziel Sektion q, die von dem gegenwärtigen Gatterprozessor gesendet wurden, durch das Ereignisübertragungsnetz 2 und das ODER-Gatter 500a dem Speicher eines neuen Ereignisses 500c zugeführt. Demzufolge wird die Veränderung von 0 auf 1 eines Phantomgatters g&sub9; in dem Speicher eines neuen Ereignisses 500c gespeichert. Die Daten g&sub9; werden auch der Ausgangsfächerungsanordnung 500d zugeführt, die eine Ausgabe mit der Bedeutung "Ziel: g&sub1; , g&sub2; , g&sub3; und g&sub4;" liefert.
Claims (3)
1. Ein Gatterprozessor (500) für ein
Logiksimulationsprozessorsystem, das einen Steuerprozessor (7),
Eingangs- und Ausgangsprozessoren (61, 62) und ein
Ereignisübertragungsnetz (2) enthält, welcher Gatterprozessor
umfaßt:-
einen Pufferspeicher für neue Ereignisse
(500c) zum Speichern eines Ereignisses zu einer Zeitlage "t"
für ein vorbestimmtes Logikelement in einer Sektion eines
Logiknetzes;
eine Ausgangsfächerungsanordnung (500d) zum
Halten von Verbindungsinformationen für das genannte
vorbestimmte Logikelement und zum vorhergehenden Lesen der
Daten davon zu einer Zeitlage "t", wobei die Eingangsdaten
des genannten vorbestimmten Logikelementes zu einer Zeitlage
"t+1" verändert werden;
einen Netzstatusspeicher (500f) zum Halten
von Netzstatusinformationen, die Eingangsdaten und
Ausgangsdaten eines vorbestimmten Logikelementes entsprechen; und
eine Bewertungsanordnung (500e), die
betriebsfähig ist, um die Daten in dem genannten
Netzstatusspeicher (500f) zu lesen, um Informationen für eine
Veränderung des Netzstatus zu einer Zeitlage "t+1" zu
erzeugen, und um die genannten erzeugten Informationen dem
Ereignisübertragungsnetz (2) und/oder dem genannten
Pufferspeicher für neue Ereignisse (500c) zuzuführen;
dadurch gekennzeichnet, daß der genannte
Netzstatusspeicher (500f) angeordnet ist, um die genannten
Informationen von dem Pufferspeicher für neue Ereignisse
(500c) zu Beginn jedes Operationszyklus zu empfangen, und
die genannten Informationen der genannten
Bewertungsanordnung (500e) zuzuführen, ohne Daten von ihr zu empfangen;
und daß ein Bewertungsgatterpufferspeicher (500g)
vorgesehen ist, der eine Vielzahl von
Bewertungsgatterspeicherabschnitten (500g1, 500g2) hat, wovon jeder mit der
genannten Ausgangsfächerungsanordnung (500d) oder der
genannten Bewertungsanordnung (500e) verbunden werden kann,
bei dem Eingangsdaten eines vorbestimmten Logikelementes,
die zu der Zeitlage "t" verändert werden, von einem der
Bewertungsgatterspeicherabschnitte (500g1, 500g2) der
Bewertungsanordnung (500e) zugeführt werden, während
Eingangsdaten eines vorbestimmten Logikelementes, die zu der
Zeitlage "t+1" verändert werden, durch einen anderen der
Bewertungsgatterspeicherabschnitte (500g1, 500g2) empfangen
werden.
2. Ein Gatterprozessor nach Anspruch 1, bei dem der
genannte Bewertungsgatterpufferspeicher (500g) ferner ein
Kennzeichenregistrierungsmittel (500g3) umfaßt, das
betriebsfähig ist, um ein Kennzeichen in einer Adresse von
einem der Bewertungsgatterspeicherabschnitte, das einem
vorbestimmten Logikelement entspricht, für das Daten gerade
gespeichert worden sind, zu registrieren, wodurch der
Bewertungsgatterpufferspeicher (500g) in der Lage ist,
Informationen von der Ausgangsfächerungsanordnung (500d) zu
halten, ohne Doppelspeicherung von Daten für irgendein
vorbestimmtes Logikelement, dem eine Vielzahl von
veränderten Eingangssignalen in demselben Operationszyklus zugeführt
werden.
3. Ein Gatterprozessor nach Anspruch 1 oder 2, bei
dem in jeder Sektion des Logiknetzes, das zu simulieren ist,
die Logikelemente als "interne" Elemente klassifiziert sind,
die keine Wirkung auf andere Sektionen des Netzes haben,
oder als "Grenz-" oder "interne/Grenz-" Elemente, die eine
Wirkung auf wenigstens eine andere Sektion des Netzes haben,
und bei dem, wenn der Bewertungsgatterpufferspeicher (500g)
Informationen für ein vorbestimmtes Logikelement von der
Ausgangsfächerungsanordnung (500d) empfängt, falls sich die
Informationen auf ein Grenz- oder internes/Grenzelement
beziehen, jene Informationen von der maximalen Adresse des
verbundenen Bewertungsgatterspeicherabschnittes gespeichert
werden, und falls sich die Informationen nur auf ein
internes Element beziehen, sie von der minimalen Adresse des
genannten verbundenen Speicherabschnittes gespeichert
werden, wodurch der Bewertungsgatterpufferspeicher in der
Lage ist, Informationen für Grenz- und interne/Grenzelemente
vor Informationen für ein internes Element zu liefern.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62037318A JPS63204441A (ja) | 1987-02-20 | 1987-02-20 | 論理シミユレ−シヨン専用プロセツサの処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3886242D1 DE3886242D1 (de) | 1994-01-27 |
DE3886242T2 true DE3886242T2 (de) | 1994-03-31 |
Family
ID=12494324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE88301452T Expired - Lifetime DE3886242T2 (de) | 1987-02-20 | 1988-02-19 | Torverarbeitungsanordnung zum Simulationsverarbeitungssystem. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4942615A (de) |
EP (1) | EP0284199B1 (de) |
JP (1) | JPS63204441A (de) |
DE (1) | DE3886242T2 (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452231A (en) * | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
US5039868A (en) * | 1988-11-24 | 1991-08-13 | Omron Corporation | Method of and apparatus for inspecting printed circuit boards and the like |
US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
US5329470A (en) * | 1988-12-02 | 1994-07-12 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
US5111413A (en) * | 1989-03-24 | 1992-05-05 | Vantage Analysis Systems, Inc. | Computer-aided engineering |
US5353243A (en) | 1989-05-31 | 1994-10-04 | Synopsys Inc. | Hardware modeling system and method of use |
US5369593A (en) | 1989-05-31 | 1994-11-29 | Synopsys Inc. | System for and method of connecting a hardware modeling element to a hardware modeling system |
US5091872A (en) * | 1989-06-23 | 1992-02-25 | At&T Bell Laboratories | Apparatus and method for performing spike analysis in a logic simulator |
US5375074A (en) * | 1990-01-23 | 1994-12-20 | At&T Corp. | Unboundedly parallel simulations |
DE69132766T2 (de) * | 1990-01-29 | 2002-04-25 | Fujitsu Ltd., Kawasaki | Gatter-Adressierungssystem für eine Logiksimulationsmaschine |
US5327361A (en) * | 1990-03-30 | 1994-07-05 | International Business Machines Corporation | Events trace gatherer for a logic simulation machine |
JPH0546697A (ja) * | 1991-08-14 | 1993-02-26 | Nec Corp | 論理シミユレータ |
JP2781305B2 (ja) * | 1992-05-08 | 1998-07-30 | 富士通株式会社 | マルチポートramを含む論理シミュレーション方式 |
EP0598149B1 (de) * | 1992-11-12 | 2000-01-19 | Fujitsu Limited | Hardware Logiksimulator |
JP3176482B2 (ja) * | 1993-07-07 | 2001-06-18 | 富士通株式会社 | 論理シミュレーション装置 |
US5680583A (en) | 1994-02-16 | 1997-10-21 | Arkos Design, Inc. | Method and apparatus for a trace buffer in an emulation system |
US5937190A (en) * | 1994-04-12 | 1999-08-10 | Synopsys, Inc. | Architecture and methods for a hardware description language source level analysis and debugging system |
US6132109A (en) * | 1994-04-12 | 2000-10-17 | Synopsys, Inc. | Architecture and methods for a hardware description language source level debugging system |
US5870608A (en) * | 1994-06-03 | 1999-02-09 | Synopsys, Inc. | Method and apparatus for displaying text including context sensitive information derived from parse tree |
GB2293900B (en) * | 1994-10-03 | 2000-01-19 | Univ Westminster | Data processing method and apparatus for parallel discrete event simulation |
US5841967A (en) * | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
US6321366B1 (en) | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
US6134516A (en) * | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US6026230A (en) * | 1997-05-02 | 2000-02-15 | Axis Systems, Inc. | Memory simulation system and method |
US6421251B1 (en) | 1997-05-02 | 2002-07-16 | Axis Systems Inc | Array board interconnect system and method |
US6009256A (en) * | 1997-05-02 | 1999-12-28 | Axis Systems, Inc. | Simulation/emulation system and method |
US6389379B1 (en) | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US5960191A (en) | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US5970240A (en) | 1997-06-25 | 1999-10-19 | Quickturn Design Systems, Inc. | Method and apparatus for configurable memory emulation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4656580A (en) * | 1982-06-11 | 1987-04-07 | International Business Machines Corporation | Logic simulation machine |
JPS593652A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | ハ−ド論理シミユレ−タ装置 |
US4527249A (en) * | 1982-10-22 | 1985-07-02 | Control Data Corporation | Simulator system for logic design validation |
FR2567273B1 (fr) * | 1984-07-03 | 1986-11-14 | Commissariat Energie Atomique | Dispositif de simulation de la defaillance ou du bon fonctionnement d'un systeme logique |
JPS6142040A (ja) * | 1984-08-03 | 1986-02-28 | Nec Corp | 論理シミユレ−タ |
JPH0760169B2 (ja) * | 1984-11-02 | 1995-06-28 | 三洋電機株式会社 | 論理回路のシミュレーション方法及びシミュレータ |
US4769817A (en) * | 1986-01-31 | 1988-09-06 | Zycad Corporation | Concurrent fault simulation for logic designs |
US4787061A (en) * | 1986-06-25 | 1988-11-22 | Ikos Systems, Inc. | Dual delay mode pipelined logic simulator |
-
1987
- 1987-02-20 JP JP62037318A patent/JPS63204441A/ja active Granted
-
1988
- 1988-02-19 US US07/157,958 patent/US4942615A/en not_active Expired - Lifetime
- 1988-02-19 DE DE88301452T patent/DE3886242T2/de not_active Expired - Lifetime
- 1988-02-19 EP EP88301452A patent/EP0284199B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0284199B1 (de) | 1993-12-15 |
DE3886242D1 (de) | 1994-01-27 |
EP0284199A3 (en) | 1990-05-30 |
JPH056911B2 (de) | 1993-01-27 |
JPS63204441A (ja) | 1988-08-24 |
US4942615A (en) | 1990-07-17 |
EP0284199A2 (de) | 1988-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3886242T2 (de) | Torverarbeitungsanordnung zum Simulationsverarbeitungssystem. | |
DE69105512T2 (de) | Ein verfahren und eine vorrichtung für speicherung der information in einem speicher und ihre benutzung in speicherkarten. | |
DE3781873T2 (de) | Rekonfigurierbare rechenanordnung. | |
DE69018112T2 (de) | Hochleistungsspeichersystem. | |
DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
DE3508291C2 (de) | Datenverarbeitungssystem | |
DE69825234T2 (de) | Verfahren und vorrichtung zur selbstprüfung von multi-port-rams | |
DE3686991T2 (de) | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. | |
DE19607531A1 (de) | Multicluster-Computersystem | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE69314824T2 (de) | Neuronaler Prozessor mit verteilten synaptischen Zellen | |
DE69107476T2 (de) | Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher. | |
DE3508640A1 (de) | Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus | |
DE3400464C2 (de) | ||
DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
DE69122183T2 (de) | Leicht und schnell prüfbare Master-Slave-Kippschaltung | |
EP0580663B1 (de) | Verfahren zur verifikation datenverarbeitender systeme | |
DE3786330T2 (de) | Paralleldatenverarbeitungsvorrichtung und -verfahren. | |
DE2952631C2 (de) | Schaltungsanordnung zur Diagnose einer Datenverarbeitungsanlage | |
DE69128499T2 (de) | Datenbankverwaltungssystem | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
DE68922341T2 (de) | Anordnung zur Erleichterung des Testens einer logischen Schaltung. | |
DE69329761T2 (de) | Differenzflaggeschaltung mit verschobenem Zähler | |
DE10200833A1 (de) | Gerät und Verfahren für eine Teststimuliverdichtung | |
DE3586405T2 (de) | Verfahren und vorrichtung zur simulation der funktion eines systems. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |