DE10333817B4 - Emulationsschnittstellensystem - Google Patents
Emulationsschnittstellensystem Download PDFInfo
- Publication number
- DE10333817B4 DE10333817B4 DE10333817A DE10333817A DE10333817B4 DE 10333817 B4 DE10333817 B4 DE 10333817B4 DE 10333817 A DE10333817 A DE 10333817A DE 10333817 A DE10333817 A DE 10333817A DE 10333817 B4 DE10333817 B4 DE 10333817B4
- Authority
- DE
- Germany
- Prior art keywords
- emulator
- processor
- circuit
- core
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
Abstract
– mindestens einen Prozessorkern (102), der einen Schaltungsblock eines Prozessors umfasst;
– mindestens eine Prozessoremulatorschaltung (104), die mit dem mindestens einen Prozessorkern (102) gekoppelt ist und betreibbar ist, um Prozessoremulatordatensignale zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einen Prozessorkern (102) zugeordnet ist, und um Prozessoremulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren;
– mindestens einen anderen Kern (106), der wenigstens einen analogen Schaltungsblock umfasst;
– mindestens eine andere Emulatorschaltung (108), die mit dem mindestens einen anderen Kern (106) gekoppelt ist und betreibbar ist, um andere Emulatordatensignale aus der Überwachung von Schwellwertvariablen aus denn anlogen Schaltungsblock zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einem anderen Kern (106) zugeordnet ist, und um Emulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren; und
– eine Emulationsschnittstellenschaltung (110), die mit der mindestens einen Prozessoremulatorschaltung (104) und der...
Description
- ALLGEMEINER STAND DER TECHNIK
- Die vorliegende Erfindung betrifft das Prüfen und Austesten integrierter Schaltungen und insbesondere die Verwendung von Schaltkreisen zum Austesten auf einem Chip in ASICs, wie zum Beispiel Systeme auf einem Chip.
- Durch den anhaltenden Fortschritt auf dem Gebiet der Halbleitertechnologie und insbesondere der Halbleiterherstellung können immer mehr Schaltkreise auf einer einzigen integrierten Schaltung plaziert werden. Dadurch kann man eine zunehmende Anzahl von Funktionen auf einer einzigen integrierten Schaltung anordnen. Eine Vielzahl von Funktionen, die bisher über mehrere integrierte Schaltungen, die auf einer Leiterplatte (PCB-printed circuit board) angebracht sind, verteilt waren, können deshalb nun in einer einzigen integrierten Schaltung zusammengefaßt werden. Eine solche integrierte Schaltung wird häufig als „System auf einem Chip" (SOC-system on a chip) bezeichnet. Die schnelle Entwicklung und Kommerzialisierung solcher SOCs führt zu neuen Problemen für den SOC-Programmierer, den Systementwicklungsingenieur oder den Systemintegrationsingenieur. Ein solches Problem ist die Entwurfsvalidierung und das Austesten von Programmen entweder in Firmware oder in Software, die auf dem SOC ablaufen sollen.
- Häufig enthält ein SOC die Funktionen einer als „eingebetteter Prozessor" bezeichneten integrierten Schaltung. In der Vergangenheit waren eingebettete Prozessoren häufiger in Form getrennter integrierter Schaltungen auf PCBs anzutreffen. Eingebettete Prozessoren sind Mikroprozessoren, die häufig zur Steuerung von Vorrichtungen und zur Durchführung anderer Aufgaben, für die eine kostspieligere Vielzweck-CPU nicht angemessen ist, verwendet werden. Der anhaltende Fortschritt auf dem Gebiet der Halbleitertechnologie hat die Grenzen zwischen eingebetteten Prozessoren und Vielzweckpro zessoren verwischt. Die Verwendung eingebetteter Prozessoren hat zu ähnlichen Problemen beim Prüfen und Austesten von Programmen geführt wie sie nun im Bezug auf SOCs auftreten. Es wurden vielfältige Werkzeuge entwickelt, um Programme auf eingebetteten Prozessoren effizient zu debuggen. Ein solches Werkzeug ist der Logikanalysierer, bei dem es sich um ein Vielzweckwerkzeug handelt, das, wenn es an den Hauptbus eines eingebetteten Prozessors und an verschiedene andere Anschlüsse angeschlossen wird, eine passive Datensammlung im Bezug auf die Leistungsfähigkeit von Software auf einem eingebetteten Prozessor bereitstellen kann. Ein Anschluß ist in diesem Zusammenhang ein von einer integrierten Schaltung ausgehender Verbindungsdraht. Ein anderes Werkzeug ist ein Emulator in der Schaltung, ein prozessorspezifisches Werkzeug, das die Funktion des Zielprozessors emuliert und dabei Zugang zu Informationen über die Leistungsfähigkeit des auf dem emulierten Prozessor laufenden Programms ermöglicht. Außerdem kann der Emulator in der Schaltung den Typ und die Art von Informationen, zu denen er Zugang liefert, ändern. Außerdem ermöglicht der Emulator in der Schaltung eine Änderung des Zustands des eingebetteten Prozessors (zum Beispiel könnten Registerwerte auf bestimmte Weise und unabhängig verändert werden). In jedem Fall erzeugen diese verschiedenen Werkzeuge Daten bezüglich der Ausführung eines Programms auf einem Prozessor.
- Ein anderer Ansatz beim Austesten eingebetteter Prozessoren besteht darin, Emulationsschaltungen in den Prozessor zu integrieren oder einzubetten (die sogenannte „Onchip-Emulation"). Dieser Ansatz wird mittlerweile häufiger verwendet, da eingebettete Prozessoren immer höhere Verarbeitungsgeschwindigkeiten und Registerbreiten erreicht haben, wodurch die benötigte Ausgangsbandbreite zunimmt. Diese Art von Emulation kann als ein Onchip-Debug-System (System zum Austesten auf dem Chip) bezeichnet werden (im folgenden OCDS). Ein OCDS besteht aus Schaltungen zur Überwachung des Zustands eines eingebetteten Prozessors, um den Zustand eines eingebetteten Prozessors zu konfigurieren und um mit einem externen Test-Werkzeug zu kommunizieren. Das externe Test-Werkzeug ist häufig mit einem Hostcomputer verbunden, auf dem Austest-Software abläuft, und wirkt als ein Übersetzer zwischen dem OCDS und einem Hostcomputer, wie zum Beispiel einem PC.
- Es wird angemerkt, daß der „Zustand" eines Mikroprozessors sein Zustand ist, der im Hinblick auf den Inhalt seiner Register, internen Flags, lokalen Speicher usw. gegeben ist. Ähnlich ist der Zustand eines Registers oder eines anderen Speichers sein Zustand, der den darin gespeicherten Wert umfasst.
- Es wurden vielfältige Protokolle und Standards bezüglich eingebetteter Prozessoren festgelegt, die Parameter für OCDSe festlegen. Der Standard der Joint Test Action Group, der als „JTAG" bezeichnet wird, ist der IEEE-Standard für Grenzabtastungen (IEEE 1149.1). Unter anderem legt er die Parameter zum Prüfen einer Reihe von Eingangs-/Ausgangsregistern durch eine Menge eigener Prüfpins fest. JTAG ist die Standardschnittstelle zum Senden von Befehlen und zum Durchführen eines Datenaustauschs mit eingebetteten Prozessoren. JTAG ist eine relativ einfache aber vergleichsweise langsame Schnittstelle, die bei 10 MHz etwa 10 MBit/s Informationen austauscht. Sie wird häufig auch im Kontext anderer Schnittstellen verwendet, um Testbedingungen einzurichten, Steuerbefehle zu senden und dergleichen.
- Ein anderer Schnittstellenstandard für OCDSe ist der Standard Nexus 5001 für eine globale eingebettete Prozessor-Debug-Schnittstelle (IEEE-ISTO 5001). Dieser Schnittstellenstandard erlaubt eine wesentlich höhere Bandbreite, und zwar die Bandbreite, die notwendig ist, um sogenannte „Trace-Informationen" (oder Informationen zur Ablaufüberwachung, siehe unten) zu behandeln, die mit einer hohen Rate von z.B. 100-200 MHz ausgegeben werden können. Von Nexus 5001 gibt es eine Anzahl verschiedener Versionen, die verschiedene Ebenen der Steuerung und des Zugriffs des Zielprozessors anrufen.
- Der einfachste Fall des Standards Nexus 5110 kann unter Verwendung einer JTAG-Schnittstelle implementiert werden. Die höhere Bandbreite des Standards Nexus 5001 wird häufig nur dazu implementiert, Daten aus einem eingebetteten Prozessor auszulesen, obwohl die Bandbreite bidirektional angewandt werden kann.
- Es gibt andere Standards zur Implementierung eines OCDS in einem eingebetteten Prozessor. Bestimmte Hersteller eingebetteter Prozessoren erzeugen und warten einen proprietären Standard für ihre Prozessoren. Dies ist zum Beispiel bei der Firma ARM® der Fall.
- In der
US 6,425,101 B1 ist ein Master-Controller zum Testen einzelner integrierter Schaltungen gezeigt. Über einen programmierbaren Schalter ist der Master-Controller mit den integrierten Schaltungen verbunden. Jeweils eine integrierte Schaltung ist zu Testzwecken mit dem Master-Controller verbunden, wobei mittels des programmierbaren Schalters die Steuersignale zu diesem Chip geführt werden. Die integrierten Schaltungen werden einzeln und nacheinander getestet. - In der Pressmitteilung „Ashling launches initiative on multicore SoC debugging", San Francisco (California), 13. März 2003, der Firma Ashling Microsystems wird beschrieben, dass die zunehmende Integrationsdichte von SOCs mit vielen Kernen im Vergleich zum herkömmlichen externen Emulator mit Schnittstelle auf dem Chip leistungsfähigere Austestumgebungen benötigt. Dazu zählt auch, dass die Austestumgebung die Wechselwirkungen zwischen unterschiedlichen Kernen steuern, überwachen und anzeigen muss.
- Zu den Fähigkeiten, die ein OCDS eines eingebetteten Prozessors aufweisen sollte, um ein Programm auszutesten, gehört die Fähigkeit, Informationen zur Ablaufüberwachung zu sammeln. Trace-Informationen umfassen Informationen zur Abfolgeüberwachung des Programms, wie zum Beispiel Zeitstempel und Verzweigungsnachrichten. Das externe Test-Werkzeug und/oder der Hostcomputer können mit diesen Informationen zur Abfolgeüberwachung des Programms den Programmfluß rekonstruieren. Eine andere Art von Informationen zur Ablaufüberwachung, die von dem OCDS gesammelt werden sollten, sind Informationen zur Abfolgeüberwachung von Daten. Die Informationen zur Abfolgeüberwachung von Daten umfassen eine Liste von Lese- und Schreibzugriffen (Werte und Speicherstellen) auf den Speicher, die durch den eingebetteten Prozessor durchgeführt werden.
- Das OCDS kann außerdem in der Lage sein, spezifische Ereignisse in dem Zielprozessor zu überwachen. Zu solchen Ereignissen gehören Unterbrechungspunkte und Überwachungspunkte. Unterbrechungspunkte oder Überwachungspunkte sind bestimmte Bedingungen, auf die das OCDS den eingebetteten Prozessor überwacht. Wenn eine bestimmte Bedingung auftritt (z.B. ist der Wert eines bestimmten Registers gleich einer Spezifikation), dann wird entweder der Betrieb des eingebetteten Prozes sors angehalten (ein Unterbrechungspunkt) oder es erfolgt ein Hinweis, daß die Bedingung aufgetreten ist (Überwachungspunkt). Das OCDS sollte solche Ereignisinformationen sammeln. Vorzugsweise kann das OCDS auch den Typ oder die Menge der als Ergebnis eines Überwachungspunkts gesammelten Informationen zur Ablaufüberwachung ändern. Zu den weiteren Fähigkeiten eines OCDS kann die Fähigkeit zum Prüfen und potentiell zum Verändern des Werts in jedem einzelnen Register des eingebetteten Prozessors sowie anderer Speicherstellen in dem eingebetteten Prozessor gehören.
- In der Vergangenheit konnte ein eingebetteter Prozessor eine der vielen integrierten Schaltungen auf einem PCB sein. Obwohl die oben besprochenen Austest-Techniken auf den eingebetteten Prozessor (als eine getrennte integrierte Schaltung) angewandt werden können, hatten die anderen integrierten Schaltungen des PCBs bisher noch keine OCDS-Fähigkeiten. Statt dessen wurden andere Prüfungen an der Leiterplatte durchgeführt, um die Funktionsfähigkeit der anderen integrierten Schaltungen zu prüfen und Testinformationen aus den anderen integrierten Schaltungen zu erhalten. Diese Prüfungen waren notwendig, damit das PCB als Ganzes der Prüfung und dem Austesten unterzogen werden konnte. Man beachte, daß das Prüfen gewöhnlich in der Entwurfsphase eines Projekts stattfindet, während das Austesten während der Implementierungsphase stattfindet. Alle diese Prüfungen zum Austesten mehrerer Chips auf einer PCB sehen sich demselben Problem gegenüber – Extrahieren von Informationen aus Chips, die gewöhnlich keine besondere Vorkehrungen zum Exportieren oder Ausgeben von Zustandsinformationen aufweisen. Häufig verbindet und überwacht eine zum Austesten eines PCBs verwendete Prüfung die vielen Leitungen, die jeden Chip des PCBs verbinden. Dadurch können die Eingangs- und Ausgangssignale des Chips überwacht werden. Mit zunehmender Anzahl von Chips nimmt die Anzahl der die Chips mit dem Rest des PCBs verbindenden Leitungen proportional zu. Die Ausgabe von Informationen aus dem PCB heraus, die zur Überwachung und zum Austesten des PCBs notwendig ist, kann deshalb auch je nach Bedarf zunehmen, so daß ein solches Prüfen zum Austesten von PCBs durchführbar ist.
- Wie bereits erwähnt, werden die vielfältigen Funktionen, die von mehreren integrierten Schaltungen auf einem PCB durchgeführt werden, nun auf einem SOC integriert. Eine dieser Funktionen ist die eines eingebetteten Prozessors. Eine Funktion auf einem SOC kann dadurch beschrieben werden, dass sie von einer Funktionseinheit oder einem Kern von Schaltkreisen durchgeführt wird. Die Funktionen eines eingebetteten Prozessors können also durch einen Prozessorkern durchgeführt werden. Dieser Prozessorkern von Schaltkreisen auf einem SOC wird häufig eine kleinere Anzahl von Anschlüssen, die für seine Verwendung zugeteilt sind, aufweisen als wenn die äquivalente Funktion durch einen Prozessor als eine getrennte integrierte Schaltung durchgeführt werden würde. Eine Vergrößerung der Anzahl von Anschlüssen vergrößert die Herstellungskosten. Deshalb sind für Prüfzwecke weniger Anschlüsse verfügbar und Onchip-Debugging-Systeme werden noch wichtiger. Ein SOC, das einen Prozessorkern verwendet, weist Onchip-Debugging-Systemen somit wertvolle Chipfläche zu. Solche Onchip-Debugging-Systeme, die gemäß Standards wie zum Beispiel Nexus 5001 entworfen werden, verwenden dann eine bestimmte Anzahl von Anschlüssen zum Prüfen. Die Implementierung eines solchen Onchip-Debugging-Systems für einen Verarbeitungskern in einem SOC verhindert, daß die Aktivität eines Programms in dem Verarbeitungskern verborgen bleibt, und ermöglicht dem Programmierer, die Validierung, Prüfung und das Austesten des Entwurfs durchzuführen.
- Ein SOC mit einem Prozessorkern enthält jedoch auch andere Schaltungskerne. Wenn die Funktionen solcher anderer Schaltungskerne von getrennten integrierten Schaltungen auf einer PCB durchgeführt werden, ist das oben erwähnte passive Datensammeln bei Tests des PCBs für Austest-Zwecke ausreichend. Wie bei dem Prozessorkern sind jedoch auch bei den anderen Schaltungskernen gewöhnlich proportional weniger Anschlüsse verfügbar, als wenn ihre äquivalente Funktion als eine getrennte integrierte Schaltung durchgeführt werden würde, aufgrund der zunehmenden Aufwendungen solcher Anschlüsse im Hinblick auf Kosten und Chipfläche. Folglich bleibt Prozeßaktivität in diesen anderen Schaltungskernen vor dem SOC-Entwickler oder Programmierer „verborgen" (z.B. ist weniger zugänglich), wenn immer weniger Anschlüsse oder Leitungen oder andere Punkte zur Überwachung verfügbar werden. Statt dessen verbleiben Informationen, die zwischen den integrierten Schaltungen auf einer PCB ausgetauscht worden wären, nun in der integrierten Schaltung eines SOC und sind deshalb nicht für die Detektion durch einen Programmierer durch die zuvor beschriebenen Verfahren verfügbar.
- Folglich wird in der Technik eine neue Vorrichtung und/oder ein neues Verfahren zum effizienten Validieren und Austesten eines SOC benötigt.
- KURZE DARSTELLUNG DER ERFINDUNG
- Gemäß einem oder mehreren Aspekten der vorliegenden Erfindung wird eine integrierte Schaltung bereitgestellt, die folgendes umfasst:
- – mindestens einen Prozessorkern, der einen Schaltungsblock eines Prozessors umfasst;
- – mindestens eine Prozessoremulatorschaltung, die mit dem mindestens einen Prozessorkern gekoppelt ist und betreibbar ist, um Prozessoremulatordatensignale zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einen Prozessorkern zugeordnet ist, und um Prozessoremulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren;
- – mindestens einen anderen Kern, der wenigstens einen analogen Schaltungsblock umfasst;
- – mindestens eine andere Emulatorschaltung, die mit dem mindestens einen anderen Kern gekoppelt ist und betreibbar ist, um andere Emulatordatensignale aus der Überwachung von Schwellwertvariablen aus dem analogen Schaltungsblock zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einem anderen Kern zugeordnet ist, und um Emulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren; und
- – eine Emulationsschnittstellenschaltung, die mit der mindestens einen Prozessoremulatorschaltung und der mindestens einen anderen Emulatorschaltung gekoppelt ist und geeignet ist, die Prozessoremulatordatensignale und die anderen Emulatordatensignale zu empfangen, diese aus der integrierten Schaltung auszugeben, die Prozessoremulatorsteuersignale an die Prozessoremulatorschaltung und die Emulatorsteuersignale an die andere Emulatorschaltung zu senden; und
- – ein Bezugstaktsignal, das der Prozessoremulatorschaltung und der Emulatorschaltung zugeführt wird, wobei den Prozessoremulatordatensignalen Zeitinformationen zur Zeitstempelung, die bestimmten Datenstücken eine gegebene Zeit zuweist, aus dem Bezugstaktsignal zugeordnet sind und den anderen Emulatordatensignale Zeitinformationen zur Zeitstempelung aus dem Bezugstaktsignal zugeordnet sind, die eine zeitliche Ordnung der Prozessoremulatordatensignale und anderen Emulatordatensignale ermöglichen.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum Austesten eines auf einer integrierten Schaltung wirkenden Programms bereitgestellt. Das Verfahren umfaßt die folgende Schritte:
- – Bereitstellen der integrierten Schaltung, die mindestens einen Prozessorkern mit einem Schaltungsblock eines Prozessors, mindestens eine Prozessoremulatorschaltung, die mit dem mindestens einen Prozessorkern gekoppelt ist, mindestens einen anderen Kern, der wenigstens einen analogen Schaltungsblock, mindestens eine andere Emulatorschaltung, die mit dem mindestens einen anderen Kern gekoppelt ist, eine Emulationsschnittstellenschaltung, die mit der mindestens einen Prozessoremulatorschaltung und der mindestens einen anderen Emula torschaltung gekoppelt ist, und einen Port, der mit der Emulationsschnittstellenschaltung gekoppelt ist, umfasst;
- – Bereitstellen eines Bezugstaktsignals, das der Prozessoremulatorschaltung und der Emulatorschaltung zugeführt wird;
- – Bereitstellen von Prozessoremulatorsteuersignalen die eine bestimmte zu überwachende Prozeßaktivität des Prozessorkerns spezifizieren, an dem Port;
- – Übertragen der Prozessoremulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren, über die Emulationsschnittstellenschaltung an die Prozessoremulatorschaltung;
- – Bereitstellen von Emulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität des anderen Kerns spezifizieren, an dem Port;
- – Übertragen der Emulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren, über die Emulationsschnittstellenschaltung an die Emulatorschaltung;
- – Erzeugen von Prozessoremulatordatensignalen mit der Prozes soremulatorschaltung, die Informationen bezüglich der Prozeßaktivität anzeigen, die dem mindestens einen Prozessorkern zugeordnet ist, und der mittels des Bezugstakts Zeitinformationen zur Zeitstempelung, die bestimmten Datenstücken eine gegebene Zeit zuweist, zugeordnet werden, und gleichzeitig Erzeugen von anderen Emulatordatensignalen aus der Überwachung von Schwellwertvariablen aus einem analogen Schaltungsblock, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einem anderen Kern zugeordnet ist, und denen mittels des Bezugstakts Zeitinformationen zur Zeitstempelung, die bestimmten Datenstücken eine gegebene Zeit zuweist, zugeordnet werden;
- – Zuführen der Informationen, die Prozeßaktivität in dem Prozessorkern anzeigen, zu einer Emulationsschnittstellenschaltung;
- – Zuführen der Informationen, die Prozeßaktivität in einem anderen Kern anzeigen, zu der Emulationsschnittstellenschaltung;
- – zeitliches Ordnen der Prozessoremulatordatensignale und anderen Emulatordatensignale mittels der Timinginformationen des Bezugstakts in der Emulationsschnittstellenschaltung; und
- – Übertragen der zeitlich geordneten Prozessoremulatordatensignale und der anderen Emulatordatensignale von der Emulationsschnittstellenschaltung an den Port.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltbild einer integrierten Schaltung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung. -
1A ist ein Blockschaltbild eines Systems gemäß einem oder mehreren Aspekten der vorliegenden Erfindung. -
2 ist ein Blockschaltbild einer ausführlicheren alternativen Ausführungsform einer integrierten Schaltung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung. - AUSFÜHRLICHE BESCHREIBUNG
- Unter Bezugnahme auf die Zeichnung, bei der gleiche Bezugszahlen gleiche Elemente angeben, ist in
1 ein Blockschaltbild einer integrierten Schaltung100 gezeigt. Die integrierte Schaltung100 ist vorzugsweise ein SOC, zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC) Die integrierte Schaltung100 enthält vorzugsweise mehrere Kerne von Schaltkreisen (z.B. die Schaltungskerne102 ,106 und/oder andere, nicht gezeigte). Einige der einem SOC-Entwickler verfügbaren Arten von Kernen werden später ausführlicher besprochen. Die Schaltungskerne werden vorzugswei se ausgewählt und (unter Verwendung von „Anpasslogik") miteinander gekoppelt, um das SOC zu erzeugen. Solche von ASICs und anderen SOCs verwendeten Schaltungskerne können auch als Funktionseinheiten, Makrokomponenten der Systemebene, Makrofunktionen, Funktionsblöcke, Makrozellen, Funktionszellen, Baublöcke der Systemebene oder vielen anderen ähnlichen Begriffen bezeichnet werden. Jeder dieser Begriffe bezieht sich auf eine getrennte Gruppe von Schaltungen die einer besonderen Funktion oder Funktionen zugeordnet ist. - Vorzugsweise enthält die integrierte Schaltung
100 einen Prozessorkern102 , mindestens einen anderen Kern106 und eine Emulationsschnittstellenschaltung110 . Der Prozessorkern102 enthält vorzugsweise eine erste Emulatorschaltung104 (oder ist dieser zugeordnet), die betreibbar ist, um Zugang zu der Funktionsweise des Prozessorkerns102 bereitzustellen (z.B. auf Prozeßaktivität zuzugreifen, die ansonsten nicht überwachbar wäre). Die erste Emulatorschaltung104 liefert auf einem ersten Emulatordatenkanal112 Datensignale bezüglich des Zustands oder der Funktionsweise des Prozessorkerns102 . Als Alternative können Informationen über den Datenfluß aus der Emulationsschnittstellenschaltung110 über einen ersten Steuerkanal114 zu den ersten Emulationsschaltung104 weitergeleitet werden. - Vorzugsweise kann die erste Emulatorschaltung
104 Zugang zu dem Prozessorkern102 und somit verschiedene Arten und Mengen von Daten über den ersten Datenkanal112 für die Emulationsschnittstellenschaltung110 bereitstellen. Die Emulationsschnittstellenschaltung110 ist vorzugsweise betreibbar, um zu bewirken, daß die erste Emulatorschaltung104 die Art und die Menge der in dem Prozessorkern102 überwachten Prozeßaktivität und somit die Art und die Menge der über den ersten Datenkanal112 zu der Emulationsschnittstellenschaltung110 weitergeleiteten Daten ändert. Als Beispiel kann die Emulationsschnittstellenschaltung110 bewirken, daß die erste Emulatorschaltung104 wesentlich mehr Informationen oder weniger Informationen über die Prozesse in dem Prozessorkern102 überwacht und weiterleitet. - Die erste Emulatorschaltung
104 ist außerdem vorzugsweise betreibbar, um den Zustand und die Funktionsweise des Prozessorkerns102 gemäß Steuersignalen, die über den ersten Emulatorsteuerkanal114 empfangen werden, zu verändern. Vorzugsweise liefert die Emulationsschnittstellenschaltung110 die Emulationssteuersignale über den ersten Emulatorsteuerkanal114 und empfängt die Datensignale, die den Zustand der ersten Emulatorschaltung104 angeben. - Zwar hängt der spezifische Inhalt der durch die erste Emulatorschaltung
104 bereitgestellten Datensignale zum großen Teil von dem spezifischen Typ des verwendeten Prozessorkerns102 ab, es wird jedoch bevorzugt, daß die Datensignale Informationen enthalten, die sich für das Prüfen, die Entwurfsvalidierung, das Austesten usw. eignen. Zum Beispiel kann die erste Emulatorschaltung104 der Emulationsschnittstellenschaltung110 Informationen zur Abfolgeüberwachung des Programms und der Daten aus dem Prozessorkern102 liefern. Außerdem kann die erste Emulatorschaltung104 Datensignale liefern, die Informationen bezüglich eines oder mehrerer Register in dem Prozessorkern102 enthalten, und zwar vorzugsweise Informationen, die das Prüfen, die Entwurfsvalidierung, das Austesten usw. betreffen. Zum Beispiel kann die Emulatorschaltung104 Datensignale bereitstellen, die den Zustand eines oder mehrerer Register in dem Prozessorkern102 enthalten. Diese durch die Datensignale aus der erste Emulatorschaltung104 bereitgestellten Informationen können betrachtet werden, einen Teil des Zustands des Prozessorkerns102 oder den gesamten Zustand anzugeben. - Die erste Emulatorschaltung
104 reagiert vorzugsweise auf die über den Emulatorsteuerkanal114 aus der Emulationsschnittstellenschaltung110 empfangenen Steuersignale. Wiederum hängt der spezifische Inhalt der Steuersignale wahrscheinlich von dem Typ des verwendeten Prozessorkerns102 ab. Die durch die erste Emulatorschaltung104 über den ersten Emulatorsteuerkanal114 empfangenen Steuersignale können jedoch Änderungen sowohl in der ersten Emulatorschaltung104 als auch in dem Prozessorkern102 verursachen. Bei einer bevorzugten Ausführungsform können die Steuersignale bewirken, daß die erste Emulatorschaltung104 den Prozessorkern102 auf bestimmte Ereignisse, wie zum Beispiel Überwachungspunkte oder Unterbrechungspunkte, überwacht, oder die Menge oder den Typ der gesammelten Informationen zur Ablaufüberwachung ändert. Wenn die erste Emulatorschaltung104 solche Steuersignale empfangen kann, können Emulationsdatensignale, die durch die Emulationsschnittstellenschaltung110 über den ersten Emulatordatenkanal112 empfangen werden, Informationen bezüglich bestimmter Ereignisse, wie zum Beispiel Unterbrechungspunkte und Überwachungspunkte, enthalten. - Bei einer anderen Ausführungsform können die Steuersignale bewirken, daß die erste Emulatorschaltung
104 den Zustand von Schaltungen in dem Prozessorkern102 ändert. Bei einer weiteren Ausführungsform können die Steuersignale bewirken, daß die erste Emulatorschaltung104 den Zustand von Registern in dem Prozessorkern102 ändert. Außerdem können die Steuersignale bewirken, daß die erste Emulatorschaltung104 den Zustand der Speicherstellen in dem Prozessorkern ändert. Wenn die erste Emulatorschaltung104 solche Steuersignale empfängt, werden Emulationsdatensignale, die durch die Emulationsschnittstellenschaltung110 über den ersten Emulatordatenkanal112 empfangen werden, Informationen bezüglich des Zustands solcher Speicherstellen enthalten. - Der andere Kern
106 enthält vorzugsweise eine zweite Emulatorschaltung108 (oder ist dieser zugeordnet), die Zugang zu der Funktionsweise des anderen Kerns106 bereitstellen kann. Der andere Kern106 ist kein Prozessorkern. Die zweite Emulatorschaltung108 stellt vorzugsweise Zugang zu den Schaltungen und Funktionen in dem anderen Kern106 bereit, um das Prüfen, die Entwurfsvalidierung, das Austesten usw. zu ermöglichen. Zu diesem Zweck führt die zweite Emulatorschaltung108 vorzugsweise der Emulationsschnittstellenschaltung110 auf einem zweiten Emulatordatenkanal116 Datensignale zu. Der spezifische Inhalt der durch die zweite Emulatorschaltung108 bereitgestellten Datensignale wird abhängig von dem spezifischen Typ des verwendeten anderen Kerns106 unterschiedlich sein. Aufgrund der großen Anzahl möglicher anderer Kerne106 ist der Schwankungsbereich sehr groß. Wenn es sich bei dem anderen Kern 106 zum Beispiel hauptsächlich um analoge Schaltkreise handelt, dann könnte die zweite Emulationsschaltung108 Informationen darüber liefern, wann die Spannung eines bestimmten Punkts einen programmierten Pegel überschreitet. Wenn es sich bei dem anderen Kern106 hauptsächlich um digitale Logikschaltkreise handelt, kann er als finite Zustandsmaschine betrachtet werden, und die zweite Emulatorschaltung108 kann Informationen bezüglich des Zustands des anderen Kerns liefern. Die Informationen dienen ungeachtet des Typs des anderen Kerns106 vorzugsweise zum Prüfen, für die Entwurfsvalidierung, für das Austesten usw. - Die zweite Emulatorschaltung
108 reagiert vorzugsweise auf die über einen zweiten Emulatorsteuerkanal118 aus der Emulationsschnittstellenschaltung110 empfangenen Steuersignale. Der spezifische Inhalt der Steuersignale wird wahrscheinlich von dem Typ des verwendeten anderen Kerns106 abhängen. Die über den zweiten Emulatorsteuerkanal118 durch die zweite Emulatorschaltung108 empfangenen Steuersignale können jedoch Änderungen sowohl in der anderen Emulatorschaltung108 als auch in dem anderen Kern106 verursachen. Bei einer bevorzugten Ausführungsform können die Steuersignale bewirken, daß die andere Emulatorschaltung108 den anderen Kern106 auf spezifische Ereignisse, wie zum Beispiel Überwachungspunkte oder Unterbrechungspunkte, überwacht, oder die Menge und Art der gesammelten Informationen zur Ablaufüberachung ändert. Wenn die andere Emulatorschaltung108 solche Steuersignale empfängt, können Emulationsdatensignale, die von der Emulati onsschnittstellenschaltung110 über den zweiten Emulatordatenkanal116 empfangen werden, Informationen bezüglich spezifizierter Ereignisse, wie zum Beispiel Unterbrechungspunkte und Überwachungspunkte, sowie solche Informationen zur Ablaufüberwachung enthalten. - Durch die Emulationsschaltung
110 bereitgestellte Steuersignale können außerdem bewirken, daß die zweite Emulatorschaltung108 eine Änderung der Funktionsweise des anderen Kerns106 bewirkt. Zu solchen Änderungen der Funktionsweise kann zum Beispiel eine Veränderung der Zustände (oder Werte) in Registern in dem anderen Kern106 zählen. Die zweite Emulatorschaltung108 kann außerdem der Emulationsschnittstellenschaltung110 Zustandsinformationen über sich selbst zuführen. - Der Prozessorkern
102 und der andere Kern106 werden wahrscheinlich aufgrund verschiedener Architekturen verschiedene Befehle aufweisen. Wenn die Befehlssätze jedoch ähnlich genug sind, oder anders gesagt, die beiden Prozessoren als Zustandsmaschinen modelliert werden können, die ähnlich genug sind, dann kann die Steuerung der Befehle und Interpretationen hauptsächlich in der Emulationsschnittstellenschaltung110 verankert sein. Dies ist wünschenswert, da dadurch Chipfläche gespart wird. In einem allgemeineren Rahmen, in dem die Modelle der Zustandsmaschinen der beiden Prozessoren102 und106 sehr unterschiedlich sind, wird jedoch der Großteil der Informationen und der Logik, die zum Befehlen und Interpretieren von Signalen zu und von dem anderen Kern106 notwendig sind, in der Emulatorschaltung108 vorliegen. - Die Aktivitäten des Prüfens, der Entwurfsverifizierung, des Austestens usw. werden vorzugsweise durch Schaltungen außerhalb der integrierten Schaltung
100 beeinflußt. Zu diesem Zweck enthält die Emulationsschnittstellenschaltung110 vorzugsweise einen Port120 , durch den Eingangs-/Ausgangs(E/A)Informationen zu/von außerhalb der integrierten Schal tung100 geleitet werden. Die E/A-Informationen bewirken vorzugsweise, daß die Emulationsschnittstellenschaltung110 die Steuersignale sowohl zu der ersten Emulatorschaltung104 als auch der zweiten Emulatorschaltung108 sendet. Ähnlich werden die Datensignale sowohl der ersten Emulatorschaltung104 als auch der zweiten Emulatorschaltung108 vorzugsweise von der Emulationsschnittstellenschaltung110 durch den Port120 als Teil der E/A-Informationen bereitgestellt. Wie bereits oben erwähnt, hängt die Menge der durch die Emulationsschnittstellenschaltung110 durchgeführten Bearbeitung von den Emulatorschaltungen104 und108 ab. Die Emulationsschnittstellenschaltung110 wird jedoch mindestens Informationen komprimieren, Nachrichten senden bzw. empfangen und wählen, welche Daten gesendet werden sollen. -
1A zeigt das Onchip-Debugging-System der integrierten Schaltung100 , das wirksam an außerhalb der integrierten Schaltung100 angeordnete Schaltungen angekoppelt ist. Es ist die integrierte Schaltung100 , sowie der Port120 gezeigt. Der Port120 ist an das Test-Werkzeug130 angeschlossen. Das Austest-Werkzeug130 enthält Schaltkreise, die zur Bildung einer Schnittstelle mit der Emulationsschnittstellenschaltung110 notwendig sind. Als Beispiel kann das Test-Werkzeug130 die Schaltkreise enthalten, die für eine Kommunikation gemäß den durch die Standards JTAG und Nexus5001 dargelegten Protokollen notwendig sind. Das Test-Werkzeug kann weitere Funktionen enthalten, um einen Programmierer oder Systemarchitekten zu unterstützen. Zu solchen Funktionen kann die zeitliche Ordnung und Anzeige von Informationen zur Ablaufüberwachung des Programms und Daten sowie von Ereignisinformationen aus der Emulationsschnittstellenschaltung110 gehören. Als Alternative kann ein Teil dieser Funktionen von einem PC oder einer anderen an das Test-Werkzeug130 angeschlossenen Vielzweck-Datenverarbeitungsvorrichtung übernommen werden. - Der Ausdruck „zeitliche Ordnung", der in der vorliegenden Beschreibung verwendet wird, soll die Ordnung von Informations stücken gemäß einem jedem Stück zugeordneten Zeitstempel bedeuten. Durch eine solche zeitliche Ordnung können Informationen in jeder beliebigen zeitlichen Reihenfolge aus dem SOC
100 herausfließen, und wenn alle Informationsstücke durch Zeitstempelung zum entsprechenden Zeitpunkt mit einem Bezugstakt synchronisiert wurden, außerhalb des SOC umgeordnet werden. Die Verwendung eines Bezugstakts zur Zeitstempelung eines beliebigen Informationsstücks zum Austesten vor der Ausgabe aus dem SOC ermöglicht dem Entwickler, keine eigene Chipfläche für Schaltkreise aufzuwenden, um die Informationsstücke in dem SOC geordnet zu halten, und nicht die vergrößerte Bandbreite berücksichtigen zu müssen, die erforderlich wäre, um die intern zeitlich geordneten Informationen zu verschieben und auszugeben. - Vorteilhafterweise ermöglichen es die erste Emulatorschaltung
104 , die zweite Emulatorschaltung108 und die Emulatorschnittstellenschaltung110 einem SOC-Entwickler oder -Programmierer, den Prozessorkern102 und/oder den anderen Kern106 unter Verwendung der Emulationsschnittstellenschaltung110 zu prüfen, zu bewerten und/oder auszutesten. Unter anderem wird also eine zusätzliche Testmöglichkeit des anderen Kerns106 geschaffen, ohne daß zusätzliche Schnittstellenschaltkreise erforderlich sind. Da die Emulationsschnittstellenschaltung110 auf jeden Fall für die erste Emulatorschaltung104 verwendet werden würde, werden tatsächlich die Grundfläche der integrierten Schaltung und die Herstellungskosten verringert. Die Benutzung einer einzigen Schnittstellenschaltung110 sowohl für den Prozessorkern102 als auch für den anderen Kern106 ermöglicht außerdem die Verwendung eines einzigen Ports120 sowohl für den Prozessorkern102 als auch für den anderen Kern106 . Vorteilhafterweise muß also die Anzahl von Anschlüssen, die speziell dem Prüfen eines SOC zugeordnet werden muß, mit der Anzahl anderer verfügbarer Kerne nicht erhöht werden. - Es sei bemerkt, daß die einem Entwickler verfügbare Anzahl von Kernen (die zum Beispiel in einer ASIC-Bibliothek aufgelistet sind) zur Entwicklung eines SOC beträchtlich ist. Beispiele sind etwa Prozessorkerne, wie zum Beispiel die wohlbekannten ARM Prozessorkerne(Advanced Risk Machine), Speicherkerne, wie zum Beispiel RAM-Speicherkerne (darunter die vielen verschiedenen Varianten von RAM), ROM-Speicherkerne, Flash-Speicherkerne, PROM-Kerne, darunter EPROM- und EEPROM-Kerne und andere Speicherkerne. Zu anderen in ASIC-Bibliotheken verfügbaren Kernen gehören Kerne für digitale Signalverarbeitung. Diese sind in vielen verschiedenen Varianten erhältlich. Weitere Arten von Kernen, die in ASIC-Bibliotheken verfügbar sind, sind Multimedia-Kerne, die das Codieren oder Decodieren spezifischer Formate von Medien ermöglichen. Multimedia-Kerne sind zum Beispiel JPEG-Kerne, Motion-JPEG-Kerne, MPEG-Decodierungskerne, MP3-Kerne und andere Medienkerne. Darüber hinaus verfügbare Kerne in ASIC-Bibliotheken sind Kerne, die eine Vernetzung ermöglichen. Solche Kerne ermöglichen Ethernet-Vernetzung, TCP/IP-Vernetzung und/oder jedes beliebige andere übliche Schnittstellenprotokoll zur Vernetzung. Da SOCs analoge Schaltkreise (anstelle von digitaler Logik) verwenden können, sind in ASIC-Bibliotheken auch fertige analoge Kerne verfügbar, um beliebige der vielen Funktionen durchzuführen, für die sie gegenüber digitalen Logikkernen von Vorteil sind.
- Solche SOCs sind SOCs für „gemischte Signale", die sowohl analoge als auch digitale Signale enthalten. Häufig sind die Kerne selbst Kerne für gemischte Signale. Zum Beispiel erfordert ein Überwachen des Ausgangssignals einer analogen Schaltung einen Analog/Digital-Umsetzer (ADC). Alternativ wird bei Benutzung eines digitalen Signals zur Steuerung einer analogen Schaltung ein Digital/Analog-Umsetzer erforderlich.
- Jeder der oben erwähnten Kerne kann mit Schaltungen zur Onchip-Emulation ausgestattet werden, um Onchip-Debugging-Systeme zu ermöglichen. Eine Emulationsschaltung kann also zur Durchführung der Prüfung, Entwurfsvalidierung und des Austestens von Programmen und/oder Schaltungsfunktionen in jedem dieser Kerne verwendet werden. Die Möglichkeit, die Informationen aus dem Prozessorkern
102 und dem mindestens einen anderen Kern106 durch die gemeinsame Emulationsschnittstellenschaltung110 gemäß der Erfindung zu sammeln und zu steuern, vereinfacht den Austest- und Entwurfsvalidierungsprozeß für das gesamte SOC und durch Erweiterung auch für ein gesamtes PCB, auf der das SOC angebracht werden kann. - Ein Fachmann erkennt, daß die oben beschriebene Ausführungsform auf mehrere Prozessorkerne und mehrere andere Kerne erweitert werden kann. Vorteilhafterweise kann die Emulationsschnittstellenschaltung weiterhin von den mehreren Emulatorschaltungen, die dem mehr als einem Prozessorkern und dem mehr als einem anderen Kern zugeordnet sind, gemeinsam verwendet werden.
- Bei einer anderen Ausführungsform wird der ersten Emulatorschaltung
104 und der zweiten Emulatorschaltung108 ein Bezugstaktsignal zugeführt. Die erste Emulatorschaltung104 und die zweite Emulatorschaltung108 sind vorzugsweise betreibbar, um Timinginformationen aus dem Bezugstaktsignal in das Datensignal aus dem Prozessorkern102 bzw. das Datensignal aus dem anderen Kern106 einzufügen. Als Beispiel kann die erste Emulatorschaltung104 betreibbar sein, um zugeordnete Timinginformationen mit Informationen zur Abfolgeüberwachung des Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen in die Datensignale aus dem Prozessorkern102 einzufügen. Ähnlich kann die zweite Emulatorschaltung108 betreibbar sein, um Timinginformationen den Informationen zur Abfolgeüberwachung des Programms, den Informationen zur Abfolgeüberwachung von Daten und den Ereignisinformationen in den Datensignalen aus dem anderen Kern106 zuzuordnen. Die Zuordnung von Timinginformationen zu den jeweiligen Datensignalen kann als „Zeitstempelung" bezeichnet werden, da sie bestimmten Datenstücken eine gegebene Zeit zu weist. Eine solche Zeitstempelung durch ein Bezugstaktsignal synchronisiert die vielen verschiedenen Datenstücke aus Datensignalen aus dem Prozessorkern102 und Datensignalen aus dem anderen Kern106 , so daß sie später zeitlich geordnet werden können. - Bei einer bevorzugten Ausführungsform ist das Bezugstaktsignal das Signal, das entweder durch den Takt des Prozessorkerns
102 oder den Takt des anderen Kerns106 bereitgestellt wird. Bei einer besonders bevorzugten Ausführungsform ist das Bezugstaktsignal das Signal des schnellsten Takts der Kerne. Bei einer weiteren Ausführungsform liefert ein Bezugstakt auf dem SOC unabhängig von den Takten der Kerne das Bezugstaktsignal. - Bei einer weiteren Ausführungsform kann das Austest-Werkzeug
130 eine Schaltung enthalten, die zur zeitlichen Ordnung der jeweiligen zeitgestempelten Datensignale betreibbar ist. Vorzugsweise kann das Austest-Werkzeug130 eine Schaltung enthalten, die betreibbar ist, um folgendes zeitlich zu ordnen: die Informationen zur Abfolgeüberwachung des Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen aus der ersten Emulatorschaltung104 , abgeleitet aus dem Betrieb des Prozessorkerns102 , und die Informationen zur Abfolgeüberwachung des Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen aus der zweiten Emulatorschaltung108 , die aus dem Betrieb des anderen Kerns106 abzuleiten sind. - Bei einer weiteren Ausführungsform kann der Hostcomputer, wie zum Beispiel ein PC, Schaltkreise und/oder Software bereitstellen, die betreibbar sind, um die jeweiligen zeitgestempelten Datensignale zeitlich zu ordnen. Bei einer weiteren Ausführungsform enthält die Emulationsschnittstellenschaltung
110 vorzugsweise Schaltungen, die betreibbar sind, um die jeweiligen zeitgestempelten Datensignale zeitlich zu ordnen. Die über den ersten Emulatordatenkanal112 bereitgestellten Datensignale können zugeordnete Timinginformationen enthalten, und die über den zweiten Datenkanal116 bereitgestellten Datensignale können zugeordnete Timinginformationen enthalten. Die Software-Zeitordnungsfunktion kann die jeweiligen Datensignale nach Zeit ordnen und solche zeitlich geordneten Informationen durch den Port120 zu dem Austest-Werkzeug130 senden. - Eine alternative Ausführungsform der vorliegenden Erfindung ist als Teil eines Systems in
2 gezeigt.2 ist ein vereinfachtes Blockschaltbild eines Festplattensystems201 . Dieses Festplattensystem enthält eine Kopf-Testplatten-Baugruppe202 und ein IC204 zur Leistungs-und Bewegungssteuerung, die wirksam an die integrierte Schaltung (HDD-IC)200 der Festplattensteuerung angekoppelt sind. Das HDD-IC200 ist betreibbar, um eine Festplatte zu steuern. Das HDD-IC200 ermöglicht Lese- und Schreibzugriff zu den Informationen, die der Kopf-Testplatten-Baugruppe202 verfügbar sind. - Vorzugsweise enthält das HDD-IC
200 einen Prozessorkern206 , einen Lese-/Schreibkanal210 , eine Plattensteuerung212 und ein Emulationsschnittstellenmodul216 . Der Prozessorkern206 liefert die Funktionen eines Mikroprozessors. Der Prozessorkern206 ist wirksam an Programm- und Variablenspeicher208 angekoppelt gezeigt. Vorzugsweise enthält der Programm- und Variablenspeicher208 das Programm, das auf dem Prozessorkern206 laufen soll, und die Variablen, die durch das Programm in dem Prozessorkern206 erzeugt und verändert werden. Als Alternative kann der Prozessorkern206 als diesen Speicher als integralen Bestandteil enthaltend betrachtet werden. Der Prozessorkern206 ist außerdem wirksam durch den Bus215 an das IC204 zur Leistungs-und Bewegungssteuerung angekoppelt. Das IC204 zur Leistungs-und Bewegungssteuerung liefert dem Prozessorkern206 spezialisierte Steuerinformationen. Der Prozessorkern206 enthält die dritte Emulatorschaltung207 (oder ist dieser zugeordnet). Vorzugsweise ist die Funktionsweise der dritte Emulatorschaltung207 ähnlich wie bei der zuvor beschriebenen ersten Emulatorschaltung104 . - Die Plattensteuerung
212 ist ein Schaltungskern, der betreibbar ist, um Steuersignale zur Steuerung einer Kopfplattenbaugruppe, wie zum Beispiel der Kopf-Testplatten-Baugruppe202 , zu liefern. Vorzugsweise ist die Plattensteuerung212 wirksam an den Pufferspeicher214 angekoppelt. Vorzugsweise stellt der Pufferspeicher214 Pufferraum für durch die Plattensteuerung212 fließende Daten bereit. Die Plattensteuerung212 enthält die vierte Emulatorschaltung213 (oder ist dieser zugeordnet). Vorzugsweise ist die Funktionsweise der vierten Emulatorschaltung213 ähnlich wie bei der zuvor beschriebenen zweiten Emulatorschaltung108 . - Der Lese-/Schreibkanal
210 ist ein Schaltungskern, der betreibbar ist, um Eingangs-/Ausgangskommunikationsfähigkeiten bereitzustellen. Der Lese-/Schreibkanal210 ist wirksam an die Kopf-Testplatten-Baugruppe202 angekoppelt gezeigt. Vorzugsweise enthält der Lese-/Schreibkanal210 die fünfte Emulatorschaltung211 (oder ist dieser zugeordnet). Die fünfte Emulatorschaltung211 ist vorzugsweise der bereits beschriebenen zweiten Emulatorschaltung108 ähnlich. Vorzugsweise sind der Prozessorkern206 , der Lese-/Schreibkanal210 und die Plattensteuerung 212 wirksam an den Bus215 angekoppelt. - Bei einem Beispiel für den normalen Betrieb eines solchen Festplattensystems
201 wird ein Programm auf dem Prozessorkern206 ausgeführt. Das Programm ist vorzugsweise in dem Speicher208 gespeichert. Die von dem Programm erzeugten und manipulierten Variablen werden vorzugsweise auch in dem Speicher208 gespeichert. Das Programm bewirkt, daß der Prozessorkern206 das Festplattensystem201 betreibt. Der Prozessorkern206 ist betreibbar, um der Plattensteuerung212 über den Bus215 Steuersignale zuzuführen. Diese Steuersignale können u.a. bewirken, daß die Plattensteuerung212 die Kopf-Testplatten-Baugruppe202 betreibt, um zu bewirken, daß Daten gelesen und geschrieben werden. Es gibt mehrere Kombinationen der Kernbenutzung, die die Plattensteuerung212 bei der Erzeugung von Signalen unterstützen können. Ein Entwickler wird jedoch häufig versuchen, jedwede Last auf dem Prozessorkern zu minimieren, wodurch über das grundlegende Problem eines Mangels jeglicher zentralisierter Steuerungslogikschaltkreise hinausgehende Entwurfsprobleme weiter verkompliziert werden. Bei einer Ausführungsform kann der Prozessorkern206 Informationen aus dem IC204 zur Leistungs-und Bewegungssteuerung anfordern und empfangen. Solche Informationen sind betreibbar, um den Prozessorkern206 bei der Erzeugung von Steuersignalen, die der Plattensteuerung212 zugeführt werden sollen, zu unterstützen. Die von der Plattensteuerung212 zum Betrieb der Kopf-Testplatten-Baugruppe202 bereitgestellten Steuersignale werden vorzugsweise durch das IC204 zur Leistungs-und Bewegungssteuerung oder den Lese- und Schreibkanal210 übertragen. Vorzugsweise führt der Lese-/Schreibkanal210 diese Steuersignale aus der Plattensteuerung212 der Kopf-Testplatten-Baugruppe202 zu. Vorzugsweise empfängt der Lese-/Schreibkanal210 Daten aus der Kopf-Testplatten-Baugruppe202 . Der Lese-/Schreibkanal210 sendet diese Daten über den Datenbus (nicht gezeigt) zu der Plattensteuerung212 . Vorzugsweise können diese Daten in einem Pufferspeicher214 gepuffert werden. Vorzugsweise können diese gepufferten Daten durch einen nicht gezeigten Kommunikationskanal aus der integrierten Schaltung200 ausgegeben werden. - Das oben beschriebene Programm ermöglicht die Eingabe und Ausgabe von Daten aus der Kopf-Testplatten-Baugruppe
202 . Ein solches Programm kann Aktivität auf dem Prozessorkern206 , der Plattensteuerung212 und dem Lese-/Schreibkanal210 aufweisen. Das HDD-IC200 enthält ein Emulationsschnittstellenmodul216 , um eine Onchip-Emulation zu ermöglichen. Vorzugsweise liefert die dritte Emulatorschaltung207 auf dem Emulatordatenkanal218 Datensignale bezüglich der Funktionsweise des Prozessorkerns206 . Die dritte Emulatorschaltung207 ist vorzugsweise betreibbar, um den Zustand und die Funktionswei se des Prozessorkerns206 gemäß über den Emulatorsteuerkanal219 empfangenen Steuersignalen zu verändern. Vorzugsweise hat die Emulatorschnittstellenschaltung216 die Emulationssteuersignale über den Emulatorsteuerkanal219 bereitgestellt und empfängt die Emulationsdatensignale über den Emulatordatenkanal218 . - Zwar hängt der spezifische Inhalt der von der dritten Emulatorschaltung
207 bereitgestellten Datensignale zum großen Teil von dem spezifischen Typ des verwendeten Prozessorkerns206 ab, es wird jedoch bevorzugt, daß die Datensignale Informationen enthalten, die sich für das Prüfen, die Entwurfsvalidierung, das Austesten usw. eignen. Zum Beispiel sind die auf dem Datenkanal218 bereitgestellten Datensignale den auf dem Emulatordatenkanal112 bereitgestellten Datensignalen ähnlich. Ähnlich sind die von der Emulationsschnittstellenschaltung216 über den Emulationssteuerkanal219 bereitgestellten Steuersignale den über den Emulatorsteuerkanal114 bereitgestellten Steuersignalen ähnlich. - Die vierte Emulatorschaltung
213 gibt vorzugsweise Zugang zu den Schaltungen und ihren Funktionen in der Plattensteuerung 212, um das Prüfen, den Entwurf, die Validierung, das Austesten usw. zu erleichtern. Zu diesem Zweck liefert die Emulatorschaltung213 vorzugsweise Datensignale auf dem Emulatordatenkanal220 an die Emulationsschnittstellenschaltung216 . Der spezifische Inhalt der durch die dritte Emulatorschaltung213 gelieferten Datensignale hängt zum großen Teil von dem spezifischen Typ der verwendeten Plattensteuerung212 ab. Ähnlich gibt die fünfte Emulatorschaltung211 Zugang zu den Schaltungen und Funktionen in dem Lese-/Schreibkanal210 , um das Prüfen, den Entwurf, die Validierung, das Austesten usw. zu erleichtern. Zu diesem Zweck liefert die fünfte Emulatorschaltung211 Datensignale auf dem Emulatordatenkanal222 an die Emulationsschnittstellenschaltung216 . Wiederum hängt der spezifische Inhalt der von der fünten Emulatorschaltung211 bereitgestellten Datensignale zum großen Teil von dem spezifischen Typ des verwendeten Lese-/Schreibkanals210 ab. - Zum Beispiel enthalten sowohl die Plattensteuerung
212 als auch der Lese-/Schreibkanal210 oft eine Mischung von analogen Schaltkreisen und digitalen Schaltkreisen, wobei letztere als Zustandsmaschine beschreibbar sind. Somit können die vierte Emulatorschaltung213 und die fünfte Emulatorschaltung211 in der Lage sein, analoge Schaltkreise zum Beispiel auf Schwellenvariablen zu überwachen und dann die Informationen zu der Emulationsschnittstellenschaltung216 weiterzuleiten. Außerdem können die vierte Emulatorschaltung213 und die fünfte Emulatorschaltung211 in der Lage sein, auf Zustände zu überwachen und Informationen bezüglich dieser Zustände zu der Emulationsschnittstellenschaltung216 weiterzuleiten. - Die Aktivitäten des Prüfens, des Entwurfs, der Validierung, des Austestens usw. werden vorzugsweise durch Schaltungen außerhalb des HDD-IC
200 beeinflußt. Zu diesem Zweck enthält die Emulatorschnittstellenschaltung216 vorzugsweise einen Port224 , durch den Eingangs-/Ausgangs-(E/A-)Informationen zu/von außerhalb der integrierten Schaltung200 geleitet werden. Die E/A-Informationen bewirken vorzugsweise, daß die Emulatorschnittstellenschaltung216 die Steuersignale zu der dritten Emulatorschaltung207 , der vierten Emulatorschaltung213 und der fünften Emulatorschaltung211 , sendet. Ähnlich werden die Datensignale aus der dritten Emulatorschaltung207 , der vierten Emulatorschaltung213 und der fünften Emulatorschaltung211 vorzugsweise aus der Emulationsschnittstellenschaltung216 durch den Port224 als Teil der E/A-Informationen bereitgestellt. Der Port224 kann mit einem Test-Werkzeug verbunden sein, das dem Test-Werkzeug130 ähnlich ist. - Das HDD-IC
200 ist ein Beispiel für ein SOC. Bisher waren der Prozessorkern206 , der Lese-/Schreibkanal210 und die Plattensteuerung212 jeweils unabhängige integrierte Schaltungen auf einem PCB. Wenn die verschiedenen Schaltungskerne auf einer einzigen integrierten Schaltung200 integriert werden, wird die Entwurfsvalidierung, das Prüfen und das Austesten des auf dem Prozessorkern206 und über dem Rest der Schaltungskerne ablaufenden Programms wesentlich schwieriger. Die Prozeßaktivität auf der Plattensteuerung212 und dem Lese-/Schreibkanal210 wäre dem Programmierer wahrscheinlich verborgen. Vorteilhafterweise kann bei der vorliegenden Ausführungsform der Erfindung das Emulationsschnittstellenmodul216 Datensignale zum Prüfen und Austesten aus der Emulatorschaltung211 und der vierten Emulatorschalung213 des Lese-/Schreibkanals210 bzw. der Plattensteuerung212 empfangen und außerdem dieselben Emulatorschaltungen211 und213 konfigurieren. Durch diesen Zugriff auf Informationen und Steuerung wird das Austesten eines Programms auf einem SOC wesentlich einfacher. Außerdem ist vorteilhafterweise der Port224 ein einziger Zugriffsport aus einem Test-Werkzeug zu den oben erwähnten Informationen und der oben erwähnten Steuerung. - Obwohl die Erfindung hier mit Bezug auf besondere Ausführungsformen beschrieben wurde, versteht sich, daß diese Ausführungsformen lediglich die Prinzipien und Anwendungen der vorliegenden Erfindung veranschaulichen. Es versteht sich deshalb, daß zahlreiche Modifikationen an den Ausführungsbeispielen vorgenommen werden können und daß andere Anordnungen konzipiert werden können, ohne vom Gedanken und Umfang der vorliegenden Erfindung abzuweichen, der durch die angefügten Ansprüche definiert wird.
Claims (22)
- Integrierte Schaltung, umfassend: – mindestens einen Prozessorkern (
102 ), der einen Schaltungsblock eines Prozessors umfasst; – mindestens eine Prozessoremulatorschaltung (104 ), die mit dem mindestens einen Prozessorkern (102 ) gekoppelt ist und betreibbar ist, um Prozessoremulatordatensignale zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einen Prozessorkern (102 ) zugeordnet ist, und um Prozessoremulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren; – mindestens einen anderen Kern (106 ), der wenigstens einen analogen Schaltungsblock umfasst; – mindestens eine andere Emulatorschaltung (108 ), die mit dem mindestens einen anderen Kern (106 ) gekoppelt ist und betreibbar ist, um andere Emulatordatensignale aus der Überwachung von Schwellwertvariablen aus denn anlogen Schaltungsblock zu erzeugen, die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einem anderen Kern (106 ) zugeordnet ist, und um Emulatorsteuersignale zu empfangen, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren; und – eine Emulationsschnittstellenschaltung (110 ), die mit der mindestens einen Prozessoremulatorschaltung (104 ) und der mindestens einen anderen Emulatorschaltung (108 ) gekoppelt ist und geeignet ist, die Prozessoremulatordatensignale und die anderen Emulatordatensignale zu empfangen, diese aus der integrierten Schaltung auszugeben, die Prozessoremulatorsteuersignale an die Prozessoremulatorschaltung (104 ) und die Emulatorsteuersignale an die andere Emulatorschaltung (108 ) zu senden; und – ein Bezugstaktsignal, das der Prozessoremulatorschaltung (104 ) und der Emulatorschaltung (108 ) zugeführt wird, wobei den Prozessoremulatordatensignalen Zeitinformationen zur Zeitstempelung, die bestimmten Datenstücken eine gegebene Zeit zuweist, aus dem Bezugstaktsignal zugeordnet sind und den anderen Emulatordatensignale Zeitinformationen zur Zeitstempelung aus dem Bezugstaktsignal zugeordnet sind, die eine zeitliche Ordnung der Prozessoremulatordatensignale und anderen Emulatordatensignale ermöglichen. - Integrierte Schaltung nach Anspruch 1, bei der der mindestens eine andere Kern (
106 ) aus der folgenden Gruppe ausgewählt wird: ein Speichersteuerungskern, ein Direktspeicherzugriffssteuerungskern, ein Kern für digitale Signalverarbeitung, ein Multimedia-Verarbeitungskern, ein JPEG-Decodierungskern, ein MPEG-Decodierungskern, ein Vernetzungskern, ein Ethernet-Vernetzungskern, ein TCP/IP-Vernetzungskern, ein analoger Schaltungskern, ein Kern für eine einrichtungsspezifische Steuerung, ein Plattensteuerungskern, ein Kern eines allgemeinen Automaten und ein Kommunikationskern. - Integrierte Schaltung nach Anspruch 2, bei der die Datensignale Informationen zur Ablaufüberwachung des Programms, Informationen zur Ablaufüberwachung von Daten, Ereignisinformationen und/oder einem oder mehreren Registern in dem Prozessorkern (
102 ) zugeordnete Daten enthalten. - Integrierte Schaltung nach Anspruch 1, bei der die mindestens eine Emulationsschnittstellenschaltung (
110 ) weiterhin betreibbar ist, um die Steuersignale aus einer oder mehreren außerhalb der integrierten Schaltung (100 ), angeordneten Quellen zu empfangen. - Integrierte Schaltung nach Anspruch 1, bei der die spezifizierte Prozeßaktivität einen oder mehrere Überwachungspunkte oder Unterbrechungspunkte umfaßt.
- Integrierte Schaltung nach Anspruch 5, bei der die mindestens eine Prozessoremulatorschaltung (
104 ) darüber hinaus betreibbar ist, um die Prozeßaktivität des mindestens einen Prozessorkerns (102 ) als Reaktion auf die Prozessoremulatorsteuersignale zu verändern. - Integrierte Schaltung nach Anspruch 6, bei der die Veränderung der Prozeßaktivität des mindestens einen Prozessorkerns (
102 ) das Anhalten der Prozeßaktivität, das Verändern der in einem oder mehreren Registern gespeicherten Werte und/oder das Ändern anderer Aspekte der Prozeßaktivität umfaßt. - Integrierte Schaltung nach Anspruch 1, bei der die Prozessoremulatordatensignale Informationen zur Abfolgeüberwachung eines Programms, Informationen zur Abfolgeüberwachung von Daten, Daten aus einem oder mehreren Registern in dem Prozessorkern (
102 ) und/oder Informationen, die aus der Überwachung des mindestens einen Prozessorkerns (102 ) auf spezifizierte Prozeßaktivität abgeleitet werden, enthalten. - Integrierte Schaltung nach Anspruch 8, bei der die aus der Überwachung des mindestens einen Prozessorkerns (
102 ) auf bestimmte Prozeßaktivität abgeleiteten Informationen Informationen über Überwachungspunkte und Unterbrechungspunkte enthalten. - Integrierte Schaltung nach Anspruch 10, bei der die Emulationsschnittstellenschaltung (
110 ) weiterhin betreibbar ist, um die Emulatorsteuersignale des anderen Kerns (106 ) aus einer oder mehreren außerhalb der integrierten Schaltung (100 ) angeordneten Quellen zu empfangen. - Integrierte Schaltung nach Anspruch 1, bei der die spezifizierte Prozeßaktivität einen oder mehrere Überwachungspunkt oder Unterbrechungspunkt umfaßt.
- Integrierte Schaltung nach Anspruch 12, bei der die mindestens eine andere Emulatorschaltung (
108 ) weiterhin betreibbar ist, um die Prozeßaktivität des mindestens einen anderen Kerns (106 ) zu verändern. - Integrierte Schaltung nach Anspruch 12, bei der die Veränderung der Prozeßaktivität mindestens das Anhalten der Prozeßaktivität, das Ändern der in einem oder mehreren Registern gespeicherten Werte und das Ändern anderer Aspekte der Prozeßaktivität umfaßt.
- Integrierte Schaltung nach Anspruch 13, bei der die aus der Überwachung des mindestens einen anderen Kerns (
106 ) auf spezifizierte Prozeßaktivität abgeleiteten Informationen Informationen über Überwachungspunkte und Unterbrechungspunkte enthalten. - Integrierte Schaltung nach Anspruch 14, bei der die Emulationsschnittstellenschaltung (
110 ) einen Port enthält, durch den die Emulationsschnittstellenschaltung (110 ) weiterhin betreibbar ist, um aus der integrierten Schaltung ein Datensignal der Emulationsschnittstellenschaltung zu senden, das Informationen aus den Prozessoremulatordatensignalen und den anderen Emulatordatensignalen umfasst. - Integrierte Schaltung nach Anspruch 15, bei der die Emulationsschnittstellenschaltung einen Port enthält, durch den die Steuerung der Emulationsschnittstellenschaltung (
110 ) weiterhin betreibbar ist, um Steuersignale für die Emulationsschnittstellenschaltung zu empfangen, die Informationen für die Prozessoremulatorsteuersignale und die anderen Emulatorsteuersignale umfasst. - Integrierte Schaltung nach Anspruch 16, bei der die in den Prozessoremulatordatensignalen enthaltenen Timinginformationen und die in den anderen Emulatordatensignalen enthaltenen Timinginformationen eine zeitliche Ordnung der Informationen der Ablaufüberwachung des Programms der Prozessoremulatordatensignale und der Informationen der Ablaufüberwachung des Programms der anderen Emulatordatensignale ermöglichen.
- Integrierte Schaltung nach Anspruch 16, bei der die in den Prozessoremulatordatensignalen enthaltenen Timinginformationen und die in den anderen Emulatordatensignalen enthaltenen Timinginformationen eine zeitliche Ordnung der Informationen der Ablaufüberwachung von Daten der Prozessoremulatordatensignale und der Informationen der Ablaufüberwachung der anderen Emulatordatensignale ermöglichen.
- Integrierte Schaltung nach Anspruch 18, bei der die in den Prozessoremulatordatensignalen enthaltenen Timinginformationen und die in den anderen Emulatordatensignalen enthaltenen Timinginformationen eine zeitliche Ordnung der Ereignisinformationen der Prozessoremulatordatensignale und der Ereignisinformationen der anderen Emulatordatensignale ermöglichen.
- Integrierte Schaltung nach Anspruch 19, weiterhin mit einem Taktsignalgenerator, der betreibbar ist, um ein Bezugstaktsignal bereitzustellen.
- Integrierte Schaltung nach Anspruch 20, bei der ein lokaler Takt eines beliebigen der Kerne das Bezugstaktsignal liefert.
- Verfahren zum Testen einer integrierten Schaltung, umfassend: – Bereitstellen der integrierten Schaltung, die mindestens einen Prozessorkern (
102 ) mit einem Schaltungsblock eines Prozessors, mindestens eine Prozessoremulatorschaltung (104 ), die mit dem mindestens einen Prozessorkern (102 ) gekoppelt ist, mindestens einen anderen Kern (106 ), der wenigstens einen analogen Schaltungsblock, mindestens eine andere Emulatorschaltung (108 ), die mit dem mindestens einen anderen Kern (106 ) gekoppelt ist, eine Emulationsschnittstellenschaltung (110 ), die mit der mindestens einen Prozessoremulatorschaltung (104 ) und der mindestens einen anderen Emulatorschaltung (108 ) gekoppelt ist, und einen Port (120 ), der mit der Emulationsschnittstellenschaltung (110 ) gekoppelt ist, umfasst; – Bereitstellen eines Bezugstaktsignals, das der Prozessoremulatorschaltung (104 ) und der Emulatorschaltung (108 ) zugeführt wird; – Bereitstellen von Prozessoremulatorsteuersignalen, die eine bestimmte zu überwachende Prozeßaktivität des Prozessorkerns (102 ) spezifizieren, an dem Port (120 ); – Übertragen der Prozessoremulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren, über die Emulationsschnittstellenschaltung (110 ) an die Prozessoremulatorschaltung (104 ); – Bereitstellen von Emulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität des anderen Kerns (106 ) spezifizieren, an dem Port (120 ); – Übertragen der Emulatorsteuersignale, die eine bestimmte zu überwachende Prozeßaktivität spezifizieren, über die Emulationsschnittstellenschaltung (110 ) an die Emulatorschaltung (108 ); – Erzeugen von Prozessoremulatordatensignalen mit der Prozessorernulatorschaltung (104 ), die Informationen bezüglich der Prozeßaktivität anzeigen, die dem mindestens einen Prozessorkern (102 ) zugeordnet ist, und der mittels des Bezugstakts Zeitinformationen zur Zeitstempelung, die bestimmten Datenstücken eine gegebene Zeit zuweist, zugeordnet werden, und gleichzeitig Erzeugen von anderen Emulatordatensignalen aus der Überwachung von Schwellwertvariablenaus einem anlogen Schaltungsblock die Informationen bezüglich Prozeßaktivität anzeigen, die dem mindestens einem anderen Kern (106 ) zugeordnet ist, und denen mittels des Bezugstakts Zeitinformationen zur Zeitstempelung, die bestimm ten Datenstücken eine gegebene Zeit zuweist, zugeordnet werden; – Zuführen der Informationen, die Prozeßaktivität in dem Prozessorkern (102 ) anzeigen, zu einer Emulationsschnittstellenschaltung (110 ); – Zuführen der Informationen, die Prozeßaktivität in einem anderen Kern (106 ) anzeigen, zu der Emulationsschnittstellenschaltung (110 ) ; – zeitliches Ordnen der Prozessoremulatordatensignale und anderen Emulatordatensignale mittels der Timinginformationen des Bezugstakts in der Emulationsschnittstellenschaltung (110 ); und – Übertragen der zeitlich geordneten Prozessoremulatordatensignale und der anderen Emulatordatensignale von der Emulationsschnittstellenschaltung (110 ) an den Port.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/202372 | 2002-07-24 | ||
US10/202,372 US7058855B2 (en) | 2002-07-24 | 2002-07-24 | Emulation interface system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10333817A1 DE10333817A1 (de) | 2004-02-26 |
DE10333817B4 true DE10333817B4 (de) | 2005-07-28 |
Family
ID=30769816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10333817A Expired - Lifetime DE10333817B4 (de) | 2002-07-24 | 2003-07-24 | Emulationsschnittstellensystem |
Country Status (2)
Country | Link |
---|---|
US (1) | US7058855B2 (de) |
DE (1) | DE10333817B4 (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10138918A1 (de) * | 2001-08-08 | 2003-03-06 | Infineon Technologies Ag | Programmgesteuerte Einheit |
US7162411B2 (en) * | 2002-11-22 | 2007-01-09 | Texas Instruments Incorporated | Dynamic data trace output scheme |
US6963963B2 (en) * | 2003-03-25 | 2005-11-08 | Freescale Semiconductor, Inc. | Multiprocessor system having a shared main memory accessible by all processor units |
US8099273B2 (en) * | 2003-06-05 | 2012-01-17 | Mentor Graphics Corporation | Compression of emulation trace data |
US7065601B2 (en) * | 2003-06-06 | 2006-06-20 | Stmicroelectronics N.V. | Interface for prototyping integrated systems |
DE10345150B3 (de) * | 2003-09-29 | 2005-04-14 | Advanced Micro Devices, Inc., Sunnyvale | Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen |
US20050086042A1 (en) * | 2003-10-15 | 2005-04-21 | Gupta Shiv K. | Parallel instances of a plurality of systems on chip in hardware emulator verification |
US7500152B2 (en) * | 2003-12-05 | 2009-03-03 | Freescale Semiconductor, Inc. | Apparatus and method for time ordering events in a system having multiple time domains |
CN100517255C (zh) * | 2004-08-25 | 2009-07-22 | 鸿富锦精密工业(深圳)有限公司 | 主机板的串行高阶硬盘架构接口功能测试装置 |
DE102004041428A1 (de) * | 2004-08-27 | 2006-03-02 | Daimlerchrysler Ag | Systemintegrationsprüfstand für vernetzte mechatronische Gesamtsysteme |
US7721260B2 (en) * | 2004-09-08 | 2010-05-18 | Kozio, Inc. | Embedded Test I/O Engine |
US20060079983A1 (en) * | 2004-10-13 | 2006-04-13 | Tokyo Electron Limited | R2R controller to automate the data collection during a DOE |
US7404160B2 (en) * | 2005-02-18 | 2008-07-22 | Quickturn Design Systems Inc. | Method and system for hardware based reporting of assertion information for emulation and hardware acceleration |
US8046187B2 (en) * | 2005-02-24 | 2011-10-25 | International Business Machines Corporation | Test systems for media drives of data storage systems |
US8881114B2 (en) * | 2005-05-16 | 2014-11-04 | Texas Instruments Incorporated | Stored program writing stall information when a processor stalls waiting for another processor |
US7447874B1 (en) * | 2005-10-18 | 2008-11-04 | Qlogic, Corporation | Method and system for designing a flexible hardware state machine |
US7493519B2 (en) * | 2005-10-24 | 2009-02-17 | Lsi Corporation | RRAM memory error emulation |
US7461186B2 (en) * | 2006-02-03 | 2008-12-02 | Infineon Technologies Ag | Data handover unit for transferring data between different clock domains by parallelly reading out data bits from a plurality of storage elements |
US7849315B2 (en) * | 2006-05-22 | 2010-12-07 | General Dynamics C4 Systems, Inc. | Method for managing operability of on-chip debug capability |
US8027828B2 (en) * | 2006-05-31 | 2011-09-27 | Cadence Design Systems, Inc. | Method and apparatus for synchronizing processors in a hardware emulation system |
US20080184150A1 (en) * | 2007-01-31 | 2008-07-31 | Marc Minato | Electronic circuit design analysis tool for multi-processor environments |
US8074131B2 (en) * | 2009-06-30 | 2011-12-06 | Intel Corporation | Generic debug external connection (GDXC) for high integration integrated circuits |
US8607202B2 (en) | 2010-06-04 | 2013-12-10 | Lsi Corporation | Real-time profiling in a multi-core architecture |
US8464107B2 (en) * | 2010-06-28 | 2013-06-11 | Qualcomm Incorporated | Surrogate circuit for testing an interface |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US8972707B2 (en) | 2010-12-22 | 2015-03-03 | Via Technologies, Inc. | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US9460038B2 (en) * | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8930752B2 (en) | 2011-02-15 | 2015-01-06 | International Business Machines Corporation | Scheduler for multiprocessor system switch with selective pairing |
US8671311B2 (en) | 2011-02-15 | 2014-03-11 | International Business Machines Corporation | Multiprocessor switch with selective pairing |
US8635492B2 (en) | 2011-02-15 | 2014-01-21 | International Business Machines Corporation | State recovery and lockstep execution restart in a system with multiprocessor pairing |
TW201249029A (en) * | 2011-05-20 | 2012-12-01 | Hon Hai Prec Ind Co Ltd | Controller IC adapter tool |
US20130173077A1 (en) * | 2011-12-29 | 2013-07-04 | Lsi Corporation | Power switch having series-connected switching stages |
US8854127B2 (en) | 2012-05-15 | 2014-10-07 | Intel Mobile Communications GmbH | DC-DC converter for envelope tracking |
US9372777B2 (en) * | 2013-02-28 | 2016-06-21 | International Business Machines Corporation | Collecting and attaching a bug trace to a problem information technology ticket |
CN104360217A (zh) * | 2014-11-19 | 2015-02-18 | 浪潮(北京)电子信息产业有限公司 | 一种漏电检测方法及系统 |
US10102050B2 (en) * | 2015-02-05 | 2018-10-16 | Microchip Technology Incorporated | System and method for generating cross-core breakpoints in a multi-core microcontroller |
TWI775307B (zh) * | 2021-02-04 | 2022-08-21 | 新唐科技股份有限公司 | 半導體裝置及其操作方法 |
CN114062896A (zh) * | 2021-11-11 | 2022-02-18 | 深圳市慧邦电子科技有限公司 | 一种集成电路的成品测试方法和存储介质 |
CN116189457B (zh) * | 2023-03-09 | 2023-12-26 | 深圳榕亨实业集团有限公司 | 一种用于交通的智能化手动控制装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6425101B1 (en) * | 1998-10-30 | 2002-07-23 | Infineon Technologies North America Corp. | Programmable JTAG network architecture to support proprietary debug protocol |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3721719A1 (de) * | 1987-07-01 | 1989-01-12 | Lawrenz Wolfhard | Verfahren zur pruefung eines netzwerkaufbaus |
KR960009824B1 (en) * | 1994-02-03 | 1996-07-24 | Lg Semicon Co Ltd | Micro-computer |
US6516428B2 (en) * | 1999-01-22 | 2003-02-04 | Infineon Technologies Ag | On-chip debug system |
US6918065B1 (en) * | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6928403B2 (en) * | 2000-03-02 | 2005-08-09 | Texas Instruments Incorporated | Automatic detection of connectivity between an emulator and a target device |
GB0025593D0 (en) * | 2000-10-18 | 2000-12-06 | Sgs Thomson Microelectronics | On-chip emulator communication |
DE10116861A1 (de) * | 2001-04-04 | 2002-10-31 | Infineon Technologies Ag | Programmgesteuerte Einheit |
-
2002
- 2002-07-24 US US10/202,372 patent/US7058855B2/en not_active Expired - Lifetime
-
2003
- 2003-07-24 DE DE10333817A patent/DE10333817B4/de not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6425101B1 (en) * | 1998-10-30 | 2002-07-23 | Infineon Technologies North America Corp. | Programmable JTAG network architecture to support proprietary debug protocol |
Non-Patent Citations (1)
Title |
---|
Press Release: Ashling launches initiative on multi-core SoC debugging, Ashling, San Francisco, USA, 13.03.02, S.1-2 [http://www.ashling.com/pdf_ papers/PR_MCD.pdf] (recherchiert am 25.11.04) * |
Also Published As
Publication number | Publication date |
---|---|
US20040019827A1 (en) | 2004-01-29 |
DE10333817A1 (de) | 2004-02-26 |
US7058855B2 (en) | 2006-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10333817B4 (de) | Emulationsschnittstellensystem | |
EP1720100B1 (de) | Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit | |
DE69915377T2 (de) | Auf-chip fehlersuchsystem | |
DE3903835C2 (de) | ||
DE19834191C2 (de) | Integrierte Schaltungsvorrichtung und ihr Steuerverfahren | |
DE102008060790A1 (de) | Einchipsystem mit einer Master/Slave-Debug-Schnittstelle | |
DE60215730T2 (de) | Vorrichtung und Verfahren zur Leistungsmessung in einem digitalen Signalprozessor unter Verwendung von Ablaufdaten und Simulationstechniken. | |
DE10127170A1 (de) | Fehlersuchverfahren und Fehlersuchvorrichtung | |
DE69815006T2 (de) | Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten | |
DE102012224276B4 (de) | Verzögerte Ausführung auf mehreren Prozessoren | |
DE60118089T2 (de) | Abtastschnittstelle mit Zeitmultiplexmerkmal zur Signalüberlagerung | |
WO2004049159A2 (de) | Einrichtung und verfahren zur analyse von eingebetteten systemen | |
DE10118502C1 (de) | Verfahren zur Erfassung und Aufzeichnung von Systeminformationen und Abläufen in verteilten nebenläufigen komponentenbasierten Softwaresystemen | |
DE3037475A1 (de) | Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage | |
EP1449083B1 (de) | Verfahren zum debuggen rekonfigurierbarer architekturen | |
AT505630B1 (de) | Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen | |
DE10213009A1 (de) | Verfahren zum elektronischen Testen von Speichermodulen | |
DE10139660B4 (de) | Programmgesteuerte Einheit mit Debug-Ressourcen | |
DE69915788T2 (de) | Mikrokontrollgerät mit Fehlerbeseitigungsunterstützung | |
US9494648B2 (en) | Comparator with load signal output connected to timestamp value register | |
EP2653850B1 (de) | Verfahren und IT-System zum Durchführen von Gesamtfahrzeugtests | |
EP1248195B1 (de) | Verbindungsprüfung zwischen einer programmgesteuerten Einheit und einer Schaltung | |
DE102022127485A1 (de) | Sättigung mehrerer pcie-steckplätze in einem server durch mehrere anschlüsse auf einer einzigen testkarte | |
DE102011110366A1 (de) | Verfahren, elektronische Vorrichtung und Austesteinheit zum Schätzen eines Leistungsverbrauchs einer Anwendung | |
EP1248197A2 (de) | Verfahren zum Emulieren einer programmgesteuerten Einheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: QIMONDA AG, 81739 MUENCHEN, DE |
|
R081 | Change of applicant/patentee |
Owner name: SAMSUNG ELECTRONICS CO., LTD., SUWON-SI, KR Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE Owner name: INFINEON TECHNOLOGIES AG, DE Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE |
|
R081 | Change of applicant/patentee |
Owner name: SAMSUNG ELECTRONICS CO., LTD., SUWON-SI, KR Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE |
|
R081 | Change of applicant/patentee |
Owner name: SAMSUNG ELECTRONICS CO., LTD., SUWON-SI, KR Free format text: FORMER OWNER: SAMSUNG ELECTRONICS CO., LTD., SUWON-SI, GYEONGGI-DO, KR |
|
R071 | Expiry of right |