DE102019126634A1 - Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses - Google Patents
Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses Download PDFInfo
- Publication number
- DE102019126634A1 DE102019126634A1 DE102019126634.3A DE102019126634A DE102019126634A1 DE 102019126634 A1 DE102019126634 A1 DE 102019126634A1 DE 102019126634 A DE102019126634 A DE 102019126634A DE 102019126634 A1 DE102019126634 A1 DE 102019126634A1
- Authority
- DE
- Germany
- Prior art keywords
- logic module
- control unit
- sub
- logic
- communication channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Betreiben eines programmierbaren Logikbausteins (12), insbesondere eines FPGAs, zur Durchführung eines vorgegebenen Prozesses, umfassend die nachfolgenden Schritte:
- Zerlegung des durchzuführenden Prozesses in mindestens zwei Teilprozesse durch eine Steuereinheit (14),
- Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des ersten Teilprozesses,
- Durchführung des ersten Teilprozesses unter Verwendung des programmierten Logikbausteins (12),
- erneute Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des zweiten Teilprozesses, und
- Durchführung des zweiten Teilprozesses unter Verwendung des neu programmierten Logikbausteins (12), wobei
- die für die Programmierung des Logikbausteins (12) notwendigen Daten über einen ersten Kommunikationskanal (16) von der Steuereinheit (14) an den Logikbaustein (12) übertragen werden.
- Zerlegung des durchzuführenden Prozesses in mindestens zwei Teilprozesse durch eine Steuereinheit (14),
- Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des ersten Teilprozesses,
- Durchführung des ersten Teilprozesses unter Verwendung des programmierten Logikbausteins (12),
- erneute Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des zweiten Teilprozesses, und
- Durchführung des zweiten Teilprozesses unter Verwendung des neu programmierten Logikbausteins (12), wobei
- die für die Programmierung des Logikbausteins (12) notwendigen Daten über einen ersten Kommunikationskanal (16) von der Steuereinheit (14) an den Logikbaustein (12) übertragen werden.
Description
- Programmierbare Logikbausteine, wie z. B. FPGAs ermöglichen eine flexible Rekonfiguration integrierter Schaltungen. Dabei kann ein Schaltkreis innerhalb kurzer Zeit realisiert werden, der je nach Anwendungsgebiet rekonfiguriert werden kann. Insbesondere werden Logikbausteine eingesetzt, um vorgegebene Prozesse, wie z. B. zur Audiosignalverarbeitung oder zur Bildverarbeitung effizient durchzuführen. Insbesondere erlauben FPGAs eine partielle Rekonfiguration, wobei nur ein Bereich des Logikbausteins neu programmiert wird. Hierbei wird mittels eines externen Controllers bei Bedarf eine neue Hardwarebeschreibung nachgeladen. Man unterscheidet dabei zwischen statischer und dynamischer Rekonfiguration. Bei der statischen Rekonfiguration ist der komplette Logikbaustein in Ruhe (Shutdown Mode) versetzt und wird erst nach Ablauf der Programmierung wieder in den aktiven Zustand versetzt. Bei der dynamischen Rekonfiguration hingegen werden (sofern von der Hardware unterstützt) nur einzelne Teile rekonfiguriert, während die übrigen Teile voll funktionsfähig bleiben. In beiden vorstehend beschriebenen Fällen wird jedoch ein statischer Code generiert, bei dem die Funktionalität zur Compilezeit festgelegt wird.
- Während sich die beschriebenen Logikbausteine durch eine besonders hohe Flexibilität auszeichnen, sind diese dennoch auch mit Nachteilen verbunden. So sind insbesondere für die Durchführung sehr komplexer Prozesse eine hohe Anzahl an Logikelementen (z. B. Register, Lookup-Tabellen und Multiplexer) für die Durchführung des gewünschten Prozesses erforderlich.
- Ausgehend von der vorstehend beschriebenen Problematik ist es Aufgabe der vorliegenden Erfindung ein Verfahren zum Betreiben eines programmierbaren Logikbausteins bereitzustellen, bei dem die durchzuführenden Prozesse effizienter zu realisieren sind.
- Hierzu wird im Rahmen der vorliegenden Erfindung ein Ansatz zur dynamischen partiellen Rekonfiguration der programmierbaren Logikbausteine verfolgt, bei dem ein dynamischer Code verwendet wird, der erst während des Betriebs des Logikbausteins festgelegt wird.
- Dies bedeutet, dass sich die Zustände des zu konfigurierenden Logikbausteins auf den nachzuladenden Code auswirken können. Dadurch kann der Code und somit die Funktionalität des Logikbausteins während der Laufzeit bzw. während des Betriebs des Logikbausteins kontinuierlich und individuell adaptiert werden. Die Adaption bzw. die Erzeugung kann sowohl einzelne Codeteile als auch den gesamten Code betreffen.
- Zur Lösung der vorstehend genannten Aufgabe wird im Rahmen der vorliegenden Erfindung ein Verfahren zum Betreiben eines programmierbaren Logikbausteins, insbesondere eines FPGAs, zur Durchführung eines vorgegebenen Prozesses vorgeschlagen, umfassend die nachfolgenden Schritte:
- - Zerlegung des durchzuführenden Prozesses in mindestens zwei Teilprozesse durch eine Steuereinheit,
- - Programmierung des Logikbausteins durch die Steuereinheit zur Durchführung des ersten Teilprozesses,
- - Durchführung des ersten Teilprozesses unter Verwendung des programmierten Logikbausteins,
- - erneute Programmierung des Logikbausteins durch die Steuereinheit zur Durchführung des zweiten Teilprozesses, und
- - Durchführung des zweiten Teilprozesses unter Verwendung des neu programmierten Logikbausteins, wobei
- - die für die Programmierung des Logikbausteins notwendigen Daten über einen ersten Kommunikationskanal von der Steuereinheit an den Logikbaustein übertragen werden.
- Bei dem vorgegebenen Prozess kann es sich beispielsweise um einen Signalverarbeitungsprozess, wie z. B. einen Prozess zur Audiosignalverarbeitung oder zur Bildverarbeitung handeln. Insbesondere kann dabei vorgesehen sein, dass der vorgegebene Prozess in zwei oder mehrere Teilprozesse zerlegt wird, wobei der Logikbaustein jeweils zur Durchführung eines Teilprozesses programmiert wird. Mit dem vorgeschlagenen Verfahren wird ermöglicht, die notwendige Menge an Silizium und somit die Bauteilgröße signifikant zu reduzieren. Es wird lediglich eine vorgegebene Menge an Standardlogikelementen (insbesondere Register, Lookup-Tabellen, Multiplexer, Addierer, Multiplizierer, RAM) zur Verfügung gestellt, welche nach Abarbeiten ihrer aktuellen Funktion wieder zur freien Verfügung stehen. Somit sind für die Durchführung eines komplexen Prozesses insgesamt deutlich weniger Logikelemente notwendig, als dies bei den aus dem Stand der Technik bekannten Verfahren der Fall ist.
- Gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass die Zerlegung des Prozesses in mindestens zwei sequentielle Teilprozesse erfolgt. Somit werden die Prozesse bzw. die Teilprozesse innerhalb des Logikbausteins über die Zeit abgebildet. So kann entweder die Größe des Logikbausteins reduziert werden oder alternativ ein Logikbaustein derselben Größe verwendet werden, wobei mit diesem Logikbaustein deutlich komplexere Prozesse durchzuführen sind.
- Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass die Programmierung des Logikbausteins durch die Steuereinheit zur Durchführung der ersten und/oder zur Durchführung des zweiten Teilprozesses eine Synthese, einen Map, ein Place and Route, eine Bitstream-Erzeugung sowie eine Übertragung des Bitstreams von der Steuereinheit an den Logikbaustein über den ersten Kommunikationskanal umfasst. Es wird also für jeden Teilprozess eine Programmierung des Logikbausteins durchgeführt, wobei sich die Granularität des Teilprozesses nach den zur Verfügung stehenden Ressourcen richtet. Sind die verfügbaren Ressourcen sehr stark begrenzt, so können die durchzuführenden Teilprozesse sehr fein aufgeteilt werden, wobei die Anzahl der Teilprozesse, die auf dem Logikbaustein sequentiell programmiert und durchlaufen werden, zunimmt.
- Die Programmierung kann einen Teil des Logikbausteins betreffen oder alternativ eine komplette Neuprogrammierung des Logikbausteins. Dabei kann vorgesehen sein, dass die Ergebnisse, die nach einem Teilprozess erzielt wurden, in einem Teil des Logikbausteins oder in einer separaten Speichereinheit zwischengespeichert werden, so dass während des nächsten Teilprozesses auf diese Ergebnisse zugegriffen werden kann. Beispielsweise kann vorgesehen sein, dass der Logikbaustein für die Durchführung eines Prozesses zur Audiosignalverarbeitung ausgelegt ist und dass bei diesem Prozess eine Fourier-Transformation (insbesondere eine FFT) sowie eine Tiefpassfilterung erforderlich ist. Bei den bislang eingesetzten Verfahren zum Betreiben eines Logikbausteins würde typischerweise ein erster Teil des Logikbausteins derart programmiert, dass dieser für die Durchführung der Fourier-Transformation zuständig ist, während ein zweiter Teil der Durchführung einer Tiefpassfilterung dient. Hingegen kann gemäß dem erfindungsgemäßen Verfahren der Prozess in zwei Teilprozesse zerlegt werden und der Logikbaustein zunächst für die Durchführung des ersten Teilprozesses programmiert und erst im Anschluss für die Durchführung des zweiten Teilprozesses neu programmiert werden.
- Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass der Logikbaustein über einen zweiten Kommunikationskanal wiederholt Zustandsdaten an die Steuereinheit sendet und dass die Programmierung des Logikbausteins, insbesondere die einzelnen Schritte für die Generierung des Kompilats (Synthese, Place and Route, Map), zur Durchführung des ersten Teilprozesses und/oder des zweiten Teilprozesses durch die Steuereinheit in Abhängigkeit von den Zustandsdaten erfolgt, die zuvor von dem Logikbaustein an die Steuereinheit gesendet wurden. Auf diese Weise kann eine Optimierung bei der Programmierung des Logikbausteins erzielt werden, indem die Programmierung auf die aktuellen Zustandsdaten des Logikbausteins angepasst werden kann. Wenn beispielsweise die Umprogrammierung einzelner Bereiche des Logikbausteins als besonders aufwendig erscheint, können andere Bereiche des Logikbausteins umprogrammiert werden, um dadurch eine höhere Effizienz des Verfahrens zu gewährleisten.
- Auch kann gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens vorgesehen sein, dass der zweite Kommunikationskanal identisch mit dem ersten Kommunikationskanal oder von dem ersten Kommunikationskanal verschieden ist. Durch die Verwendung eines einzigen bzw. integralen Kommunikationskanals kann der Aufbau vereinfacht werden. Andererseits kann durch die Verwendung zweier unterschiedlicher Kommunikationskanäle eine erhöhte Übertragungsgeschwindigkeit erreicht werden, so dass insgesamt ein schnelleres Verfahren bzw. ein schnellerer Betrieb des Logikbausteins ermöglicht wird.
- Ferner kann gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens vorgesehen sein, dass die Zustandsdaten des Logikbausteins in vorgegebenen Zeitabständen an die Steuereinheit gesendet werden. Dadurch kann eine vereinfachte Implementierung des erfindungsgemäßen Verfahrens ermöglicht werden.
- Ferner kann gemäß einer Ausführungsform der Erfindung vorgesehen sein, dass die Zustandsdaten des Logikbausteins nach Durchführung eines Teilprozesses an die Steuereinheit übermittelt werden. Dadurch kann eine vollständig sequentielle Implementierung des erfindungsgemäßen Verfahrens realisiert werden, wodurch die Übertragungskapazitäten besonders gut ausgenutzt werden können, wodurch ein besonders effizientes Verfahren ermöglicht wird.
- Gemäß einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass bei der Programmierung des Logikbausteins zur Durchführung des ersten und/oder des zweiten Teilprozesses lediglich eine partielle Programmierung des Logikbausteins erfolgt. Dies hat einerseits den Vorteil, dass einzelne Bereiche des Logikbausteins zur Speicherung von Zwischenergebnissen verwendet werden können. Andererseits kann die Effizienz des gesamten Verfahrens erhöht werden, wenn auf flexible Art sowie angepasst an den durchzuführenden Prozess lediglich nur einzelne Teile des Logikbausteins neu programmiert werden und bei Bedarf einzelne Teile des Logikbausteins unverändert bleiben, weil diese etwa zur Durchführung des nachfolgenden Teilprozesses benötigt werden.
- Ferner wird zur Lösung des vorstehend genannten Problems eine Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses vorgeschlagen mit
- - einem programmierbaren Logikbaustein, und
- - einer Steuereinheit zur Programmierung des Logikbausteins,
- - wobei die Steuereinheit über einen ersten Kommunikationskanal zur Übertragung von für die Programmierung des Logikbausteins notwendigen Daten mit dem Logikbaustein verbunden ist, und
- - wobei die Steuereinheit dazu ausgelegt ist, den Logikbausteins während der Laufzeit eines durchzuführenden Prozesses neu zu programmieren.
- Gemäß einer Ausführungsform der erfindungsgemäßen Logikeinheit kann vorgesehen sein, dass der Logikbaustein als ein FPGA ausgeführt ist.
- Ferner kann bei der erfindungsgemäßen Logikeinheit vorgesehen sein, dass die Steuereinheit als ein Mikrocontroller, ein FPGA oder ein Computer realisiert ist.
- Gemäß einer weiteren Ausführungsform der Logikeinheit kann vorgesehen sein, dass die Steuereinheit über einen zweiten Kommunikationskanal zur Übertragung von Zustandsdaten des Logikbausteins an die Steuereinheit mit dem Logikbaustein verbunden ist. Dabei kann der zweite Kommunikationskanal identisch mit dem ersten Kommunikationskanal oder von diesem verschieden sein.
- Gemäß einer Ausführungsform der erfindungsgemäßen Logikeinheit kann ferner vorgesehen sein, dass die Steuereinheit während der Laufzeit eines durchzuführenden Prozesses die einzelnen Schritte zur Generierung des Kompilats (insbesondere Synthese, Place and Route, Map) durchführt, und zwar bevorzugt in Abhängigkeit der vom Logikbaustein erhaltenen Zustandsdaten.
- Im Rahmen der vorliegenden Erfindung wird es als selbstverständlich angesehen, dass sämtliche im Zusammenhang mit dem erfindungsgemäßen Verfahren beschriebenen Merkmale und Merkmalskombinationen auch mit der erfindungsgemäßen Logikeinheit kombiniert werden können.
- Zur weiteren Veranschaulichung der vorliegenden Erfindung wird die Erfindung nachfolgend anhand der Figuren erläutert.
- In der
1 ist der Ablauf des erfindungsgemäßen Verfahrens schematisch dargestellt. Bei dem Verfahren wird zunächst ein von dem programmierbaren Logikbaustein durchzuführender Prozess in mindestens zwei Teilprozesse zerlegt (S110 ). Anschließend erfolgt die Programmierung des Logikbausteins zur Durchführung des ersten Teilprozesses (S120 ). Nachdem der Logikbaustein für die Durchführung des ersten Teilprozesses programmiert ist, erfolgt die Durchführung des ersten Teilprozesses durch den programmierten Logikbaustein (S130 ). Im Anschluss wird der Vorgang der Programmierung des Logikbausteins für die Durchführung des zweiten Teilprozesses wiederholt (S140 ). Schließlich führt der programmierte Logikbaustein den zweiten Teilprozess durch (S150 ). Es wird vorliegend als selbstverständlich angesehen, dass der in der1 dargestellte Ablauf als rein schematisch anzusehen ist und dass insbesondere zusätzliche Schritte zur Optimierung des Verfahrens eingesetzt werden können. Insbesondere ist die in der1 gezeigte Ausführungsform des erfindungsgemäßen Verfahrens mit zwei Teilprozessen lediglich als beispielhaft und zur besseren Veranschaulichung anzusehen. In der Praxis kann der von der Logikeinheit durchzuführende Prozess in zahlreiche Teilprozesse zerlegt werden, so dass die Abarbeitung des Prozesses sequentiell erfolgen kann und nur sehr wenige Logikelemente benötigt werden. Zudem kann auch vorgesehen sein, dass nicht nur der Gesamtprozess in einzelne Teilprozesse unterteilt wird, die sequentiell ablaufen, sondern zudem auch einzelne Teilprozesse in einzelne Unterprozesse unterteilt werden, die parallel zueinander durchgeführt werden. Dadurch werden die zur Verfügung stehenden Ressourcen optimal verwendet, da beispielsweise mehrere Prozesse, die eine geringe Komplexität aufweisen, parallel durchgeführt werden können. - In der
2 ist eine schematische Darstellung der erfindungsgemäßen Logikeinheit10 abgebildet. Die Logikeinheit10 weist einen programmierbaren Logikbaustein12 und eine Steuereinheit14 zur Programmierung des Logikbausteins12 auf. Der Logikbaustein12 und die Steuereinheit14 sind über einen ersten Kommunikationskanal16 miteinander verbunden. Über den Kommunikationskanal16 sendet die Steuereinheit14 Rekonfigurationsdaten an den Logikbaustein12 . Hierzu erfolgt vorab insbesondere eine Synthese, ein Map, das Place and Route sowie die Erzeugung eines Bitstreams. Die genannten Prozesse zur Erzeugung eines Kompilats sind auf einen Teilprozess ausgelegt. Nachdem der für einen Teilprozess notwendige Rekonfigurationsstream an den Logikbaustein12 gesendet wurde, kann beispielsweise nach einer vorgegebenen Zeit der nächste Rekonfigurationsstream an den Logikbaustein12 übermittelt werden. Die vorgegebene Zeit kann sich beispielsweise daraus ergeben, dass die Steuereinheit14 vorab berechnet, wie lange der Logikbaustein12 für die Durchführung eines bestimmten Teilprozesses benötigen wird. - In der
3 ist ein weiteres Ausführungsbeispiel der Logikeinheit10 abgebildet. Bei diesem Ausführungsbeispiel ist die Steuereinheit14 mit dem Logikbaustein12 über einen ersten Kommunikationskanal16 und über einen zweiten Kommunikationskanal18 verbunden. Über den ersten Kommunikationskanal16 wird (wie bereits in der2 gezeigt) der Rekonfigurationsstream von der Steuereinheit14 an den Logikbaustein12 übermittelt. Hingegen wird gemäß dem in der3 dargestellten Ausführungsbeispiel über den zweiten Kommunikationskanal18 der Systemzustand des Logikbausteins12 an die Steuereinheit14 übermittelt. Der zweite Kommunikationskanal18 kann, wie in der3 angedeutet, als ein von dem ersten Kommunikationskanal16 separater physischer Kanal ausgeführt sein. Alternativ hierzu können aber auch der erste Kommunikationskanal16 und der zweite Kommunikationskanal18 auch als ein einziger physischer Kommunikationskanal ausgeführt sein. Dabei kann beispielsweise ein Multiplexverfahren eingesetzt werden, um den Informationsfluss zwischen der Steuereinheit14 und dem Logikbaustein zu steuern. Beispielsweise kann ein Zeitmultiplexverfahren eingesetzt werden, um die beiden Kommunikationskanäle16 ,18 mittels eines einziges physischen Kommunikationskanals zu realisieren. Die Übermittlung des Systemzustands an die Steuereinheit14 hat beispielsweise den Vorteil, dass die Steuereinheit14 genau weiß, wann ein bestimmter Prozess auf dem Logikbaustein12 abgeschlossen wurde. Ein weiterer Vorteil der Übertragung des Systemzustands von dem Logikbaustein12 zu der Steuereinheit14 liegt darin, dass der aktuelle Systemzustand des Logikbausteins12 bei der Berechnung des Kompilats durch die Steuereinheit14 berücksichtigt werden kann, so dass der gesamte Prozess zur Erzeugung des Bitstreams an den aktuellen Systemzustand des Logikbausteins12 angepasst werden kann. Wie bereits vorstehend ausgeführt, kann der Logikbaustein12 insbesondere als FPGA ausgeführt sein. Die Steuereinheit14 kann ebenfalls als ein FPGA ausgeführt sein oder beispielsweise auch als ein Mikrocontroller oder ein Computer. Die Logikeinheit10 hat insbesondere den Vorteil, dass sie besonders kompakte Logikbausteine12 ermöglicht und dadurch eine besondere Einsparung des für den Logikbaustein12 notwendigen Siliziums. - Ein weiterer Vorteil der vorliegenden Erfindung gegenüber dem Stand der Technik liegt darin, dass die Logikressourcen je nach gewünschter Funktionalität kontinuierlich neu konfiguriert werden können. Hierzu können insbesondere die für die Rekonfiguration notwendigen Prozesse (Synthese, Map, Place and Route, Bitstream-Generation) in Echtzeit durchgeführt werden. Durch die kontinuierliche und dynamische Rekonfiguration des Logikbausteins
12 werden die vorhandenen Ressourcen optimal genutzt, so dass ein besonders effizientes Verfahren zum Betreiben eines Logikbauseins12 bereitgestellt werden kann. Die Effizienz kann ferner erhöht werden, wenn der Systemzustand des Logikbausteins12 in die Steuereinheit14 gekoppelt wird und die Steuereinheit14 die Programmierung des Logikbausteins12 in Abhängigkeit von dem Systemzustand des Logikbausteins12 vornehmen kann. - Bezugszeichenliste
-
- 10
- Logikeinheit
- 12
- Logikbaustein
- 14
- Steuereinheit
- 16
- erster Kommunikationskanal
- 18
- zweiter Kommunikationskanal
- S100
- Verfahren zum Betreiben eines Logikbausteins
- S110
- Zerlegung des Prozesses in Teilprozesse
- S120
- Programmierung des Logikbausteins
- S130
- Durchführung des ersten Teilprozesses
- S140
- Programmierung des Logikbausteins
- S150
- Durchführung des zweiten Teilprozesses
Claims (12)
- Verfahren zum Betreiben eines programmierbaren Logikbausteins (12), insbesondere eines FPGAs, zur Durchführung eines vorgegebenen Prozesses, umfassend die nachfolgenden Schritte: - Zerlegung des durchzuführenden Prozesses in mindestens zwei Teilprozesse durch eine Steuereinheit (14), - Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des ersten Teilprozesses, - Durchführung des ersten Teilprozesses unter Verwendung des programmierten Logikbausteins (12), - erneute Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung des zweiten Teilprozesses, und - Durchführung des zweiten Teilprozesses unter Verwendung des neu programmierten Logikbausteins (12), wobei - die für die Programmierung des Logikbausteins (12) notwendigen Daten über einen ersten Kommunikationskanal (16) von der Steuereinheit (14) an den Logikbaustein (12) übertragen werden.
- Verfahren nach
Anspruch 1 , dadurch gekennzeichnet, dass die Zerlegung des Prozesses in zwei sequenzielle Teilprozesse erfolgt. - Verfahren nach
Anspruch 1 , dadurch gekennzeichnet, dass die Programmierung des Logikbausteins (12) durch die Steuereinheit (14) zur Durchführung der ersten und/oder zur Durchführung des zweiten Teilprozesses eine Synthese, einen Map, ein Place and Route, eine Bitstream-Erzeugung sowie eine Übertragung des Bitstreams von der Steuereinheit (14) an den Logikbaustein (12) über den ersten Kommunikationskanal (16) umfasst. - Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Logikbaustein (12) über einen zweiten Kommunikationskanal (18) wiederholt Zustandsdaten an die Steuereinheit (14) sendet und dass die Programmierung des Logikbausteins (12) zur Durchführung des ersten Teilprozesses und/oder des zweiten Teilprozesses durch die Steuereinheit (14) in Abhängigkeit von den Zustandsdaten erfolgt, die zuvor von dem Logikbaustein (12) an die Steuereinheit (14) gesendet wurden.
- Verfahren nach
Anspruch 4 , dadurch gekennzeichnet, dass der zweite Kommunikationskanal (18) identisch mit dem ersten Kommunikationskanal (16) oder von dem ersten Kommunikationskanal (16) verschieden ist. - Verfahren nach einem der
Ansprüche 4 oder5 , dadurch gekennzeichnet, dass die Zustandsdaten des Logikbausteins (12) in vorgegebenen Zeitabständen an die Steuereinheit (14) gesendet werden. - Verfahren nach einem der
Ansprüche 4 oder5 , dadurch gekennzeichnet, dass die Zustandsdaten des Logikbausteins (12) nach Durchführung eines Teilprozesses an die Steuereinheit (14) übermittelt werden. - Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Programmierung des Logikbausteins (12) zur Durchführung des ersten und/oder des zweiten Teilprozesses lediglich eine partielle Programmierung des Logikbausteins (12) erfolgt.
- Logikeinheit (10) zur effizienten Durchführung eines vorgegebenen Prozesses mit - einem programmierbaren Logikbaustein (12), - einer Steuereinheit (14) zur Programmierung des Logikbausteins (12), - wobei die Steuereinheit (14) über einen ersten Kommunikationskanal (16) zur Übertragung von für die Programmierung des Logikbausteins (12) notwendigen Daten mit dem Logikbaustein (12) verbunden ist, - wobei die Steuereinheit (14) dazu ausgelegt ist, den Logikbaustein (12) während der Laufzeit eines durchzuführenden Prozesses neu zu programmieren.
- Logikeinheit (10) nach
Anspruch 9 , dadurch gekennzeichnet, dass der Logikbaustein (12) als ein FPGA ausgeführt ist. - Logikeinheit (10) nach einem der
Ansprüche 9 oder10 , dadurch gekennzeichnet, dass die Steuereinheit (14) als ein Mikrocontroller, ein FPGA oder ein Computer realisiert ist. - Logikeinheit (10) nach einem der
Ansprüche 9 bis11 , dadurch gekennzeichnet, dass die Steuereinheit (14) über einen zweiten Kommunikationskanal (18) zur Übertragung von Zustandsdaten des Logikbausteins (12) an die Steuereinheit (14) mit dem Logikbaustein (12) verbunden ist.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019126634.3A DE102019126634A1 (de) | 2019-10-02 | 2019-10-02 | Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019126634.3A DE102019126634A1 (de) | 2019-10-02 | 2019-10-02 | Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102019126634A1 true DE102019126634A1 (de) | 2021-04-08 |
Family
ID=74875865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102019126634.3A Pending DE102019126634A1 (de) | 2019-10-02 | 2019-10-02 | Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102019126634A1 (de) |
-
2019
- 2019-10-02 DE DE102019126634.3A patent/DE102019126634A1/de active Pending
Non-Patent Citations (3)
Title |
---|
CORDONE, Roberto, et al.: Partitioning and Scheduling of Task Graphs on Partially Dynamically Reconfigurable FPGAs. In: IEEE transactions on computer-aided design of integrated circuits and systems, 2009, 28. Jg., Nr. 5, S. 662-675. * |
FLEISCHMANN, Josef; BUCHENRIEDER, Klaus; KRESS, Rainer. A Hardware/Software Prototyping Environment for Dynamically Reconfigurable Embedded Systems. In: Proceedings of the Sixth International Workshop on Hardware/Software Codesign. (CODES/CASHE'98). IEEE, 1998. S. 105-109. * |
FLEISCHMANN, Josef; BUCHENRIEDER, Klaus; KRESS, Rainer. Codesign of Embedded Systems Based on Java and Reconfigurable Hardware Components. In: Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078). IEEE, 1999. S. 768-769. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102015208720A1 (de) | Gatetreibereinheit, Gatetreiberschaltung und Treiberverfahren derselben sowie Anzeigevorrichtung | |
EP0010173A1 (de) | Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3507584C2 (de) | ||
EP0231434B1 (de) | In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen | |
DE102016219347A1 (de) | Steuergerät, insbesondere Steuergerät für ein Kraftfahrzeug | |
DE102019126634A1 (de) | Verfahren zum Betreiben eines programmierbaren Logikbausteins und Logikeinheit zur effizienten Durchführung eines vorgegebenen Prozesses | |
EP0042961B1 (de) | Verfahren und Anordnung zur Erzeugung von Impulsen vorgegebener Zeitrelation innerhalb vorgegebener Impulsintervalle mit hoher zeitlicher Auflösung | |
DE2932394A1 (de) | Intelligente, programmierbare prozessteueranordnung | |
EP3289685B1 (de) | Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein | |
DE102018103088A1 (de) | Halbleiterchip sowie vorrichtung und verfahren zum ansteuern zumindest eines kanals für ein radarsignal | |
DE2846686B1 (de) | Programmierbares Schaltwerk | |
EP3242232B1 (de) | Optimierte erzeugung von gesamtnetzliste und bitstrom | |
DE102020133279A1 (de) | Verfahren und schaltung zur steigerung des durchsatzes von rekursiven systemen | |
DE60003847T2 (de) | Universelle vorrichtung sowie verfahren und werkzeuge zu ihrer verwendung | |
DE19947441B4 (de) | Prüfsystem für elektrische Teile | |
AT501880A1 (de) | Speicherprogrammierbare steuerung | |
EP0489281B1 (de) | Anordnung zur Verarbeitung von Signalen im Modulationsweg zu einem Sender | |
AT512066B1 (de) | Steuervorrichtung und Verfahren zur Steuerung einer Bewegung eines Elementes einer Anlage | |
EP1091290B1 (de) | Prozessorsystem mit Speicher- oder Ladebebefehl mit Trenninformation | |
WO2001056154A2 (de) | Digitales filter | |
EP1116107B1 (de) | Verfahren zur ausführung einzelner algorithmen mittels einer rekonfigurierbaren schaltung und vorrichtung zur durchführung eines solchen verfahrens | |
DE10336807B4 (de) | Verfahren und Vorrichtung zur Erweiterung der Funktionalität einer seriellen Schnittstelle sowie ein das Verfahren verwendendes Mobilfunkgerät und ein die Vorrichtung umfassendes Mobilfunkgerät | |
DE102020202013A1 (de) | Verfahren und Steuergerät zum Betreiben einer Brückenschaltung sowie Aktuatorsystem | |
EP1288966B1 (de) | Steuerregister |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009445000 Ipc: G06F0017500000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017500000 Ipc: G06F0030000000 |
|
R016 | Response to examination communication |