DE10329147A1 - Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms - Google Patents

Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms Download PDF

Info

Publication number
DE10329147A1
DE10329147A1 DE10329147A DE10329147A DE10329147A1 DE 10329147 A1 DE10329147 A1 DE 10329147A1 DE 10329147 A DE10329147 A DE 10329147A DE 10329147 A DE10329147 A DE 10329147A DE 10329147 A1 DE10329147 A1 DE 10329147A1
Authority
DE
Germany
Prior art keywords
program
signals
elements
listing
hardware
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
DE10329147A
Other languages
English (en)
Inventor
Axel Andersch
Michael Klier
Wolfgang MÄNDL
Wolfgang Sehr
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE10329147A priority Critical patent/DE10329147A1/de
Priority to PCT/EP2004/004991 priority patent/WO2005001720A1/de
Priority to US10/562,303 priority patent/US20060178863A1/en
Priority to EP04731897A priority patent/EP1639508A1/de
Publication of DE10329147A1 publication Critical patent/DE10329147A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Die Erfindung betrifft ein System und ein Verfahren zur Verknüpfung und Darstellung von Signalen (4, 5) einer Vorrichtung zur Hardware-Simulation (1) und Elementen (15) eines Listings (2) eines Programms (3) sowie ein Fehlersuchwerkzeug. Um eine gemeinsame Darstellung der Signale der Vorrichtung zur Hardware-Simulation und der Elemente des Listings des Programms zu ermöglichen, wird vorgeschlagen, dass die Vorrichtung zur Hardware-Simulation (1) das Verhalten einer Schaltung (6) mit einem Prozessor (7), einem Programmspeicher (8), welcher den Programmcode (9) des Programms (3) enthält, und applikationsspezifischen Hardewarekomponenten (10) simuliert und Signale (4, 5) als Ergebnis der Simulation erzeugt, dass die Elemente (15) des Listings (2) des Programms (3) mit dem bei der simulierten Ausführung des im Programmspeicher (8) enthaltenen, mit diesen Elementen (15) korrespondierenden Programmcodes (9) erzeugten Signalen (4, 5) verknüpft werden und dass die Elemente (15) des Listings (2) des Programms (3) in einem ersten Teilbereich (11) eines grafischen Anzeigemittels (14) und die Signale (4, 5) in einem zweiten Teilbereich (12) des Anzeigemittels (14) darstellbar sind.

Description

  • Die Erfindung betrifft ein System sowie ein Verfahren zur Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation sowie ein Fehlersuchwerkzeug.
  • Aus US 5 768 567 ist ein Hardware-Software-Cosimulator zur Simulation eines Hardware-Software-Systems bekannt, welcher einen logischen Simulator, Busschnittstellenmodelle, Speichermodelle, Befehlssatzsimulatoren und einen sogenannten Cosimulations-Optimierungs-Manager aufweist. Die gleichzeitige Simulation von Hardware und Software wird auch Cosimulation genannt. Dabei wird die Cosimulation mit einem einzigen kohärenten Blick auf den Speicher des Hardware-Software-Systems durchgeführt, welcher durch den Cosimulations-Optimierungs-Manager sowohl für Hardware- als auch für Software-Simulationen transparent aufrechterhalten wird.
  • Der Erfindung liegt die Aufgabe zugrunde, die gemeinsame Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms zu ermöglichen.
  • Diese Aufgabe wird durch ein System zur Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms gelöst,
    • • wobei die Vorrichtung zur Hardware-Simulation das Verhalten einer Schaltung mit einem Prozessor, einem Programmspeicher, welcher den Programmcode des Programms enthält, und applikationsspezifischen Hardwarekomponenten simuliert und Signale als Ergebnis der Simulation erzeugt,
    • • wobei die Elemente des Listings des Programms mit den bei der simulierten Ausführung des im Programmspeicher enthaltenen, mit diesen Elementen korrespondierenden Programmcodes erzeugten Signalen verknüpft werden,
    • • wobei die Elemente des Listings des Programms in einem ersten Teilbereich eines grafischen Anzeigemittels und die Signale in einem zweiten Teilbereich des Anzeigemittels darstellbar sind.
  • Diese Aufgabe wird durch ein Verfahren zur Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms gelöst,
    • • wobei die Vorrichtung zur Hardware-Simulation das Verhalten einer Schaltung mit einem Prozessor, einem Programmspeicher, welcher den Programmcode des Programms enthält, und applikationsspezifischen Hardwarekomponenten simuliert und Signale als Ergebnis der Simulation erzeugt,
    • • wobei die Elemente des Listings des Programms mit den bei der simulierten Ausführung des im Programmspeicher enthaltenen, mit diesen Elementen korrespondierenden Programmcodes erzeugten Signalen verknüpft werden,
    • • wobei die Elemente des Listings des Programms in einem ersten Teilbereich eines grafischen Anzeigemittels und die Signale in einem zweiten Teilbereich des Anzeigemittels dargestellt werden.
  • Diese Aufgabe wird durch ein Fehlersuchwerkzeug zur Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms gelöst,
    • • wobei die Vorrichtung zur Hardware-Simulation das Verhalten einer Schaltung mit einem Prozessor, einem Programmspeicher, welcher den Programmcode des Programms enthält, und applikationsspezifischen Hardwarekomponenten simuliert und Signale als Ergebnis der Simulation erzeugt,
    • • wobei das Fehlersuchwerkzeug Mittel zur Verknüpfung der Elemente des Listings des Programms mit den bei der simulierten Ausführung des im Programmspeicher enthaltenen, mit diesen Elementen korrespondierenden Programmcodes erzeugten Signalen aufweist,
    wobei die Elemente des Listings des Programms in einem ersten Teilbereich eines grafischen Anzeigemittels und die Signale in einem zweiten Teilbereich des Anzeigemittels darstellbar sind.
  • Der Erfindung liegt die Erkenntnis zugrunde, dass das Design von Hardware-Software-Systemen durch eine verknüpfte Darstellung der Signale eines Hardware-Simulators und der Elemente des Listings eines Programms wesentlich vereinfacht wird. Das erfindungsgemäße System und Verfahren ermöglicht eine einfache und fehlersichere Verfolgung der Ausführung eines Programms. Die Darstellung des Listings des Programms stellt einen direkten Bezug zum eigentlichen Programm her, insbesondere können auch aufgrund der Verwendung des Listfiles die im Original-Quelltext eingefügten Kommentare angezeigt werden. Zur Verknüpfung und Darstellung der Signale der Vorrichtung zur Hardware-Simulation und der Elemente des Listings des Programms ist das Vorliegen eines abstrahierten Software-Modells des Prozessors nicht erforderlich. Es ist somit gewährleistet, dass tatsächlich der in der Schaltung verwendete Prozessor simuliert wird. Somit werden durch eine Beschreibung des Prozessors mittels eines Modells verursachte Fehler bei der Simulation ausgeschlossen. Die Visualisierung des Programmablaufs erfolgt in ähnlicher Form wie bei üblichen Entwicklungswerkzeugen zum Debuggen von reiner Software. Die Einarbeitungszeit für Anwender des Systems bzw. des Verfahrens, welche Erfahrung bei der Entwicklung von Software oder Firmware haben, ist daher relativ gering.
  • Gemäß einer vorteilhaften Ausgestaltung der Erfindung ist eine Markierung eines Elements des Listings des Programms im ersten Teilbereich des grafischen Anzeigemittels und eine Markierung der mit diesem Element verknüpften Signale im zweiten Teilbereich des Anzeigemittels vorgesehen. Die grafische Darstellung orientiert sich somit an üblichen Software-Debug-Werkzeugen. Der Programmverlauf kann durch eine Markierung eines Elements des Listings des Programms verfolgt werden. Im zweiten Teilbereich des Anzeigemittels bewegt sich eine Markierung synchronisiert zur Markierung im ersten Teilbereich des Anzeigemittels, so dass auch Querbeziehungen zur übrigen Hardware erfasst werden können.
  • Vorteilhafterweise ist ein dritter Teilbereich des grafischen Anzeigemittels zur Darstellung mindestens eines Teils der Signale, insbesondere weiterer Werte, vorgesehen. Weitere Werte können beispielsweise Registerwerte sein.
  • Die Verwendung üblicher Vorrichtungen zur Hardware-Simulation wird erleichtert, wenn gemäß einer vorteilhaften Ausgestaltung der Erfindung die Schaltung mit dem Prozessor, dem Programmspeicher und den applikationsspezifischen Hardwarekomponenten in einer Hardware-Beschreibungssprache beschrieben sind.
  • Das System lässt sich mit geringem Aufwand an verschiedene Prozessoren anpassen, wenn gemäß einer vorteilhaften Ausgestaltung der Erfindung Mittel zum Anpassen des Systems an verschiedene Prozessortypen vorgesehen sind.
  • Nachfolgend wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläutert.
  • Es zeigen:
  • 1 eine schematische Darstellung eines Systems zur Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms,
  • 2 einen Ausschnitt einer Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und
  • 3 eine Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms.
  • 1 zeigt ein System zur Verknüpfung und Darstellung von Signalen 4, 5 einer Vorrichtung zur Hardware-Simulation 1 und Elementen 15 eines Listings 2 eines Programms 3 in schematischer Darstellung. Die Vorrichtung zur Hardware-Simulation 1 simuliert das Verhalten einer Schaltung 6 mit einem Prozessor 7, einem Programmspeicher 8 und applikationsspezifischen Hardwarekomponenten 10. Der Prozessor 7 kann z. B. ein Mikroprozessor oder Mikrocontroller sein. Der Programmspeicher 8 enthält den Programmcode 9 des Programms 3. Die Schaltung 6 wird mit Hilfe einer Hardware-Beschreibungssprache, abgekürzt HDL (HDL = Hardware Description Language), im Ausführungsbeispiel mittels VHDL (VHDL = Very High Speed Integrated Circuit Hardware Description Language) beschrieben. Mit dem Bezugszeichen 17 wird der Quellcode in VHDL bezeichnet. Die Vorrichtung zur Hardware-Simulation 1 wird entsprechend auch als HDL-Simulator bezeichnet. Ein Beispiel für einen HDL-Simulator ist das Produkt "ModelSim" der Firma Model Technology, Portland, Oregon, USA. Die Schaltung 6 ist z. B. ein sogenannter ASIC (ASIC = Application Specific Integrated Circuit = Anwendungsspezifische integrierte Schaltung). Der HDL-Quellcode 17 wird mit einem geeigneten Compiler in ein HDL-Simulator-Format 18 umgewandelt, welches von der Vorrichtung zur Hardware-Simulation 1 verarbeitet werden kann. Die Vorrichtung zur Hardware-Simulation 1 erzeugt Signale 4, 5 als Ergebnis der Simulation. Das Programm 3, bzw. der Programmcode 9 des Programms 3 wird mittels eines Compilers in ein Datenfile 16 (üblicherweise mit Daten in hexadezimaler Form) und ein Listing 2, auch Listfile genannt, umgewandelt. Das Listing 2 enthält sowohl die Programmbefehle als auch die zu gehörigen Kommentare. Das Listing 2 ist zeilenweise aufgebaut, wobei jede Zeile jeweils einen Programmbefehl bzw. eine Anweisung enthält, gegebenenfalls mit dem zugehörigen Kommentar. Eine Zeile, ein Programmbefehl, eine Anweisung bzw. ein Kommentar sind Elemente 15 des Listings 2. Ein Debugger 19 verknüpft die Elemente 15 des Listings 2 des Programms 3 mit den bei der simulierten Ausführung des im Programmspeicher 8 enthaltenen, mit diesen Elementen 15 korrespondierenden Programmcodes 9 erzeugten Signalen 4, 5. Die Elemente 15 des Listings 2 des Programms 3 werden in einem ersten Teilbereich 11 des grafischen Anzeigemittels 14 und die Signale 4, 5 in einem zweiten Teilbereich 12 bzw. in einem dritten Teilbereich 13 des Anzeigemittels 14 dargestellt.
  • 2 zeigt einen Ausschnitt 30 einer Darstellung von Signalen 4, 5 einer Vorrichtung zur Hardware-Simulation 1. Die Signale 4, 5 werden als sogenannte Waveforms 35, 36 und 37 dargestellt.
  • 3 zeigt eine Darstellung 23 von Signalen 4, 5 einer Vorrichtung zur Hardware-Simulation 1 und Elementen 15 eines Listings 2 eines Programms 3. Die Elemente 15 des Listings 2 werden in einem ersten Teilbereich 11, die Signale 4, 5 in einem zweiten 12 bzw. einem dritten 13 Teilbereich eines Anzeigemittels 14 dargestellt. Die Elemente 15 können mit einer Markierung 20, z. B. einer farblichen Kennzeichnung, versehen werden. Die Signale 4 können mit einer Markierung 21, z. B. einem Cursor, gekennzeichnet werden. Ein Anzeigemittel 14 kann eine Bildschirmoberfläche sein, die Teilbereiche 11 bis 13 können als Anzeigefenster realisiert sein. Der Ablauf des Programms 3 im Prozessor 7 (siehe 1) wird mit Hilfe des grafischen Frontends, des Debuggers 19, welcher auf die Signale 4, 5 der Vorrichtung zur Hardware-Simulation 1 aufsetzt, visualisiert. Die Visualisierung des Programmablaufes erfolgt durch Zugriff auf Signale des Prozessors 7, deren Werte durch die Vorrichtung zur Hardware-Simulation 1 berechnet wurden.
  • Gemäß dem Ausführungsbeispiel ist der Debugger 19 in der Skriptsprache TCL/TK realisiert (TCL/TK = Tool Command Language/Toolkit) und benutzt die TCL/TK-Schnittstelle zu HDL-Objekten, die ein HDL-Simulator zur Verfügung stellt. Solche HDL-Objekte können z. B. als Waveforms dargestellt werden. Um den Debugger 19 möglichst flexibel zu gestalten, d. h. in diesem Zusammenhang, dass er relativ einfach an verschiedene Prozessoren angepasst werden kann, wird der Debugger 19 in zwei Abschnitte aufgeteilt. Ein erster allgemeiner Teil stellt Prozeduren zur Visualisierung bereit. Ein zweiter prozessorspezifischer Teil ist dem jeweiligen Prozessor anpassbar und setzt sich z. B. aus folgenden Prozeduren zusammen:
    • • Prozeduren für Single-Step rechts/links
    • • Prozeduren zum Bestimmen der Registerwerte
    • • Prozeduren für die Kopplung von Signalen und Elementen des Listings
    • • Prozeduren zur Konfiguration
  • In den Prozeduren für Single-Step rechts/links (Bezugszeichen 22 in 3) wird der Cursor in einem Waveform-Fenster auf den nächsten gültigen Befehl gesetzt. Für das Beispiel eines KRISC8-Prozessors (KRISC8 = Kommunikations-RISC 8 Bit, Spezial-Core für die Kommunikation in Feldbussystemen der Firma Siemens AG, München, Deutschland) ist dies in 2 veranschaulicht.
  • Der im Folgenden wiedergegebene Ausschnitt aus einem Listing zeigt eine Prozedur für Single-Step-Right.
  • Figure 00080001
  • Figure 00090001
  • Figure 00100001
  • Dabei wird vereinfacht wie folgt vorgegangen (siehe 2):
    • • Zum momentanen Simulationszeitpunkt wird der Wert des Programmcounters 36 (pc, Programmcounter = Programmzähler) ermittelt. Der momentan ausgeführte Befehl ist in 2 mit dem Bezugszeichen 31 gekennzeichnet)
    • • Der Beginn des nächsten Befehles wird gesucht. Der Cursor wird solange um Vielfache der Taktperiode weitergeschoben, bis eine Änderung des Programmzählers auftritt.
    • • Es wird überprüft, ob der nun erreichte Befehl ausgeführt wird.
    • • Handelt es sich um einen Befehl, welcher nicht ausgeführt wird, so wird der übernächste Befehl getestet (Wiederholung solange, bis ein ausgeführter Befehl erreicht ist oder das Simulationsende erreicht ist). Im Beispielsfall gemäß 2 sind die nicht ausgeführten, d. h. ungültigen Befehle mit dem Bezugszeichen 32 gekennzeichnet.
    • • Wird der erreichte Befehl ausgeführt, dann wird der Cursor im Waveform-Fenster (entspricht dem zweiten Teilbereich 12 des Anzeigemittels 14 gemäß 3) zu diesem Zeitpunkt platziert. Im Beispielsfall gemäß 2 ist der nächste ausgeführte, d. h. gültige Befehl mit dem Bezugszeichen 33 gekennzeichnet.
  • Die Ermittlung des gültigen Befehls erfolgt prozessorspezifisch. Es genügt bei modernen Prozessorarchitekturen üblicherweise nicht, den Programcounter 36 zu verfolgen, sondern es sind zusätzliche Signale 4, 5 auszuwerten, die angeben, ob der momentane Befehl gültig ist (z. B. das der Waveform 34 zugrundeliegende Signal). Wenn ein gültiger Befehl ermittelt wurde, so erfolgt die Markierung 20 des momentan ausgeführten Befehls im angezeigten Listing im ersten Teilbereich 11 des Anzeigemittels 14 und es werden die Registerwerte im dritten Teilbereich 13 des Anzeigemittels 14 angezeigt (siehe folgenden Ausschnitt eines Listings).
  • Figure 00120001
  • Um den simulierten Ablauf eines Programms 3 auf einem Prozessor 7 zu verfolgen, gab es bisher keine zufriedenstellenden Möglichkeiten. Die manuelle Verfolgung des Programmablaufes anhand der von einem Simulator ausgegebenen Waveform und einem Ausdruck eines Listfiles hat den Nachteil, dass bei den üblicherweise verwendeten Prozessoren (Pipelines, Caches, u. Ä.) eine Programmverfolgung sehr aufwendig und fehlerträchtig wird. Bei einer Verfolgung des Programmablaufes anhand eines Disassemblerausdruckes muss ein Benutzer keine direkte Auswertung der Waveform vornehmen. Es wird nur eine Liste der vom Prozessor bearbeiteten Befehle ausgegeben. Somit fehlt aber der direkte Bezug zum eigentlichen Programm und damit werden auch die im Quelltext eingefügten Kommentare nicht angezeigt. Beim Verwenden eines Debuggers, der auf ein abstrahiertes C-Modell aufsetzt, ergeben sich im Wesentlichen zwei Nachteile. Zum einen benötigt man ein C-Modell für den eingesetzten Prozessor, welches normalerweise nicht vorliegt und somit aufwendig erstellt werden muss. Zum anderen stellt das C-Modell des Prozessors eine erneute Beschreibung des Prozessors dar und es ist nicht ausgeschlossen, dass der tatsächliche Prozessor ein vom C-Modell abweichendes Verhalten aufweist. Da bei dem hier vorgeschlagenen Verfahren kein C-Modell für den Prozessor 7 benötigt wird, ist zum einen gewährleistet, dass der gleiche Prozessor 7 simuliert wird, der auch in der Schaltung 6 implementiert ist. Zum anderen hält sich der Aufwand zum Anpassen des Debuggers 19 an verschiedene Prozessoren 7 bzw. Prozessortypen in Grenzen.
  • Zusammengefasst betrifft die Erfindung somit ein System und ein Verfahren zur Verknüpfung und Darstellung von Signalen 4, 5 einer Vorrichtung zur Hardware-Simulation 1 und Elementen 15 eines Listings 2 eines Programms 3 sowie ein Fehlersuchwerkzeug. Um eine gemeinsame Darstellung der Signale der Vorrichtung zur Hardware-Simulation und der Elemente des Listings des Programms zu ermöglichen, wird vorgeschlagen, dass die Vorrichtung zur Hardware-Simulation 1 das Verhalten einer Schaltung 6 mit einem Prozessor 7, einem Programmspeicher 8, welcher den Programmcode 9 des Programms 3 enthält, und applikationsspezifischen Hardwarekomponenten 10 simuliert und Signale 4, 5 als Ergebnis der Simulation erzeugt, dass die Elemente 15 des Listings 2 des Programms 3 mit den bei der simulierten Ausführung des im Programmspeicher 8 enthaltenen, mit diesen Elementen 15 korrespondierenden Programmcodes 9 erzeugten Signalen 4, 5 verknüpft werden und dass die Elemente 15 des Listings 2 des Programms 3 in einem ersten Teilbereich 11 eines grafischen Anzeigemittels 14 und die Signale 4, 5 in einem zweiten Teilbereich 12 des Anzeigemittels 14 darstellbar sind.
  • Im Folgenden werden der technische Hintergrund der Erfindung und verwendete Begriffe näher erläutert.
  • Die beschriebenen Schaltungen werden z. B. in sogenannten eingebetteten Systemen (gebräuchlicher ist der entsprechende englische Begriff "embedded systems") eingesetzt. Beispiele für Programmiersprachen für den Einsatz in eingebetteten Systemen sind C, Assembler, C++ und Java. Diesen Sprachen gemeinsam ist der Einsatz eines Compilers, der eine schrittweise Vorgehensweise bei der Codeentwicklung vorschreibt, die sogenannten edit-compile-load-debug Zyklen. Debugger genannte Fehlersuchwerkzeuge werden allgemein verwendet, um Fehler in der Software-Programmierung aufzuspüren. Da die meisten Software-Entwicklungssysteme hierfür eine integrierte Entwicklungsumgebung zur Verfügung stellen, können Debugger relativ einfach den Programmcode verändern und mit Einzelschritten oder gesetzten Kontrollpunkten auf ihrem Zielsystem überprüfen. Man kann damit ein Programm kontrolliert ausführen, also das Programm Zeile für Zeile ausführen und die Werte von Variablen abfragen und ändern. Software Debugger bieten folgende Basisfunktionen an:
    • • Einzelschritt-Ausführung von Assembler- und Hochsprachencode
    • • Setzen von Haltepunkten (Breakpoints) an definierten Stellen in Hochsprache oder Maschinencode, an denen das Programm vorübergehend angehalten wird
    • • Anzeigen von Variablenwerten, logischen Ausdrücken, Speicheradressen und CPU-Registern
  • TCL ist eine plattformübergreifende Script-Programmiersprache. Durch die Kombination aus Textverarbeitungs-, Dateibearbeitungs- und Systemsteuerungsfunktionen ist TCL für diesen Zweck optimiert. EDA-Tools (EDA = Electronic Design Automation) verwenden TCL häufig zusammen mit dem Grafik-Toolkit TK, um eine flexible und plattformunabhängige grafische Benutzeroberfläche zu bieten. Hierzu gehört beispielsweise ModelSim.
  • Im Bereich der eingebetteten Systeme hat der parallele Entwurf von Hardware und Software den klassischen, rein sequentiellen Entwurfsablauf weitgehend abgelöst. Eingebettete Systeme spielen eine dominierende Rolle in der Automatisierungstechnik. Basis ihres Erfolgs ist die exponentiell steigende Komplexität integrierter Schaltungen und die damit wachsenden Möglichkeiten für neue Systemfunktionen, die zunehmend in Software realisiert werden. Die daraus resultierende Systemkomplexität verlangt bei gleichzeitig absinkenden Entwicklungszeiten eine drastische Erhöhung der Entwurfsproduktivität. Diese Erhöhung ist nur durch Entwurfsautomation und systematische Wiederverwendung von Systemfunktionen erreichbar. Ein wesentlicher Schritt ist die Integration von Hardware- und Softwareentwurf, der Hardware/Software-Coentwurf.
  • Hardware- und Softwareentwurf beginnen oft vor der Vollendung der Systemarchitektur oder gar vor der endgültigen Festlegung der Spezifikation. Systemarchitekten, Anwender und Kunden oder Marketingexperten entwickeln gemeinsam Anforderungsdefinition und Spezifikation. Der Systemarchitekt entwickelt daraus ein System kooperierender Systemfunktionen als Grundlage eines anschließenden, parallelen Entwurfs von Hardware und Software. An dieser Stelle wird auch die Grobarchitektur der Zielhardware festgelegt. Der Hardware-/Software-Schnittstellenentwurf erfordert eine Beteiligung von Hardware- und Softwareentwicklern. Die Integration der Hardware und Softwarekomponenten und der Test des integrierten Systems folgt als letzter Schritt. In allen Phasen führen Abweichungen von erwarteten Entwurfsergebnissen oder Änderungen der Spezifikation zu einer Wiederholung von Entwurfsschritten. Ein zentrales Problem im Entwurfsprozess ist die Überwachung und Integration des parallelen Hardware- und Software-Entwurfs. Eine frühe Fehlererkennung erfordert die Kontrolle von Konsistenz und Korrektheit, die um so aufwendiger wird, je detaillierter der Entwurf ausgearbeitet ist.
  • Bei der Hardware-Software Cosimulation wird die Ausführung der Software auf der (Prozessor-)Hardware zusammen mit applikationsspezifischen Hardwarekomponenten simuliert. Da eine Simulation mit hohem Detaillierungsgrad, wie er im Hardwareentwurf üblich ist, zu langsam für eine praktisch nutzbare Softwaresimulation ist, werden üblicherweise abstrakte Prozessormodelle benötigt. Zu diesem Zweck werden die Prozessoren abstrakter ("auf einer höheren Abstraktionsebene") modelliert als die anderen Hardwarekomponenten. Dabei wird das Zeitverhalten des Prozessors nicht mehr taktgenau, d. h, für jeden Taktzyklus aufgeschlüsselt, dargestellt, sondern nur noch die Programme mit ihren Ein- und Ausgaben. Das Problem der Cosimulation liegt nun in der Kopplung der unterschiedlich abstrakten Modelle, derart dass eine hinreichende Genauigkeit der Simulation erreicht wird. Im ungünstigsten Fall greifen Prozessor und andere Hardwarekomponenten auf den gleichen Speicher zu. Eine genaue Modellierung erfordert in diesem Fall angepasste Speicher- und Busmodelle und spezielle Simulationstechniken. Ein Beispiel hierfür bietet der Cosimulator Seamless CVS der Firma Mentor Graphics, Wilsonville, Oregon, USA. Das Produkt Seamless CVS benutzt ein abstraktes Prozessormodell, das die Befehlsausführung nachbildet (ein sogenannter Instruction Set Simulator). Für den Speicher zugriff werden Busmodelle verwendet, deren Abstraktion abhängig vom gleichzeitigen Zugriff von Prozessor und Hardware ist. Speicher, auf die lediglich der Prozessor zugreift, werden folglich abstrakter modelliert als solche, in denen Konflikte auftreten können. Voraussetzung ist also die Verfügbarkeit einer Bibliothek von Modellen, die vom CAD-Anbieter oder dem Prozessorhersteller bezogen wird.
  • Ein abstrakterer Ansatz reduziert das Prozessormodell auf die reine Programmausführung auf dem PC oder der Workstation und modelliert lediglich das Interface mit Zeitverhalten. Die Kopplung der Software-Ausführung zum Hardwaremodell erfolgt dann über ein simulatorspezifisches Kommunikationsprotokoll, das der Entwickler in die Software einfügen muss. Für diese Modellierung sind nur Interface-Modelle erforderlich, was die Bibliotheksproblematik wesentlich vereinfacht. Andererseits wird das Zeitverhalten nur auf der Hardwareseite korrekt modelliert. Beispiel für einen solchen Cosimulator ist das Produkt Eagle der Firma Synopsys, Mountain View, Kalifornien, USA.

Claims (11)

  1. System zur Verknüpfung und Darstellung von Signalen (4, 5) einer Vorrichtung zur Hardware-Simulation (1) und Elementen (15) eines Listings (2) eines Programms (3), • wobei die Vorrichtung zur Hardware-Simulation (1) das Verhalten einer Schaltung (6) mit einem Prozessor (7), einem Programmspeicher (8), welcher den Programmcode (9) des Programms (3) enthält, und applikationsspezifischen Hardwarekomponenten (10) simuliert und Signale (4, 5) als Ergebnis der Simulation erzeugt, • wobei die Elemente (15) des Listings (2) des Programms (3) mit den bei der simulierten Ausführung des im Programmspeicher (8) enthaltenen, mit diesen Elementen (15) korrespondierenden Programmcodes (9) erzeugten Signalen (4, 5) verknüpft werden, • wobei die Elemente (15) des Listings (2) des Programms (3) in einem ersten Teilbereich (11) eines grafischen Anzeigemittels (14) und die Signale (4, 5) in einem zweiten Teilbereich (12) des Anzeigemittels (14) darstellbar sind.
  2. System nach Anspruch 1, dadurch gekennzeichnet, dass eine Markierung (20) eines Elements (15) des Listings (2) des Programms (3) im ersten Teilbereich (11) des grafischen Anzeigemittels (14) und eine Markierung (21) der mit diesem Element (15) verknüpften Signale (4, 5) im zweiten Teilbereich (12) des Anzeigemittels (14) vorgesehen ist.
  3. System nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass ein dritter Teilbereich (13) des grafischen Anzeigemittels (14) zur Darstellung mindestens eines Teils der Signale (4, 5) vorgesehen ist.
  4. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Schaltung (6) mit dem Prozessor (7), dem Programmspeicher (8) und den applikationsspezifischen Hardwarekomponenten (9) in einer Hardware-Beschreibungssprache beschrieben sind.
  5. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Mittel zum Anpassen des Systems an verschiedene Prozessortypen vorgesehen sind.
  6. Verfahren zur Verknüpfung und Darstellung von Signalen (4, 5) einer Vorrichtung zur Hardware-Simulation (1) und Elementen (15) eines Listings (2) eines Programms (3), • wobei die Vorrichtung zur Hardware-Simulation (1) das Verhalten einer Schaltung (6) mit einem Prozessor (7), einem Programmspeicher (8), welcher den Programmcode (9) des Programms (3) enthält, und applikationsspezifischen Hardwarekomponenten (10) simuliert und Signale (4, 5) als Ergebnis der Simulation erzeugt, • wobei die Elemente (15) des Listings (2) des Programms (3) mit den bei der simulierten Ausführung des im Programmspeicher (8) enthaltenen, mit diesen Elementen (15) korrespondierenden Programmcodes (9) erzeugten Signalen (4, 5) verknüpft werden, • wobei die Elemente (15) des Listings (2) des Programms (3) in einem ersten Teilbereich (11) eines grafischen Anzeigemittels (14) und die Signale (4, 5) in einem zweiten Teilbereich (12) des Anzeigemittels (14) dargestellt werden.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass ein Element (15) des Listings (2) des Programms (3) im ersten Teilbereich (11) des grafischen Anzeigemittels (14) und die mit diesem Element (15) verknüpften Signale (4, 5) im zweiten Teilbereich (12) des Anzeigemittels (14) markiert werden.
  8. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass in einem dritten Teilbereich (13) des grafischen Anzeigemittels (14) mindestens ein Teil der Signale (4, 5) dargestellt wird.
  9. Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass die Schaltung (6) mit dem Prozessor (7), dem Programmspeicher (8) und den applikationsspezifischen Hardwarekomponenten (9) in einer Hardware-Beschreibungssprache beschrieben sind.
  10. Verfahren nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, dass das Verfahren an verschiedene Prozessortypen anpassbar ist.
  11. Fehlersuchwerkzeug zur Verknüpfung und Darstellung von Signalen (4, 5) einer Vorrichtung zur Hardware-Simulation (1) und Elementen (15) eines Listings (2) eines Programms (3), • wobei die Vorrichtung zur Hardware-Simulation (1) das Verhalten einer Schaltung (6) mit einem Prozessor (7), einem Programmspeicher (8), welcher den Programmcode (9) des Programms (3) enthält, und applikationsspezifischen Hardwarekomponenten (10) simuliert und Signale (4, 5) als Ergebnis der Simulation erzeugt, • wobei das Fehlersuchwerkzeug Mittel zur Verknüpfung der Elemente (15) des Listings (2) des Programms (3) mit den bei der simulierten Ausführung des im Programmspeicher (8) enthaltenen, mit diesen Elementen (15) korrespondierenden Programmcodes (9) erzeugten Signalen (4, 5) aufweist, wobei die Elemente (15) des Listings (2) des Programms (3) in einem ersten Teilbereich (11) eines grafischen Anzeigemittels (14) und die Signale (4, 5) in einem zweiten Teilbereich (12) des Anzeigemittels (14) darstellbar sind.
DE10329147A 2003-06-27 2003-06-27 Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms Withdrawn DE10329147A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE10329147A DE10329147A1 (de) 2003-06-27 2003-06-27 Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms
PCT/EP2004/004991 WO2005001720A1 (de) 2003-06-27 2004-05-10 Verknüpfung und darstellung von signalen einer vorrichtung zur hardware-simulation und elementen eines listings eines programms
US10/562,303 US20060178863A1 (en) 2003-06-27 2004-05-10 Combining and representing signals of a hardware simulation device and elements of a program listing
EP04731897A EP1639508A1 (de) 2003-06-27 2004-05-10 Verknüpfung und darstellung von signalen einer vorrichtung zur hardware-simulation und elementen eines listings eines programms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10329147A DE10329147A1 (de) 2003-06-27 2003-06-27 Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms

Publications (1)

Publication Number Publication Date
DE10329147A1 true DE10329147A1 (de) 2005-01-20

Family

ID=33521136

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10329147A Withdrawn DE10329147A1 (de) 2003-06-27 2003-06-27 Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms

Country Status (4)

Country Link
US (1) US20060178863A1 (de)
EP (1) EP1639508A1 (de)
DE (1) DE10329147A1 (de)
WO (1) WO2005001720A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711537B2 (en) * 2006-05-03 2010-05-04 International Business Machines Corporation Signals for simulation result viewing
US8893065B2 (en) * 2012-07-11 2014-11-18 Mentor Graphics Corporation Biometric markers in a debugging environment
US20160070457A1 (en) * 2014-09-04 2016-03-10 Home Box Office, Inc. Platform-independent user interface system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760866B2 (en) * 1987-06-02 2004-07-06 Texas Instruments Incorporated Process of operating a processor with domains and clocks
US5544067A (en) * 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
TW421761B (en) * 1994-04-12 2001-02-11 Yokogawa Electric Corp Verification support system
US5768567A (en) * 1996-05-14 1998-06-16 Mentor Graphics Corporation Optimizing hardware and software co-simulator
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6298320B1 (en) * 1998-02-17 2001-10-02 Applied Microsystems Corporation System and method for testing an embedded microprocessor system containing physical and/or simulated hardware
US6272451B1 (en) * 1999-07-16 2001-08-07 Atmel Corporation Software tool to allow field programmable system level devices
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US7124376B2 (en) * 2000-05-02 2006-10-17 Palmchip Corporation Design tool for systems-on-a-chip
WO2001095161A2 (en) * 2000-06-02 2001-12-13 Virtio Corporation Method and system for virtual prototyping
US7143021B1 (en) * 2000-10-03 2006-11-28 Cadence Design Systems, Inc. Systems and methods for efficiently simulating analog behavior of designs having hierarchical structure
US7031899B2 (en) * 2001-04-09 2006-04-18 Novas Software, Inc. System for characterizing simulated circuit logic and behavior
US20030004699A1 (en) * 2001-06-04 2003-01-02 Choi Charles Y. Method and apparatus for evaluating an integrated circuit model
US7080365B2 (en) * 2001-08-17 2006-07-18 Sun Microsystems, Inc. Method and apparatus for simulation system compiler
US6948155B2 (en) * 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
US7051299B2 (en) * 2003-07-31 2006-05-23 International Business Machines Corporation Method for generating reusable behavioral code

Also Published As

Publication number Publication date
WO2005001720A1 (de) 2005-01-06
US20060178863A1 (en) 2006-08-10
EP1639508A1 (de) 2006-03-29

Similar Documents

Publication Publication Date Title
DE69330537T2 (de) System zur Analyse und Fehlerbeseitigung integrierter Software durch dynamischen und interactiven Gebrauch von Kode-Markierern
DE69229889T2 (de) Automatische Logikmodell-Erzeugung aus einer Schaltschema-Datenbank
US8290755B2 (en) System for testing at least one electronic control unit and method
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
EP2851815A1 (de) Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
CN109032577B (zh) 一种数据仿真方法
WO2008040664A1 (de) Verfahren zur rechnergestützten bewertung von softwarequellcode
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
EP3285165A1 (de) Modifizieren und simulieren der betriebssoftware eines technischen systems
DE112010004980T5 (de) Verbessern der Leistungsfähigkeit von auf Vorlagen beruhenden Javascript-Fensterobjekten
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102020104840A1 (de) Programmatisches generieren von software-test-bibliotheken für funktionale sicherheit
CN104699523B (zh) 用于硬件平台所开发的应用程序的调试方法和系统
DE102011015444A1 (de) Nethod and apperatus for operational-level functional and degradation fault analysis
EP3306295B1 (de) Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen
DE112018002316T5 (de) Codeabdeckungsverfolgung für ein mikrocontroller-programm
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
JP2017162130A (ja) ハードウェア/ソフトウェア協調検証装置およびハードウェア/ソフトウェア協調検証方法
Klein Miami: a hardware software co-simulation environment
DE10329147A1 (de) Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms
DE102004017050A1 (de) Datenkonsistenz in Datenverarbeitungsanlagen
DE102008030163A1 (de) Verfahren zur Simulation von eingebetteten Systemen durch ein für Hardware- und Software-Komponenten integriertes Simulationsmodell
CN104573526B (zh) 软件产品多版本管理方法、装置以及计算机设备
Schöpp et al. Requirements-based code model checking
EP2653850B1 (de) Verfahren und IT-System zum Durchführen von Gesamtfahrzeugtests

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee