DE3338333A1 - Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur - Google Patents

Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur

Info

Publication number
DE3338333A1
DE3338333A1 DE19833338333 DE3338333A DE3338333A1 DE 3338333 A1 DE3338333 A1 DE 3338333A1 DE 19833338333 DE19833338333 DE 19833338333 DE 3338333 A DE3338333 A DE 3338333A DE 3338333 A1 DE3338333 A1 DE 3338333A1
Authority
DE
Germany
Prior art keywords
logic
memory
information
state
register
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.)
Withdrawn
Application number
DE19833338333
Other languages
English (en)
Inventor
Nicholas Platt 55110 White Bear Lake Minn. VanBrunt
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.)
Control Data Corp
Original Assignee
Control Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Control Data Corp filed Critical Control Data Corp
Publication of DE3338333A1 publication Critical patent/DE3338333A1/de
Withdrawn 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/33Design verification, e.g. functional simulation or model checking

Description

Henkel, Pfenning, Feiler, Hänzel & Meinig
Control Data Corporation Minneapolis, Minn., USA
Patentanwälte
Eu'opea^ Pate1"*: Atio'^e.: Zugelassene Vertre'.e-' vor ae~ Furor..aiscfien Paterüa1·'!
Oip' ir.g j Ple'ir,:-.g Be'.1· D^ re' na! l F en?1 Vur;:r Dip;-!ng Vv har,ze Murc"1-Dipi -Ρη-,ΐ κ H Meiriiy Be- ■ Dr Ing A Bjleriscf'·:·'".. Ber· ·
Mohlsuaße 37 D 8000 Muncher 80
Tel 089/9620 85-87 Telex 0529802 hnki α Telegramme e^psoiC
CDC-736-WG
21. Oktober 1983/wa
Logiksimulatorgerat zur Gültigkeitsprüfung einer Logikstruktur
Logiksimulatorgerät zur Gültigkeitsprüfung einer Logikstruktur
Die Erfindung bezieht sich auf ein Logiksimulatorgerät gemäß dem Oberbegriff des Patentanspruchs 1. Ein derartiges Gerät dient zur Prüfung der Systemstruktur oder der Struktur von hochintegrierten (LSI) und von höchstintegrierten (VLSI) Schaltkreisbausteinen mit hoher Geschwindigkeit mittels Simulation. Das System kann so ausgelegt sein, daß es über ein Leitungsnetz mit einem Haupt-Rechenwerk-Prozessor arbeitet, welcher fern von dem Simulatorsystem angeordnet ist. Derzeit simulieren Universalrechner Strukturen unter Verwendung von Rechen-Programmen, während die vorliegende Erfindung ein Hardware-Simulatorsystem zum Gegenstand hat, mit dem die Funktion einer vorgegebenen logischen Struktur simuliert wird, um diese Struktur zu prüfen.
Zum Stand der Technik ist eine Menge von Veröffentlichungen bekannt. Zwei besonders relevante Veröffentlichungen in diesem Zusammenhang sind die folgenden:
R. Barto et al., "A Computer Architecture for Digital Logic Simulation," Electronic Engineering, September 1980, Seite 35,und Angus R. McKay, "Comment on 'Computer-aided Design: Simulation of Digital Design Logic,1 " IEEE Transactions on Computers, September 1969, S. 862.
A.
Der Artikel von Barto zeigt eine Hardware-Struktur entsprechend der vorliegenden Anmeldung, welche an einem durch Tabellen vorgegebenen Logikzyklus ausgerichtet ist. Der Aufsatz von McKay berichtet über Testresultate an einem Hardwaresystem.
Die Halbleiterindustrie erzielt laufend Fortschritte, indem sie die Möglichkeit schafft, eine zunehmend immer größere Zahl von Einrichtungen oder logischen Schaltungen auf einem Baustein unterzubringen, und zwar mit einer Steigerungsrate, die durchschnittlich pro Jahr einer Verdopplung entspricht. In ähnlicher Weise entwickeln sich die Baustein-Packungstechnologien, wobei die Dichte von Bausteinen, welche in den verschiedenen physikalischen Packungsmodulen untergebracht werden können, dramatisch anwächst. Diese Vorgänge erzeugen einen ständigen Fluß von Realisierungsmöglichkeiten für verbesserte Systeme, welche so dramatisch verlaufen, daß es schwierig ist, sie mit früheren Strukturen und Strukturmethodiken in Beziehung zu setzen bzw. zu vergleichen.
Leider erfordern diese neuen Technologien einen fortlaufenden Fluß von verbesserten Gestaltungstechniken und Gestaltungsmitteln, um die verschiedenen mit der Organisation der Komplexität verbundenen Probleme , die damit einhergehen; zu bewältigen. Insbesondere müssen die Strukturausführung, die physikalische Anordnung und Verknüpfung und die Testerzeugung auf dem Baustein oder auf anderen physikalischen Baugruppen vorgenommen werden. Es wurde analytisch und empirisch festgestellt, daß die Größe dieser Aufgaben etwa exponentiell mit der Anzahl der auf einem Baustein oder einer Baugruppe vorgesehenen Funktionselemente wächst. Die vorliegende Erfindung befaßt sich mit dem Teil des Problems, der die Struktur-
—3— 'ΜΙ
prüfung betrifft.
Bei Betrachtung des Problems der Strukturprüfung eines einzelnen hochintegrierten oder höchstintegrierten Bausteins kann man zwei Analogien vornehmen. Die erste ist durchaus naheliegend und bezieht sich auf das Problem der Prüfung einer vollständigen zentralen Prozessoreinheit bzw. CPU im Vergleich mit der Prüfung eines Bausteins. Die Prüfung einer neuen Struktur von einer Komplexität im Umfang von etwa 100.000 logischen Torschaltungen ist eine bekannte Aufgabe. Die kleineren CYBER 170-Maschinen der Control Data Corporation sind von dieser Gestaltungsgröße. Der Prüfprozeß besteht im Ablauf von Tausenden von Zeilen einer Diagnostik-Software, gefolgt von der wirklichen Anwendersoftware zum Betrieb des Betriebssystems der Maschine. Das Ergebnis dieser Prüfung ist typischerweise eine Liste von Aufbauänderungen, deren Zahl leicht in die Hunderte gehen kann.
Man ist gegenwärtig dabei, unter Verwendung der heutigen Verarbeitungstechnologie 3-2 bit-CPU-Bausteine auszubilden, die innerhalb der Hälfte dieser Komplexität liegen. Die Prüfung dieser Bausteine wird unter Verwendung eines Simulatorrechnerprogramms durchgeführt, welches so nah wie möglich jede einzelne Operation dieser Bausteine emuliert, in dem Versuch, Strukturprobleme vor der Fertigung der Bausteine aufzudecken. Es scheint, daß die Zahl der für die Prüfung der Ein-Baustein-CPU erforderlichen Testfälle an die Zahl herankommen muß, die bei einer vollständigen Rechnerstruktur von nahezu derselben Komplexität durchgeführt wurde, wenn ein vergleichbares Niveau der Prüfqualität erreicht werden soll.
■/11.
Gegenwärtig ist ein Rechner-Alogorithmus als Simulator mit hoher Leistungsfähigkeit im Gebrauch, welcher fehlerfreie Strukturen mit einer Rate von 9 guten Strukturen auf 10 Bausteine liefert. An diesem Punkt kann die zweite Analogie ansetzen, welche das Prüfproblem auf das der Fertigungsausbeute am physikalischen Siliziumbaustein bezieht. Bei einem vorgegebenen Fertigungsprozess gibt es eine vorgegebene statistische Fehlerdichte/ die in Fehler pro Flächeneinheit ausgedrückt wird. Die Ausbeute von einem Baustein mit einer vorgegebenen Fläche ist eine komplexe Formel, doch ein erster Effekt besteht darin, daß das Verhältnis der fehlerhaften Bausteine zur Gesamtzahl von Bausteinen pro Siliziumplättchen exponentiell mit der Bausteinfläche wächst. Der Gestaltungs-"Prozeß" gewinnt gegenwärtig eine "Ausbeute" von 90 % einer "Fläche" von 250 Torschaltungselementen pro Baustein. Verwendet man den gleichen Gestaltungs-"Prozeß" und vergrößert man die "Fläche" auf 5000 Torschaltungen, so kommt man auf eine "Ausbeute" von nahezu Null. Darin kommt zum Ausdruck, daß der Gestaltungsprozeß , welcher in sehr starkem Maße auf der Verwendung des Simulators beruht, dramatisch verbessert werden muß, wenn man Bausteine dieser Komplexität nutzbar ausführen will. Analogien sind selten ganz zutreffend, doch selbst wenn sie nur teilweise zutreffen, sind die daraus gewonnenen Wirkungen ziemlich ernst zu nehmen.
Der gegenwärtige Stand der Technik bei der Simulationstechnologie ermöglicht es, daß die logische Simulation mit einer Rate von 90.000 logischen Schaltungen pro Sekunde arbeitet. Bei dieser Rate würde es einige Tage dauernder Simulationsausführung benötigen, um eine Sekunde tatsächliche Aktivität in einer zentralen Rechnereinheit mäßiger Größe zu simulieren. Außerdem
erfordert diese Simulation ein sehr großes Rechnersystem, um mit dieser Rate arbeiten zu können. Ein solches System ist teuer und ziemlich unhandlich in der Benutzung wegen der durch die stapelweise Verarbeitung bedingten Umgebungsgestaltung des Simulationsprogramms und wegen der normalerweise erforderlichen Aufteilung der Systemelemente des Rechners. Diese Unannehmlichkeit wird oft unterschätzt, weil man gelernt hat, sie zu akzeptieren, nachdem keine anderen Möglichkeiten zu sehen waren. Es ist anzunehmen, daß dies einen signifikanten Einfluß auf die Entwicklungszeit und auf die Entwicklerkreativität in der realen Arbeitswelt hat.
Die Simulationsdurchfuhrungsrate ist die größere technische Anforderung aufgrund der Notwendigkeit, sehr große Zahlen von Testfällen für die endgültige Prüfung bzw. Ausführung eines logischen Netzwerks oder einer Bausteinstruktur durchzuführen und dabei für den gleichen Computer eine Dialog-Antwortrate für kleinere Aufgaben zur gleichen Zeit zu ermöglichen. Eine wirklich im Dialog erfolgende Antwort würde es ermöglichen, daß ein Simulationssystem als Strukturoptimierungshilfsmittel benutzt wird, wenn es mit einem graphischen Logikeingangssystem verbunden wird. Probleme existieren auch beim Versuch, Simulatoren, die für bipolare Halbleitertechnologien entwickelt wurden, auf die neuen MOS-Technologien anzuwenden. Diese Simulatoren besitzen vielfach nur unzureichend die für die MOS-Technologie erforderlichen Möglichkeiten. Eine Liste von wünschenswerten Merkmalen für die MOS-Simulation ist unten aufgeführt, zusammen mit der Fähigkeit gegenwärtiger Simulationssysteme der Control Data Corporation für deren Durchführung:
Merkmal System
ASSIST LSISIM AFS
Veränderbare Laufzeit ja nein nein
Zweirichtungssignale ja nein nein
Bauelement-Stufen-Simulation begrenzt nein nein
Bauelement-Stufen-Fehler
modelle
- - nein
Die Bauelement-Stufen-Simulation ist die Fähigkeit, Einzeltransistoren (NMOS, PMOS, GAAS) und Widerstände auszubilden, um eine vollständige und endgültige Gestaltung bzw. Prüfung der Struktur und der Verbindungswege vorzusehen und um die Flexibilität zu erhalten, die für voll einsatzfähige Technologien erforderlich ist. Zusätzliche Simulationszustände sind für die Gestaltung von Transistoren erforderlich. Auch muß jeder Zustand einen relativen Festigkeitsfaktor tragen, um die Gestaltung von dynamischen Aufladeeffekten, von Aufziehvorgängen und von variablen Bauelementgrößen zu ermöglichen.
Eine Aufgabe der Erfindung liegt in der Schaffung eines Simulationssystems mit den Merkmalen, welche für die Anpassung an eine Logikstrukturtechnologie erforderlich ist, die die gegenwärtig existierenden Systeme in der Leistungsfähigkeit um ein Vielfaches übertrifft. Dieses Logiksimulatorsystem soll eine Dialogsimulationskapazität mit Antwortzeiten von nur wenigen Sekunden oder Minuten, vom Benutzer aus gesehen, bereitstellen.
Eine Beschleunigung in dieser Größenordnung scheint weder mit verbesserten Software-Algorithmen oder Kodiertechniken für Modelle noch mit schnelleren Hauptprozessoren des Universaltyps möglich zu sein. Beschleunigungen sind
■0-
möglich durch Reduzierung der Simulationsmerkmale noch über dem gegenwärtigen Stand hinaus oder durch völlige Außerachtlassung der Verarbeitungszeiteffekte, doch damit wird die gestellte Aufgabe nicht gelöst.
Erfindungsgemäß wird die gestellte Aufgabe mit den kennzeichnenden Merkmalen der Patentansprüche gelöst.
Die einzige Lösung für das gestellte Problem besteht also in einem zweckbestimmten Aufbau einer speziell für diesen Zweck gestalteten Simulatorhardware, welche unmittelbar ein Simulationsmodell bildet. Der von Standardereignissen gesteuerte Simulationsalgorithmus mit αχεί 5 kreten Zeitschritten auf einem kontinuierlichen Zeitrad ist der stabilste, allgemein anerkannte und vielseitigste Simulationsalgorithmus, der in Gebrauch ist. Er kann so ausgedehnt werden, daß die gewünschten MOS-Merkmale vorgesehen werden können, und scheint sich gut für dramatische Erhöhungen der Ablaufgeschwindigkeit
durch direkte Hardware-Realisierung zu eignen. Der Hardware-Simulator ist völlig tabellengesteuert, und seine Kapazität sollte über einen sehr weiten Bereich ausdehnbar sein.
25
Der Verkehr zwischen einem Hauptprozessor und dem Simulator kann über einen Datenkanal mit einer bit-Rate von mindestens 7 Millionen bit pro Sekunde erfolgen. Eine höhere Rate könnte wünschenswert sein mit einer wahrscheinlichen Begrenzung auf 10 Millionen bit pro Sekunde, was von der 1/0-Bandbreitenbegrenzung des Simulators resultiert. Die Hardware kann eine Systemkonfiguration tragen, in welcher der Simulator mit einem Hauptrechner verknüpft ist, welcher die zentrale Datenbasis und den Rest eines computergestützten Gestaltungs-
systems bearbeitet. Die Benutzer können über den Hauptrechner mit dem Simulator verkehren.
Die Simulatorhardware kann auch in einem verteilten System arbeiten oder in Verbindung mit einer Anzahl von technischen Betriebsstationen alleinstehend angeordnet sein. In diesem Fall kann das volle Kosten- und Leistungspotential ausgeschöpft werden. Ein Anschluß an ein lokales Leitungsnetz ist eine logische Wahlmöglichkeit für die Datenübertragunqsstrecke zwischen dem Simulator und den anderen Systemkomponenten. Das lose qekoppelte Netzwerk der Control Data Corporation beispielsweise besitzt mehr als die angemessene Leistungsfähigkeit und stellt die Flexibilität sicher, die für den Anschluß an verschiedene Hauptrechner oder Betriebsstations-Konfigurationen benötigt wird, welche ietzt oder in Zukunft in Betracht kommen könnten.
Gegenwärtige Simulationssysteme benutzen vorderseitige und rückseitige Endroutinen, welche die Benutzerschnittstelle bilden und Daten von und zu den Simulatortabellenstrukturen weiterleiten. Jegliche Information, die zur Ausführung der Simulation benötigt wird, ist in Tabellen enthalten, die durch die Vorderseite eingegeben werden und alle Ergebnisse sind in Tabellen enthalten, welche durch die Rückseite übertragen und angezeigt werden. Der Verkehr mit dem Hardware-Simulator wird über das lokale Netzwerk zu und von einem ähnlichen Tabellensatz durchgeführt. Die Vor- und Nachverarbeitung kann noch in Software außerhalb des Hardware-Simulators vorgenommen werden. Das ermöglicht Flexibilität in der Benutzerschnittstelle. Ein wünschenswerter Zugangswea besteht darin, daß die Vorder-Eingangsseite so gestaltet wird, daß sie lediglich dieienigen Abschnitte der Simulations-
tabellen neu übersetzt, welche bei einer bestimmten Strukturänderung betroffen sind. Auf diese Weise können nach Eingabe einer Struktur die zahlreichen Hinzufügungen, Weglassungen und Veränderungen im Bedarfsfall ausgeführt und schnell geprüft werden, ohne daß der ganze Satz von Tabellen jedes Mal neu übersetzt werden muß, wie dies gegenwärtig bei einem Softwaresystem der Fall ist.
Der erfindungsgemäße Simulator enthält eine Anzahl von Speichern mit wahlweisem Zugriff, welche die Tabellenfunktionen erfüllen. Im einzelnen ist ein Modelltabellenspeicher vorgesehen, welcher die Mode11information enthält, die die Struktur des einzelnen Bausteins oder der logischen Baugruppe beschreibt, dessen Struktur ausgeführt bzw. geprüft werden soll. Weiterhin ist ein Zustandstabellenspeicher vorgesehen, welcher bestimmungsgemäß die Information bezüglich des Zustandes oder der Beschaffenheit eines jeden Elements des Bausteins oder der Baugruppe enthält,so wie sie in der Modelltabelle enthalten ist. In der Sprache der Loqikstruktur eines Bausteins kann die Beschreibung seiner Torschaltungsverbindunqen als seine Netzliste bezeichnet werden. So enthält die Modelltabelle eine Beschreibunq aller möqlichen Elemente auf dem Baustein in der Bezeichnung der ieweiliqen logischen Funktion. Die Netzlistentabelle enthält eine Beschreibunq der Verbindunqs- und Strukturfunktionen innerhalb der Bausteinstruktur unter Testbedingungen, und die Zustandstabelle enthält eine Liste des gegenwärtigen Zustande eines jeden Elements. Der Simulator arbeitet so, daß er jede Einheit einer normalen Zykluszeit des Bausteins in viele Zeitschlitze auf der Grundlage der Zeitradtheorie einteilt. Der Simulator scheint bei jedem Zeitschlitz zu bestimmen, ob
eine erzeugte Funktion irgendwelche Zustandsänderungen an irgendeinem in der Netzliste bezeichneten Element entsprechend den Funktionen der Modelltabelle hervorruft. Wenn irgendein in der Netzliste enthaltenes Element seinen Zustand ändert, wird der Zustandstabellenspeicher mit dieser Änderung im Zustand auf neuesten Stand gebracht. Der Prozeß vollzieht sich in funktioneller Reihenfolge vom Eingang zum Ausgang in der Struktur des Bausteins oder der Baugruppe, welche ausgeführt bzw. geprüft werden soll.
Die Erfindung wird nachfolgend an Ausführungsbeispielen anhand der Zeichnung näher erläutert. Es zeigen: 15
Fig. 1A und 1B (nebeneinander anzuordnen) ein Blockschaltbild eines erfindungsgemäßen ereignisunabhängig gesteuerten Simulatorsystems,
Fig. 2A und 2B (übereinander anzuordnen) eine andere
Ausführungsform eines erfindungsgemäßen, ereignisunabhängig gesteuerten Simulatorsystems,
Fig. 3 eine Systemstruktur einer Ausführungsform eines erfindungsgemäßen ereignisgesteuerten
Simulatorsystems und
Fig. 4A und 4B (übereinander anzuordnen) bestimmte Elemente des Simulatorsystems von Fig. 3.
In den Fig. 1A und 1B ist ein erfindungsgemäßes Simulatorsystem 10 für nicht ereignisgesteuerte Simulation einer LSI-Baugruppe bzw. eines Logikbausteins beschrieben. Die Zeichnung in Fig. 1 ist so gestaltet, daß sie von links
./Ιί
nach rechts in einer zeitlichen Abfolge den Zeitverlauf an Ereignissen in dem Simulator zeigt. Die sogenannte "Netzliste",welche eine umfassende codierte Beschreibung des zu prüfenden Bausteins bzw. der logischen Struktur enthält, und welche in Form von Torschaltungstypen und Verknüpfungsanforderungen aufgelistet ist, wird von einer Eingangsquelle 12, beispielsweise einem Universalrechnersystem oder einem Hauptprozessor, auf ein "Netzlisten"-Einschreibdatenreqister 14 qespeist. Ein "Netzlisten"-Adressenlistenregister 16 arbeitet simultan mit dem "Netzlisten"-Einschreibdatenregister 14, um in Übereinstimmung mit den Adressen der einzelnen "Netzlisten"-Einschreibdaten-Gegenstände zu bleiben.
Ein Adressen-Inkrementor 18 bringt jeweils die Adresse des "Netzlisten11-Adressenregisters 16 auf neuen Stand. Die "Netzlisten"-Einschreibdaten werden einem Einschreibdatenbus 20 zugeführt, welcher mit mehreren dynamischen "Netzlisten"-Speichern 22 , 24, 26 und 28 mit wahlweisem Zugriff verbunden ist, wobei jeder dieser Speicher beispielsweise 16 K bit an Speicherplätzen besitzt und 1 bit Breite aufweist. Der Ausqanq des "Netzlisten"-Adressenregisters 16 ist einem Zwei-auf-Vier decodierenden Logikelement 30 zugeführt, dessen Ausgang auf einem Schreibsicherunqsbus 32 mit dem dynamischen Speicher 22 , 24, 26 und 28 für wahlweisen Zugriff verbunden ist. Das Decodierelement 30 steuert die Adressierung der "Netzlisten"-Einschreibdaten in die Speicher, so daß die Speicher nacheinander in rotierender Folge adressiert werden. Die Decodiereinrichtung 30 besitzt auch einen Ausgangsadressenbus 34, welcher in verschiedene bits unterteilt und verzweigt an verschiedene Teile des Systems 10 geführt ist. Einige der bits sind gesondert an einen Adressbus 36 geführt, welcher als Adresseneingang mit den Speichern 22, 24, 26 und 28 ver-
BAD OSiGINAL
bunden ist, so daß inuner für jeden der Speicher ein Adressenabschnitt zur Verfügung steht. Dabei steuert der Schreibsicherungs-Steuerbus 32 die Funktion der Speicher. Ein weiterer Teil des Adressenbuses 34 ist als Zustandstabellen- und als Abtastadressenbus 38 abgetrennt und einem AbtastmodelIreqister 40 zugeführt, welches später im einzelnen erläutert wird.
Die Ausgänge der Speicher sind jeweils mit einem "Netzlisten"-Lesedatenregister verbunden. Der Speicher 22 ist mit dem "Netzlisten"-Datenregister 42 verbunden, der Speicher 24 ist mit dem Register 44, der Speicher 26 mit dem Register 46 und der Speicher 28 mit dem Register verknüpft. Die Ausgänge der Register 42, 44, 46 und sind alle mit einem Lesebus 50 verbunden, welcher seinerseits mit dem Abtastmodell-Tabellenregister 40 und auch mit dem Modelltabellen-Adressenregister 52 verbunden ist. Das Abtastmodelltabellen-Adressregister 52 wird während des Betriebs durch einen Adresseninkrementor 54 weitergeschaltet.
Der Ausgang des Abtastmodelltabellen-Adressregisters ist an eine Modelltabelle 56 geschaltet. Die Modelltabelle 56 enthält die Informationen bezüglich der Funktionen, die durch die einzelne logische Torschaltung, welche in der jeweiligen Schaltungsstruktur Verwendung findet, durchgeführt werden soll. Das heißt, wenn ein einzelnes zu simulierendes Schaltelement in das System eingeschrieben wird, werden die verschiedenen betätigten Torschaltungen durch die Funktionen, welche sie ausführen, definiert und diese Funktionen sind in der Modelltabelle 56 in Beziehung zueinander gesetzt. Wenn also eine bestimmte TorSchaltungsbezeichnung oder ein Schaltungstyp aus den "Netzlisten"-Speichern 22,
-H- 'ΟΤΙ
24, 26 und 28 aufgerufen wird, bringt die Modelltabelle die logische Funktion, welche durch die Torschaltung oder durch die Schalteinrichtung ausgeführt wird, mit der speziellen Torschaltung oder mit dem Schaltelement in Verbindung und stellt eine entsprechende Ausgangsinformation für das Modelltabellen-Lesedatenregister 58 und für den Modelltabellenausgangsbus 60 zur Verfügung.
Der Modelltabellenausgangsbus ist als Eingangsleitung dem Abtastmodelltabellenregister 40 zugeführt. Die Arbeitsweise dieser Simulationseinrichtung ist derart, daß eine logische Funktion durch ein bestimmtes logisches Netzwerk verfolgt wird. So hat das Register 40 in sich für bestimmte Modellelemente die auszuführende logische Funktion, die gegenwärtige Adresse innerhalb der zu simulierenden logischen TorSchaltungseinrichtung und die einzelne logische Torschaltung, welche geprüft werden soll, gespeichert. Diese gesamte Information wird kombiniert/um eine Änderung des Zustandinformationscodes in dem Register 40 zu erzeugen, und diese Ausgangsinformation wird einem Zustandsta.bellen-Adressregister 62 zugeführt. Die Einschreibinformation von der des Simulatorsystem steuernden externen Quelle 12*. stellt dem Modelltabellen-Einschreibdatenreqister 64 eine Information zur Verfügung, welche die Adressierung der Modelltabelie 56 steuert.
An diesem Punkt soll zweckmäßiqerweise erläutert werden, daß verschiedene paritätserzeuqende Netzwerke 66 und 68 auf die Daten in dem System einwirken, um eine Paritätsprüffunktion bereitzustellen, welche dem Paritätsfehlerregister 70 zu Prüfzwecken eingegeben wird. Der Ausgang des Paritätsfehlerregisters 70 wird zusammen mit dem Ausgang eines zusätzlichen paritätserzeugenden Netz-
3333333
werks 74 einem Paritätsfehler-Zustandsregister 72 zugeführt. Diese paritätserzeugenden Techniken sind vergleichsweise übliche Technik und brauchen nicht weiter erläutert zu werden. Der Ausgang des Statustabellenadressregisters ist mit einem statischen Zustandstabellenspeicher 80 für wahlweisen Zugriff verbunden. Der statische Zustandstabellenspeicher für wahlweisen Zugriff ist ein 16 K-Speicher mit Zwei-bit-Breitenkonfiguration bei diesem Ausführungsbeispiel der Erfindung. Die Adresseninformation wird auf einem 14 bit breiten Bus von dem Statustabellen-Adressregister 62 zur Verfügung gestellt. Der Datenausgang des Speichers 80 wird auf einem Bus 82 in eine Logikauswerteeinrichtung oder einen -prozessor 84 überführt, der mit einer gestrichelten Linie dargestellt ist. Der Logikauswerteprozessor 84 enthält eine logische Produktausdruck-Funktionseinheit 86 und eine logische Summenausdruck-Funktionseinheit 88. Der Ausgang der logischen Produktausdruck-Funktionseinheit 86 ist mit einem Register 90 verbunden, welches als Ausgang einen Bus 92 besitzt, welcher einen Eingang für die logische Summenausdruck-Funktionseinheit 88 bildet. Der Ausgang der logischen Summenausdruck-Funktionseinheit 88 ist einem Bus 94 als Dateneingang für den Zustandstabellenspeicher 88 zugeführt. Die Adressensteuerung für den Produktausdruck-Auswerteprozessor und den Summenausdruck-Prozessor 88 ist als Ausgang von dem Modelltabellen-Lesedatenregister 58 bereitgestellt. Die Steuerunq für das Register 90 wird ebenfalls von einem anderen Ausgang des Registers 58 gewonnen .
Die Funktion des Zustandstabellenspeichers 80 besteht darin, den gegenwärtigen Zustand der in Simulation.befindlichen Schalteinrichtung bzw. der Struktur aufzu-
nehmen und diesen Zustand dem Produktausdruck-Auswerter 86 zur Verfüqunq zu stellen. Der Produktausdruck-Auswerter 86 empfängt Informationen bezüglich der auszuführenden Funktion, führt diese Operation logisch durch, bestimmt dann den neuen Zustand der bestimmten Torschaltung bzw. des Elements und liefert diese Zustandsinformation als auf neuen Stand gebrachte Information an den
Zustandstabellenspeicher 80.
10
Der allgemeine Zweck des nicht ereignisgesteuerten Simulator-Ausführungsbeispiels gemäß Fig. 1A und 1B besteht darin, Daten, welche bereits durch den Hauptprozessor 12 vorverarbeitet wurden, aufzunehmen und sie verschiedenen Eingängen des nicht ereignisgesteuerten Simulators zuzuführen. Das Register 14 bringt die "Netzlisten"-Daten ein. Das Register 64 bringt die Modelldaten und der Bus 67 bringt die Zustandstabellen-Adressdaten ein. Diese drei Dateneingänqe versorgen das Logikereignissimulatorsystem 10 mit Eingangsbedingungen, so daß es danach seine Operation durchführen kann. Das Simulatorsystem 10 führt seine gewünschte Funktion unter Steuerung durch die Speicher- und Taktgeber-Steuerlogik 96 durch, welche ebenfalls mit dem Hauptprozessor 12 zu Steuerungszwecken verbunden ist. Der Simulationsprozess wird funktionell hauptsächlich durch den Logikauswerteprozessor 84 durchgeführt.
Bei dieser Konfiguration werden Daten durch den loqischen Produktausdruck-Prozessor 86 und den loqischen Summenausdruck-Prozessor 88 verarbeitet, wobei Boolesche Operationen an dem Einqanqsdatenstrom in der Weise durchqeführt werden, daß ein resultierender neuer Zustand des simulierten Logikelementes erzeuqt wird. Der Produktausdruck-Prozessor 86 ist logisch eine Konfigura-
tion von UND-Gliedern, und der Summenausdruck-Prozessor 88 ist eine Kombination von ODER-Gliedern, so daß jegliche Boole'sehe Funktion mit diesem universellen logisehen Auswertenetzwerk bzw. -prozessor 84 durchgeführt werden kann.
Es sei angenommen, daß der gesamte bis hierher diskutierte Simulationsprozess in Probleme verschiedener Größenordnung aufgeteilt wird. Die Logik, die dann diskutiert wird, könnte dann eine bestimmte Simulationsgröße von einer vorgegebenen Logikmenge durchführen. Um diese Funktion auf größere Probleme mit größeren "Netzlisten" auszudehnen, kommt dann die zwischenmodulare Kommunikationsringlogik ins Spiel. Diese Logik ermöglicht es, daß eine Vielzahl von Kopien des Simulations hardwaresystems unter Steuerung durch den Hauptprozessor zusammenwirken, um diese größere Simulationsaufgabe für unterschiedliche Logikelemente gleichzeitig durchzuführen. Der Haupteingang für die bereits beschriebene Logik ist in diesem Fall das externe Zustandsregister 98, welches Daten von anderen T-eilen oder anderen Kopien dieses Hardwaresimulationssystems dem betreffenden, welches gerade die Daten bearbeitet, zuführt.
Das intermodulare Kommunikations-Ringlogiknetzwerk 100 ermöglicht es, daß eine Vielzahl von Kopien des Hardwaresimulators zusammenwirken, um große Simulationsaufgaben durchzuführen. Die intermodulare Kommunikations-Ringlogik wirkt mit einer Kopie des Hardwaresimulators in der Weise zusammen, daß sie Ausgangsfunktionen von der Modelltabelle über den Bus 60 erhält. Das Kommunikations-Ringlogiksystem 100 erhält auch Zustandstabellen-Adressdaten von dem Bus 67 und außerdem Anschlußzustandsdaten von dem logischen Auswerter 84 über den Bus 102.
Das intermodulare Kommunikations-Ringlogiknetzwerk 100 liefert auch Daten zu jeder Kopie der Hardware-Simulationslogik über den Ringmodulbus 104 sowie Anschlußzustandsdaten über den Bus 106. Außerdem empfängt das intermodulare Kommunikations-Ringlogiknetzwerk 100 während des Betriebs des Simulators jeweils die gegenwärtige Zustandstabellenadresse über den Bus 108.
Bestimmte Abschnitte der intermodularen Kommunikationsringlogik sind auf jeder Kopie des Hardware-Simulatorsystems enthalten. Diese Logik wird dann dupliziert und über Bussemiteinander verbunden, um jeder Kopie des Hardwaresimulatorsystems die Zusammenarbeit mit anderen Kopien des Hardwaresimulatorsystems zu ermöglichen, wenn Operationen für ein großes Simulationsproblem durch geführt werden.
In den Fiq. 2A und 2B ist eine andere Ausführunqsform 200 des vorliegenden erfindunqsqemäßen Simulatorsvstems darqestellt. Diese Ausführunqsform ist als an der Boole'sehen Loqik orientierte Simulatorstruktur ausqeführt, welche nicht ausdrücklich auf Zeitabläufe innerhalb der zu simulierenden und zu prüfenden Logikstruktür ausgerichtet ist, sondern lediglich auf die Logikstufen in der zu simulierenden Logik ausgerichtet ist. Eine Tabelle 210 für definierten Zustand empfängt eine Mehrzahl von Eingangsinformationen über die Leitungen 212 und enthält Speicherplatz für die Ausrichtung auf logische'O" oder "1"-Zustände der acht Torschaltungseingangssignale, die an den Eingängen 212 anstehen. Diese Eingangsinformationen können von einem Hauptprozessor 12 geliefert werden, wie er in dem Ausführungsbeispiel der Fig. 1A und 1B gezeigt ist. Eine Tabelle 220 für Undefinierten Zustand bietet eine Speichermöglichkeit
■15-
zur Zustandshaltung für den Fall, daß ein bestimmtes Torschaltungseingangssignal sich in einem Undefinierten logischen Zustand befindet entsprechend den Eingängen an den Adressen-Eingangsleitungen 222. Ein Undefinierter logischer Zustand kann zu der Zeit auftreten, wenn eine Torschaltung gerade von einem Zustand zu einem anderen umschaltet oder sich noch in der Einschwingphase auf einen Zustand unmittelbar nach dem Umschalten befindet.
Ein anderes Beispiel für einen Undefinierten Zustand ist dann gegeben, wenn die Eingangsinformationen für die spezielle Torschaltung noch nicht bekannt sind, weil sie sich erst aus einer Operation ergeben, die an anderer Stelle der im Test befindlichen Einrichtung durchgeführt wird.
Ein Torschaltungs-Prozessoreinheitssystem 230 ist vorgesehen, welches eine Mehrzahl von individuellen Torschaltungs-Funktionstabellen 232, 234 usw. besitzt, um eine Torschaltungsfunktionstabelle für jedes bit einer 8-bit-Adresse zur Verfügung zu stellen, wobei nicht alle Torschaltungsfunktionstabellen dargestellt sind, jedoch als letzte die Torschaltungsfunktionstabelle für das bit 7 darqestellt ist. Die Torschaltunqsprozessoreinheit besteht aus 8 speziellen loqischen Prozessoreinheiten, welche auf vorqeqebene einfache Einqanqsloqikfunktionen der anqeleqten Einqanqsinformationen einfache Torschaltunqsausganqsinformationen festlegen. Zwei Funktionsprozessoreinheiten 240 und 242 sind als Mikroprozessorbausteine vorgesehen, welche im vorliegenden Ausführungsbeispiel aus zwei 4-bit-Mikroprozessorbausteinen zur Bildung eines 8-bit-Prozessorbausteins zusammengefügt sind und die Betriebsweise der Funktionsprozessoreinheit ausführen. Diese Funktionsprozessoreinheiten erreichen eine Prozessorfunktion höherer Intel-
ligenz, welche größere Blockfunktionen innerhalb des zur Prüfung bestimmten Bausteins simulieren kann und Torschaltungsausgangssignale festlegen kann, wenn komplexe Logikfunktionen für angelegte Eingangssignale gegeben sind. Diese Prozessorfunktionen arbeiten deshalb so, daß eine verbundene Verarbeitung mit komplizierteren Torschaltungen in dem im Test befindlichen System durchgeführt werden kann , während die weniger komplizierten TorSchaltungen mit den acht Funktionstabelleneinheiten innerhalb des Torschaltungsprozessoreinheitsystems 230 bearbeitet werden.
Weiterhin sind zwei Kreuzschienen-Netzwerksysteme 250 und 252 vorgesehen, und mit der Tabelle 220 für Undefinierten Zustand bzw. mit der Tabelle 210 für definierten Zustand verknüpft. Diese entsprechenden Netzwerke dienen dazu, daß Simulationseinheiten auf der Grundlage größerer Netzwerke zusammenarbeiten, welche Signale für zwischen den Prozessmodulen bestehende Torschaltungsstufen besitzen. All das wird unter Verwendung des Datenbussystems mit den vier Datenbussen 254, 256, 258 und 260 innerhalb des Prozessormoduls durchgeführt. Das Serien/Parallel-Verknüpfungssteuersystem ist zwischen die Funktionsprozessoreinheiten 240 und 242 geschaltet, um die Arbeitsweise dieser Funktionsprozessoreinheiten zu steuern und beim Simulationsablauf von Vielfachzyklusabläufen eines im Test befindlichen Systems zu unterstützen. Die Funktionsprozessoreinheiten 240 und 242 sind nicht nur mit den Datenbussen 254, 256, 258 und 260 verknüpft, sondern auch mit Verbindungen über den Bus 272, welcher mit der Funktionsprozessoreinheit 242 verbunden ist, bzw. dem Bus 274, welcher mit der Funktionsprozessoreinheit 240 verbunden ist, mit den Registern 276 bzw. 278 bzw. mit der Tabelle
210 für definierten Zustand bzw. der Tabelle 220 für Undefinierten Zustand verbunden. Diese Register ermöglichen die Dateneingabe zu den Tabellen für definierten bzw. für Undefinierten Zustand, wobei sie nach Bedarf einen Wechsel zwischen den Eingaben der funktionellen Prozessoreinheiten zu diesen Tabellen vornehmen, nämlich einerseits der Eingabe von der Torschaltungsfunktionstabelle oder andererseits von der Torschaltungsprozessoreinheit jeweils zu diesen Zustandstabellen.
Fig. 3 zeigt eine weitere Ausführungsform 299 der Erfindung, nämlich ein Blockschaltbild für den Datenfluß eines Ereignissimulators. Im Simulatorsystem 301 werden die logischen Daten und die Zeitdaten, die für die Prüfung der Arbeitsweise eines logischen Netzwerks erforderlich sind, analysiert. Die Vorverarbeitung der Daten muß in einem Hauptprozessor 301 vorgenommen werden, um Eingangsdaten für eine Auffächerungstabelle zu erzeugen, welche die Informationen für "Netzlisten"-Bestimmung, Torschaltungstypen und Torschaltungskennzeichnungen verteilt. Diese Information wird gespeichert, beispielsweise in einem Speicher 300 , der eine Größe von 32K zu ie 40 bit aufweist. Eine weitere Information, die für die Durchführung der Simulation erforderlich ist, ist die spezifische Verzögerungsinformation für den Arbeitsablauf eines jeden Torschaltungstyps oder einer jeden Baugruppe, die simuliert werden soll. Diese Information wird in der Torschaltungsausgangstabelle 302 gespeichert, welche beim vorliegenden Ausführungsbeispiel ein 16 K zu je 40 bit-Speicher ist. Als weitere Daten sind erforderlich die Daten bezüqlich des logischen Zustands einer jeden Torschaltung, und diese Daten sind in der Zustandstabelle 304 festgehalten. Diese Tabelle ist ein 48 K zu je 20 bit-Speicher
im vorliegenden Ausführungsbeispiel· Eine Definition der jeweiligen logischen Operation der verschiedenen Torschaltungstypen ist in der Logikmode11tabelle 306 gespeichert, welche im vorliegenden Ausführungsbeispiel durch einen 16 K zu 40 bit-Speicher gebildet wird. Wenn einmal der Vorprozessor 12 die oben erläuterten Tabellen geladen hat, dann erfolgt der Simulationsprozess unter der Steuerung des Ereigniszeit-Schedulers 308. Der Ereigniszeit-Scheduler 308 lenkt dann den Betrieb der Hard ware in der Auffächerungstabelle 300, der Torschaltungsausgangstabelle 302, der Zustandstabelle 304, der Logikmodelltabelle 300 und einem Logikauswerteprozessor 310 Diese Speicher- und Logikprozessoren werden dabei so koordiniert, daß Daten zwischen ihnen entsprechend der Anweisung durch den Ereigniszeit-Scheduler bewegt werden, so daß logische Zustandsänderungen und Zeitereignisse so abgestimmt werden, daß gezeigt wird, was mit jedem Torschaltungsausgang bei jedem Zeitschritt während der logischen Operation geschieht.
Der Ereigniszeit-Scheduler 308 ist in Fig. 4 genauer dargestellt. Fig. 4 zeigt zum Teil die Steuerlogik und die Speicher, welche zur Durchführung der Ereignisabstimmung und für die zeitliche Verbindung dieser Ereignisse notwendig sind.
Der Zweck der Ereigniszeit-Scheduler-Verknüpfungslistenanordnung gemäß Fig. 3 besteht darin, eine beliebige go Speicherzuordnung zu ermöglichen, welche notwendig ist, um für jede vorgegebene Zeitperiode die Zahl von logischen Zustandsänderungen einzuhalten. Die Verknüpfungslistenspeicher können beispielsweise fünf Zustandsänderungen zu einer Simulationszeit speichern und in Zuge Ordnung zueinander halten. Bei der nächsten Simula-
tionszeitperiode können sie eine unterschiedliche Zahl von Zustandsänderungen, beispielsweise 100, steuern, diese Zustandsänderungen speichern und sie in den Verknüpfungslisten-Speichern verknüpfen. Das wird dann für jede Zahl von Zustandsänderungen für jede vorgegebene Simulationszeitperiode wiederholt, wobei dynamisch Speicher zuqeordnet werden, um alle diese Zustandsänderungen zu allen betrachteten Zeitpunkten während 1^ eines jeden vorgegebenen Simulationsablaufs festzuhalten.
Wenn einmal eine vorgegebene Logikdiagrammstruktur simuliert wurde, werden die Ergebnisse von den auf neuen Stand gebrachten Zustandstabellen zu einer Nachprozessor funkt ion übertragen, welche die Daten in von Menschen lesbare Form übersetzt, wo sie dann entweder zu einer Druckerausgabeeinheit oder einem Graphikterminal gegeben werden können, um dem Loqikentwickler die Möglichkeit zu geben, die Ergebnisse des Simulationstests zu verfolgen.
In Fig. 3 ist die Ereignistabelle 418 der 16 K zu 16 bit-Speicher im Ereigniszeit-Scheduler 308, welcher für die Speicherung der durchzuführenden Ereignisse verwendet
dargestellt,
wird, /Das System ist um die Ereignistabelle herum in der Weise aufgebaut, daß der Algorithmus ein Ereignis aus dem Speicher entnimmt, das Ereignis durchführt und bestimmt, ob neue Ereignisse erzeugt werden sollen. Die Funktion des Ereigniszeit-Schedulers 308 besteht darin, ein Ereignis abzurufen. Die Einrichtungen 300, 302, 304 306 und 310 dienen dazu, das Ereignis auszuführen und zu bestimmen, ob neue Ereignisse erzeugt und in der Ereignistabelle 418 für die Durchführung zu einem späteren Zeitpunkt rückgespeichert werden.
. 3 «Γ·
Wenn ein Ereignis von der Ereignistabelle abgerufen wurde, werden die gegenwärtigen Ereignisse ausgewertet. Das gegenwärtige Ereignis und der gegenwärtige Zustand werden verarbeitet. Der Logikauswerteprozessor 310 dient dazu, zunächst das Ereignis zu verarbeiten, um den gegenwärtigen Zustand zu erhalten und den Eingangszustand für die simulierte Torschaltung zu speichern. Der Zustand wird in dem Wort gespeichert, welches für eine bestimmte einzelne Modelltabellentorschaltung adressiert ist. Der neue Logikausgangswert der Torschaltung wird ausgewertet, und der Prozessor 310 benutzt die Modelltabelle 306, welches eine Wahrheitstabelle ist, um die erforderliche Modellinformation für den bestimmten Torschaltungstyp zu erhalten.
Nachdem dann der neue Zustand für eine Torschaltung gespeichert ist, werden die Eingangsstifte für die Torschaltunq benutzt/ um die Wahrheitstabelle zu adressieren und einen neuen Zustand für die Torschaltung zu bestimmen. Hat man beispielsweise ein Vier-Wege-UND-Glied und besitzt das UND-Glied vier Eingangsstifte, so kann das auftretende Ereignis den Zustand eines der Eingänge zu dem UND-Glied verändern. Dann wird eine Wahrheitstabelle benutzt, um das neue Ausgangssignal der Torschaltung auszuwerten, und für diesen Torschaltungstyp wird entsprechend dem Eingangszustand der Torschaltung ein neuer Ausgangswert erscheinen. Wenn einmal der Torschaltungsausgang unter Verwendung des Prozessors 310 und der Tabelle 306 ausgewertet ist, falls eine Zustandsänderung an dem Ausgang der Torschaltung vorliegt, dann ist es bestimmt, wo der Torschaltungsausgang sich auffächert, so daß der Zustand oder das Ereignis auf die anderen Torschaltungen oder auf neue Eingaben an dem Torschaltungsausgang weitergegeben werden kann. Die Tafel 306 bestimmt, ob eine Zustandsänderung am Ausgang erfolgt. Erfolgt eine
Zustandsänderung am Ausgang, wird der Zustand an die anderen Torschaltungen weitergegeben. Die Auffächerungstabelle 300 stimmt mit den Bestimmungs-Torschaltungstypen und Torschaltungsnummern überein. Dies ist äquivalent mit der Verknüpfungsliste für die Torschaltungsausgangstabelle, welche die Laufzeiten enthält. Wenn ein Ereignis auftritt , muß der Zustand gespeichert werden,und so wird die Zustandstabelle in der Zustandstabelle 304 festgehalten. Die Zustandstabelle 304 ist der Platz, wo die Eingangs- und Ausgangszustände aller Anschlußstifte an einer Torschaltung festgehalten werden. Wenn ein neues Ereignis den Eingangsstift zu einer Torschaltung beeinflußt und damit den Zustand des Eingangs-Stiftes verändert, wird der Zustand in der Zustandstabelle 304 festgehalten. Ein neues Ereignis läßt den neuen Zustand des Eingangsstiftes in der Zustandstabelle 304 speichern. Die Eingangsstift-Zustände in der Tabelle 304 sind in Übereinstimmung mit dem Torschaltungstyp , um den Bezug auf die Wahrheitstabelle in der Modelltabelle 306 zu bestimmen und um zu bestimmen, welches der neue Ausqanqszustand der Torschaltung sein wird. Der alte, in der Tabelle 304 gespeicherte Zustand und der neue Zustand, der von der Wahrheitstabelle in der Model1-, tabelle 306 bestimmt wird, werden verwendet, um zu bestimmen, ob der Ausgang der Torschaltung sich verändert hat. Wenn der Ausgangszustand der Torschaltung sich geändert hat, dann werden die Auffächerungstabelle 300, welche die Verknüpfungsliste darstellt, und die Ausgangstabelle 302, welche die Ausgangslaufzeiten darstellt, zur Bestimmung der neuen Ereignisse zur Einwirkung auf die Eingabe an der Torschaltung verwendet. Diese neuen Ereignisse steuern die Eingabeeingangsstifte, mit welchen die Torschaltung verbunden ist.
m3i
Fig. 4 zeigt im einzelnen den Ereigniszeit-Scheduler aus Fig. 3. Dabei empfängt eine Simulationszeit-Summiereinrichtung 400 Informationen bezüglich der gegenwärtig betrachteten Simulationszeit. Die Simulationszeit-Summier einrichtung 400 ist mit einem Register 402 verbunden. Das Register 402 ist mit einem Ausgang an einen Speicher 404 für die Liste der vollen ersten Verbindung, an einai Speicher 406 für die Liste der ersten Verbindung und an einen Speicher 408 für die Liste der letzten Verbindung geschaltet. Der Speicher 404 für volle erste Verbindung ist mit einem Register 412 verbunden, welches einen mit einem ODER-Glied 424 verbundenen Ausgangsbus 452 besitzt. Der Ausgangsbus 452 ist außerdem über den einen Eingang eines ODER-Gliedes mit der Schreibsicherungssteuerung an dem Speicher 406 für die Liste für erste Verbindung verbunden. Der Speicher 406 für die Liste der ersten Verbindung und der Speicher 408 für die Liste der letzten Verbindung sind mit einem Datenbus 410 verbunden, der , wie später noch beschrieben wird, mit anderen Elementen in dem System verbunden ist. Ein Register 414 arbeitet als Register für erste Verbindung und ist mit dem Bus 410 verbunden. Das Register 414 besitzt einen Ausgang, welcher auf einen Bus 450 als Eingang zu einem Komparator 422 und als ein Eingang zu einem Zähler 440 geschaltet ist. Das Register 416 für letzte Verbindung ist mit dem Speicher 408 für die Liste der letzten Verbindung verbunden und stellt das zweite Eingangssignal für den Komparator 422 bereit. Der Komparator 422 vergleicht, wann die Verbindungslisten-Register 414 und 416 die selbe Verbindungslistenadresse enthalten und gibt ein Ausgangssignal an ein ODER-Glied 424. Wenn das ODER-Glied 424 durchgeschaltet ist, wird die Verbindungslistenadresse in ein Register 426 gegeben, welches ein Ausgangssignal erzeugt, um die Simulationszeit um einen
cs/m
«33'
- 2-6—
Schritt für den weiteren Ablauf weiterzuschalten. Ein Verbindungslistenspeicher 418 ist mit einem Dateneingang und einem Datenausgang an den Bus 410 angeschaltet. Der Verbindungslistenspeicher 418 wird durch ein Eingangssignal von dem Bus 450 gesteuert. Ein Speicher 430 für seriellen Zugriff ist mit dem Bus 410 verbunden, um eine Information über eine leere Verbindung zu bewahren. Ein Register 432 ist zwischen einen Speicher 434 für die Liste für volle Verbindung und einen Speicher 430 geschaltet. Ein Paritätsgenerator verarbeitet Daten, welche von dem Speicher 434 für die Liste für volle Verbindung zu dem Speicher 430 mit seriellem Zugriff ablaufen. Ein ODER-Glied 436 steuert die Arbeitsweise des Speichers 434 für die Liste für volle Verbindung. Ein Zähler 440 stellt einen Dateneingang für den Speicher 430 mit seriellem Zugriff dar, während der Ausgang, welcher die Ausgangsadresse für leere Verbindung darstellt, an den Datenbus 410 geschaltet ist.
Der Speicher 418 für die Ereignisspeicherung kann ein 16 K zu 16 bit-Speicher sein, der für die Speicherung von Ereignissen Verwendung findet. Ereignisse, die für eine gegebene Abtastzeit gemeinsam sind, werden in sechs Blöcken zu 16 Wörtern gespeichert, so daß der Speicher, welcher ein 16 K zu 16 bit-Speicher ist, logisch in Blöcke von 16 Wörtern aufgeteilt wird. Die Einrichtungen 404, 406 und 408 sind Speicher, welche zur Steuerung der Adressierung des 16 K zu 16 bit-Speichers 418 verwendet werden. Der Speicher 404 für die volle erste Verbindung ist ein 14 K zu 1 bit-Speicher. Der Speicher 404 findet Verwendung, um zu bestimmen, ob eine aktive Abtastzeit vorliegt. Ein Taktzyklus kann in maximal 4 096 Abtastzeiten unterteilt werden, und der Stand der jeweiligen Abtastzeit wird in dem 4 K zu 1 bit-Speicher gespeichert.
Das Register 402 wird verwendet, um die gegenwärtige Abtastzeit und eine Adresse in den Speicher 404 einzubringen,, welcher derjeniger Speicher ist, der angibt, ob die Abtastzeit wirksam ist oder nicht. Wenn die Abtastzeit wirksam ist, werden Ereignisse von einem Ereigniszeitplan eingelesen. Für jede Abtastzeit gelangt eine Adresse durch die Speicher 400 und 402, um den Adressblockspeicher 404 zu füllen, wenn das bit in dem Speicher 404 für diese Adresse gesetzt ist und die Abtastzeit wirksam ist. Wenn die Abtastzeit wirksam ist, wird die Adresse dann an die Speicher 406 und 408 gegeben. Der Speicher 406 enthält eine Hinweisadresse für den Block der ersten 16 Worte des die Ereignisse enthaltenden Speichers. Der Speicher 408 enthält eine Hinweisadresse für den Block der ersten 16 Worte des Ereignisse enthaltenen Speichers. Die Einrichtungen 404, 406, 410, 414, 416, 422, 424 und 426 sind abgestimmt mit den Ereignisblöcken, auf welche der 16 Ereignisse enthaltende Block und die Einrichtungen 456, 434 und 436 gewöhnlich für individuelle, in einem Block gespeicherte Ereignisse zugreifen. Das Blockdiagramm der Fig. 4A dient in erster Linie dazu, die Adressierung der individuellen Blöcke abzustimmen. Der Speicher 418 dient zur Speicherung von Ereignissen. Ereignisse werden in Blöcken zu 16 Wörtern gespeichert, so daß 1024 Blöcke im Speicher 418 beim vorliegenden Ausführungsbeispiel gespeichert werden. Jeder Block enthält 16 Wörter. Die Blöcke können verschiedene Größe aufweisen. Sie können jeweils von einem Wort bis zu 16 Wörter enthalten; so kann ein Speicher in Abhängigkeit von dem angewandten Simulationstyp entweder in 1024 Blöcke zu je 16 Wörtern oder andernfalls in bis zu 16384 Blöcke zu je einem Wort unterteilt sein. Die Blockgröße kann geändert werden, um die Leistung zu erhöhen. Dabei ergibt ein größerer Block eine größere
ORiGIMAL
Leistungsfähigkeit . Jedesmal, wenn ein Block geleert ist, wird die Hinweisadresse für erste Verbindung erhöht. Die Hinweisadresse für erste Verbindung wird weitergeschaltet. Die Hinweisadresse für erste Verbindung wird so lange weitergeschaltet und die Blöcke werden ausgelesen, bis die Hinweisadresse für erste Verbindung gleich ist mit der Hinweisadresse für letzte Verbindung. Die Einrichtung 422 dient zum Vergleich der Hinweisadressen für die erste und für die letzte Verbindung. Wenn der Vergleich Übereinstimmung ergibt, sind alle Blöcke ausgelesen.
Ein Speicher ist jeweils in Blöcke unterteilt, und die Hinweisadresse für erste Verbindung in der Einrichtung 406 wird auf den ersten Block eingestellt, der auszulesen ist. Die Hinweisadresse für letzte Verbindung in der Einrichtung 408 wird auf den letzten auszulesenden Block gerichtet. Sobald die einzelnen Blöcke ausgelesen sind, wird die Hinweisadresse für erste Verbindung jeweils weitergeschaltet und in der Einrichtung 422 mit der Hinweisadresse für letzte Verbindung verglichen. Wenn der Vergleich in der Einrichtung 424 anzeigt, daß die Hinweisadressen gleich sind, wird die Simulation auf eine Zeit weitergeschaltet, welche am Ausgang der Einrichtung 426 ansteht.
Es sei noch erwähnt,-daß in jeder Situation, in der die Ausgangszustandsbedingungen für eine erste Torschaltung, die als Eingangsbedingungen für eine zweite Torschaltung dienen, sich nicht ändern, so daß die zweite Torschaltung keine geänderten Eingangsinformationen erhält, das System die zweite Torschaltung in der nächsten Simulations stufe nicht adressiert, um festzustellen, ob diese Torschaltung ihren Zustand geändert hat. In anderen Worten,
das erfindungsgemäße System erzielt eine hohe Effizienz dadurch, daß die Simulationsschritte lediglich an Torschaltungen oder Schaltkreiselementen durchgeführt werden, welche auf irgendeine Weise geänderte Eingangsbedingungen erhalten. Da bei der größeren Zahl von Zyklen, in welche jeder Zeitschritt der zu simulierenden Struktur unterteilt wird, lediglich für einige wenige Torschaltungen Zustandsänderungen bei jedem Schritt bewirktwerden, kann deshalb ein Baustein mit vielen Tausenden von Torschaltungen viel effizienter analysiert werden als wenn jede der Tausende von Torschaltungen bei jedem Durchlaufzyklus adressiert werden müßte. Deshalb ist es ein wesentliches Merkmal der vorliegenden Erfindung, daß für jede Zykluszeit im Durchlauf, die eine Abtastzeit des im Test befindlichen Bausteins repräsentiert, lediglich diejenigen Torschaltungen, bei denen Hinweisadressen eine Änderung im Eingangszustand anzeigen, im Hinblick auf eine Zustandsänderung ausgewertet werden müssen. Damit ist es möqlich, nur vergleichsweise wenig der Gesamtheit von Tbrsohaltungen in der zu simulierenden Einrichtung zu adressieren.
So sieht das vorliegende System vor, daß für eine gegenwärtige Abtastzeit gemeinsame Ereignisse aus dem entsprechenden Speicher entnommen und dann durch die Logikeinheiten in dem System ausgeführt werden. Neue Ereignisse, welche als Ergebnis einer Verarbeitung auftreten, werden nach der Verarbeitungsoperation in den Speicher rückgespeichert. Das System der Speicherung von Ereignissen nach der vorliegenden Erfindung ist bedeutend. Ereignisse werden in verbundenen Listen mit gemeinsamen Abtastzeiten gespeichert. Das bedeutet, daß die Listen für Ereignisse durch die gemeinsame Abtastzeit miteinander verbunden sind. Bei der Verarbeitung eines
Simulationsprogramms auf einem Universalrechner wird erhebliche Rechnerzeit durch das Auffinden, Verknüpfen und Ordnen von Ereignissen in gemeinsamen Abtastzeiten verbraucht. Bei der vorliegenden Erfindung werden Ereignisse in Blöcken oder verbundenen Listen gespeichert, so daß die Listen in- aufeinanderfolgender Reihe adressiert werden können, wie dies im Zusammenhang mit Fig. 4 für die spezielle Abtastzeit beim Betrieb beschrieben ist.
Um Torschaltungsereignisse auszuführen, wird der neue Eingangsstiftzustand der Torschaltung von dem Speicher empfangen und abgetastet, so daß der neue Ausgangsstiftzustand durch die Verarbeitung ausgewertet werden kann. Jeder neue Ausgangsstiftzustand wird in den Speicher zurückgespeichert. Torschaltungen ohne Änderung des Ausgangszustandes werden aus der Abtastung herausgenommen, da sie keinen neuen Eingangsstiftzustand für die nächstfolgende Torschaltung bereitstellen. So braucht die nächstfolgende Torschaltung bei der nächsten Zeitfolge in der Simulation nicht ausgewertet zu werden. Die neuen Ereignisse, welche durch das System gebildet werden, können über viele zukünftige Abtastzeiten verteilt werden, und zwar auf der Basis der entsprechenden Torschaltungslaufzeiten. In diesem Fall müssen für die Ereignisspeicherung Ereignisse, welche sich aus der neuen Ereignisbestimmung ergeben, in verschiedenen Speicherplätzen entsprechend der Torschaltungslaufzeit für die betroffene Torschaltung in einer Folge entsprechend der "Netzliste" des Systems gespeichert werden.
Einer der Vorteile der Erfindung besteht deshalb darin, daß die Simulationshardware in der Lage ist, zu jeder Abtastzeit der Verarbeitung eine unterschiedliche Zahl von Zustandsänderungen pro Zyklus der Abtastzeit anstelle einer festen Zahl von Zustandsänderungen pro Abtastzeit
aufzuweisen. Die dynamische Zuordnung eines Speichers für unterschiedliche Zahlen von Zustandsänderungen pro Simulationslauf ist ein entscheidendes Merkmal der Erfindunq in Verbindung mit der Speichersteuerung. Außerdem ist die Struktur der Erfindung gemäß den Ausführungs beispielen von Fig. 1A und 1B oder den Fig. 3, 4A und 4B derart, daß der modulare Aufbau es ermöglicht, über eine externe Zustandssteuerinformation während des Arbeitsablaufs zu jeder Abtastzeit die Zustandssteuerung oder die Zustandsfunktion einzelner Torschaltungen in der Simulationsprobe zu ändern. So können zur Simulierung eines Bausteins einer gegebenen Größe verschiedene Simulatoren einer vorgegebenen Standardgröße unter Steuerung durch einen Hauptprozessor zusammengeschaltet werden, wobei die Ergebnisse eines oder mehrerer dieser Simulatoren anderen Simulatoren zugeführt werden, um den Zustand verschiedener Torschaltungen, die in der "Netzliste" dieses Simulators enthalten sind, zu steuern.
Diese dynamische Fähigkeit , den Zustand einzelner Torschaltungen zu einzelnen Abtastzeiten über externe Information zu verändern ist ein wesentliches Merkmal der vorliegenden Erfindung.

Claims (5)

3333333 Patentansprüche
1. Logiksimulatorgerät zur Gültigkeitsprüfung der Struktur von Logikeinrichtungen,
gekennzeichnet durch
- einen Haupt-(rechner-)prozessor zum Einlesen von Daten in das Gerät und zum Auslesen von Daten aus dem Gerät,
- einen mit dem Hauptprozessor verbundenen "Netzlisten"-Speicher zur Aufnahme von Daten bezüglich der Schaltungselemente des zu prüfenden Bausteins,
- einen Modelltabellenspeicher zur Speicherung von die logische Funktion jeweils aller Schaltkreiselemente in der zu prüfenden Logikstruktur beschreibenden Informationen,
- ein erstes Register zum Auslesen der Inhalte des "Netzlisten"-Speichers und des Modelltabellenspeichers, welches mit dem "Netzlisten"-Speicher und dem Modelltabellenspeicher verbunden ist,
- ein mit dem ersten Register verbundenes zweites Register,
- einen mit dem zweiten Register verbundenen Zustandstabellenspeicher zur Aufnahme von Informationen bezüglich der "Netzliste" und der Modelltabelle,
- eine Modulringsteuerung zur Bereitstellung und zur Aufnahme von externen Zustandstabelleninformationen unter Steuerung durch den Hauptprozessor, welche mit dem zweiten Register verbunden ist und dieses im Sinne einer Änderung der Zustandstabelleninformationen für den Zustandstabellenspeicher von anderen Logikeinrichtungen unter Testbedingungen und unter der Steuerung des Hauptprozessor steuert,
- einen mit dem Zustandstabellenspeicher verbundenen
Logikauswerter zur Verwendung der "Netzlisten"-Information und der Modelltabelleninformation für die Erzeugung einer jeweiligen neuen Zustandstabelleninformation für die Logikelemente der zu prüfenden Logikstruktur, wobei der Logikauswerter eine Rückeingabe
zum Zustandstabellenspeicher vornimmt, um im Zustandstabellenspeicher zu jeder Simulationszeit jeweils die alte Zustandstabelleninformation durch eine neue Zustandstabelleninformation zu ersetzen,
- ein mit dem "Netzlisten"-Speicher verbundenes und diesen steuerndes Netzlistenadressregister,
- eine Speicher- und Taktgebersteuerung zur Steuerung
der Arbeitsweise des Gerätes in der Weise, daß es in einer vorgegebenen Zahl von Prüfzeiten in einem logischen Zyklus der zu prüfenden Logikstruktur arbeitet, wobei der "Netzlisten"-Speicher den gegenwärtigen Zustand einzelner Logikelemente enthält, wobei der
Modelltabellenspeicher Informationen bezüglich der
Arbeitsweise einzelner Logikelemente enthält, wobei
der Zustandstabellenspeicher und der Logikauswerter
den Zustand von Logikelementen auswerten, welche bei jedem PrüfVorgang eine andere Eingangsinformation erhalten, jedoch Zustandsänderungen nicht auswerten für Logikelemente, die keine Änderung ihrer Eingangsinformationen bei dem einzelnen PrüfVorgang erfahren, und wobei die Speicher- und Taktgebersteuerung in Abhängigkeit von der Modulringsteuerung zu geeigneten
Zeitpunkten innerhalb des logischen Zyklus Eingangsinformationen von dieser empfängt oder Eingangsinformationen an diese für externe Einrichtungen gibt.
2. Gerät zur Simulation der logischen Struktur eines Logikbausteins oder -netzwerks, gekennzeichnet durch
- einen mit einem Hauptprozessor verbundenen Auffäche-
rungstabellenspeicher zur Speicherung von "Netzlisten"-Informationen, Torschaltungslogikstruktur-Informationen und Torschaltungsverknüpfungs-Informationen,
- einen mit dem Auffächerungstabellenspeicher verbundenen Logikereigniszeit-Scheduler zur Aufnahme von Eingangsinformationen bezüglich der Logikstruktur und zur Bereitstellung von Ausgangsinformationen bezüglich Zustandsänderungen in den Logikelementen der Logikstruktur,
- einen Logikauswerte prozessor zur Durchführung der logischen Funktionen einzelner Logikelemente in der zu prüfenden Logikstruktur, welcher mit dem Logikereigniszeit-Scheduler verbunden ist, um Informationen bezüglich des gegenwärtigen Zustands einzelner Logikelemente zu empfangen und um Informationen bezüglich Zustandsänderungen in einzelnen Logikelementen bereitzustellen,
- einen mit dem Auffächerungstabellenspeicher verbundenen Torschaltungsausgangstabellenspeicher zur Aufnahme von Informationen bezüglich Logikelementen zu einem einzelnen PrüfZeitpunkt und bezüglich der Logikelemente, denen die genannten Logikelemente Zustandsänderungen bei späteren PrüfZeitpunkten verursachen,
- einen mit dem Auffächerungstabellenspeicher und dem Torschaltungsausgangstabellenspeicher verbundenen Zustandstabellenspeicher zur Speicherung von Informationen bezüglich des alten Zustands eines Logikelementes und des neuen Zustands eines Logikelementes, welcher dessen alten Zustand ersetzt, wobei der Zustandstabellenspeicher mit dem Logikauswerteprozessor verbunden ist, welcher Informationen bezüglich des
neuen Zustandes von Logikelementen bereitstellt,
- einen mit dem Auffächerungstabellenspeicher verbundenen Logikmodelltabellenspeicher zum Halten von Informationen bezüglich der mit Logikelementen auszuführenden logischen Funktionen und zur Aufnahme von Informationen bezüglich eines jeweiligen Logikelementes unter Berücksichtigung der Informationen von dem Auffächerungstabellenspeicher, wobei er mit dem Logikauswerteprozessor verbunden ist, um Informationen bezüglich der unter Testbedingungen zu einem bestimmten PrüfZeitpunkt von einer bestimmten Torschaltung auszuführenden logischen Funktion bereitzustellen,
- wobei das Gerät Operationen an Logikelementen zu einzelnen bestimmten PrüfZeitpunkten unter Prüfbedingungen durchführt und Informationen bezüglich Zustandsänderungen an Logikelementen, welche mit den unter Testbedingungen arbeitenden Elementen verknüpft sind, bereitstellt und wobei das Gerät für jeden Prüfzeitzyklus lediglich logische Auswerteschritte an solchen Logikelementen vollzieht, welche Eingangsänderungen als Ergebnis von Zustandsänderungen von (anderen) Logikelementen zu einem früheren Zeitpunkt erfahren, jedoch keinerlei logische Auswertefunktionen an Logikelementen vornimmt, welche keine Änderung ihrer Eingangs-Zustandsinformation von einem (anderen) Logikelement aus einem früheren Zeitpunkt erfahren.
3. Gerät nach Anspruch 2, dadurch gekennzeichnet, daß der Auswerteprozessor folgende Einrichtungen enthält:
- ein Simulations-Zeit-Zustands-Register,
- einen mit dem Simulations-Zeit-Zustands-Register verbundenen ersten Speicher für volle erste Verknüpfung,
- einen mit dem Simulations-Zeit-Zustands-Register verbundenen zweiten Speicher für den Auflistungszustand der ersten Verknüpfung,
- einen mit dem Simulations-Zeit-Zustands-Register verbundenen dritten Speicher für die Auflistung der letzten Verknüpfung,
- je ein mit dem ersten, zweiten bzw. dritten Speicher verbundenes erstes, zweites und drittes Register, - einen mit dem zweiten und dem dritten Register verbundenen Komparator, welcher ein Ausgangssignal erzeugt, wenn der zweite Speicher für den Auflistungszustand der ersten Verknüpfung von der selben Adresse adressiert wird wie der dritte Speicher für die Auflistung der letzten Verknüpfung,
- und eine mit dem Ausgang des Komparators sowie mit dem ersten Register verbundene ODER-Torschaltung zur Aufnahme von Informationen bezüglich des ersten Speichers für volle erste Verknüpfung, wobei dann , wenn der Adressenkomparator bei der letzten Adresse einer Simulationszeit angekommen ist, die Adressensimulations zeit auf die nächste Simulationsprüfzeit in der Reihenfolge weitergeschaltet wird.
4. Gerät nach Anspruch 3, gekennzeichnet durch
- einen den zweiten und den dritten Speicher verbindenden Bus,
- einen mit dem Bus verbundenen Speicher für die letzte Verknüpfung zur Identifizierung der jeweils nächsten Verknüpfungsadresse für die jeweils nächste Simulations zeit des Gerätes,
- einen mit dem Bus verbundenen Speicher mit seriellem Zugriff zur Identifizierung einer leeren Verknüpfungsadresse und
- eine Steuereinrichtung zur Steuerung des Speichers für die letzte Verknüpfung und des Speichers mit seriellem Zugriff. 5
5. Gerät nach Anspruch 2, dadurch gekennzeichnet, daß das Gerät mit anderen ähnlichen Geräten verknüpfbar ist, um in dem "Netzlisten"-Speicher enthaltene Zustandsänderungsinformationen am Eingang von Logikelementen bei verschiedenen Zyklen von Prüfzeiten aufzunehmen, und daß es eine Eingabeeinrichtung zur Bereitstellung einer zweiten Eingabe von einer externen Quelle für das zweite Register und die Modulringsteuerung besitzt, womit das zweite Register derart steuerbar ist, daß es eine Eingangsinformation von der externen Quelle zu geeigneten Zeitpunkten im Prüfzyklus zu empfangen vermag.
DE19833338333 1982-10-22 1983-10-21 Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur Withdrawn DE3338333A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/436,162 US4527249A (en) 1982-10-22 1982-10-22 Simulator system for logic design validation

Publications (1)

Publication Number Publication Date
DE3338333A1 true DE3338333A1 (de) 1984-04-26

Family

ID=23731365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833338333 Withdrawn DE3338333A1 (de) 1982-10-22 1983-10-21 Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur

Country Status (6)

Country Link
US (1) US4527249A (de)
JP (1) JPS5995657A (de)
AU (1) AU2014583A (de)
DE (1) DE3338333A1 (de)
FR (1) FR2535087A1 (de)
GB (1) GB2131211A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19740543C1 (de) * 1997-09-15 1999-07-15 Siemens Nixdorf Inf Syst Verfahren zum Testen eines integrierten Schaltkreises sowie Verfahren und Datenverarbeitungsanlage zum Erzeugen von Testdaten

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8309692D0 (en) * 1983-04-09 1983-05-11 Int Computers Ltd Verifying design of digital electronic systems
WO1985002033A1 (en) * 1983-11-03 1985-05-09 Prime Computer, Inc. Digital system simulation method and apparatus
US4628471A (en) * 1984-02-02 1986-12-09 Prime Computer, Inc. Digital system simulation method and apparatus having two signal-level modes of operation
US4814983A (en) * 1984-03-28 1989-03-21 Daisy Systems Corporation Digital computer for implementing event driven simulation algorithm
US4751637A (en) * 1984-03-28 1988-06-14 Daisy Systems Corporation Digital computer for implementing event driven simulation algorithm
US4633417A (en) * 1984-06-20 1986-12-30 Step Engineering Emulator for non-fixed instruction set VLSI devices
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 論理シミユレ−タ
US5056014A (en) * 1985-02-04 1991-10-08 Lockheed Sanders, Inc. Network simulation system
US4694411A (en) * 1985-02-04 1987-09-15 Sanders Associates, Inc. Simulation apparatus and method
US4725970A (en) * 1985-02-05 1988-02-16 Sanders Associates, Inc. Simulation device
US4937827A (en) * 1985-03-01 1990-06-26 Mentor Graphics Corporation Circuit verification accessory
US4715035A (en) * 1985-05-31 1987-12-22 Siemens Aktiengesellschaft Method for the simulation of an error in a logic circuit and a circuit arrangement for implementation of the method
US4931722A (en) * 1985-11-07 1990-06-05 Control Data Corporation Flexible imbedded test system for VLSI circuits
US4763289A (en) * 1985-12-31 1988-08-09 International Business Machines Corporation Method for the modeling and fault simulation of complementary metal oxide semiconductor circuits
US4769817A (en) * 1986-01-31 1988-09-06 Zycad Corporation Concurrent fault simulation for logic designs
US4937770A (en) * 1986-02-07 1990-06-26 Teradyne, Inc. Simulation system
JPS62182939A (ja) * 1986-02-07 1987-08-11 Hitachi Ltd 情報処理装置の論理シミユレ−シヨン方法
CA1271259A (en) * 1986-02-07 1990-07-03 Teradyne, Inc. Simulation system
US4744084A (en) * 1986-02-27 1988-05-10 Mentor Graphics Corporation Hardware modeling system and method for simulating portions of electrical circuits
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
JPS62251843A (ja) * 1986-04-25 1987-11-02 Hitachi Ltd 論理シミユレ−シヨン方法および装置
US4831524A (en) * 1986-06-24 1989-05-16 Westinghouse Electric Corp. Logic diagram compiler/executor
US5126966A (en) * 1986-06-25 1992-06-30 Ikos Systems, Inc. High speed logic simulation system with stimulus engine using independent event channels selectively driven by independent stimulus programs
US4787061A (en) * 1986-06-25 1988-11-22 Ikos Systems, Inc. Dual delay mode pipelined logic simulator
US4787062A (en) * 1986-06-26 1988-11-22 Ikos Systems, Inc. Glitch detection by forcing the output of a simulated logic device to an undefined state
JPH07120359B2 (ja) * 1986-10-21 1995-12-20 日本電気株式会社 ハードウェアシミュレータにおけるシミュレーション方法
US4792913A (en) * 1986-11-03 1988-12-20 Grumman Aerospace Corporation Simulator for systems having analog and digital portions
US4791578A (en) * 1986-12-30 1988-12-13 Eta Systems, Inc. Logic gate system design
US4866663A (en) * 1987-02-13 1989-09-12 Sanders Associates, Inc. Simulation system
JPS63204441A (ja) * 1987-02-20 1988-08-24 Fujitsu Ltd 論理シミユレ−シヨン専用プロセツサの処理方式
US4827427A (en) * 1987-03-05 1989-05-02 Hyduke Stanley M Instantaneous incremental compiler for producing logic circuit designs
US4907180A (en) * 1987-05-04 1990-03-06 Hewlett-Packard Company Hardware switch level simulator for MOS circuits
US5047971A (en) * 1987-06-23 1991-09-10 Intergraph Corporation Circuit simulation
US4873656A (en) * 1987-06-26 1989-10-10 Daisy Systems Corporation Multiple processor accelerator for logic simulation
US4872125A (en) * 1987-06-26 1989-10-03 Daisy Systems Corporation Multiple processor accelerator for logic simulation
US4916647A (en) * 1987-06-26 1990-04-10 Daisy Systems Corporation Hardwired pipeline processor for logic simulation
DE3853860D1 (de) * 1987-09-22 1995-06-29 Siemens Ag Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen.
US4901260A (en) * 1987-10-28 1990-02-13 American Telephone And Telegraph Company At&T Bell Laboratories Bounded lag distributed discrete event simulation method and apparatus
US4868770A (en) * 1987-12-02 1989-09-19 Analogy, Inc. Simulation results enhancement method and system
US4924430A (en) * 1988-01-28 1990-05-08 Teradyne, Inc. Static timing analysis of semiconductor digital circuits
JP2583949B2 (ja) * 1988-03-10 1997-02-19 松下電器産業株式会社 論理シミュレーション方法と論理シミュレーション装置
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine
US5212783A (en) * 1988-06-13 1993-05-18 Digital Equipment Corporation System which directionally sums signals for identifying and resolving timing inconsistencies
US5247468A (en) * 1988-09-27 1993-09-21 Tektronix, Inc. System for calculating and displaying user-defined output parameters describing behavior of subcircuits of a simulated circuit
US5109353A (en) 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5572708A (en) * 1989-02-28 1996-11-05 Nec Corporation Hardware simulator capable of dealing with a description of a functional level
JP2522541B2 (ja) * 1989-03-24 1996-08-07 三菱電機株式会社 シミュレ―ション装置及びシミュレ―ション方法
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
US5081601A (en) 1989-09-22 1992-01-14 Lsi Logic Corporation System for combining independently clocked simulators
US5125098A (en) * 1989-10-06 1992-06-23 Sanders Associates, Inc. Finite state-machine employing a content-addressable memory
US5053991A (en) * 1989-10-06 1991-10-01 Sanders Associates, Inc. Content-addressable memory with soft-match capability
US5210699A (en) * 1989-12-18 1993-05-11 Siemens Components, Inc. Process for extracting logic from transistor and resistor data representations of circuits
KR0158887B1 (ko) * 1990-01-12 1999-02-18 이노우에 키요시 논리 모의실험기
US5210700A (en) * 1990-02-20 1993-05-11 International Business Machines Corporation Automatic delay adjustment for static timing analysis
US5327361A (en) * 1990-03-30 1994-07-05 International Business Machines Corporation Events trace gatherer for a logic simulation machine
US5220512A (en) * 1990-04-19 1993-06-15 Lsi Logic Corporation System for simultaneous, interactive presentation of electronic circuit diagrams and simulation data
US5353433A (en) * 1990-09-06 1994-10-04 Digital Equipment Corporation Method and apparatus for organizing and analyzing timing information
US5500808A (en) * 1991-01-24 1996-03-19 Synopsys, Inc. Apparatus and method for estimating time delays using unmapped combinational logic networks
EP0508619A2 (de) * 1991-04-11 1992-10-14 Hewlett-Packard Company Stimulus-Schnittstelle mit bidirektionalem Sockel für einen Logiksimulator
US5499192A (en) * 1991-10-30 1996-03-12 Xilinx, Inc. Method for generating logic modules from a high level block diagram
US5418974A (en) * 1992-10-08 1995-05-23 International Business Machines Corporation Circuit design method and system therefor
US5477474A (en) * 1992-10-29 1995-12-19 Altera Corporation Computer logic simulation with dynamic modeling
EP0600608B1 (de) * 1992-10-29 1999-12-22 Altera Corporation Verfahren zum Prüfen von Entwürfen für programmierbare Logikschaltungen
EP0598149B1 (de) * 1992-11-12 2000-01-19 Fujitsu Limited Hardware Logiksimulator
US5475695A (en) * 1993-03-19 1995-12-12 Semiconductor Diagnosis & Test Corporation Automatic failure analysis system
JP3083220B2 (ja) * 1993-08-09 2000-09-04 株式会社日立製作所 設計支援システム
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5515384A (en) * 1994-03-01 1996-05-07 International Business Machines Corporation Method and system of fault diagnosis of application specific electronic circuits
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5856933A (en) * 1994-06-03 1999-01-05 University Of South Florida System and method for digital simulation of an electrical circuit
US5752000A (en) * 1994-08-02 1998-05-12 Cadence Design Systems, Inc. System and method for simulating discrete functions using ordered decision arrays
US5696942A (en) * 1995-03-24 1997-12-09 Sun Microsystems, Inc. Cycle-based event-driven simulator for hardware designs
US5673295A (en) * 1995-04-13 1997-09-30 Synopsis, Incorporated Method and apparatus for generating and synchronizing a plurality of digital signals
US6053948A (en) * 1995-06-07 2000-04-25 Synopsys, Inc. Method and apparatus using a memory model
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5809283A (en) * 1995-09-29 1998-09-15 Synopsys, Inc. Simulator for simulating systems including mixed triggers
US5784593A (en) * 1995-09-29 1998-07-21 Synopsys, Inc. Simulator including process levelization
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5761488A (en) * 1996-06-13 1998-06-02 International Business Machines Corporation Logic translation method for increasing simulation emulation efficiency
FR2759826B1 (fr) * 1997-02-14 1999-12-17 Sgs Thomson Microelectronics Procede de simulation precise de circuits logiques
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
US6397170B1 (en) 1998-08-18 2002-05-28 International Business Machines Corporation Simulation based power optimization
US6714902B1 (en) 2000-03-02 2004-03-30 Cadence Design Systems, Inc. Method and apparatus for critical and false path verification
US7035784B1 (en) * 2000-09-22 2006-04-25 Lucent Technologies Inc. Data-driven method simulator and simulation process
US6704917B1 (en) * 2000-11-21 2004-03-09 Micro Industries Corporation Table driven design system and method
US6889199B2 (en) * 2000-11-30 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for encoding and generating transaction-based stimulus for simulation of VLSI circuits
US7302670B2 (en) * 2000-12-21 2007-11-27 Bryan Darrell Bowyer Interactive interface resource allocation in a behavioral synthesis tool
JP2002366602A (ja) * 2001-04-06 2002-12-20 Seiko Epson Corp ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
US7310787B2 (en) * 2002-03-08 2007-12-18 Shiv Prakash Array transformation in a behavioral synthesis tool
US6732338B2 (en) 2002-03-20 2004-05-04 International Business Machines Corporation Method for comprehensively verifying design rule checking runsets
US7219316B2 (en) * 2003-10-23 2007-05-15 International Business Machines Corporation Multi-valued or single strength signal detection in a hardware description language
US7799273B2 (en) 2004-05-06 2010-09-21 Smp Logic Systems Llc Manufacturing execution system for validation, quality and risk assessment and monitoring of pharmaceutical manufacturing processes
US20060026543A1 (en) * 2004-07-29 2006-02-02 Texas Instruments Incorporated Accurate timing analysis of integrated circuits when combinatorial logic offers a load
US20060044261A1 (en) * 2004-09-02 2006-03-02 Kao-Cheng Hsieh Pointing input device imitating inputting of hotkeys of a keyboard
US7735050B2 (en) * 2006-02-09 2010-06-08 Henry Yu Managing and controlling the use of hardware resources on integrated circuits
US8234624B2 (en) 2007-01-25 2012-07-31 International Business Machines Corporation System and method for developing embedded software in-situ
US10527715B2 (en) 2016-06-20 2020-01-07 Rohde & Schwarz Gmbh & Co. Kg Radar target stimulation device and method
CN112416686A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 芯片的验证方法、验证装置以及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1389319A (en) * 1971-11-15 1975-04-03 Ibm Data processing system
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4293919A (en) * 1979-08-13 1981-10-06 International Business Machines Corporation Level sensitive scan design (LSSD) system
GB2070300B (en) * 1980-02-27 1984-01-25 Racal Automation Ltd Electrical testing apparatus and methods
DE3030299A1 (de) * 1980-08-09 1982-04-08 Ibm Deutschland Gmbh, 7000 Stuttgart Schieberegister fuer pruef- und test-zwecke
US4450560A (en) * 1981-10-09 1984-05-22 Teradyne, Inc. Tester for LSI devices and memory devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19740543C1 (de) * 1997-09-15 1999-07-15 Siemens Nixdorf Inf Syst Verfahren zum Testen eines integrierten Schaltkreises sowie Verfahren und Datenverarbeitungsanlage zum Erzeugen von Testdaten

Also Published As

Publication number Publication date
GB2131211A (en) 1984-06-13
GB8326858D0 (en) 1983-11-09
US4527249A (en) 1985-07-02
JPS5995657A (ja) 1984-06-01
FR2535087A1 (fr) 1984-04-27
AU2014583A (en) 1984-05-03

Similar Documents

Publication Publication Date Title
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE2714805C2 (de)
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
EP0010173B1 (de) Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE3437511A1 (de) Integrationsschaltung fuer grossschaltkreise, die in isochrone gebiete unterteilt ist, verfahren zum maschinengesteuerten entwerfen einer derartigen schaltung und verfahren zum maschinengesteuerten pruefen einer derartigen schaltung
DE102007042752B4 (de) Verfahren zur Analyse der Zuverlässigkeit technischer Anlagen mit Hilfe von physikalischen Modellen
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE3606650A1 (de) Hardware logik-simulator
DE2726753A1 (de) Interface-adapter
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE19617976A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE2912073C2 (de)
DE2508799A1 (de) Digitale logische grundschaltung fuer lernmaschinen
DE69533567T2 (de) Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
DE4005042A1 (de) Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE3532484A1 (de) Anordnung zur modelldarstellung einer physikalischen elektrischen komponente in einer elektrischen logiksimulation
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
AT501880B1 (de) Speicherprogrammierbare steuerung
DE60001450T2 (de) Vorrichtung zur funktionellen Widergabe einer spezifischen integrierten Halbleiterschaltung und deren Verwendung als Emulationsvorrichtung
DE3422287A1 (de) Pruefanordnung fuer digitalschaltungen
DE102009019442A1 (de) Testdatengenerator

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: HENKEL, G., DR.PHIL. FEILER, L., DR.RER.NAT. HAENZ

8139 Disposal/non-payment of the annual fee