DE102021133835A1 - Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung - Google Patents

Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung Download PDF

Info

Publication number
DE102021133835A1
DE102021133835A1 DE102021133835.2A DE102021133835A DE102021133835A1 DE 102021133835 A1 DE102021133835 A1 DE 102021133835A1 DE 102021133835 A DE102021133835 A DE 102021133835A DE 102021133835 A1 DE102021133835 A1 DE 102021133835A1
Authority
DE
Germany
Prior art keywords
monitoring circuit
reprogramming
arrangement
input
gate array
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
DE102021133835.2A
Other languages
English (en)
Inventor
Dominik LUBELEY
Heiko KALTE
Marc SCHLENGER
Jürgen Klahold
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
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 filed Critical Dspace GmbH
Priority to DE102021133835.2A priority Critical patent/DE102021133835A1/de
Priority to PCT/EP2022/081957 priority patent/WO2023117215A1/de
Publication of DE102021133835A1 publication Critical patent/DE102021133835A1/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]

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)

Abstract

Die Anmeldung betrifft ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal (C1, C2, C3, C4, C5, C6) zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal (C1, C2, C3, C4, C5, C6) zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales (C1, C2, C3, C4, C5, C6) zu speichern.Das Verfahren weist die Schritte auf:Empfangen einer Eingabe,In Abhängigkeit von der Eingabe:Hinzufügen eines Übertragungskanals (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neu-programmierung der programmierbaren Gatteranordnung (10),wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.Nach der Neuprogrammierung ist die Gatteranordnung (10) eingerichtet, den im Schattenregister (VTP) gespeicherten Wert über den Übertragungskanal (14) an die Überwachungsschaltung (20) zu übertragen und die Überwachungsschaltung (20) ist eingerichtet, den übertragenen Wert zwischenzuspeichern.Die Anmeldung betrifft weiter eine Anordnung (100) zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10).

Description

  • Die Anmeldung betrifft ein Verfahren und eine Anordnung zur Programmierung einer programmierbaren Gatteranordnung, welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten.
  • Eine programmierbare Gatteranordnung ist ein integrierter Schaltkreis der Digitaltechnik, der sich auf einem Board befindet und in den eine logische Schaltung geladen werden kann. Mittels einer logischen Schaltung können Funktionen ausgeführt und Signale verarbeitet werden. Ein Beispiel für eine programmierbare Gatteranordnung ist ein FPGA (Field Programmable Gate Array). Beim Entwurf einer programmierbaren Gatteranordnung kann zunächst eine Systembeschreibung erstellt werden. Eine Systembeschreibung kann z. B. mittels einer Hardwarebeschreibungssprache wie z. B. VHDL oder Verilog erfolgen. Aus einer solchen Systembeschreibung kann dann mittels Synthese eine Beschreibung auf Logikebene, z. B. in Form einer Netzliste, generiert werden, welche insbesondere eine Beschreibung der Verdrahtung der Schaltung und/oder eine Verknüpfung von Rechenelementen und/oder Speicherelementen und/oder Logikschaltungselementen wie bspw. UND-Gattern, ODER-Gattern etc. in Textform erzeugt. Die Rechenelemente und die Speicherelemente sind Schaltungselemente der Gatteranordnung. Optional ist/sind ein Rechenelement oder mehrere Rechenelemente innerhalb eines Blocks oder eines sogenannten Subsystems angeordnet oder einem Block oder Subsystem zugeordnet. Ein Block und ein Subsystem in dem vorliegenden Kontext ist ein Bereich innerhalb der programmierbaren Gatteranordnung, wobei der Bereich üblicherweise vorgesehen ist, eine - durch die Systembeschreibung vorbestimmte - Aufgabe, bspw. eine Datenverarbeitungsaufgabe, zu erfüllen. Dazu kann der Block oder das Subsystem über Eingang/Eingänge und/oder über Ausgang/Ausgänge verfügen.
  • Zur Erstellung und/oder Beeinflussung der Systembeschreibung können beispielsweise Computersoftware-Programme, wie z.B. sogenannte Modellierungssoftware-Programme, mit einer graphischen Benutzeroberfläche beitragen. Es gibt beispielsweise graphische Benutzeroberflächen mit Blockbibliotheken zur Auswahl von Funktionsblöcken, die ein graphisches Symbol für jeden Block oder für jedes Subsystem anzeigen, wobei beispielsweise eine Beeinflussung eines Blocks oder eines Subsystems durch einen Anwender mittels der graphischen Benutzeroberfläche zu einer Veränderung eines korrespondierenden Anteils der Systembeschreibung führt. Es können beispielsweise Funktionszuweisungen zu einem Block oder Subsystem der programmierbaren Gatteranordnung mittels der graphischen Modellierungssoftware erfolgen.
  • Mittels des sogenannten Routings wird das sogenannte Design erzeugt, das zusätzlich die Anordnung der Schaltungselemente und des Verlaufs der Verdrahtung auf dem Board erzeugt. Eine programmierbare Gatteranordnung kann dadurch programmiert werden, dass ein sogenannter Bitstream auf das Board geladen wird. Die Programmierung kann auch als Konfiguration bezeichnet werden. Der Bitstream ist spezifisch für die Hardware des Boards und wird aus dem Design erzeugt. Nach der Einspeisung des Bitstreams, Programmierung genannt, ist die programmierbare Gatteranordnung eingerichtet, eine Funktion der logischen Schaltung auszuführen und hierzu Signale zu verarbeiten.
  • Programmierbare Gatteranordnungen werden z. B. in Rapid Control Prototyping (RCP) oder Hardware in the Loop (HiL) Echtzeitsystemen angewendet. Ein Messen von Variablen der Simulationsmodelle zur Laufzeit der Simulation ist z. B. über dSPACE ControlDesk möglich.
  • In EP3739479A1 wird ein Verfahren zur Fehlersuche in der Programmlogik einer programmierbaren Gatteranordnung beschrieben. Hierfür ist auf der programmierbaren Gatteranordnung neben den Elementen der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, eine Überwachungsschaltung programmiert, über die ein Wert eines Signales der Funktion auslesbar ist. Die programmierbare Gatteranordnung wird zunächst mit den Elementen der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sowie der Überwachungsschaltung programmiert. Eine Signalleitung, die einen Übertragungskanal zwischen der Überwachungsschaltung und dem Speicherort des Signalwertes herstellt, wird in einem zweiten Schritt programmiert.
  • Mittels der Überwachungsschaltung kann der Wert des Signales der Funktion aus dem Teil der Gatteranordnung, der die Funktion realisiert, ausgelesen werden. Die Überwachungsschaltung umfasst hierfür einen Signaleingang und ist eingerichtet, den Wert des am Signaleingang anliegenden Signals auszulesen. Die Überwachungsschaltung umfasst weiter einen Speicher, um den ausgelesenen Signalwert zu speichern.
  • Der Anmeldung liegt die Aufgabe zugrunde, den Entwurf der programmierbaren Gatteranordnung weiter zu verbessern.
  • Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 bzw. durch eine Anordnung mit den Merkmalen des unabhängigen Patentanspruchs 14 gelöst.
  • Eine programmierbare Gatteranordnung ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung eine Überwachungsschaltung und ein dem zumindest einen Signal zugeordnetes Schattenregister aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern. Ein Schattenregister ist dabei ein Speicher der programmierbaren Gatteranordnung, in den ein Wert des zugeordneten Signales gespeichert wird, während die Funktion der Gatteranordnung ausgeführt wird.
  • Ein Verfahren zur partiellen Neuprogrammierung einer solchen programmierbaren Gatteranordnung weist die Schritte auf:
    • • Empfangen einer Eingabe,
    • • In Abhängigkeit von der Eingabe: Hinzufügen eines Übertragungskanals zwischen dem Schattenregister und der Überwachungsschaltung durch partielle Neuprogrammierung der programmierbaren Gatteranordnung.
    Hierbei sind die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, unberührt von der partiellen Neuprogrammierung. Dies bedeutet, dass die Neuprogrammierung nur teilweise ist und die zuvor bereits programmierte Schaltung unberührt lässt. Damit wird der Übertragungskanal, der durch die partielle Neuprogrammierung eingefügt wird, ohne Veränderung der logischen Schaltung, die zum Ausführen der Funktion vorgesehen ist, programmiert. Hierdurch können Zeit, Kosten und weiterer Testaufwand eingespart werden. Die partielle Neuprogrammierung beeinflusst jedoch das Routing von dem zumindest einen Schattenregister zur Überwachungsschaltung, indem ein Übertragungskanal von dem Schattenregister zur Überwachungsschaltung gemäß einer Routingvorgabe im Zuge der partiellen Neuprogrammierung eingefügt wird.
  • Die Gatteranordnung ist nach der partiellen Neuprogrammierung eingerichtet, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Überwachungsschaltung zu übertragen und die Überwachungsschaltung ist eingerichtet, den übertragenen Wert zwischenzuspeichern. Die Überwachungsschaltung ist zudem eingerichtet weitere Werte zwischenzuspeichern.
  • Ein Signal kann ein Wert wie z. B. ein Messwert oder ein Wert einer Variablen der Funktion sein. Ein Signal kann dabei auch ein rein berechneter Wert, ein z. B. aus einem Messwert gewandelter Wert oder auch ein Zwischenwert sein. Ein Signal kann z. B. dann einem Schattenregister zugeordnet werden, wenn potenziell ein Interesse daran besteht, den Wert des Signales über die Überwachungsschaltung auszulesen. Das Signal kann optional innerhalb eines Blocks erzeugt werden. Der Block stellt einen abgrenzbaren Bereich innerhalb der programmierbaren Gatteranordnung dar. Zu den Blöcken zählen im Kontext der Erfindung beispielsweise sogenannte Subsysteme, also Teilsysteme aufweisend spezielle Funktionen eines übergeordneten Systems. Ein Signal, welches von einem Block ausgeht, kann zum Beispiel innerhalb des Blocks berechnet oder beeinflusst werden, bspw. unter Verwendung eines/mehrerer Eingangswertes/Eingangswerte des Blocks. In bestimmten Ausgestaltungen des Blocks kann das Signal unabhängig von Eingangswerten zyklisch innerhalb des Blocks generiert werden. Abhängig von einer Ausgestaltung des Blocks kann ein innerhalb des Blocks erzeugtes oder durchgeleitetes Signal via Ausgang/Ausgänge des Blocks ausgegeben werden.
  • Vorteilhaft ist es, das Hinzufügen des Übertragungskanals gesteuert durch die Eingabe vorzunehmen. Hierdurch kann durch einen Anwender z. B. über eine Eingabeeinheit ausgewählt werden, dass der im Schattenregister vorhandene Wert, über den dann in Folge der Eingabe hinzugefügten Übertragungskanal in der Überwachungsschaltung zur Verfügung steht und dort zwischengespeichert werden kann. Hierdurch werden Flexibilität und die Anwenderfreundlichkeit verbessert. Insbesondere ist es möglich, gezielt das Schattenregister auszuwählen, zu dem ein Wert in der Überwachungsschaltung zwischen gespeichert werden soll und diesen Wert zur Laufzeit, also während der Ausführung der Funktion, in der Überwachungsschaltung zwischenzuspeichern. Diese Auswahl kann flexibel immer wieder angepasst werden.
  • Eine programmierbare Gatteranordnung, insbesondere ein FPGA, wird häufig für zeitkritische Simulations-Berechnungen, wie z. B. HiL-Simulationen, verwendet.
  • Diese zeitkritischen Simulationen werden zur Laufzeit einer Simulation zyklisch - z. B. in einer Taktfrequenz der Gatteranordnung - ausgeführt.
  • In einer Ausführungsform ist das zumindest eine Schattenregister so ausgestaltet, dass die Funktion unabhängig von dem Schattenregister ausführbar ist. Das Schattenregister ist damit ein Speicher der Gatteranordnung, der so konfiguriert ist, dass die in ihm gespeicherten Werte nicht weiter für das Ausführen der Funktion verwendet werden. Die Werte befinden sich - bildlich gesprochen - in einer Sackgasse der Funktion. Sie sind vorgesehen, bei Bedarf durch einen Übertragungskanal mit der Überwachungsschaltung verbunden zu werden und darüber ausgelesen, in der Überwachungsschaltung zwischengespeichert und ggf. weiter verwendet zu werden. Besonders vorteilhaft ist es dabei, solche Schattenregister so auszugestalten, dass sie während des Entwurfsprozesses der programmierbaren Gatteranordnung geschützt sind. Während des Entwurfsprozesses bedeutet geschützt sein, dass solche Elemente weiter vorhanden bleiben und nicht z. B. aus Effizienzgründen entfernt werden. Durch einen solchen Schutz wird vermieden, dass Schattenregister während des Entwurfsprozesses in einem der Entwurfsschritte aus Optimierungsgründen entfernt werden, da sie ja für die Ausführung der eigentlichen Funktion der Gatteranordnung nicht gebraucht werden. Damit ist bevorzugt vorgesehen, dass das zumindest eine - bevorzugt alle - Schattenregister, nachdem diese(s) in einer Initialisierungsphase des Entwurfsprozesses angelegt wurde(n), vor einem Löschen geschützt ist/sind. Dieser Schutz kann die Schritte des Entwurfsprozesses betreffen oder auch die partielle Neuprogrammierung der Gatteranordnung. Außerdem ist der Ort des Schattenregisters in der Schaltung der Gatteranordnung bekannt und/oder anhand einer Repräsentanz des Bitstreams softwareunterstützt ermittelt und/oder die Position des zum Schattenregister gehörigen Bit im Bitstream bekannt, mit der die Gatteranordnung programmiert wird.
  • In einer Ausführungsform des Verfahrens werden mehrere übertragene Werte in der Überwachungsschaltung zwischengespeichert. Die in die Überwachungsschaltung übertragenen Werte werden insbesondere jeweils mit einem Zeitstempel zwischengespeichert. Eine von mehreren Ausführungsformen der Zeitstempelung ist, dass der Zeitstempel in der Überwachungsschaltung mit dem gespeicherten Wert verknüpft wird, dies entspricht der Zuordnung des Wertes zu dem Zeitstempel. Bei der Zeit für den Zeitstempel kann es sich zum Beispiel um eine Systemzeit der Gatteranordnung handeln, die für die Gatteranordnung als Ganzes gültig ist. Es kann sich auch um eine übergeordnete Zeit handeln, auf die die Gatteranordnung durch Kommunikation synchronisiert ist. Die Überwachungsschaltung ist also dafür eingerichtet, mehrere übertragene Werte zwischenzuspeichern, insbesondere jeweils zusammen mit einem Zeitstempel zwischenzuspeichern. Hierfür kann die Überwachungseinrichtung z. B. mit einem Ringspeicher ausgestattet sein, in den zyklisch neu aus dem Schattenregister ankommende Werte gespeichert werden, wobei der jeweils älteste Wert durch den jeweils neu ankommenden Wert überschrieben wird. In der Überwachungsschaltung können z. B. 100 oder 1000 übertragene Werte zwischengespeichert werden.
  • In einer Ausführungsform des Verfahrens erfolgt die Übertragung an die Überwachungsschaltung und Zwischenspeicherung dort innerhalb eines konfigurierbaren und/oder vordefinierbaren Zeitintervalls. Das Zeitintervall entspricht dabei insbesondere einer Taktdauer der Gatteranordnung. Eine Taktdauer der Gatteranordnung kann bei einer Taktfrequenz von z. B. 125 MHz 8 ns betragen. Eine Gatteranordnung kann auch mehrere verschiedene Taktfrequenzen aufweisen, z. B. kann eine Funktion einer Gatteranordnung mit einer Taktfrequenz von z. B. 100 MHz getaktet sein und eine andere mit z. B. 200 MHz. Entsprechend kann das Zeitintervall dann einem der beiden Taktdauern der Gatteranordnung entsprechen. Vorteilhaft wird hier die längere der verschiedenen Taktdauern als Zeitintervall für die Übertragung an die Überwachungsschaltung und Zwischenspeicherung dort gewählt. Die Zwischenspeicherung in der Überwachungsschaltung erfolgt z. B. in einem BlockRAM der Überwachungsschaltung. Eine Überwachungsschaltung kann z. B. 2-10 Mbyte BlockRAM aufweisen. Die partielle Neuprogrammierung mit Hinzufügen der Übertragungskanäle bietet hierbei den großen Vorteil, dass die gesamte Taktdauer für die Übertragung vom Schattenregister zur Überwachungsschaltung zur Verfügung steht und dies unabhängig von Rechenoperationen ist, die für die Funktion der Gatteranordnung ausgeführt werden.
  • In einer Ausführungsform des Verfahrens stellt die Überwachungsschaltung in Abhängigkeit von einem Ereignis zwischengespeicherte Werte für eine Aufzeichnung bereit. Dabei kann es sich um einen oder bevorzugt mehrere oder alle der aktuell in der Überwachungsschaltung zwischengespeicherten Werte handeln. Bei dem Ereignis kann es sich um einen Trigger handeln, der das Bereitstellen für die Aufzeichnung auslöst. Der Trigger kann von der Eingabe und/oder von zumindest einem der in der Überwachungsschaltung zwischengespeicherten Werte abhängen. Zum Zeitpunkt des Auftretens des Triggers wird ebenfalls ein Zeitstempel erzeugt und dem Trigger-Ereignis zugeordnet. Der Trigger kann insbesondere eine Flanke eines in der Überwachungsschaltung zwischengespeicherten Signales und/oder ein absoluter Wert des Signales sein. Konkret kann ein Trigger in der Überwachungsschaltung dadurch erkannt werden, dass ein zu ihr geroutetes Signal, als Triggerquelle dient und z.B. eine ansteigende Flanke dieses Signals als Triggerbedingung dient. Bevorzugt erfolgt die Auswahl der Triggerbedingung ebenfalls über eine Eingabe durch einen Anwender, die empfangen wird.
  • Die Überwachungsschaltung kann dabei auch Werte des Signals vor dem aufzeichnen, indem z. B. permanent die empfangenen Werte des Signals gespeichert werden. In einer Pre-Trigger Einstellung kann z. B. ebenfalls durch Empfang einer Eingabe durch den Benutzer aber z. B. eingestellt werden, dass eine bestimmte Anzahl Werte gespeichert bleiben. Die Anzahl kann z. B. 1000 sein. Dies würde bedeuten, dass der Signal-Speicher gefüllt wird, bis er voll ist, allerdings bleiben die z.B. 1000 Werte im Speicher, da z.B. 1000 Werte in den Pre-Trigger Einstellungen eingestellt wurden. Der Speicher kann z. B. als Ringspeicher umgesetzt werden.
  • In einer Ausführungsform des Verfahrens wird die Eingabe über die graphische Benutzeroberfläche einer Eingabeeinheit empfangen. Durch die Überwachungsschaltung bereitgestellte Werte werden aufgezeichnet und auf einer graphischen Benutzeroberfläche einer Ausgabeeinheit ausgegeben. Die Eingabe erfolgt insbesondere durch „Drag & Drop“, wobei z. B. ein Wert durch Anwahl mit einem Zeigerinstrument durch einen Anwender ausgewählt werden kann und in einen Bereich gezogen werden kann, wo dann z. B. die in der Überwachungsschaltung zwischengespeicherte Signalwerte insbesondere als Kurvenverlauf angezeigt werden können. Der Vorteil dieses Vorgehens besteht darin, dass der Übertragungskanal nach der Auswahl durch den Nutzer durch partielle Neuprogrammierung gelegt wird und die eigentliche Funktion der Gatteranordnung nicht beeinflusst wird. Hierdurch kann nach der Eingabe schnell eine Ausgabe auf der Ausgabeeinheit, die z. B. einen Ausgabebereich auf einem Bildschirm aufweisen kann, erfolgen.
  • Die mit den Werten gespeicherten Zeitstempel können bevorzugt gemeinsam mit den Werten bereitgestellt und aufgezeichnet werden. An dieser Stelle ist dann z. B. eine Korrektur möglich, die durch verschiedene Taktfrequenzen auf einem Board der Gatteranordnung möglich sind.
  • In einer Ausführungsform des Verfahrens ist zu mehreren Signalen der Gatteranordnung jeweils ein Schattenregister vorgesehen. In Abhängigkeit von der Eingabe wird zu einem oder mehreren Schattenregistern jeweils ein Übertragungskanal durch partielle Neuprogrammierung hinzugefügt. Die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sind dabei unabhängig von der partiellen Neuprogrammierung. Durch eine Eingabe können somit ein oder mehrere Signale ausgewählt werden. Zu den ausgewählten Signalen können die Übertragungskanäle durch partielle Neuprogrammierung ohne Einfluss auf die Funktion der Gatteranordnung hinzugefügt werden. Der Signalverlauf kann dann auf der Ausgabeeinheit angezeigt werden - ähnlich zu einem Oszilloskop.
  • Über die graphische Benutzeroberfläche kann ebenfalls z. B. auch der zuvor beschriebene Pre-Trigger wie die zuvor beschriebene Trigger-Bedingung z. B. durch einen Anwender durch eine Eingabe eingestellt und/oder ausgewählt werden.
  • In einer Ausführungsform des Verfahrens sind auf der programmierbaren Gatteranordnung mehrere Überwachungsschaltungen vorgesehen. Es können Übertragungskanäle zu einer oder zu mehreren der Überwachungsschaltungen durch partielle Neuprogrammierung hinzugefügt werden. Dies bedeutet, dass insbesondere bei mehreren Signalen mit zugeordnetem Schattenregister, die Übertragungskanäle optional auch zu verschiedenen Überwachungsschaltungen gelegt werden können. Dies kann vorteilhaft sein, um z. B. Last auf mehrere Überwachungsschaltungen verteilen zu können.
  • In einer Ausführungsform des Verfahrens wird durch die partielle Neuprogrammierung zumindest ein Übertragungskanal entfernt. Die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sind unabhängig von der partiellen Neuprogrammierung. Dies bietet den Vorteil der weiteren Flexibilisierung des Verfahrens. Ausgelöst durch die Eingabe, können z. B. Signale die zuvor ausgewählt waren, danach wieder abgewählt werden. Der zugehörige Übertragungskanal auf der Gatteranordnung wird dann nach der Eingabe, die die Abwahl des Signals bedeutet, wieder durch die partielle Neuprogrammierung entfernt. So können flexibel Signale gewählt und wieder abgewählt werden, um sie sich z. B. anzeigen zu lassen oder nicht mehr anzeigen zu lassen.
  • In einer Ausführungsform des Verfahrens wird die programmierbare Gatteranordnung vor der partiellen Neuprogrammierung durch eine Programmierung eingerichtet, die zumindest eine Funktion auszuführen und das zumindest eine Signal zu verarbeiten. Diese Programmierung ist die sogenannte initiale Programmierung Bei dem Entwurfsprozess zu dieser initialen Programmierung und insbesondere in dieser initialen Programmierung selbst, also insbesondere in dem zu der initialen Programmierung gehörigen Bitstream, ist dabei bereits der durch die partielle Neuprogrammierung hinzufügbare Übertragungskanal vorgesehen. Bevorzugt werden Routing-Ressourcen der Gatteranordnung, insbesondere des FPGA, bereits in der initialen Programmierung der Gatteranordnung, insbesondere des FPGA, reserviert, um die reservierten Routing-Ressourcen später in der partiellen Neuprogrammierung für einen oder mehrere (neue und/oder weitere) Übertragungskanäle von dem/den Schattenregister/n zur Überwachungsschaltung zu verwenden.
  • In einer Ausführungsform des Verfahrens ist der Übertragungskanal in einem Bitstream der Programmierung vorgesehen und die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream. Ein partieller Bitstream ist ein Bitstream zur Programmierung der Gatteranordnung, welcher Elemente zu den bereits bestehenden Elementen der Gatteranordnung hinzufügt und/oder entfernt, wobei die bereits bestehenden Elemente der Funktion der Gatteranordnung davon unberührt bleiben, d. h. davon unabhängig sind.
  • In einer Ausführungsform des Verfahrens werden nach der Programmierung, insbesondere der initialen Programmierung, nicht mehr benötigte Elemente der Gatteranordnung gelöscht, bevor die partielle Neuprogrammierung erfolgt. Das Löschen kann z. B. unmittelbar nach der initialen Programmierung erfolgen oder aber kurz vor der partiellen Neuprogrammierung. Durch das Löschen kann die Gatteranordnung z. B. von Elementen befreit werden, die nur in der Initialphase nötig waren. Hierdurch kann z. B. Platz auf dem Board geschaffen werden und/oder Speicher freigegeben werden.
  • In einer Ausführungsform des Verfahrens wird die Programmierung, z. B. die initiale Programmierung, und/oder die partielle Neuprogrammierung durch einen Prozessor durchgeführt. Der Prozessor kann entweder Bestandteil der programmierbaren Gatteranordnung sein oder über eine Schnittstelle mit der programmierbaren Gatteranordnung verbunden sein. Die Verbindung über eine Schnittstelle ermöglicht auch z. B. eine Anordnung in einem Gerät, das z. B. die Eingabeeinheit und/oder die Ausgabeeinheit aufweist. Die Verbindung über eine Schnittstelle ermöglicht auch die Anordnung des Prozessors auf einem separaten Prozessorboard, das optional gemeinsam mit dem Board der Gatteranordnung in einem Gehäuse untergebracht sein kann.
  • Eine programmierbare Gatteranordnung ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung eine Überwachungsschaltung und ein dem zumindest einen Signal zugeordnetes Schattenregister aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern, wobei die Funktion unabhängig von dem Schattenregister ausführbar ist. Das Speichern des Signales in dem zugeordneten Schattenregister erfolgt insbesondere zur Laufzeit, das heißt, während die Funktion der Gatteranordnung ausgeführt wird. Elemente der Gatteranordnung, welche zum Ausführen der Funktion benötigt werden, sind in einem sogenannten Funktionsbereich der Gatteranordnung angeordnet. Insbesondere die Überwachungsschaltung kann außerhalb des Funktionsbereiches angeordnet sein.
  • Eine Anordnung zur partiellen Neuprogrammierung einer solchen programmierbaren Gatteranordnung weist eine Eingabeeinheit und einen Prozessor auf. Die Eingabeeinheit ist vorgesehen und eingerichtet, eine Eingabe, insbesondere durch einen Anwender, zu empfangen. Der Prozessor ist vorgesehen und eingerichtet, in Abhängigkeit von der Eingabe einen Übertragungskanal zwischen dem Schattenregister und der Überwachungsschaltung durch partielle Neuprogrammierung der programmierbaren Gatteranordnung hinzuzufügen, wobei die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.
  • Nach der partiellen Neuprogrammierung ist die Gatteranordnung eingerichtet, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Überwachungsschaltung zu übertragen. Die Übertragung erfolgt insbesondere zur Laufzeit, d. h. während der Ausführung der Funktion. Die Überwachungsschaltung ist eingerichtet, den übertragenen Wert zwischenzuspeichern. Insbesondere ist die Überwachungsschaltung eingerichtet, mehrere Werte zwischenzuspeichern. Dies kann z. B. in einem Ringspeicher erfolgen.
  • In einer Ausführungsform der Anordnung weisen die Eingabeeinheit und/oder die Ausgabeeinheit eine graphische Benutzeroberfläche auf. Die Eingabe ist insbesondere durch „Drag & Drop“ vorgesehen.
  • Im Folgenden wird die Anmeldung anhand von in den Figuren dargestellten Ausführungsbeispielen weiter erläutert und beschrieben.
    • 1 zeigt beispielhaft ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung,
    • 2 zeigt beispielhaft eine Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung,
    • 3 zeigt beispielhaft eine weitere Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung.
  • In den Figuren sind gleiche oder ähnliche Elemente mit den gleichen Bezugszeichen bezeichnet.
  • 1 zeigt ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung 10 (2, 3).
  • In Schritt S1 wird eine Eingabe von einer Eingabeeinheit 52 (2, 3) empfangen. Mittels der Eingabe wird durch einen Anwender ausgewählt, ob er ein oder mehrere Signale C1, C2, C3, C4, C5, C6 auf einer Ausgabeeinheit 54 ausgegeben haben will. Zugleich kann durch die Eingabe ausgewählt werden, welches der Signale C1, C2, C3, C4, C5, C6 der Anwender ausgegeben haben will.
  • In Schritt S2 werden in Abhängigkeit von der Eingabe, also von der Auswahl durch den Anwender, jeweils ein Übertragungskanal 14 zwischen einem der ausgewählten Signale C1, C2, C3, C4, C5, C6 zugeordneten Schattenregister VTP der Gatteranordnung 10 und einer Überwachungsschaltung 20 der Gatteranordnung 10 durch partielle Neuprogrammierung der programmierbaren Gatteranordnung 10 hinzugefügt. Dabei sind die Elemente der Gatteranordnung 10, die zum Ausführen einer Funktion der Gatteranordnung 10 vorgesehen sind, unabhängig von der partiellen Neuprogrammierung. Das heißt, dass die Elemente, die zum Ausführen der Funktion benutzt werden, durch die partielle Neuprogrammierung nicht geändert werden.
  • Durch den hinzugefügten Übertragungskanal oder die hinzugefügten Übertragungskanäle wird es ermöglicht, den in dem Schattenregister VTP oder in den Schattenregistern VTP gespeicherten Wert über den Übertragungskanal 14 oder die Übertragungskanäle 14 an die Überwachungsschaltung 20 zu übertragen. Die Überwachungsschaltung 20 ist eingerichtet, für jedes Schattenregister VTP den übertragenen Wert zwischenzuspeichern. Weitere in der Folge an die Überwachungsschaltung 20 übertragene Werte werden ebenfalls in der Überwachungsschaltung zwischengespeichert, so dass eine Abfolge von Werten des dem jeweiligen Schattenregister VTP zugeordneten Signales C1, C2, C3, C4, C5, C6 in der Überwachungsschaltung zwischengespeichert wird.
  • In Schritt S3 werden auf eine Triggerbedingung hin, die zwischengespeicherten Werte durch die Überwachungsschaltung 20 bereitgestellt, aufgezeichnet und auf einer Ausgabeeinheit 54 ausgegeben. Die Aufzeichnung der bereitgestellten Werte kann dabei z. B. in der Überwachungsschaltung selbst oder in einem Gerät 50 erfolgen, welches zugleich die Ausgabeeinheit 54 aufweisen kann.
  • In 2 ist ein Ausführungsbeispiel einer Anordnung 100 zur partiellen Neuprogrammierung einer programmierbaren Gattenanordnung 10 dargestellt.
  • Die programmierbaren Gatteranordnung 10 ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal C1, C2, C3, C4, C5, C6 zu verarbeiten. Die Gatteranordnung 10 weist einen Funktionsbereich 12 auf, welcher Elemente aufweist, die zum Ausführen der Funktion verwendet werden. Diese Elemente umfassen z. B. Register R1, R2, R3, die Signale C1, C2, C3, C4, C5, C6 und den Input/Output IO1, IO2. Über die Register R1, R2, R3, kann z. B. mit einem Prozessor P kommuniziert werden. Über den Input/Output IO1, IO2 können analoge Signale zur Verfügung gestellt oder empfangen werden. Die ebenfalls im Funktionsbereich angeordneten Schattenregister VTP können den aktuellen Wert des jeweils zugeordneten Signals C1, C2, C3, C4, C5, C6 speichern, währen die Funktion ausgeführt wird. Die Schattenregister VTP sind zwar im Funktionsbereich 12 in räumlicher Nähe zu den zugeordneten Signalen C1, C2, C3, C4, C5, C6 angeordnet. Die Schattenregister VTP sind jedoch unabhängig von der Funktion von nicht Bestandteil von dieser. Darüber hinaus weist die Gatteranordnung 10 eine Überwachungsschaltung 20 auf, welche z. B. als sogenannter Debug-Core ausgebildet sein kann. Ein Debug-Core ist im vorliegenden Kontext ein für die Überwachung vorgesehener Bereich der programmierbaren Gatteranordnung, der durch die Programmierung der Gatteranordnung mit programmiert wird und - wie die Funktion der Gatteranordnung - durch Schaltungselemente realisiert ist.
  • Bevorzugt kann von jedem Schattenregister VTP aus ein Übertragungskanal 14 zu der Überwachungsschaltung 20 hinzugefügt werden. Signalwerte Si1, Si2, die über den Übertragungskanal an die Überwachungsschaltung 20 übermittelt werden, können in ihr gespeichert werden. Für den Anwender stehen dann also alle Schattenregister VTP für die Eingabe und damit die Auswahl auf einer Eingabeeinheit 52 zur Verfügung. Damit können die Schattenregister VTP wie virtuelle Test-Punkte behandelt werden, zu denen bei Bedarf die Signalwerte auf einer Ausgabeeinheit 54 angezeigt werden können.
  • Über eine Schnittstelle I3 ist die programmierbare Gatteranordnung 10 mit einem Prozessor P verbunden. Über den Prozessor P kann die Gatteranordnung 10 durch Laden eines Bitstreams auf die Gatteranordnung 10 programmiert werden. Die Gatteranordnung 10 und der Prozessor P können gemeinsam in einem Gehäuse 30 angeordnet sein. Das Gehäuse 30 kann z. B. ein Schaltschrank sein und die Gatteranordnung kann als FPGA-Board über einen Einschub in den Schaltschrank eingeschoben sein. Der Prozessor P kann als Prozessorboard ausgebildet sein und über einen Einschub in den Schaltschrank eingeschoben sein.
  • Der Prozessor P ist über eine Schnittstelle 12 mit einem Kommunikationsknoten K verbunden, welcher wiederum über eine Schnittstelle I1 mit einem Gerät 50 verbunden ist. Der Knoten K stellt eine Kommunikationsverbindung zwischen dem Prozessor P und dem Gerät 50 her. Diese Kommunikationsverbindung kann drahtgebunden oder drahtlos ausgebildet sein.
  • Das Gerät 50 weist zwei Bildschirmbereiche 50.1 und 50. 2 auf. Der Bereich 50.1 weist die Eingabeeinheit 52 und der Bereich 50.2 weist die Ausgabeeinheit 54 auf. Die Eingabeeinheit 52 und die Ausgabeeinheit 54 sind als eine grafische Benutzeroberfläche des Gerätes 50 ausgebildet. Bei dem Gerät 50 kann es sich z. B. um einen PC oder Laptop oder eine andere portable Recheneinheit handeln. Auf der Eingabeeinheit 52 kann ein Element, z. B. der Name eines Signales C1, C2 durch „Drag & Drop“ DD ausgewählt und auf die Ausgabeeinheit 54 gezogen werden. Damit ist die Eingabe erfolgt, dass das Element ausgewählt ist und auf der Ausgabeeinheit 54 angezeigt werden soll. Dabei können mehrere Elemente ausgewählt und angezeigt werden. Auf der Eingabeeinheit 52 kann außerdem ausgewählt werden in welcher Form SC, PL die Ausgabe erfolgen soll. Möglich Ausgabeformen sind z. B. in Art eines Oszilloskops SC, als Plot PL, Balkendarstellung oder ähnliches. Das Gerät 50 kann mit mehreren FPGA-Boards Bo1, Bo2 verbunden sein, die jeweils Gatteranordnungen aufweisen können. Auf der Eingabeeinheit 52 kann ausgewählt werden zu welchem Board Bo1, Bo2 die Signalwerte C1, C2 ausgewählt werden sollen und die Darstellung der Ausgabeeinheit 54 erfolgen soll.
  • Bei der partiellen Neuprogrammierung durch den Prozessor P gemäß Schritt S2 (1) werden Übertragungskanäle 14 von den Schattenregistern VTP derjenigen Signale zur Überwachungsschaltung hinzugefügt, die im vorherigen Schritt durch die Eingabe ausgewählt wurden. Die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream, der durch den Prozessor P über die Schnittstelle I3 auf die Gatteranordnung 10 geladen wird.
  • Nach dem Hinzufügen der Übertragungskanäle 14 werden in der Überwachungsschaltung 20 Werte aus den Schattenregistern VTP zwischengespeichert. Die zwischengespeicherten Werte können an das Gerät 50 übertragen werden und dort auf der Ausgabeeinheit 54 ausgegeben werden. Beispielsweise ist eine kontinuierliche zeitliche Ausgabe der Signale C1, C2, C3, C4, C5, C6 möglich oder aber eine triggergesteuerte.
  • Die Signale C1, C2, C3, C4, C5, C6 werden in einer Ausführungsform der Erfindung innerhalb eines jeweils korrespondierenden Blocks, bspw. eines korrespondierenden Subsystems, B1, B2, B3, B4, B5, B6 erzeugt, bspw. aus jeweiligen Eingangswerten der zugeordneten Blöcke B1, B2, B3, B4, B5, B6 berechnet. Die Signale werden in der letztgenannten Ausführungsform des Weiteren via Ausgänge der Blöcke B1, B2, B3, B4, B5, B6 ausgegeben. Die Ausgänge sind in 2 und in 3 durch Pfeile symbolisch dargestellt, die von den jeweiligen Blöcken B1, B2, B3, B4, B5, B6 ausgehen und direkt auf jeweils einen benachbarten Verbindungspunkt zeigen, der jeweils mit einem zugeordneten Schattenregister VTP verbunden ist.
  • Bei einer triggergesteuerten Ausgabe kann ebenfalls über die Eingabeinheit 52 eingegeben werden, welche Art von Triggerbedingung gelten soll. Die Triggerbedingung wird dann über den Knoten K und den Prozessor P an die Überwachungsschaltung 20 übertragen. In der Überwachungsschaltung 20 wird dann überwacht, wann die Triggerbedingung zutrifft und daraufhin die unter die Triggerbedingung fallenden Werte bereitgestellt. Nach Übertragung an das Gerät 50 können diese dann auf der Ausgabeeinheit 54 ausgegeben werden.
  • Ist die Triggerbedingung z. B. eine ansteigende Flanke eines Signals C1, und als Pre-Trigger Einstellung 1000 eingegeben worden, so wird von der Überwachungsschaltung 20 das Signal C1 überwacht. Wird dabei eine ansteigende Flanke erkannt, so ist die Triggerbedingung erfüllt. Dann werden die 1000 letzten Werte von C1, die zwischengespeichert sind, und neu ankommende Werte bereitgestellt. Die bereitgestellten Werte werden dann z. B. im Gerät aufgezeichnet und ausgegeben.
  • In 3 ist ein weiteres Ausführungsbeispiel einer Anordnung 100 zur partiellen Neuprogrammierung einer programmierbaren Gattenanordnung 10 dargestellt.
  • Die programmierbaren Gatteranordnung 10 weist wie die Gatteranordnung 20 aus 2 einen Funktionsbereich 12 auf. Dessen Aufbau und Funktion ist ähnlich zu dem aus 2. Über die Register R1, R2, R3, kann z. B. mit einem Prozessor P' kommuniziert werden. Darüber hinaus weist die Gatteranordnung 10 eine Überwachungsschaltung 20 auf, welche wie in 2 z. B. als sogenannter Debug-Core ausgebildet sein kann. In dieser Ausführungsform ist ein Prozessor P' auf dem Board der Gatteranordnung 10 angeordnet. Über den Prozessor P' kann die Gatteranordnung 10 durch Laden eines Bitstreams auf die Gatteranordnung 10 programmiert werden. Das Gehäuse 30 kann z. B. ein Schaltschrank sein und die Gatteranordnung kann als FPGA-Board über einen Einschub in den Schaltschrank eingeschoben sein. Das FPGA-Board kann zugleich den Prozessor P' aufweisen.
  • Der Prozessor P' ist über eine Schnittstelle I2 mit einem Kommunikationsknoten K verbunden, welcher wiederum über eine Schnittstelle I1 mit einem Gerät 50 verbunden ist. Der Knoten K stellt eine Kommunikationsverbindung zwischen dem Prozessor P' und dem Gerät 50 her. Diese Kommunikationsverbindung kann drahtgebunden oder drahtlos ausgebildet sein.
  • Das Gerät weist eine Eingabeeinheit 52 und eine Ausgabeeinheit 54 auf, die als eine grafische Benutzeroberfläche des Gerätes 50 ausgebildet sind. Bei dem Gerät 50 kann es sich z. B. um einen PC oder Laptop oder eine andere portable Recheneinheit handeln. Auf der Eingabeeinheit kann ein Element, z. B. der Name eines Signales C1, C2 durch ausgewählt werden und auf die Ausgabeeinheit 54 gezogen werden. Damit ist durch „Drag & Drop“ DD die Eingabe erfolgt, dass das Element ausgewählt ist und auf der Ausgabeeinheit 54 angezeigt werden soll. Dabei können mehrere Elemente ausgewählt und angezeigt werden.
  • Bei der partiellen Neuprogrammierung durch den Prozessor P' gemäß Schritt S2 (1) werden Übertragungskanäle 14 von den Schattenregistern VTP derjenigen Signale zur Überwachungsschaltung hinzugefügt, die im vorherigen Schritt durch die Eingabe ausgewählt wurden. Die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream, der über den Prozessor P' auf die Gatteranordnung 10 geladen wird.
  • Nach dem Hinzufügen der Übertragungskanäle 14 werden in der Überwachungsschaltung 20 Werte aus den Schattenregistern VTP zwischengespeichert. Die zwischengespeicherten Werte können an das Gerät 50 übertragen werden und dort wie oben in Bezug auf 2 beschrieben auf der Ausgabeeinheit 54 ausgegeben werden. Möglich ist z. B. eine kontinuierliche zeitliche Ausgabe der Signale C1, C2, C3, C4, C5, C6 oder aber eine triggergesteuerte.
  • Bezugszeichenliste
  • 10
    programmierbare Gatteranordnung
    12
    Funktionsbereich
    14
    Übertragungskanal
    20
    Debug-Core
    30
    Gehäuse
    50
    Gerät
    50.1, 50.2
    Bildschirmbereich
    52
    Eingabeeinheit
    54
    Ausgabeeinheit
    100
    Anordnung
    I1, I2, I3
    Schnittstelle
    B1, B2, B3, B4, B5, B6
    Block
    Bo1, Bo2
    Board
    C1, C2, C3, C4, C5, C6
    Signal
    Si1, Si2
    Signalwerte
    DD
    Drag & Drop
    SC, PL
    Ausgabearten
    VTP
    Schattenregister
    R1, R2, R3
    Register
    IO1, IO2
    Input/Output
    P, P'
    Prozessor
    K
    Knoten
    S1, S2, S3
    Verfahrensschritte
  • 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
    • EP 3739479 A1 [0006]

Claims (15)

  1. Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal (C1, C2, C3, C4, C5, C6) zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal (C1, C2, C3, C4, C5, C6) zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales (C1, C2, C3, C4, C5, C6) zu speichern, aufweisend die Schritte • Empfangen einer Eingabe, • In Abhängigkeit von der Eingabe: Hinzufügen eines Übertragungskanals (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neuprogrammierung der programmierbaren Gatteranordnung (10), wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind, • wobei die Gatteranordnung nach der Neuprogrammierung eingerichtet ist, den im Schattenregister (VTP) gespeicherten Wert über den Übertragungskanal (14) an die Überwachungsschaltung (20) zu übertragen und wobei die Überwachungsschaltung (20) eingerichtet ist, den übertragenen Wert zwischenzuspeichern.
  2. Verfahren nach Anspruch 1, wobei mehrere übertragene Werte in der Überwachungsschaltung zwischengespeichert werden, insbesondere jeweils zusammen mit einem Zeitstempel zwischengespeichert werden.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Übertragung und Zwischenspeicherung innerhalb eines konfigurierbaren Zeitintervalls erfolgt, wobei das Zeitintervall insbesondere einem Takt der Gatteranordnung (10) entspricht.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Überwachungsschaltung (20) in Abhängigkeit von einem Ereignis zwischengespeicherte Werte für eine Aufzeichnung bereitstellt.
  5. Verfahren nach Anspruch 4, wobei es sich bei dem Ereignis um einen Trigger handelt, der das Bereitstellen für die Aufzeichnung auslöst, wobei der Trigger von der Eingabe und/oder von zumindest einem der in der Überwachungsschaltung (20) zwischengespeicherten Werte abhängt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei • die Eingabe über die graphische Benutzeroberfläche einer Eingabeeinheit (52) empfangen wird, und • durch die Überwachungsschaltung (20) bereitgestellte Werte aufgezeichnet und auf einer graphischen Benutzeroberfläche einer Ausgabeeinheit (54) ausgegeben werden, wobei die Eingabe insbesondere durch „Drag & Drop“ erfolgt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei zu mehreren Signalen der Gatteranordnung (10) jeweils ein Schattenregister (VTP) vorgesehen ist und in Abhängigkeit von der Eingabe zu einem oder mehreren Schattenregistern (VTP) jeweils ein Übertragungskanal (14) durch partielle Neuprogrammierung hinzugefügt wird, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.
  8. Verfahren nach Anspruch 7, wobei auf der programmierbaren Gatteranordnung (10) mehrere Überwachungsschaltungen (20) vorgesehen sind und Übertragungskanäle (14) zu einer oder zu mehreren der Überwachungsschaltungen (20) durch partielle Neuprogrammierung hinzugefügt werden.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei durch die partielle Neuprogrammierung zumindest ein Übertragungskanal (14) entfernt wird, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die programmierbare Gatteranordnung (10) vor der partiellen Neuprogrammierung durch eine Programmierung eingerichtet wird, die zumindest eine Funktion auszuführen und das zumindest eine Signal zu verarbeiten, wobei die Programmierung den durch die partielle Neuprogrammierung hinzufügbaren Übertragungskanal (14) bereits vorsieht.
  11. Verfahren nach Anspruch 10, wobei der Übertragungskanal (14) in einem Bitstream der Programmierung vorgesehen ist und die partielle Neuprogrammierung durch einen partiellen Bitstream erfolgt.
  12. Verfahren nach Anspruch 10 oder 11, wobei nach der Programmierung nicht mehr benötigte Elemente der Gatteranordnung (10) gelöscht werden, bevor die partielle Neuprogrammierung erfolgt.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Programmierung und/oder die partielle Neuprogrammierung durch einen Prozessor (P, P') durchgeführt wird, der entweder Bestandteil der programmierbaren Gatteranordnung (10) ist oder über eine Schnittstelle (I3) mit der programmierbaren Gatteranordnung verbunden ist.
  14. Anordnung (100) zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern, wobei die Funktion unabhängig von dem Schattenregister (VTP) ausführbar ist, wobei die Anordnung eine Eingabeeinheit (52) und einen Prozessor (P, P') aufweist, wobei die Eingabeeinheit (52) vorgesehen und eingerichtet ist, eine Eingabe zu empfangen und der Prozessor (P, P') vorgesehen und eingerichtet ist, in Abhängigkeit von der Eingabe einen Übertragungskanal (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neuprogrammierung der programmierbaren Gatteranordnung (10) hinzuzufügen, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind, wobei die Gatteranordnung nach der Neuprogrammierung eingerichtet ist, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Überwachungsschaltung (20) zu übertragen und wobei die Überwachungsschaltung (20) eingerichtet ist, den übertragenen Wert zwischenzuspeichern.
  15. Anordnung nach Anspruch 14, wobei die Eingabeeinheit (52) und/oder die Ausgabeeinheit (54) eine graphische Benutzeroberfläche aufweisen und die Eingabe insbesondere durch „Drag & Drop“ vorgesehen ist.
DE102021133835.2A 2021-12-20 2021-12-20 Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung Pending DE102021133835A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021133835.2A DE102021133835A1 (de) 2021-12-20 2021-12-20 Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung
PCT/EP2022/081957 WO2023117215A1 (de) 2021-12-20 2022-11-15 Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021133835.2A DE102021133835A1 (de) 2021-12-20 2021-12-20 Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung

Publications (1)

Publication Number Publication Date
DE102021133835A1 true DE102021133835A1 (de) 2023-06-22

Family

ID=84627541

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021133835.2A Pending DE102021133835A1 (de) 2021-12-20 2021-12-20 Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung

Country Status (2)

Country Link
DE (1) DE102021133835A1 (de)
WO (1) WO2023117215A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764079A (en) 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US8686753B1 (en) 2011-04-08 2014-04-01 Altera Corporation Partial reconfiguration and in-system debugging
DE102017126094A1 (de) 2017-11-08 2019-05-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Auslesen von Variablen aus einem FPGA
EP3739479A1 (de) 2019-05-14 2020-11-18 dSPACE digital signal processing and control engineering GmbH Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3244326B1 (de) * 2016-05-10 2021-07-07 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764079A (en) 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US8686753B1 (en) 2011-04-08 2014-04-01 Altera Corporation Partial reconfiguration and in-system debugging
DE102017126094A1 (de) 2017-11-08 2019-05-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Auslesen von Variablen aus einem FPGA
EP3739479A1 (de) 2019-05-14 2020-11-18 dSPACE digital signal processing and control engineering GmbH Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. L. Hutchings and J. Keeley. Rapid post-map insertion of embedded logic analyzers for xilinx fpgas. In 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom ComputingMachines, pages 72–79, May 2014.

Also Published As

Publication number Publication date
WO2023117215A1 (de) 2023-06-29

Similar Documents

Publication Publication Date Title
DE10045568B4 (de) Ereignisgestütztes Halbleiterprüfsystem
DE69835106T2 (de) Eingebetteter logischer Analysator
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE19700513C2 (de) Mit CAD-Daten verknüpftes Halbleiterprüfsystem
DE3900248C2 (de) Verfahren zur schnellen Ablaufsteuerung digitaler Testmuster und Vorrichtung zur Durchführung des Verfahrens
DE19949377A1 (de) Automatische Speicherung einer Trigger-Definition in einem Signalmeßsystem
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE3800757A1 (de) Mit hoher geschwindigkeit arbeitende anordnung zum steuern eines schaltungspruefgeraetes
DE10118139A1 (de) Ereignungsgestütztes Prüfsystem mit Pinkalibrierdatenspeicherung in einem leistungsunabhängigen Speicher
EP2954440B1 (de) Verändern eines signalwerts eines fpga zur laufzeit
DE10034405A1 (de) Verfahren und System zum Programmieren von FPGAs auf PC-Karten ohne zusätzliche Hardware
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE10007427B4 (de) Ereignisgestütztes Prüfsystem
DE102013101300A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
DE102021133835A1 (de) Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung
DE102011103861A1 (de) Funktionseinheit, Simulationssystem und Verfahren zur Simulation
EP3244325B1 (de) Verfahren zur zeitlich synchronisierten ausgabe und/oder zeitlich synchronisierten verarbeitung von signalen
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA
DE102015209033A1 (de) Verfahren und Vorrichtung zum Liefern einer Prüfantwort
AT501880A1 (de) Speicherprogrammierbare steuerung
WO2013127646A1 (de) Vorrichtung und verfahren zum testen von elektronischen geräten mit einer räumlich getrennten steuereinrichtung
DE19740543C1 (de) Verfahren zum Testen eines integrierten Schaltkreises sowie Verfahren und Datenverarbeitungsanlage zum Erzeugen von Testdaten
DE19813197B4 (de) Testschaltung zum Gleichstromtesten eines LSI und Verfahren zum Gleichstromtesten

Legal Events

Date Code Title Description
R163 Identified publications notified