DE10030791A1 - Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed - Google Patents

Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed

Info

Publication number
DE10030791A1
DE10030791A1 DE10030791A DE10030791A DE10030791A1 DE 10030791 A1 DE10030791 A1 DE 10030791A1 DE 10030791 A DE10030791 A DE 10030791A DE 10030791 A DE10030791 A DE 10030791A DE 10030791 A1 DE10030791 A1 DE 10030791A1
Authority
DE
Germany
Prior art keywords
values
changed
instruction
programming
programming instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10030791A
Other languages
German (de)
Inventor
Ralf Ellermann
Frank Winzen
Karl-Heinz Dahle
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.)
Utimaco Safeware AG
Original Assignee
Utimaco Safeware 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 Utimaco Safeware AG filed Critical Utimaco Safeware AG
Priority to DE10030791A priority Critical patent/DE10030791A1/en
Publication of DE10030791A1 publication Critical patent/DE10030791A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Abstract

A basic instruction for programming the logic modules, is prepared on the basis of initialization of a set of characteristics and/or initial values. When the characteristics and/or the initial values are changed, they are brought directly into the basic instruction so that the newly generated instruction differs from the basic instruction, only through the characteristics and/or initial values to be changed.

Description

Die Erfindung betrifft ein Verfahren zur Erzeugung einer Programmieranweisung für program­ mierbare Logikbausteine, welche jeweils mit von Logikbaustein zu Logikbaustein variierbaren Kenn- und/oder Startwerten zu versehen sind.The invention relates to a method for generating a programming instruction for program mable logic modules, each of which can be varied from logic module to logic module Characteristic and / or start values are to be provided.

Bei der Programmierung von Logikbausteinen ist es wünschenswert, Kenn- und oder Startgrö­ ßen bzw. -werte in den programmierbaren Logikbaustein während des Programmierablaufes in einer Art und Weise einzubringen, daß die Eigenschaften des Programms, insbesondere in bezug auf das zeitliche Verhalten, nicht beeinträchtigt werden.When programming logic modules, it is desirable to have a parameter and or start size values or values in the programmable logic module during the programming process in such a way that the characteristics of the program, in particular in in terms of temporal behavior, not be affected.

Die Umsetzung logischer Verknüpfungen von Signalen innerhalb von programmierbaren Bau­ steinen hat seit der Entwicklung von GALs/PALs einen rapiden Fortschritt in Richtung hoch­ komplexer Bausteine gemacht. Es werden heute teilweise vordefinierte Unterschaltgruppen, wie Prozessorkerne, innerhalb solcher Bausteine zur Verfügung gestellt, so daß die Komplexi­ tät dieser Bausteine (z. B. FPGA, CPLD) bereits heute nur noch mit umfangreicher Entwick­ lungssoftware ausgenutzt werden kann. Bei dem Design von Signalverknüpfungen innerhalb der Bausteine ist das zeitliche Verhalten (Timing) von besonderer Wichtigkeit, da alleine die logische Verknüpfung keine umfassende Aussage über das tatsächliche Verhalten des pro­ grammierten Bausteines in der realen Schaltung zuläßt. Moderne Entwicklungssoftware bietet die Möglichkeit das zeitliche Verhalten im Rahmen von mathematischen Darstellungen in be­ stimmten definierten Betriebsgrenzen zu simulieren und somit eine 'worst case'-Aussage (An­ nahme der ungünstigsten Betriebsbedingungen) zu machen. Ein auf das Timing getrimmtes Logikdesign muss nach Änderung des Designs (z. B. Eingabe von geänderten Startwerten) erneut der kompletten Simulation des Timings unterzogen werden. Eine solche Entwicklungs­ software vollzieht die Umsetzung von der für den Menschen verständlichen Beschreibungs­ sprache in das eigentliche Programm, wobei unterschiedliche Stufen bei dieser Umsetzung durchlaufen werden. Bei der Einbindung von Kennwerten (Initialisierungswerte, Seriennum­ mern, Kryptoschlüssel, . . .) werden diese Werte mit in der Umsetzung des Designs von der für den Menschen lesbaren Form in die eigentliche Programmieranweisung berücksichtigt und können sich auf das Zeitverhalten (Timing) des Designs auswirken. Ist gefordert solche Kenn­ größen eineindeutig für jeden programmierbaren Logikbaustein festzulegen und in den Bau­ stein einzubringen, dann ist bislang dies durch für jeden Baustein erneute Anwendung der Entwicklungssoftware und Analyse des Zeitverhaltens (Timing) geschehen, was einen zusätzli­ chen Kostenfaktor in der Produktion/Entwicklung ausmacht.The implementation of logical links of signals within programmable construction steinen has made rapid progress towards high since the development of GALs / PALs complex building blocks. Today there are partially predefined sub-switching groups, like processor cores, provided within such building blocks, so that the complexi These modules (e.g. FPGA, CPLD) are already only available today with extensive development software can be used. When designing signal links within the building blocks, the temporal behavior (timing) is of particular importance, since only the logical link no comprehensive statement about the actual behavior of the pro grammed building block in the real circuit. Modern development software offers the possibility of temporal behavior in the context of mathematical representations in be agreed to simulate defined operating limits and thus a 'worst case' statement (An unfavorable operating conditions). One tuned for timing Logic design must be changed after changing the design (e.g. entering changed start values) be subjected to the complete simulation of the timing again. Such a development software implements the description that is understandable to humans speak into the actual program, with different stages in this implementation be run through. When integrating characteristic values (initialization values, serial number keys, crypto keys,. , .) these values are included in the implementation of the design by the for  human readable form is taken into account in the actual programming instruction and can affect the timing of the design. Such code is required sizes unambiguously for each programmable logic module and in the construction to bring in the stone, so far this has been the case by applying the Development software and analysis of time behavior (timing) happen, which is an additional the cost factor in production / development.

Angesichts der vorstehend beschriebenen Problematik hat die Erfindung die Aufgabe, ein Ver­ fahren zur Erzeugung einer Programmieranweisung für programmierbare Logikbausteine, wel­ che jeweils mit von Logikbaustein zu Logikbaustein variierbaren Kenn- und/oder Startwerten zu versehen sind, zu schaffen, mit dem es möglich ist, eineindeutige, nichtänderbare Kenn­ größen für jeden programmierbaren Logikbaustein so einzubringen, daß eine erneute Analyse des Zeitverhaltens (Timings) nicht mehr notwendig ist.In view of the problems described above, the invention has the task of ver drive to generate a programming instruction for programmable logic chips, wel che each with characteristic and / or start values that can be varied from logic module to logic module are to be provided, with which it is possible to create a unique, unchangeable identifier variables for each programmable logic module so that a new analysis the timing behavior is no longer necessary.

Die Erfindung löst diese Aufgabe durch den Gegenstand des Anspruches 1. Es wird auf der Basis eines Initialisierungssatzes von Kenn- und/oder Startwerten eine Grundprogrammier­ anweisung zur Programmierung der Logikbausteine erstellt und bei jeder Veränderung der Kenn- und/oder Startwerte werden diese direkt in die Grundprogrammieranweisung derart eingebracht, daß die neu generierte Programmieranweisung mit angepaßten Kenn- und/oder Startwerten sich nur durch die zu ändernden Kenn- und/oder Startwerte von der Grundpro­ grammieranweisung unterscheidet.The invention solves this problem by the subject matter of claim 1. It is based on the Basic programming based on an initialization set of characteristic and / or start values Instructions for programming the logic modules created and each time the Characteristic and / or start values are entered directly into the basic programming instructions introduced that the newly generated programming instruction with adapted identification and / or Starting values are only changed by the characteristic and / or starting values to be changed from the basic pro gramming instruction differs.

Vorteilhafte Ausführungsformen der Erfindung sind den Unteransprüchen zu entnehmen.Advantageous embodiments of the invention can be found in the subclaims.

Mit dem erfindungsgemäßen Verfahren ist es möglich, eineindeutige, nichtänderbare Kenn­ größen für jeden programmierbaren Logikbaustein wie oben beschrieben, so einzubringen, daß eine erneute Analyse des Zeitverhaltens (Timings) nicht mehr notwendig ist.With the method according to the invention, it is possible to have a unique, unchangeable characteristic sizes for each programmable logic module as described above, that a new analysis of the time behavior (timings) is no longer necessary.

Dies wird dadurch erreicht, daß die eigentliche Programmieranweisung, so wie sie für den Logikbaustein aus der Entwicklungssoftware generiert wird, in einer geeigneten zusätzlichen Programmumgebung (Produktionsumgebung) verändert wird (Patchen). Innerhalb dieser zu­ sätzlichen Produktionsumgebung werden die Kenngrößen berechnet/generiert und durch Patchen der Programmieranweisung an zuvor definierten Stellen in diese eingebracht. Um solche Stellen in der Programmieranweisung zu lokalisieren, müssen bei der Beschreibung des Grunddesigns bereits Vorkehrungen getroffen werden. Es hat sich als zweckmäßig gezeigt, die Kenngrößen durch Festlegung als Ausgang von Buffern, Multiplexern und/oder FlipFlops im Design zu berücksichtigen und dort mit einem Wert (z. B. 0 oder 1) vorzubesetzen. Aber auch der Einsatz anderer für den jeweiligen Baustein typischen Grundschaltungen kann als Instanz solcher Werte definiert werden. Diese Instanzen werden in der Grundprogrammieranweisung innerhalb der Produktionsumgebung mit Hilfe einer speziellen Software gefunden und in der Art geändert, daß an den Stellen der vorbesetzten Werte für die Kenngröße die geänderten Werte für speziell diesen Baustein eingetragen werden.This is achieved in that the actual programming instruction, as it is for the Logic module from the development software is generated in a suitable additional Program environment (production environment) is changed (patching). Within this too In the additional production environment, the parameters are calculated / generated and by Patching of the programming instruction at previously defined places. Around Locating such places in the programming instructions must be described in the description of the Basic designs have already been made. It has been shown to be useful Characteristics by defining the output of buffers, multiplexers and / or flip-flops in the Take design into account and assign a value there (e.g. 0 or 1). But also  the use of other basic circuits typical for the respective module can be used as an instance such values can be defined. These instances are in the basic programming instruction found within the production environment with the help of special software and in the Type changed so that the changed values at the places of the default values for the parameter Values for this block in particular are entered.

Durch die Anwendung der Erfindung wird es möglich, kostengünstig eine individuelle Darstel­ lung eines jeden programmierten Logikbausteins zu erreichen. Dies kann während der Pro­ duktion (Programmierung) der Logikbausteine erreicht werden, ohne kostenintensive Nach­ entwicklungsabläufe anzustoßen.The application of the invention makes it possible to cost-effectively produce an individual presentation to achieve each programmed logic module. This can be done during the pro production (programming) of the logic modules can be achieved without costly rework initiate development processes.

Nachfolgend wird die Erfindung anhand eines Ausführungsbeispiels unter Bezug auf die Zeich­ nungen näher beschrieben. Es zeigt:The invention based on an embodiment with reference to the drawing described in more detail. It shows:

Fig. 1 eine Logikzelle eines beispielhaften Logikbausteins; . Figure 1 shows a logic cell of an exemplary logic block;

Fig. 2 den Ablauf der Entwicklung zur Umsetzung eines vom Menschen lesbaren Grunddesigns in eine für den Logikbaustein verständliche Programmieranwei­ sung nach dem Stand der Technik; Fig. 2 shows the development process for implementing a human-readable basic design in a logic instruction understandable programming instruction according to the prior art;

Fig. 3 den Ablauf der Entwicklung zur Umsetzung eines vom Menschen lesbaren Grunddesigns in eine für den Logikbaustein verständliche Programmieranwei­ sung nach der Erfindung; und Figure 3 shows the sequence of development for implementing a human-readable reason designs in an understandable for the logic device Programmieranwei solution according to the invention. and

Fig. 4 eine beispielhafte Darstellung des Patchvorganges der Erfindung. Fig. 4 is an exemplary representation of the patching process of the invention.

Im folgenden wird zunächst am Beispiel der Initialisierung eines Buffers für einen Baustein der Firma QuickLogic die mögliche Vorgehensweise dargestellt. Die Struktur eines solchen Bau­ steins wird durch sogenannte Logikzellen (Logic Cells) bestimmt, deren Ein- und Ausgänge über Routingpfade miteinander verbunden werden können. Die Programmieranweisung be­ stimmt in diesem Fall, welche Ein- und Ausgänge miteinander verbunden werden, welche über die Bausteinanschlüsse nach außen geführt werden und welche mit Betriebsspannung (VCC) oder Massepotential (GND) verbunden werden.In the following, the initialization of a buffer for a block is used as an example QuickLogic presented the possible procedure. The structure of such a construction steins is determined by so-called logic cells (logic cells), their inputs and outputs can be connected to each other via routing paths. The programming instruction be in this case it is correct which inputs and outputs are connected to each other, which via the block connections are routed to the outside and which with operating voltage (VCC) or ground potential (GND).

Fig. 1 zeigt eine Logikzelle. Ein moderner Baustein hat heutzutage bis zu einige Tausend solcher Logikzellen. Fig. 1 shows a logic cell. A modern building block nowadays has up to several thousand such logic cells.

Die Logikzelle setzt sich aus Buffern (A und F), aus Multiplexern und aus einem FlipFlop zusammen. In dem Beispiel wird angenommen, daß am Ausgang F2 ein Bit für die Kenngröße in dem Baustein zur Verfügung stehen soll. Dies bedeutet, daß die Eingänge des Buffers so beschaltet sein müssen, daß z. B. eine logische '1' (somit VCC) an dem Ausgang anliegt. Da der Buffer mehrere Eingänge hat (F1 bis F6), müssen diese so mit Werten versehen werden, daß in der Gesamtberechnung der gewünschte Wert für die Kenngröße entsteht. In diesem Beispiel werden die Eingänge F1, F3, F5 so in die Berechnung einbezogen, wie sie anliegen (nicht invertiert), die anderen Eingänge werden invertiert. Wird der Defaultwert für das Bit der Kenngröße mit logisch '0' (GND) definiert, dann braucht in der Programmieranweisung allein der Wert eines Einganges geändert werden. Die folgende Anweisung aus der Programmieranweisung zeigt die Darstellung eines Buffers in einer bestimmten Region des Programmierfiles, der mit 'place up' Region bezeichnet wird.The logic cell consists of buffers (A and F), multiplexers and a flip-flop together. In the example it is assumed that a bit for the parameter at output F2 should be available in the block. This means that the inputs of the buffer are like this must be connected that z. B. a logical '1' (thus VCC) is present at the output. There the buffer has several inputs (F1 to F6), these must be assigned values, that the desired value for the parameter arises in the overall calculation. In this For example, inputs F1, F3, F5 are included in the calculation as they are present (not inverted), the other inputs are inverted. If the default value for the bit of Parameter defined with logic '0' (GND), then only needs in the programming instruction the value of an input can be changed. The following statement from the Programming instructions show the representation of a buffer in a certain region of the Programming files, which is called 'place up' region.

Es ist zu erkennen, daß im ersten Teil der Anweisung aus der Logikzelle A2 eine Zuweisung des Anschlusses F2 an den Term Q erfolgt, also als Ausgang des Buffers definiert wird. Der Eingang F1 wird mit dem Term A verknüpft. Hiermit wird der Bezug zu der Instanz hergestellt, die in der Designbeschreibung definiert ist, um dieses Kenngrößenbit zu beschreiben. Im zwei­ ten Teil wird der Ausgang (F2) dem Netz cie_dk_sdevkey[61] zugeordnet. In diesem Beispiel ist dies das Bit 61 der Kenngröße. Der Eingang wird auf logisch '0' gelegt und somit mit GND verbunden. Eine Änderung des Kenngrößenbits innerhalb dieser Region wird durch Ersetzen des Wortes GND durch VCC erfolgen.It can be seen that in the first part of the instruction from the logic cell A2 there is an assignment of the connection F2 to the term Q, that is to say is defined as the output of the buffer. Input F1 is linked to term A. This creates the reference to the instance that is defined in the design description in order to describe this characteristic bit. In the second part, the output (F2) is assigned to the network cie_dk_sdevkey [61]. In this example, this is bit 61 of the parameter. The input is set to logic '0' and thus connected to GND. The parameter bit within this region will be changed by replacing the word GND with VCC.

Es sind mehrere Regionen in der Programmieranweisung beschrieben, die nach entsprechen­ den Einträgen durchsucht werden müssen und entsprechend der Wertigkeit des betreffenden Kenngrößenbits geändert werden müssen. Several regions are described in the programming instructions, which correspond to the entries must be searched and according to the value of the concerned Characteristic bits have to be changed.  

Von gewisser Bedeutung ist, daß bereits in der Beschreibung des Grunddesigns die verwende­ te Instanz (hier im Beispiel der Buffer) so beschrieben wird, daß diese zum einen genau als Buffer realisiert wird (und nicht durch die Entwicklungssoftware dermaßen auf die Logikzellen abgebildet wird, daß keine Änderung mehr möglich ist) und zum anderen durch den Patchalgo­ rithmus anhand einer eindeutigen Benennung wiedergefunden werden kann.It is of some importance that use the already in the description of the basic design te instance (here in the example of the buffer) is described in such a way that on the one hand it is exactly as Buffer is realized (and not by the development software on the logic cells is shown that no more changes are possible) and secondly by the patch algo rhythm can be found using a clear designation.

Die Instanziierung von Multiplexern und FlipFlops wird im Prinzip in gleicher Weise erfolgen. Die Programmieranweisung kann jedoch unterschiedlich organisiert sein, wenn verschiedene Hersteller von programmierbaren Bausteinen betrachtet werden. Diese Darstellung ist auch abhängig von der Struktur des Bausteins und vom Aussehen der Logikzellen. Die Anwendung des Verfahrens kann jedoch generell immer erfolgen. Geändert wird die Patchanweisung.The multiplexers and flip-flops are instantiated in principle in the same way. However, the programming instruction can be organized differently if different Manufacturers of programmable devices can be considered. This representation is also depending on the structure of the block and the appearance of the logic cells. The application however, the procedure can generally always take place. The patch instruction is changed.

Fig. 2 zeigt den Ablauf der Entwicklung zur Umsetzung eines vom Menschen lesbaren Logik­ designs in eine für den Logikbaustein verständliche Programmieranweisung. Fig. 2 shows the sequence of development for implementing a human-readable logic designs into an understandable for the logic device programming instruction.

Es ist dargestellt, daß der Designflow über unterschiedliche Stufen von der Eingabe der logi­ schen Verknüpfungen der Signale und Anweisungen für den programmierbaren Logikbaustein bis zur Programmierung führt. Der zurückführende Pfeil mit der Bezeichnung 'Post-Layout Si­ mulationsdaten' zeigt, daß mit dem Ergebnis der Designentwicklung das Zeitverhalten (Timing) im Modul 'Simulation' nachvollzogen werden kann. Hierbei wird der eingerahmter Bereich 'Entwicklungssoftware' durch Tools unterstützt, die als Komplettlösung am Markt verfügbar sind. Eine Änderung von Abläufen innerhalb der Entwicklungssoftware ist nur durch die Her­ steller möglich und kann aufgrund der Komplexität und von Lizenzvorgaben nicht beliebig durch jedermann durchgeführt werden.It is shown that the design flow over different stages from entering the logi Linking the signals and instructions for the programmable logic module leads to programming. The return arrow labeled 'Post-Layout Si simulation data 'shows that with the result of the design development the timing behavior (timing) can be traced in the 'Simulation' module. This is the framed area 'Development software' supported by tools that are available on the market as a complete solution are. A change of processes within the development software is only by the manufacturer possible and cannot be arbitrary due to the complexity and license requirements be carried out by everyone.

Fig. 3 zeigt den Ablauf der Designentwicklung unter Berücksichtigung des Patchvorganges durch die Produktionsumgebung. Fig. 3 shows the process of design development taking into account the patching process by the production environment.

Die Erweiterung des Designflows durch die Produktionsumgebung wirkt sich nicht auf den Bereich der Entwicklungssoftware aus. Es wird vielmehr das Ausgangsprodukt für die Verän­ derung innerhalb der Produktionsumgebung herangezogen. Zweckmäßigerweise ist der Pro­ grammiervorgang selber als Bestandteil der Produktionsumgebung dargestellt, um sicherzu­ stellen, daß die geänderte Grundprogrammieranweisung auch tatsächlich in den program­ mierbaren Logikbaustein eingebracht wird. Dies macht bei der Einbringung von kryptographi­ schen Kenngrößen (Kryptoschlüssel) besonders Sinn, wenn diese Kenngrößen außerhalb der Produktionsumgebung nicht bekannt werden dürfen. The expansion of the design flow through the production environment does not affect the Development software. Rather, it becomes the starting product for the changes change within the production environment. The pro is expedient programming process itself represented as part of the production environment to ensure make sure that the changed basic programming instruction is actually in the program mable logic module is introduced. This is done when introducing cryptographi parameters (crypto key) make particular sense if these parameters are outside the Production environment must not be known.  

In Fig. 4 wird der Patchvorgang anhand eines Beispiels dargestellt.In FIG. 4, the patch process is illustrated by an example.

Der Patchvorgang setzt sich zusammen aus zwei Inputs (Grundprogrammieranweisung und generierte Kenngröße), einem Output (geänderte Programmieranweisung) und der eigentli­ chen Patchanweisung (Software). Im ersten Schritt wird die generierte Kenngröße dahinge­ hend untersucht, welche Bits sich vom Defaultwert in der Grundprogrammieranweisung unter­ scheiden. Alle anderen brauchen nicht geändert zu werden. Im nächsten Schritt wird Stelle für Stelle die Anweisung anhand der eindeutigen Benennung durchsucht. An den gefundenen Stellen wird die Software die Änderungen vornehmen, so daß die Wertigkeit der Kenngrößen­ stelle geändert wird. Fig. 4 zeigt den Ablauf in graphischer Darstellung.The patching process consists of two inputs (basic programming instruction and generated parameter), an output (changed programming instruction) and the actual patch instruction (software). In the first step, the generated parameter is examined to determine which bits differ from the default value in the basic programming instruction. All others do not need to be changed. In the next step, the statement is searched digit by digit using the unique designation. At the points found, the software will make the changes so that the value of the parameters is changed. Fig. 4 shows the process in a graphical representation.

Das Einbringen von Kenngrößen in einen programmierbaren Baustein kann zur Identifikation des Bausteins und somit der gesamten Schaltung auf die der Baustein aufgebracht ist, dienen. Dies wird z. B. durch die Einbringung einer Seriennummer erreicht, die nur einmal vergeben wird.The introduction of parameters into a programmable module can be used for identification of the module and thus the entire circuit to which the module is applied. This is e.g. B. achieved by introducing a serial number, which is only assigned once becomes.

Bei der Verwendung programmierbarer Logikbausteine für die Steuerung von Maschinen und Systemen können individuelle Systemparameter im programmierbaren Logikbaustein einge­ bracht sein.When using programmable logic modules for the control of machines and Systems can include individual system parameters in the programmable logic module be brought.

Weiterhin kann bei der Anwendung kryptographischer Berechnungen ein für diesen Baustein eigener Schlüssel (Kryptoschlüssel) eingebracht werden, der für die Berechnung kryptographi­ scher Verfahren innerhalb des Bausteins zur Verfügung steht und zweckmäßigerweise nicht ausgelesen werden kann. Bei der Anwendung von Verschlüsselungsverfahren spielt eine ver­ trauliche Initialisierungsgröße eine Rolle, die z. B. in Form eines Paßwortes oder einer PIN in das Verfahren mit eingeht. In jedem Fall trägt der Aufbewahrungsort dieser Initialisierungs­ größe zur Gesamtsicherheit des Systems bei. In Systemen ohne Benutzerkontrolle muß diese Initialisierungsgröße intern gespeichert werden. So werden Speichermöglichkeiten in angriffs­ geschützten Umgebungen zur Verfügung gestellt. Oder die zu schützende Größe wird batterie­ gestützt im nichtauslesbaren Verschlüsselungsbaustein gehalten und kann dort direkt zur An­ wendung kommen. Solche Lösungen sind entweder kostspielig oder aufgrund der Verwendung von Batterien/Akkus nicht überall einsetzbar.Furthermore, when using cryptographic calculations, one for this module own key (crypto key) is used, which is used for the calculation cryptographi is available and expediently not can be read out. When using encryption methods, a ver confidential initialization size a role that z. B. in the form of a password or a PIN in the procedure is included. In any case, the storage location bears this initialization size contributes to the overall security of the system. In systems without user control, this must Initialization size can be saved internally. So storage options are under attack protected environments. Or the size to be protected becomes a battery supported in the non-readable encryption module and can be accessed directly from there turn come. Such solutions are either expensive or due to use batteries cannot be used everywhere.

Die vorliegende Erfindung bietet für solche Anwendungszwecke eine ideale Alternative, die eingebettet in einen Standard-Entwicklungs- und Produktionsablauf kostengünstig und zeitge­ recht umgesetzt werden kann. The present invention provides an ideal alternative for such applications that embedded in a standard development and production process inexpensive and contemporary can be implemented quite well.  

Begriffsdefinitionendefinitions

Timing: Timing bezeichnet das zeitliche Verhalten von Signalen zueinander und die Laufzeit von Signalen auf Signalstrecken (Leitungen innerhalb und außerhalb von elektronischen Bausteinen).Timing: Timing refers to the temporal behavior of signals to each other and the Runtime of signals on signal paths (lines inside and outside of electronic components).

Worst case: Mit worst case ist die Annahme der ungünstigsten Betriebszustände beschrie­ ben. Bei der Bestimmung des Timingverhaltens von Signalen spielen technische Größen wie Temperatur, Betriebsspannung, Widerstand von Leitungen, Innen­ widerstand von Signalquellen und Signalsenken, Kapazitäten, etc. eine Rolle. Die Annahme der ungünstigsten Kombination aller berücksichtigten Betriebszu­ stände wird bei der 'worst case' Berechnung zugrundegelegt.Worst case: The worst case describes the assumption of the most unfavorable operating conditions ben. Technical factors play a role in determining the timing behavior of signals Values such as temperature, operating voltage, resistance of lines, inside resistance of signal sources and signal sinks, capacities, etc. matter. The assumption of the most unfavorable combination of all considered scores are used in the 'worst case' calculation.

Patchen: Mit Patchen wird die nachträgliche Änderung von Programmieranweisungen bezeichnet. Die Darstellung dieser Programmieranweisungen ist nicht mehr für die Behandlung durch den Menschen gedacht. Insbesondere wird durch das Patchen eine erneute Umwandlung der für den Menschen lesbaren Darstellung des Designs in die Programmieranweisung vermieden.Patching: Patching is the subsequent change of programming instructions designated. The representation of these programming instructions is no longer for the treatment thought by humans. In particular, the Patch a new transformation of the human readable representation of the design avoided in the programming instruction.

Produktionsumgebung: Die Produktionsumgebung stellt die programmtechnische Um­ setzung des Patchvorganges dar. Zweckmäßigerweise können innerhalb der Produktionsumgebung auch die einzubringenden Kenngrößen gene­ riert/berechnet werden.Production environment: The production environment represents the programmatic change setting the patch process. Expediently within the Production environment also the parameters to be introduced be calculated / calculated.

Designentry: Mit Designentry ist die Darstellung der logischen Verknüpfung von Signalen und der Anwendung von Bausteineigenschaften in einer Form gemeint, die für den Menschen lesbar und verständlich ist. Es wird neben der Möglichkeit das De­ sign mit einer bestimmten Wortsprache zu beschreiben auch die Eingabe von grafischen Darstellungen ermöglicht.Designentry: With Designentry is the representation of the logical connection of signals and the application of building block properties in a form meant for the Human readable and understandable. In addition to the possibility, the De to describe sign with a certain word language also the input of graphic representations.

Synthese: Die Synthese beschreibt eine Stufe der Designentwicklung in der die Entwick­ lungssoftware die Darstellung des Designs aus dem Designentry in eine nor­ mierte Darstellung überführt und grundlegende Strukturen von programmierba­ ren Logikbausteinen bereits berücksichtigt. Es wird innerhalb dieser Stufe der Designentwicklung ebenfalls die Schlüssigkeit der Darstellung des Designs durch die Mittel des Designentries überprüft (Syntax, Semantik). Synthesis: The synthesis describes a stage of design development in which the develop software the representation of the design from the design center into a nor transferred presentation and basic structures of programmable logic modules already taken into account. It will be within this level of Design development also the coherence of the representation of the design checked by means of the design center (syntax, semantics).  

Simulation: Die Ergebnisse aus der Synthese werden auf logischer Ebene simuliert. Hierzu wird das Verhalten der Signale bei angenommener Stimulierung dargestellt. Werden neben dem Ergebnis aus der Synthese auch die Informationen aus dem Place berücksichtigt (Post-Layout Simulationsdaten), kann das tatsächliche zeitliche und logische Verhalten des programmierbaren Logikbau­ steins simuliert werden.Simulation: The results of the synthesis are simulated on a logical level. For this the behavior of the signals is shown when stimulation is assumed. In addition to the result from the synthesis, the information from the Place taken into account (post-layout simulation data), that can actual temporal and logical behavior of the programmable logic construction be simulated.

Place Die Abbildung der Synthesedaten auf den programmierbaren Logikbaustein unter Berücksichtigung der bausteinspezifischen Eigenschaften wird in dieser Designstufe erreicht. Es wird neben der letztendlichen Programmieranweisung auch ein Satz von Daten erzeugt, der eine Simulation des zeitlichen Verhaltens des programmierbaren Logikbausteins ermöglicht (Post-Layout Simulationsda­ ten).Place The mapping of the synthesis data to the programmable logic module taking into account the block-specific properties in this Design level reached. It will be next to the final programming instruction also generates a set of data that simulates temporal behavior of the programmable logic module (post-layout simulation da th).

VCC: Anschluß an Betriebsspannung. Ein an VCC angeschlossener Signaleingang wird als logisch '1' interpretiert.VCC: connection to operating voltage. A signal input connected to VCC is interpreted as logical '1'.

GND: Anschluß an Massepotential. Ein an GND angeschlossener Signaleingang wird als logisch '0' interpretiert.GND: connection to ground potential. A signal input connected to GND is interpreted as logical '0'.

Claims (7)

1. Verfahren zur Erzeugung einer Programmieranweisung für programmierbare Logikbaustei­ ne, welche jeweils mit von Logikbaustein zu Logikbaustein variierbaren Kenn- und/oder Startwerten zu versehen sind, bei dem
  • - auf der Basis eines Initialisierungssatzes von Kenn- und/oder Startwerten eine Grundprogrammieranweisung zur Programmierung der Logikbausteine erstellt wird,
  • - bei jeder Veränderung der Kenn- und/oder Startwerte diese direkt in die Grundpro­ grammieranweisung derart eingebracht werden, daß die neu generierte Programmier­ anweisung mit angepaßten Kenn- und/oder Startwerten sich nur durch die zu än­ dernden Kenn- und/oder Startwerte von der Grundprogrammieranweisung unter­ scheidet.
1. A method for generating a programming instruction for programmable logic devices, which are each to be provided with characteristic values and / or start values which can be varied from logic device to logic device, in which
  • a basic programming instruction for programming the logic modules is created on the basis of an initialization set of characteristic and / or start values,
  • - With each change of the characteristic and / or start values, these are introduced directly into the basic programming instruction in such a way that the newly generated programming instruction with adapted characteristic and / or start values differs only by the characteristic and / or start values to be changed from Basic programming instructions differ.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Grundprogrammieranwei­ sung für den Logikbaustein mit einer Entwicklungssoftware generiert und in einer geeigne­ ten zusätzlichen Programmumgebung (Produktionsumgebung) hinsichtlich der Kenn- und/oder Startwerte verändert wird (patchen).2. The method according to claim 1, characterized in that the basic programming Solution for the logic module generated with a development software and in a suitable additional program environment (production environment) with regard to the and / or start values are changed (patching). 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die veränderbaren Start- und/oder Kennwerte berechnet/generiert und durch Patchen der Programmieranweisung an zuvor definierten Stellen in diese eingebracht werden.3. The method according to claim 1 or 2, characterized in that the changeable start and / or characteristic values are calculated / generated and by patching the programming instruction are introduced into these at previously defined locations. 4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Initialisierungssatz der Start- und/oder Kennwerte durch Festlegung von Ausgangswerten von Bausteinelementen/Basisschaltungen, vorzugsweise Buffern, Multiplexern und/oder FlipFlops, des Logikbausteins im Design berücksichtigt und mit einem vorgegebenen Wert vorbesetzt werden.4. The method according to any one of the preceding claims, characterized in that the Initialization set of the start and / or characteristic values by defining output values of block elements / basic circuits, preferably buffers, multiplexers and / or FlipFlops, the logic module considered in the design and with a specified value be preset. 5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die Ausgangswerte der Bau­ steinelemente in der Programmieranweisung innerhalb der Produktionsumgebung mit Hilfe einer Änderungsroutine ermittelt und in der Art geändert werden, daß an den Stellen der vorbesetzten Werte für die Kenngröße die geänderten Werte für speziell diesen Bau­ stein eingetragen werden.5. The method according to claim 4, characterized in that the initial values of the construction stone elements in the programming instruction within the production environment with the help  a change routine determined and changed in such a way that at the points the preset values for the parameter, the changed values for this particular construction stone are entered. 6. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Patchvorgang aus zwei Inputs (Grundprogrammieranweisung und generierte Kenngröße), einem Output (geänderte Programmieranweisung) und einer Patchanweisung besteht.6. The method according to any one of the preceding claims, characterized in that the Patch process from two inputs (basic programming instruction and generated parameter), an output (changed programming instruction) and a patch instruction. 7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die generierte Kenngröße in einem ersten Schritt dahingehend untersucht wird, welche Stel­ len der Werte sich vom Defaultwert in der Grundprogrammieranweisung unterscheiden, wobei nur diese Stellen geändert werden, und daß in einem nächsten Schritt Stelle für Stelle die Anweisung anhand von im Grunddesign formulierten eindeutigen Benennungen durchsucht wird, wobei an den gefundenen Stellen Änderungen vorgenommen werden, so daß die Wertigkeit der Kenngrößenstelle geändert wird.7. The method according to any one of the preceding claims, characterized in that the generated parameter is examined in a first step to determine which position len the values differ from the default value in the basic programming instructions, only these places are changed, and that in a next step place for Make the instruction using clear terms formulated in the basic design is searched, whereby changes are made to the places found, so that the value of the parameter is changed.
DE10030791A 2000-06-29 2000-06-29 Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed Withdrawn DE10030791A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10030791A DE10030791A1 (en) 2000-06-29 2000-06-29 Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10030791A DE10030791A1 (en) 2000-06-29 2000-06-29 Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed

Publications (1)

Publication Number Publication Date
DE10030791A1 true DE10030791A1 (en) 2002-01-17

Family

ID=7646654

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10030791A Withdrawn DE10030791A1 (en) 2000-06-29 2000-06-29 Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed

Country Status (1)

Country Link
DE (1) DE10030791A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946478A (en) * 1997-05-16 1999-08-31 Xilinx, Inc. Method for generating a secure macro element of a design for a programmable IC
US6071317A (en) * 1997-12-11 2000-06-06 Digits Corp. Object code logic analysis and automated modification system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946478A (en) * 1997-05-16 1999-08-31 Xilinx, Inc. Method for generating a secure macro element of a design for a programmable IC
US6071317A (en) * 1997-12-11 2000-06-06 Digits Corp. Object code logic analysis and automated modification system and method

Similar Documents

Publication Publication Date Title
EP3012761B1 (en) Protection of software models
DE19781804B4 (en) Device for simulating a real-time process control
DE112015002183T5 (en) Computer-implemented system and method for translating verification commands of an electronic design
DE19815534A1 (en) Digital circuit design and simulation method for computer hardware
DE102013104320A1 (en) Flexible distribution of the I / O channels of a hardware component
DE10333087A1 (en) Process for the automatic decomposition of dynamic system models into sub-models
DE10296464T5 (en) Method and device for validating the design of complex integrated circuits
EP1127323A1 (en) Method and arrangement for comparing a first characteristic with given characteristics of a technical system
DE102006062555A1 (en) Control device monitoring method for research and development field, involves communicating monitoring addresses within address domain to monitoring service, and copying address contents of monitoring addresses in preset address
EP3379351A1 (en) Method for operating an automation device and automation device
EP3232327B1 (en) Method for testing a control program of a control unit in a simulation environment on a computer
EP3502974A1 (en) Method for realizing a neural network
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
EP1005215B1 (en) Method and system for editing configuration data in telecommunications systems
DE10333088A1 (en) Method for providing access to the internal signals of a dynamic system model from outside regarding the modeling environment
DE10030791A1 (en) Programming instruction generation method for programmable logic modules, involves newly generating programming instruction, when characteristics and/or initial values used for instruction generation, are changed
EP2642359A1 (en) Device for developing and method for creating a programm for an electronical control unit
DE10057575A1 (en) Method for automatic software regeneration applies an abstract model to the properties of an application made possible by software converting these into software mechanically.
EP2191338B1 (en) System for writing a simulation program
DE10211953A1 (en) System and method for project planning with an object tree consisting of hierarchically hierarchical objects
DE102018009143A1 (en) Method for authenticating a device by a host system
DE102020202723A1 (en) Automatic code generation method and computer readable storage medium storing an automatic code generation program
Fortune et al. Systems analysis of failures as a quality management tool
DE4408106A1 (en) Method of simulating a circuit which is described in EDIF using a VHDL simulator on a computer
DE60114416T2 (en) DEVICE AND METHOD FOR EVALUATING ALGORITHMS

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal