EP1053513A1 - Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit - Google Patents

Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit

Info

Publication number
EP1053513A1
EP1053513A1 EP99907270A EP99907270A EP1053513A1 EP 1053513 A1 EP1053513 A1 EP 1053513A1 EP 99907270 A EP99907270 A EP 99907270A EP 99907270 A EP99907270 A EP 99907270A EP 1053513 A1 EP1053513 A1 EP 1053513A1
Authority
EP
European Patent Office
Prior art keywords
logic circuit
programming
programmable logic
data
processing operations
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
EP99907270A
Other languages
German (de)
French (fr)
Inventor
Ludwig Schweiger
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
Publication of EP1053513A1 publication Critical patent/EP1053513A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC

Definitions

  • the present invention relates to a method for processing data according to a predetermined processing function with the aid of a programmable logic circuit, the processing function being able to be represented as a combination of several groups of partial operations. Furthermore, the present invention relates to a corresponding device for performing this method.
  • circuitry functions can be implemented in terms of both hardware and software. This means that, for example, digital filters, algorithms, complex arithmetic logic units and the like can either be implemented by a hardware circuit or can be simulated by appropriate software.
  • Possible hardware solutions are, for example, integrated circuits (ICs), application-specific integrated circuits (Application Specific Integrated Circuits, ASICs) or user-programmable gate arrays (Field Programmable Gate Arrays, FPGAs).
  • ICs integrated circuits
  • ASICs Application Specific Integrated Circuits
  • FPGAs Field Programmable Gate Arrays
  • Hardware solutions achieve high data throughput, but require a large chip area, which increases the costs for the selected hardware accordingly.
  • the hardware solutions are generally limited to only one functionality, i. H. the hardware solutions cannot be used for different functionalities and are therefore inflexible.
  • the present invention therefore has for its object to provide a method for processing data to provide in accordance with a specified differently surrounded processing function (functionality) and a corresponding device, while through the use of hardware, a high throughput and a high speed to provide a high flexibility in terms of functionality is guaranteed.
  • this object is achieved by a method having the features of claim 1 and an apparatus having the features of claim 10.
  • a programmable logic circuit in particular a field programmable gate array (FPGA) is used to carry out a predetermined processing function, ie to carry out a specific functionality.
  • This logic circuit can be reprogrammed, ie reconfigured.
  • functionality blocks of this programmable logic circuit are changed during operation, ie during the execution of a predetermined processing function, by successive reprogramming of the logic circuit. If a certain functionality block has been programmed, the group of operations corresponding to this functionality block is first carried out and, if necessary, intermediate results are stored. A new functionality block is then programmed, the previously determined intermediate results and possibly further data being processed in accordance with a group of operations corresponding to this new functionality block.
  • the programmable logic circuit can be reprogrammed several times to carry out a plurality of functionality blocks, the individual functionality blocks being matched to one another in such a way that they result in the desired processing function in combination, so that after the programming of the last functionality block and execution of the corresponding last group of processing 4 processing operations are output by the programmable logic circuit data which correspond to the input data of the logic circuit processed according to the predetermined processing function.
  • the structure of digital filters, algorithms or complex arithmetic-logic microprocessor units is predestined for the application of this new technology.
  • the present invention corresponds to a combination of the two approaches described at the outset, since the reprogramming of the programmable logic circuit to achieve different functionality blocks is preferably computer-controlled, depending on the corresponding stored programming data.
  • the programmable logic circuit By using the programmable logic circuit as a hardware element, a high data throughput and a high processing speed with relatively low chip costs are guaranteed. Since the reprogramming of the programmable logic circuit is advantageously carried out under software control, a sufficiently high degree of flexibility is also ensured, since the programming data required in this case for reprogramming can be easily changed or adapted depending on the functionalities desired in each case.
  • Fig. 2 shows the exemplary structure of a digital filter
  • FIG. 1 shows illustrations for realizing the digital filter function shown in FIG. 2 when using the method according to the present invention.
  • a programmable logic circuit 1 shown in FIG. 1 is proposed, which is reprogrammed in order to carry out different functionalities, each of which corresponds to specific groups of processing operations.
  • Programmable components or logic circuits have been known for a long time.
  • a group of such logic circuits that can be programmed for specific applications are so-called field programmable gate arrays (FPGAs).
  • FPGAs field programmable gate arrays
  • Logic circuits of this type have an internal structure with a large number of primitive cells, which consist of logic gates, flip-flops and in some cases also of simple programmable components (programmable logic devices, PLDs).
  • FPGAs can have several 100 connections or pins and several 1000 gate equivalents and are therefore suitable for the implementation of very complex circuits and for the execution of correspondingly complex processing functions or functionalities.
  • the FPGAs consist of a large number of primitive cells. Depending on the desired function of the logic circuit, these primitive cells must be wired accordingly, ie the connections between the individual cells must be defined. This is done with the aid of programming, the desired configuration of the wiring generally being stored in a random access memory (RAM) on the FPGA chip. Depending on the configuration thus saved, the logic circuit then carries out the desired functionality.
  • RAM random access memory
  • FIG. 1 also shows the programming device 3 for programming the logic circuit 1 and the RAM memory 21 for storing the wiring configuration of the logic circuit 1 that is currently specified by the programming device 3.
  • the programmable logic circuit 1 is configured such that it to a certain number of input data x ⁇ a pre-added functionality or processing function, z. B uses a digital filter function. This functionality can be seen as a combination of several groups of processing operations, e.g. B. multiplications and additions are shown. Accordingly, according to FIG.
  • the programming device 3 is controlled by a central control device 2, which is generally formed by a computer, in such a way that the programming device 3 in the memory 21 successively defines wiring configurations for the programmable logic circuit 1, which assign the successive groups of processing operations or processing procedures.
  • the device shown in FIG. 1 has storage means in which, depending on the individual operations to be carried out, the respectively required wiring configurations are stored. These storage means can be configured, for example, in the form of configuration files 4, so that the programming device 3 simply by loading the corresponding stored wiring configuration (download) and storing this wiring configuration in the memory 21 is the prerequisite for carrying out the corresponding functionality block or appropriate processing operations creates.
  • a further memory 5 for. B. a read-only memory (ROM) is possible, in which the respectively required wiring configurations or the corresponding programming data are stored.
  • ROM read-only memory
  • the input or reception data x are to be processed in accordance with a specific processing function (functionality).
  • the programmable logic circuit 1 can 7 undergo digital data x a digital filter function, so that the output data output by the logic circuit 1 y correspond to the filtered input data x.
  • the Lo ⁇ gikscrien 1 functionality to be performed is made up of a combination of several groups of Swisssoperatio ⁇ NEN or partial functionalities together, which are known to the controller.
  • the central control device 2 controls the programming device 3 such that it successively reads programming data by accessing the memory means 4, 5 in order to program the logic circuit 1 in such a way that the aforementioned individual groups of processing operations are carried out in succession (or also in parallel) become. This is done by storing corresponding configuration data in the memory 21, so that the logic circuit 1 initially has, for example, a first partial functionality, such as, for. B. performing multiplications, and then a second sub-functionality, such as. B. performing additions. After a partial functionality has been carried out, the logic circuit 1 stores intermediate results in a buffer memory 6, so that these are available for the subsequent partial functionalities or processing operations of the logic circuit 1. After the control device 2 has activated the programming device 3 for programming the logic circuit 1 in accordance with the last functionality to be executed, the logic circuit 1 outputs the desired output data y.
  • the buffer memory 6 can also be designed in the form of a corresponding memory area within the logic circuit 1, which is indicated by dashed lines in FIG. 1, the content of this memory area being adaptable by reprogramming the logic circuit, which increases the speed and the data throughput .
  • the input data x in the form of Jerusalemeinan ⁇ of the following samples. This means that the previously described optimizations Umprogra the logic circuit 1 for each ⁇ each sample are carried out, each environmental programming must be performed within a sampling period of the input data x.
  • the reprogramming or reconfiguration speed of the programmable logic circuit 1 determines its maximum sampling rate. This means that smaller circuit configurations are advantageous for high data throughput. Accordingly, digital filters, in particular, can be implemented very well with the aid of the device according to the invention due to its simple structure.
  • the memory means 4/5 preferably contain all programming or configuration data that are required for carrying out certain functionalities or partial functionalities of the logic circuit 1.
  • the central control device 2 can accordingly set different overall functionalities or overall processing functions of the logic circuit 1 by correspondingly controlling the programming device 3.
  • the control device 2 can reprogram the programmable logic circuit 1 with the aid of the programming device 3 in order to implement different digital filter functions with different filter coefficients. That is, not only can the logic circuit 1 be reprogrammed during the execution of a specific processing function, but the overall functionality of the programmable logic circuit 1 can also be variable. This change in the overall functionality of the logic circuit 1 can take place in particular as a function of a corresponding control signal s which is supplied to the control device 2.
  • FIG. 2 shows an example of the structure of a recursive digita ⁇ len second order filter.
  • the filter shown in Figure 2 to ⁇ summarizes two shift registers 15, 16, three adders 12 to 14 and five multipliers 7 - 11.
  • the digital filter shown in Figure 2 is associated with the following transfer function G (z).:
  • the digital filter function shown in FIG. 2 is carried out using the method according to the invention as shown in FIGS. 3a and 3b.
  • the programmable logic circuit which is to implement the digital filter function shown in FIG. 2 is first activated in such a way that the logic circuit performs the multiplications for the calculation of the corresponding output value, ie the logic circuit is programmed in such a way that for example, the multiplier circuit shown in FIG. 3a is generated with the coefficients a 0 - b 2 .
  • Registers 17, 18 are provided for the forward branch, while only one shift register 19 is provided for the feedback branch.
  • the logic circuit 1 shown in FIG. 1 is designed such that output values y A calculated by it are always stored in the buffer memory 6, so that, according to FIG.
  • Multiplier circuit can also be modified such that the function of the shift register 19 by one of the two shift 10 registers 17 and 18 is perceived.
  • the shift registers 17-19 according to FIG. 3a fulfill the function of the shift registers 15 and 16 shown in FIG. 2.
  • the multipliers 9-11 correspond to the multipliers shown in FIG. 2, the output data of these multipliers being stored in the buffer memory 6 as an intermediate result become.
  • the logic circuit shown in FIG. 1 is then reconfigured or reprogrammed in such a way that the logic circuit 1 performs the function of an adder for adding the data stored in the buffer memory 6.
  • This functionality of the logic circuit 1 is shown in Fig. 3b.
  • the intermediate results of the individual multipliers 7-11, which are stored in the memory 6 in FIG. 3a, are individually fed to an adder 20, which delivers the corresponding output value ⁇ as the output signal, where:
  • y 1 ao * x 1 + a ⁇ * x i - ⁇ + a 2 * x 1 - 2 + b ⁇ * y i - ⁇ + b 2 * y x - 2 .
  • the output value of the adder 20 is at the same time stored again in the buffer memory 6, so that it is available for subsequent multiplication operations when a new sample value x 1 + i is present for the multiplier circuit shown in FIG. 3a.
  • the digital filter function shown in FIG. 2 is accordingly implemented in that the overall functionality of the logic circuit 1 is divided into two sub-functionalities, namely on the one hand the execution of multiplication operations and on the other hand the implementation of addition operations. These two sub-functionalities are coordinated with one another in such a way that after the last sub-functionality has been carried out, ie according to FIG. 11 on, processed input data are output as output data y.
  • the present invention can of course also be used to implement any other functionalities or processing functions.
  • a special application is the implementation of encryption or decryption functions.
  • completely different (encryption or decryption) algorithms can be carried out by suitable programming of the programmable logic circuit, which algorithms are executed either sequentially or in parallel in the logic circuit 1.
  • the control device 2 shown in FIG. 1 can be supplied with a key code via the control signal s, which tells the control device 2 in what order the individual parallel or serial conversions are to be processed.
  • corresponding reprogramming of the programmable logic circuit 1 can be used to carry out encryption or decryption corresponding to the respective key code s, which are composed by combining the individual partial functionalities of the programmable logic circuit 1, which in turn depend on the programmable logic circuit 1 of the configuration data stored in the memory 21 by the programming device 3.
  • the present invention is also suitable for realizing complex arithmetic logic functions.
  • Arithmetic-logical microprocessor units ALUs
  • ALUs Arithmetic-logical microprocessor units
  • These can be arithmetic integer operations, logical operations, comparison operations, or shift operations, etc.
  • RISC processors Reduced Instruction Set Computer
  • CISC processors Complex Instruction Set Computer
  • a programmable logic circuit which is reprogrammed during the execution of the desired processing function to process different groups of processing operations, parts of the ALU or the entire ALU can be optimized with regard to one processing operation or several processing operations.
  • ALUs, additions, multiplications etc. occur analogously to the example of digital filter functions described above.
  • the programmable logic circuit can thus first be programmed to carry out this functionality in such a way that the logic circuit functions as an adder and stores the intermediate result (internal or external).
  • the programmable logic circuit is then reprogrammed such that it performs the function of a multiplier.
  • the logic circuit accesses the temporarily stored results and possibly further data or parameters and carries out the desired multiplication.

Abstract

The invention relates to a method and a device to carry out a given processing function or functionality which is to be used for data (x) to be processed. The relevant processing function can be represented as a combination of several groups of processing operations or partial functionalities, whereby a reprogrammable logical circuit (1), especially a field programmable gate array, is successively programmed in such a way that the different groups of processing operations are separately executed by the programmable circuit (1) and are combined in such a way that the last executed group of processing functions will render the expected final result, namely data (x) processed according to the predetermined processing function as output data (y).

Description

Beschreibungdescription
Verfahren und Vorrichtung zum Verarbeiten von Daten gemäß einer vorgegebenen Verarbeitungsfunktion mit Hilfe einer pro- gra mierbaren LogikschaltungMethod and device for processing data according to a predetermined processing function with the aid of a programmable logic circuit
Die vorliegende Erfindung betrifft ein Verfahren zum Verarbeiten von Daten gemäß einer vorgegebenen Verarbeitungsfunktion mit Hilfe einer programmierbaren Logikschaltung, wobei sich die Verarbeitungsfunktion als Kombination mehrerer Gruppen von Teiloperationen darstellen läßt. Des weiteren betrifft die vorliegende Erfindung eine entsprechende Vorrichtung zur Durchführung dieses Verfahrens.The present invention relates to a method for processing data according to a predetermined processing function with the aid of a programmable logic circuit, the processing function being able to be represented as a combination of several groups of partial operations. Furthermore, the present invention relates to a corresponding device for performing this method.
Bekanntermaßen können schaltungstechnische Funktionen sowohl hardwaremäßig als auch softwaremäßig realisiert werden. Dies bedeutet, daß beispielsweise digitale Filter, Algorithmen, komplexe arithmetische logische Einheiten und dergleichen entweder durch eine hardwaremäßige Schaltung realisiert oder durch eine entsprechende Software simuliert werden können.As is known, circuitry functions can be implemented in terms of both hardware and software. This means that, for example, digital filters, algorithms, complex arithmetic logic units and the like can either be implemented by a hardware circuit or can be simulated by appropriate software.
Als Hardwarelösung kommen beispielsweise integrierte Schaltungen (Integrated Circuits, ICs), anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuits, ASICs) oder anwenderprogrammierbare Gate-Arrays (Field Programmable Gate Arrays, FPGAs) in Frage. Hardwarelösungen erzielen zwar einen hohen Datendurchsatz, benötigen jedoch eine große Chipfläche, was entsprechend die Kosten für die gewählte Hardware erhöht. Des weiteren sind die Hardwarelösungen in der Regel auf lediglich eine Funktionalität festgelegt, d. h. die Hardwarelösungen können nicht für unterschiedliche Funktionalitäten eingesetzt werden und sind daher unflexibel.Possible hardware solutions are, for example, integrated circuits (ICs), application-specific integrated circuits (Application Specific Integrated Circuits, ASICs) or user-programmable gate arrays (Field Programmable Gate Arrays, FPGAs). Hardware solutions achieve high data throughput, but require a large chip area, which increases the costs for the selected hardware accordingly. Furthermore, the hardware solutions are generally limited to only one functionality, i. H. the hardware solutions cannot be used for different functionalities and are therefore inflexible.
Um dieses Problem zu beseitigen, werden beispielsweise mit Hilfe eines ASIC verschiedene Schaltungen auf dem ASIC-Chip implementiert, die jeweils unterschiedliche Funktionalitäten ausführen. Zwischen den einzelnen Funktionalitäten kann perma- 2 nent, semi-permanent oder automatisch abhängig von der jewei¬ ligen Anforderung (beispielsweise mit Hilfe geeigneter Detek¬ tor- und Auswerteschaltungen) umgeschaltet werden, so daß mit Hilfe eines Chips bezüglich der an die Pins des ASIC-Chips an- gelegten Eingangssignale unterschiedliche Verarbeitungs¬ funktionen oder Funktionalitäten durchgeführt werden können. Da Hardwarelösungen in der Regel schnell sind, werden sie bevorzugt bei Hochgeschwindigkeitsanwendungen eingesetzt. Bei¬ spiele hierfür sind im Bereich der Kommunikationsnetze bei- spielsweise die AAL-Verkehrsklassenauswertung in ATM- Kommunikationsnetzen (Asynchronus Transfer Mode) oder Multi- protokoll-Auswerteschaltungen. Das Vorsehen unterschiedlicher Funktionalitäten auf ein und demselben ASIC-Chip führt jedoch zwangsläufig zu einem gesteigerten Flächenbedarf und damit zu höheren Chipkosten.In order to eliminate this problem, various circuits are implemented on the ASIC chip, for example with the help of an ASIC, each carrying out different functionalities. Perma- 2 nent, semi-permanent or automatically depending on the jewei ¬ time request (for example, with the aid of suitable Detek ¬ gate and evaluation circuits) are switched, so that with respect to the applied to the pins of the ASIC chip Toggle input signals different by a chip ¬ processing functions or functionalities can be performed. Since hardware solutions are usually fast, they are preferred for high-speed applications. In ¬ this play are in the field of communication networks accession game, the AAL traffic class analysis in ATM communication networks (Asynchronous Transfer Mode) or Multi-protocol-evaluation circuits. However, the provision of different functionalities on one and the same ASIC chip inevitably leads to an increased space requirement and thus to higher chip costs.
Im Gegensatz zu Hardwarelösungen bieten Softwarelösungen die größtmögliche Flexibilität bei der Implementierung unterschiedlicher Funktionalität oder Verarbeitungsfunktionen. Durch entsprechende Anpassung der Software können die softwaremäßig implementierten Funktionalitäten relativ einfach den entsprechenden Bedürfnissen angepaßt werden. So können beispielsweise die Koeffizienten einer digitalen Filterfunktion sehr einfach abgewandelt werden, um beispielsweise aus einem Tiefpaßfilter einen Bandpaßfilter usw. zu machen. Dies trifft sowohl auf nicht-rekursive Filter (FIR-Filter, Finite Impulse Response) als auch auf rekursive Filter (IIR-Filter, Infinite Impulse Response) zu. Ebenso lassen sich Algorithmen oder beliebige andere arithmetisch-logische Operationen in Software realisieren. Softwarelösungen sind ein relativ kostengünstiges Werkzeug, wenn die gewünschten Funktionen nicht beliebig schnell sein müssen. Erfordern die gewünschten Funktionen jedoch einen höheren Datendurchsatz und dementsprechend höhere Verarbeitungsgeschwindigkeiten, ist der Einsatz schnellerer Plattformen für den Ablauf der Software erforderlich, so daß bei höheren Geschwindigkeiten relativ schnell Kosten- und Technologiegrenzen erreicht werden. Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Verarbeiten von Daten gemäß einer vorgege¬ benen Verarbeitungsfunktion (Funktionalität) sowie eine ent- sprechende Vorrichtung zu schaffen, wobei durch den Einsatz von Hardware ein hoher Datendurchsatz und eine hohe Geschwindigkeit bei gleichzeitiger Bereitstellung einer hohen Flexibilität bezüglich der Funktionalität gewährleistet ist.In contrast to hardware solutions, software solutions offer the greatest possible flexibility when implementing different functions or processing functions. By appropriately adapting the software, the functionalities implemented in software can be adapted relatively easily to the corresponding needs. For example, the coefficients of a digital filter function can be modified very easily, for example, to turn a low-pass filter into a band-pass filter, etc. This applies to both non-recursive filters (FIR filters, Finite Impulse Response) and recursive filters (IIR filters, Infinite Impulse Response). Algorithms or any other arithmetic-logic operations can also be implemented in software. Software solutions are a relatively inexpensive tool if the desired functions do not have to be as fast as possible. However, if the desired functions require higher data throughput and correspondingly higher processing speeds, the use of faster platforms is necessary for the software to run, so that costs and technology limits are reached relatively quickly at higher speeds. The present invention therefore has for its object to provide a method for processing data to provide in accordance with a specified differently surrounded processing function (functionality) and a corresponding device, while through the use of hardware, a high throughput and a high speed to provide a high flexibility in terms of functionality is guaranteed.
Diese Aufgabe wird gemäß der vorliegenden Erfindung durch ein Verfahren mit den Merkmalen des Anspruches 1 sowie eine Vorrichtung mit den Merkmalen des Anspruches 10 gelöst.According to the present invention, this object is achieved by a method having the features of claim 1 and an apparatus having the features of claim 10.
Gemäß der vorliegenden Erfindung wird zur Durchführung einer vorgegebenen Verarbeitungsfunktion, d. h. zur Ausführung einer bestimmten Funktionalität, eine programmierbare Logikschaltung, insbesondere ein Field Programmable Gate Array (FPGA) , eingesetzt. Diese Logikschaltung ist umprogrammierbar, d. h. rekonfigurierbar . Gemäß der vorliegenden Erfindung werden im laufenden Betrieb, d. h. während der Durchführung einer vorgegebenen Verarbeitungsfunktion, Funktionalitätsblöcke dieser programmierbaren Logikschaltung durch aufeinanderfolgende Um- programmierung der Logikschaltung verändert. Wurde ein bestimmter Funktionalitätsblock programmiert, wird zunächst die diesem Funktionalitätsblock entsprechende Gruppe von Operationen durchgeführt und gegebenenfalls Zwischenergebnisse abgespeichert. Anschließend wird ein neuer Funktionalitätsblock programmiert, wobei die zuvor ermittelten Zwischenergebnisse sowie gegebenenfalls weitere Daten in Übereinstimmung mit ei- ner diesem neuen Funktionalitätsblock entsprechenden Gruppe von Operationen verarbeitet werden. Die programmierbare Logik- schaltung kann zur Durchführung mehrerer Funktionalitätsblöcke mehrmals umprogrammiert werden, wobei die einzelnen Funktionalitätsblöcke derart aufeinander abgestimmt sind, daß sie in Kombination die gewünschte Verarbeitungsfunktion ergeben, so daß nach Programmierung des letzten Funktionalitätsblocks und Ausführung der entsprechenden letzten Gruppe von Verarbei- 4 tungsoperationen von der programmierbaren Logikschaltung Daten ausgegeben werden, die den gemäß der vorgegebenen Verarbeitungsfunktion verarbeiteten Eingangsdaten der Logikschaltung entsprechen.According to the present invention, a programmable logic circuit, in particular a field programmable gate array (FPGA), is used to carry out a predetermined processing function, ie to carry out a specific functionality. This logic circuit can be reprogrammed, ie reconfigured. According to the present invention, functionality blocks of this programmable logic circuit are changed during operation, ie during the execution of a predetermined processing function, by successive reprogramming of the logic circuit. If a certain functionality block has been programmed, the group of operations corresponding to this functionality block is first carried out and, if necessary, intermediate results are stored. A new functionality block is then programmed, the previously determined intermediate results and possibly further data being processed in accordance with a group of operations corresponding to this new functionality block. The programmable logic circuit can be reprogrammed several times to carry out a plurality of functionality blocks, the individual functionality blocks being matched to one another in such a way that they result in the desired processing function in combination, so that after the programming of the last functionality block and execution of the corresponding last group of processing 4 processing operations are output by the programmable logic circuit data which correspond to the input data of the logic circuit processed according to the predetermined processing function.
Die Struktur von digitalen Filtern, Algorithmen oder komplexen arithmetisch-logischen Mikroprozessoreinheiten ist prädestiniert für die Anwendung dieser neuen Technologie. Die vorliegende Erfindung entspricht einer Kombination der eingangs be- schriebenen beiden Lösungswege, da die Umprogrammierung der programmierbaren Logikschaltung zur Erzielung unterschiedlicher Funktionalitätsblöcke vorzugsweise rechnergesteuert abhängig von entsprechenden gespeicherten Programmierdaten erfolgt.The structure of digital filters, algorithms or complex arithmetic-logic microprocessor units is predestined for the application of this new technology. The present invention corresponds to a combination of the two approaches described at the outset, since the reprogramming of the programmable logic circuit to achieve different functionality blocks is preferably computer-controlled, depending on the corresponding stored programming data.
Durch den Einsatz der programmierbaren Logikschaltung als Hardwareelement ist ein hoher Datendurchsatz sowie eine hohe Verarbeitungsgeschwindigkeit bei relativ niedrigen Chipkosten gewährleistet. Da vorteilhafterweise die Umprogrammierung der programmierbaren Logikschaltung softwaregesteuert erfolgt, ist zudem eine ausreichend hohe Flexibilität gewährleistet, da die in diesem Fall für die Umprogrammierung erforderlichen Programmierdaten abhängig von den jeweils gewünschten Funktionalitäten einfach verändert bzw. angepaßt werden können.By using the programmable logic circuit as a hardware element, a high data throughput and a high processing speed with relatively low chip costs are guaranteed. Since the reprogramming of the programmable logic circuit is advantageously carried out under software control, a sufficiently high degree of flexibility is also ensured, since the programming data required in this case for reprogramming can be easily changed or adapted depending on the functionalities desired in each case.
Die Erfindung wird nachfolgend anhand eines bevorzugten Ausführungsbeispiels näher erläutert.The invention is explained in more detail below on the basis of a preferred exemplary embodiment.
Fig. 1 zeigt ein bevorzugtes Ausführungsbeispiel der erfin- dungsgemäßen Vorrichtung,1 shows a preferred embodiment of the device according to the invention,
Fig. 2 zeigt den beispielhaften Aufbau eines digitalen Filters, undFig. 2 shows the exemplary structure of a digital filter, and
Fig. 3a und Fig. 3b zeigen Darstellungen zur Realisierung der in Fig. 2 gezeigten digitalen Filterfunktion bei Anwendung des Verfahrens gemäß der vorliegenden Erfindung. Gemäß der vorliegenden Erfindung wird zur Realisierung einer gewünschten Verarbeitungsfunktion der Einsatz einer in Fig. 1 gezeigten programmierbaren Logikschaltung 1 vorgeschlagen, die zur Durchführung unterschiedlicher Funktionalitäten, welche jeweils bestimmten Gruppen von Verarbeitungsoperationen entsprechen, umprogrammiert wird. Programmierbare Bauelemente bzw. Logikschaltungen sind bereits seit längerer Zeit bekannt. Eine Gruppe von derartigen logischen Schaltungen, die anwen- dungsspezifisch programmiert werden können, sind sogenannte Field Programmable Gate Arrays (FPGAs) . Derartige logische Schaltungen besitzen eine interne Struktur mit sehr vielen primitiven Zellen, die aus logischen Gattern, Flip-Flops und zum Teil auch aus einfachen programmierbaren Bauelementen (Programmable Logic Devices, PLDs) bestehen. FPGAs können mehrere 100 Anschlüsse bzw. Pins und mehrere 1000 Gatteräquivalente aufweisen und sind demnach für die Realisierung sehr komplexer Schaltungen und für die Durchführung entsprechend aufwendiger Verarbeitungsfunktionen bzw. Funk- tionalitäten geeignet. Wie bereits erwähnt worden ist, bestehen die FPGAs aus einer Vielzahl von primitiven Zellen. Abhängig von der gewünschten Funktion der Logikschaltung müssen diese primitiven Zellen entsprechend verdrahtet, d. h. die Verbindungen zwischen den einzelnen Zellen festgelegt werden. Dies erfolgt mit Hilfe einer Programmierung, wobei in der Regel die gewünschte Konfiguration der Verdrahtung in einem Schreib-Lese-Speicher (Random Access Memory, RAM) auf dem FPGA-Chip gespeichert wird. Abhängig von der somit gespeicherten Konfiguration führt anschließend die Logikschaltung die gewünschte Funktionalität aus.3a and 3b show illustrations for realizing the digital filter function shown in FIG. 2 when using the method according to the present invention. According to the present invention, in order to implement a desired processing function, the use of a programmable logic circuit 1 shown in FIG. 1 is proposed, which is reprogrammed in order to carry out different functionalities, each of which corresponds to specific groups of processing operations. Programmable components or logic circuits have been known for a long time. A group of such logic circuits that can be programmed for specific applications are so-called field programmable gate arrays (FPGAs). Logic circuits of this type have an internal structure with a large number of primitive cells, which consist of logic gates, flip-flops and in some cases also of simple programmable components (programmable logic devices, PLDs). FPGAs can have several 100 connections or pins and several 1000 gate equivalents and are therefore suitable for the implementation of very complex circuits and for the execution of correspondingly complex processing functions or functionalities. As has already been mentioned, the FPGAs consist of a large number of primitive cells. Depending on the desired function of the logic circuit, these primitive cells must be wired accordingly, ie the connections between the individual cells must be defined. This is done with the aid of programming, the desired configuration of the wiring generally being stored in a random access memory (RAM) on the FPGA chip. Depending on the configuration thus saved, the logic circuit then carries out the desired functionality.
Neben der programmierbaren Logikschaltung 1 ist in Fig. 1 auch die Programmiereinrichtung 3 für die Programmierung der Logikschaltung 1 sowie der RAM-Speicher 21 zum Speichern der durch die Programmiereinrichtung 3 jeweils augenblicklich vorgegebenen Verdrahtungskonfiguration der Logikschaltung 1 dargestellt . Die programmierbare Logikschaltung 1 ist derart ausgelegt, daß sie auf eine bestimmte Anzahl von Eingangsdaten x eine vorge¬ gebene Funktionalität bzw. Verarbeitungsfunktion, z. B eine digitale Filterfunktion, anwendet. Diese Funktionalität kann als eine Kombination von mehreren Gruppen von Verarbeitungsoperationen, z. B. Multiplikationen und Additionen, dargestellt werden. Dementsprechend wird gemäß Fig. 1 die Programmiereinrichtung 3 von einer zentralen Steuereinrichtung 2, die in der Regel durch einen Rechner gebildet ist, derart angesteuert, daß die Programmiereinrichtung 3 in dem Speicher 21 nacheinander Verdrahtungskonfigurationen für die programmierbare Logikschaltung 1 festlegt, die den aufeinander folgenden Gruppen von Verarbeitungsoperationen bzw. Verarbeitungsvor- gangen entsprechen. Zu diesem Zweck weist die in Fig. 1 gezeigte Vorrichtung Speichermittel auf, in denen abhängig von den einzelnen durchzuführenden Operationen die jeweils erforderlichen Verdrahtungskonfigurationen abgelegt sind. Diese Speichermittel können beispielsweise in Form von Konfigura- tionsdateien 4 ausgebildet sein, so daß die Programmiereinrichtung 3 einfach durch Laden der entsprechenden gespeicherten Verdrahtungskonfiguration (Download) und Ablegen dieser Verdrahtungskonfiguration in dem Speicher 21 die Voraussetzung für die Durchführung des entsprechenden Funktiona- litätsblocks bzw. der entsprechenden Verarbeitungsoperationen schafft. Ebenso ist der Einsatz eines weiteren Speichers 5, z. B. eines Nur-Lese-Speichers (Read Only Memory, ROM) möglich, in dem die jeweils erforderlichen Verdrahtungskonfigurationen bzw. die entsprechenden Programmierdaten gespeichert sind.In addition to the programmable logic circuit 1, FIG. 1 also shows the programming device 3 for programming the logic circuit 1 and the RAM memory 21 for storing the wiring configuration of the logic circuit 1 that is currently specified by the programming device 3. The programmable logic circuit 1 is configured such that it to a certain number of input data x ¬ a pre-added functionality or processing function, z. B uses a digital filter function. This functionality can be seen as a combination of several groups of processing operations, e.g. B. multiplications and additions are shown. Accordingly, according to FIG. 1, the programming device 3 is controlled by a central control device 2, which is generally formed by a computer, in such a way that the programming device 3 in the memory 21 successively defines wiring configurations for the programmable logic circuit 1, which assign the successive groups of processing operations or processing procedures. For this purpose, the device shown in FIG. 1 has storage means in which, depending on the individual operations to be carried out, the respectively required wiring configurations are stored. These storage means can be configured, for example, in the form of configuration files 4, so that the programming device 3 simply by loading the corresponding stored wiring configuration (download) and storing this wiring configuration in the memory 21 is the prerequisite for carrying out the corresponding functionality block or appropriate processing operations creates. Likewise, the use of a further memory 5, for. B. a read-only memory (ROM) is possible, in which the respectively required wiring configurations or the corresponding programming data are stored.
Die Funktion der in Fig. 1 gezeigten Vorrichtung ist nun folgendermaßen:The function of the device shown in FIG. 1 is now as follows:
Mit Hilfe der programmierbaren Logikschaltung 1 sollen die Eingangs- bzw. Empfangsdaten x gemäß einer bestimmten Verarbeitungsfunktion (Funktionalität) verarbeitet werden. So kann beispielsweise die programmierbare Logikschaltung 1 die Ein- 7 gangsdaten x einer digitalen Filterfunktion unterziehen, so daß die von der Logikschaltung 1 ausgegebenen Ausgangsdaten y den gefilterten Eingangsdaten x entsprechen. Die von der Lo¬ gikschaltung 1 durchzuführende Funktionalität setzt sich aus einer Kombination mehrerer Gruppen von Verarbeitungsoperatio¬ nen bzw. Teilfunktionalitäten zusammen, welche der Steuereinrichtung 2 bekannt sind. Die zentrale Steuereinrichtung 2 steuert die Programmiereinrichtung 3 derart an, daß diese durch Zugriff auf die Speichermittel 4, 5 sukzessive Program- mierdaten ausliest, um die Logikschaltung 1 derart zu programmieren, daß die zuvor erwähnten einzelnen Gruppen von Verarbeitungsoperationen nacheinander (oder auch parallel) durchgeführt werden. Dies erfolgt durch Ablegen von entsprechenden Konfigurationsdaten in dem Speicher 21, so daß die Logikschal- tung 1 beispielsweise zunächst eine erste Teilfunktionalität, wie z. B. das Durchführen von Multiplikationen, und anschließend eine zweite Teilfunktionalität, wie z. B. das Durchführen von Additionen, ausführt. Nach Durchführung einer Teilfunktionalität werden von der Logikschaltung 1 Zwischenergebnisse in einem Zwischenspeicher 6 gespeichert, so daß diese für die nachfolgenden Teilfunktionalitäten bzw. Verarbeitungsoperationen der Logikschaltung 1 zur Verfügung stehen. Nachdem die Steuereinrichtung 2 die Programmiereinrichtung 3 zur Programmierung der Logikschaltung 1 gemäß der letzten auszuführenden Funktionalität angesteuert hat, werden von der Logikschaltung 1 die gewünschten Ausgangsdaten y ausgegeben.With the aid of the programmable logic circuit 1, the input or reception data x are to be processed in accordance with a specific processing function (functionality). For example, the programmable logic circuit 1 can 7 undergo digital data x a digital filter function, so that the output data output by the logic circuit 1 y correspond to the filtered input data x. Of the Lo ¬ gikschaltung 1 functionality to be performed is made up of a combination of several groups of Verarbeitungsoperatio ¬ NEN or partial functionalities together, which are known to the controller. 2 The central control device 2 controls the programming device 3 such that it successively reads programming data by accessing the memory means 4, 5 in order to program the logic circuit 1 in such a way that the aforementioned individual groups of processing operations are carried out in succession (or also in parallel) become. This is done by storing corresponding configuration data in the memory 21, so that the logic circuit 1 initially has, for example, a first partial functionality, such as, for. B. performing multiplications, and then a second sub-functionality, such as. B. performing additions. After a partial functionality has been carried out, the logic circuit 1 stores intermediate results in a buffer memory 6, so that these are available for the subsequent partial functionalities or processing operations of the logic circuit 1. After the control device 2 has activated the programming device 3 for programming the logic circuit 1 in accordance with the last functionality to be executed, the logic circuit 1 outputs the desired output data y.
Der Zwischenspeicher 6 kann sich wie der Speicher 21 auf dem Chip der programmierbaren Logikschaltung 1 befinden. Vorteil- hafterweise kann der Zwischenspeicher 6 auch in Form eines entsprechenden Speicherbereiches innerhalb der Logikschaltung 1 ausgestaltet sein, was in Fig. 1 gestrichelt angedeutet ist, wobei der Inhalt dieses Speicherbereiches mit der Umprogrammierung der Logikschaltung angepaßt werden kann, was die Schnelligkeit und den Datendurchsatz erhöht. 8 In der Regel liegen die Eingangsdaten x in Form von aufeinan¬ derfolgenden Abtastwerten vor. Dies bedeutet, daß die zuvor beschriebenen Umprogra mierungen der Logikschaltung 1 für je¬ den einzelnen Abtastwert durchgeführt werden, wobei jede Um- Programmierung innerhalb einer Abtastperiode der Eingangsdaten x durchgeführt werden muß. Die Umprogrammierungs- bzw. Rekon- figurationsgeschwindigkeit der programmierbaren Logikschaltung 1 bestimmt deren maximale Abtastrate. Dies bedeutet, daß für einen hohen Datendurchsatz kleinere Schaltungskonfigurationen vorteilhaft sind. Dementsprechend lassen sich mit Hilfe der erfindungsgemäßen Vorrichtung insbesondere digitale Filter aufgrund ihrer einfachen Struktur sehr gut realisieren.The buffer memory 6, like the memory 21, can be located on the chip of the programmable logic circuit 1. Advantageously, the buffer memory 6 can also be designed in the form of a corresponding memory area within the logic circuit 1, which is indicated by dashed lines in FIG. 1, the content of this memory area being adaptable by reprogramming the logic circuit, which increases the speed and the data throughput . 8 In general, the input data x in the form of aufeinan ¬ of the following samples. This means that the previously described optimizations Umprogra the logic circuit 1 for each ¬ each sample are carried out, each environmental programming must be performed within a sampling period of the input data x. The reprogramming or reconfiguration speed of the programmable logic circuit 1 determines its maximum sampling rate. This means that smaller circuit configurations are advantageous for high data throughput. Accordingly, digital filters, in particular, can be implemented very well with the aid of the device according to the invention due to its simple structure.
Wie bereits zuvor erwähnt worden ist, enthalten die Speicher- mittel 4/5 bevorzugt alle Programmier- bzw. Konfigurationsdaten, die für die Durchführung bestimmter Funktionalitäten bzw. Teilfunktionalitäten der Logikschaltung 1 erforderlich sind. Die zentrale Steuereinrichtung 2 kann demnach durch entsprechende Ansteuerung der Programmiereinrichtung 3 unter- schiedliche Gesamt-Funktionalitäten bzw. Gesamt-Verarbeitungsfunktionen der Logikschaltung 1 festlegen. So kann beispielsweise die Steuereinrichtung 2 die programmierbare Logikschaltung 1 mit Hilfe der Programmiereinrichtung 3 zur Realisierung unterschiedlicher digitaler Filterfunktionen mit unterschied- liehen Filterkoeffizienten umprogrammieren. Das heißt, es kann nicht nur eine Umprogrammierung der Logikschaltung 1 während der Ausführung einer bestimmten Verarbeitungsfunktion durchgeführt werden, sondern auch die Gesamtfunktionalität der programmierbaren Logikschaltung 1 kann variabel sein. Diese Um- Stellung der Gesamtfunktionalität der Logikschaltung 1 kann insbesondere abhängig von einem entsprechenden Steuersignal s erfolgen, welches der Steuereinrichtung 2 zugeführt wird.As has already been mentioned above, the memory means 4/5 preferably contain all programming or configuration data that are required for carrying out certain functionalities or partial functionalities of the logic circuit 1. The central control device 2 can accordingly set different overall functionalities or overall processing functions of the logic circuit 1 by correspondingly controlling the programming device 3. For example, the control device 2 can reprogram the programmable logic circuit 1 with the aid of the programming device 3 in order to implement different digital filter functions with different filter coefficients. That is, not only can the logic circuit 1 be reprogrammed during the execution of a specific processing function, but the overall functionality of the programmable logic circuit 1 can also be variable. This change in the overall functionality of the logic circuit 1 can take place in particular as a function of a corresponding control signal s which is supplied to the control device 2.
Das Prinzip der vorliegenden Erfindung soll nachfolgend näher anhand Fig. 2 und 3 erläutert werden. 9 Fig. 2 zeigt beispielhaft den Aufbau eines rekursiven digita¬ len Filters zweiter Ordnung. Das in Fig. 2 gezeigte Filter um¬ faßt zwei Schieberegister 15, 16, drei Addierer 12 - 14 und fünf Multiplikatoren 7 - 11. Dem in Fig. 2 gezeigten digitalen Filter ist folgende Übertragungsfunktion G(z) zugeordnet:The principle of the present invention will be explained in more detail below with reference to FIGS. 2 and 3. 9 Fig. 2 shows an example of the structure of a recursive digita ¬ len second order filter. . The filter shown in Figure 2 to ¬ summarizes two shift registers 15, 16, three adders 12 to 14 and five multipliers 7 - 11. The digital filter shown in Figure 2 is associated with the following transfer function G (z).:
G(z) = (a0+a1z"1+a2z"2) / (l-bιz_1-b2z~2)=y/x.G (z) = (a 0 + a 1 z "1 + a 2 z " 2 ) / (l-bιz _1 -b 2 z ~ 2) = y / x.
Aus dem in Fig. 2 gezeigten Schaltbild ist ersichtlich, daß für jeden eingangsseitig anliegenden Abtastwert zur Durchführung der digitalen Filterfunktion während einer Abtastperiode insgesamt fünf Multiplikationen sowie drei Additionen erforderlich sind.It can be seen from the circuit diagram shown in FIG. 2 that a total of five multiplications and three additions are required for each sample value present on the input side in order to carry out the digital filter function during a sampling period.
Die in Fig. 2 dargestellte digitale Filterfunktion wird bei Anwendung des erfindungsgemäßen Verfahrens wie in Fig. 3a und 3b gezeigt durchgeführt.The digital filter function shown in FIG. 2 is carried out using the method according to the invention as shown in FIGS. 3a and 3b.
Bei Anliegen eines neuen Abtastwertes Xi wird zunächst die programmierbare Logikschaltung, welche die in Fig. 2 gezeigte digitale Filterfunktion realisieren soll, derart angesteuert, daß von der Logikschaltung die Multiplikationen für die Berechnung des entsprechenden Ausgangswert durchgeführt werden, d. h. die Logikschaltung wird derart programmiert, daß bei- spielsweise die in Fig. 3a gezeigte Multiplikatorschaltung mit den Koeffizienten a0 - b2 erzeugt wird. Für den Vorwärtszweig sind Register 17, 18 vorgesehen, während für den Rückkopplungszweig lediglich ein Schieberegister 19 vorgesehen ist. Die in Fig. 1 gezeigte Logikschaltung 1 ist derart ausgelegt, daß von ihr berechnete Ausgangswerte yA stets in dem Zwischenspeicher 6 gespeichert werden, so daß gemäß Fig. 3a bei Vorliegen eines neuen Abtastwerts x__ der Ausgangswert γ__-ι der vorhergehenden Abtastperiode ausgelesen wird und ein Schieberegister für den Koeffizienten bi entfällt. Selbstverständlich kann in Übereinstimmung mit Fig. 2 die in Fig. 3a gezeigteWhen a new sample value Xi is present, the programmable logic circuit which is to implement the digital filter function shown in FIG. 2 is first activated in such a way that the logic circuit performs the multiplications for the calculation of the corresponding output value, ie the logic circuit is programmed in such a way that for example, the multiplier circuit shown in FIG. 3a is generated with the coefficients a 0 - b 2 . Registers 17, 18 are provided for the forward branch, while only one shift register 19 is provided for the feedback branch. The logic circuit 1 shown in FIG. 1 is designed such that output values y A calculated by it are always stored in the buffer memory 6, so that, according to FIG. 3a, the output value γ __- ι of the previous sampling period is read out when a new sample value x__ is present and there is no shift register for the coefficient bi. Of course, in accordance with Fig. 2, the one shown in Fig. 3a can
Multiplikatorschaltung auch derart abgewandelt werden, daß die Funktion des Schieberegisters 19 von einem der beiden Schiebe- 10 register 17 und 18 wahrgenommen wird. Insgesamt erfüllen die Schieberegister 17 - 19 gemäß Fig. 3a die Funktion der in Fig. 2 gezeigten Schieberegister 15 und 16. Die Multiplikatoren 9 - 11 entsprechen den in Fig. 2 gezeigten Multiplikatoren, wobei die Ausgangsdaten dieser Multiplikatoren als Zwischenergebnis in dem Zwischenspeicher 6 gespeichert werden.Multiplier circuit can also be modified such that the function of the shift register 19 by one of the two shift 10 registers 17 and 18 is perceived. Overall, the shift registers 17-19 according to FIG. 3a fulfill the function of the shift registers 15 and 16 shown in FIG. 2. The multipliers 9-11 correspond to the multipliers shown in FIG. 2, the output data of these multipliers being stored in the buffer memory 6 as an intermediate result become.
Anschließend erfolgt eine Rekonfiguration bzw. Umprogrammierung der in Fig. 1 gezeigten Logikschaltung derart, daß die Logikschaltung 1 die Funktion eines Addierers zur Addition der in dem Zwischenspeicher 6 abgelegten Daten durchführt. Diese Funktionalität der Logikschaltung 1 ist in Fig. 3b dargestellt. Wie aus Fig. 3b ersichtlich ist, werden die in Fig. 3a in den Speicher 6 gespeicherten Zwischenergebnisse der einzel- nen Multiplikatoren 7 - 11 einzeln einem Addierer 20 zugeführt, der als Ausgangssignal den entsprechenden Ausgangswert γ liefert, wobei gilt:The logic circuit shown in FIG. 1 is then reconfigured or reprogrammed in such a way that the logic circuit 1 performs the function of an adder for adding the data stored in the buffer memory 6. This functionality of the logic circuit 1 is shown in Fig. 3b. As can be seen from FIG. 3b, the intermediate results of the individual multipliers 7-11, which are stored in the memory 6 in FIG. 3a, are individually fed to an adder 20, which delivers the corresponding output value γ as the output signal, where:
y1=ao*x1+aι*xi-ι+a2*x1-2+bι*yi-ι+b2*yx-2.y 1 = ao * x 1 + aι * x i -ι + a 2 * x 1 - 2 + bι * y i -ι + b 2 * y x - 2 .
Wie bereits zuvor erwähnt worden ist, wird der Ausgabewert des Addierers 20 zugleich wieder in dem Zwischenspeicher 6 gespeichert, so daß er für nachfolgende Multiplizieroperationen bei Vorliegen eines neuen Abtastwerts x1+i für die in Fig. 3a ge- zeigte Multiplikatorschaltung zur Verfügung steht.As has already been mentioned above, the output value of the adder 20 is at the same time stored again in the buffer memory 6, so that it is available for subsequent multiplication operations when a new sample value x 1 + i is present for the multiplier circuit shown in FIG. 3a.
Gemäß Fig. 3a und 3b wird dementsprechend die in Fig. 2 gezeigte digitale Filterfunktion dadurch realisiert, daß die Gesamtfunktionalität der Logikschaltung 1 in zwei Teilfunktiona- litäten aufgeteilt wird, nämlich einerseits die Durchführung von Multiplizieroperationen und andererseits die Durchführung von Addieroperationen. Diese beiden Teilfunktionalitäten sind derart aufeinander abgestimmt, daß nach Durchführung der letzten Teilfunktionalität, d. h. gemäß Fig. 3b nach Durchführung der Additionen, die gemäß der ursprünglichen Verarbeitungsfunktion, d. h. gemäß der gewünschten digitalen Filterfunkti- 11 on, verarbeiteten Eingangsdaten als Ausgangsdaten y ausgegeben werden.According to FIGS. 3a and 3b, the digital filter function shown in FIG. 2 is accordingly implemented in that the overall functionality of the logic circuit 1 is divided into two sub-functionalities, namely on the one hand the execution of multiplication operations and on the other hand the implementation of addition operations. These two sub-functionalities are coordinated with one another in such a way that after the last sub-functionality has been carried out, ie according to FIG. 11 on, processed input data are output as output data y.
Neben der Realisierung digitaler Filterfunktionen kann die vorliegende Erfindung selbstverständlich auch zur Realisierung beliebiger anderer Funktionalitäten bzw. Verarbeitungsfunktionen eingesetzt werden. Ein besonderer Anwendungsfall ist die Realisierung von Ver- oder Entschlüsselungsfunktionen. So können mit Hilfe der vorliegenden Erfindung durch geeignete Pro- grammierung der programmierbaren Logikschaltung völlig unterschiedliche (Ver- oder Entschlüsselungs-) Algorithmen durchgeführt werden, die entweder sequentiell oder parallel in der Logikschaltung 1 ausgeführt werden. Der in Fig. 1 gezeigten Steuereinrichtung 2 kann über das Steuersignal s ein Schlüs- selcode zugeführt werden, welcher der Steuereinrichtung 2 mitteixt, in welcher Reihenfolge die einzelnen parallelen oder seriellen Umsetzungen abgearbeitet werden sollen.In addition to the implementation of digital filter functions, the present invention can of course also be used to implement any other functionalities or processing functions. A special application is the implementation of encryption or decryption functions. With the aid of the present invention, completely different (encryption or decryption) algorithms can be carried out by suitable programming of the programmable logic circuit, which algorithms are executed either sequentially or in parallel in the logic circuit 1. The control device 2 shown in FIG. 1 can be supplied with a key code via the control signal s, which tells the control device 2 in what order the individual parallel or serial conversions are to be processed.
So können abhängig von dem der Steuereinrichtung 2 zugeführten Schlüsselcode durch entsprechende Umprogrammierung der programmierbaren Logikschaltung 1 dem jeweiligen Schlüsselcode s entsprechende Ver- oder Entschlüsselungen durchgeführt werden, die sich durch Kombination der einzelnen Teilfunktionalitäten der programmierbaren Logikschaltung 1 zusammensetzen, welche wiederum von der programmierbaren Logikschaltung 1 abhängig von den durch die Programmiereinrichtung 3 in dem Speicher 21 abgelegten Konfigurationsdaten ausgeführt werden.Depending on the key code supplied to the control device 2, corresponding reprogramming of the programmable logic circuit 1 can be used to carry out encryption or decryption corresponding to the respective key code s, which are composed by combining the individual partial functionalities of the programmable logic circuit 1, which in turn depend on the programmable logic circuit 1 of the configuration data stored in the memory 21 by the programming device 3.
Ebenso ist die vorliegende Erfindung zur Realisierung von kom- plexen arithmetischen logischen Funktionen geeignet. Arithmetisch-logische Mikroprozessoreinheiten (Arithmetical Logical Units, ALUs) führen bestimmte Verarbeitungsfunktionen bzw. Funktionalitäten mit Hilfe eingebauter Register sowie bestimmter Funktionsteile durch. Dabei kann es sich um arithmetische Ganzzahloperationen, logische Operationen, Vergleichsoperationen oder Verschiebeoperationen usw. handeln. Bei komplexeren bzw. umfangreicheren Operationen werden diese in mehreren 12 Schritten durchgeführt. Je weniger Taktzyklen die entsprechende mikroprozessorgesteuerte ALU für die Ausführung benötigt desto schneller ist sie. Um dies zu bewerkstelligen wurden sogenannte RISC-Prozessoren (Reduced Instruction Set Computer) entwickelt, die mit einfacheren und taktmäßik kürzeren Befehlen arbeiten. Im Gegensatz dazu arbeiten sogenannte CISC- Prozessoren (Complex Instruction Set Computer) mit einem größeren Befehlssatz und benötigen daher für die Ausführung komplexer Operationen eine größere Zahl von Taktzyklen.The present invention is also suitable for realizing complex arithmetic logic functions. Arithmetic-logical microprocessor units (ALUs) perform certain processing functions or functionalities with the help of built-in registers and certain functional parts. These can be arithmetic integer operations, logical operations, comparison operations, or shift operations, etc. In the case of more complex or extensive operations, these are divided into several 12 steps performed. The fewer clock cycles the corresponding microprocessor-controlled ALU requires for execution, the faster it is. To accomplish this, so-called RISC processors (Reduced Instruction Set Computer) were developed, which work with simpler and shorter commands. In contrast, so-called CISC processors (Complex Instruction Set Computer) work with a larger instruction set and therefore require a larger number of clock cycles for the execution of complex operations.
Mit Hilfe der vorliegenden Erfindung, d. h. durch die Verwendung einer programmierbaren Logikschaltung, die während der Ausführung der gewünschten Verarbeitungsfunktion zur Abarbeitung unterschiedlicher Gruppen von Verarbeitungsoperationen umprogrammiert wird, können Teile der ALU oder auch die gesamte ALU bezüglich einer Verarbeitungsoperation oder mehrerer Verarbeitungsoperationen optimiert werden. So treten bei ALUs analog zu dem zuvor beschriebenen Beispiel digitaler Filterfunktionen Additionen, Multiplikationen usw. auf. Die program- mierbare Logikschaltung kann somit zur Ausführung dieser Funktionalität zunächst derart programmiert werden, daß die Logikschaltung als Addierer arbeitet und das Zwischenergebnis (intern oder extern) abspeichert. Anschließend wird die programmierbare Logikschaltung derart umprogrammiert, daß sie die Funktion eines Multiplikators ausführt. Zu diesem Zweck greift die Logikschaltung auf die zwischengespeicherten Ergebnisse sowie gegebenenfalls weitere Daten oder Parameter zu und führt die gewünschte Multiplikation aus.With the help of the present invention, i. H. By using a programmable logic circuit which is reprogrammed during the execution of the desired processing function to process different groups of processing operations, parts of the ALU or the entire ALU can be optimized with regard to one processing operation or several processing operations. In ALUs, additions, multiplications etc. occur analogously to the example of digital filter functions described above. The programmable logic circuit can thus first be programmed to carry out this functionality in such a way that the logic circuit functions as an adder and stores the intermediate result (internal or external). The programmable logic circuit is then reprogrammed such that it performs the function of a multiplier. For this purpose, the logic circuit accesses the temporarily stored results and possibly further data or parameters and carries out the desired multiplication.
Abschließend sei erwähnt, daß es zur Erzielung eines maximalen Datendurchsatzes besonders vorteilhaft ist, bestimmte Schaltungsteile der Logikschaltung umzuprogrammieren, während noch mindestens ein anderer Schaltungsteil bestimmte Verarbeitungsoperationen durchführt, um somit nahezu eine Parallelisierung der einzelnen Verarbeitungsoperationen (Teilfunktionalitäten) zu erzielen. Finally, it should be mentioned that, in order to achieve maximum data throughput, it is particularly advantageous to reprogram certain circuit parts of the logic circuit while at least one other circuit part is carrying out certain processing operations in order to achieve almost a parallelization of the individual processing operations (partial functionalities).

Claims

13 Patentansprüche 13 claims
1. Verfahren zum Verarbeiten von Daten gemäß einer vorgegebenen Verarbeitungsfunktion, wobei die Verarbeitungsfunktion als Kombination von mehreren Verarbeitungsfunktionen darstellbar ist, umfassend die Schritte a) Anlegen von zu verarbeitenden Ursprungsdaten (x) an eine programmierbare Logikschaltung (1), b) Programmieren der Logikschaltung (1) derart, daß die im1. A method for processing data in accordance with a predetermined processing function, the processing function being able to be represented as a combination of several processing functions, comprising the steps a) applying original data to be processed (x) to a programmable logic circuit (1), b) programming the logic circuit ( 1) such that the im
Schritt a) angelegten Ursprungsdaten (x) gemäß einer bestimmten Gruppe von Verarbeitungsoperationen verarbeitet und daraus Zwischendaten gewonnen werden, c) Umprogrammieren der Logikschaltung (1) derart, daß die zu- vor gewonnenen Zwischendaten gemäß einer weiteren Gruppe von Verarbeitungsoperationen verarbeitet und davon abhängig Ausgabedaten (y) erzeugt werden, welche den gemäß der Verarbeitungsfunktion verarbeiteten Ursprungsdaten (x) entsprechen, und d) Ausgeben der Ausgabedaten (y) .Step a) created original data (x) are processed in accordance with a specific group of processing operations and intermediate data are obtained therefrom, c) reprogramming the logic circuit (1) in such a way that the previously obtained intermediate data are processed in accordance with a further group of processing operations and, depending on this, output data ( y) are generated which correspond to the original data (x) processed according to the processing function, and d) outputting the output data (y).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß in den Schritten b) und c) die programmierbare Logikschal- tung (1) mehrmals gemäß unterschiedlichen Gruppen von Verarbeitungsoperationen umprogrammiert wird, wobei nach einem Um- programmiervorgang zumindest die Zwischendaten des unmittelbar vorhergehenden Umprogrammiervorgangs von der programmierbaren Logikschaltung (1) verarbeitet werden. 142. The method according to claim 1, characterized in that in steps b) and c) the programmable logic circuit (1) is reprogrammed several times according to different groups of processing operations, with at least the intermediate data of the immediately preceding reprogramming of after a reprogramming the programmable logic circuit (1) are processed. 14
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die einzelnen Programmierungen der programmierbaren Logik- Schaltung (1) automatisch abhängig von vorgegebenen Programmierdaten durchgeführt werden.3. The method according to claim 1 or 2, characterized in that the individual programming of the programmable logic circuit (1) are carried out automatically depending on predetermined programming data.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß für unterschiedliche Gruppen von Verarbeitungsoperationen der programmierbaren Logikschaltung 1 unterschiedliche Programmierdaten abgespeichert sind, und daß durch automatische Kombination der unterschiedlichen Programmierdaten unterschiedliche Gruppen von Verarbeitungsopera- tionen zur Realisierung unterschiedlicher Verarbeitungsfunktionen durchgeführt werden.4. The method according to claim 3, characterized in that different programming data are stored for different groups of processing operations of the programmable logic circuit 1, and that different groups of processing operations are carried out to implement different processing functions by automatically combining the different programming data.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Gruppe von Verarbeitungsoperationen Multiplikationen und die weitere Gruppe von Verarbeitungsoperationen Additionen durchführt .5. The method according to any one of the preceding claims, characterized in that the group of processing operations performs multiplications and the further group of processing operations additions.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die infolge einer Programmierung der programmierbaren Logikschaltung (1) gewonnenen Zwischendaten zwischengespeichert werden.6. The method according to any one of the preceding claims, characterized in that the intermediate data obtained as a result of programming the programmable logic circuit (1) are temporarily stored.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Ursprungsdaten (x) in Form von Abtastwerten vorliegen, und daß jede Gruppe von Verarbeitungsoperationen für jeden einzel- nen Abtastwert (Xj.) der Ursprungsdaten durchgeführt wird. 157. The method according to any one of the preceding claims, characterized in that the original data (x) are in the form of samples, and that each group of processing operations is carried out for each individual sample (Xj . ) Of the original data. 15
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß jede Umprogrammierung der programmierbaren Logikschaltung (1) innerhalb einer Abtastperiode der Ursprungsdaten (x±) durchgeführt wird.8. The method according to claim 7, characterized in that each reprogramming of the programmable logic circuit (1) is carried out within a sampling period of the original data (x ±).
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die vorgegebene Verarbeitungsfunktion, welche von der programmierbaren Logikschaltung (1) durch Kombination der einzelnen Gruppen von Verarbeitungsoperationen durchgeführt wird, einer digitalen Filterfunktion, einer Verschlüsselungs- oder Entschlüsselungsfunktion oder einer komplexen arithmetischen Operation entspricht.9. The method according to any one of the preceding claims, characterized in that the predetermined processing function, which is carried out by the programmable logic circuit (1) by combining the individual groups of processing operations, corresponds to a digital filter function, an encryption or decryption function or a complex arithmetic operation .
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein Schaltungstiel der programmierbaren Logikschaltung (1) zur Ausführung von Verarbeitungsoperationen einer bestimmten Gruppe umprogrammiert wird, während ein anderer Schaltungsteil noch die Verarbeitungsoperationen einer anderen Gruppe ausführt .10. The method according to any one of the preceding claims, characterized in that a circuit stem of the programmable logic circuit (1) is reprogrammed to carry out processing operations of a certain group, while another circuit part is still performing the processing operations of another group.
11. Vorrichtung zum Verarbeiten von Daten gemäß einer vorgegebenen Verarbeitungsfunktion, insbesondere zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche, mit einer programmierbaren Logikschaltung (1) , mit Programmiermitteln (3) zum Programmieren der programmier- baren Logikschaltung (1) abhängig von vorgegebenen Programmierdaten, und mit Steuermitteln (2) zum Ansteuern der Programmiermittel (3) derart, daß die Programmiermittel (3) die programmierbare Logikschaltung (1) mehrmals nacheinander unterschiedlich zur Durchführung von unterschiedlichen Gruppen von Verarbeitungsoperationen programmiert, wobei die einzelnen Gruppen von Ver- 16 arbeitungsoperationen in Kombination der vorgegebenen Verarbeitungsfunktion entsprechen.11. Device for processing data according to a predetermined processing function, in particular for performing the method according to one of the preceding claims, with a programmable logic circuit (1), with programming means (3) for programming the programmable logic circuit (1) depending on predetermined programming data , and with control means (2) for controlling the programming means (3) in such a way that the programming means (3) programs the programmable logic circuit (1) several times in succession differently to carry out different groups of processing operations, the individual groups of processing operations 16 work operations in combination correspond to the specified processing function.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß die Programmiermittel (3) die Programmierungen der programmierbaren Logikschaltung (1) abhängig von entsprechenden, in Speichermitteln (4, 5) gespeicherten Programmierdaten durchführen.12. The apparatus according to claim 11, characterized in that the programming means (3) carry out the programming of the programmable logic circuit (1) depending on corresponding programming data stored in storage means (4, 5).
13. Vorrichtung nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß die Reihenfolge und Kombination der einzelnen Gruppen von Verarbeitungsoperationen, welche von der programmierbaren Lo- gikschaltung (1) in Übereinstimmung mit der Programmierung durch die Programmiermittel (3) durchzuführen sind, variabel sind, so daß durch Variation der Reihenfolge und Kombination der einzelnen Gruppen von Verarbeitungsoperationen durch die Steuermittel (2) unterschiedliche Verarbeitungsfunktionen von der programmierbaren Logikschaltung (1) durchführbar sind.13. The apparatus according to claim 11 or 12, characterized in that the sequence and combination of the individual groups of processing operations which are to be carried out by the programmable logic circuit (1) in accordance with the programming by the programming means (3) are variable, so that different processing functions can be carried out by the programmable logic circuit (1) by varying the order and combination of the individual groups of processing operations by the control means (2).
14. Vorrichtung nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, daß die programmierbare Logikschaltung (1) nach einer Umpro- grammierung durch die Programmiermittel (3) die der Umprogrammierung entsprechende Gruppe von Verarbeitungsoperationen auf Zwischendaten anwendet, welche infolge der der vorhergehenden Programmierung der programmierbaren Logikschaltung (1) entsprechenden Gruppe von Verarbeitungsoperationen gewonnen wor- den sind.14. Device according to one of claims 11 to 13, characterized in that the programmable logic circuit (1), after reprogramming by the programming means (3), applies the group of processing operations corresponding to the reprogramming to intermediate data which, as a result of the previous programming of the programmable logic circuit (1) corresponding group of processing operations have been obtained.
15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die programmierbare Logikschaltung (1) die Zwischendaten in Zwischenspeichermitteln (6) speichert. 1715. The apparatus according to claim 14, characterized in that the programmable logic circuit (1) stores the intermediate data in intermediate storage means (6). 17
16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, daß die Zwischenspeichermittel (6) Bestandteil der program- mierbaren Logikschaltung (1) sind, wobei die Zwischenspeicher¬ mittel (6) mit der Umprogrammierung der Logikschaltung (1) die Zwischendaten speichern.16. The apparatus according to claim 15, characterized in that the intermediate storage means (6) are part of the programmable logic circuit (1), the intermediate storage ¬ means (6) with the reprogramming of the logic circuit (1) store the intermediate data.
17. Vorrichtung nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, daß die programmierbare Logikschaltung (1) ein Field Programmable Gate Array mit einer Vielzahl von vorgegebenen primitiven Zellen ist, wobei durch die jeweilige Programmierung der Programmiermittel (3) eine entsprechende Verdrahtung der primitiven Zellen definiert wird.17. The device according to one of claims 1 to 16, characterized in that the programmable logic circuit (1) is a field programmable gate array with a plurality of predetermined primitive cells, with the respective programming of the programming means (3) corresponding wiring of the primitive Cells is defined.
18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, daß die infolge einer Programmierung durch die Programmiermit- tel (3) definierte Verdrahtung der primitiven Zellen des Field Programmable Gate Arrays (1) in Speichermitteln (21) gespeichert sind. 18. The apparatus according to claim 17, characterized in that the wiring of the primitive cells of the field programmable gate array (1) defined as a result of programming by the programming means (3) is stored in memory means (21).
EP99907270A 1998-02-06 1999-01-22 Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit Withdrawn EP1053513A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19804827 1998-02-06
DE19804827 1998-02-06
PCT/DE1999/000167 WO1999040492A1 (en) 1998-02-06 1999-01-22 Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit

Publications (1)

Publication Number Publication Date
EP1053513A1 true EP1053513A1 (en) 2000-11-22

Family

ID=7856895

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99907270A Withdrawn EP1053513A1 (en) 1998-02-06 1999-01-22 Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit

Country Status (3)

Country Link
EP (1) EP1053513A1 (en)
CA (1) CA2320079A1 (en)
WO (1) WO1999040492A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343406A (en) * 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
DE59109046D1 (en) * 1991-02-22 1998-10-08 Siemens Ag Programming procedure for a logic module
DE4425388B4 (en) * 1994-07-19 2005-07-21 Robert Bosch Gmbh control unit
US5737711A (en) * 1994-11-09 1998-04-07 Fuji Jukogyo Kabuishiki Kaisha Diagnosis system for motor vehicle
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9940492A1 *

Also Published As

Publication number Publication date
CA2320079A1 (en) 1999-08-12
WO1999040492A1 (en) 1999-08-12

Similar Documents

Publication Publication Date Title
DE69534812T2 (en) Programmable logic device storing more than one configuration and means for switching the configuration
DE4417575C2 (en) Improved array architecture for programmable logic cells
DE2752724C2 (en) Digital modem
EP0010173B1 (en) Semiconductor chip with improved ability for testing the large scale integrated circuits
DE2321112C2 (en) Signal processing system
DE1499722B1 (en) DEVICE FOR THE MODIFICATION OF INFORMATION WORDS
EP2799983B1 (en) Flexible distribution of I/O channels of a hardware component
DE3632639C2 (en) Device for high-speed processing of image data by folding
DE3507584C2 (en)
EP1750192B1 (en) Control of an active system for vibration isolation
DE3543471C1 (en) Building block made in integrated technology for creating integrated circuits
EP1053513A1 (en) Method and device for data processing according to a predetermined processing function with the aid of a programmable logical circuit
EP1789889B1 (en) Computer with a reconfigurable architecture for integrating a global cellular automaton
EP0829803B1 (en) Digital signal processor and method for performing a multiplication in a digital signal processor
EP1116127B1 (en) Program-controlled unit
EP0161335B1 (en) Preparation of sampled values of a time-variable signal in a data processing arrangement
EP0489228B1 (en) Automation system with a programming device and an automation device
DE19959405B4 (en) Reconfigurable device interface
DE2502005C2 (en) Circuit arrangement for assigning addresses to operations for the purpose of executing commands in a data processing device
DE3138833A1 (en) ARRANGEMENT FOR PERFORMING A MATHEMATICAL OPERATION AND SOME APPLICATIONS OF THIS ARRANGEMENT
DE102019126634A1 (en) Method for operating a programmable logic module and logic unit for the efficient implementation of a given process
DE4406395C1 (en) Signal processing method for the multiplication of input signals by parameters and for subsequent accumulation
DE19514739C2 (en) Multiplier
DE10217313B4 (en) Digital signal processor and method for data processing with a digital signal processor
EP0700180A1 (en) Means for processing digital audio signals

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20000417

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): BE CH DE ES FR GB IT LI NL

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

17Q First examination report despatched

Effective date: 20011212

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20020430