DE102006019292A1 - Modellieren programmierbarer Einrichtungen - Google Patents

Modellieren programmierbarer Einrichtungen Download PDF

Info

Publication number
DE102006019292A1
DE102006019292A1 DE102006019292A DE102006019292A DE102006019292A1 DE 102006019292 A1 DE102006019292 A1 DE 102006019292A1 DE 102006019292 A DE102006019292 A DE 102006019292A DE 102006019292 A DE102006019292 A DE 102006019292A DE 102006019292 A1 DE102006019292 A1 DE 102006019292A1
Authority
DE
Germany
Prior art keywords
test program
simulation
target
target device
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102006019292A
Other languages
English (en)
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of DE102006019292A1 publication Critical patent/DE102006019292A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Simulation einer programmierbaren Zieleinrichtung, welche Zielprogrammcode ausführt, wird durch einen Simulationscode 2 bereitgestellt. Ein Testprogramm 10 einer Hostsimulation bietet Zugriff auf Hostressourcen zum Testen des Simulationscodes 2. Ein Testprogramm 18 der Zieleinrichtung gibt Zugriffsanforderungen an eine Testprogrammschnittstelle 6 innerhalb des Simulationscodes 2 aus, um Zielressourceninformation zu gewinnen, welche den Zustand der modellierten, programmierbaren Zieleinrichtung beim Ausführen ihres Zielprogrammcodes anzeigt. Auf diese Weise kann ein gleichzeitiges Testen bzw. Fehlersuchen der Simulation einer programmierbaren Zieleinrichtung ebenso wie des Zielprogrammcodes, der in simulierter Form auf der programmierbaren Zieleinrichtung abläuft, bereitgestellt werden.

Description

  • Die vorliegende Erfindung bezieht sich auf das Gebiet der Modellierung bzw. modellhaften Darstellung elektronischer Einrichtungen. Genauer gesagt bezieht sich die Erfindung auf das Gebiet der Modellierung programmierbarer Einrichtungen, welche Programmbefehle ausführen.
  • Es ist bekannt, Modelle von Datenverarbeitungseinrichtungen, wie z.B. Mikroprozessoren, DSPs, usw., bereitzustellen, die verwendet werden können, um das Verhalten dieser Einrichtungen bzw. Geräte zu untersuchen. Derartige Modelle werden oftmals in der Entwurfs- und Entwicklungsstufe neuer programmierbarer Einrichtungen verwendet, um die Fähigkeiten dieser Einrichtungen bzw. dieser Geräte zu erforschen, ohne daß es notwendig ist, daß die realen Einrichtungen hergestellt werden. Weiterhin benötigen programmierbare Einrichtungen auch geeignete Programme, die entwickelt werden müssen, damit sie auf ihnen laufen und es ist wünschenswert in der Lage zu sein, auch das Verhalten solcher Programme modellhaft darzustellen, bevor die realen Einrichtungen verfügbar werden. Auf diese Weise hilft das Modellieren, potentielle Probleme in einem frühen Entwicklungsstadium zu erkennen, so daß diese Probleme relativ einfach und preiswert durch geeignete Änderungen des Entwurfs überwunden werden können. In der Lage zu sein, Programme parallel mit der Hardware zu entwickeln, auf welcher sie ablaufen, reduziert auch die Gesamtentwicklungszeit, was ebenfalls vorteilhaft ist.
  • Um die obengenannten Erfordernisse anzugehen, ist es bekannt, Modellierwerkzeuge wie z.B. MaxCore, das von ARM Limited in Cambridge, England, hergestellt wird, bereitzustellen. Solche Werkzeuge sind in der Lage, eine formale Definition der Verhaltensmerkmale einer neuen programmierbaren Einrichtung, wie z.B. eines Mikroprozessorkernes, vorzunehmen, die in einer Sprache wie z.B. LISA bereitgestellt wird, und diese zu verwenden, um automatisch ein zyklusgenaues Modell der programmierbaren Einrichtung zu erzeugen. Dieses zyklusgenaue Modell liefert Simulationscode, den man auf einem Hostprozessor laufen lassen kann, wie z.B. auf einem Vielzweckcomputer hoher Leistungsfähigkeit, um das Verhalten der simulierten, programmierbaren Einrichtung zu untersuchen. Es ist bekannt, Simulationscode auf diese Weise zu verwenden, um eine Zieleinrichtung zu simulieren, die verwendet wird, um Programmcode auszuführen. Das Modell der programmierbaren Einrichtung kann jedoch selbst Fehler enthalten, die erkannt und repariert werden müssen. Der Programmcode, welcher der simulierten Ausführung ausgesetzt ist, kann in ähnlicher Weise Fehler enthalten, die erkannt und repariert werden müssen. Probleme tauchen insofern auf, als daß dann, wenn eine Simulation läuft und unerwartete Ergebnisse erzeugt, es möglicherweise schwierig ist, festzustellen, ob das Problem in der Simulation der Hardware liegt oder in dem Programmcode, welcher Gegenstand der simulierten Ausführung ist. Insbesondere kann der Simulationscode, der die Hardware simuliert, welche den Programmcode ausführt, ein unerwartetes Verhalten zeigen, was ein Hinweis auf einen Fehler ist, und es ist dennoch anhand des Zustandes des Simulationscodes, welcher das Verhalten der Hardware simuliert, schwierig festzustellen, welcher Punkt in der Ausführung des Programmiercode erreicht worden ist und was der modellierte Architekturzustand der programmierbaren Einrichtung war, der erreicht worden ist.
  • Unter einem Aspekt gesehen stellt die vorliegende Erfindung ein Verfahren zur Fehlersuche bzw. zum Testen einer Simulation einer programmierbaren Zieleinrichtung vor, welche Zielprogrammcode ausführt, wobei das Verfahren die Schritte aufweist:
    Ausführen von Simulationscode auf einem Hostprozessor, um die Betriebsweise der programmierbaren Zieleinrichtung zu simulieren, welche den Zielprogrammcode ausführt, wobei der Simulationscode in der Weise betreibbar ist, daß er einen Speicher aktueller Werte von Zielressourcen der simulierten, programmierbaren Zieleinrichtung aufrechterhält,
    Ausführen eines Simulationstestprogrammes (Debugger) des Host, um Zugriff auf Hostressourcen des Hostprozessors während der Ausführung des Simulationscodes durch den Hostprozessor zu gewähren, und
    Ausführen eines Testprogramms der Zieleinrichtung, um einen Zugriff auf Zielressourcen während der simulierten Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung bereitzustellen, wobei
    die Ausführung des Simulationstestprogrammes des Host und des Testprogrammes der Zieleinrichtung synchronisiert sind und wobei die Testeinrichtung der Zieleinrichtung auf die Zielressourcen zugreift, indem sie eine Zugriffsanforderung an eine Testprogrammschnittstelle der programmierbaren Zieleinrichtung sendet, welche durch den Simulationscode bereitgestellt wird, um die Rückkehr der Zielressourcen zu dem Testprogramm der Zieleinrichtung auszulösen.
  • Die vorliegende Technik stellt ein System bereit, welches in der Lage ist, Zugriff sowohl auf Zieleinrichtungsressourcen zu gewähren, was Informationen bezüglich des Architekturzustandes der simulierten, programmierbaren Zieleinrichtung und dementsprechend, ob der Programmcode sich wie erwartet verhält oder nicht, ebenso wie einen Zugriff auf die Hostsimulationsressourcen zu gewähren, um dadurch eine Einschätzung zu ermöglichen, ob das Modell, welches die programmierbare Zieleinrichtung simuliert, angemessen definiert ist und sich wie erwartet verhält. Dieser gleichzeitige Zugriff sowohl auf die Simulationsressourcen des Host als auch auf die Ressourcen der Zieleinrichtung wird ermöglicht durch die Bereitstellung der Testprogrammschnittstelle für die programmierbare Zieleinrichtung innerhalb des Simulationscodes, über welche auf die Zieleinrichtungsressourcen, die durch den simulierten Code gespeichert werden, zugegriffen werden kann und welche an das Testprogramm der Zieleinrichtung geliefert werden können. Der Simulationscode speichert demnach Daten der Zielressourcen und gewährt Zugriff auf diese für die Verwendung bei der Einschätzung des richtigen Verhaltens der Zieleinrichtung in Reaktion auf die Ausführung von Programmcode, und stellt auch einen Zugriff auf seine eigenen Hostsimulationsressourcen bereit, so daß die Genauigkeit der Simulation selbst überprüft werden kann. Die Bereitstellung dieser beiden Ansichten des Verhaltens der Simulation ist vorteilhaft bei der schnelleren Entwicklung genauer Modelle von Zieleinrichtungen und ermöglicht, daß das Verhalten des Simulators ebenso wie das Verhalten der Zieleinrichtung synchron verfolgt werden kann, so daß Fehler einfacher identifiziert bzw. erfaßt werden können.
  • Es versteht sich, daß die Testprogrammschnittstelle auf eine Anzahl verschiedener Arten bereitgestellt werden könnte. Ein einfaches mögliches Beispiel bestünde darin, sicherzustellen, daß der Simulationscode die Zielressourcen auf bekannten Speicherstellen speichert oder auf Positionen, die durch einen geeigneten Zeiger gekennzeichnet werden, so daß das Testprogramm der Zieleinrichtung dann auf diese Ressourcen zugreifen könnte, wenn dies erforderlich ist. Eine bevorzugte Art der Bereitstellung der Testprogrammschnittstelle, welche flexibler und erweiterbar ist, besteht jedoch darin, eine Anwendungsprogrammschnittstelle (API) für das Testen der bzw. für die Fehlersuche in der Zieleinrichtung innerhalb des Simulationscodes bereitzustellen, so daß eine Leseanforderung, die an die API ausgegeben wird, die Rückgabe bzw. Rückkehr der Zielressourcen auslösen kann, welche durch den Simulationscode gespeichert wurden. Dies bietet mehr Freiheit in der Art und Weise, in welcher der Simulationscode die Speicherung der Zielressourcen bereitstellt und auf Zugriffsanforderungen der Zielressourcen reagiert.
  • In einigen Ausführungsformen kann die Zugriffsanforderung von dem Testprogramm der Zieleinrichtung über das Testprogramm der Hostsimulation an die Testprogrammschnittstelle gesendet und über denselben Weg zurückgegeben werden. Dies befreit das Testprogramm der Zieleinrichtung von dem Erfordernis, direkt mit dem Simulationscode zu kommunizieren, wohingegen das Testprogramm der Hostsimulierung bereits mit dem Simulationscode kommuniziert und schon geeignete Mechanismen bereithält, um die Zugriffsanforderung zu erfüllen und die zurückgelieferten Ergebnisse anzunehmen.
  • Als eine alternative Ausführungsform, die unter anderen Umständen vorteilhaft sein kann, kann der Simulationscode einen Testserver enthalten, der in der Weise betreibbar ist, daß er Zugriffsanforderungen direkt von dem Testprogramm der Zieleinrichtung empfängt und diese an eine Testprogrammschnittstelle eines oder mehrerer Zieleinrichtungen leitet, welche durch den Simulationscode simuliert werden.
  • Eine weitere Abstraktionsebene, welche die Flexibilität des Systems erhöht, besteht darin, ein führendes (Master-) Testprogramm der Hostsimulierung bereitzustellen, welches so betreibbar ist, daß es das Testprogramm der Hostsimulierung steuert. Demnach kann das Testprogramm der Hostsimulierung einfach in Form eines allgemeinen Testprogramms für Testprogrammcode bereitgestellt werden, unabhängig davon, ob der Simulationscode von der Art ist, mit welchem sich die vorliegende Technik befaßt, oder irgendein anderer Code. Die maßgeschneiderten bzw. speziellen Merkmale, die sich auf die vorliegende Technik und deren Verwendung für die Simulation von programmierbaren Zieleinrichtungen beziehen, können innerhalb des Master-Testprogramms der Hostsimulierung enthalten sein, ohne daß es selbst die Zusatzlast tragen muß, die mit der allgemeinen Fehlersuche verknüpft ist, welche mit dem Testprogramm der Hostsimulierung bereitgestellt wird.
  • Das Master-Testprogramm der Hostsimulierung kann auch für die Kommunikation mit dem Testprogramm der Zieleinrichtung verantwortlich sein, um das Testprogramm der Zieleinrichtung mit dem Master-Testprogramm der Hostsimulierung zu synchronisieren, damit das Verhalten der Simulierung und das Verhalten der Zieleinrichtung in geeigneter Weise miteinander korreliert werden können.
  • Das Testprogramm der Hostsimulierung reagiert vorzugsweise auf Simulationscode, der vordefinierte Bezugspunkte erreicht, um das Testprogramm der Zieleinrichtung dazu zu bringen, eine Zugriffsanforderung auszusenden, so daß die für das Testprogramm der Zieleinrichtung verfügbaren Testressourcen auf dem aktuellen Stand sind. Beispiele geeigneter Bezugspunkte für das Testen umfassen einen Unterbrechungspunkt innerhalb des Simulationscodes, einen Überwachungspunkt in dem Simulationscode, einen Unterbrechungspunkt innerhalb des Zielprogrammcodes oder einen Überwachungspunkt innerhalb der Zielressourcen. Ein Unterbrechungspunkt innerhalb des Zielprogrammcodes und ein Überwachungspunkt innerhalb der Zielressourcen kann durch den Simulationscode selbst erkannt werden, der eine Bedienung eines Unterbrechungspunktabschnittes der Zieleinrichtung enthält, um zu erkennen, wann die Zieleinrichtung, welche simuliert wird, einen Zustand annimmt, für welchen ein Unterbrechungspunkt oder ein Überwachungspunkt eingestellt worden ist. Umgekehrt dient das Testprogramm der Hostsimulierung dazu, den Simulationscode zu überwachen, um zu erkennen, wann der Simu lationscode einen geeigneten Punkt erreicht hat, der einem Unterbrechungspunkt oder einem Überwachungspunkt für den Simulationscode entspricht.
  • Im Kontext eines Systems, welches ein Master-Testprogramm für die Hostsimulierung umfaßt, kann das Erreichen von Testreferenzpunkten an das Testprogramm der Zieleinrichtung über ein solches Master-Testprogramm der Hostsimulierung angezeigt werden. In ähnlicher Weise können Befehle zur Steuerung der Ausführung des Simulationscodes, welche durch das Testprogramm der Zieleinrichtung ausgegeben werden, über das Master-Testprogramm der Hostsimulierung an den Simulationscode geleitet werden.
  • Beispiele der Zielressourcen, die überwacht werden können, umfassen die Registerinhaltsdaten der simulierten Zieleinrichtung, die Speicherinhaltsdaten der simulierten Zieleinrichtung, die ausgeführten Operationscodes (Opcodes) der simulierten Zieleinrichtung, die simulierten Befehlspipelinedaten, wie z.B. Registerpunktwertinformationen, zeitweilige Operandenspeicherung und Weiterleitung von Informationen und dergleichen.
  • Die Zielressourcen, welche durch das Testprogramm der Zieleinrichtung gelesen werden, werden durch das Testprogramm der Zieleinrichtung verwendet, um Testinformationen bereitzustellen, welche Ergebnisse der simulierten Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung anzeigen. Dies kann man effektiv so betrachten, daß es eine Ansicht der Architektur oder Mikroarchitektur des Verhaltens der simulierten, programmierbaren Zieleinrichtung liefert.
  • In ähnlicher Weise können die Hostressourcen verwendet werden, um Testinformationen bereitzustellen, die ein Ergebnis der Ausführung des Simulationscodes anzeigen und dementsprechend das Testen des Simulationscodes freischalten.
  • Es versteht sich, daß der Simulationscode in einigen Ausführungsformen das Verhalten einer Mehrzahl von programmierbaren Zieleinrichtungen simulieren kann, wie z.B. das eines SoC, der einen Prozessorcode, einen DSP-Kern, einen VLIW-Prozessor, etc., umfassen könnte. Der Simulationscode könnte auch verwendet werden, um das Verhalten von einer oder von mehreren nicht programmierbaren Zieleinrichtungen zu simulieren, wie z.B. eines gemeinsam verwendeten Speichers, eines Cache, eines Zeitgebers, etc.
  • Ein weiteres bevorzugtes Merkmal, welches durch die vorliegende Technik ermöglicht wird, liegt in der Fähigkeit, Unterbrechungspunkte, die sich auf Zielprogrammcode beziehen, mit Unterbrechungspunkten, die sich auf den Simulationscode beziehen, logisch zu verknüpfen.
  • Demnach kann eine Kombination einer Zielprogrammcodeeigenschaft mit einer Simulationscodeeigenschaft (d.h. die Simulation der programmierbaren Zieleinrichtung unter Verwendung eines bestimmten Teils des Modells für diese programmierbare Zieleinrichtung) verwendet werden, um Testereignisse auszulösen (beispielsweise das Anhalten der Verarbeitung, so daß der Zustand des Systems untersucht werden kann, um ein Problem zu untersuchen, welches auftritt, wenn eine solche Kombination vorliegt).
  • Unter einem anderen Aspekt gesehen, stellt die vorliegende Erfindung ein Programm bereit, welches ein Computerprogramm trägt, das in der Weise betreibbar ist, daß es einen Computer derart steuert, daß dieser das Verfahren gemäß den oben beschriebenen Techniken ausführt.
  • Unter einem weiteren Aspekt gesehen stellt die vorliegende Erfindung eine Vorrichtung zum Testen einer Simulation einer programmierbaren Zieleinrichtung unter Ausführung von Zielprogrammcode bereit, wobei die Vorrichtung aufweist:
    einen Hostprozessor, der Simulationscode ausführt, um den Betrieb der programmierbaren Zieleinrichtung, welche Zielprogrammcode ausführt, zu simulieren, wobei der Simulationscode in der Weise betreibbar ist, daß er Zielressourcen der simulierten, programmierbaren Zieleinrichtung speichert,
    ein Testprogramm der Hostsimulation, welches in der Weise betreibbar ist, daß es Zugriff auf Hostressourcen des Hostprozessors während der Ausführung des Simulationscodes durch den Hostprozessor gewährt, und
    ein Testprogramm der Zieleinrichtung, welches in der Weise betreibbar ist, daß es während der simulierten Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung Zugriff auf die Zielressourcen gewährt, wobei
    die Ausführung des Testprogramms der Hostsimulation und des Testprogrammes der Zieleinrichtung synchronisiert sind und das Testprogramm der Zieleinrichtung auf die Zielressourcen zugreift, indem es eine Zugriffsanforderung an eine Testprogrammschnittstelle der programmierbaren Zieleinrichtung sendet, welche durch den Simulationscode bereitgestellt wird, um die Rückgabe bzw. Lieferung der Zielressourcen an das Testprogramm der Zieleinrichtung auszulösen.
  • Ausführungsformen der Erfindung werden nun lediglich beispielhaft unter Bezug auf die beigefügten Zeichnungen beschrieben, von denen:
  • 1 schematisch eine erste, beispielhafte Ausführungsform zeigt, welche eine Simulation einer programmierbaren Zieleinrichtung bereitstellt, die einen Zielprogrammcode ausführt,
  • 2 eine zweite, beispielhafte Ausführungsform der Simulation einer Mehrzahl von programmierbaren Zieleinrichtungen zeigt, welche entsprechenden Zielprogrammcode ausführen, und
  • 3A und 3B Diagramme sind, welche die durch die verschiedenen Elemente in den Systemen nach den 1 und 2 bei der Durchführung der Simulation ausgeführten Aktionen schematisch zeigen, und
  • 4 schematisch einen Vielzweckcomputer des Typs zeigt, der verwendet werden kann, um die oben beschriebenen Techniken umzusetzen bzw. zu implementieren.
  • 1 zeigt schematisch ein Simulationssystem für das Simulieren einer programmierbaren Zieleinrichtung, die Zielprogrammcode ausführt. Der Simulationscode 2 wird entwickelt, um ein zyklusgenaues Modell der Zieleinrichtung bereitzustellen, wie z.B. eines Mikroprozessorkerns. Der Simulationscode 2 kann so betrachtet werden, als stelle er eine virtuelle Maschine bereit, auf welcher Zielprogrammcode für die programmierbare Zieleinrichtung ausgeführt werden kann. Die Ausführung dieses Zielprogrammcodes auf der simulierten programmierbaren Zieleinrichtung ist sowohl für das Testen der programmierbaren Zieleinrichtung als auch für das Testen des Zielprogrammcodes vorteilhaft. Im Betrieb wird der Simulationscode 2 für die Ausführung durch die programmierbare Zieleinrichtung mit Daten bereitgestellt, welche den Inhalt des Programmspeichers definieren (und möglicherweise Daten, die zu manipulieren sind). Die programmierbare Zieleinrichtung ist in 1 schematisch als Element 4 dargestellt, auch wenn es sich versteht, daß die Zieleinrichtung in der Praxis durch Zeilen von Programmcode innerhalb des Simulationscodes und durch Daten wiedergegeben wird, die durch den Simulationscode gespeichert werden, welche den Zustand der Zieleinrichtung repräsentieren.
  • Der Simulationscode 2 dient dazu, eine Speicherung aktueller Werte von Zielressourcen der simulierten, programmierbaren Zieleinrichtung aufrechtzuerhalten. Beispiele derartiger Zielressourcen sind aktuelle Registerwerte, aktuelle Speicherwerte, aktuelle Programmoperationscodes, welche ausgeführt werden, aktuelle Pipelinedaten, welche den Zustand der Befehlspipeline anzeigen, etc. Der Simulationscode enthält auch beträchtlich mehr Daten, welche die programmierbare Zieleinrichtung 4 betreffen und behält diese Daten, was notwendig ist, damit der Simulationscode ein zyklusgenaues Verhalten der programmierbaren Zieleinrichtung 4 modelliert. Der Simulationscode 2 kann aus einer Maschinenbeschreibungssprache, wie z.B. LISA, erzeugt werden und diese im Gebrauch verwenden, woraus der Simulationscode mit geeigneten Werkzeugen erzeugt werden kann, wenn die korrekte LISA-Beschreibung der programmierbaren Zieleinrichtung erzeugt worden ist. Die Erzeugung von Simulationscode aus LISA-Modellen ist eine bekannte Technik.
  • Außerdem ist in 1 eine Testschnittstelle 6 dargestellt, die zu der programmierbaren Zieleinrichtung 4 gehört. Diese Testschnittstelle kann ein definierter Speicherbereich innerhalb des Hostprozessors sein (der Hostprozessor ist typischerweise eine Hochleistungs-Workstation, die verwendet wird, um diese Simulation durchzuführen, oder eine Servergruppe, wenn mehr Leistungsfähigkeit erforderlich ist). Die Testschnittstelle 6 kann auch in Form einer Anwendungsprogrammschnittstelle innerhalb des Simulationscodes 2 bereitgestellt werden, welche auf Anforderungen reagiert, die durch den Simulationscode 2 empfangen wurden und dazu dient, auf diese Anforderungen zu reagieren, indem die aktuelle Kopie der Zielressourcedaten zurückgegeben wird, welche durch den Simulationscode 2 gehalten wird.
  • Unterbrechungspunkte 8 der programmierbaren Zieleinrichtung werden durch die Simulation von Code 2 überwacht, so daß dann, wenn die programmierbare Zieleinrichtung 4 einen vorbestimmten Zustand erreicht, von dem bekannt ist, daß er interessant ist, dies den verschiedenen Testprogrammen angezeigt wird, die in 1 dargestellt sind, und es wird eine Debugging-Aktion ausgelöst, wie z.B. das Anhalten der Simulation, so daß der Zustand des Systems beobachtet bzw. berücksichtigt werden kann, das Ein-/Ausschalten von Warnaktivitäten, etc.
  • Der Simulationscode 2 wird seinerseits durch ein Testprogramm 10 der Hostsimulation gesteuert, wie z.B. das bekannte GDB-Testprogramm. Das Testprogramm 10 der Hostsimulation kann ein Vielzwecktestprogramm sein, welches den Simulationscode 2 im Wesentlichen wie irgendeinen anderen Codegegenstand, der getestet werden soll, behandelt und die Ressourcen für das Testen dieses Codes bereitstellt, wie z.B. Unterbrechungspunktmechanismen 2, die dazu dienen, anzuzeigen, wenn geeignete Punkte innerhalb des Simulationscodes 2 erreicht worden sind. Das Verwenden eines generischen Testprogramms, welches als Testprogramm 10 für die Hostsimulation dient, vereinfacht die Implementierung.
  • Ein führendes Testprogramm (Master-Testprogramm) 14 ist vorgesehen, um das Testprogramm 10 der Hostsimulierung zu steuern, wie z.B. durch Bereitstellung von Befehlen für das Testprogramm der Hostsimulierung und das Reagieren auf berichtete Ereignisse, die durch das Testprogramm 10 der Hostsimulierung erfaßt wurden. Innerhalb des führenden Testprogramms 14 ist ein führendes Testprogramm 16 der Hostsimulierung vorgesehen, welches dazu dient, das Testen der Simulation der programmierbaren Zieleinrichtung 4 ebenso wie ein Testprogramm 18 der Zieleinrichtung zu steuern, welches verwendet wird, um Zugriff auf die programmierbare Zieleinrichtung 4, welche ihren Zielprogrammcode ausführt, sowie auf darauf gerichtete Testfähigkeiten zu gewähren bzw. bereitzustellen. Das Testprogramm 18 der Zieleinrichtung gibt eine Zugriffsanforderung einer Zielressource über das Testprogramm 10 der Hostsimulierung aus, welche an die Testprogrammschnittstelle 6 innerhalb des Simulationscodes 6 gesendet wird. Die Testprogrammschnittstelle 6 liefert die aktuelle Kopie der Zielressourcen für die programmierbare Zieleinrichtung zurück, welche dann den Zustand des Testprogramms der Zieleinrichtung aktualisieren kann. Programmunterbrechungspunkte 20 innerhalb des Testprogramms 18 der Zieleinrichtung können eine Reaktion auf das Erreichen gewisser Programmcodepunkte sein, entweder auf Unterbrechungspunkte auf der Ebene von Operationscodes der Einrichtung oder auf Unterbrechungspunkte auf der Ebene des Quellprogramms, je nachdem, was angemessen ist. Es versteht sich, daß ein einzelner Programmbefehl auf Quellniveau auf mehrere Operationscodes abgebildet sein kann und daß ein Unterbrechungspunkt, der auf einen Befehl des Quellcodes gesetzt ist, mehreren Unterbrechungspunkten für jeden der Operationscodes entsprechen kann, auf welche dieser Sourcebefehl abgebildet ist.
  • Das führende (Master-) Testprogramm 16 der Hostsimulation ist verantwortlich für die Benachrichtigung des Testprogramms 18 der Zieleinrichtung, daß ein Punkt innerhalb des Betriebs des Simulationscodes 2 erreicht worden ist, an welchem es für das Testprogramm 18 der Zieleinrichtung angemessen ist, eine Aktualisierung der Zielressourcen anzufordern. Solche geeigneten Punkte können Grenzen der Ausführung von Programmoperationscode sein, erreichte relevante Testreferenzpunkte, wie z.B. erfaßte Unterbrechungspunkte, Überwachungspunkte oder dergleichen, ungeachtet dessen, ob diese sich innerhalb des Hostsimulationscodes oder innerhalb des Zustandes der Zieleinrichtung befinden, die ihren Zielprogrammcode ausführt. Das Testprogramm 18 der Zieleinrichtung kann verwendet werden, um Befehle für das Starten und Stoppen einer Simulation, das Durchschreiten der Simulation und andere Befehle auszugeben. Diese Befehle werden über das Master-Testprogramm 16 in der Hostsimulierung und über das Testprogramm 10 der Hostsimulierung an den Simulationscode gesendet, um die Arbeit dieses Simulationscodes 2 zu steuern. Unterbrechungspunkte 22 innerhalb des Simulationscodes können auch in dem Master-Testprogramm der Hostsimulierung gesetzt werden. Diese Unterbrechungspunkte des Simulationscodes können sich darauf beziehen, daß auf einen bestimmten Maschinendefinitionszustand Bezug genommen wird, von dem man annimmt, daß er in der Simulation einen Fehler oder dergleichen hervorruft. Die Unterbrechungspunkte 22 können logisch mit den Unterbrechungspunkten 20 kombiniert werden, so daß ein Testereignis nur dann ausgelöst wird, wenn beide Ereignisse erfüllt sind oder irgendeine andere logische Kombination vorliegt.
  • Ein Beispiel eines Zeitpunktes, zu welchem ein Testprogramm 18 einer Zieleinrichtung eine Zugriffsanforderung nach Zielressourcen ausgeben kann, ist die Erfassung (das Erkennen?) durch den Simulationscode 2 an den Zielunterbrechungspunkten 8, daß die programmierbare Zieleinrichtung 4 einen interessanten architektonischen Zustand erreicht hat, und dann wird dieses als ein Testreferenzpunkt verwendet und an das Testprogramm 18 der Ziel einrichtung über das Testprogramm 10 der Hostsimulierung und das Master-Testprogramm 16 der Hostsimulierung gemeldet. Das Testprogramm 18 der Zieleinrichtung kann dann eine Zugriffsanforderung der Zielressource über das Testprogramm 10 der Hostsimulierung an die Testprogrammschnittstelle 6 ausgeben und auf die zurückgelieferte Information über Zielressourcen reagieren, um für einen Benutzer eine Testinformation bereitzustellen.
  • Eine typische Testinformation kann in der Anzeige von Registerinhalten, ausgeführten Operationscodes, einem simulierten Befehlspipelinezustand, Speicherinhalten oder dergleichen bestehen. Mit einer solchen Testinformation kann der Zielprogrammcode auf eine korrekte Arbeitsweise hin analysiert werden und seine Wechselwirkung mit der programmierbaren Zieleinrichtung kann eingeschätzt werden.
  • Das Master-Testprogramm der Hostsimulierung reagiert auf das Lesen von Hostressourcen aus dem Simulationscode 2, um ein Testen des Simulationscodes 2 zu ermöglichen. Beispiele derartiger Hostressourcen umfassen Registerinhaltsdaten des Host, Speicherinhaltsdaten und Hostprogrammoperationscodes, die ausgeführt werden. Demnach kann der Zustand des Hostsystems (beispielsweise der Workstation oder der Servergruppe, welche die programmierbare Zieleinrichtung, die den Zielprogrammcode ausführt, simulieren) untersucht und auf Genauigkeit und ordnungsgemäßes Verhalten überprüft werden. Die Hostressourcen werden demnach verwendet, um Testprogramminformation bereitzustellen, welche die Ergebnisse der Ausführung des Simulationscode 2 anzeigt.
  • 2 zeigt eine zweite beispielhafte Ausführungsform. In dieser beispielhaften Ausführungsform werden mehrere programmierbare Zieleinrichtungen 24, 26 durch den Simulationscode simuliert. Eine nicht programmierbare Zieleinrichtung 30 wird ebenfalls simuliert. Jede dieser Zieleinrichtungen hat eine zugehörige Unterbrechungspunktesteuerung, die für diese innerhalb des Simulationscodes 28 vorgesehen ist. Ein Testprogrammserver 32 dient dazu, Zugriffsanforderungen auf Zielressourcen zu empfangen, die durch das Testprogramm 34 der Zieleinrichtung erzeugt wurden, und diese an die passende Testprogrammschnittstelle der beabsichtigten Zieleinrichtung 24, 26, 30 zu leiten. Die Zielressourceninformation wird über den Testprogrammserver 32 zurück an das Testprogramm 34 der Zieleinrichtung geleitet werden, wo sie verwendet werden kann, um die relevante Zieleinrichtung 24, 26, 30 zu testen. Das Testprogramm 34 der Zieleinrichtung kann demnach die Ansicht bzw. den Blickwinkel, den sie auf die betreffende Zieleinrichtung bereitstellt, umschalten. Es ist auch möglich, daß mehrere Testprogramme 34 für Zieleinrichtungen bereitgestellt werden, die jeweils so betreibbar sind, daß sie gleichzeitig Testprogramminformation bereitstellen, welche ihre zugehörige Zieleinrichtung 24, 26, 30 betrifft, wobei dies ermöglicht wird durch Gewinnung der Zielressourcen über den Testprogrammserver 32, um die zugehörigen Testprogramme der Zieleinrichtung auf dem aktuellen Stand zu halten.
  • Die 3A und 3B zeigen schematisch unterschiedliche Simulationsebenen innerhalb des Gesamtsystembetriebs und die Beziehung zwischen diesen Ebenen und den Ziel- oder Hostunterbrechungspunkten und den Ziel- oder Hostsynchronisationspunkten.
  • 3A zeigt schematisch die Ausführung im Zeitablauf. Ausführungsabschnitte 36, 38, 40 einer ersten Ebene entsprechen der Tatsache, daß der Simulationscode Aktualisierungen vornimmt und Prozeßschritte ausführt, die sich direkt auf die programmierbare Zieleinrichtung 4 beziehen. Eine Liste von Unterbrechungspunkten 42 der Zieleinrichtung spezifiziert Testprogrammunterbrechungspunkte, die auf den Betrieb der Ausführungsabschnitte 36, 38, 40 angewandt werden sollen. Die speziellen Zeiten bzw. Zeitpunkte 44, 46 und 48 entsprechen den Zeitpunkten, zu welchen diese simulierten Operationen der programmierbaren Zieleinrichtung unterbrochen werden können, und diese Punkte entsprechen dem Verhalten, welches für die programmierbare Zieleinrichtung erwartet wird, wenn sie in ihrem Betrieb als eine physikalische Einrichtung oder eine Takt-Zyklusgrenze der physikalischen Einrichtung einem Unterbrechungspunkt ausgesetzt wäre. Insbesondere tritt der Punkt 46 als der korrekte Punkt auf, welcher dem Verhalten der physikalischen Einrichtung zwischen dem Verarbeitungsnachlauf und dem Verarbeitungsvorlauf eines gegebenen Befehles entspricht, beispielsweise kann ein Überprüfen auf Unterbrechungspunkte des Zielanwendungsprogramms innerhalb des Nachlaufs erfolgt sein, jedoch ist möglicherweise kein Löschen der Unterbrechungspunktflags erfolgt, wie dies normalerweise im Vorlauf des Simulationszyklus durchgeführt wird.
  • Simulationscodeabschnitte 50, 52 entsprechen der Verarbeitung, die mit dem Hostsystem durchgeführt wurde, um das Modellieren der programmierbaren Zieleinrichtung zu unterstützen. Insbesondere umfassen diese Codeabschnitte 50, 52 die Übersetzung der in LISA geschriebenen Beschreibung der programmierbaren Zieleinrichtung. Eine Auswahl von Hostunterbrechungspunkten ist vorgesehen, um die Arbeitsweise dieses Hostsimulationscode 50, 52 zu testen, um das Modell der programmierbaren Zieleinrichtung zu testen, anstatt die programmierbare Zieleinrichtung selbst zu testen. Die Codeabschnitte 50, 52 können Unterbrechungspunkten auf einem wesentlich feineren Granularitätsniveau zwischen nahezu allen Hostbefehlen ausgesetzt sein, welche Teil des Simulationscode bilden.
  • 3B veranschaulicht eine alternative Ansicht der Codeabschnitte 36, 38, 40, welche der Manipulation des Zustandes der simulierten, programmierbaren Zieleinrichtung zusammen mit den Codeabschnitten 50, 52 entspricht, die der Übersetzung des LISA-Code entsprechen, der die programmierbare Zieleinrichtung modelliert. Man erkennt, daß zum Testen des Pro grammablaufs der programmierbaren Zieleinrichtung eine begrenzte Anzahl ursprünglicher Zielsynchronisationspunkte vorliegt, welche dem entsprechen, was das Verhalten dieser programmierbaren Zieleinrichtung wäre, wenn sie in Hardware realisiert wäre. Unter diesen ursprünglichen Zielsynchronisationspunkten liegt eine Reihe von Hosteinrichtungsbefehlen, jedoch würde das Unterbrechen der Ausführung an einem dieser Befehle anstatt an den definierten ursprünglichen Zielsynchronisationspunkten zu einem irreführenden Verhalten führen, da das simulierte Verhalten und der eingefrorene Zustand an diesen Punkten nicht dem tatsächlichen Verhalten der physikalisch in Silizium ausgeführten, programmierbaren Zieleinrichtung entsprechen würde. Im Gegensatz zu dem Obigen können die Codeabschnitte 50, 52, welche der Interpretation der LISA-Maschinendefinition entsprechen, und die anderen Unterstützungsaktivitäten innerhalb des Simulationscodes auf einem viel feiner strukturierten ("gekörnten") Niveau unterbrochen werden, um den Simulationscode selbst zu testen. Diese Ebene mit feinerer Körnung muß nicht bei jedem Hostprogrammbefehl vorhanden sein, könnte jedoch beispielsweise nach dem Verarbeiten jedes LISA-Befehls vorhanden sein, um einen bestimmten Aspekt der programmierbaren Zieleinrichtung zu modellieren, damit die korrekte Betriebsweise und Wechselwirkung mit anderen Aspekten des Systems für derartig individuell modellierende Befehle bestätigt werden kann.
  • 4 zeigt schematisch einen Vielzweckcomputer 200 von der Art, wie sie verwendet werden kann, um die oben beschriebenen Techniken zu implementieren. Der Vielzweckcomputer 200 enthält eine zentrale Verarbeitungseinheit 202, einen Speicher 204 mit wahlfreiem Zugriff, einen Nur-Lese-Speicher 206, eine Netzwerkschnittstellenkarte 208, ein Festplattenlaufwerk 210, einen Display-Treiber 212 und einen Monitor 214 sowie einen Eingabe-/Ausgabe-Schaltkreis 216 mit einer Tastatur 218 und einer Maus 220, die allesamt über einen gemeinsamen Bus 222 miteinander verbunden sind. Im Betrieb führt die zentrale Verarbeitungseinheit 202 Computerprogrammbefehle aus, die in dem Speicher mit wahlfreiem Zugriff 204, und/oder dem Nur-Lese-Speicher 206 und/oder dem Festplattenlaufwerk 210 gespeichert sein können oder die dynamisch über die Netzwerkschnittstellenkarte 208 heruntergeladen werden können. Die Ergebnisse der durchgeführten Verarbeitung können für einen Benutzer über den Displaytreiber 212 und den Monitor 214 angezeigt werden. Benutzereingaben für die Steuerung des Betriebs des Vielzweckcomputers 200 können über den Eingabe-/Ausgabe-Schaltkreis 216 für den Benutzer von der Tastatur 218 oder der Maus 220 empfangen werden. Es versteht sich, daß das Computerprogramm in einer Vielfalt unterschiedlicher Computersprachen geschrieben werden könnte. Das Computerprogramm kann auf einem Aufzeichnungsmedium gespeichert und verteilt werden oder es kann dynamisch in den Vielzweckcomputer 200 geladen werden. Wenn der Vielzweckcomputer 200 unter der Steuerung eines geeigneten Computerprogrammes arbeitet, kann er die oben beschriebenen Techniken ausführen und als eine Vorrichtung betrachtet werden, die die oben beschriebene Technik durchführt. Die Architektur des Vielzweckcomputers 200 könnte beträchtlich variieren und 4 ist nur ein Beispiel.

Claims (21)

  1. Verfahren zum Testen einer Simulation einer programmierbaren Zieleinrichtung, die Zielprogrammcode ausführt, wobei das Verfahren die Schritte aufweist: Ausführen von Simulationscode auf einem Hostprozessor, um den Betrieb der programmierbaren Zieleinrichtung, welche den Zielprogrammcode ausführt, zu simulieren, wobei der Simulationscode in der Weise betrieben werden kann, daß er eine Speicherung aktueller Werte von Zielressourcen der programmierbaren Zieleinrichtung, welche simuliert wird, aufrechterhält, Ausführen eines Testprogramms der Hostsimulation, um Zugriff auf Hostressourcen des Hostprozessors während der Ausführung des Simulationscodes durch den Hostprozessor bereitzustellen, und Ausführen eines Testprogramms der Zieleinrichtung, um Zugriff auf Zielressourcen während der simulierten Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung zu gewähren, wobei die Ausführung des Testprogramms der Hostsimulation und des Testprogramms der Zieleinrichtung synchronisiert werden und das Testprogramm der Zieleinrichtung auf die Zielressourcen zugreift durch Senden einer Zugriffsanforderung an eine Testprogrammschnittstelle der programmierbaren Zieleinrichtung, welche durch den Simulationscode bereitgestellt wird, um die Lieferung der Zielressourcen an das Testprogramm der Zieleinrichtung auszulösen.
  2. Verfahren nach Anspruch 1, wobei die Testprogrammschnittstelle eine Testanwendungsprogrammschnittstelle der Zieleinrichtung ist, so daß eine Leseanforderung an die Testanwendungsprogrammschnitte der Zieleinrichtung die Lieferung der Zielressourcen auslöst, welche durch den Simulationscode gespeichert werden.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei die Zugriffsanforderung an das Testprogramm der Hostsimulation gesendet wird, so daß das Testprogramm der Hostsimulation dann die Zielressourcen über die Testprogrammschnittstelle liest und die Zielressourcen an das Testprogramm der Zieleinrichtung liefert.
  4. Verfahren nach einem der Ansprüche 1 oder 2, wobei der Simulationscode einen Testprogrammserver aufweist, der so betrieben werden kann, daß er die Zugriffsanforderung empfängt, um die Zielressourcen über die Testprogrammschnittstelle zu lesen und die Zielressourcen an das Testprogramm der Zieleinrichtung zu liefern.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei ein Master-Testprogramm der Hostsimulation in der Weise betrieben werden kann, daß es das Testprogramm der Hostsimulation in Reaktion auf empfangene Befehle steuert.
  6. Verfahren nach Anspruch 5, wobei das Master-Testprogramm der Hostsimulation und das Testprogramm der Zieleinrichtung miteinander in Kommunikationsverbindung stehen, um das Testprogramm der Zieleinrichtung mit dem Master-Testprogramm der Hostsimulation zu synchronisieren.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei das Testprogramm der Hostsimulation darauf reagiert, daß der Simulationscode einen Testprogrammreferenzpunkt erreicht, um auszulösen, daß das Testprogramm der Zieleinrichtung die Zugriffsanforderung sendet.
  8. Verfahren nach Anspruch 7, wobei der Testprogrammreferenzpunkt einer der folgenden ist: ein Unterbrechungspunkt, der innerhalb des Zielprogrammcodes gesetzt ist, ein Überwachungspunkt, der innerhalb der Zielressourcen gesetzt ist, ein Unterbrechungspunkt, der innerhalb des Simulationscodes gesetzt ist, und ein Überwachungspunkt, der innerhalb der Hostressourcen gesetzt ist.
  9. Verfahren nach einem der Ansprüche 6 oder 7, wobei das Testprogramm der Hostsimulation das Erreichen des Testprogrammreferenzpunktes an das Master-Testprogramm der Hostsimulation meldet und das Master-Testprogramm der Hostsimulation auslöst, daß das Testprogramm der Zieleinrichtung die Zugriffsanforderung sendet.
  10. Verfahren nach Anspruch 6, wobei das Testprogramm der Zieleinrichtung Befehle an das Testprogramm der Hostsimulation sendet, um die Ausführung des Simulationscodes über das Mastertestprogramm der Hostsimulation zu steuern.
  11. Verfahren nach einem der vorstehenden Ansprüche, wobei die Zielressourcen eines oder mehrere der Folgenden aufweisen: Registerinhaltsdaten der simulierten Zieleinrichtung, Speicherinhaltsdaten der simulierten Zieleinrichtung, Programmoperationscodes der simulierten Zieleinrichtung, die ausgeführt werden, und simulierte Befehlspipelinedaten.
  12. Verfahren nach einem der vorstehenden Ansprüche, wobei das Testprogramm der Zieleinrichtung auf die Zielressourcen reagiert, um Testprogramminformation bereitzustellen, die ein Ergebnis der simulierten Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung anzeigt.
  13. Verfahren nach einem der vorstehenden Ansprüche, wobei die Hostressourcen eines oder mehrere der Folgenden aufweisen: Inhaltsdaten des Hostregisters, Inhaltsdaten des Hostspeichers und Operationscodes des Hostprogrammes, die ausgeführt werden.
  14. Verfahren nach einem der vorstehenden Ansprüche, wobei die Hostressourcen Testprogramminformation bereitstellen, welche ein Ergebnis der Ausführung des Simulationscodes anzeigt.
  15. Verfahren nach einem der vorstehenden Ansprüche, wobei der Simulationscode, der auf dem Hostprozessor ausgeführt wird, die Betriebsweise einer Mehrzahl von programmierbaren Zieleinrichtungen simuliert, die jeweils Zielprogrammcode ausführen, wobei der Simulationscode in der Weise betrieben werden kann, daß er entsprechende Zielressourcen aus der Mehrzahl von programmierbaren Zieleinrichtungen, welche simuliert werden, speichert.
  16. Verfahren nach Anspruch 15, wobei das Testprogramm der Zieleinrichtung in der Weise betreibbar ist, daß es Zugriff auf die entsprechenden Zielressourcen einer Mehrzahl von programmierbaren Zieleinrichtungen gewährt, die simuliert werden.
  17. Verfahren nach einem der vorstehenden Ansprüche, wobei der auf dem Hostprozessor ausgeführte Simulationscode die Betriebsweise von einer oder mehreren nicht programmierbaren Zieleinrichtungen simuliert, wobei der Simulationscode in der Weise betrieben werden kann, daß er entsprechende Zielzustandsdaten speichert, welche einen simulierten Zustand einer nicht programmierbaren Zieleinrichtung anzeigen.
  18. Verfahren nach Anspruch 17, wobei das Testprogramm der Zieleinrichtung in der Weise betrieben werden kann, daß es Zugriff auf die entsprechenden Zielzustandsdaten der einen oder der mehreren nicht programmierbaren Zieleinrichtungen gewährt.
  19. Verfahren nach einem der vorstehenden Ansprüche, wobei Unterbrechungspunkte, die innerhalb des Zielprogrammcodes gesetzt sind, mit Unterbrechungspunkten, die innerhalb des Simulationscodes gesetzt sind, logisch kombiniert werden, um eine Testprogrammaktion auszulösen.
  20. Programmprodukt, das ein Computerprogramm trägt, welches so betrieben werden kann, daß es einen Computer derart steuert, daß er das Verfahren nach einem der Ansprüche 1 bis 19 ausführt.
  21. Vorrichtung zum Testen bzw. Fehlersuchen einer Simulation einer Zielprogrammeinrichtung, welche Zielprogrammcode ausführt, wobei die Vorrichtung aufweist: einen Hostprozessor, der Simulationscode ausführt, um die Betriebsweise der programmierbaren Zieleinrichtung, welche Zielprogrammcode ausführt, zu simulieren, wobei der Simulationscode in der Weise betrieben werden kann, daß er Zielressourcen der programmierbaren Zieleinrichtung, die simuliert wird, speichert, ein Testprogramm der Hostsimulation, welches in der Weise betrieben werden kann, daß es während der Ausführung des Simulationscodes durch den Hostprozessor Zugriff auf Hostressourcen des Hostprozessors gewährt, und ein Testprogramm der Zieleinrichtung, welches in der Weise betreibbar ist, daß es während der Ausführung des Zielprogrammcodes durch die programmierbare Zieleinrichtung Zugriff auf Zielressourcen gewährt, wobei die Ausführung des Testprogramms der Hostsimulation und des Testprogramms der Zieleinrichtung synchronisiert werden und das Testprogramm der Zieleinrichtung auf Zielressourcen zugreift durch Senden einer Zugriffsanforderung an eine Testprogrammschnittstelle der programmierbaren Zieleinrichtung, welche durch den Simulationscode bereitgestellt wird, um die Lieferung der Zielressourcen an das Testprogramm der Zieleinrichtung auszulösen.
DE102006019292A 2005-05-05 2006-04-21 Modellieren programmierbarer Einrichtungen Withdrawn DE102006019292A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0509201A GB2425859A (en) 2005-05-05 2005-05-05 Modelling of programmable devices
GB05092010 2005-05-05

Publications (1)

Publication Number Publication Date
DE102006019292A1 true DE102006019292A1 (de) 2006-11-23

Family

ID=34685142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006019292A Withdrawn DE102006019292A1 (de) 2005-05-05 2006-04-21 Modellieren programmierbarer Einrichtungen

Country Status (5)

Country Link
US (1) US20060253842A1 (de)
JP (1) JP4472615B2 (de)
AU (1) AU2005239681A1 (de)
DE (1) DE102006019292A1 (de)
GB (1) GB2425859A (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8136096B1 (en) * 2004-07-23 2012-03-13 Green Hills Software, Inc. Backward post-execution software debugger
US8423959B1 (en) * 2006-12-11 2013-04-16 Synopsys, Inc. Techniques for coordinating and controlling debuggers in a simulation environment
US9317636B1 (en) 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US8683444B1 (en) 2006-12-11 2014-03-25 Synopsys, Inc. System and method of debugging multi-threaded processes
US8627299B2 (en) 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US20100138811A1 (en) * 2008-12-02 2010-06-03 Qualcomm Incorporated Dynamic Performance Profiling
US8402442B1 (en) * 2009-07-28 2013-03-19 Xilinx, Inc. Common debugger method and system
WO2012044262A1 (en) * 2010-09-30 2012-04-05 The Thailand Research Fund Embedded system design, programming, and simulation architecture
KR101991687B1 (ko) 2012-11-23 2019-06-24 삼성전자 주식회사 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템
CN107077339B (zh) * 2014-10-02 2021-09-14 西门子公司 利用紧密耦合逻辑和物理仿真的3d图形编辑器中的编程自动化
CN109992516B (zh) * 2019-04-03 2022-08-26 寒武纪(西安)集成电路有限公司 一种编程调试方法、装置及相关产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680584A (en) * 1991-03-07 1997-10-21 Digital Equipment Corporation Simulator system for code execution and debugging within a multi-architecture environment
US5901315A (en) * 1997-06-13 1999-05-04 International Business Machines Corporation Method for debugging a Java application having native method dynamic load libraries
WO2001095161A2 (en) * 2000-06-02 2001-12-13 Virtio Corporation Method and system for virtual prototyping
US6912708B2 (en) * 2001-06-28 2005-06-28 Sun Microsystems, Inc. Method and apparatus to facilitate debugging a platform-independent virtual machine
JP2003085001A (ja) * 2001-09-12 2003-03-20 Toshiba Corp ソース・コード・デバッガ、デバッグ方法及びデバッグプログラム

Also Published As

Publication number Publication date
GB2425859A (en) 2006-11-08
GB0509201D0 (en) 2005-06-15
US20060253842A1 (en) 2006-11-09
AU2005239681A1 (en) 2006-11-23
JP2006313521A (ja) 2006-11-16
JP4472615B2 (ja) 2010-06-02

Similar Documents

Publication Publication Date Title
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE69033360T2 (de) Simulation von ausgewählten Logik-Schaltungsentwürfen
DE69831732T2 (de) Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem
DE60115007T2 (de) Verbessertes programmierbares kernmodell mit integrierter graphischer fehlersuchfunktionalität
DE69225750T2 (de) Datenverarbeitungssystem mit internem Befehlspufferspeicher
DE3787431T2 (de) Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste.
DE3854546T2 (de) Verfahren und Gerät zur Programmablaufmessung.
DE60113114T2 (de) Integriertes diagnosesystem und -verfahren
DE69625751T2 (de) Verfahren und System zur Ausführungssynchronisation von Ereignissen beim Testen von Software
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
EP2685382B1 (de) Verfahren und Vorrichtung zum Erstellen und Testen eines Steuergeräteprogramms
DE69225527T2 (de) Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung
DE3903835A1 (de) Verfahren und vorrichtung zum pruefen von mikroprozessorsystemen unter verwendung von speicheremulationstechniken
EP2851815A1 (de) Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
DE102012224276B4 (de) Verzögerte Ausführung auf mehreren Prozessoren
EP3379351B1 (de) Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung
DE3853928T2 (de) Verfahren und Gerät zur Prüfung von Raketensystemen.
DE102017211433A1 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE69613979T2 (de) Vorrichtung und verfahren zur verarbeitung ablaufverfolgbarer information
EP3306295A1 (de) Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen
EP1771799B1 (de) Verfahren zur bewertung der güte eines testprogramms
DE112021003677T5 (de) Automatisierte unterstützte schaltkreisvalidierung
DE112013006981T5 (de) Steuersystem Prüfmittel
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt

Legal Events

Date Code Title Description
8181 Inventor (new situation)

Inventor name: PEES, STEFAN LEO ALEXANDER, 52072 AACHEN, DE

Inventor name: OVERMANN, JOHANNES GEORG, 52062 AACHEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20111101