DE102017126094A1 - Verfahren zum Auslesen von Variablen aus einem FPGA - Google Patents

Verfahren zum Auslesen von Variablen aus einem FPGA Download PDF

Info

Publication number
DE102017126094A1
DE102017126094A1 DE102017126094.3A DE102017126094A DE102017126094A1 DE 102017126094 A1 DE102017126094 A1 DE 102017126094A1 DE 102017126094 A DE102017126094 A DE 102017126094A DE 102017126094 A1 DE102017126094 A1 DE 102017126094A1
Authority
DE
Germany
Prior art keywords
variable
shadow register
shadow
measuring grid
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017126094.3A
Other languages
English (en)
Inventor
Dominik LUBELEY
Heiko KALTE
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.)
Dspace GmbH
Original Assignee
Dspace GmbH
Dspace Digital Signal Processing and Control Engineering GmbH
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 Dspace GmbH, Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace GmbH
Priority to DE102017126094.3A priority Critical patent/DE102017126094A1/de
Priority to US16/182,637 priority patent/US20190138310A1/en
Publication of DE102017126094A1 publication Critical patent/DE102017126094A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space

Abstract

Verfahren zum Auslesen von Variablen aus einem FPGA zur Laufzeit, wobei in dem FPGA eine erste Variable berechnet wird, wobei der ersten Variablen ein erstes Schattenregister und ein zweites Schattenregister zugeordnet sind, wobei die erste Variable einem ersten Messraster zugeordnet wird, wobei zu einem ersten Zeitpunkt das erste Messraster eine synchrone Speicherung aller dem ersten Messraster zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister bewirkt, wobei die erste Variable einem zweiten Messraster zugeordnet wird, wobei zu einem zweiten Zeitpunkt das zweite Messraster eine synchrone Speicherung aller dem zweiten Messraster zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister bewirkt, wobei die Schattenregister unabhängig voneinander ausgelesen werden.

Description

  • Die Echtzeitsimulation von komplexen, dynamischen Modellen stellt aufgrund der engen zeitlichen Randbedingungen selbst an moderne Rechenknoten hohe Anforderungen. In automotiven Hardware-in-the-Loop-Simulationen (HiL) werden solche Modelle vor allem dort eingesetzt, wo schnelle Regelkreise geschlossen werden müssen. Dies ist etwa bei der Simulation von Zylinderinnendrucksensoren der Fall, die bei der Verbrauchs- oder Abgasreduktion eine zunehmend größere Rolle spielen. Aber auch bei Regelstrecken die eine hohe Dynamik aufweisen, wie zum Beispiel bei Elektromotoren, sind kurze Zykluszeiten und geringe Latenzen unabdingbar. Diese können mit CPU-basierten Simulationen praktisch kaum mehr umgesetzt werden.
  • Field Programmable Gate Arrays (FPGAs) können Rechenknoten bei der Echtzeitsimulation unterstützen, indem sie die Berechnung von dynamischen Teilen eines Modells übernehmen. Durch die hohe Flexibilität und Möglichkeit der Parallelverarbeitung von Signalen lassen sich durch den Einsatz von FPGAs auch harte Echtzeitanforderungen leicht erfüllen. Die FPGAs können als Hardwarebeschleuniger für CPUs von Rechenknoten dienen. Entsprechend werden z.B. sehr dynamische Teile des Umgebungsmodells in das FPGA ausgelagert, so dass ausreichend präzise und schnelle Reaktionszeiten für das Steuergerät gewährleistet bleiben. Eine FPGA-Netzliste wird üblicherweise basierend auf einem FPGA Modell in einer Hardwarebeschreibungssprache in einem Build-Prozess erzeugt.
  • Die Modelle einer Regelstrecke werden durch steigende Anforderungen an die Genauigkeit zunehmend komplexer und somit auch schwer handhabbar. Im automotiven Hil-Umfeld werden solche Modelle in der Regel mit dem Toolset Matlab/Simulink von The MathWorks Inc. erstellt. Simulink bietet eine blockbasierte Sicht in der Form eines Blockschaltbilds auf solche Modelle. Modellteile können in einem Blockschaltbild zu Subsystemen zusammengefasst und untereinander mit Signalen verknüpft werden. Der Datenfluss zwischen diesen Blöcken wird dabei über Signalleitungen dargestellt.
  • Eine FPGA-basierte Simulation kann unter Zuhilfenahme des Xilinx System Generator (XSG) und des FPGA-Programming Blocksets von dSPACE, analog zur CPU-basierten Simulation, in einem Blockschaltbild mit Simulink modelliert werden.
  • Im Gegensatz zur CPU-Simulation wird dieses Modell allerdings nicht in eine iterative Programmiersprache übersetzt, sondern in eine FPGA-Netzliste, die eine kundenspezifische digitale Schaltung beschreibt. Die FPGA-Netzliste kann in einen FPGA-Konfigurationsdatenstrom übersetzt werden. Der FPGA-Konfigurationsdatenstrom konfiguriert einen FPGA so, dass die durch das Modell definierte Schaltung zur Laufzeit ausgeführt wird.
  • Aus der DE102013101300A1 ist ein Verfahren zum Zugriff auf einen Signalwert eines FPGA zur Laufzeit bekannt.
  • Aufgabe der Erfindung ist es den Stand der Technik weiterzubilden.
  • Im Folgenden werden einige Begrifflichkeiten erklärt wie sie hier zu verstehen sind.
  • Unter dem Auslesen einer Variablen wird hier das Auslesen eines zu einem bestimmten Zeitpunkt in einem Register gespeicherten Wertes der Variablen verstanden. Unter der Speicherung einer Variablen in einem Register wird hier das Speichern des aktuellen Wertes der Variablen in einem Register verstanden. Variablen können beliebig viele Bits umfassen und auf mehrere Register verteilt werden.
  • Unter einem Schattenregister werden Register verstanden, die nicht für die im FPGA durchgeführten Berechnungen notwendig sind, sondern Werte von Variablen unabhängig von den laufenden Berechnungen speichern können. Die in den Schattenregistern gespeicherten Werte werden nicht in die laufenden Berechnungen einbezogen. Das Auslesen der Schattenregister kann über verschiedene bekannte Techniken erfolgen. Bspw. können Schattenregister über einen im FPGA vorhandenen „Readback-Mechanismus“ ausgelesen werden. Den „Readback-Mechanismus“ zeichnet aus, dass die Ausgänge der Schattenregister nicht weiterverbunden werden müssen. Es ist folglich kein Verdrahtungsaufwand für die Implementierung der Auslesetechnik notwendig. In einer alternativen Variante werden die Schattenregister über einen oder mehrere Multiplexer mit einem IO-Pin des FPGA verbunden. Es werden dadurch wesentlich weniger IO-Pins als Schattenregister zum Auslesen benötigt. In einer alternativen Variante werden die Schattenregister mit einem Adressdecoder verbunden. Über den Adressdecoder können die Schattenregister einzeln ausgelesen werden.
  • Unter einem Messraster wird hier periodische, aperiodische oder sporadische Auslösung eines Speicher- und Auslesevorgangs verstanden.
  • Unter synchron bzw. gleichzeitig ist hier insbesondere zu verstehen, dass bei getakteten Berechnungen zwei oder mehr Aktionen im gleichen Berechnungsschritt stattfinden. Bspw. kann das FPGA einen Taktgeber enthalten oder an einen Taktgeber angeschlossen sein, wobei das Taktsignal des Taktgebers eine Aktualisierung der Variablen bewirkt. Bevor ein weiteres Taktsignal die Variablen erneut aktualisiert werden alle gleichzeitigen bzw. synchronen Aktionen, bspw. eine synchrone Speicherung mehrerer Variablen, durchgeführt.
  • Unter einem Triggersignal wird hier ein Signal verstanden, das eine vorbestimmte Aktion auslöst. Ein Triggersignal kann bspw. eine Speicherung einer Variablen in einem Schattenregisters bewirken. Ein solches Triggersignal kann bspw. über ein Taktnetz im FPGA verteilt werden. Ein Taktnetz wird üblicherweise verwendet, um ein Taktsignal eines Taktgebers zu verteilen und dadurch, wie oben beschrieben, eine getaktete Berechnung im FPGA zu kontrollieren. Da in einem FPGA eine Vielzahl an Taktnetzen implementiert werden können, können ein oder mehrere Taktnetze für die Kontrolle der Berechnung und weitere Taktnetze für die Verteilung der Triggersignale genutzt werden.
  • Die vorliegende Erfindung betrifft ein Verfahren zum Auslesen von Variablen aus einem FPGA zur Laufzeit. Ebenfalls betrifft die Erfindung eine Datenverarbeitungseinrichtung mit einer Prozessoreinheit und einem FPGA, wobei die Datenverarbeitungseinrichtung zur Durchführung des obigen Verfahrens ausgeführt ist. Auch betrifft die Erfindung ein Computerprogrammprodukt mit Computer-implementierten Anweisungen, das nach dem Laden und Ausführen in einer geeigneten Datenverarbeitungseinrichtung die Schritte des obigen Verfahrens ausführt sowie ein digitales Speichermedium mit elektronisch auslesbaren Steuersignalen, die so mit einer programmierbaren Datenverarbeitungseinrichtung zusammenwirken können, dass das obige Verfahren ausgeführt wird.
  • Erfindungsgemäß ist ein Verfahren zum Auslesen von Variablen aus einem FPGA zur Laufzeit, wobei in dem FPGA eine erste Variable berechnet wird, wobei der ersten Variablen ein erstes Schattenregister und ein zweites Schattenregister zugeordnet sind, wobei die erste Variable einem ersten Messraster zugeordnet wird, wobei zu einem ersten Zeitpunkt das erste Messraster eine synchrone Speicherung aller dem ersten Messraster zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister bewirkt, wobei die erste Variable einem zweiten Messraster zugeordnet wird, wobei zu einem zweiten Zeitpunkt das zweite Messraster eine synchrone Speicherung aller dem zweiten Messraster zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister bewirkt, wobei die Schattenregister unabhängig voneinander ausgelesen werden.
  • Ein Vorteil des erfindungsmäßen Verfahrens ist, dass die Messpunkte der Messraster zeitlich dicht hintereinander liegen können, da der zweite Wert gespeichert werden kann, bevor der erste ausgelesen wurde. Durch das unabhängige Auslesen kann der schneller benötigte Wert zuerst ausgelesen werden, egal welcher zuerst gespeichert wurde. Es ist also weder notwendig den zuerst gespeicherten Wert auszulesen, bevor der zweite Wert gespeichert wird, noch ist es notwendig den zuerst gespeicherten Wert vor dem zweiten Wert auszulesen.
  • Es versteht sich, dass die Anzahl der Schattenregister vergrößert werden kann. Die Anzahl kann dabei bei der Erstellung des FPGA-Programms vom Nutzer direkt oder indirekt vorgegeben werden. Eine indirekte Vorgabe kann bspw. durch die Vorgabe der Anzahl der Messraster, die zur Laufzeit nutzbar sein sollen, erfolgen.
  • Eine Prozessoreinheit kann mit dem FPGA zu einer Datenverarbeitungseinrichtung verbunden werden und kann zur Steuerung des Auslesens verwendet werden. Dazu kann die Prozessoreinheit einen im FPGA vorhandenen Readback-Mechanismus ansprechen. Alternativ kann im FPGA-Programm eine von der Prozessoreinheit ansteuerbare Logik zum Ausgeben der gespeicherten Variablen implementiert werden. Eine solche ansteuerbare Logik kann bspw. ein Adressdecoder sein über den die einzelnen Schattenregister ansprechbar sind.
  • In einer vorteilhaften Ausgestaltung wird in dem FPGA eine zweite Variable berechnet, wobei der zweiten Variablen ein drittes Schattenregister zugeordnet ist, wobei die zweite Variable dem ersten Messraster zugeordnet wird, wobei zum ersten Zeitpunkt die zweite Variable synchron mit der ersten Variablen gespeichert wird.
  • Vorteilhaft ist hierbei, dass die Werte beider Variablen gleichzeitig gespeichert werden. Unter synchron bzw. gleichzeitig ist hier insbesondere zu verstehen, dass bei einer getakteten Berechnung im FPGA beide Variablen im gleichen Taktschritt gespeichert werden. Der FPGA ist also mit einem Taktgeber verbunden oder hat einen internen Taktgeber und in jedem Taktschritt werden die Werte der Variablen aktualisiert. Das erste Messraster bewirkt, dass zwei Variablenwerte, die im gleichen Taktschritt vorliegen, in zwei Schattenregistern gespeichert werden.
  • In einer vorteilhaften Ausgestaltung sind das erste Schattenregister und das zweite Schattenregister parallel geschaltet.
  • Unter parallel geschaltet ist hier zu verstehen, dass beide Register die gleiche Variable als Dateneingang erhalten. Die Speicherung der Variablen kann unabhängig für beide Schattenregister bewirkt werden. Bspw. kann das erste Schattenregister ein anderes Triggersignal empfangen als das zweite Schattenregister.
  • In einer besonders vorteilhaften Ausgestaltung bewirkt das erste Messraster eine Speicherung des Wertes der ersten Variablen im ersten Schattenregister und das zweite Messraster eine Speicherung des Wertes der ersten Variablen im zweiten Schattenregister.
  • Vorteilhaft ist, dass jedes Schattenregister fest einem Messraster zugeordnet wird. In einer speziellen Ausgestaltung erhält eine Vielzahl von Variablen die gleiche Anzahl an parallelen Schattenregistern. Die Anzahl der Schattenregister gibt dann die Anzahl der möglichen Messraster vor. Die feste Zuordnung ermöglicht ein leichtes Auslesen der Schattenregister, da jedes Schattenregister fest je einer Variablen und einem Messraster zugeordnet wird. Für jedes Messraster kann ein eigenes Triggersignal zu den zugeordneten Schattenregistern implementiert werden. Unter einem Triggersignal wird hier ein Signal verstanden, dass vom Messraster ausgelöst wird und eine Speicherung des am Eingang des Schattenregisters anliegenden Wertes bewirkt. Der Wert wird dann im Schattenregister behalten bis ein weiteres Triggersignal eintrifft. Ein solches Triggersignal kann bspw. in Form eines Taktnetzes implementiert werden. Ein Taktnetz wird üblicherweise verwendet, um eine getaktete Berechnung im FPGA zu kontrollieren. Da in einem FPGA eine Vielzahl an Taktnetzen implementiert werden können, können ein oder mehrere Taktnetze für die Kontrolle der Berechnung und weitere Taktnetze für die Verteilung der Triggersignale genutzt werden.
  • Es versteht sich, dass eine größere Anzahl an Schattenregistern parallel geschaltet werden kann. Je mehr parallele Schattenregister implementiert werden, umso mehr Messraster mit eigenem Triggersignal können genutzt werden. In einer Ausgestaltung wird die Anzahl der je Variable implementierten parallelen Schattenregister vom Nutzer bei der Erstellung des FPGA-Programms direkt vorgegeben. In einer alternativen Ausgestaltung wird die Anzahl der zur Laufzeit nutzbaren Messraster vom Nutzer bei der Erstellung des FPGA-Programms vorgegeben und ein Schattenregister je Messraster für jede Variable implementiert. Für jedes Messraster wird ein Taktnetz zur Verteilung des Triggersignals implementiert und für jede Variable das dem jeweiligen Messraster zugeordnete Schattenregister an das jeweilige Taktnetz angeschlossen.
  • In einer alternativen Ausgestaltung sind das erste Schattenregister und das zweite Schattenregister seriell geschaltet.
  • Unter seriell geschaltet ist hier zu verstehen, dass ein Datenausgang des ersten Schattenregister mit einem Dateneingang des zweiten Schattenregisters verbunden ist. Das zweite Schattenregister kann dadurch den im ersten Schattenregister gespeicherten Wert aufnehmen. Beide Schattenregister werden mit dem gleichen Triggersignal angesteuert.
  • Vorteilhaft an dieser Ausgestaltung ist, dass beide Messraster das gleiche Triggersignal nutzen. Es wird also nur ein Signal für beide Messraster benötigt. Dadurch ist die Nutzung von mehr Messrastern, als Taktnetze für die Verteilung der Triggersignale bereit stehen, möglich. In einer Ausgestaltung werden mehr Schattenregister als Messraster implementiert. Bspw. können je Variable doppelt so viele Schattenregister wie Messraster implementiert werden. Die Anzahl der Messraster kann vom Nutzer vorgegeben sein.
  • In einer weiteren Ausgestaltung bewirken das erste Messraster und das zweite Messraster eine Speicherung der ersten Variablen im ersten Schattenregister, wobei der im ersten Schattenregister gespeicherte Wert in das zweite Schattenregister verschoben wird, wobei entsprechend die Zuordnung der Schattenregister zu den Messrastern aktualisiert wird.
  • Die Aktualisierung der Zuordnung der Schattenregister zu den Messrastern kann bspw. in Form eines „Stage-Counters“ geschehen. Der „Stage-Counter“ gibt zu jedem Zeitpunkt an, welches Schattenregister welchem Messraster zugeordnet ist. Das Triggersignal des jeweiligen Messrasters wird an den „Stage-Counter“ übermittelt und die Zuordnung aktualisiert. Das erste Schattenregister wird also zum ersten Zeitpunkt dem ersten Messraster und zum zweiten Zeitpunkt dem zweiten Messraster zugeordnet.
  • Bei einem weiteren Triggersignal geht der im zweiten Schattenregister gespeicherte Wert verloren, daher ist es vorteilhaft mehr seriell geschaltete Schattenregister zu implementieren. Dann wird bei einem Triggersignal der in einem Schattenregister gespeicherte Wert jeweils in das nächste Schattenregister verschoben. In einer vorteilhaften Ausgestaltung wird die Anzahl der zur Laufzeit nutzbaren Messraster vom Nutzer vorgegeben und je Variable doppelt so viele Schattenregister implementiert wie Messraster vorgegeben werden.
  • In einer weiteren Ausgestaltung ist jedem Messraster ein Triggersignal zugeordnet.
  • Jedes Messraster löst das ihm zugeordnet Triggersignal aus. Bei einer parallelen Implementierung der Schattenregister wird das Triggersignal nur an die dem Messraster zugeordneten Schattenregister weitergeleitet. Bei einer seriellen Implementierung der Schattenregister wird das Triggersignal an alle Schattenregister und ggf. an einen „Stage-Counter“ weitergeleitet.
  • In einer vorteilhaften Ausgestaltung wird die Zuordnung der ersten Variable zu einem Messraster zur Laufzeit geändert.
  • Die Zuordnung der Variablen zu den Messrastern bestimmt welche Schattenregister ausgelesen werden. Durch die Änderung der Zuordnung zur Laufzeit kann der Ausleseaufwand dynamisch angepasst werden, da nur diejenigen Schattenregister ausgelesen werden, deren Inhalt benötigt wird. Die Änderung kann die Zuordnung zu dem zweiten Messraster, die Zuordnung zu einem dritten Messraster, oder die Zuordnung zu keinem Messraster sein.
  • In einer Ausgestaltung umfasst ein Auslesevorgang das Auslesen aller mit einem Messraster verknüpften Variablen, die zu einem Zeitpunkt synchron gespeichert wurden.
  • In einer vorteilhaften Ausgestaltung wird die Auslesereihenfolge der Schattenregister in einem Preemptive-Verfahren festgelegt.
  • Vorteilhaft an Preemtive-Verfahren ist, dass ein Auslesevorgang durch einen anderen Auslesevorgang unterbrochen werden kann. Dadurch können kurzfristig benötigte Daten schneller ausgelesen werden, da nicht der laufende Auslesevorgang abgewartet werden muss. Der unterbrochene Auslesevorgang kann an der Unterbrechungsstelle wieder gestartet werden und muss nicht komplett wiederholt werden. Preemptive-Verfahren sind aus dem Stand der Technik bekannt.
  • In einer alternativen Ausgestaltung wird die Auslesereihenfolge in einem Non-Preemptive-Verfahren festgelegt.
  • Non-Preemtive-Verfahren sind vorteilhaft, wenn das Unterbrechen und/oder Starten von Auslesevorgängen zusätzlichen zeitlichen und/oder Implementierungs-Aufwand bedeutet. In Non-Preemptive-Verfahren werden Auslesevorgänge immer komplett ausgeführt und nicht unterbrochen. Non-preemptive-Verfahren sind aus dem Stand der Technik bekannt.
  • In einer Ausgestaltung bewirkt zumindest ein Messraster periodisch eine Speicherung.
  • Eine periodische Speicherung der Variablen ist vorteilhaft, wenn die Daten in einer periodischen Berechnung weiterverarbeitet werden sollen. Bspw. können die Berechnungen im FPGA in Bezug zu einer Simulation auf einem Prozessor stehen, wobei die Simulation in periodischen Zeitschritten berechnet wird, wobei für vorbestimmte Zeitschritte die Variablen aus dem FPGA benötigt werden.
  • In einer Ausgestaltung bewirkt zumindest ein Messraster aperiodisch oder sporadisch eine Speicherung.
  • Eine aperiodische oder sporadische Speicherung ist vorteilhaft, wenn die Daten nur ab und an bspw. bei Auftreten vorbestimmter Bedingungen benötigt werden. Solche Bedingungen können bspw. bestimmte Berechnungsergebnisse der FPGA-Berechnungen oder Ereignisse wie das Eintreffen äußerer Signale von an den FPGA angeschlossene Komponenten oder die Anforderung durch einen Nutzer sein.
  • In einer Ausgestaltung werden die von einem Messraster gespeicherten Daten in einem vorbestimmten Zeitraum ausgelesen.
  • Das Auslesen in einem vorbestimmten Zeitraum ist vorteilhaft, wenn die ausgelesenen Werte in einem Echtzeitkontext weiterverarbeitet werden sollen. Bspw. kann die Datenverarbeitungseinrichtung eine Echtzeitsimulation durchführen oder die ausgelesenen Werte einer Echtzeitsimulation zur Verfügung stellen.
  • Im Folgenden wird die Erfindung anhand von Beispielen näher erläutert. Dabei zeigt:
    • 1 Ein FPGA-Programm mit einer Variablen und zwei parallel geschalteten Schattenregistern,
    • 2 Ein FPGA-Programm mit einer Variablen, zwei parallel geschalteten Schattenregistern und einer internen Auslösung der Speicherung,
    • 3 Ein FPGA-Programm mit zwei Variablen und je zwei parallel geschalteten Schattenregistern für jede Variable,
    • 4 Ein FPGA-Programm mit einer Variablen und zwei seriell geschalteten Schattenregistern,
    • 5 Ein FPGA-Programm mit zwei Variablen und je zwei seriell geschalteten Schattenregistern für jede Variable,
    • 6 Einen „Stage-Counter“ für zwei Messraster mit seriellen Schattenregister,
    • 7 Ein FPGA-Programm mit „Stage-Counter“,
    • 8a, b, einen zeitlichen Ablauf eines erfindungsgemäßen Verfahren.
  • 1 zeigt ein FPGA-Programm 100, das auf einem FPGA implementiert wird. Ein FPGA-Programm wird häufig in Form eines Blockschaltbildes in einer grafischen Programmierumgebung erstellt, ein solches Blockschaltbild ist hier skizziert. Das FPGA-Programm 100 hat einen Dateneingang 101 über den Eingabedaten in das FPGA-Programm 100 fließen. Die Daten werden in einem ersten Logikblock 102 zu einer ersten Variablen 1 verarbeitet. Die erste Variable wird an einen zweiten Logikblock 103, ein erstes Schattenregister 2 und ein zweites Schattenregister 3 weitergeleitet. Der zweite Logikblock 103 erzeugt aus der ersten Variablen 1 Ausgabedaten, die über einen Datenausgang 105 ausgegeben werden. Ein Taktblock 104 liefert ein Taktsignal an den ersten Logikblock 102 und den zweiten Logikblock 103. Der Taktblock kann wie in diesem Beispiel Teil des FPGA-Programms sein, außerhalb des FPGA-Programms im FPGA implementiert sein oder ein Taktsignal kann von außen zum FPGA-Programm geführt werden. Mit jedem Taktschritt erzeugt der erste Logikblock 102 einen neuen Wert für die erste Variable 1. Ein Signal eines ersten Messrasters 4 bewirkt zu einem ersten Zeitpunkt t1, dass das erste Schattenregister 2 den aktuellen Wert der ersten Variablen 1 speichert. Ein Signal eines zweiten Messrasters 5 bewirkt zu einem zweiten Zeitpunkt t2, dass das zweite Schattenregister 3 den aktuellen Wert der ersten Variablen 1 speichert. Die in den Schattenregistern 2, 3 gespeicherten Werte können unabhängig voneinander ausgelesen werden. Das Auslesen kann beispielsweise über einen Readback-Mechanismus geschehen. Der Readback-Mechanismus ist nicht Teil des FPGA-Programms und daher nicht dargestellt. Es kann sein, dass bei der Erstellung des FPGA-Programms der Zugriff über den Readback-Mechanismus ermöglicht werden muss. Bspw. kann es nötig sein bei der Umwandlung eines Programmcodes oder Blockschaltbildes in einen Konfigurationsbitstrom den Zugriff über den Readback-Mechanismus explizit zu berücksichtigen. Der erste Zeitpunkt und der zweite Zeitpunkt können beliebig zueinander liegen. Es ist möglich, dass der zweite Zeitpunkt t2 während des Auslesens des ersten Schattenregisters 2 eintritt.
  • 2 beschreibt ein alternatives FPGA-Programm 100. Im Folgenden werden nur die Unterschiede zu 1 beschrieben. Das Signal des ersten Messrasters 4 und das Signal des zweiten Messrasters 5 werden hier innerhalb des FPGA-Programms 100 durch einen Messrasterblock 106 erzeugt. Der Messrasterblock kann bspw. bei der Initialisierung des FPGA-Programms 100 konfiguriert werden und zur Laufzeit des FPGA-Programms 100 regelmäßig das Signal des ersten Messrasters 4 und das Signal des zweiten Messrasters 5 erzeugen.
  • 3 beschreibt ein alternatives FPGA-Programm 100. Im Folgenden werden nur die Unterschiede zu 1 beschrieben. Der zweite Logikblock 103 erzeugt eine zweite Variable 6. Die zweite Variable 6 wird an einen dritten Logikblock 107, ein drittes Schattenregister 7 und ein viertes Schattenregister 7 weitergeleitet. Der dritte Logikblock erzeugt Ausgabedaten, die über den Datenausgang 105 ausgegeben werden. Das Taktsignal des Taktblocks 104 wird auch an den dritten Logikblock geliefert. Das Signal des ersten Messrasters 4 bewirkt, dass das erste Schattenregister 2 den aktuellen Wert der ersten Variablen 1 speichert und das dritte Schattenregister 7 den Wert der zweiten Variablen 6 speichert. Das Signal des zweiten Messrasters 5 bewirkt, dass das zweite Schattenregister 3 den aktuellen Wert der ersten Variablen 1 speichert und das vierte Schattenregister 8 den Wert der zweiten Variablen 6 speichert. Die vier Schattenregister 2, 3, 7, 8 können unabhängig voneinander ausgelesen werden. Es kann vorgesehen sein, dass mehrere Schattenregister in einem Auslesevorgang ausgelesen werden. Beispielsweise können das erste Schattenregister 2 und das dritte Schattenregister 7 in einem ersten Auslesevorgang ausgelesen werden und das zweite Schattenregister 3 und das vierte Schattenregister 8 in einem zweiten Auslesevorgang ausgelesen werden. Je nach vorgesehener Technik für das Auslesen ist es nicht möglich mehrere Auslesevorgänge gleichzeitig durchzuführen. In diesem Fall werden die Auslesevorgänge nacheinander ausgeführt. Es ist auch möglich, dass ein Auslesevorgang durch einen anderen unterbrochen wird und später fortgesetzt wird. Bspw. kann der erste Auslesevorgang zunächst das erste Schattenregister auslesen, dann vom zweiten Auslesevorgang unterbrochen werden und nachdem der zweite Auslesevorgang das zweite Schattenregister und das vierte Schattenregister ausgelesen hat liest der erste Auslesevorgang das dritte Schattenregister aus. Dies ist vorteilhaft, wenn die Daten des zweiten Auslesevorgangs schneller benötigt werden als die Daten des ersten Auslesevorgangs. Falls dem zweiten Messraster nur die erste Variable aber nicht die zweite Variable zugeordnet wird, wird im zweiten Auslesevorgang nur das zweite Schattenregister ausgelesen.
  • 4 beschreibt ein alternatives FPGA-Programm 100. Im Folgenden werden nur die Unterschiede zu 1 beschrieben. Die erste Variable 1 wird an den zweiten Logikblock 103 und das erste Schattenregister 2 weitergeleitet. Der Ausgang des ersten Schattenregisters 2 ist mit dem Eingang des zweiten Schattenregisters 3 verbunden. Die Signale des ersten Messrasters und des zweiten Messrasters werden über eine gemeinsame Leitung 10 verteilt. Das Signal des ersten Messrasters auf der gemeinsamen Leitung 10 bewirkt zu einem ersten Zeitpunkt t1, dass die erste Variable im ersten Schattenregister 2 gespeichert wird. Das Signal des zweiten Messrasters auf der gemeinsamen Leitung 10 bewirkt zu einem zweiten Zeitpunkt t2, dass der im ersten Schattenregister 2 gespeicherte Wert im zweiten Schattenregister 3 gespeichert wird und die erste Variable 1 im ersten Schattenregister 2 gespeichert wird. Der zum ersten Zeitpunkt t1 gespeicherte Wert geht also nicht verloren sondern wird in das zweite Schattenregister 3 verschoben und im ersten Schattenregister 2 der aktuelle Wert gespeichert.
  • 5 beschreibt ein alternatives FPGA-Programm 100. Im Folgenden werden nur die Unterschiede zu 4 beschrieben. Der zweite Logikblock 103 erzeugt eine zweite Variable 6. Die zweite Variable 6 wird an einen dritten Logikblock 107 und ein drittes Schattenregister 7 weitergeleitet. Der Ausgang des dritten Schattenregisters 7 ist mit dem Eingang des vierten Schattenregisters 8 verbunden. Der dritte Logikblock erzeugt Ausgabedaten, die über den Datenausgang 105 ausgegeben werden. Das Taktsignal des Taktblocks 104 wird auch an den dritten Logikblock geliefert.
  • Das Signal des ersten Messrasters 4 wird in einem Kombinationsblock 106 auf die gemeinsame Leitung 10 gelegt. Das gemeinsame Signal 10 bewirkt zu einem ersten Zeitpunkt t1, dass die erste Variable im ersten Schattenregister 2 gespeichert wird und die zweite Variable 6 im dritten Schattenregister 7 gespeichert wird. Das Signal des zweiten Messrasters 5 wird ebenfalls im Kombinationsblock 106 auf die gemeinsame Leitung 10 gelegt. Das gemeinsame Signal 10 bewirkt zu einem zweiten Zeitpunkt t2, dass der im ersten Schattenregister 2 gespeicherte Wert im zweiten Schattenregister 3 gespeichert wird, die erste Variable 1 im ersten Schattenregister 2 gespeichert wird, der im dritten Schattenregister 7 gespeicherte Wert im vierten Schattenregister 8 gespeichert wird und die zweite Variable 6 im dritten Schattenregister 7 gespeichert wird. Der zum zweiten Zeitpunkt t2 gespeicherte Wert geht also nicht verloren sondern wird in das vierte Schattenregister 8 verschoben und im dritten Schattenregister 7 der aktuelle Wert der zweiten Variablen gespeichert.
  • 6 zeigt einen „Stage-Counter“. Ein „Stage-Counter“ 110 ist eine Möglichkeit bei seriell implementierten Schattenregistern wie in den 4 und 5 die Zuordnung der Schattenregister zu den Messrastern festzuhalten. Im „Stage-Counter“ 110 sind ein erster Zähler C1 und ein zweiter Zähler C2 implementiert. Der erste Zähler C1 gibt einen ersten Zählerwert 111 aus und der zweite Zähler C2 gibt einen zweiten Zählerwert 112 aus. Der erste Zählerwert 111 gibt an, in welchem der einer Variablen zugeordneten Schattenregister der zuletzt vom ersten Messraster 4 gespeicherte Wert gespeichert ist. Der zweite Zählerwert 112 gibt an, in welchem einer Variablen zugeordneten Schattenregister der zuletzt vom zweiten Messraster 5 gespeicherte Wert gespeichert ist. Das Signal des ersten Messrasters 4 bewirkt zum ersten Zeitpunkt t1, dass der erste Zähler C1 als ersten Zählerwert 111 „eins“ ausgibt und der zweite Zähler C2 den zweiten Zählerwert 112 um eins erhöht. Der erste Zählerwert 111 gibt damit an, dass die vom ersten Messraster 4 zum ersten Zeitpunkt t1 gespeicherte erste Variable 1 im ersten Schattenregister 2 gespeichert ist und von dort ausgelesen werden kann. Das Signal des zweiten Messrasters 5 bewirkt zum zweiten Zeitpunkt t2, dass der erste Zähler C1 den ersten Zählerwert 111 um eins erhöht und der zweite Zähler C2 als zweiten Zählerwert 112 „eins“ ausgibt. Der erste Zählerwert 111 gibt damit an, dass die vom ersten Messraster 4 zum ersten Zeitpunkt t1 gespeicherte erste Variable 1 im zweiten Schattenregister 3 gespeichert ist und von dort ausgelesen werden kann. Der zweite Zählerwert 112 gibt damit an, dass die vom zweiten Messraster 5 zum zweiten Zeitpunkt t2 gespeicherte erste Variable 1 im ersten Schattenregister 2 gespeichert ist und von dort ausgelesen werden kann. In 5 stellt bezogen auf die zweite Variable 6 das dritte Schattenregister 7 das erste Schattenregister dar und das vierte Schattenregister 8 das zweite Schattenregister dar. Entsprechend sind die Zählerwerte für die zweite Variable zu deuten. Für mehr Messraster werden im „Stage-Counter“ entsprechend mehr Zähler implementiert. Übersteigt ein Zählerwert die Anzahl der für eine Variable implementierten seriellen Schattenregister, so ist der Wert für das entsprechende Messraster verloren gegangen. Es ist daher vorteilhaft eine große Anzahl an Schattenregistern zu implementieren. Bspw. können je Variable doppelt so viele Schattenregister wie Messraster implementiert werden.
  • 7 beschreibt ein alternatives FPGA-Programm 100. Im Folgenden werden nur die Unterschiede zu 5 beschrieben. Die Signale des ersten Messrasters 4 und des zweiten Messrasters 5 werden nicht nur an den Kombinationsblock 106 sondern auch an den „Stage-Counter“ 110 weitergeleitet. Der erste Zählerwert 111 und der zweite Zählerwert 112 werden an eine Ausleselogik 113 weitergeleitet. Die Ausleselogik 113 bestimmt welche Schattenregister ausgelesen werden. Die Ausleselogik 113 kann dazu mit dem Readback-Mechanismus verbunden sein oder die Informationen einem anderen Auslesemechanismus zur Verfügung stellen.
  • 8a zeigt einen zeitlichen Ablauf eines erfindungsgemäßen Verfahrens. Zu einem Zeitpunkt t1 bewirkt das erste Messraster 4 eine Speicherung der dem ersten Messraster 4 zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister. Während einer ersten Zeitdauer p1 werden die dem ersten Messraster 4 zugeordneten Schattenregister ausgelesen. Innerhalb der ersten Zeitdauer p1 liegt ein zweiter Zeitpunkt t2. Zu dem zweiten Zeitpunkt t2 bewirkt das zweite Messraster 5 eine Speicherung der dem zweiten Messraster 5 zugeordneten Variablen in einem der jeweiligen Variablen zugeordneten Schattenregister. Während einer zweiten Zeitdauer p2 werden die dem zweiten Messraster 5 zugeordneten Schattenregister ausgelesen. Die zweite Zeitdauer p2 liegt hier komplett hinter der ersten Zeitdauer p1.
  • 8b zeigt einen alternativen zeitlichen Ablauf eines erfindungsgemäßen Verfahrens. Im Folgenden werden nur die Unterschiede zu 8a beschrieben. Die erste Zeitdauer p1 wird hier unterteilt in einen ersten Abschnitt p1.1 vor der zweiten Zeitdauer p2 und einen zweiten Abschnitt p1.2 hinter der zweiten Zeitdauer p2. Bezogen auf das FPGA-Programm aus 3 kann bspw. zunächst im ersten Abschnitt p1.1 vor der zweiten Zeitdauer p2 das erste Schattenregister 2 ausgelesen werden, in der zweiten Zeitdauer p2 das zweite Schattenregister 3 ausgelesen werden und in dem zweiten Abschnitt p1.2 nach der zweiten Zeitdauer p2 das dritte Schattenregister 7 ausgelesen werden. Bezogen auf das FPGA-Programm 100 aus 1 kann bspw. die erste Variable 1 eine Vielzahl von Bits aufweisen und zum ersten Zeitpunkt t1 in einer Vielzahl von Schattenregistern, die zusammen das erste Schattenregister 2 bilden, gespeichert werden. Im ersten Abschnitt der ersten Zeitdauer p1.1 wird ein Teil des ersten Schattenregisters 2 ausgelesen, in der zweiten Zeitdauer p2 das zweite Schattenregister 3 ausgelesen und im zweiten Abschnitt der ersten Zeitdauer p1.2 der restliche Teil des ersten Schattenregisters 2 ausgelesen. Bezogen auf das FPGA-Programm 100 aus 5 kann bspw. zum ersten Zeitpunkt t1 die erste Variable 1 im ersten Schattenregister 2 und die zweite Variable 6 im dritten Schattenregister 7 gespeichert werden. Im ersten Abschnitt der ersten Zeitdauer p1.1 wird das dritte Schattenregister 7 ausgelesen. Zum zweiten Zeitpunkt t2 wird der Wert des ersten Schattenregister 2 in das zweite Schattenregister 3 verschoben, der des dritten Schattenregisters 7 in das vierte Schattenregister 8 verschoben, die erste Variable im ersten Schattenregister 2 gespeichert und die zweite Variable 6 im dritten Schattenregister 7 gespeichert. Die Zuordnung der Schattenregister zu den Messrastern wird entsprechend aktualisiert. In der zweiten Zeitdauer p2 werden das erste Schattenregister 2 und das dritte Schattenregister 7 ausgelesen. Im zweiten Abschnitt der ersten Zeitdauer p1.2 wird das zweite Schattenregister 3 ausgelesen.
  • Es ist möglich auf einem FPGA mehrere FPGA-Programme 100 gleichzeitig zu betreiben. Für jedes einzelne FPGA-Programm 100 kann unabhängig von den anderen ein erfindungsgemäßes Verfahren genutzt werden. Mehrere FPGA-Programme 100 können sich ein Taktsignal eines Taktblocks 104 teilen oder mit unterschiedlichen Taktsignalen arbeiten. Ein FPGA-Programm 100 kann auch ein Unterprogramm eines größeren FPGA-Programms 100 sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 102013101300 A1 [0006]

Claims (18)

  1. Verfahren zum Auslesen von Variablen aus einem FPGA (100) zur Laufzeit, wobei in dem FPGA eine erste Variable (1) berechnet wird, wobei der ersten Variablen (1) ein erstes Schattenregister (2) und ein zweites Schattenregister (3) zugeordnet sind, wobei die erste Variable (1) einem ersten Messraster (4) zugeordnet wird, wobei zu einem ersten Zeitpunkt (t1) das erste Messraster (4) eine synchrone Speicherung aller dem ersten Messraster (4) zugeordneten Variablen (1) in einem der jeweiligen Variablen (1) zugeordneten Schattenregister (2, 3) bewirkt, dadurch gekennzeichnet, dass die erste Variable (1) einem zweiten Messraster (5) zugeordnet wird, wobei zu einem zweiten Zeitpunkt (t2) das zweite Messraster (5) eine synchrone Speicherung aller dem zweiten Messraster (5) zugeordneten Variablen (1) in einem der jeweiligen Variablen (1) zugeordneten Schattenregister (2, 3) bewirkt, wobei die Schattenregister (1, 2) unabhängig voneinander ausgelesen werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in dem FPGA (100) eine zweite Variable (6) berechnet wird, wobei der zweiten Variablen (6) ein drittes Schattenregister (7) zugeordnet ist, wobei die zweite Variable (6) dem ersten Messraster (4) zugeordnet wird, wobei zum ersten Zeitpunkt (t1) die zweite Variable (6) synchron mit der ersten Variablen (1) gespeichert wird
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Schattenregister (2) und das zweite Schattenregister (3) parallel geschaltet sind.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das erste Messraster (4) eine Speicherung der ersten Variablen (1) im ersten Schattenregister (2) bewirkt und das zweite Messraster (5) eine Speicherung der ersten Variablen (1) im zweiten Schattenregister (3) bewirkt.
  5. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das erste Schattenregister (2) und das zweite Schattenregister (3) seriell geschaltet sind.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das erste Messraster (4) und das zweite Messraster (5) eine Speicherung der ersten Variablen (1) im ersten Schattenregister (2) bewirken, wobei der im ersten Schattenregister (2) gespeicherte Wert zum zweiten Zeitpunkt (t2) in das zweite Schattenregister (3) verschoben wird, wobei entsprechend die Zuordnung der Schattenregister (2, 3) zu den Messrastern (4, 5) aktualisiert wird.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jedem Messraster (4, 5) ein Triggersignal zugeordnet ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Zuordnung der ersten Variablen (1) zu einem Messraster (4, 5) zur Laufzeit geändert wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Auslesereihenfolge der Schattenregister (2, 3, 7, 8) in einem Preemptive-Verfahren festgelegt wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Auslesereihenfolge der Schattenregister (2, 3, 7, 8) in einem Non-Preemptive-Verfahren festgelegt wird.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Auslesevorgang das Auslesen aller mit einem Messraster (4, 5) verknüpften Variablen (1, 6), die zu einem Zeitpunkt (t1, t2) synchron gespeichert wurden, umfasst.
  12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein Messraster (4, 5) periodisch eine Speicherung bewirkt.
  13. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein Messraster (4, 5) aperiodisch oder sporadisch eine Speicherung bewirken.
  14. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die von einem Messraster (4, 5) gespeicherten Daten in einem vorbestimmten Zeitraum ausgelesen werden.
  15. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Schattenregister (2, 3, 7, 8) über einen Readback-Mechanismus ausgelesen werden.
  16. Datenverarbeitungseinrichtung mit einer Prozessoreinheit und einem FPGA, wobei die Datenverarbeitungseinrichtung zur Durchführung des obigen Verfahrens ausgeführt ist.
  17. Computerprogrammprodukt mit Computer-implementierten Anweisungen, das nach dem Laden und Ausführen in einer geeigneten Datenverarbeitungseinrichtung die Schritte des obigen Verfahrens ausführt.
  18. Digitales Speichermedium mit elektronisch auslesbaren Steuersignalen, die so mit einer programmierbaren Datenverarbeitungseinrichtung zusammenwirken können, dass das obige Verfahren ausgeführt wird.
DE102017126094.3A 2017-11-08 2017-11-08 Verfahren zum Auslesen von Variablen aus einem FPGA Pending DE102017126094A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017126094.3A DE102017126094A1 (de) 2017-11-08 2017-11-08 Verfahren zum Auslesen von Variablen aus einem FPGA
US16/182,637 US20190138310A1 (en) 2017-11-08 2018-11-07 Method for reading out variables from an fpga

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017126094.3A DE102017126094A1 (de) 2017-11-08 2017-11-08 Verfahren zum Auslesen von Variablen aus einem FPGA

Publications (1)

Publication Number Publication Date
DE102017126094A1 true DE102017126094A1 (de) 2019-05-09

Family

ID=66179309

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017126094.3A Pending DE102017126094A1 (de) 2017-11-08 2017-11-08 Verfahren zum Auslesen von Variablen aus einem FPGA

Country Status (2)

Country Link
US (1) US20190138310A1 (de)
DE (1) DE102017126094A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021133835A1 (de) 2021-12-20 2023-06-22 Dspace Gmbh Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013101300A1 (de) 2013-02-11 2014-08-14 Dspace Digital Signal Processing And Control Engineering Gmbh Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243804B1 (en) * 1998-07-22 2001-06-05 Scenix Semiconductor, Inc. Single cycle transition pipeline processing using shadow registers
US20180004877A1 (en) * 2016-05-27 2018-01-04 Synopsys, Inc. Method and Apparatus for Collecting Signal Values in FPGA Based Emulation Machine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013101300A1 (de) 2013-02-11 2014-08-14 Dspace Digital Signal Processing And Control Engineering Gmbh Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021133835A1 (de) 2021-12-20 2023-06-22 Dspace Gmbh Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung

Also Published As

Publication number Publication date
US20190138310A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
EP2954440B1 (de) Verändern eines signalwerts eines fpga zur laufzeit
DE102013213473A1 (de) Schaltungsanordnung und Betriebsverfahren hierfür
EP4128539A1 (de) Verfahren zur zeitlich synchronisierten eingabe und/oder ausgabe von signalen mit wählbarer abtastrate
EP3244326B1 (de) Verfahren zum erstellen einer fpga-netzliste
WO2007014404A1 (de) Digitale rechnereinrichtung mit parallelverarbeitung
DE112014007188T5 (de) Steuerungsvorrichtung, Steuerungsverfahren und Programm
DE102017126094A1 (de) Verfahren zum Auslesen von Variablen aus einem FPGA
DE102016100643A1 (de) Analog-Digital-Wandler-Schaltungen und Verfahren zum Betreiben derselben
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
DE102009025572A1 (de) Eine Methode zur Entwicklung von garantiert korrekten Echtzeitsystemen
DE102013114508B4 (de) Blockbasierte Signalverarbeitung
DE102007034684A1 (de) Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
AT501880B1 (de) Speicherprogrammierbare steuerung
EP3242232B1 (de) Optimierte erzeugung von gesamtnetzliste und bitstrom
DE102012016610A1 (de) Echtzeit-Schaltungssimulation
EP3244325B1 (de) Verfahren zur zeitlich synchronisierten ausgabe und/oder zeitlich synchronisierten verarbeitung von signalen
DE102019107817A1 (de) Verfahren zur Simulation eines dynamischen Systems
DE19637369C2 (de) Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren
DE102005039771B3 (de) Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA
DE102015121128B4 (de) Verfahren und Vorrichtung zum beschleunigten Zugriff auf Signale eines programmierbaren Logikbausteins
EP2916183B1 (de) Verfahren zur Erzeugung eines auf einem Steuerungssystem ausführbaren Steuerungsprogramms
DE102017216823A1 (de) Verarbeitungseinheit, elektronische steuereinheit und verarbeitungsverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: DSPACE GMBH, DE

Free format text: FORMER OWNER: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GMBH, 33102 PADERBORN, DE