DE19710463C2 - Process for automatic differentiation on a computer, in particular for simulating electronic circuits - Google Patents

Process for automatic differentiation on a computer, in particular for simulating electronic circuits

Info

Publication number
DE19710463C2
DE19710463C2 DE19710463A DE19710463A DE19710463C2 DE 19710463 C2 DE19710463 C2 DE 19710463C2 DE 19710463 A DE19710463 A DE 19710463A DE 19710463 A DE19710463 A DE 19710463A DE 19710463 C2 DE19710463 C2 DE 19710463C2
Authority
DE
Germany
Prior art keywords
computer
arithmetic
variables
tree
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19710463A
Other languages
German (de)
Other versions
DE19710463A1 (en
Inventor
Wolfram Dr Klein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19710463A priority Critical patent/DE19710463C2/en
Priority to PCT/DE1998/000618 priority patent/WO1998040828A1/en
Publication of DE19710463A1 publication Critical patent/DE19710463A1/en
Application granted granted Critical
Publication of DE19710463C2 publication Critical patent/DE19710463C2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Description

In den letzten Jahren hat sich in der Industrie die Schaltungssimulation zur effektiven und ökonomischen Entwicklung elektronischer Schaltkreise immer mehr durchgesetzt. Entsprechend den immer schneller wechselnden Produktzyklen werden immer größere und kompliziertere Simulationsmodelle entwickelt. Ein Schwerpunkt bei der Simulation von Schaltkreisen ist die Entwicklung neuer Transistormodelle. Dabei liegt ein Hauptaugenmerk auf der Entwicklung von Vorschriften für das Ladungsverhalten des Transistors sowie der Berechnung entsprechender Ableitungen. Die Ableitungen werden aufgrund der Nichtlinearität des Transistors bezüglich des Eingangsstromverhaltens und bezüglich des Spannungsverhaltens, sowie bzgl. der Kopplung des Transistors zum Gesamtschaltkreis benötigt.In the past few years, the industry Circuit simulation for effective and economical Development of electronic circuits more and more enforced. According to the ever faster changing Product cycles are getting bigger and more complicated Simulation models developed. A focus at the Circuit simulation is the development of new ones Transistor models. The main focus is on the Development of regulations for the charge behavior of the Transistor and the calculation of corresponding derivatives. The derivatives are due to the nonlinearity of the Transistor regarding the input current behavior and regarding the voltage behavior, as well as regarding the coupling of the transistor to the overall circuit.

Aus [1] sind mathematische Verfahren zum automatischen Differenzieren nach der Vorwärtsmethode und nach der Rückwärtsmethode bekannt.From [1] are mathematical methods for automatic Differentiate according to the forward method and the Reverse method known.

Das Problem des erfindungsgemäßen Verfahrens besteht darin, ein operatorbasiertes System anzugeben, das eine signifikant vereinfachte und beschleunigte Realisierung bei der Ermittlung von exakten und rundungsfehlerfreien Ableitungen komplexer Vorschriften ermöglicht.The problem with the method according to the invention is that to specify an operator-based system that has a significant simplified and accelerated implementation at Determination of exact and rounding error-free derivations complex regulations.

Dieses Problem wird gemäß den Merkmalen des Patentanspruchs 1 gelöst.This problem is solved according to the features of claim 1 solved.

In dem erfindungsgemäßen Verfahren können funktionale Beschreibungen, z. B. Vorschriften, die das Verhalten elektronischer Bauelemente wiedergeben, mittels einer entsprechenden funktionalen Darstellung in einen Rechner eingegeben werden. Die so in den Rechner gelangten Vorschriften werden als verallgemeinerte Binärbäume abgespeichert. Zur Differentiation dieser Vorschriften werden die verallgemeinerten Binärbäume nach der Vorwärtsmethode oder nach der Rückwärtsmethode abgeleitet resultierend in dem exakten Wert der Ableitung an einer gegebenen Stelle (für eine ausführliche Beschreibung der beiden automatischen Differentiationsverfahren Vorwärts- bzw. Rückwärts- Differentiation wird auf [1] verwiesen).Functional can be used in the process according to the invention Descriptions, e.g. B. Regulations governing behavior reproduce electronic components by means of a  corresponding functional representation in a computer can be entered. That got into the computer Regulations are called generalized binary trees saved. To differentiate these rules the generalized binary trees using the forward method or derived by the backward method resulting in the exact value of the derivative at a given point (for a detailed description of the two automatic Differentiation method forward or backward Differentiation is referred to [1]).

Es ist vorteilhaft, wenn Ableitungswerte und Funktionswerte an vorgebbaren Stellen automatisch berechnet werden. Dabei stehen folgende Arithmetiken zur Auswahl:It is advantageous if derivative values and function values are automatically calculated at predefinable points. Here the following arithmetic are available:

a) Realzahlarithmetik,a) real number arithmetic,

b) Realzahlarithmetik mit aneinandergeschachtelten Mantissen,b) real number arithmetic with nested mantissas,

c) Intervallarithmetik undc) interval arithmetic and

d) Intervallarithmetik mit aneinandergeschachtelten Mantissen.d) interval arithmetic with nested Mantissa.

Weiterbildungen des erfindungsgemäßen Verfahrens ergeben sich aus dem abhängigen Anspruch.Further developments of the method according to the invention result from the dependent claim.

Die Erfindung wird anhand eines Ausführungsbeispiels, das in den Figuren dargestellt ist, weiter erläutert.The invention is based on an embodiment that in the figures is shown, explained further.

Es zeigenShow it

Fig. 1 ein Ablaufdiagramm, das die einzelnen Schritte des erfindungsgemäßen Verfahrens darstellt, Fig. 1 is a flow chart illustrating the individual steps of the method according to the invention,

Fig. 2 eine Skizze, die beispielhaft einen verallgemeinerten Binärbaum darstellt und Fig. 2 is a sketch that exemplifies a generalized binary tree and

Fig. 3 ein Diagramm, das einen Vergleich der Rechenzeiten bei der Ermittlung automatischer Differentiationen darstellt. Fig. 3 is a diagram illustrating a comparison of the computing times in the determination of automatic differentiations.

In Fig. 1 sind schematisch die einzelnen Schritte des erfindungsgemäßen Verfahrens dargestellt. Im Schritt 1a erfolgt die Umsetzung des funktionalen Verhaltens, dargestellt in mathematischer Notation, in eine rechnerinterne Datenstruktur mittels eines Scanner-Moduls sowie eines Parser-Moduls, die den Eingabetext sowohl lexikalisch als auch syntaktisch analysieren. Beide Module, Scanner- und Parser-Modul, basieren auf den Unix-Werkzeugen LEX und YACC, die ausführlich in [2] beschrieben sind.In Fig. 1, the individual steps of the method according to the invention are shown schematically. In step 1a, the functional behavior, represented in mathematical notation, is implemented in a computer-internal data structure using a scanner module and a parser module, which analyze the input text both lexically and syntactically. Both modules, scanner and parser module, are based on the Unix tools LEX and YACC, which are described in detail in [2].

Im Schritt 1b werden die Eingaben in Form verallgemeinerter Binärbäume abgespeichert. Um arithmetische und/oder boolsche Ausdrücke durch verallgemeinerte Binärbäume darstellen zu können, wird jeder Operator als Baumknoten dargestellt, Operanden werden durch Blätter repräsentiert. Die von den den Operator repräsentierenden Baumknoten ausgehenden Kanten führen zu den Operanden. Operatorrangfolge und Klammerung eines Ausdrucks werden dabei durch "Vater-Sohn"-Relationen ausgedrückt. Ein Beispiel hierzu ist in Fig. 2 angegeben und wird dort ausführlich erläutert.In step 1b, the inputs are saved in the form of generalized binary trees. In order to be able to represent arithmetic and / or Boolean expressions through generalized binary trees, each operator is represented as a tree node, operands are represented by leaves. The edges originating from the tree nodes representing the operator lead to the operands. Operator precedence and bracketing of an expression are expressed by "father-son" relations. An example of this is given in FIG. 2 and is explained in detail there.

Im Schritt 1c wird die eigentliche Differentiation durchgeführt, die als Ergebnis den exakten Ableitungswert an einer gegebenen Stelle liefert. Es wird entweder die Vorwärts-Methode oder die Rückwärts-Methode, beide zählen zu Verfahren der automatischen Differentiation und sind ausführlich in [1] beschrieben, verwendet. In der Beschreibung zur Fig. 3 wird beispielhaft eine Aufwandsabschätzung unter Verwendung verschiedener Differentiationstechniken dargestellt.In step 1c, the actual differentiation is carried out, which as a result provides the exact derivative value at a given point. Either the forward method or the backward method is used, both of which are automatic differentiation methods and are described in detail in [1]. In the description of FIG. 3, an effort estimate is presented using various differentiation techniques.

Es ist vorteilhaft, wenn entsprechend der Darstellung in verallgemeinerten Binärbäumen Ableitungswerte und Funktionswerte ermittelt werden. Dabei kann man unter vier verschiedenen Arithmetiken wählen, der Realzahlarithmetik mit und ohne aneinandergeschachtelte Mantissen und der Intervallarithmetik mit und ohne aneinandergeschachtelte Mantissen. Aneinandergeschachtelte Mantissen ermöglichen eine vorgebbare Erhöhung der Genauigkeit des Ergebnisses. Intervallarithmetik (siehe eine detaillierte Beschreibung in [3]) berücksichtigt die Tatsache, daß bei der Darstellung beispielsweise einer gebrochen rationalen Zahl diese auf einem Rechner, unabhängig von der darstellbaren Genauigkeit des Rechners, niemals exakt angegeben werden kann. Eine exakte Darstellung ist aber möglich unter Angabe einer oberen und einer unteren Schranke, die ein Intervall darstellen und die exakte Darstellung der Zahl enthält. Das Intervall ist beliebig genau angebbar und enthält doch immer die exakte Repräsentation der nicht darstellbaren Zahl. Nun ist es möglich, mit diesen Intervallen ebenso Arithmetiken zu definieren wie mit normalen Zahlen, man spricht von Intervallarithmetik. Hierdurch können die bei jedem Rechner auftretenden Rundungsfehler auch bei komplexen Verfahren, wie z. B. der Differentiation, kontrolliert werden. Dies führt zu einer deutlichen Verbesserung bei der Ableitungsberechnung.It is advantageous if, according to the representation in generalized binary trees derivative values and Function values are determined. You can do it under four choose different arithmetic, the real number arithmetic with and without nested mantissas and the Interval arithmetic with and without nested  Mantissa. Nested mantissas enable one predeterminable increase in the accuracy of the result. Interval arithmetic (see a detailed description in [3]) takes into account the fact that in the presentation for example, a fractional rational number a computer, regardless of the representable accuracy of the computer, can never be specified exactly. A however, an exact representation is possible by specifying an upper one and a lower bound representing an interval and contains the exact representation of the number. The interval is can be specified as desired and yet always contains the exact one Representation of the number that cannot be represented. Now it is possible arithmetic with these intervals as well define like with normal numbers, one speaks of Interval arithmetic. This allows you to use any computer occurring rounding errors even in complex processes, such as e.g. B. the differentiation, are controlled. this leads to a significant improvement in the derivation calculation.

Auch bei Intervallen kann die Genauigkeit durch Aneinanderschachtelung von mehreren Mantissen erhöht werden.The accuracy can also be determined at intervals Nesting of several mantissas can be increased.

In Fig. 2 ist beispielhaft ein verallgemeinerter Binärbaum dargestellt, der die Funktion
In Fig. 2, a generalized binary tree is shown as an example, the function

repräsentiert.represents.

Arithmetische und boolsche Ausdrücke können, wie bereits erwähnt, durch verallgemeinerte Binärbäume repräsentiert werden. Dabei stellen Operatoren Baumknoten dar, Operanden werden durch Blätter repräsentiert. Die Modellierung von arithmetischen und boolschen Ausdrücken mittels binärer Bäume hat den Vorteil, daß Operatorrangfolge und Klammerung eines Ausdrucks bereits beim Aufbau des Baumes berücksichtigt werden. Der Wert eines Ausdrucks kann somit rekursiv, von der Wurzel ausgehend, berechnet werden.Arithmetic and Boolean expressions can, as already mentioned, represented by generalized binary trees become. Operators represent tree nodes, operands are represented by leaves. The modeling of arithmetic and boolean expressions using binary trees has the advantage that operator precedence and bracketing of a Expression already taken into account when building the tree  become. The value of an expression can thus be recursive, from the Root starting, can be calculated.

Durch die Verknüpfung eines arithmetischen Ausdrucks mit einem Namen können einfache (konstante) Funktionen dargestellt werden. Bei der Verwendung von Konstanten und unabhängigen Variablen wäre es naheliegend, den jeweiligen Bezeichner sowie eine Typinformation zusätzlich in dem entsprechenden Baumknoten abzulegen. Bei einer Funktionsauswertung bzw. der Wertzuweisung an eine Konstante würden diese Knoten dann mit dem aktuellen Wert versehen werden. Diese Art der Datenhaltung hätte jedoch die Schwächen, daß die mehrfache Speicherung eines Konstanten- bzw. Variablennamens unnötig viel Speicherplatz beanspruchen würde, zumal aussagekräftige Bezeichner in der Regel aus mehr als einem Zeichen bestehen, und daß Anzahl und Namen der unabhängigen Variablen einer Funktion nur durch Absuchen des zugehörigen Baumes bestimmt werden könnten. Weiterhin wäre nachteilig, daß jede Änderung einer globalen Konstanten die Aktualisierung der entsprechenden Knoten derjenigen Funktion zur Folge hätte, die diese Konstanten enthalten. Da jedoch keine Information vorliegt, in welchen Funktionen die Konstante auftritt, müßten alle Funktionsbäume durchsucht werden.By linking an arithmetic expression with A name can have simple (constant) functions being represented. When using constants and independent variables, it would be obvious to the respective Identifier and type information in addition in the to drop the corresponding tree nodes. At a Function evaluation or the value assignment to a constant these nodes would then be given the current value become. This type of data storage would have, however Weaknesses that the multiple storage of a constant or variable names take up an unnecessarily large amount of storage space would, especially since meaningful identifiers usually consist of more as one character, and that the number and name of the independent variables of a function only by searching the associated tree could be determined. Would continue disadvantageous that every change of a global constant the Update the corresponding nodes of that function that contain these constants. However, since there is no information in which functions the Constant occurs, all function trees would have to be searched become.

Aus diesem Grund wird in dem erfindungsgemäßen Verfahren jeder Bezeichner zentral in einer sog. Symboltabelle verwaltet. Diese Symboltabelle enthält die Namen aller vom Benutzer definierten Funktionen, Variablen, und Konstanten. Jeder Tabelleneintrag beinhaltet zusätzlich eine Typinformation, sowie einen Verweis auf die zugehörige Datenstruktur. Funktionseinträge enthalten außerdem einen Verweis auf eine Liste ihrer unabhängigen Variablen. Mit Hilfe der Symboltabelle genügt es in den Knoten, die Variablen oder Konstanten enthalten, einen Verweis auf den entsprechenden Tabelleneintrag zu speichern. Bei einer Funktionsauswertung erfolgt der Zugriff auf die aktuellen Werte stets über diesen Verweis. Im Beispiel, das in Fig. 2 dargestellt ist, enthält die Symboltabelle eine Konstante eps, die einen Zeiger auf einen Wert "8" enthält. Ein weiterer Eintrag in der Symboltabelle ist die Funktion f, die einen Zeiger auf die Wurzel des verallgemeinerten Binärbaums enthält. Weiterhin ist in der Symboltabelle zum Eintrag der Funktion f ein Zeiger auf eine verkettete Liste enthalten, die die Variablen der Funktion f enthält. Diese Variablen x, y und z werden auch im verallgemeinerten Binärbaum verwendet. Ebenso wird im verallgemeinerten Binärbaum die Konstante eps verwendet, die ihre Repräsentation über einen Zeiger auf der Symboltabelle findet, wo wiederum ein Zeiger zu dem tatsächlich vorhandenen Wert "8" vorhanden ist. Ändert der Benutzer den Wert eps, so muß lediglich der Inhalt der Datenstruktur, auf die der zugehörige Symboltabelleneintrag verweist, geändert werden. Soll die Funktion f an einer Stelle (x0, y0, z0) ausgewertet werden, genügt es, wenn die Tabelleneinträge der unabhängigen Variablen auf die entsprechenden Werte verweisen.For this reason, in the method according to the invention, each identifier is managed centrally in a so-called symbol table. This symbol table contains the names of all functions, variables and constants defined by the user. Each table entry also contains type information and a reference to the associated data structure. Function entries also contain a reference to a list of their independent variables. Using the symbol table, it is sufficient to save a reference to the corresponding table entry in the nodes that contain variables or constants. In the case of a function evaluation, the current values are always accessed via this reference. In the example shown in FIG. 2, the symbol table contains a constant eps, which contains a pointer to a value "8". Another entry in the symbol table is the function f, which contains a pointer to the root of the generalized binary tree. Furthermore, the symbol table for the entry of the function f contains a pointer to a linked list which contains the variables of the function f. These variables x, y and z are also used in the generalized binary tree. Likewise, in the generalized binary tree, the constant eps is used, which is represented by a pointer on the symbol table, where a pointer to the actual value "8" is present. If the user changes the value eps, only the content of the data structure to which the associated symbol table entry refers must be changed. If the function f is to be evaluated at one point (x 0 , y 0 , z 0 ), it is sufficient if the table entries of the independent variables refer to the corresponding values.

Die in dem hier vorliegenden Ausführungsbeispiel beschriebenen Datenstrukturen geben eine Lösungsmöglichkeit zur Realisierung des erfindungsgemäßen Verfahrens an. Weiterhin sind auch andere Datenstrukturen denkbar, die ebenso zur Lösung des erfindungsgemäßen Verfahrens eingesetzt werden können.The in the present embodiment Data structures described provide a solution to implement the method according to the invention. Furthermore, other data structures are also conceivable that also used to solve the method according to the invention can be.

Nachfolgend wird die signifikante Verbesserung, die durch das erfindungsgemäße Verfahren ermöglicht wurde, beschrieben. In Fig. 3 sind dazu die Rechenzeiten graphisch dargestellt. Die Ordinate bezeichnet die Zeitdauer in Sekunden, die Abszisse enthält für verschiedene Prämissen drei Säulen, eine für die Ableitung nach der Vorwärtsmethode im eindimensionalen Fall, eine für die Ableitung nach der Vorwärtsmethode im mehrdimensionalen Fall und eine für die Ableitung nach der Rückwärtsmethode. Es werden nacheinander Funktionen mit 208, 1253 und 2089 Knoten getestet. Die nach dem Schrägstrich angegebene Zahl bezeichnet die Anzahl der Veränderlichen (Variablen), die jeweils 1, 5 oder 10 beträgt. Die Testfunktion mit 2089 Knoten wird zusätzlich mit 50 unabhängigen Variablen ausgewertet. Die Bearbeitungszeit wächst bei allen drei Implementierungen linear mit der Knotenzahl. Der Zusammenhang zwischen Rechenzeit und Anzahl der Variablem wird im folgenden für jede Implementierung getrennt diskutiert.The significant improvement made possible by the method according to the invention is described below. For this purpose, the computing times are shown graphically in FIG. 3. The ordinate denotes the time in seconds, the abscissa contains three columns for different premises, one for the derivation according to the forward method in the one-dimensional case, one for the derivation according to the forward method in the multidimensional case and one for the derivation according to the backward method. Functions with 208, 1253 and 2089 nodes are tested in succession. The number after the slash indicates the number of variables, which are 1, 5 or 10. The test function with 2089 nodes is also evaluated with 50 independent variables. The processing time increases linearly with the number of nodes in all three implementations. The relationship between computing time and the number of variables is discussed separately for each implementation below.

Die erste Implementierung der Vorwärtsmethode benötigt für jede Variable, d. h. für jede Ableitungsberechnung eine komplette Baumauswertung. Dementsprechend erhöht sich die Rechenzeit mit jeder zusätzlichen Variablen um den gleichen Betrag. Da bei jeder Baumauswertung sowohl Funktionswert, als auch Differentiationskomponenten berücksichtigt werden, dauert eine reine Funktionswertberechnung genau solange, wie die Berechnung von Funktionswert plus Ableitung. Der Quotient
The first implementation of the forward method requires a complete tree evaluation for each variable, ie for each derivative calculation. Accordingly, the computing time increases by the same amount with each additional variable. Since both function value and differentiation components are taken into account in each tree evaluation, a pure function value calculation takes exactly as long as the calculation of the function value plus derivative. The quotient

beträgt demnach n : 1, wobei n die Anzahl der Variablen ist.is therefore n: 1, where n is the number of variables.

In der zweiten Implementierung werden alle partiellen Ableitungen in einem Durchgang berechnet. Pro Variable wird deshalb in jedem Schritt eine Differentiationskomponente mitgeführt und aktualisiert. Die Anzahl der Variablen kann erst zur Laufzeit festgestellt werden. Aus diesem Grund muß der Speicher für diese Komponenten vor jeder Baumauswertung dynamisch belegt und anschließend wieder freigegeben werden. Die Verwaltung der vielen kleinen Speicherblöcke ist äußerst zeitaufwendig und erhöht bei wenigen Variablen die Laufzeit im Vergleich zum ersten Ansatz beträchtlich. Demzufolge liegen die Rechenzeiten bei wenigen Variablen deutlich über den Zeiten des ersten Ansatzes. Ab 10 Variablen sind jedoch erste Zeitvorteile erkennbar, bei 50 Variablen beträgt das Zeitverhältnis zwischen den beiden Ansätzen bereits 1 : 3. Der oben angegebene Quotient (2) beträgt hier ungefähr (3,2 + 0,17n) : 1.In the second implementation, all are partial Derivatives calculated in one pass. Per variable therefore a differentiation component in each step carried and updated. The number of variables can can only be determined at runtime. For this reason the memory for these components before each tree evaluation dynamically occupied and then released again. The management of the many small blocks of memory is extreme time-consuming and increases the runtime with a few variables considerable compared to the first approach. As a result the computing times for a few variables are significantly higher the times of the first approach. Above 10 variables are however first time advantages can be seen, with 50 variables this is Time ratio between the two approaches already 1: 3  quotient (2) given above is approximately here (3.2 + 0.17n): 1.

Mit Abstand am besten schneidet die Implementierung der Rückwärtsmethode ab. Der Aufwand für die Berechnung der Ableitungen ist weitgehend unabhängig von der Anzahl der Variablen. Anders als bei der Vorwärtsmethode wird hier bei der Auswertung eines Knotens der entsprechende Operator bzw. die entsprechende Bibliotheksfunktion lediglich einmal angewendet. Die Vorwärtsmethode dagegen verlangt in jedem Berechnungsschritt die Aktualisierung aller Differentiationskomponenten (mehrdimensionaler Ansatz) bzw. eine mehrfache Auswertung des Formelbaumes (eindimensionaler Ansatz). Die Berechnung von Ableitungen mit der Rückwärtsmethode erfolgt durch zweimaliges Durchlaufen des Formelbaumes. Soll lediglich der Funktionswert berechnet werden, genügt die einmalige Auswertung des Baumes. In diesem Fall halbiert sich die Rechenzeit. Der Laufzeitquotient beträgt dementsprechend 2 : 1.By far the best is the implementation of the Reverse method. The effort to calculate the Derivatives are largely independent of the number of Variables. Unlike the forward method, here the evaluation of a node, the corresponding operator or the corresponding library function only once applied. The forward method, on the other hand, requires everyone Calculation step updating all Differentiation components (multi-dimensional approach) or a multiple evaluation of the formula tree (one-dimensional Approach). The calculation of derivatives with the Reverse method is done by running the Formula tree. Only the function value should be calculated the single evaluation of the tree is sufficient. In this In this case, the computing time is halved. The term quotient is accordingly 2: 1.

In Bezug auf den Speicherplatzbedarf kann es zu großen Abweichungen zwischen der Vorwärts- und der Rückwärtsmethode kommen. Ausschlaggebend ist dabei die Struktur der eingelesenen Formelsysteme. Enthalten die Eingabedateien ausschließlich unabhängige, nicht verkettete Funktionen, so ist der Speicherbedarf bei beiden Methoden nahezu identisch.In terms of space requirements, it can be too big Deviations between the forward and the backward method come. The structure of the imported formula systems. Contain the input files exclusively independent, not linked functions, see above the memory requirement for both methods is almost identical.

Zusammenfassend kann somit im Hinblick auf Fig. 3 festgestellt werden, daß bei einer hohen Anzahl von Baumknoten, also Operationen, und einer großen Anzahl Variablen, gerade mittels Ableitung durch die Rückwärtsmethode eine vorteilhaft geringe Rechenzeitdauer festgestellt werden kann. Somit zeigt sich, daß das erfindungsgemäße Verfahren, ausgestaltet auf einem Rechner, in der Lage ist, die Rechenzeit der Differentiation von funktionalen Beschreibungen signifikant zu verkürzen. Zusätzlich wird, wie oben ausführlich dargelegt, die Realisierungzeit für die Berechnung der Ableitung drastisch reduziert. In summary, with regard to FIG. 3, it can be stated that with a large number of tree nodes, that is to say operations, and a large number of variables, an advantageously short computing time can be determined precisely by means of the derivation by the backward method. It can thus be seen that the method according to the invention, designed on a computer, is capable of significantly reducing the computing time for differentiating functional descriptions. In addition, as explained in detail above, the implementation time for calculating the derivative is drastically reduced.

Literatur:Literature:

[1] H. Fischer: Automatisches Differenzieren. In: Herzberger, J. (Hrsg.): Wissenschaftliches Rechnen, Kapitel 2, Berlin: Akademie, 1996.[1] H. Fischer: Automatic differentiation. In: Herzberger, J. (ed.): Scientific Computing, Chapter 2, Berlin: Academy, 1996.

[2] F. Bach, P. Domann, U. Weng-Beckmann: UNIX-Handbuch zur Programmentwicklung. Carl Hanser Verlag, München 1987.[2] F. Bach, P. Domann, U. Weng-Beckmann: UNIX handbook on Program development. Carl Hanser Verlag, Munich 1987.

[3] Alefeld, G.; Herzberger, J.: An Introduction to Interval Computations. Academic Press, New York 1983. ISBN 0-12-049820-0[3] Alefeld, G .; Herzberger, J .: An Introduction to Interval Computations. Academic Press, New York 1983. ISBN 0-12-049820-0

Claims (2)

1. Verfahren zur automatischen Differentiation auf einem Rechner, insbesondere zur Simulation elektronischer Schaltungen,
  • a) bei dem funktionale Beschreibungen zur Beschreibung des elektrischen Verhaltens von elektronischen Bauelementen als Rechenvorschrift in den Rechner eingegeben werden,
  • b) bei dem diese funktionale Notation als mindestens ein Binärbaum in dem Rechner abgespeichert wird und
  • c) bei dem der mindestens eine Binärbaum nach dessen Argumenten entweder mittels der Vorwärtsmethode oder mittels der Rückwärtsmethode differenziert wird.
1. Method for automatic differentiation on a computer, in particular for simulating electronic circuits,
  • a) in which functional descriptions for describing the electrical behavior of electronic components are entered into the computer as a calculation rule,
  • b) in which this functional notation is stored as at least one binary tree in the computer and
  • c) in which the at least one binary tree is differentiated according to its arguments either by means of the forward method or by means of the backward method.
2. Verfahren nach Anspruch 1, bei dem Ableitungswerte und/oder Funktionswerte an vorgebbaren Stellen automatisch berechnet werden unter Verwendung einer der folgenden Arithmetiken:
  • a) Realzahlarithmetik,
  • b) Realzahlarithmetik mit aneinandergeschachtelten Mantissen,
  • c) Intervallarithmetik und
  • d) Intervallarithmetik mit aneinandergeschachtelten Mantissen.
2. The method as claimed in claim 1, in which derivation values and / or function values are automatically calculated at predeterminable locations using one of the following arithmetics:
  • a) real number arithmetic,
  • b) real number arithmetic with nested mantissas,
  • c) interval arithmetic and
  • d) interval arithmetic with nested mantissas.
DE19710463A 1997-03-13 1997-03-13 Process for automatic differentiation on a computer, in particular for simulating electronic circuits Expired - Fee Related DE19710463C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19710463A DE19710463C2 (en) 1997-03-13 1997-03-13 Process for automatic differentiation on a computer, in particular for simulating electronic circuits
PCT/DE1998/000618 WO1998040828A1 (en) 1997-03-13 1998-03-03 Method for automatic differentiation in a computer, specially to simulate electronic circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19710463A DE19710463C2 (en) 1997-03-13 1997-03-13 Process for automatic differentiation on a computer, in particular for simulating electronic circuits

Publications (2)

Publication Number Publication Date
DE19710463A1 DE19710463A1 (en) 1998-09-24
DE19710463C2 true DE19710463C2 (en) 1999-02-25

Family

ID=7823292

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19710463A Expired - Fee Related DE19710463C2 (en) 1997-03-13 1997-03-13 Process for automatic differentiation on a computer, in particular for simulating electronic circuits

Country Status (2)

Country Link
DE (1) DE19710463C2 (en)
WO (1) WO1998040828A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8739137B2 (en) 2006-10-19 2014-05-27 Purdue Research Foundation Automatic derivative method for a computer programming language
US8281299B2 (en) 2006-11-10 2012-10-02 Purdue Research Foundation Map-closure: a general purpose mechanism for nonstandard interpretation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0193811A2 (en) * 1985-03-08 1986-09-10 International Business Machines Corporation Method for transforming switch level representation of a MOS circuit to a Boolean representation and method of simulating faults in a switch level representation of a MOS circuit by using its boolean representation
WO1995005626A2 (en) * 1993-08-13 1995-02-23 Philips Electronics N.V. A method for simulating distributed effects within a device such as a power semiconductor device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0193811A2 (en) * 1985-03-08 1986-09-10 International Business Machines Corporation Method for transforming switch level representation of a MOS circuit to a Boolean representation and method of simulating faults in a switch level representation of a MOS circuit by using its boolean representation
WO1995005626A2 (en) * 1993-08-13 1995-02-23 Philips Electronics N.V. A method for simulating distributed effects within a device such as a power semiconductor device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
F. Bach, P. Domann, U. Weng-Beckmann: Unix- Handbuch der Programmentwicklung, Carl Hanser Verlag, München 1987 *
G. Alefeld, J. Herzberger: An Introduction to Interval computations, Academic Press, New York 1983 *
H. Fischer: Automatisches Differenzieren in: Herzberger, J.: Wissenschaftliches Rechnen, Kap. 2, Berlin: Akademie, 1996 *

Also Published As

Publication number Publication date
DE19710463A1 (en) 1998-09-24
WO1998040828A1 (en) 1998-09-17

Similar Documents

Publication Publication Date Title
DE19860061B4 (en) System for combinatorial equivalence testing
EP0689694B1 (en) Process for the machine-generation of parallel processable command groups from a program for super-scalar microprocessors
EP0228480A1 (en) Process and apparatus for analysing control programmes
DE69532307T2 (en) Expression propagation for hierarchical net lists
DE2758830A1 (en) COMPUTING DEVICE
DE112018006540T5 (en) DYNAMIC REPLACEMENT OF A CALL TO A SOFTWARE LIBRARY WITH A CALL FROM AN ACCELERATOR
DE10127170A1 (en) Troubleshooting procedures and troubleshooting device
DE3507584C2 (en)
DE4327660C2 (en) Apparatus for manufacturing and manufacturing methods for a semiconductor integrated circuit device and electronic circuit device
EP4068138A1 (en) Method for splitting simulation models between a processor and an fpga
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
DE19710463C2 (en) Process for automatic differentiation on a computer, in particular for simulating electronic circuits
DE102012016610B4 (en) Real-time circuit simulation
DE2235802A1 (en) PROCEDURE AND EQUIPMENT FOR TESTING NONLINEAR CIRCUITS
EP1166215B1 (en) Method for the automatic retrieval of engineering data of systems
DE112018006331B4 (en) Test case generation device, test case generation method and test case generation program
EP1068580B1 (en) Method for comparing electric circuits
DE19924242C2 (en) Vector restoration with accelerated validation and refinement
EP2191338B1 (en) System for writing a simulation program
DE10003101A1 (en) Logic circuit delay restriction generation processing apparatus for logic synthesis, allocates delay restriction value to each hierarchy of logic circuit and outputs to memory for logic synthesis
DE4416143A1 (en) Process for designing pipeline stages in a computer-aided design system
DE102005023145B4 (en) Method for simulating and examining an electrical circuit and storage medium
EP0560342B1 (en) Method for debugging HDL-programs
EP3491517B1 (en) Signal flow-based computer program with direct feedthrough loops

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee