DE60009856T2 - Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem - Google Patents

Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem Download PDF

Info

Publication number
DE60009856T2
DE60009856T2 DE60009856T DE60009856T DE60009856T2 DE 60009856 T2 DE60009856 T2 DE 60009856T2 DE 60009856 T DE60009856 T DE 60009856T DE 60009856 T DE60009856 T DE 60009856T DE 60009856 T2 DE60009856 T2 DE 60009856T2
Authority
DE
Germany
Prior art keywords
les
integrated circuit
register
reconfigurable
sampling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60009856T
Other languages
English (en)
Other versions
DE60009856D1 (de
Inventor
Frederic Reblewski
Olivier Lepape
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.)
Mentor Graphics Corp
Original Assignee
Mentor Graphics 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23601592&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60009856(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Mentor Graphics Corp filed Critical Mentor Graphics Corp
Publication of DE60009856D1 publication Critical patent/DE60009856D1/de
Application granted granted Critical
Publication of DE60009856T2 publication Critical patent/DE60009856T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318552Clock circuits details
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Logic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

  • Diese Erfindung bezieht sich auf das Gebiet von Emulationssystemen im Allgemeinen und insbesondere auf eine integrierte Schaltung für ein Emulationssystem gemäß dem Oberbegriff des Anspruchs 1.
  • Emulationssysteme zum Emulieren von Schaltungsentwürfen sind im Stand der Technik bekannt. Üblicherweise werden Emulationssysteme nach dem Stand der Technik unter Verwendung universell einsetzbarer benutzerprogrammierbarer Gate-Arrays (Gatterfelder, FPGAs) ohne integrierte Fehlersucheinrichtung verwirklicht. Ein zu emulierender Schaltungsentwurf wird mit dem Emulationssystem "realisiert", indem eine "formale" Beschreibung des Schaltungsentwurfs kompiliert und der Schaltungsentwurf auf die logischen Elemente (LEs) (auch bekannt als kombinatorische Logikblöcke (combinatorial logic Blocks, CLBs)) der FPGAs abgebildet wird. Diese universell einsetzbaren FPGAs zeigen eine Reihe von Nachteilen, soweit ihr Einsatz in Emulationssystemen betroffen ist. Erstens sind die Signalzustände an den in das Innere der FPGAs abgebildeten individuellen Knoten nicht beobachtbar, daher der Ausdruck "verdeckte" Knoten. Zur Beobachtung der Signalzustände dieser "verdeckten" Knoten ist eine Rekonfigurierung der FPGAs erforderlich, die eine sehr zeitaufwendige Rekompilierung erfordert, um diese Signale außerhalb der FPGAs an einen Logikanalysator herauszuleiten. Zusätzlich wird üblicherweise eine Anzahl der FPGA-Eingangs-(Ausgangsanschlüsse (I(Os) zur Weiterleitung dieser Signale an eine/n Anschlussbuchse/Knoten (port/node) verbraucht, die/der von einem Testsystem, z. B. einem Logikanalysator, beobachtet (verfolgt) werden kann. Darüber hinaus wird durch die zusätzlichen, über Leitwege zu führenden Signale die Signalleitwegüberlastung weiter erhöht. Schließlich ist es bei hinsichtlich der Zeitgebung empfindlichen Anwendungen schwierig, herauszufinden, ob die Signale an diesen "verdeckten " Knoten genau zur richtigen Zeit ausgelesen wurden oder nicht, wenn die Signale ansprechend auf das Auftreten bestimmter Ereignisse auszulesen sind, weil die Signale aus den FPGAs herauszuleiten sind, bevor die Lesetriggerereignisse er fasst werden können. Da die Emulatoren komplexer wurden, mussten auch das Netzwerk von FPGAs und die, verbindenden Signalbahnen (traces) komplexer werden, was die oben beschriebenen Probleme noch verschlimmert. Da die Zeit, die zur Signalbahnüberwachung erforderlich ist, mit steigender Komplexität so ansteigt, dass Grenzen erreicht werden, wird die Frequenz, mit der die Emulation durchgeführt werden kann, auf nicht akzeptierbare Niveaus herabgesetzt.
  • Bei einer bekannten integrierten Schaltung für ein Emulationssystem des obigen Typs (US-A-S 777 489) ist das Vollabtastregister dazu bestimmt, eine umfassende Abtastung der Mehrzahl LEs durchzuführen. Bei zunehmender Größe der integrierten Schaltungen wird eine vollständige Abtastung aller Ausgangswerte der LEs bei einem vernünftigen Leistungsniveau zunehmend schwierig und sogar unmöglich.
  • Die US-A-S 636 228 beschreibt Blöcke von kombinatorischer Logik, die sandwichartig zwischen Abtastregistern angeordnet sind. Im Normalbetrieb werden die Abtastregister dazu verwendet, Daten von einem Block der kombinatorischen Logik zu einem anderen weiterzugeben. Im Abtastmodus werden in diesen Registern Daten aufgestellt oder zuvor erfasste Daten aus diesen Registern ausgelesen. Eine Struktur dieses Typs ist für ein Emulationssystem nicht von Nutzen, in dem die Verbindung zwischen logischen Elementen während der Emulation entsprechend dem emulierten Schaltungsentwurf aufrechterhalten werden muss.
  • Die US-A-5 068 603 beschreibt in vergleichbarer Weise zwischen logischen Funktionsblöcken angeordnete Abtastungs-Testketten. im Normalverwendungsmodus sind diese Abtastungs-Testketten für die Signale, die sich zwischen den logischen Funktionsblöcken bewegen, durchlässig. Im Testmodus jedoch unterbrechen die Abtastungs-Testketten den normalen Signalleitweg zwischen den logischen Funktionsblöcken. Dies widerspricht wiederum den Erfordernissen eines Emulationssystems.
  • Es besteht also ein Bedürfnis nach einer integrierten Schaltung für ein Emulationssystem, die den Zugriff auf zuvor verdeckte Knoten und Signalbahnen erleichtert, wobei die Notwendigkeit einer Rekonfiguration reduziert wird und wodurch die Emulation bei akzeptablen Emulationsfrequenzen erleichtert wird.
  • Diese und andere Ziele werden durch die Erfindung gemäß dem kennzeichnenden Teil des Anspruchs 1 erreicht.
  • Die Erfindung beschreibt eine rekonfigurierbare integrierte Schaltung (IC) mit integrierten Fehlersucheinrichtungen für ein Emulationssystem. Insbesondere wird als eine erste Ausführungsform der Erfindung eine integrierte Schaltung beschrieben, die eine Mehrzahl logische Elemente (LEs) enthält, die jeweils eine Mehrzahl Ausgänge und ein Teilabtastregister (partial scan register) aufweisen. Die Mehrzahl LEs ist dazu ausgelegt, eine Mehrzahl Ausgangssignale ansprechend auf eine entsprechend an die LEs angelegte Mehrzahl Eingangssignale zu erzeugen. Das Teilabtastregister ist rekonfigurierbarerweise mit Ausgewählten der LEs verbunden, und zwar so, dass bei Freischaltung das Teifabtastregister bestimmungsgemäß eine Aufzeichnung von Signalzustandswerten von durch die Ausgewählten LEs emulierten Schaltungselementen in einem bestimmten Taktzyklus eines Betriebstakts aufnimmt und ausgibt, wobei das Teilabtastregister durch Anlegen eines Abtasttaktes freigeschaltet wird, der in geeigneter Weise in Bezug zu dem Betriebstakt skaliert ist.
  • Die Erfindung wird anhand von Ausführungsbeispielen erläutert, die nicht einschränkend sind und durch die beiliegenden Zeichnungen illustriert sind, in denen gleiche Bezugszeichen einander entsprechende Elemente bezeichnen, wobei:
  • 1 die Hauptfunktionsblöcke der erfindungsgemäßen rekonfigurierbaren Schaltung illustriert;
  • 2 ein Ausführungsbeispiel für das LE-Array aus 1 und ein Ausführungsbeispiel für das aufgerüstete LE illustriert;
  • 3 ein Ausführungsbeispiel jeweils für die Steuerlogik und die Eingangsauswahleinrichtung der Master-Slave-Halteeinrichtungen aus 1 Illustriert;
  • 4a4b ein Ausführungsbeispiel des Zwischen-LE-Kreuzschienennetzwerks (inter-LE crossbar network) aus 1 illustrieren;
  • 5 ein Ausführungsbeispiel des Kreuzschienennetzwerks zwischen den rekonfigurierbaren Schaltungen der Stufe0 (inter-reconfigurable circuit crossbar network stage0) aus 1 illustriert;
  • 6 ein Ausführungsbeispiel der verknüpften Lese-/Schreibeinrichtungen des Kontextbusses aus 1 illustriert;
  • 7a7b zwei beispielhafte Zeitgebungsdiagramme sind, die das Auslesen eines Werts aus einem LE und das Einschreiben eines Werts in ein LE illustrieren;
  • 8a ein Ausführungsbeispiel eines Vollabtastregisters illustriert, das für die integrierte Schaltung aus 1 geeignet ist;
  • 8b ein Blockdiagramm eines beispielhaften dynamisch rekonfigurierbaren Netzwerks und Teilabtastregisters gemäß der Erfindung als ein erfindungsgemäßes Ausführungsbeispiel illustriert, das geeignet ist zum Einsatz in der integrierten Schaltung aus 1;
  • 9 ein Ausführungsbeispiel für eine zum Einsatz in der integrierten Schaltung aus 1 geeignete Triggerschaltung zeigt;
  • 10 ein Blockdiagramm eines beispielhaften Emulationssystems als ein Ausführungsbeispiel zeigt, das erfindungsgemäß ausgestaltet ist; und
  • 11 ein Blockdiagramm einer beispielhaften rekonfigurierbaren Schaltung gemäß der Erfindung als weiteres erfindungsgemäßes Ausführungsbeispiel illustriert.
  • In der folgenden Beschreibung werden zur Erläuterung bestimmte Zahlen, Materialien und Konfigurationen angegeben, um ein tiefgehendes Verständnis der Erfindung zu ermöglichen. Es ist für den Fachmann jedoch ohne weiteres erkennbar, dass die Erfindung auch ohne diese bestimmten Einzelheiten verwirklicht werden kann. An anderen Stellen werden allgemein bekannte Merkmale nicht erläutert oder vereinfacht, um die Erfindung nicht in den Hintergrund treten zu lassen.
  • Eine Bezugnahme auf "ein Ausführungsbeispiel" oder "eine Ausführungsform" in der Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die im Zusammenhang mit dem Ausführungsbeispiel beschrieben wird, bei zumindest einer Ausführungsform der Erfindung vorliegt. Das Auftauchen des Ausdrucks "bei einem Ausführungsbeispiel" oder "bei einer Ausführungsform" in den verschiedenen Stellen dieser Beschreibung bedeutet damit nicht notwendigerweise einen Bezug auf die gleiche Ausführungsform.
  • In 1 ist ein Blockdiagramm illustriert, das eine beispielhafte rekonfigurierbare integrierte Schaltung 100 gemäß der Erfindung darstellt. Abgesehen von den erfindungsgemäßen Aspekten soll die rekonfigurierbare Schaltung 100, wie sie sich aus der folgenden Beschreibung ergibt, eine Beliebige aus einer Vielzahl bekannter rekonfigurierbarer integrierter Schaltungen darstellen. Bei einem Ausführungsbeispiel ist die rekonfigurierbare Schaltung 100 z. B. eine rekonfigurierbare Schaltung, die so aufgerüstet ist, dass sie der Erfindung entspricht. Bei einem erfindungsgemäßen Ausführungsbeispiel ist die rekonfigurierbare Schaltung 100 auf einer einzigen integrierten Schaltung (oder einem Chip) angeordnet und weist ein Array aufgerüsteter LEs 102 auf. Das Array aufgerüsteter LEs 102 wird eingesetzt zum "Realisieren" verschiedener Elemente von Schaltungsentwürfen und beinhaltet innovative Fehlersucheigenschaften.
  • Ferner weist die rekonfigurierbare Schaltung 100 vorteilhafterweise einen On-Chip-Kontextbus 106, ein Abtastregister 108 und eine Triggerschaltung 110 auf, die wie dargestellt mit den aufgerüsteten LEs 102 verbunden sind. Wie im Folgenden noch in weiteren Einzelheiten beschrieben, wird der Kontextbus 106 verwendet zum Eingeben und Ausgeben von Werten in die und aus den LEs, während das Abtastregister 108 und die Triggerschaltung 110 verwendet werden zum Ausgeben einer vollständigen Ablaufverfolgungsdatengeschichte (complete trace data history) bzw. von Triggereingangssignalen für die rekonfigurierbare Schaltung 100. Wie im Folgenden noch näher beschrieben wird, weist die dargestellte erfindungsgemäße rekonfigurierbare Schaltung 100 ein dynamisch rekonfigurierbares Netzwerk 137 und ein Teilabtastregister 135 auf, die verwendet werden zum selektiven Ausgeben einer Teilablaufverfolgungsgeschichte (partial trace history) ausgewählter LEs 102 der rekonfigurierbaren Schaltung 100. Im Unterschied zu konventionellen Emulationsschaltungen, die lediglich umfassende Abtastausgangssignale aus statisch definierten "sichtbaren" Knoten innerhalb der Schaltung liefern (und sonst eine Rekompilierung und Eingangs-/Ausgangszuordnung zum Zugänglichmachen von "verdeckten" Knoten erfordern), beinhaltet die Schaltung 100 das dynamisch rekonfigurierbare Netzwerk 137 und das Teilabtastregister 135, die eine dynamische "Sichtbarkeit" bzw. Zugänglichkeit von beliebigen Signalbahnen/Knoten innerhalb des Arrays von LEs 102 ohne Notwendigkeit einer Rekompilierung bieten.
  • Bei einem Ausführungsbeispiel der Erfindung beinhaltet die rekonfigurierbare Schaltung 100 einen Speicher 112 zur Erleichterung der Verwendung der rekonfigurierbaren Schaltung 100 zum Emulieren von Schaltungsentwürfen mit Speicher. Bei einem Ausführungsbeispiel ist der Speicher 112 eine 16-Bit-Speichereinrichtung. Bei anderen Ausführungsbeispielen kann der Speicher 112 auch 32 Bit breit oder alternativ 64 Bit breit sein. Bei einem Ausführungsbeispiel können die Anschlussstifte 113 der rekonfigurierbaren Schaltung 100 für entweder den Eingang oder den Ausgang verwendet werden. Bei einem Ausführungsbeispiel sind innerhalb der rekonfigurierbaren Schaltung 100 64 Eingangs-/Ausgangsanschlussstifte 113 vorgesehen. Entsprechend dem dargestellten Ausführungsbeispiel beinhaltet die rekonfigurierbare Schaltung 100 ferner ein Zwischen-LE-Kreuzschienen-(X-Schienen-)Netzwerk 104 zum untereinander Verbinden der LEs, des Speichers 112 und der Eingangs-/Ausgangsanschlussstifte 113, wie dargestellt. Bei einem Ausführungsbeispiel beinhaltet die rekonfigurierbare Schaltung 100 "zwei Kopien" der ersten Stufe eines Kreuzschienennetzwerks 114a114b zum Verbinden der rekonfigurierbaren Schaltung 100 mit anderen solchen rekonfigurierbaren Schaltungen und einem "Hauptsystem" (nicht dargestellt).
  • Der Speicher 112 ist allgemein bekannt und wird nicht weiter erläutert. Das Zwischen-LE-Kreuzschienennetzwerk 104 und die erste Stufe des Zwischen-Schaltungs-Kreuzschienennetzwerks inter-circuit crossbar network) 114a114b sind im Einzelnen beschrieben in dem US-Patent 5 574 388 mit dem Titel "An emulation system employing a multi-level and multi-stage network topology for interconnecting reconfigurable logic devices" (auf Deutsch: "Emulationssystem mit Mehr-Ebenen- und Mehr-Stufennetzwerk-Topologie zum Verbinden rekonfigurierbarer logischer Einrichtungen") mit zumindest einem gemeinsamen Erfinder und Anmelden mit der vorliegenden Erfindung. Dennoch werden das Netzwerk 104 und die Netzwerkstufe0 114a114b im Folgenden kurz beschrieben. Die LEs 102, der Kontextbus 106, das Abtastregister 108, das Teilabtastregister 135, das dynamisch rekonfigurierbare Netzwerk 137 und die Triggerschaltung 110 werden in weiteren Einzelheiten anhand der übrigen Figuren im Folgenden beschrieben. Bevor diese Elemente in weiteren Einzelheiten beschrieben werden, wird angemerkt, dass die Erfindung zur Vereinfachung der Erklärung im Kontext eine Emulation beschrieben wird, ein Fach mann jedoch auf der Basis der folgenden Beschreibung erkennt, dass die Erfindung auch bei anderen Anwendungen außerhalb von Emulationssystemen eingesetzt werden kann.
  • Ferner ist anzumerken, dass der Begriff "dynamisch rekonfigurierbar" im Kontext des dynamisch rekonfigurierbaren Netzwerks 137 bedeuten soll, dass, obwohl die Emulation von Schaltungselementen zum Rekonfigurieren des dynamisch rekonfigurierbaren Netzwerks 137 möglicherweise (oder möglicherweise nicht) unterbrochen werden muss, die Emulation nicht von ihrem Anfang an neu gestartet werden muss. Insbesondere erfordert die Rekonfiguration des dynamisch rekonfigurierbaren Netzwerks 137 keine Rekompilierung, während die Rekonfiguration des Zwischenverbindungsnetzwerks 104 eine Rekompilierung erfordert, was, wie erwähnt, ein zeitaufwendiger Vorgang ist. Dem Fachmann ist also klar, dass das dynamisch rekonfigurierbare Netzwerk 137 eine effiziente Möglichkeit bietet, mit der sich anderweitig verdeckte interessierende Knoten in einem LE 102 zugänglich machen lassen (über das Teilabtastregister 135), um eine schnelle Fehlersuche bei einem Emulator und/oder der zu emulierenden Schaltung zu erleichtern.
  • Obwohl 1 ein separates Abtastregister darstellt, d. h. das Teilabtastregister 135 im Zusammenwirken mit dem dynamisch rekonfigurierbaren Netzwerk 137 bei Zugriff auf eine beliebige Signalbahn/einen beliebigen Knoten innerhalb des Arrays von LEs 102, ist dem Fachmann klar, dass dies nur ein Beispiel ist und andere geeignete Ausführungsformen existieren. Ein weiteres solches Ausführungsbeispiel ist in 11 dargestellt.
  • 11 zeigt ein Blockdiagramm einer rekonfigurierbaren Schaltung 1100. Der Fachmann erkennt, dass die rekonfigurierbare Schaltung 1100 der rekonfigurierbaren Schaltung 100 sehr ähnelt. Das bedeutet, dass die rekonfigurierbare Schaltung 1100 das Array von LEs 102, den Speicher 112, das dynamisch rekonfigurierbare Netzwerk 137 und die Triggerschaltung 110 aufweist, die wie dargestellt zur Kommunikation verbunden sind. Die rekonfigurierbare Schaltung 1100 unterscheidet sich von der rekonfigurierbaren Schaltung 100 jedoch dadurch, dass die rekonfigurierbare Schaltung 1100 nur ein Abtastregister 1108 zusammen mit einem Multiplexer 1106 benötigt, um die gesamte Signalbahn-/Knotenaktivität umfassend zu überwachen, oder nur eine Untermenge davon auszuwählen. Dies bedeutet, dass die rekonfigurierbare Schaltung 1100 statt einem separaten Teilabtastregister 135 und einem (umfassenden) Abtastregister 108 den Multiplexer 1106 verwendet, um dem Abtastregister 1108 selektiv die Ausgangssignale aller Signalbahnen/Knoten in einem umfassenden Abtastmodus zuzuführen oder eine Untermenge der Signalbahnen/Knoten im Teilabtastmodus auszuwählen. in anderen Worten lässt sich das Abtastregister 1108 vollständig als Abtastregister 108 gemäß 1 verwenden oder teilweise als Teilabtastregister 135 gemäß 1 verwenden.
  • Mit den vorstehenden verschiedenen Ausführungsbeispielen wird dem Fachmann klar, dass sich die Erfindung auch noch in weiteren Ausführungsformen ausführen lässt, ohne den Gegenstand der Erfindung zu verlassen. Solche andere Ausführungsformen ergeben sich durch die Beschreibung der Erfindung. Nach der Beschreibung verschiedener Ausführungsbeispiele für die neue rekonfigurierbare Schaltung 100 bzw. 1100 wird nun Bezug genommen auf 2, in der das Array aus aufgerüsteten LEs weiter beschrieben ist.
  • In 2 ist ein Blockdiagramm für ein Array aufgerüsteter LEs als Ausführungsbeispiel für die Erfindung dargestellt, welches zur Anwendung in der rekonfigurierbaren Schaltung aus 1 geeignet ist. Wie dargestellt weist das LE-Array 102 eine Mehrzahl erfindungsgemäße aufgerüstete LEs 200 auf. Bei einem Ausführungsbeispiel weist das LE-Array 102 128 LEs 200 auf. Dem Fachmann ist klar, dass auch größere oder kleinere Arrays von LEs 200 verwendet werden können, wobei das zugeordnete Lese-(Schreib- und Steuerschaltungssystem entsprechend wächst oder abnimmt, das im Folgenden näher erläutert wird. Bei einem anderen Ausführungsbeispiel weist das LE-Array 102 758 LEs 200 auf. Zur Erleichterung der Erklärungen, und nicht einschränkend gemeint, beziehen sich die im Rest der Anmeldung dargestellten Beispiele auf das LE-Array 102 mit 128 LEs 200. Wie 2 zeigt, beinhaltet jedes LE 200 eine Mehr-Eingangs – Einzel-Ausgangswahrheitstabelle 202, ein Paar Master-Slave-Halteeinrichtungen 204206, einen Ausgangsmultiplexer 208, einen Eingangsmultiplexer 210 und eine Steuerlogik 212, die wie dargestellt miteinander verbunden sind.
  • Die Wahrheitstabelle 202 wird verwendet zum Erzeugen eines vorbestimmten Ausgangssignals ansprechend auf einen Satz Eingangssignale. Bei dem dargestellten Ausführungsbeispiel hat die Wahrheitstabelle 202 vier Eingänge und einen Ausgang. In anderen Worten gibt die Wahrheitstabelle 202 abhängig von den Eingangssignalen 1 von 24 vorbestimmten Ausgangssignalen aus. Jede der Master-Slave-Halteeinrichtungen 204206 wird verwendet zum synchron mit dem Takteingang Speichern eines Eingangswerts. Ferner kann jede der Master-Slave-Halteeinrichtungen 204206 abhängig von den Setz- und Rücksetz-Werten asynchron zwangsweise auf Eins oder Null gesteuert werden. Bei dem dargestellten Ausführungsbeispiel sind die Setz- und Rücksetz-Eingänge unter Verwendung der Eingänge 13 und 12 der Wahrheitstabelle 202 gegeben. Wenn das Setzen/Rücksetzen verwendet wird, ist in anderen Worten die Zahl der bei der Wahrheitstabelle 202 möglichen Eingangsvariationen reduziert. Alternativ können zusätzliche zweckgebundene Anschlussstifte vorgesehen werden, um die Setz-/Rücksetz-Signale an die Master-Slave-Halteeinrichtungen 204206 zu legen, womit jedoch die Hardwareanforderungen der rekonfigurierbaren Schaltung ansteigen.
  • In 2, auf die weiterhin Bezug genommen wird, werden der Ausgangsmultiplexer 208 und der Eingangsmultiplexer 210 und die Steuerlogik 212 verwendet, um die Art und Weise zu steuern, in der die Wahrheitstabelle 202 und die Master-Slave-Halteeinrichtungen 204206 benutzt werden. Der Ausgangsmultiplexer 208 erlaubt entweder die Auswahl des Ausgangssignals der Wahrheitstabelle 202 (Umgehen der Master-Slave-Halteeinrichtungen 204206) oder des Ausgangssignals der Slave-Halteeinrichtung 206 (für pegelsensitive Entwürfe (level sensitive designs)) oder des Ausgangssignals der Master-Halteeinrichtung 204 (für flankensensitive Entwürfe (edge sensitive designs)) als Ausgangssignal. Das umgangene Ausgangssignal wird ausgewählt, wenn die Wahrheitstabelle 202 alleine verwendet werden soll. Wenn entweder das Ausgangssignal der Master-Halteeinrichtung 204 oder der Slave-Halteeinrichtung 206 ausgewählt wird, erlaubt der Eingangsmultiplexer 210 entweder die Weitergabe des Ausgangssignals der Wahrheitstabelle 202, des Rückkopplungswerts von dem Ausgangssignal des Multiplexers 208 oder eines Eingangswerts an dem Kontextbus 106 zu den Master-Slave-Halteeinrichtungen 204206. Der Rückkopplungswert wird ausgewählt zum "Einfrieren" des LE 200 und der Buswert wird ausgewählt zum Initialisieren des LE 200. Die Steuerlogik 212 steuert den Ein gangsmultiplexer 210 und die den Master-Slave-Halteeinrichtungen 204206 zugeführten Setz- und Rücksetz-Werte entsprechend einem gegebenen Setz-, Rücksetz-, ersten und zweiten Freischaltungs- (ENAB und EN), Lade- (LDE) und Halte- (HLD) Wert, die im Folgenden näher beschrieben werden.
  • Jedes LE 200 beinhaltet ferner Taktauswahimultiplexer 216a216c zum selektiven Anlegen einer Anzahl von Emulationstakten oder eines Fehlersuchtakts (LD) an die Master-Slave-Halteeinrichtungen 204206. Vorzugsweise beinhalten die Emulationstakte einen "konstruierten" (constructed) Emulationstakt unter Verwendung anderer LEs 200. Bei dem dargestellten Ausführungsbeispiel ist dieser "konstruierte" Emulationstakt zugänglich durch den IO der Wahrheitstabelle 202. Im Normalbetrieb wird einer der Emulationstakte an die Master-Slave-Halteeinrichtungen 204206 gegeben, während der Fehlersuchtakt (LD) während der Fehlersuche angelegt wird. Die Taktauswahl wird gesteuert durch das CTX-Signal. Schließlich beinhaltet das LE 200 auch einen Puffer 214a zum Ausgeben der ausgewählten Ausgangssignale an das Zwischen-LE-X-Schienennetzwerk 104 und die On-Chip-Fehlersucheinrichtungen und einen Puffer 214b zum Ausgeben des ausgewählten Ausgangssignals an den Kontextbus 106 zur direkten Beobachtung außerhalb der rekonfigurierbaren Schaltung 100.
  • Insgesamt lässt sich die Wahrheitstabelle 202 allein verwenden oder zusammen mit den entsprechenden Master-Slave-Halteeinrichtungen 204206. Das aufgerüstete LE 200 ist sowohl für "pegelsensitive" als auch für "flankensensitive" Schaltungsentwurfemulationen geeignet. Ferner lassen sich neben dem "normalen" momentanen Ausgangssignal der Wahrheitstabelle 202 die jeweiligen LEs 200 individuell initialisieren. Jedes LE 200 kann ferner zur Ausgabe wieder und wieder des gleichen Ausgangssignals gebracht werden, als wenn es eingefroren wäre. Ferner sind die LEs 200 individuell und direkt außerhalb der rekonfigurierbaren Schaltung 100 beobachtbar. Es gibt in anderen Worten keine "verdeckten Knoten". Der Zustand jedes "Knotens" ist außerhalb der rekonfigurierbaren Schaltung direkt beobachtbar, ohne dass eine Rekonfigurierung und zeitraubende Rekompilierung von Schaltungsentwurfabbildungen, wie im Stand der Technik normalerweise durchgeführt, notwendig wäre.
  • 3 illustriert ein Ausführungsbeispiel für jeweils die Eingangsmultiplexer 210 und die Steuerlogik 212 in weiteren Einzelheiten. Wie dargestellt, weist der Multiplexer 210 Treiber 211a211c zum Ausgeben des Rückkopplungs-Ausgangssignals, des Ausgangssignals der Wahrheitstabelle 202 bzw. des Eingangswerts an dem Kontextbus 106 auf – soweit freigegeben. Einer der Treiber 211a211c wird selektiv freigegeben durch Steuersignale aus der Steuerlogik 212. Die Steuerlogik 212 weist UND-Gatter 213a213c, ein ODER-Gatter 215, ein NEGATIV-ODER-Gatter 217 und Speicherbits 219a219c zum Erzeugen der Steuersignale für die Treiber 211a211c sowie die Setz- und Rücksetz-Werte für die Master-Slave-Halteeinrichtungen 204206 auf. Die Speicherbits 219a219c werden verwendet zum Speichern von Konfigurationsinformationen zum Freigeben der Weitergabe der Setz- und Rücksetz-Werte und der Auswahl des Rückkopplungs-Ausgangssignals. Bei Freischaltung liefern die UND-Gatter 213a213b die Setz- und Rücksetz-Werte entsprechend den Setz- und HLD-Eingangssignalen bzw. den Rücksetz- und HLD-Eingangssignalen. Bei Freischaltung liefert das ODER-Gatter 215 zusammen mit dem UND-Gatter 213c das Steuersignal für den Treiber 211a entsprechend den ENAB-, HLD- und EN-Eingangssignalen. Das NEGATIV-ODER-Gatter 217 liefert das Steuersignal für den Treiber 211b entsprechend dem für den Treiber 211a gelieferten Steuersignal und einem LDE-Eingangssignal. Schließlich ist das LDE-Eingangssignal als Steuersignal für den Treiber 211c vorgesehen.
  • Es wird nun kurz auf die 4a4b Bezug genommen, in denen ein Ausführungsbeispiel für ein Zwischen-LE-Kreuzschienennetzwerk 104 zum Verbinden der LEs, des Speichers und der Eingangs-/Ausgangsanschlussstifte dargestellt ist. Insbesondere zeigen die 4a und 4b ein Ausführungsbeispiel für ein Zwischen-LE-Kreuzschienennetzwerk 104 zum Verbinden von 128 LEs 200. Dem Fachmann ist klar, dass auch größere oder kleinere Zwischen-LE-Kreuzschienennetzwerke verwenden werden können, ohne den Gegenstand dieser Erfindung zu verlassen. Wie 4a zeigt, weist bei dem dargestellten Ausführungsbeispiel das Zwischen-LE-Kreuzschienennetzwerk 104 vier Unternetzwerke 220 auf. Die ersten beiden Unternetzwerke Unternetz0 und Unternetz1 werden verwendet zur Weiterleitung von 72 Signalen, während die verbleibenden beiden Unternetzwerke, Unternetz2 und Unternetz3, zur Weiterleitung von 64 Signalen verwendet werden. Insbesondere wird, wie 4b zeigt, Unternetz0 verwendet zur Weiterleitung der Signale LE0–LE39, LE119–LE127, I/O0–I/O15 und M0–M7. Unternetz1 wird verwendet zur Weiterleitung der Signale LE24–LE71, I/O16–I/O31 und M8–M15. Unternetz2 wird verwendet zur Weiterleitung der Signale LE56–LE103 und I/O32–I/O47. Unternetz3 wird verwendet zur Weiterleitung der Signale LE0–LE7, LE88–LE127 und I/O48–-I/O63. Die überlappende Abdeckung der LEs bietet eine verbesserte Flexibilität bei der Signalweiterleitung zur Abbildung von Schaltungsentwürfen.
  • Jeder Unternetzwerk 220 ist ein Dreistufen-Claus-Netzwerk mit entweder neun oder acht 8-zu-8-Kreuzschienen 222 in der ersten Stufe, acht 9-zu-20- oder 8-zu-20-Kreuzschienen 224 oder 226 in Stufe zwei und zwanzig 8-zu-8-Kreuzschienen in Stufe drei. Die Stufen sind miteinander in der allgemein bekannten "Butterfly"-Art verbunden.
  • Für die weitere Beschreibung des Zwischen-LE-Kreuzschienennetzwerks 104 wird auf das in Bezug genommene US-Patent 5 574 388 verwiesen.
  • Es wird nun kurz auf 5 Bezug genommen, in der ein Ausführungsbeispiel für ein Kreuzschienennetzwerk Stufe0 114a114b zwischen rekonfigurierbaren Schaltungen (inter-reconfigurable circuit crossbar network stage0) zum Verbinden der rekonfigurierbaren Schaltung mit anderen rekonfigurierbaren Schaltungen und einem "Hauptsystem"-Rechner (nicht gezeigt) dargestellt ist. Bei dem dargestellten Ausführungsbeispiel weist das Kreuzschienennetzwerk Stufe0 114a114b zwischen den rekonfigurierbaren Schaltungen vier Paare 16-zu-16 Kreuzschienen 230 zum Verbinden von 64 Eingangs-/Ausgangssignalen der rekonfigurierbaren Schaltung mit der nächsten Stufe eines Claus-Netzwerks zum Verbinden der rekonfigurierbaren Schaltung mit anderen rekonfigurierbaren Schaltungen und einem "Hauptsystem"-Rechner auf. Für die weitere Erläuterung des Kreuzschienennetzwerks 114a114b zwischen den rekonfigurierbaren Schaltungen wird ebenfalls auf das erwähnte US-Patent 5 574 388 Bezug genommen.
  • 6 zeigt ein Ausführungsbeispiel für die mit dem Kontextbus 106 verknüpften Lese-/Schreibeinrichtungen zum Auslesen aus den und Einschreiben in die LEs 200 der rekonfigurierbaren Schaltung 100. Bei dem dargestellten Ausführungsbeispiel sind die 128 LEs 200 in 16 Spalten mit jeweils acht LEs 200 gegliedert. Damit kön nen alle 128 LEs 200 oder der momentane Kontext mit 16 8-Bit-Worten beschrieben oder ausgelesen werden. Ein Adressenregister 232 zum Speichern der Lese- oder Schreibadresse ist vorgesehen. Ein Dekodieren 234 zum Dekodieren der Lese- oder Schreibadresse ist vorgesehen, der in Verbindung mit der R/W-Steuerung 236 (Lese-/Schreibsteuerung) die geeigneten Lesesteuersignale (RD0–RD15) und Schreibsteuersignale (LDE0–LDE15) für die 128 LEs 200 liefert. Ferner empfängt jeder LE 200 das zuvor beschriebene HLD-Signal zum "Einfrieren" der LEs 200, das CTX-Signal zum Auswählen des Fehlersuch-(LD-)Takts und den LD-Takt selbst.
  • Die 7a7b zeigen beispielhafte Signalzeitgebungen zum Lesen und Schreiben. Wie 7a zeigt, wird das Kontextauslesen durchgeführt durch zunächst Laden einer 4-Bit-Adresse in das Adressenregister 232. Als Ergebnis bringt der Dekodierer 234 die R/W-Steuerung 236 zum Hochsteuern der geeigneten RD-Signale und damit Auslesen des Inhalts der adressierten LEs 200. (HLD, CTX, LDEi und LD bleiben alle niedrig, während ein Lesevorgang fortschreitet.) Wie 7b zeigt, wird das Kontextschreiben durchgeführt durch zunächst Laden einer 4-Bit-Adresse in das Adressenregister 232. Zusätzlich wird, bevor der Dekodieren 234 antwortet und die R/W-Steuerung 236 zum Hochsteuern der geeigneten LDE-Signale bringt, HLD zunächst hochgesteuert, um alle LEs 200 einzufrieren. Ferner wird CTX hochgesteuert, um für jedes LE 200 den Fehlersuchtakt LD auszuwählen. Wenn dann die RIW-Steuerung 236 die geeigneten LDE-Signale treibt, werden die Werte des Kontextbusses 106 in die adressierten LEs 200 geladen. Es ist wichtig, beim Kontextschreiben alle LEs 200 einzufrieren, weil ein Teilkontext temporäre Zustände induzieren könnte, die wiederum das Emulationssystem in einen unbekannten Zustand bringen könnten. Z. B. kann der endgültige Kontext ein gegebenes Rücksetz-Signal in den niedrigen Zustand bringen, der Teilkontext (während des Schreibvorgangs) jedoch einen temporären Hochzustand des Rücksetz-Signals induzieren, womit alte mit dem Signal verbundenen Halteeinrichtungen in unvorhersagbarer Weise rückgesetzt würden.
  • 8a illustriert ein Ausführungsbeispiel für das Abtastregister 108 zum Ausgeben einer vollständigen Abtastung aller Ablaufverfolgungsdaten für alle LEs 200. Bei dem in 8 dargestellten Ausführungsbeispiel weist das Abtastregister 108 16 Sätze aus acht Flip-Flops 242 und 15 Sätze aus acht Multiplexern 244 (z. B. mit 128 LEs 200) auf, wobei die Multiplexer 244 zwischen Flip-Flop-Sätzen 242 angeordnet sind. Flip-Flop-Satz0 242 ist mit einer ersten Gruppe von acht LEs 200 verbunden. Multiplexer-Satz0 244 ist mit Flip-Flop-Satz0 242 und einer zweiten Gruppe LEs 200 verbunden. Flip-Flop-Satz1 242 ist mit Multiplexer-Satz0 verbunden usw. Flip-Flop-Satz0 242 empfängt und leitet weiter die Ausgangssignale der ersten Gruppe von acht LEs 200 in sequentieller Weise. Multiplexer-Satz0 244 liefert entweder seriell die Ausgangssignale des Flip-Flop-Satzes0 242 oder die Ausgangssignale der zweiten Gruppe aus acht LEs. Flip-Flop-Satz1 242 wiederum leitet sequentiell die Eingangssignale weiter, die er von Multiplexer-Satz0 244 empfangen hat. Die Flip-Flop-Sätze 242 werden gesteuert durch einen Abtasttakt, während die Multiplexer-Sätze 244 gesteuert werden durch ein Abtaststeuersignal. Durch Anlegen eines Abtasttakts mit der geeignet dividierten Frequenz (relativ zu dem Emulationsbetriebstakt) und selektives Anlegen des geeigneten Abtaststeuersignals an die Multiplexer-Sätze 244 lässt sich also eine Momentaufnahme aller 128 LEs bei einem bestimmten Taktzyklus sequentiell aus der rekonfigurierbaren Schaltung 100 abtasten.
  • Anhand 8b werden nun in weiteren Einzelheiten die integrierten Fehlersucheinrichtungen des Teilabtastregisters 135 und des dynamisch rekonfigurierbaren Netzwerks 137 beschrieben, und zwar entsprechend der vorliegenden Erfindung. Wie 8b zeigt, weist das dynamisch rekonfigurierbare Netzwerk 137 eine Mehrzahl 4:1-Multiplexer 502 auf, die mit einer Mehrzahl LEs 200 verbunden sind. Bei dem dargestellten Ausführungsbeispiel weist das dynamisch rekonfigurierbare Netzwerk 137 32 4:1-Multiplexer auf, die mit dem Ausgang der 128 LEs 200 verbunden sind. Dementsprechend ermöglicht das dynamisch rekonfigurierbare Netzwerk 137 einem Benutzer eine rekonfigurierbare Weiterleitung bei einer ausgewählten Untermenge von Zustandswerten für bis zu 32 LEs 200 zu dem Teilabtastregister 135.
  • Bei einem erfindungsgemäßen Ausführungsbeispiel weist das Teilabtastregister 135 vier Sätze aus acht Flip-Flops 562 und drei Sätze aus acht Multiplexern 564 auf, die zwischen den Flip-Flop-Sätzen 562 angeordnet sind. Wie das in 1 dargestellte Ausführungsbeispiel zeigt, empfängt das Teilabtastregister 135 ein Eingangssignal aus dem dynamisch rekonfigurierbaren Netzwerk 137 zur Ausgabe auf dem Abtastbus 139. insbesondere gibt das Teilabtastregister 135 im Unterschied zu dem Vollabtastregister 108 die Zustandswerte für eine Untermenge (z. B. ein Viertel) ausge wählter LEs 200 auf dem Abtastbus 139 aus. Soweit das Vollabtastregister 108 und das Teilabtastregister 135 den Abtastbus 139 als Ausgang teilen, steuern die Abtaststeuersignal 142 und der Abtasttakt 140 selektiv, welches Abtastregister freigeschaltet wird. Insbesondere wird bei dem dargestellten Ausführungsbeispiel zum Freischalten einer Teilabtastung benutzerausgewählter LEs 200 innerhalb des LE-Arrays 102 durch den Benutzer ein Teilabtastregister 135 mit dem Abtaststeuersignal 142 und dem Abtasttakt 140 freigeschaltet, während zur Freischaltung einer vollständigen Abtastung aller LEs 200 innerhalb des LE-Arrays 102 mit dem Abtaststeuersignal 142 und dem Abtaststeuertakt (-Signal) 140 das Vollabtastregister 108 freigeschaltet wird. Der Fachmann erkennt jedoch, dass auch andere Methoden zur Bestimmung, welches Abtastregister freigeschaltet ist, eingesetzt werden können. Bei einem anderen Ausführungsbeispiel für die Erfindung wird z. B. das Abtastregister 108 oder das Teilabtastregister 135 alleine durch das Anlegen des Abtasttakts 140 an das gewünschte Abtastregister ausgewählt, z. B. an das Vollabtastregister 108 bzw. das Teilabtastregister 135. Die Erfindung beinhaltet also auch solche Modifikationen in ihrem Gegenstand.
  • Der Fachmann erkennt also, dass das dynamisch rekonfigurierbare Netzwerk 137 und das Teilabtastregister 135 die rekonfigurierbare Schaltung 100 mit einer erhöhten Flexibilität ausstatten, wodurch es einem Benutzer ermöglicht wird, eine Untermenge von ausgewählten LEs bei einem gegebenen Taktzyklus ohne eine aufwendige Rekonfiguration und somit Rekompilierung der Schaltungsentwurf-Abbildungssoftware (mapping), wie im Stand der Technik notwendig, dynamisch zu rekonfigurieren und zu beobachten. Wenn es notwendig ist, einen vollständigen Satz Zustandswerte für alle LEs zu beobachten, wird die rekonfigurierbare Schaltung 100 ferner mit dem neuartigen Vollabtastregister ausgestattet. Mit der dynamisch rekonfigurierbaren integrierten Schaltung mit integrierten Fehlersucheinrichtungen gemäß dieser Erfindung kann also ein Benutzer eines Emulationssystems auswählen, eine Untermenge der LEs in LE-Array 102 in einem Taktzyklus zu beobachten, während er auswählt, in einem anderen Taktzyklus eine vollständige Abtastung aller Zustandswerte aller LEs in LE-Arrays 102 zu beobachten.
  • Anhand 9 wird nun ein Blockdiagramm für ein Ausführungsbeispiel für die Triggerschaltung 110 zum Ausgeben von Triggereingangssignalen erläutert. Bei dem dargestellten Ausführungsbeispiel weist die Triggerschaltung 110 vier Komparator-Registerschaltungen 260 zum Erzeugen von vier Triggereingangssignalen auf, und zwar eines aus jeder Komparator-Registerschaltung 260. Jede Komparator-Registerschaltung 260 weist ein Register 262 zum Speichern eines Signalmusters und einen Gleichheitskomparator 264 zum Vergleichen der Ausgangssignale der LEs mit dem gespeicherten Inhalt des Musterregisters 262 auf. Bei einem Ausführungsbeispiel weist das Signalmuster 2 Bits pro LE 200 auf, was die Codierung der Werte hoch, niedrig oder unbeachtlich erlaubt. Ein Eingangssignal für einen Trigger außerhalb der rekonfigurierbaren Schaltung 100 wird erzeugt, wann immer das gespeicherte Muster erfasst wird. Bei dem dargestellten Ausführungsbeispiel können in anderen Worten interne Zustandsereignisse von vier LEs gleichzeitig überwacht werden.
  • Es wird nun Bezug genommen auf 10, eine Blockdiagrammdarstellung eines Ausführungsbeispiels für ein Emulationssystem 1000 gemäß der Erfindung. Das in 11 dargestellte Ausführungsbeispiel zeigt ein Emulationssystem 1000 mit einem Hauptsystem 1020, das zur Kommunikation mit einem Emulator 1060 verbunden ist. Wie dargestellt beinhaltet der Emulator 1060 Emulationsarray- und Zwischenverbindungsnetzwerke 1080, eine Konfigurationsschaltung 1220 und eine Hauptsystemschnittstelle 1240, die wie dargestellt zur Kommunikation verbunden sind. Die Emulationsarray- und Zwischenverbindungsnetzwerke 1080 beinhalten erfindungsgemäß dynamisch rekonfigurierbare integrierte Schaltungen 1200a1200n gemäß der Erfindung mit einer Mehrzahl LEs 200, die programmierbar dazu ausgelegt sind, einen bestimmten Schaltungsentwurf vor der Herstellung des Schaltungsentwurfs zu emulieren und zu "realisieren". Insbesondere erlauben es die neuartigen dynamisch rekonfigurierbaren integrierten Schaltungen 1200a1200n einem Benutzer des Emulationssystems, ein Leitwegnetzwerk so zu steuern, dass es über ein Teilabtasiregister selektiv eine Untermenge der Zustandswerte für ausgewählte LEs ausgibt anstelle des zeitaufwendigen Rekompilationsvorgangs oder einer Vollabtastausgabe bei konventionellen Abtastregistern, die für konventionelle Emulationssysteme typisch sind. Dementsprechend ermöglichen Emulationssysteme mit den neuartigen Merkmalen der Erfindung, wie das Emulationssystem 1000, dem Benutzer solcher Emulationssysteme eine dynamische Veränderung von Beobachtungspunkten innerhalb eines Emulators ohne den zeitaufwendigen Vorgang der Veränderung und Rekompilierung der Schaltung über die Entwurfsabbildungssoftware, ein Vorgang der bei komplexen Schaltungsentwürfen häufig Tage benötigt hat.
  • Zusätzlich zu den Emulationsarray- und Zwischenverbindungsnetzwerken 1080 weist der dargestellte Emulator 1060 die Konfigurationseinheit 1220 und die Hauptsystemschnittstelle 1240 auf, die jeweils wie in 2 beispielhaft dargestellt verbunden sind. Die Konfigurationseinheit 1220 und die Hauptsystemschnittstelle 1240 führen jeweils ihre konventionellen Funktionen aus, die dem Fachmann bekannt sind und daher nicht weiter erläutert werden müssen.
  • Dem Fachmann ist klar, dass die dynamisch rekonfigurierbaren integrierten Schaltungen 1200a1200n in einer Vielzahl verschiedener Formen ausgeführt sein können. Bei einem Ausführungsbeispiel sind die dynamisch rekonfigurierbaren integrierten Schaltungen 1200a1200n eine entsprechende Vielzahl rekonfigurierbarer Schaltungen. Bei diesem Ausführungsbeispiel weisen die Emulationsarray- und Zwischenverbindungsnetzwerke 1080 eine Anzahl rekonfigurierbarer LEs auf, die in verteilter Weise in einer Vielzahl rekonfigurierbarer Schaltungen verpackt sind, die wiederum in verteilter Weise in einer Vielzahl Schaltungsplatinen verbaut sind. Eine Mehrzahl Schaltungsplatinen kann kombiniert werden, um einen Rahmen (crate) zu bilden. Bei Mehr-Rahmen-Ausführungsbeispielen sind eine Mehrzahl Rahmen miteinander kombiniert. Eine skalierbare Mehr-Niveau-Mehr-Stufen-Netzwerktopologie wird verwendet zum Verbinden der LEs miteinander innerhalb der rekonfigurierbaren Schaltungen und dann der rekonfigurierbaren Schaltungen, der Logikplatinen und der Rahmen.
  • Zusätzlich zu dem erfindungsgemäßen Emulator 1060 weist das beispielhafte Emulationssystem 1000 ferner ein Hauptsystem 1020 mit einer Schaltungsentwurf-Abbildungssoftware 1040 auf. Dem Fachmann ist klar, dass die Schaltungsentwurf-Abbildungssoftware 1040 eine aus einer Anzahl alternativer bekannter Abbildungssoftware-Anwendungen sein kann. Bei dem Ausführungsbeispiel aus 10 ist die Schaltungsentwurf-Abbildungssoftware 1040 in einem geeigneten Speichermedium (nicht gezeigt) des Hauptsystems 1020 gespeichert und wird in den Speicher (nicht gezeigt) des Hauptsystems 1020 zur Ausführung durch einen Prozessor (nicht gezeigt) des Hauptsystems 1020 geladen. Das Hauptsystem 1020 im Allgemeinen und die Abbildungssoftware 1040 im Besonderen sollen hier beliebige aus einer Vielzahl allgemein bei der Schaltungsemulation verwendeter Hauptsysteme und Schaltungsentwurf-Abbildungssoftware-Varianten darstellen und werden daher nicht näher erläutert.
  • Es wurde also eine rekonfigurierbare integrierte Schaltung mit integrierten Fehlersucheinrichtungen beschrieben, die besonders geeignet ist für Emulationssysteme. Obwohl das erfindungsgemäße Verfahren und die erfindungsgemäße integrierte Schaltung anhand der obigen Ausführungsbeispiele erläutert wurden, ist dem Fachmann klar, dass diese Erfindung nicht auf diese Ausführungsbeispiele eingeschränkt ist. Die Erfindung lässt sich vielmehr mit Modifikationen und Abänderungen ausführen, ohne den Gegenstand der Ansprüche zu verlassen. Ferner bezieht sich die Erfindung auch auf dynamisch rekonfigurierbare integrierte Schaltungen mit größerer oder geringerer Komplexität. Insbesondere bezieht sich die Erfindung auf größere oder kleinere LE-Array-Formate bei dem LE-Array 102 mit entsprechend vergrößerte/verkleinerten Lese-/Schreib-/Kreuzschienen-/Steuerungschaltungen, die zur Unterstützung solcher LE-Arrays notwendig sind. Die Beschreibung ist also als beispielhaft und nicht als einschränkend aufzufassen.

Claims (13)

  1. Integrierte Schaltung zur Verwendung in einem Emulationssystem, welche aufweist: eine Mehrzahl kurz als LEs bezeichneter logischer Elemente (102; 200), die zur Emulation von Schaltungselementen eines integrierten Schaltungsentwurfs rekonfigurierbar sind, wobei die LEs dazu ausgelegt sind, eine Mehrzahl der Ausgangssignale ansprechend auf eine Mehrzahl entsprechend an die LEs angelegter Eingangssignale zu erzeugen; ein Vollabtastregister (108), das mit den LEs (200) verbunden ist und dazu ausgelegt ist, bei Freischaltung durch Anlegen eines Abtasttakts (140) eine Aufzeichnung aller Signalzustandswerte der LEs in einem bestimmten Taktzyklus eines Betriebstakts aufzunehmen und auf einem Abtastbus (139) auszugeben; gekennzeichnet durch ein Teilabtastregister (135), das rekonfigurierbar mit Ausgewählten der LEs (200) in solcher Weise verbunden ist, dass das Teilabtastregister (135) dazu ausgelegt ist, bei Freischaltung durch Anlegen des Abtasttakts (140) eine Aufzeichnung von Signalzustandswerten von durch die ausgewählten LEs emulierten Schaltungselementen in einem bestimmten Taktzyklus des Betriebstakts aufzunehmen und auf dem Abtastbus (139) auszugeben.
  2. Integrierte Schaltung nach Anspruch 1, bei der entweder das Teilabtastregister (135) oder das Vollabtastregister (108) durch den Abtasttakt (140) in einem bestimmten Taktzyklus des Betriebstakts freigeschaltet werden.
  3. Integrierte Schaltung nach Anspruch 1 oder 2, bei der das Teilabtastregister (135) durch Anlegen eines geeignet zu dem Betriebstakt skalierten Abtasttakts (140) selektiv freigeschaltet wird.
  4. Integrierte Schaltung nach einem der Ansprüche 1–3, bei der die integrierte Schaltung (100) dazu ausgelegt ist, entweder eine Vollabtastfähigkeit über das Vollabtastregister (108) oder eine Teilabtastfähigkeit über das Teilabtastregister (135) zur Verfügung zu stellen.
  5. Integrierte Schaltung nach einem der Ansprüche 1–4, welche ferner aufweist eine Triggerschaltung (110), die mit den LEs (200) verbunden ist und dazu ausgelegt ist, bedingungsabhängig zumindest einen Triggerwert zu erzeugen, und zwar zumindest teilweise auf der Basis der Signalzustandswerte der LEs (200).
  6. Integrierte Schaltung nach einem der Ansprüche 1–5, welche ferner aufweist: ein Zwischenverbindungsnetzwerk (104), das mit der Mehrzahl LEs (200) und einer Mehrzahl integrierter Schaltungsausgänge (113) verbunden ist und ausgelegt ist für eine Signalweiterleitung in und zwischen der Mehrzahl LEs (200) und integrierter Schaltungsausgänge (113) entsprechend einem rekompilierbaren Satz Befehle, die das Zwischenverbindungsnetzwerk (104) konfigurieren.
  7. Integrierte Schaltung nach Anspruch 6, bei der die Rekonfiguration des Zwischenverbindungsnetzwerks (104) eine Rekompilierung eines neuen Satzes Befehle erfordert.
  8. Integrierte Schaltung nach Anspruch 6 oder 7, bei der die Rekonfiguration des Zwischenverbindungsnetzwerks (104) die integrierte Schaltung unfähig zur Emulation von Schaltungselementen macht.
  9. Integrierte Schaltung nach einem der Ansprüche 1–8, welche ferner aufweist: ein rekonfigurierbares Netzwerk (137) das mit der Mehrzahl LEs (200) und dem Teilabtastregister (135) verbunden ist, um das Teilabtastregister (135) rekonfigurierbar mit den ausgewählten LEs in dem bestimmten Taktzyklus des Betriebstakts zu verbinden.
  10. Integrierte Schaltung Anspruch 9, bei der das rekonfigurierbare Netzwerk (137) einen Multiplexer (500) zum dynamischen Verbinden Ausgewählter aus zumindest einer Untermenge der Mehrzahl LEs (200) mit dem Teilabtastregister (135) aufweist.
  11. Integrierte Schaltung (100) nach Anspruch 10, welche während der dynamischen Rekonfiguration der selektiven Verbindung durch den Multiplexer (500) Schaltungselemente emuliert.
  12. Integrierte Schaltung (100) nach einem der Ansprüche 1–11, welche mit einer Mehrzahl Eingangs-/Ausgangs-(I/O)-Anschlussstifte einer die integrierte Schaltung enthaltenden Emulationsleiterplatte verbunden ist.
  13. Integrierte Schaltung nach Anspruch 12, bei der zumindest eine Untermenge der Leiterplatten-Eingangs-/Ausgangs(I/O)-Anschlussstifte zur Kommunikation mit einem Hauptsystem verbunden ist.
DE60009856T 1999-09-24 2000-02-07 Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem Expired - Lifetime DE60009856T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/404,925 US6265894B1 (en) 1995-10-13 1999-09-24 Reconfigurable integrated circuit with integrated debugging facilities for use in an emulation system
US404925 1999-09-24
PCT/US2000/003138 WO2001023901A1 (en) 1999-09-24 2000-02-07 A reconfigurable integrated circuit with integrated debugging facilities for use in an emulation system

Publications (2)

Publication Number Publication Date
DE60009856D1 DE60009856D1 (de) 2004-05-19
DE60009856T2 true DE60009856T2 (de) 2005-02-17

Family

ID=23601592

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60009856T Expired - Lifetime DE60009856T2 (de) 1999-09-24 2000-02-07 Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem

Country Status (10)

Country Link
US (1) US6265894B1 (de)
EP (1) EP1133702B1 (de)
JP (1) JP3588324B2 (de)
CN (2) CN1399724B (de)
AT (1) ATE264510T1 (de)
AU (1) AU2757800A (de)
CA (1) CA2353950C (de)
DE (1) DE60009856T2 (de)
HK (1) HK1052386A1 (de)
WO (1) WO2001023901A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098181B2 (en) 2010-04-28 2012-01-17 Teradyne, Inc. Attenuator circuit
US8502522B2 (en) 2010-04-28 2013-08-06 Teradyne, Inc. Multi-level triggering circuit
US8531176B2 (en) 2010-04-28 2013-09-10 Teradyne, Inc. Driving an electronic instrument
US8542005B2 (en) 2010-04-28 2013-09-24 Teradyne, Inc. Connecting digital storage oscilloscopes

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606590B1 (en) * 1999-02-19 2003-08-12 Texas Instruments Incorporated Emulation system with address comparison unit and data comparison unit ownership arbitration
US6473726B1 (en) * 1999-09-24 2002-10-29 Frederic Reblewski Method and apparatus for concurrent emulation of multiple circuit designs on an emulation system
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6659504B2 (en) * 2001-05-18 2003-12-09 Delphi Technologies, Inc. Steering column for a vehicle
US7305633B2 (en) * 2001-10-30 2007-12-04 Mentor Graphics Corporation Distributed configuration of integrated circuits in an emulation system
US7035787B2 (en) * 2001-10-30 2006-04-25 Mentor Graphics Corporation Emulation components and system including distributed routing and configuration of emulation resources
US7130788B2 (en) * 2001-10-30 2006-10-31 Mentor Graphics Corporation Emulation components and system including distributed event monitoring, and testing of an IC design under emulation
AU2003243221A1 (en) * 2002-05-13 2003-11-11 Fairchild Semiconductor Corporation Cross point switch with serializer and deserializer functions
US7286976B2 (en) 2003-06-10 2007-10-23 Mentor Graphics (Holding) Ltd. Emulation of circuits with in-circuit memory
US20040267489A1 (en) * 2003-06-24 2004-12-30 Frederic Reblewski Data compaction and pin assignment
US7149996B1 (en) * 2003-07-11 2006-12-12 Xilinx, Inc. Reconfigurable multi-stage crossbar
US7693703B2 (en) * 2003-08-01 2010-04-06 Mentor Graphics Corporation Configuration of reconfigurable interconnect portions
US7587649B2 (en) * 2003-09-30 2009-09-08 Mentor Graphics Corporation Testing of reconfigurable logic and interconnect sources
US7924845B2 (en) * 2003-09-30 2011-04-12 Mentor Graphics Corporation Message-based low latency circuit emulation signal transfer
US7698118B2 (en) * 2004-04-15 2010-04-13 Mentor Graphics Corporation Logic design modeling and interconnection
US7379861B2 (en) * 2004-05-28 2008-05-27 Quickturn Design Systems, Inc. Dynamic programming of trigger conditions in hardware emulation systems
US7480610B2 (en) * 2004-07-12 2009-01-20 Mentor Graphics Corporation Software state replay
CN100367228C (zh) * 2004-07-31 2008-02-06 华为技术有限公司 一种集成电路的仿真方法
CN100419734C (zh) * 2005-12-02 2008-09-17 浙江大学 一种面向计算的通用型可重构计算阵列装置
US7263456B2 (en) * 2006-01-10 2007-08-28 M2000 On circuit finalization of configuration data in a reconfigurable circuit
US7739092B1 (en) * 2006-01-31 2010-06-15 Xilinx, Inc. Fast hardware co-simulation reset using partial bitstreams
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
WO2008008546A2 (en) * 2006-07-14 2008-01-17 Xinghao Chen Universal reconfigurable scan architecture
US8265103B2 (en) * 2007-01-12 2012-09-11 Samsung Electronics Co., Ltd. Apparatus and method for flexible visibility in integrated circuits with minimal package impact
CN102467583B (zh) * 2010-10-29 2014-07-23 国际商业机器公司 追踪不确定信号的方法和装置
TWI450118B (zh) * 2010-11-02 2014-08-21 Global Unichip Corp 混合的電子設計系統及其可重組連接矩陣
US9685207B2 (en) * 2012-12-04 2017-06-20 Nvidia Corporation Sequential access memory with master-slave latch pairs and method of operating
US10141930B2 (en) 2013-06-04 2018-11-27 Nvidia Corporation Three state latch
JP5955482B1 (ja) 2015-01-28 2016-07-20 三菱電機株式会社 ユニット及びプログラマブルロジックコントローラシステム
CN114492261A (zh) * 2021-08-10 2022-05-13 北京芯娴电子科技有限公司 一种芯片仿真系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4602210A (en) * 1984-12-28 1986-07-22 General Electric Company Multiplexed-access scan testable integrated circuit
US5068603A (en) * 1987-10-07 1991-11-26 Xilinx, Inc. Structure and method for producing mask-programmed integrated circuits which are pin compatible substitutes for memory-configured logic arrays
US5132974A (en) * 1989-10-24 1992-07-21 Silc Technologies, Inc. Method and apparatus for designing integrated circuits for testability
US5321828A (en) * 1991-06-07 1994-06-14 Step Engineering High speed microcomputer in-circuit emulator
US5425036A (en) * 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
TW253942B (de) * 1994-01-31 1995-08-11 At & T Corp
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5777489A (en) * 1995-10-13 1998-07-07 Mentor Graphics Corporation Field programmable gate array with integrated debugging facilities
US5636228A (en) * 1996-01-16 1997-06-03 Motorola, Inc. Scan register with decoupled scan routing
US5778444A (en) * 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US5878051A (en) * 1997-02-05 1999-03-02 Lockheed Martin Corp. Assembly-level bist using field-programmable gate array

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098181B2 (en) 2010-04-28 2012-01-17 Teradyne, Inc. Attenuator circuit
US8502522B2 (en) 2010-04-28 2013-08-06 Teradyne, Inc. Multi-level triggering circuit
US8531176B2 (en) 2010-04-28 2013-09-10 Teradyne, Inc. Driving an electronic instrument
US8542005B2 (en) 2010-04-28 2013-09-24 Teradyne, Inc. Connecting digital storage oscilloscopes

Also Published As

Publication number Publication date
CA2353950C (en) 2002-04-23
HK1052386A1 (zh) 2003-09-11
CN101813749A (zh) 2010-08-25
JP3588324B2 (ja) 2004-11-10
JP2002544576A (ja) 2002-12-24
ATE264510T1 (de) 2004-04-15
CA2353950A1 (en) 2001-04-05
AU2757800A (en) 2001-04-30
EP1133702A1 (de) 2001-09-19
WO2001023901A1 (en) 2001-04-05
CN1399724A (zh) 2003-02-26
DE60009856D1 (de) 2004-05-19
US6265894B1 (en) 2001-07-24
EP1133702B1 (de) 2004-04-14
CN1399724B (zh) 2010-04-28

Similar Documents

Publication Publication Date Title
DE60009856T2 (de) Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem
DE69533275T2 (de) Ein Steuergerät zur Durchführung der Abtastprüfung
DE69834892T2 (de) Eingebetteter Logikanalysator
DE19833208C1 (de) Integrierte Schaltung mit einer Selbsttesteinrichtung zur Durchführung eines Selbsttests der integrierten Schaltung
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE69628034T2 (de) Hochimpedanzmodus für jtag
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69827159T2 (de) Boundary-scan-system mit adressabhängingen befehlen
DE3903835A1 (de) Verfahren und vorrichtung zum pruefen von mikroprozessorsystemen unter verwendung von speicheremulationstechniken
DE3606650A1 (de) Hardware logik-simulator
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE19831761A1 (de) Prüfung einer integrierten Schaltungsvorrichtung während der Anbringung an einer Leiterplatte
DE10150321A1 (de) Verfahren und Vorrichtung zum Testen von integrierten Schaltungen
DE60010614T2 (de) On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung
DE60031081T2 (de) Regionalzeitmultiplexiertes emulationssystem
DE10153753B4 (de) Speichertester unterläßt ein Programmieren von Adressen in erfaßten schlechten Spalten
DE69933349T2 (de) Prüfbares ic mit analogen und digitalen schaltungen
DE69533018T2 (de) Struktur und Leistungsabtastprüfung
EP1430320B1 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung
DE10153665A1 (de) Speichertester mit verbesserter Nachdecodierung
DE19781563C2 (de) Mustergenerator
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
EP0640919B1 (de) Prozessorschaltung mit Testeinrichtung
DE69723590T2 (de) Benutzerprogrammierbares Gatterfeld mit integrierten Fehlersuchsystemen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition