DE3338333A1 - Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur - Google Patents
Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstrukturInfo
- 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
Links
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)
- Tests Of Electronic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
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:
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
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
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.
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)
1. Logiksimulatorgerät zur Gültigkeitsprüfung der
Struktur von Logikeinrichtungen,
gekennzeichnet durch
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,
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
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
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.
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)
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)
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 |
US4751637A (en) * | 1984-03-28 | 1988-06-14 | Daisy Systems Corporation | Digital computer for implementing event driven simulation algorithm |
US4814983A (en) * | 1984-03-28 | 1989-03-21 | 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 | 論理シミユレ−タ |
US4694411A (en) * | 1985-02-04 | 1987-09-15 | Sanders Associates, Inc. | Simulation apparatus and method |
US5056014A (en) * | 1985-02-04 | 1991-10-08 | Lockheed Sanders, Inc. | Network simulation system |
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 |
CA1271259A (en) * | 1986-02-07 | 1990-07-03 | Teradyne, Inc. | Simulation system |
US4937770A (en) * | 1986-02-07 | 1990-06-26 | Teradyne, Inc. | Simulation system |
JPS62182939A (ja) * | 1986-02-07 | 1987-08-11 | Hitachi Ltd | 情報処理装置の論理シミユレ−シヨン方法 |
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 |
US4945503A (en) * | 1986-10-21 | 1990-07-31 | Nec Corporation | Hardware simulator capable of reducing an amount of information |
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 |
US4916647A (en) * | 1987-06-26 | 1990-04-10 | Daisy Systems Corporation | Hardwired pipeline processor for logic 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 |
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 | 三菱電機株式会社 | シミュレ―ション装置及びシミュレ―ション方法 |
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 |
US5353243A (en) * | 1989-05-31 | 1994-10-04 | Synopsys Inc. | Hardware modeling system and method of use |
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 |
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 |
US5819065A (en) * | 1995-06-28 | 1998-10-06 | Quickturn Design Systems, Inc. | System and method for emulating memory |
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 | ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム |
WO2003077184A1 (en) * | 2002-03-08 | 2003-09-18 | Mentor Graphics Corporation | 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)
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 |
-
1982
- 1982-10-22 US US06/436,162 patent/US4527249A/en not_active Expired - Lifetime
-
1983
- 1983-10-07 GB GB08326858A patent/GB2131211A/en not_active Withdrawn
- 1983-10-13 AU AU20145/83A patent/AU2014583A/en not_active Abandoned
- 1983-10-21 FR FR8316833A patent/FR2535087A1/fr not_active Withdrawn
- 1983-10-21 DE DE19833338333 patent/DE3338333A1/de not_active Withdrawn
- 1983-10-21 JP JP58196265A patent/JPS5995657A/ja active Pending
Cited By (1)
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 |
---|---|
FR2535087A1 (fr) | 1984-04-27 |
GB8326858D0 (en) | 1983-11-09 |
JPS5995657A (ja) | 1984-06-01 |
AU2014583A (en) | 1984-05-03 |
US4527249A (en) | 1985-07-02 |
GB2131211A (en) | 1984-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
DE3856079T2 (de) | Verfahren für einen Blockdiagramm-Simulator | |
DE69704624T2 (de) | System und verfahren für dynamische datenreferenz in einer generischen datenaustauschumgebung | |
DE69033360T2 (de) | Simulation von ausgewählten Logik-Schaltungsentwürfen | |
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 | |
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 | |
DE68923086T2 (de) | Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test. | |
DE69218941T2 (de) | Neuronale netzwerk architektur | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE3606650A1 (de) | Hardware logik-simulator | |
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 | |
DE4005042A1 (de) | Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit | |
DE3780163T2 (de) | Programmierbare folgesteuerung zur steuerung von schnellen, komplizierten arbeitsgaengen. | |
DE10324594A1 (de) | Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung | |
DE69122001T2 (de) | Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle | |
DE69022783T2 (de) | Verfahren zur Unterstützung des Benutzers eines Rechnersystems und Vorrichtung zur Durchführung des besagten Verfahrens. | |
DE69525438T2 (de) | Datenverarbeitungsgerät zur simulation einer asynchronen logikschaltung |
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 |