DE102014117919A1 - Error injection for system check - Google Patents

Error injection for system check Download PDF

Info

Publication number
DE102014117919A1
DE102014117919A1 DE102014117919.6A DE102014117919A DE102014117919A1 DE 102014117919 A1 DE102014117919 A1 DE 102014117919A1 DE 102014117919 A DE102014117919 A DE 102014117919A DE 102014117919 A1 DE102014117919 A1 DE 102014117919A1
Authority
DE
Germany
Prior art keywords
development
compilation
node
computer
modified
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.)
Pending
Application number
DE102014117919.6A
Other languages
German (de)
Inventor
Michael Smith
David Smith
Omair Abbasi
Vivian An
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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
Priority claimed from US14/530,359 external-priority patent/US10452797B2/en
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of DE102014117919A1 publication Critical patent/DE102014117919A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level

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)

Abstract

Es wird ein computerimplementiertes Verfahren zum Modifizieren einer kompilierten Entwicklung einer elektronischen Schaltung offenbart. Das Verfahren umfasst, auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen und den Computer im Ansprechen auf eine Angabe einer Veränderung an einem Teil der Entwicklung zu veranlassen, eine modifizierte Version der gespeicherten Kompilierung zu generieren.A computer-implemented method for modifying a compiled development of an electronic circuit is disclosed. The method includes accessing a stored compilation representing the development and causing the computer to generate a modified version of the stored compilation in response to an indication of a change in a portion of the development.

Description

HINTERGRUNDBACKGROUND

Die vorliegende Erfindung bezieht sich allgemein auf ein computerimplementiertes Verfahren und System zur Überprüfung einer Entwicklung und insbesondere auf die Einschleusung einer Vielzahl von Fehlern während einer Computersimulation, um eine Systementwicklung zu überprüfen.The present invention relates generally to a computer-implemented method and system for verifying development, and more particularly to injecting a plurality of errors during a computer simulation to verify system development.

Elektronik spielt beispielsweise in der heutigen Automobilwelt eine immer wichtigere Rolle. Heutzutage macht Elektronik nahezu 40% des Inhalts eines durchschnittlichen Neuwagens aus, und es ist zu erwarten, dass der Anteil an Elektronik noch höher wird. Nach einer Studie enthält ein durchschnittlicher Neuwagen mehr als 40 elektronische Steuerungen, fünf Meilen Verdrahtung und mehr als 10 Millionen Computersoftwarezeilen. Mit dieser starken Zunahme der Elektronik nehmen auch die von Elektronikausfällen herrührenden Risiken schnell zu. Fehlerbedingte Ausfälle in der Elektronik dieser Fahrzeuge können eine gefährliche Auswirkung auf das Fahrzeug haben. Konsequenzen fehlerbedingter Ausfälle, die mit Fahrzeugelektronik verbunden sind, umfassen Unfälle und Rückrufaktionen.For example, electronics plays an increasingly important role in today's automotive world. Today, electronics account for nearly 40% of the average new car's content, and it is expected that the proportion of electronics will be even higher. According to one study, an average new car contains more than 40 electronic controls, five miles of wiring and more than 10 million computer software lines. With this large increase in electronics, the risks of electronic failures are also increasing rapidly. Faulty failures in the electronics of these vehicles can have a dangerous effect on the vehicle. Consequences of fault-related failures associated with vehicle electronics include accidents and recalls.

Automobilhersteller sehen sich mit der schwierigen Aufgabe konfrontiert, die Sicherheit und Zuverlässigkeit der elektronischen Bauteile ihrer Fahrzeuge sicherzustellen. Die meisten Hersteller verlassen sich heutzutage auf das elektrische Testen ihrer Systeme, was sehr kostspielig und zeitaufwändig ist und nicht alle der möglichen Fehlerzustände und ihre potentielle Auswirkung auf das System abdecken kann.Automakers face the difficult task of ensuring the safety and reliability of the electronic components of their vehicles. Most manufacturers today rely on the electrical testing of their systems, which is very costly, time consuming and can not cover all the possible fault conditions and their potential impact on the system.

Herkömmliche computerunterstützte Entwicklungs(CAD)-Fehlersimulatoren können zum Einschleusen von Fehlerelementen als Veränderungen in die Entwicklungsbeschreibung verwendet werden. Jedoch macht jede Entwicklungsveränderung wegen der begrenzten Möglichkeit des Benutzers, während der Laufzeit mit der Simulation zu interagieren, eine zeitraubende Neukompilierung der Simulation erforderlich. Es wird eine robuste Fehlersimulationsfähigkeit in der Simulationsumgebung benötigt, damit Entwickler und Prüfingenieure verschiedene Arten von Fehlern simulieren und die Auswirkung der Fehler verstehen können, bevor Prototypen zum physikalischen Testen gebaut werden.Conventional computer aided design (CAD) error simulators can be used to introduce error elements as changes in the design description. However, any developmental change necessitates time-consuming recompilation of the simulation because of the user's limited ability to interact with the simulation during runtime. Robust fault simulation capability is needed in the simulation environment so that designers and test engineers can simulate different types of errors and understand the impact of errors before building prototypes for physical testing.

ZUSAMMENFASSUNGSUMMARY

Ein zu erreichendes Ziel besteht darin, ein verbessertes Konzept zur Entwicklungsüberprüfung einer Schaltungsentwicklung bereitzustellen.One goal to be achieved is to provide an improved concept for design verification of a circuit design.

Dieses Ziel wird mit dem Gegenstand der unabhängigen Ansprüche erreicht. Ausführungsformen und Weiterentwicklungen sind in den abhängigen Ansprüchen definiert.This object is achieved with the subject matter of the independent claims. Embodiments and further developments are defined in the dependent claims.

Bei einem erfinderischen Aspekt handelt es sich um ein computerimplementiertes Verfahren zum Modifizieren einer kompilierten Entwicklung einer elektronischen Schaltung. Das Verfahren umfasst, auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen und den Computer im Ansprechen auf eine Angabe einer Veränderung an einem Teil der Entwicklung zu veranlassen, eine modifizierte Version der gespeicherten Kompilierung zu generieren.An inventive aspect is a computer-implemented method for modifying a compiled development of an electronic circuit. The method includes accessing a stored compilation representing the development and causing the computer to generate a modified version of the stored compilation in response to an indication of a change in a portion of the development.

Bei einem anderen erfinderischen Aspekt handelt es sich um ein System zum Überprüfen einer Entwicklung, wobei das System einen Prozessor und einen Speicher umfasst, der einen Satz Befehle speichert. Wenn die Befehle durch den Prozessor ausgeführt werden, konfigurieren sie den Prozessor, auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen, und veranlassen den Prozessor, im Ansprechen auf eine Angabe einer Veränderung an einem Teil der Entwicklung eine modifizierte Version der gespeicherten Kompilierung zu generieren.Another inventive aspect is a system for verifying a development, the system comprising a processor and a memory storing a set of instructions. When the instructions are executed by the processor, they configure the processor to access a compiled, stored compilation, and cause the processor to generate a modified version of the stored compilation in response to an indication of a change in a portion of the development.

Bei einem anderen erfinderischen Aspekt handelt es sich um einen computerlesbaren Datenträger, der Befehle beinhaltet, die, wenn sie durch den Computer ausgeführt werden, den Computer dazu veranlassen, ein Verfahren durchzuführen, wobei das Verfahren umfasst, auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen und im Ansprechen auf eine Angabe einer Veränderung an einem Teil der Entwicklung eine modifizierte Version der gespeicherten Kompilierung zu generieren.Another inventive aspect is a computer readable medium containing instructions that, when executed by the computer, cause the computer to perform a method, the method comprising accessing a compiled development representation and generate a modified version of the stored compilation in response to an indication of a change in a portion of the development.

KURZE BESCHREIBUNG DER ZEICHNUNGEN BRIEF DESCRIPTION OF THE DRAWINGS

Verschiedene Ausführungsformen der Erfindung sind in der folgenden ausführlichen Beschreibung und den beigefügten Zeichnungen offenbart.Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.

1 stellt ein vereinfachtes Ablaufschema zum Überprüfen einer Entwicklung nach einer Ausführungsform der vorliegenden Erfindung dar. 1 FIG. 12 illustrates a simplified flowchart for verifying a development according to an embodiment of the present invention. FIG.

2A stellt ein vereinfachtes, beispielhaftes Schaltschema einer Verstärkerentwicklung dar. 2A FIG. 3 illustrates a simplified, exemplary schematic diagram of amplifier development. FIG.

2B stellt ein vereinfachtes, beispielhaftes Schaltschema einer Reihenschaltungsmodifizierung an dem in 2A dargestellten Schema nach einer Ausführungsform der vorliegenden Erfindung dar. 2 B provides a simplified, exemplary schematic of a series connection modification to the in 2A illustrated scheme according to an embodiment of the present invention.

2C stellt ein vereinfachtes, beispielhaftes Schaltschema einer Parallelschaltungsmodifizierung an dem in 2A dargestellten Schema nach einer Ausführungsform der vorliegenden Erfindung dar. 2C provides a simplified, exemplary schematic of a parallel connection modification to the in 2A illustrated scheme according to an embodiment of the present invention.

2D stellt ein vereinfachtes, beispielhaftes Schaltschema einer mit 2 Anschlüssen verbundenen Reihenschaltungsmodifizierung an dem in 2A dargestellten Schema nach einer Ausführungsform der vorliegenden Erfindung dar. 2D provides a simplified, exemplary schematic of a 2-port connected series circuit modification to the in FIG 2A illustrated scheme according to an embodiment of the present invention.

2E stellt ein vereinfachtes, beispielhaftes Schaltschema einer Reihen- und Parallelschaltungsmodifizierung an dem in 2A dargestellten Schema nach einer Ausführungsform der vorliegenden Erfindung dar. 2E provides a simplified, exemplary schematic of a series and parallel circuit modification to the in 2A illustrated scheme according to an embodiment of the present invention.

3 stellt ein vereinfachtes Ablaufschema für einen in 1 dargestellten Entwicklungsteilmodifizierungsschritt nach einer Ausführungsform der vorliegenden Erfindung dar. 3 provides a simplified flowchart for an in 1 illustrated development part modification step according to an embodiment of the present invention.

4A stellt ein vereinfachtes, beispielhaftes Blockschema einer Entwicklungsbaumstruktur dar, die die ausgearbeitete Entwicklung nach einer Ausführungsform der vorliegenden Erfindung darstellt. 4A FIG. 4 illustrates a simplified, exemplary block diagram of a development tree illustrating the elaborate development of an embodiment of the present invention.

4B stellt ein vereinfachtes, beispielhaftes Blockschema der in 4A dargestellten Entwicklungsbaumstruktur mit einem hinzugefügten Element nach einer Ausführungsform der vorliegenden Erfindung dar. 4B provides a simplified, exemplary block diagram of the 4A shown development tree structure with an added element according to an embodiment of the present invention.

5 stellt ein vereinfachtes Ablaufschema für einen in 1 dargestellten Subanalysenschritt nach einer Ausführungsform der vorliegenden Erfindung dar. 5 provides a simplified flowchart for an in 1 illustrated sub-analysis step according to an embodiment of the present invention.

6 ist ein vereinfachtes, beispielhaftes V-Modell für Systemtechnik, das mit Ausführungsformen der vorliegenden Erfindung verbunden ist. 6 FIG. 10 is a simplified, exemplary system-based V-model associated with embodiments of the present invention.

7 ist ein Blockschema eines Computersystems, das Ausführungsformen der vorliegenden Erfindung eingliedern kann. 7 Figure 12 is a block diagram of a computer system that may incorporate embodiments of the present invention.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

1 stellt ein vereinfachtes Ablaufschema 100 zum Überprüfen einer Entwicklung nach einer Ausführungsform der vorliegenden Erfindung dar. Das Ablaufschema 100 kann eine robuste Fehlersimulationsbefähigung in der Simulationsumgebung haben, damit Entwickler und Prüfingenieure verschiedene Arten von Fehlern simulieren und die Auswirkungen dieser Fehler verstehen können, bevor kostspielige Prototypen gebaut werden. Ausführungsformen des im Ablaufschema 100 dargestellten Verfahrens können beispielsweise in einem Saber® HDL Simulator und/oder Saber® Simulator genannten Softwaretool enthalten sein, das von Synopsys, Inc. vermarktet wird. Ausführungsformen des Verfahrens können durch einen Computer durchgeführt werden, der Softwarebefehle ablaufen lässt, die dazu konfiguriert sind, den Computer dazu zu veranlassen, ein Fehlersimulator zu sein oder als solcher zu fungieren. 1 provides a simplified flowchart 100 for checking a development according to an embodiment of the present invention. The flowchart 100 can have a robust fault simulation capability in the simulation environment so that designers and test engineers can simulate different types of errors and understand the implications of these errors before building costly prototypes. Embodiments of the flowchart 100 The method illustrated may be included, for example, in a software tool called Saber® HDL Simulator and / or Saber® Simulator marketed by Synopsys, Inc. Embodiments of the method may be performed by a computer executing software instructions configured to cause the computer to be or function as a fault simulator.

Der Fehlersimulator erhält eine Entwicklungsbeschreibung, im Folgenden als „Entwicklung” bezeichnet, die beispielweise als ein grafisches Schaltschema oder als eine Beschreibung dargestellt sein kann, die in einer Hardware-Entwicklungssprache (HDL) wie etwa VHDL, VHDL-AMS, Verilog-AMS, MAST, Modelica und/oder dergleichen geschrieben ist. Bei der Entwicklung kann es sich beispielsweise um eine elektronische Schaltung, ein elektromechanisches System, ein mechanisches System, die durch mathematische Beschreibungen ihres physikalischen Verhaltens dargestellt sind, im Folgenden auch als „Modelle” bezeichnet, und/oder irgendein System handeln, das sich dazu eignet, durch eine Kombination konservierter Signalfluss- und Ereignis- oder Digitalsystemgleichungen charakterisiert zu werden. Die Entwicklung kann eine wiederverwendbare Beschreibung eines Elements enthalten, die mehrmals über die gesamte Entwicklung hinweg verwendet oder instanziiert wird, wobei für jede Verwendung andere Parameter angesetzt werden. Beispielsweise kann ein Widerstandselement einen Widerstandsparameter umfassen, und der Widerstand kann mehrmals mit anderen Widerstandswerten in jeder Objektinstanz des Widerstands instanziiert werden. Eine Einzelverwendung eines Elements in der Entwicklung wird als Objektinstanz dieses Elements bezeichnet. Eine Beschreibung eines Elements kann hierarchisch sein, wobei die Beschreibung Objektinstanzen anderer Elemente enthält.The fault simulator is given a developmental description, hereafter referred to as "development", which may, for example, be represented as a graphical schematic or as a description in hardware development language (HDL) such as VHDL, VHDL-AMS, Verilog-AMS, MAST , Modelica and / or the like is written. The development may be, for example, an electronic circuit, an electromechanical system, a mechanical system represented by mathematical descriptions of its physical behavior, hereinafter referred to as "models", and / or any system capable of being characterized by a combination of conserved signal flow and event or digital system equations. Development can include a reusable description of an element that is used or instantiated multiple times throughout development, with different parameters applied to each use. For example, a resistive element may include a resistance parameter, and the resistor may be instantiated several times with different resistance values in each object instance of the resistor. A single use of an item in development is called an object instance of that item. A description of an element may be hierarchical, with the description containing object instances of other elements.

Der Fehlersimulator arbeitet die Entwicklung aus. In einigen Systemen wird die Entwicklung vor der Ausarbeitung in Form einer Syntaxbaumstruktur dargestellt, die verschiedene Teile der Entwicklung und die Verknüpfungen zwischen diesen enthält, aber nicht die Auswirkungen dieser Teile auf die Gesamtentwicklung, wenn sie zusammengeschaltet sind, enthält. Der Simulator erschafft diese Syntaxbaumstruktur, indem er die eingegebene Entwicklungsbeschreibung analysiert.The error simulator works out the development. In some systems, development is presented prior to preparation in the form of a syntax tree that contains different parts of the development and the links between them, but does not include the effects of these parts on the overall development when interconnected. The simulator creates this syntax tree structure by analyzing the entered development description.

Die Ausarbeitung kann den Prozess umfassen, die Entwicklungsbeschreibung zu interpretieren oder zu transformieren, um eine Komplettdarstellung der Entwicklung zu generieren, nachdem die Wirkungen der gewählten Elementparameter zur Anwendung gebracht wurden. Beispielsweise kann die Ausarbeitung umfassen, zu entscheiden, welches Element in einer hierarchischen Entwicklung zu instanziieren ist. Ein Teil der ausgearbeiteten Entwicklungsdarstellung ist für Objekte gespeichert, die sich eventuell während einer Simulation verändern. Bei 110 interpretiert die Ausarbeitung die Elemente einer Entwicklung, um eine Kompilierung der Entwicklung zu bilden. Die Kompilierung kann als Datei in einem computerlesbaren Speicher gespeichert werden. Die Kompilierung enthält eine Entwicklungsbaumstruktur, die auch als „Objektinstanzbaumstruktur der ausgearbeiteten Entwicklung” oder „instanziierte Baumstruktur” bezeichnet wird, die die Entwicklungshierarchie darstellt. Die instanziierte Baumstruktur ist der Ort, an dem Informationen gespeichert sein können, die sich wähhrend der Simulation der Entwicklung ändern können. Die instanziierte Baumstruktur umfasst eine Projektion des Elements für jede Objektinstanz, wobei die Projektion die Ergebnisse des Anwendens der spezifischen Parameter enthält, die für diese Objektinstanz des Elements spezifiziert wurden. Es können auch andere Transformationen an der Entwicklung vorgenommen werden, wobei Beispiele für Transformationen, die sich auf die VHDL-AMS-Sprache anwenden lassen, im Abschnitt 12 des IEEE-Standards 1076.1-2007 beschrieben sind, der hier durch Verweis in seiner Gänze mit aufgenommen wird.The elaboration may include the process of interpreting or transforming the developmental description to generate a complete representation of the development after applying the effects of the selected elemental parameters. For example, the elaboration may include deciding which item to instantiate in a hierarchical evolution. Part of the elaborated development representation is stored for objects that may change during a simulation. at 110 the elaboration interprets the elements of a development to compile the development. The compilation can be saved as a file in a computer-readable memory. The compilation contains a development tree, also referred to as an "object instance tree of elaborated development" or "instantiated tree" that represents the development hierarchy. The instantiated tree structure is the place where information can be stored that may change during simulation of the development. The instantiated tree includes a projection of the element for each object instance, the projection containing the results of applying the specific parameters specified for that object instance of the element. Other transformations can be made to the development, with examples of transformations that can be applied to the VHDL-AMS language in the Section 12 of IEEE Standard 1076.1-2007 described here by reference in its entirety.

Die Ausarbeitung kann Elemente aus einer Modellbibliothek verwenden. Entwicklungen können sich bestehender Modelle bedienen, die nicht nur für die Entwicklung geschaffen wurden, die gerade simuliert wird. Eine Wiederverwendung von Teilen von Entwicklungen oder Modellen lässt sich leichter gestalten, indem die Teile von Entwicklungen oder Modellen in der Modellbibliothek gespeichert werden, auf die dann während der Ausarbeitung der Entwicklung zurückgegriffen werden kann.The elaboration can use elements from a model library. Developments can make use of existing models that are not just created for the development that is being simulated. Reusing parts of designs or models can be made easier by storing the parts of designs or models in the model library that can then be accessed during development development.

Die Ausarbeitung stellt darüber hinaus Signale und ihre Verbindungen bereit, die das digitale Verhalten und die Funktion der Entwicklung darstellen. Nach dem Ausbilden der Entwicklungsbaumstruktur bei 120 generiert die Ausarbeitung digitale Treiber, von denen Beispiele im Abschnitt 12 des IEEE Standards 1076.1-2007 beschrieben sein können, auf den vorstehend Bezug genommen wurde. Bei 130 kann die Ausarbeitung eine Matrix oder eine Matrixgruppe bilden, die die Komponenten der differential-algebraischen Gleichungen (DAE) darstellt, die für den konservierten und/oder Signalflussabschnitt der Entwicklung gelöst werden.The elaboration also provides signals and their connections that represent digital behavior and the function of development. After forming the development tree structure 120 The drafting generates digital drivers, examples of which are in the Section 12 of the IEEE Standard 1076.1-2007 may be described, referred to above. at 130 For example, the elaboration may form a matrix or a matrix group representing the components of the Differential Algebraic Equations (DAE) that are solved for the conserved and / or signal flow portion of the development.

Die Ausarbeitung generiert eine Kompilierung, die eine Darstellung der Entwicklung in einem Format enthält, das sich durch einen Simulator zum Simulieren des Verhaltens der Entwicklung verwenden lässt. Die Kompilierung wird durch eine Ausarbeitung generiert, die auf Informationen beruht, die in einer anderen Darstellung der Entwicklung wie etwa einem HDL-Code, einer Netzliste oder einer anderen Darstellung enthalten sind. Sobald die Kompilierung generiert ist, wird sie für einen Zugriff durch einen Simulator gespeichert oder, wie nachstehend noch ausführlicher erörtert wird, modifiziert, um eine Entwicklungsänderung aufzunehmen.The build generates a compilation that contains a representation of the development in a format that can be used by a simulator to simulate the behavior of the development. The compilation is generated by a rendering based on information contained in another representation of the development, such as an HDL code, netlist, or other representation. Once compiled, it is stored for access by a simulator or, as discussed in more detail below, modified to accommodate a development change.

Eine Ausführungsform der vorliegenden Erfindung lässt den Fehlersimulator die Entwicklungsbaumstruktur, das Gleichungssystem oder andere Komponenten der Kompilierung ohne zusätzliche Ausarbeitung modifizieren. Die Entwicklungsbaumstruktur enthält eine Vielzahl an unabhängigen Subbaumstrukturen, wie in 4A dargestellt ist und nachstehend noch ausführlicher beschrieben wird. Der Fehlersimulator kann mindestens eine der unabhängigen Subbaumstrukturen der Entwicklungsbaumstruktur im Ansprechen auf eine mit der Entwicklung verbundene Änderung modifizieren. Die Modifizierung kann nach der Ausarbeitung erfolgen, ohne dass die Entwicklung dabei neu kompiliert oder ausgearbeitet werden muss, indem wieder auf der Entwicklungsbeschreibungsebene begonnen wird. Im Vergleich zu herkömmlichen Systemen verfügt das System über eine verbesserte Simulationseffizienz, weil die Entwicklung nicht für jeden Fehleranalysesimulationszyklus oder -durchgang neu ausgearbeitet zu werden braucht.An embodiment of the present invention allows the fault simulator to modify the development tree, the equation system, or other components of the compilation without additional elaboration. The development tree contains a plurality of independent sub-tree structures as in 4A is shown and will be described in more detail below. The fault simulator may modify at least one of the independent sub-tree structures of the development tree in response to a change associated with the development. The modification can be done after the design, without having to recompile or recreate the development by starting again at the development description level. Compared to conventional systems, the system has about improved simulation efficiency because development does not need to be redesigned for each fault analysis simulation cycle or run.

Immer noch mit Bezug auf 1 kann der Fehlersimulator bei 140 einen Benutzer zur Eingabe und zum Empfang spezifizierter Entwicklungsveränderungen beispielsweise während eines iterativen Fehleranalysezyklus auffordern. In einer Ausführungsform kann die Analyse einen Prozess umfassen, Änderungen an einer Entwicklung optional zu empfangen und daran vorzunehmen, eine Subanalyse an der Entwicklung durchzuführen, Daten zu reduzieren und die Entwicklung auf den ursprünglichen Zustand der Entwicklung ohne die Änderungen rückzusetzen. Die Prozesselemente können wiederholt als Teil einer Einzelanalyse durchgeführt werden, bis alle Änderungen angewendet und die Ergebnisse protokolliert wurden. Entwicklungsänderungen können umfassen, beispielweise ein Element einzuschleusen, das einen Fehler darstellt, einen Elementparameter zu verändern, und ein digitales Signal zu verändern, um Zustände zu simulieren, die zu Systemproblemen oder -ausfällen führen können. Andere Änderungen können zusätzlich oder alternativ ausgeführt werden.Still referring to 1 can the fault simulator at 140 For example, prompt a user to enter and receive specified developmental changes during an iterative error analysis cycle. In one embodiment, the analysis may include a process of optionally receiving and making changes to a development, performing a sub-analysis on the design, reducing data, and resetting the development to the original state of development without the changes. The process items can be repeatedly performed as part of a single analysis until all changes have been applied and the results logged. Development changes may include, for example, infiltrating an element that is a failure to alter an element parameter, and modifying a digital signal to simulate states that can lead to system problems or failures. Other changes may be made additionally or alternatively.

In einer Ausführungsform können mehrere Entwicklungsänderungen gleichzeitig als Gruppe spezifiziert werden, und viele Gruppen von Entwicklungsänderungen können iterativ analysiert werden. In einer Ausführungsform können Änderungen stapelweise ablaufen, indem eine Vielzahl von benutzerspezifizierten Gruppen und/oder eine Vielzahl von Änderungen am Fehlersimulator empfangen werden. Analysezyklen werden so abgearbeitet, dass nicht für jede Analyseiteration eine Benutzereingabe nötig ist. In einer anderen Ausführungsform kann jede Analyseiteration eine benutzerspezifizierte Änderung erhalten und/oder der Fehlersimulator kann irgendeine Kombination aus zu Stapeln zusammengefassten Änderungen oder individuellen Änderungen unterstützen.In one embodiment, multiple development changes may be specified simultaneously as a group, and many sets of development changes may be iteratively analyzed. In one embodiment, changes may be batched by receiving a plurality of user-specified groups and / or a plurality of changes to the fault simulator. Analysis cycles are processed in such a way that user input is not required for each analyzer generation. In another embodiment, each analyzer page may receive a user-specified change and / or the debug simulator may support any combination of stacked changes or individual changes.

Darüber hinaus bietet die unabhängige Art, jede Gruppe von Modifizierungen auf die Entwicklung anzuwenden, eine Kontrolle darüber, wie sich Simulationsabläufe anwenden lassen. In einigen Ausführungsformen können Kopien der Entwicklung hergestellt und die Analyse auf viele Prozessoren/Kernrechner, über viele Maschinen in einem Rechennetz und/oder in einer Verarbeitungsumgebung in der World Wide Web-Cloud verteilt werden, um eine schnellere Berechnung zu erzielen. Beispielsweise kann eine Gruppe von Änderungen auf einem Prozessor ablaufen, während eine zweite, andere Gruppe von Änderungen parallel oder zeitgleich auf einem anderen Prozessor ablaufen kann, um die Analysezeit zu verkürzen.In addition, the independent way of applying each set of modifications to development provides control over how simulation operations can be applied. In some embodiments, copies of the development may be made and the analysis distributed to many processors / core computers, across many machines in a computing network, and / or in a processing environment in the World Wide Web cloud for faster computation. For example, one set of changes may occur on one processor, while a second, different set of changes may be concurrent or concurrent on another processor to shorten the analysis time.

In einer Ausführungsform können bei der Analyse, bevor Änderungen zum Modifizieren der Entwicklung angewendet werden, Daten, die für die Änderung oder den ursprünglichen aktuellen Zustand der instanziierten Baumstruktur repräsentativ sind, in einem Speicher gespeichert werden, und/oder die Vielzahl an Änderungen kann für eine spätere Verarbeitung abgespeichert werden. Wenn keine Änderungen anzuwenden sind, erfolgt bei 150 eine Entwicklungsteilmodifizierung. Beispiele für Entwicklungsteilmodifizierungen sind in den nachstehend noch erörterten 2A2E dargestellt und umfassen, ein Element in mindestens eine der Vielzahl von Subbaumstrukturen der Entwicklungsbaumstruktur einzufügen. In einer Ausführungsform kann eine strukturelle Veränderung eine Objektinstanz eines Elements in der Entwicklung hinzufügen oder daraus entfernen oder die Anzahl an Systemvariablen in der Entwicklung verändern. In einer Ausführungsform wäre ein Ändern eines Parameters, der ein Element anstelle eines anderen Elements instanziiert, äquivalent dazu, die ursprüngliche Objektinstanz des alten Elements zu entfernen und eine Objektinstanz des neuen Elements hinzuzufügen. In einer Ausführungsform können Entwicklungsteilmodifizierungen darüber hinaus umfassen, den Wert eines Parameters an einem bestehenden Element zu modifizieren, was nachstehend als „Parameteränderung” bezeichnet wird. Eingefügte Elemente können ein analoges und/oder digitales Verhalten umfassen und aus einer Modellbibliothek entnommen werden.In one embodiment, in the analysis, before changes to modify the design are applied, data representative of the change or the original state of the instantiated tree may be stored in memory, and / or the plurality of changes may be stored for one later processing will be saved. If no changes are to be applied, done at 150 a development part modification. Examples of development part modifications are discussed below 2A - 2E and include inserting an element into at least one of the plurality of sub-tree structures of the development tree. In one embodiment, a structural change may add or remove an object instance of an element in development or change the number of system variables in development. In one embodiment, changing a parameter instantiating one element instead of another element would be equivalent to removing the original object instance of the old element and adding an object instance of the new element. In one embodiment, development submodifications may further include modifying the value of a parameter on an existing element, hereinafter referred to as "parameter change." Inserted elements may include analog and / or digital behavior and be taken from a model library.

2A stellt ein vereinfachtes, beispielhaftes Schaltschema einer Verstärkerentwicklung 200A dar. Die Verstärkerentwicklung 200A umfasst einen Operationsverstärker, einen 1-KOhm-Widerstand und einen 10-KOhm-Widerstand. Der Operationsverstärker umfasst einen positiven Eingang, einen negativen Eingang und einen Ausgang. Der 1-KOhm-Widerstand ist zwischen einem Eingang vin und dem negativen Eingang des Operationsverstärkers angeschlossen. Der 10-KOhm-Widerstand ist zwischen einem Ausgang vout und dem negativen Eingang des Operationsverstärkers angeschlossen. Der positive Eingang des Operationsverstärkers ist an Masse gelegt. 2A provides a simplified, exemplary circuit diagram of an amplifier development 200A dar. The amplifier development 200A includes an operational amplifier, a 1KOhm resistor and a 10KOhm resistor. The operational amplifier includes a positive input, a negative input and an output. The 1KOhm resistor is connected between an input vin and the negative input of the operational amplifier. The 10 KOhm resistor is connected between an output vout and the negative input of the operational amplifier. The positive input of the operational amplifier is grounded.

2B stellt ein vereinfachtes, beispielhaftes Schaltschema einer Reihenschaltungsmodifizierung 200B an dem in 2A dargestellten Schaltbild nach einer Ausführungsform der vorliegenden Erfindung dar. Die in 2B dargestellten Elemente sind den in 2A dargestellten Elementen ähnlich. 2B enthält zusätzlich eine Modifizierung, die ein Element umfasst, das in eine Reihenschaltung zwischen einem Anschluss (vout) und einem an den Anschluss angeschlossenen Knoten (Operationsverstärkerausgang) eingefügt ist. Dies kann als eine „Reihenschaltungsänderung” bezeichnet werden. Wie in 2B gezeigt ist, handelt es sich bei dem Element um einen 100-M-Ohm-Widerstand zwischen dem Ausgangsanschluss des Operationsverstärkers und dem an vout angeschlossenen Knoten und dem 10-KOhm-Widerstand. Der 100-M-Ohm-Widerstand am Ausgang des Operationsverstärkers kann einen analogen Offen-Fehler darstellen, bei dem ein Knoten eventuell von dem Anschluss gelöst ist, an den der Knoten angeschlossen sein sollte. Ein Beispiel für ein analoges Offen kann ein offener Stromkreis sein. Bei einer Simulation erfolgt ein analoges Offen manchmal anhand eines Hochwiderstandselements wie etwa des 100-M-Ohm-Widerstands, um Matrixgleichungen zu vermeiden, die schwierig zu lösen sind. 2 B provides a simplified, exemplary schematic of a series connection modification 200B at the in 2A illustrated circuit diagram according to an embodiment of the present invention. The in 2 B Elements shown are those in 2A similar to illustrated elements. 2 B additionally includes a modification comprising an element inserted in a series connection between a terminal (vout) and a node (op-amp output) connected to the terminal. This may be referred to as a "series change". As in 2 B 4, the element is a 100 M ohm resistor between the output terminal of the operational amplifier and the node connected to vout and the 10 K ohm resistor. The 100 M ohm resistor at the output of the operational amplifier may represent an analogue open error in which a node may be disconnected from the terminal to which the node should be connected. An example of an analog open can be an open circuit. In a simulation, an analog open sometimes uses a high resistance element, such as the 100 M ohm resistor, to avoid matrix equations that are difficult to solve.

2C stellt ein vereinfachtes, beispielhaftes Schaltschema einer Parallelschaltungsmodifizierung 200C an dem in 2A dargestellten Schaltschema nach einer Ausführungsform der vorliegenden Erfindung dar. Die in 2C dargestellten Elemente sind den in 2A dargestellten Elementen ähnlich. 2C enthält zusätzlich ein Element, das in einer Parallelschaltung zwischen zwei oder mehr bestehenden Knoten eingefügt ist, im Folgenden auch als „Parallelschaltungsänderung” bezeichnet. In dieser Ausführungsform handelt es sich bei dem eingefügten Element um einen 0,1-Milliohm-Widerstand zwischen dem Ausgangsanschluss des Operationsverstärkers und dem Masseknoten. Der 0,1-Milliohm-Widerstand zwischen dem Ausgang des Operationsverstärkers und Masse kann einen analogen Kurzschluss-Fehler darstellen, bei dem ein neues Element zwischen zwei Knoten eingefügt ist, wobei das neue Element zuvor nicht vorhanden war. Ein Beispiel ist ein elektrischer Kurzschluss anhand eines Niedrigwiderstandselements, um wieder zu einer Matrixgleichungskonvergenz zu einer Lösung beizutragen. 2C provides a simplified, exemplary schematic of a parallel circuit modification 200C at the in 2A illustrated circuit diagram according to an embodiment of the present invention. The in 2C Elements shown are those in 2A similar to illustrated elements. 2C additionally includes an element which is inserted in a parallel connection between two or more existing nodes, hereinafter also referred to as "parallel circuit change". In this embodiment, the inserted element is a 0.1 milliohm resistor between the output terminal of the operational amplifier and the ground node. The 0.1 milliohm resistor between the output of the operational amplifier and ground may represent an analog short circuit fault in which a new element is inserted between two nodes, the new element not being present before. An example is an electrical short on a low resistance element to again contribute to a matrix equation convergence to a solution.

In der Praxis kann das Einfügen eines Elements eine Kombination aus Reihen- und Parallelschaltungsmodifizierungen wie etwa denjenigen sein, die in den 2D2E dargestellt sind. 2D stellt eine vereinfachte, beispielhafte, mit 2 Anschlüssen verbundene Reihenschaltungsmodifizierung 200D an dem in 2A dargestellten Schaltschema nach einer Ausführungsform der vorliegenden Erfindung dar. Die in 2D dargestellten Elemente sind den in 2A dargestellten Elementen ähnlich. 2D enthält zusätzlich ein Metalloxidhalbleiter-(MOS)-Transistorelement, das an den Ausgangsanschluss des Operationsverstärkers vout und den 10-KOhm-Widerstand angeschlossen ist. Das Gate des MOS-Transistors ist an den Ausgangsanchluss des Operationsverstärkers angeschlossen. Die Source und ein Körper des MOS-Transistors sind an vout angeschlossen. Der Drain des MOS-Transistors ist an den 10-KOhm-Widerstand angeschlossen.In practice, the insertion of an element may be a combination of series and parallel circuit modifications, such as those described in U.S. Pat 2D - 2E are shown. 2D provides a simplified exemplary 2-port series connection modification 200D at the in 2A illustrated circuit diagram according to an embodiment of the present invention. The in 2D Elements shown are those in 2A similar to illustrated elements. 2D additionally includes a metal oxide semiconductor (MOS) transistor element connected to the output terminal of the operational amplifier vout and the 10 K ohm resistor. The gate of the MOS transistor is connected to the output terminal of the operational amplifier. The source and a body of the MOS transistor are connected to vout. The drain of the MOS transistor is connected to the 10 KOhm resistor.

2E stellt ein vereinfachtes, beispielhaftes Schaltschema einer Reihen- und Parallelschaltungsmodifizierung 200E an dem in 2A dargestellten Schema nach einer Ausführungsform der vorliegenden Erfindung dar. Die in 2E dargestellten Elemente sind den in 2A dargestellten Elementen ähnlich. 2E umfasst zusätzlich ein Bipolartransistorelement, das an den Ausgangsanschluss des Operationsverstärker, den 10-KOhm-Widerstand und vout angeschlossen ist. Der Emitter des Bipolartransistors ist an den Ausgangsanschluss des Operationsverstärkers angeschlossen. Die Basis des Bipolartransistors ist an den negativen Eingang des Operationsverstärkers angeschlossen. Der Kollektor des Bipolartransistors ist an den 10-KOhm-Widerstand angeschlossen. 2E provides a simplified, exemplary schematic of a series and parallel circuit modification 200E at the in 2A illustrated scheme according to an embodiment of the present invention. The in 2E Elements shown are those in 2A similar to illustrated elements. 2E additionally includes a bipolar transistor element connected to the output terminal of the operational amplifier, the 10K ohm resistor and vout. The emitter of the bipolar transistor is connected to the output terminal of the operational amplifier. The base of the bipolar transistor is connected to the negative input of the operational amplifier. The collector of the bipolar transistor is connected to the 10 KOhm resistor.

Mit Bezug auf 1 erfolgt in einer Ausführungsform nach der Entwicklungsteilmodifizierung, bei 160 eine Subanalyse (z. B. eine Simulation). Die Subanalyse umfasst, die DAE zu lösen und digitales und/oder Ereignisverhalten auszulösen. Beispiele für Subanalysen können Ruhe-, Übergangs-, Beharrungszustands- und Wechselstromanalysen umfassen. In einer Ausführungsform umfasst die Subanalyse, eine oder mehrere Subanalyse/n ablaufen zu lassen. In einer anderen Ausführungsform können für Subanalysen, die eine Übergangssimulation durchführen, wobei die Auswirkungen über eine Veränderungszeit analysiert werden, die Parameter von Elementen in der Entwicklung zu spezifizierten Simulationszeitpunkten verändert werden.Regarding 1 takes place in one embodiment after the development part modification, in 160 a sub-analysis (eg a simulation). The sub-analysis involves solving the DAE and triggering digital and / or event behavior. Examples of sub-analyzes may include resting, transient, steady-state and AC analyzes. In one embodiment, the sub-analysis includes running one or more sub-analyzes. In another embodiment, for sub-analyzes that perform a transition simulation, with the effects analyzed over a change time, the parameters of elements in the design may be changed at specified simulation times.

In einer Ausführungsform können, nachdem die Subanalyse durchgeführt wurde, bei 170 die Daten aus der Subanalyse analysiert (z. B. reduziert) werden, um ein Ergebnis zu bilden. Eine Bearbeitung an den Subanalyseergebnissen und eine Datenreduktion können als Teil der iterativen Analyseschleife durchgeführt werden. In einer Ausführungsform können Daten, die sowohl aus der Subanalyse als auch der Verarbeitung im Datenreduktionsprozess generiert wurden, unter Verwendung von Standardpraktiken zum Einschreiben in einen gemeinsam genutzten Datenspeicher gleichzeitig in gemeinsam genutzte Datencontainer eingeschrieben werden. In einer Ausführungsform kann nach der Datenreduktion, bei 180 die Originalentwicklung in der iterativen Analyseschleife anhand des Originalzustands der instanziierten Baumstruktur und/oder der Vielzahl an Änderungen, die zuvor im Speicher gespeichert wurden, wiederhergestellt werden. In einer Ausführungsform kann die Originalentwicklung wiederhergestellt werden, indem die Änderungen aus der modifizierten Baumstruktur der Entwicklungsbaumstruktur entfernt werden.In one embodiment, after the sub-analysis has been performed, at 170 the data from the sub-analysis is analyzed (eg reduced) to form a result. Processing on the sub-analysis results and data reduction may be performed as part of the iterative analysis loop. In one embodiment, data generated from both the sub-analysis and the processing in the data reduction process may be simultaneously written to shared data containers using standard practices for writing to a shared data store. In one embodiment, after the data reduction, at 180 the original development in the iterative analysis loop is restored based on the original state of the instantiated tree structure and / or the multitude of changes that were previously stored in the memory. In one embodiment, the original development can be restored by removing the changes from the modified tree structure of the development tree.

In einer Ausführungsform können, sobald keine weiteren Änderungen mehr auf die Entwicklung anzuwenden sind, bei 190 die analogen Gleichungen und digitalen Treiberverbindungen aktualisiert und ein Bericht aus den kombinierten Ergebnissen der Subanalysen generiert werden. In einer Ausführungsform kann, falls keine weiteren Änderungen mehr auf die Entwicklung anzuwenden sind, das Aktualisieren der analogen Gleichungen und digitalen Treiberverbindungen bis zur nächsten Entwicklungsteilmodifizierung verzögert und die iterative Analyseschleife wiederholt werden, indem der Benutzer zu zusätzlichen Änderungen aufgefordert oder automatisch die nächste Gruppe von Änderungen je nach der Anwendung oder dem Simulationsaufbau ausgeführt wird. In one embodiment, as soon as no further changes are to be applied to the development, at 190 the analog equations and digital driver connections are updated and a report generated from the combined results of the sub-analyzes. In one embodiment, if no further changes are to be applied to the development, updating the analog equations and digital driver connections until the next development part modification may be delayed and the iterative analysis loop repeated by prompting the user for additional changes or automatically the next group of changes depending on the application or the simulation setup is executed.

3 stellt ein vereinfachtes Ablaufschema einer Ausführungsform für eine in 1 dargestellte Entwicklungsteilmodifizierung 150 nach einer Ausführungsform der vorliegenden Erfindung dar. Ein Einfügen von Elementen lässt sich bewerkstelligen, indem die während der Ausarbeitung generierte Baumstruktur modifiziert wird. Bei 310 wird die Art der Entwicklungsänderung bestimmt. In einer Ausführungsform wird, falls die Änderung ein Element umfasst, das in Reihe zwischen einem bestehenden Knoten und einem Anschluss eingefügt wird, bevor das neue Element eingefügt wird, bei 320 der Anschluss vom bestehenden Knoten abgetrennt. In einer Ausführungsform wird beispielsweise, falls es sich bei dem Anschluss um ein Ausgangssignal handelt, der Anschluss vom bestehenden angesteuerten Knoten abgetrennt. In einer Ausführungsform wird beispielsweise, falls es sich bei dem Anschluss um ein Eingangssignal handelt, der Anschluss vom bestehenden Eingangsknoten abgetrennt. In einigen Ausführungsformen kann eine Reihenschaltungsveränderung möglicherweise nicht definiert oder implementiert werden, wenn es sich bei dem Anschluss um ein Signal handelt, das sowohl den Eingang als auch den Ausgang unterstützt. Alternativ wird in einigen Ausführungsformen, falls es sich bei dem Anschluss um einen Eingangs-/Ausgangsanschluss handelt, der Eingangs-/Ausgangsanschluss vom bestehenden Eingangs-/Ausgangsanschluss abgetrennt. 3 provides a simplified flowchart of an embodiment for an in 1 illustrated development part modification 150 according to one embodiment of the present invention. Insertion of elements can be accomplished by modifying the tree structure generated during the elaboration. at 310 the type of development change is determined. In one embodiment, if the change includes an element inserted in series between an existing node and a port before the new element is inserted 320 the port is disconnected from the existing node. For example, in one embodiment, if the port is an output, then the port is disconnected from the existing targeted node. For example, in one embodiment, if the port is an input, the port is disconnected from the existing input node. In some embodiments, a serial change may not be defined or implemented if the port is a signal that supports both the input and the output. Alternatively, in some embodiments, if the port is an input / output port, the input / output port is disconnected from the existing input / output port.

In einer Ausführungsform wird, nachdem der Anschluss vom bestehenden Knoten abgetrennt wurde, bei 330 ein neuer Knoten hinzugefügt und an den Anschluss angeschlossen. Bei 340 kann, falls der neue Knoten digital und der Anschluss ein Ausgangssignal ist, der Anschluss als angesteuertes Signal an den neuen Knoten angeschlossen werden, und falls der neue Knoten digital und der Anschluss ein Eingangssignal ist, kann der neue Knoten an den angesteuerten Anschluss angeschlossen werden.In one embodiment, after the port has been disconnected from the existing node, it is attached 330 a new node is added and connected to the port. at 340 For example, if the new node is digital and the port is an output, the port can be connected as a driven signal to the new node, and if the new node is digital and the port is an input, the new node can be connected to the driven port.

In einer Ausführungsform wird, für entweder Reihen- oder Parallelschaltungsänderungen, bei 350 das Element zwischen den neu geschaffenen Knoten und den bestehenden, zuvor an den Anschluss angeschlossenen Knoten eingefügt. Mit anderen Worten wird die instanziierte Baumstruktur durch das eingefügte Element transformiert.In one embodiment, for either series or parallel circuit changes, at 350 the element is inserted between the newly created nodes and the existing nodes previously connected to the port. In other words, the instantiated tree structure is transformed by the inserted element.

Als ein Beispiel kann, wenn ein Element eingefügt wird, eine Komponenteninstanziierung in der Syntaxbaumstruktur zwischen den zwei spezifizierten Knoten generiert werden. In einigen Ausführungsformen wird eine die Kompilierung darstellende Datei editiert. Beispielsweise kann ein Bytecode aus der modifizierten Baumstruktur zum Implementieren der Änderung generiert werden, indem beispielsweise eine neue Objektinstanz in die Entwicklungsbaumstruktur eingefügt wird. Dementsprechend kann die Kompilierung modifiziert werden, indem die Datei, die die Kompilierung darstellt, modifiziert wird, anstelle, dass beispielsweise die Entwicklung durch ein Grafik- oder Programmiercodeentwicklungseditierprogramm modifiziert wird, worauf eine Kompilierung der modifizierten Entwicklung folgt. Die instanziierte Baumstrukturtransformation kann ausgelöst werden, indem beispielsweise der neu generierte Bytecode ausgeführt wird. Bei 360 werden die Entwicklungsänderungen registriert und Knoten und Objektinstanzen zur Kompilierung hinzugefügt. Bei 370 kann der Prozess wiederholt werden, bis alle spezifizierten Änderungen in einer Gruppe angewendet wurden.As an example, when an element is inserted, a component instantiation may be generated in the syntax tree between the two specified nodes. In some embodiments, a compilation-representing file is edited. For example, a bytecode may be generated from the modified tree to implement the change, for example, by inserting a new object instance in the development tree. Accordingly, the compilation can be modified by modifying the file representing the compilation instead of, for example, modifying the development by a graphics or programming code development editing program, followed by compilation of the modified development. The instantiated tree transformation can be triggered, for example, by executing the newly generated bytecode. at 360 The development changes are registered and nodes and object instances are added for compilation. at 370 The process can be repeated until all specified changes in a group have been applied.

In einer Ausführungsform werden, nachdem alle Änderungen auf die instanziierte Baumstruktur angewendet wurden, die analogen und digitalen Anteile der Entwicklung separat aktualisiert. Falls irgendwelche der hinzugefügten Elemente ein analoges Verhalten enthalten oder falls die Änderung mit einem analogen Element der Entwicklung verbunden ist, können bei 380 die analogen Gleichungen, die mit dem analogen Element oder mit der Kompilierung verbunden sind, aktualisiert werden, um die Änderung zu reflektieren. Zusätzlich können die Änderungen durch die Matrizes verbreitet werden, die zum Lösen dieser Gleichungen verwendet werden. Falls irgendwelche der hinzugefügten Elemente ein digitales Verhalten enthalten oder falls die Änderung mit einem digitalen Element der Entwicklung verbunden ist, können bei 390 digitale Treiberverbindungen, die mit dem digitalen Element oder mit der Kompilierung verbunden sind, aktualisiert und neue Treiber entsprechend der Änderung eingefügt werden. Mit anderen Worten können die angesteuerten Signale in den neuen Objektinstanzen an ihre Treiber angeschlossen werden, und irgendwelche neue Treiber aus den neuen Objektinstanzen werden an die Knoten angeschlossen, die sie ansteuern. Das Ergebnis ist eine aktualisierte Version der instanziierten Baumstruktur, die alle Modifizierungen ohne Neukompilierung oder Neuausarbeiten der Entwicklung enthält.In one embodiment, after all changes have been applied to the instantiated tree, the analog and digital portions of the development are separately updated. If any of the added elements contain analog behavior, or if the change is associated with an analogous element of development, then 380 the analog equations associated with the analog element or with the compilation are updated to reflect the change. In addition, the changes can be propagated through the matrices used to solve these equations. If any of the added elements contain digital behavior or if the change is associated with a digital element of development, then 390 digital driver connections associated with the digital element or compilation are updated and new drivers inserted according to the change. In other words, the driven signals in the new object instances can be connected to their drivers, and any new drivers from the new object instances are connected to the nodes that drive them. The result is an updated one Version of the instantiated tree that contains all the modifications without recompiling or redeveloping the development.

4A stellt eine vereinfachte, beispielhafte grafische Darstellung der Entwicklungshierarchie einer Entwicklungsbaumstruktur dar, die die ausgearbeitete Entwicklung nach einer Ausführungsform der vorliegenden Erfindung darstellt. Die Entwicklungsbaumstruktur umfasst eine Entwiclungswurzel und eine erste Subbaumstruktur, die durch den gestrichelt dargestellten Kasten 410 auf der linken Seite der Figur angegeben ist, der ein Modell Foo.1 enthält, und eine zweite Subbaumstruktur, die durch den gestrichelt dargestellten Kasten 420 auf der rechten Seite der Figur angegeben ist, der ein Modell Foo.2 enthält. Die erste Subbaumstruktur mit dem Modell Foo.1 kann unabhängig von der zweiten Subbaumstruktur mit dem Modell Foo.2 sein. In der Entwicklungsbaumstruktur gibt es zwei Objektinstanzen eines Modells „A”, die beispielsweise beide vom selben HDL-Quellcode abgeleitet sind. Beide dieser Instanziierungen erfolgen innerhalb eines einzelnen Modells „Foo”, das zweimal instanziiert wird. Foo wird jedes Mal mit anderen Parametern instanziiert, was dazu führt, dass eine Objektinstanz eine Instanziierung eines Modells „B” und die andere eine Instanziierung eines Modells „C” enthält. Über die beispielhaften gezeigten Subbaumstrukturen hinaus, kann die Entwicklungsbaumstruktur mehrere Subbaumstrukturen umfassen. 4A FIG. 12 is a simplified exemplary graphical representation of the development tree of a development tree illustrating the elaborate development of an embodiment of the present invention. FIG. The development tree includes a development root and a first sub-tree structure represented by the dashed box 410 on the left side of the figure, which includes a model Foo.1, and a second sub-tree structure represented by the dashed box 420 on the right side of the figure, which contains a model Foo.2. The first sub tree structure with the model Foo.1 can be independent of the second sub tree structure with the model Foo.2. In the development tree, there are two object instances of a model "A", for example, both derived from the same HDL source code. Both of these instantiations occur within a single model "foo" that is instantiated twice. Foo is instantiated with different parameters each time, resulting in one object instance containing an instantiation of a model "B" and the other an instantiation of a model "C". Beyond the example sub-tree structures shown, the development tree may include multiple sub-tree structures.

4B stellt ein vereinfachtes, beispielhaftes Blockschema der grafischen Darstellung der Entwicklungshierarchie der in 4A dargestellten Entwicklungsbaumstruktur mit einem hinzugefügten Element nach einer Ausführungsform der vorliegenden Erfindung dar. Der Prozess des Transformierens der instanziierten Baumstruktur ist in diesem Beispiel relativ einfach, demonstriert aber Verbesserungen gegenüber einer Durchführung derselben Änderungen auf der Entwicklungsbeschreibungsebene. Die in 4B dargestellten Elemente sind den in 4A dargestellten Elementen ähnlich. 4B umfasst auch eine Instanziierung von „A.5” mit verschiedenen Parametern, was dazu führt, dass eine Objektinstanz eine Instanziierung eines Modells „Bar” enthält. 4B provides a simplified, exemplary block diagram of the graphical representation of the development hierarchy in 4A The process of transforming the instantiated tree is relatively simple in this example, but demonstrates improvements over performing the same changes at the development descriptive level. In the 4B Elements shown are those in 4A similar to illustrated elements. 4B also includes an instantiation of "A.5" with various parameters, which results in an object instance containing an instantiation of a model "Bar".

4A und 4B sind einfach grafische Darstellungen der Entwicklungshierarchie. Um die kompilierten Entwicklungsdaten zu modifizieren, kann in einer Ausführungsform der Bytecode generiert und ausgeführt werden, um das Modell „Bar” in der Objektinstanz „A.5” zu instanziieren. Das Ergebnis ist, dass die Darstellung der Entwicklung in einem Format für den Simulator die Änderungen enthält, obwohl die Entwicklung nicht neu ausgearbeitet und neu kompiliert wurde. 4A and 4B are simply graphical representations of the development hierarchy. In one embodiment, to modify the compiled development data, the bytecode may be generated and executed to instantiate the model "Bar" in the object instance "A.5". The result is that the presentation of the development in a format for the simulator contains the changes, although the development has not been redrafted and recompiled.

Um dieselbe Änderung auf der Entwicklungsbeschreibungsebene zu machen, müsste man eine Kopie des Modells ”Foo” zur Verwendung für ”Foo.2”, eine Kopie des Modells ”A” zur Verwendung in der neuen Kopie des Modells „Foo” und die Änderung an der neuen Kopie des Modells „A” machen, um eine Instanziierung des Modells „Bar” hinzuzufügen. Klar, für mehr Entwicklungsänderungen oder eine tiefere Hierarchie kann die Komplexität, die Entwicklungsbeschreibung zu modifizieren, rasch zunehmen. Ein anderer Lösungsansatz könnte darin bestehen, das Modell „A” so zu modifizieren, dass eine Instanziierung des Modells „Bar” für alle Objektinstanzen von „A” mit den eingestellten Parametern erfolgt, so dass das Verhalten des Modells „Bar” gesperrt ist, und dann die Parameter einer Objektinstanz des Modells „Bar” zu modifizieren, um sie zu sperren. Der Erfahrung der Erfinder nach wirkt, wenn Objektinstanzen auf diese Weise hinzugefügt werden, sich dies negativ auf Leistungsfähigkeit der Entwicklung aus. Deshalb macht die Fehlersimulation, die die Änderung auf der Entwicklungsbaumstrukturebene durchführt, die Elementeinfügungsaufgabe effizienter, als wenn die Änderung auf der Entwicklungsbeschreibungsebene gemacht würde.To make the same change at the development descriptor level, one would need to have a copy of the model "Foo" to use for "Foo.2", a copy of the model "A" to use in the new copy of the model "Foo" and the change to the Make a new copy of the model "A" to add an instantiation of the model "Bar". Clearly, for more developmental changes or a deeper hierarchy, the complexity of modifying the design description can increase rapidly. Another approach might be to modify the model "A" to instantiate the model "Bar" for all object instances of "A" with the set parameters so that the behavior of the model "Bar" is locked, and then modify the parameters of an object instance of the model "Bar" to lock them. According to the inventors' experience, when object instances are added in this way, it negatively impacts development performance. Therefore, the error simulation that makes the change at the development tree level makes the element insertion task more efficient than making the change at the development descriptive level.

5 stellt ein vereinfachtes Ablaufschema einer Ausführungsform eines in 1 dargestellten Subanalysenschritts 160 nach einer Ausführungsform der vorliegenden Erfindung dar. Eine Subanalyse kann einen Simulationszyklus wie etwa eine Übergangsanalyse mit zeitbasierten parametrischen Änderungen umfassen. Bei 510 können Ereignisse für zeitbasierte parametrische Änderungen registriert werden. Während der Simulation kann die Simulationszeit bei 520 auf Grundlage von Ereignissen oder Fehlerkriterien zum nächsten Zeitschritt vorgerückt werden. 5 provides a simplified flowchart of an embodiment of an in 1 shown sub-analysis step 160 According to one embodiment of the present invention, a sub-analysis may include a simulation cycle such as a transient analysis with time-based parametric changes. at 510 Events for time-based parametric changes can be registered. During the simulation, the simulation time can be at 520 be advanced to the next time step based on events or error criteria.

Bei 530 werden zeitbasierte parametrische Änderungen beispielsweise auf Basis der aktuellen Simulationszeit angewendet. Die parametrischen Änderungen können angewendet werden, indem die für die Parameter innerhalb der mit den Parametern verbundenen Objektinstanzen gespeicherten Werte in der instanziierten Baumstruktur aktualisiert werden. Gleichungen, die von den geänderten Parametern abhängen, können aktualisiert werden. In einigen Ausführungsformen werden Änderungen, die sich auf die Struktur der Entwicklung auswirken, nicht aktualisiert. Alle Auswirkungen einer Änderung der Parameter können propagiert werden, bis keine weiteren Änderungen mehr gemacht werden. Beispielsweise werden in einigen Ausführungsformen Gleichungen der DAE aktualisiert, die von den geänderten Parametern betroffen sind, und die Änderungen werden zweckmäßig propagiert, um die DAE zu aktualisieren. Die DAE betreffende Änderungen werden dann auf die diesbezüglichen Matrizen angewendet.at 530 For example, time-based parametric changes are applied based on the current simulation time. The parametric changes can be applied by updating the values stored for the parameters within the object instances associated with the parameters in the instantiated tree. Equations that depend on the changed parameters can be updated. In some embodiments, changes that affect the structure of the development are not updated. All effects of changing the parameters can be propagated until no further changes are made. For example, in some embodiments, equations of the DAE are updated that are affected by the changed parameters and the changes are appropriately propagated to update the DAE. The changes affecting the DAE are then applied to the corresponding matrices.

Bei 540 wird dann das analoge und digitale Verhalten verarbeitet. Bei 550 kann, wenn die Simulation nicht abgeschlossen wird, der Prozess mit Beginn bei 520 wiederholt werden, wobei die Simulationszeit zum nächsten Zeitschritt vorrückt. Sobald die Simulation abgeschlossen ist, kann die Übergangsanalyse gestoppt werden.at 540 then the analog and digital behavior is processed. at 550 If the simulation is not completed, the process may begin at the beginning 520 be repeated, with the simulation time advancing to the next time step. Once the simulation is completed, the transition analysis can be stopped.

Beispiele für ein Anwenden einer Entwicklungsteilmodifikation auf eine Fehleranalyse werden wie folgt für einen analog-Offen- (analog open), einen analog-Kurzschluss(analog short), einen parametrischen Fehler (parametric fault) und ein Blockiersignal (stuck signal) beschrieben. Die Prinzipien und Aspekte, die in diesen Beispielen beschrieben und an anderer Stelle hier erörtert sind, lassen sich auf zahlreiche andere Situationen anwenden.Examples of applying a development part modification to an error analysis are described as follows for an analog open, an analog short, a parametric fault, and a stuck signal. The principles and aspects described in these examples and discussed elsewhere herein apply to many other situations.

Ein Offen-Fehler kann implementiert werden, indem ein Element eingefügt wird, das einen Widerstand (oder ein Äquivalent) in Reihe zur analogen Schaltung hinzufügt. Das Element kann beispielsweise mit einem Widerstandswert parametrisiert werden. Dementsprechend kann der Widerstand des Elements so geändert werden, dass er zwischen einem Sperren und Freigeben des Fehlers wechselt. Die Widerstandswerte werden entsprechend dem Inaktiv-/Aktivzustand des Fehlers spezifiziert, wobei einer der Freigabe des Fehlers und der andere dem Sperren des Fehlers entspricht. Die Widerstandswerte können so konfigurierbar sein, dass sie an die Art der Entwicklung angepasst sind, um beispielsweise die Lösungskonvergenz zu verbessern.An open error can be implemented by inserting an element that adds a resistor (or equivalent) in series to the analog circuit. For example, the element can be parameterized with a resistance value. Accordingly, the resistance of the element can be changed to switch between locking and releasing the error. The resistance values are specified according to the inactive / active state of the error, one corresponding to the release of the error and the other corresponding to disabling the error. The resistance values may be configurable to suit the type of development, for example to improve solution convergence.

Ein Kurzschluss-Fehler kann implementiert werden, indem ein Element eingefügt wird, das einen Widerstand der analogen Schaltung parallel hinzufügt. Das Element kann mit einem Widerstandswert parametrisiert werden, der zwischen Werten geändert werden kann, die für den Fall einer Aktivierung oder Inaktivierung des Fehlers spezifiziert sind, wie beispielsweise für den Offen-Fehler beschrieben wurde.A short circuit fault can be implemented by inserting an element that adds a resistor to the analog circuit in parallel. The element may be parameterized with a resistance value which may be changed between values specified in the event of activation or inactivation of the fault, as described, for example, for the open fault.

Ein parametrischer Fehler kann implementiert werden, indem ein zu ändernder Parameter eines Elements in der Entwicklung und der Wert, auf den er zu ändern ist, spezifiziert wird. Wenn der Fehler nicht aktiviert wird, kann stattdessen der Wert des Parameters vor der Implementierung des Fehlers verwendet werden.A parametric error can be implemented by specifying a parameter of an element to be changed in the development and the value to which it is to be changed. If the error is not activated, the value of the parameter may be used instead before the error is implemented.

Ein Blockiersignal kann implementiert werden, indem die Verbindung zwischen dem angesteuerten Signal und jeglichen Signalen beseitigt wird, die das angesteuerte Signal ansteuern. Außerdem kann ein neues Signal eingefügt werden, das das Signal mit dem spezifizierten Blockierwert ansteuert. Das neue Element kann mit dem Blockierwert parametrisiert werden.A blocking signal can be implemented by eliminating the connection between the driven signal and any signals driving the driven signal. In addition, a new signal can be inserted which drives the signal with the specified blocking value. The new element can be parameterized with the blocking value.

Offen-, Kurzschluss- und parametrische Fehler können zu spezifizierten Zeitpunkten aktiviert/inaktiviert werden, indem der Parameterwert des mit den Fehlern verbundenen Elements geändert wird. Die Auswirkungen der Änderungen breiten sich durch die Entwicklung hindurch aus, und die Matrizen, die die zum Lösen des analogen Teils der Entwicklung verwendeten Gleichungen darstellen, werden rekonstruiert. Die Parameterwertänderungen können, bevor die analoge Lösung berechnet oder digitale Ereignisse propagiert werden, ab dem Zeitpunkt angewendet werden, an dem der Fehler aktiviert oder inaktiviert werden kann.Open, short, and parametric errors can be enabled / disabled at specified times by changing the parameter value of the element connected to the errors. The effects of the changes propagate through development, and the matrices representing the equations used to solve the analog part of the development are reconstructed. The parameter value changes may be applied from the time the error is enabled or disabled before the analog solution is computed or digital events are propagated.

In einer Ausführungsform kann ein Blockiersignal zu einem spezifizierten Zeitpunkt aktiviert oder inaktiviert werden, indem Start- und Endparameter für das eingefügte Element spezifiziert werden. Diese Start- und Endzeitparameter können in dem Element als Zeiten zum Ansetzen eines digitalen Ereignisses verwendet werden, das bewirken kann, dass der Fehler aktiviert oder inaktiviert wird.In one embodiment, a blocking signal may be activated or inactivated at a specified time by specifying start and end parameters for the inserted element. These start and end time parameters may be used in the element as times to schedule a digital event that may cause the error to be activated or inactivated.

Ein Beispiel einer elektrischen Version eines in VHDL geschriebenen Widerstandsmodells nach einer Ausführungsform der vorliegenden Erfindung wird nachstehend wiedergegeben.An example of an electrical version of a resistance model written in VHDL according to an embodiment of the present invention is given below.

Figure DE102014117919A1_0002
Figure DE102014117919A1_0002

Figure DE102014117919A1_0003
Figure DE102014117919A1_0003

Ein Beispiel eines in VHDL geschriebenen digitalen Fehlermodells nach einer Ausführungsform der vorliegenden Erfindung wird nachstehend wiedergegeben.

Figure DE102014117919A1_0004
Figure DE102014117919A1_0005
An example of a digital error model written in VHDL according to an embodiment of the present invention is given below.
Figure DE102014117919A1_0004
Figure DE102014117919A1_0005

6 ist ein vereinfachtes, beispielhaftes V-Modell für Systemtechnik, in dem Ausführungsformen der vorliegenden Erfindung verwendet werden können. In einem Beispiel in der linken Hälfte des „V” kann ein Entwicklungsablauf für ein Automobilsystem beginnen, indem Anforderungen bestimmt werden, wie etwa Fahrzeuganforderungen zusammengetragen werden, wie das Fahrzeug funktionieren sollte, welche Sicherheitsmerkmale das Fahrzeug haben sollte, hohe Standardanforderungen, wie das Produkt gebaut sein und sich verhalten sollte. Als Nächstes kann die Systementwicklung bestimmen, welche Systeme geschaffen werden müssen, um die funktionale Entwicklung zu erfüllen. Einige offensichtliche Systementwicklungsteile können einen Benzinmotor, eine Drive-by-Wire-Lenkung und/oder dergleichen umfassen. Die Komponentenentwicklung kann mit feinerer Auflösung bestimmen, welche besonderen Komponenten und Elektronikteile für das Produkt benötigt werden. Die Komponentenentwicklung kann beispielsweise umfassen, den Motor selbst zu entwickeln, einen Schaltplan der Stromversorgung und/oder dergleichen zu erstellen. Unten am „V” kann die Komponentenimplementierung Prototypen für die Hardware, die virtuelle Prototypen umfassen kann, und Software erstellen. 6 FIG. 10 is a simplified, exemplary V-model for system engineering in which embodiments of the present invention may be used. In an example in the left half of the "V", a developmental process for an automotive system may begin by determining requirements such as how vehicle requirements should be compiled, how the vehicle should function, what safety features the vehicle should have, high standard requirements, how the product was built should be and behave. Next, system development can determine which systems need to be created to support functional development. Some obvious system development parts may include a gasoline engine, a drive-by-wire steering, and / or the like. Component development can determine with finer resolution what particular components and electronic parts are needed for the product. Component development may include, for example, developing the engine itself, creating a power supply schematic, and / or the like. At the bottom of the "V", the component implementation can prototype the hardware, which may include virtual prototypes, and build software.

In demselben Beispiel können in der rechten Hälfte des ”V”, das einer Systemüberprüfung entsprechen kann, die einzelnen Komponenten getestet werden, sobald Prototypen erstellt sind, um sicherzustellen, dass die Komponenten erwartungsgemäß arbeiten. Prüfstände können für jede Komponente erzeugt werden, um Probleme frühzeitig auszuschließen, damit sich Probleme einfacher beheben lassen. Als Nächstes kann ein Integrationstest die Komponenten zu Systemen zusammenfassen und überprüfen, ob die Komponenten auf einer Systemebene arbeiten. Dann kann das Produktsystem als Ganzes getestet werden, um sicherzustellen, dass das Produktsystem die Anforderungen für das Produkt erfüllt. Der Fehlersimulator kann in die Komponententest-, Integrationstest- und/oder Systemtestabschnitte des V-Modells für Systemtechnik eingebunden sein. In einer Ausführungsform kann ein Fehlersimulator, der über ein oder mehrere hier beschriebene Merkmal/e verfügt, an einem virtuellen Hardware-Prototyp manchmal in Interoperation mit Software-Steuerungssystemen arbeiten, um das Verhalten von Komponenten und Komponentensystemen auszuwerten.In the same example, in the right half of the "V", which may correspond to a system scan, the individual components can be tested as prototypes are created to ensure that the components work as expected. Test benches can be created for each component Prevent problems early so you can fix problems more easily. Next, an integration test can group the components into systems and verify that the components are operating at a system level. Then the product system as a whole can be tested to ensure that the product system meets the requirements for the product. The fault simulator may be included in the component test, integration test, and / or system test sections of the V-Modell Systemtechnik. In one embodiment, a fault simulator having one or more features described herein may sometimes operate on a virtual hardware prototype in interoperation with software control systems to evaluate the behavior of components and component systems.

7 ist ein Blockschema eines Computersystems, das Ausführungsformen der vorliegenden Erfindung eingliedern kann. 7 ist rein illustrativ für eine Ausführungsform, die die vorliegende Erfindung verkörpert, und schränkt den wie in den Ansprüchen aufgeführten Umfang der Erfindung nicht ein. Ein durchschnittlicher Fachmann auf dem Gebiet würde andere Varianten, Modifizierungen und Alternativen erkennen. 7 Figure 12 is a block diagram of a computer system that may incorporate embodiments of the present invention. 7 is purely illustrative of an embodiment embodying the present invention and does not limit the scope of the invention as recited in the claims. One of ordinary skill in the art would recognize other variants, modifications, and alternatives.

In einer Ausführungsform umfasst ein Computersystem 700 typischerweise einen Monitor 710, einen Computer 720, Benutzerausgabevorrichtungen 730, Benutzereingabevorrichtungen 740, eine Kommunikationsschnittstelle 750 und dergleichen.In one embodiment, a computer system includes 700 typically a monitor 710 , a computer 720 , User output devices 730 , User input devices 740 , a communication interface 750 and the same.

Wie in 7 gezeigt ist, kann der Computer 720 einen Prozessor (Prozessoren) 760 umfassen, der über ein Bussubsystem 790 mit einer Anzahl von Peripheriegeräten kommuniziert. Diese Peripheriegeräte können Benutzerausgabevorrichtungen 730, Benutzereingabevorrichtungen 740, eine Kommunikationsschnittstelle 750 und ein Speichersubsystem, wie etwa einen Direktzugriffsspeicher (RAM) 770 und ein Plattenlaufwerk 780 umfassen.As in 7 shown is the computer 720 a processor (processors) 760 include, via a bus subsystem 790 communicates with a number of peripherals. These peripherals may be user output devices 730 , User input devices 740 , a communication interface 750 and a storage subsystem, such as random access memory (RAM) 770 and a disk drive 780 include.

Die Benutzereingabevorrichtungen 730 umfassen alle möglichen Arten von Geräten und Mechanismen zum Eingeben von Informationen in das Computersystem 720. Diese können eine Tastatur, ein Tastenfeld, einen in die Anzeige integrierten Berührungsbildschirm, Audioeingabevorrichtungen wie etwa Spracherkennungssysteme, Mikrophone und andere Arten von Eingabevorrichtungen umfassen. In verschiedenen Ausführungsformen sind die Benutzereingabevorrichtungen 730 typischerweise als eine Computermaus, ein Trackball, ein Trackpad, ein Joystick, ein drahtloses, abgesetztes Zeichentablet, ein Sprachbefehlssystem, ein Blickverfolgungssystem und dergleichen ausgeführt. Die Benutzereingabevorrichtungen 730 ermöglichen es einem Benutzer typischerweise, Objekte, Symbole, Text und dergleichen, die auf dem Monitor 710 erscheinen, über einen Befehl wie etwa ein Anklicken einer Taste oder dergleichen auszuwählen.The user input devices 730 include all sorts of devices and mechanisms for entering information into the computer system 720 , These may include a keyboard, a keypad, a touch screen integrated into the display, audio input devices such as voice recognition systems, microphones, and other types of input devices. In various embodiments, the user input devices are 730 typically embodied as a computer mouse, a trackball, a trackpad, a joystick, a wireless remote character tablet, a voice command system, a gaze tracking system, and the like. The user input devices 730 typically allow a user to place objects, icons, text and the like on the monitor 710 appear to select via a command such as clicking a button or the like.

Die Benutzerausgabevorrichtungen 740 umfassen alle möglichen Arten von Vorrichtungen und Mechanismen zum Ausgeben von Informationen aus dem Computer 720. Diese können eine Anzeige (z. B. den Monitor 710), nicht visuelle Anzeigen wie etwa Audioausgabegeräte, etc. umfassen.The user output devices 740 include all sorts of devices and mechanisms for outputting information from the computer 720 , These can be an indicator (eg the monitor 710 ), non-visual displays such as audio output devices, etc.

Die Kommunikationsschnittstelle 750 stellt eine Schnittstelle zu anderen Kommunikationsnetzen und -vorrichtungen bereit. Die Kommunikationsschnittstelle 750 kann als eine Schnittstelle dienen, um Daten von anderen Systemen zu empfangen und an diese zu übertragen. Ausführungsformen der Kommunikationsschnittstelle 750 umfassen typischerweise eine Ethernet-Karte, ein Modem (Telefon, Satellit, Kabel, ISDN), eine (asynchrone) digitale Teilnehmerleitungs-(DSL)-Einheit, eine FireWire-Schnittstelle, eine USB-Schnittstelle und dergleichen. Beispielsweise kann die Kommunikationsschnittstelle 750 an ein Computernetz, an einen FireWire-Bus oder dergleichen angeschlossen sein. In anderen Ausführungsformen können Kommunikationsschnittstellen 750 physisch in die Hauptplatine des Computers 720 integriert oder ein Software-Programm wie etwa ein Soft-DSL oder dergleichen sein.The communication interface 750 provides an interface to other communication networks and devices. The communication interface 750 can serve as an interface to receive and transmit data from other systems. Embodiments of the communication interface 750 typically include an Ethernet card, a modem (telephone, satellite, cable, ISDN), an asynchronous digital subscriber line (DSL) unit, a FireWire interface, a USB interface, and the like. For example, the communication interface 750 be connected to a computer network, to a FireWire bus or the like. In other embodiments, communication interfaces may be used 750 physically into the motherboard of the computer 720 integrated or a software program such as a soft DSL or the like.

In verschiedenen Ausführungsformen kann das Computersystem 700 auch eine Software umfassen, die Kommunikationen über ein Netzwerk ermöglicht, wie etwa die HTTP-, TCP/IP-, RTP/RSTP-Protokolle und dergleichen. In alternativen Ausführungsformen der vorliegenden Erfindung können auch eine andere Kommunikationssoftware und andere Transferprotokolle, beispielsweise IPX, UDP oder dergleichen verwendet werden.In various embodiments, the computer system 700 also include software that enables communications over a network, such as the HTTP, TCP / IP, RTP / RSTP protocols, and the like. In alternative embodiments of the present invention, other communication software and other transfer protocols such as IPX, UDP, or the like may also be used.

In einigen Ausführungsformen umfasst der Computer 720 einen oder mehrere Xeon-Mikroprozessor/en von Intel als Prozessor/en 760. Ferner umfasst der Computer 720 einer Ausführungsform ein auf UNIX beruhendes Betriebssystem.In some embodiments, the computer includes 720 One or more Intel Xeon microprocessors as processor (s) 760 , Furthermore, the computer includes 720 In one embodiment, a UNIX-based operating system.

Der RAM 770 und das Plattenlaufwerk 780 sind Beispiele für physisch greifbare Medien, die zum Speichern von Daten wie etwa Ausführungsformen der vorliegenden Erfindung, einschließlich eines ausführbaren Maschinencodes, eines für den Menschen lesbaren Codes oder dergleichen konfiguriert sind. Andere Arten von physisch greifbaren Medien umfassen Disketten, entnehmbare Festplatten, optische Speichermedien wie etwa CD-ROMs, DVDs und Strichcodes, Halbleiterspeicher wie etwa Flash-Speicher, Festwertspeicher (ROMs), batteriegesicherte flüchtige Speicher, netzwerkfähige Speichergeräte und dergleichen. Der RAM 770 und das Plattenlaufwerk 780 können dazu konfiguriert sein, die Grundprogrammierungs- und Datenkonstrukte zu speichern, die die Funktionalität der vorliegenden Erfindung bereitstellen.The RAM 770 and the disk drive 780 are examples of physically tangible media used to store data such as embodiments of the present invention, including a machine code, human-readable code, or the like. Other types of tangible media include floppy disks, removable hard disks, optical storage media such as CD-ROMs, DVDs and bar codes, semiconductor memories such as flash memory, read-only memory (ROMs), battery-backed volatile memory, network-capable storage devices, and the like. The RAM 770 and the disk drive 780 may be configured to store the basic programming and data constructs that provide the functionality of the present invention.

Softwarecodebausteine und -befehle, die die Funktionalität der vorliegenden Erfindung bereitstellen, können im RAM 770 und Plattenlaufwerk 780 gespeichert sein. Diese Softwarebausteine können durch den bzw. die Prozessor/en 760 ausgeführt werden. Der RAM 770 und das Plattenlaufwerk 780 können auch einen Aufbewahrungsort (Repository) zum Speichern von Daten bereitstellen, die entsprechend der vorliegenden Erfindung verwendet werden.Software code blocks and instructions that provide the functionality of the present invention may be stored in RAM 770 and disk drive 780 be saved. These software components can be modified by the processor (s) 760 be executed. The RAM 770 and the disk drive 780 may also provide a repository for storing data used in accordance with the present invention.

Der RAM 770 und das Plattenlaufwerk 780 können mehrere Speicher umfassen, die einen Hauptdirektzugriffsspeicher (RAM) zum Speichern von Befehlen und Daten während einer Programmausführung und einen Festwertspeicher (ROM) umfassen, in dem feststehende Befehle gespeichert sind. Der RAM 770 und das Plattenlaufwerk 780 können ein Dateispeichersubsystem umfassen, das einen persistenten (nichtflüchtigen) Speicher für Programm- und Datendateien bereitstellt. Der RAM 770 und das Plattenlaufwerk 780 können auch entnehmbare Speichersysteme wie etwa einen entnehmbaren Flash-Speicher umfassen.The RAM 770 and the disk drive 780 may include a plurality of memories including a main random access memory (RAM) for storing instructions and data during a program execution and a read-only memory (ROM) in which fixed instructions are stored. The RAM 770 and the disk drive 780 may include a file storage subsystem that provides persistent (nonvolatile) storage for program and data files. The RAM 770 and the disk drive 780 may also include removable storage systems such as a removable flash memory.

Das Bussubsystem 790 stellt einen Mechanismus bereit, um die verschiedenen Komponenten und Subsysteme des Computers 720 wie vorgesehen miteinander kommunizieren zu lassen. Obwohl das Bussubsystem 790 als ein einzelner Bus gezeigt ist, können alternative Ausführungsformen des Bussubsystems mehrere Busse nutzen.The bus subsystem 790 Provides a mechanism to the various components and subsystems of the computer 720 as intended to let communicate with each other. Although the bus subsystem 790 As a single bus, alternative embodiments of the bus subsystem may utilize multiple buses.

7 ist für ein Computersystem repräsentativ, das in der Lage ist, die vorliegende Erfindung einzugliedern. Dem Fachmann auf dem Gebiet wird schnell klar sein, dass sich viele andere Hardware- und Softwarekonfigurationen zur Verwendung mit der vorliegenden Erfindung eignen. Beispielsweise kann es sich bei dem Computer um eine Desktop-, tragbare, gestellmontierte oder Tablet-Konfiguration handeln. Außerdem kann es sich bei dem Computer um eine Reihe netzwerkfähiger Computer handeln. Ferner ist auch der Einsatz anderer Mikroprozessoren wie etwa PentiumTM- oder ItaniumTM-Mikroprozessoren; OpteronTM- oder AthlonXPTM-Mikroprozessoren von Advanced Micro Devices, Inc; und dergleichen vorgesehen. Ferner sind auch andere Arten von Betriebssystemen wie etwa Windows®, Windows XP®, WindowsNT® oder dergleichen von Microsoft Corporation, Solaris von Sun Microsystems, LINUX, UNIX und dergleichen vorgesehen. In noch anderen Ausführungsformen können die vorstehend beschriebenen technischen Verfahren auf einem Chip oder einer zusätzlichen Verarbeitungsplatine implementiert sein. 7 is representative of a computer system capable of incorporating the present invention. It will be readily apparent to those skilled in the art that many other hardware and software configurations are suitable for use with the present invention. For example, the computer may be a desktop, portable, rack-mounted, or tablet configuration. Additionally, the computer may be a series of network-enabled computers. Further, there is also the use of other microprocessors, such as Pentium or Itanium microprocessors; Opteron or AthlonXP microprocessors from Advanced Micro Devices, Inc; and the like. Furthermore, other types of operating systems such as Windows ®, Windows XP ®, Windows NT ® or the like from Microsoft Corporation, Solaris from Sun Microsystems, LINUX, UNIX, and the like are provided. In still other embodiments, the above-described technical methods may be implemented on a chip or an additional processing board.

Verschiedene Ausführungsformen der vorliegenden Erfindung können in Form von Logik in Software oder Hardware oder einer Kombination aus beiden implementiert sein. Die Logik kann in einem computerlesbaren oder maschinenlesbaren Speichermedium als ein Satz von Befehlen gespeichert sein, die dazu angepasst sind, einen Prozessor eines Computersystems anzuleiten, einen Satz von in Ausführungsformen der vorliegenden Erfindung offenbarten Schritten durchzuführen. Die Logik kann einen Teil eines Computerprogrammprodukts bilden, das dazu angepasst ist, eine informationsverarbeitende Vorrichtung anzuleiten, einen Satz von in Ausführungsformen der vorliegenden Erfindung offenbarten Schritten automatisch durchzuführen. Auf Grundlage der hier bereitgestellten Offenbarung und Lehren wird der durchschnittliche Fachmann auf dem Gebiet für andere Wege und/oder Verfahren aufgeschlossen sein, um die vorliegende Erfindung umzusetzen, beispielsweise, indem ein Quellcode geschrieben und der Quellcode kompiliert wird, um Befehle zu generieren, die durch den Computer ausgeführt werden können.Various embodiments of the present invention may be implemented in the form of logic in software or hardware or a combination of both. The logic may be stored in a computer-readable or machine-readable storage medium as a set of instructions adapted to instruct a processor of a computer system to perform a set of steps disclosed in embodiments of the present invention. The logic may form part of a computer program product adapted to instruct an information processing device to automatically perform a set of steps disclosed in embodiments of the present invention. Based on the disclosure and teachings provided herein, one of ordinary skill in the art will be aware of other ways and / or techniques for implementing the present invention, for example, by writing a source code and compiling the source code to generate instructions by the computer can be run.

Die technische Beschreibung und die Zeichnungen sind dementsprechend vielmehr in einem illustrativen als einschränkenden Sinne zu verstehen. Es wird jedoch offensichtlich sein, dass daran verschiedene Modifizierungen und Änderungen vorgenommen werden können, ohne vom weiteren Aussagegehalt und Umfang der Erfindung abzuweichen, wie er in den Ansprüchen dargelegt ist. Außerdem eignet sich das technische Verfahren und System der vorliegenden Erfindung zur Verwendung mit einer breiten Palette von elektronischen Entwurfsautomatisierungs-(EDA)-Hilfsmitteln und -Methodologien zum Entwickeln, Testen und/oder Herstellen von Systemen, die sich durch eine Kombination konservierter Signalfluss- und Ereignis- oder Digitalsystemgleichungen auszeichnen. Der Umfang der Erfindung sollte deshalb nicht mit Bezug auf die vorstehende Beschreibung bestimmt werden, sondern sollte stattdessen mit Bezug auf die anhängigen Ansprüche zusammen mit deren vollem Umfang oder Äquivalenten bestimmt werden.Accordingly, the technical description and drawings are to be understood in an illustrative rather than a limiting sense. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. In addition, the technical method and system of the present invention is suitable for use with a wide range of electronic design automation (EDA) tools and methodologies for developing, testing, and / or manufacturing systems characterized by a combination of conserved signal flow and event or digital system equations. The scope of the invention should, therefore, be determined not with reference to the above description, but should instead be determined with reference to the appended claims along with their full scope or equivalents.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte Nicht-PatentliteraturCited non-patent literature

  • Abschnitt 12 des IEEE-Standards 1076.1-2007 [0026] Section 12 of IEEE Standard 1076.1-2007 [0026]
  • Abschnitt 12 des IEEE Standards 1076.1-2007 [0028] Section 12 of IEEE Standard 1076.1-2007 [0028]

Claims (18)

Computerimplementiertes Verfahren zum Modifizieren einer kompilierten Entwicklung einer elektronischen Schaltung, wobei das Verfahren umfasst: auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen; und den Computer im Ansprechen auf eine Angabe einer Veränderung an einem Teil der Entwicklung zu veranlassen, eine modifizierte Version der gespeicherten Kompilierung zu generieren.A computer-implemented method for modifying a compiled development of an electronic circuit, the method comprising: access a development compiled, stored compilation; and to cause the computer to generate a modified version of the stored compilation in response to an indication of a change in a portion of the development. Verfahren nach Anspruch 1, darüber hinaus umfassend, einen Teil der den geänderten Teil der Entwicklung darstellenden Kompilierung zu kennzeichnen, wobei die modifizierte Kompilierung eine modifizierte Version des gekennzeichneten Teils der Kompilierung umfasst, und wobei andere Teile der Kompilierung unmodifiziert bleiben.The method of claim 1, further comprising characterizing a portion of the compilation representing the changed portion of the development, wherein the modified compilation comprises a modified version of the designated portion of the compilation, and wherein other portions of the compilation remain unmodified. Verfahren nach Anspruch 1 oder 2, wobei die Änderung umfasst, ein Kurzschluss-Element der Entwicklung hinzuzufügen und/oder ein Offen-Element der Entwicklung hinzuzufügen.The method of claim 1 or 2, wherein the modification comprises adding a shorting element to the development and / or adding an open element to the development. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Generieren der modifizierten Version umfasst: Bestimmen, dass sich die Änderung auf ein analoges Element bezieht, und Aktualisieren mindestens einer analogen Gleichung, die mit dem analogen Element verbunden ist.The method of any one of claims 1 to 3, wherein generating the modified version comprises: Determining that the change relates to an analogous element, and Updating at least one analog equation associated with the analog element. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Generieren der modifizierten Version umfasst: Bestimmen, dass sich die Änderung auf ein digitales Element bezieht, und Aktualisieren mindestens einer digitalen Treiberverbindung, die mit dem digitalen Element verbunden ist.The method of any one of claims 1 to 4, wherein generating the modified version comprises: Determining that the change relates to a digital element, and Update at least one digital driver connection connected to the digital element. Verfahren nach einem der Ansprüche 1 bis 5, wobei die gespeicherte Kompilierung eine Entwicklungsbaumstruktur enthält, die mehrere Subbaumstrukturen umfasst.The method of any one of claims 1 to 5, wherein the stored compilation includes a development tree structure comprising a plurality of sub-tree structures. Verfahren nach Anspruch 6, wobei das Generieren der modifizierten Version umfasst, ein Element in eine der Subbaumstrukturen einzufügen.The method of claim 6, wherein generating the modified version comprises inserting an element into one of the sub-tree structures. Verfahren nach Anspruch 7, wobei das Einfügen eines Elements umfasst: Abtrennen eines ersten Knotens von einem Anschluss, der an den ersten Knoten angeschlossen ist; Hinzufügen eines zweiten Knotens zwischen dem ersten Knoten und dem Anschluss; Anschließen des zweiten Knotens an den Anschluss; und Einfügen des Elements zwischen den ersten Knoten und den zweiten Knoten.The method of claim 7, wherein inserting an element comprises: Disconnecting a first node from a port connected to the first node; Adding a second node between the first node and the port; Connecting the second node to the port; and Insert the element between the first node and the second node. Verfahren nach einem der Ansprüche 1 bis 8, darüber hinaus umfassend: Simulieren der modifizierten Kompilierung; und Generieren eines Berichts auf Grundlage der Simulation.Method according to one of claims 1 to 8, further comprising: Simulate the modified compilation; and Generate a report based on the simulation. Verfahren nach einem der Ansprüche 1 bis 9, darüber hinaus umfassend, die modifizierte Kompilierung in ihren unmodifizierten Zustand zurückzuversetzen.The method of any of claims 1 to 9, further comprising returning the modified compilation to its unmodified state. System zum Überprüfen einer Entwicklung, wobei das System umfasst: einen Prozessor, und einen Speicher, der Befehle speichert, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor dazu konfigurieren: auf eine die Entwicklung darstellende, gespeicherte Kompilierung zuzugreifen, und den Computer dazu veranlassen, eine modifizierte Version der gespeicherten Kompilierung im Ansprechen auf eine Angabe einer Änderung an einem Teil der Entwicklung zu generieren.A system for verifying a development, the system comprising: a processor, and a memory that stores instructions that, when executed by the processor, configure the processor to: to access a development-compiled, stored compilation, and cause the computer to generate a modified version of the stored compilation in response to an indication of a change in a portion of the development. System nach Anspruch 11, wobei die Befehle den Prozessor darüber hinaus dazu konfigurieren, einen Teil der den geänderten Teil der Entwicklung darstellenden Kompilierung zu kennzeichnen, wobei die modifizierte Kompilierung eine modifizierte Version des gekennzeichneten Teils der Kompilierung umfasst, und wobei andere Teile der Kompilierung unmodifiziert bleiben.The system of claim 11, wherein the instructions further configure the processor to tag a portion of the compilation representing the changed portion of the development, wherein the modified compilation comprises a modified version of the designated portion of the compilation, and wherein other portions of the compilation remain unmodified , System nach Anspruch 11 oder 12, wobei die Änderung umfasst, ein Kurzschluss-Element der Entwicklung hinzuzufügen und/oder ein Offen-Element der Entwicklung hinzuzufügen.The system of claim 11 or 12, wherein the modification comprises adding a shorting element to the development and / or adding an open element to the development. System nach einem der Ansprüche 11 bis 13, wobei das Generieren der modifizierten Version umfasst: A) Bestimmen, dass sich die Änderung auf ein analoges Element bezieht, und Aktualisieren mindestens einer analogen Gleichung, die mit dem analogen Element verbunden ist; und/oder B) Bestimmen, dass sich die Änderung auf ein digitales Element bezieht, und Aktualisieren mindestens einer digitalen Treiberverbindung, die mit dem digitalen Element verbunden ist.The system of any one of claims 11 to 13, wherein generating the modified version comprises: A) determining that the change relates to an analog element and updating at least one analog equation associated with the analog element; and / or B) determining that the change relates to a digital element and updating at least one digital driver connection associated with the digital element. System nach einem der Ansprüche 11 bis 14, wobei das Generieren der modifizierten Version umfasst: Abtrennen eines ersten Knotens von einem Anschluss, der an den ersten Knoten angeschlossen ist; Hinzufügen eines zweiten Knotens zwischen dem ersten Knoten und dem Anschluss; Anschließen des zweiten Knotens an den Anschluss; und Einfügen eines Elements zwischen den ersten Knoten und den zweiten Knoten.The system of any one of claims 11 to 14, wherein generating the modified version comprises: Disconnecting a first node from a port connected to the first node; Adding a second node between the first node and the port; Connecting the second node to the port; and Insert an element between the first node and the second node. System nach einem der Ansprüche 11 bis 15, wobei die Befehle darüber hinaus den Prozessor dazu konfigurieren: die modifizierte Kompilierung zu simulieren; und einen Bericht auf Grundlage der Simulation zu generieren.The system of any one of claims 11 to 15, wherein the instructions further configure the processor to: to simulate the modified compilation; and generate a report based on the simulation. System nach einem der Ansprüche 11 bis 16, wobei die Befehle den Prozessor darüber hinaus dazu konfigurieren, die modifizierte Kompilierung in ihren unmodifizierten Zustand zurückzuversetzen.The system of any one of claims 11 to 16, wherein the instructions further configure the processor to return the modified compilation to its unmodified state. Computerlesbarer Datenträger, der Befehle umfasst, die, wenn sie durch einen Computer ausgeführt werden, den Computer dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.A computer readable medium comprising instructions that, when executed by a computer, cause the computer to perform a method as claimed in any one of claims 1 to 10.
DE102014117919.6A 2013-12-06 2014-12-04 Error injection for system check Pending DE102014117919A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361913225P 2013-12-06 2013-12-06
US61/913,225 2013-12-06
US14/530,359 2014-10-31
US14/530,359 US10452797B2 (en) 2013-12-06 2014-10-31 Fault insertion for system verification

Publications (1)

Publication Number Publication Date
DE102014117919A1 true DE102014117919A1 (en) 2015-06-11

Family

ID=53185460

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014117919.6A Pending DE102014117919A1 (en) 2013-12-06 2014-12-04 Error injection for system check

Country Status (1)

Country Link
DE (1) DE102014117919A1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Abschnitt 12 des IEEE Standards 1076.1-2007
Abschnitt 12 des IEEE-Standards 1076.1-2007

Similar Documents

Publication Publication Date Title
DE102019003851A1 (en) Systems and methods for the automatic realization of models for co-simulation
DE10143101A1 (en) Procedure for the validation of simulation results of a system as well as the equivalence comparison of digital circuits
DE10333087A1 (en) Process for the automatic decomposition of dynamic system models into sub-models
DE102016119320A1 (en) Method for configuring a real or virtual electronic control unit
US10452797B2 (en) Fault insertion for system verification
DE102017211433A1 (en) Method for performing a functional test of a control unit in a hardware-in-the-loop test, HIL test, and HIL test bench and control unit
WO2019223970A1 (en) Creating of an interdisciplinary simulation model
EP3285165A1 (en) Modification and simulation of the operating software of a technical system
DE10038499A1 (en) Formal verifying method for development in data processor involves executing verification algorithm using one limit of signal envelope, and limiting state-space search by using verification algorithm
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
DE10333088A1 (en) Method for providing access to the internal signals of a dynamic system model from outside regarding the modeling environment
DE102019124215A1 (en) Procedure for changing models for the generation of source code
DE102021116315A1 (en) Method for merging architectural information
DE102015102034A1 (en) A method of analyzing results in a design automation workflow for electronic systems, computer system and computer program product
DE102019008598A1 (en) Identification and visualization of associations between code generated by a model and sources that influence code generation
EP3702922A1 (en) Method for the computer-assisted validation of embedded software
DE102012016610B4 (en) Real-time circuit simulation
DE102014117919A1 (en) Error injection for system check
DE102016115314A1 (en) Modifying and simulating the operating software of a technical system
DE102023106277A1 (en) Method for generating source code
DE102011077177A1 (en) Method for computer-aided analysis of faulty source code in a hardware description language
DE19710463C2 (en) Process for automatic differentiation on a computer, in particular for simulating electronic circuits
DE102022112141A1 (en) Method for creating a simplified virtual control device
DE102023107473A1 (en) SYSTEM FOR CREATING A DEVELOPMENT ENVIRONMENT, METHOD FOR CREATING A DEVELOPMENT ENVIRONMENT AND PROGRAM
DE10131438B4 (en) Process for developing a technical component

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R012 Request for examination validly filed