FR3005178A1 - SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT - Google Patents

SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT Download PDF

Info

Publication number
FR3005178A1
FR3005178A1 FR1300976A FR1300976A FR3005178A1 FR 3005178 A1 FR3005178 A1 FR 3005178A1 FR 1300976 A FR1300976 A FR 1300976A FR 1300976 A FR1300976 A FR 1300976A FR 3005178 A1 FR3005178 A1 FR 3005178A1
Authority
FR
France
Prior art keywords
module
data
programmable component
cbeth
computer
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.)
Granted
Application number
FR1300976A
Other languages
French (fr)
Other versions
FR3005178B1 (en
Inventor
David Bazin
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Priority to FR1300976A priority Critical patent/FR3005178B1/en
Publication of FR3005178A1 publication Critical patent/FR3005178A1/en
Application granted granted Critical
Publication of FR3005178B1 publication Critical patent/FR3005178B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Abstract

Système et procédé pour le chargement de données au sein d'un composant programmable (30) comprenant au moins une mémoire non volatile (31), à partir d'un calculateur (43), d'une liaison standard de type Ethernet et d'une fonction CBETH caractérisé en ce que la fonction CBETH comporte au moins les éléments suivants : • un premier module (35) de gestion de protocole de la liaison standard entre le PC et le composant programmable (30), • un deuxième module (34) comprenant un premier module (51) de contrôle du format des données transmises par le micro-contrôleur, un deuxième module (52) adapté à gérer les étapes du début de téléchargement des données, un troisième module (53) mémorisant les données avant leur transmission dans la mémoire non volatile connectée au composant programmable, un quatrième module (54) d'acquittement de messages.System and method for loading data into a programmable component (30) comprising at least one nonvolatile memory (31), from a computer (43), a standard Ethernet-type link and a CBETH function characterized in that the CBETH function comprises at least the following elements: a first protocol management module (35) for the standard link between the PC and the programmable component (30), a second module (34) comprising a first module (51) for controlling the format of the data transmitted by the microcontroller, a second module (52) adapted to manage the steps of the start of downloading data, a third module (53) storing the data before transmission in the non-volatile memory connected to the programmable component, a fourth module (54) for acknowledging messages.

Description

SYSTEME ET PROCEDE DE CHARGEMENT DE DONNEES DANS UN COMPOSANT PROGRAMMABLE L'objet de l'invention concerne un système et un procédé pour le chargement et/ou la mise à jour de données telles qu'un fichier de configuration ou Bitstream de circuits programmables plus connus sous l'acronyme anglo-saxon FPGA (Field Programmable Gate Array) via une liaison standard, telle qu'une liaison Ethernet et un ordinateur ou PC. Le procédé peut s'appliquer dans toutes les cartes utilisant un 10 FPGA avec un/des périphériques de type Ethernet à travers lesquels on souhaite pouvoir mettre à jour le fichier de configuration du FPGA. Les circuits pré diffusés sont des circuits partiellement préfabriqués. Ils contiennent un ensemble d'éléments, tels que des 15 transistors, des diodes, des résistances, des capacités, etc., qui ne sont pas interconnectés entre eux. Contrairement aux circuits prédiffusés conventionnels, les circuits prédiffusés programmables ne demandent pas de fabrication spéciale en usine, ni de matériels de développement coûteux. La mise à jour ou la reconfiguration dynamique des FPGAs consiste à changer 20 la programmation des circuits logiques programmables. Un FPGA est un composant programmable comprenant des ressources logiques configurables, de types LUT (acronyme anglo-saxon de Look-Up Table), bascules, par exemple, et interconnectables entre elles. La définition de ces configurations et interconnexions fait l'objet du Bitstream qui 25 est logé dans une mémoire interne au composant FPGA. La grande majorité des FPGA sont de technologie SRAM donc volatile. Ainsi, il est nécessaire que le système électronique équipé de ce FPGA dispose d'une mémoire non volatile, de type mémoire rapide ou mémoire FLASH par exemple, afin de stocker ce Bitstream lorsque le système n'est plus alimenté. Suite à la mise 30 sous tension du système, ce fichier de configuration est téléchargé automatiquement au sein du FPGA.SYSTEM AND METHOD FOR LOADING DATA IN A PROGRAMMABLE COMPONENT The object of the invention is a system and method for loading and / or updating data such as a configuration file or Bitstream of more well-known programmable circuits. under the English acronym FPGA (Field Programmable Gate Array) via a standard link, such as an Ethernet link and a computer or PC. The method can be applied in all cards using an FPGA with Ethernet type device (s) through which it is desired to be able to update the FPGA configuration file. Pre-broadcast circuits are partially prefabricated circuits. They contain a set of elements, such as transistors, diodes, resistors, capacitors, etc., which are not interconnected with each other. Unlike conventional gate arrays, programmable gate arrays do not require special factory fabrication or costly development hardware. The dynamic update or reconfiguration of the FPGAs is to change the programming of the programmable logic circuits. An FPGA is a programmable component comprising configurable logic resources of LUT (Angled Look-Up Table) types, for example, flip-flops and interconnectable between them. The definition of these configurations and interconnections is the subject of the Bitstream which is housed in a memory internal to the FPGA component. The vast majority of FPGAs are SRAM technology so volatile. Thus, it is necessary for the electronic system equipped with this FPGA to have non-volatile memory, such as fast memory or FLASH memory, in order to store this Bitstream when the system is no longer powered. After the system is turned on, this configuration file is automatically downloaded into the FPGA.

Différentes solutions existent pour configurer et re-configurer les circuits logiques programmables sans en interrompre le fonctionnement. Une première façon de procéder, schématisée à la figure 1, consiste à utiliser une liaison JTAG connue de l'Homme du métier (abrégé anglo-saxon de Joint Test Action Group). Cette technique utilise une sonde JTAG et des outils de programmation sur un ordinateur ou PC fournis habituellement par le fabricant du circuit. La sonde JTAG fait appel à un boitier JTAG 7 relié à un PC 9 grâce à une liaison USB/Ethemet 8 et au FPGA 3 via une liaison JTAG 6, un connecteur JTAG 5, une liaison carte JTAG 4. Le FPGA 3 est en liaison 2 avec une mémoire non volatile 1 stockant le Bistream du FPGA. Cette technique présente comme inconvénient de mettre en oeuvre des outils spécifiques, une sonde de programmation, et d'avoir accès à la liaison de debug JTAG de la carte. Les débits sont de quelques centaines de Kbits/s limités par la bande passante de la liaison JTAG, par exemple il faut compter 15 minutes pour un Bitstream de 10 Mo. Une deuxième manière de procéder, illustrée à la figure 2, consiste à utiliser une liaison Ethernet 21 via un microcontrôleur 14 embarqué au sein du FPGA. Le FPGA 13 est en liaison avec la mémoire non volatile 11 de stockage de Bitstream via une interface 12 de configuration du FPGA. Le micro-contrôleur 14 embarqué au FPGA est en liaison 15 avec une mémoire logicielle 16. Le PC 22 est en liaison avec le micro-contrôleur embarqué au FPGA via une liaison Ethernet constituée d'un composant PHY, 18 et d'un connecteur RJ45, 20, connu de l'Homme du métier. Les limitations de l'utilisation d'un micro-contrôleur embarqué au sein du FPGA sont notamment les suivantes : il est nécessaire d'avoir un FPGA disposant d'un micro-contrôleur embarqué avec des contrôleurs Ethernet et Flash. Or, tous les micro-contrôleurs ne sont pas facilement portables sur toutes les familles des FPGA. Certains sont spécifiques du fabricant FPGA (Microblaze® de la société Xilinx, NIOS® de la société Altera, Mico32® développé par la société Lattice, par exemple). De plus, ces micro- contrôleurs sont gourmands en ressource FPGA, quelques milliers de LUTs et bascules. Les débits de téléchargement de Bitstream, atteints par cette solution sont de quelques Mbits/s, soit 1 minute pour un Bitstream de 10 Mo. Cette technique nécessite aussi l'exécution d'un logiciel par le micro- contrôleur embarqué. L'exécution de ce logiciel peut nécessiter l'utilisation d'une mémoire externe spécifique de type SRAM ou DDR par exemple. Malgré tous les avantages qu'elles offrent, les techniques développées par l'art antérieur sont limitées par leur utilisation d'outils spécifiques sur un PC distant, l'obligation de développer des spécificités dans les FPGA, et les débits de téléchargement des Bistreams qui sont de quelques Mbits/s au maximum. Un des objectifs de la présente invention est de résoudre au moins l'un des problèmes des techniques connues de l'art antérieur, d'augmenter le débit de téléchargement, d'offrir un outil plus générique.Different solutions exist to configure and re-configure the programmable logic circuits without interrupting their operation. A first way of proceeding, shown schematically in Figure 1, is to use a JTAG connection known to the skilled person (English abbreviation Joint Test Action Group). This technique uses a JTAG probe and programming tools on a computer or PC usually provided by the circuit manufacturer. The JTAG probe uses a JTAG 7 box connected to a PC 9 via a USB / Ethemet 8 link and FPGA 3 via a JTAG 6 link, a JTAG 5 connector, a JTAG 4 card link. The FPGA 3 is connected 2 with a nonvolatile memory 1 storing the Bistream of the FPGA. This technique has the drawback of implementing specific tools, a programming probe, and having access to the JTAG debug link of the card. The bit rates are a few hundred kbps limited by the bandwidth of the JTAG link, for example it takes 15 minutes for a Bitstream of 10 MB. A second way to proceed, illustrated in Figure 2, is to use a Ethernet link 21 via a microcontroller 14 embedded within the FPGA. The FPGA 13 is linked to the nonvolatile storage memory 11 of Bitstream via an interface 12 for configuring the FPGA. The microprocessor 14 on board the FPGA is linked to a software memory 16. The PC 22 is connected to the onboard FPGA microcontroller via an Ethernet link consisting of a PHY component, 18 and an RJ45 connector. , 20, known to those skilled in the art. The limitations of using an embedded micro-controller within the FPGA include the following: it is necessary to have an FPGA with an embedded micro-controller with Ethernet and Flash controllers. However, not all micro-controllers are easily portable on all families of FPGAs. Some are specific to the FPGA manufacturer (Microblaze® from Xilinx, NIOS® from Altera, Mico32® developed by Lattice, for example). In addition, these microcontrollers are greedy in FPGA resource, a few thousand LUTs and flip-flops. Bitstream download speeds achieved by this solution are a few Mbps, or 1 minute for a 10 MB Bitstream. This technique also requires the execution of software by the embedded microcontroller. The execution of this software may require the use of a specific external memory type SRAM or DDR for example. Despite all the advantages that they offer, the techniques developed by the prior art are limited by their use of specific tools on a remote PC, the requirement to develop specificities in FPGAs, and download speeds of Bistreams which are a few Mbits / s maximum. One of the objectives of the present invention is to solve at least one of the problems of the known techniques of the prior art, to increase the download rate, to offer a more generic tool.

L'objet de l'invention concerne un système pour le chargement et/ou la mise à jour de données au sein d'un composant programmable comprenant au moins une mémoire non volatile, à partir d'un calculateur, d'une liaison standard de type Ethernet et d'une fonction CBETH caractérisé en ce que la fonction CBETH comporte au moins les éléments suivants : - un premier module de gestion de protocole de la liaison standard entre le calculateur et le composant programmable, - un deuxième module comprenant un premier module de contrôle du format des données transmises par le calculateur, un deuxième module adapté à gérer les étapes du début de téléchargement des données, un troisième module mémorisant les données avant leur transmission dans la mémoire non volatile connecté au composant programmable et un quatrième module d'acquittement des messages. Le composant programmable est, par exemple, un composant programmable de type FPGA (Field Programmable Gate Array).The object of the invention relates to a system for loading and / or updating data within a programmable component comprising at least one non-volatile memory, from a computer, a standard link of Ethernet type and CBETH function characterized in that the CBETH function comprises at least the following elements: - a first protocol management module of the standard link between the computer and the programmable component, - a second module comprising a first module control of the format of the data transmitted by the computer, a second module adapted to manage the steps of the start of data download, a third module storing the data before transmission in the non-volatile memory connected to the programmable component and a fourth module of acknowledgment of messages. The programmable component is, for example, a programmable component of the Field Programmable Gate Array (FPGA) type.

Le deuxième module peut implémenter le protocole TFTP.The second module can implement the TFTP protocol.

Selon un mode de réalisation, la fonction CBETH est codée en langage de description matériel, destinée à représenter le comportement ainsi que l'architecture d'un système électronique numérique, connu sous l'acronyme anglo-saxon HDL pour Hardware Description Language.According to one embodiment, the CBETH function is coded in hardware description language, intended to represent the behavior as well as the architecture of a digital electronic system, known by the English acronym HDL for Hardware Description Language.

Le premier module de gestion de protocole est, par exemple, adapté à gérer le protocole UDP/IP et le deuxième module de contrôle de téléchargement comprend un premier sous-module adapté à analyser les datagrammes UDP reçus du module de gestion des protocoles UDP/IP, un deuxième sous-module de supervision de requête d'écriture, un bloc mémoire, un quatrième sous-module de validation ou non du format des données. Le calculateur du système est, par exemple, un PC. L'invention concerne aussi un procédé pour le chargement et/ou la mise à jour des données dans une mémoire non volatile connectée à un composant programmable comprenant des ressources logiques configurables interconnectables entre elles, en utilisant un calculateur et une liaison de type Ethernet caractérisé en ce qu'il utilise pour le chargement et/ou la mise à jour une fonction CBETH implémentée au sein du composant, ladite fonction comprenant un premier sous-module de gestion des protocoles et un deuxième sous-module, en exécutant au moins les étapes suivantes : a) transmettre les données à charger en mémoire non volatile, connectée au composant programmable, via la liaison de type Ethernet à un premier module de contrôle du format des données, b) si le format des données est correct, alors transmettre les données à une mémoire de stockage, dans le cas contraire, transmettre un message d'erreur vers le calculateur. Selon une variante du procédé on charge des données dans la mémoire connectée à un composant programmable FPGA.The first protocol management module is, for example, adapted to manage the UDP / IP protocol and the second download control module includes a first submodule adapted to analyze the UDP datagrams received from the UDP / IP protocol management module. , a second write request supervision submodule, a memory block, a fourth sub-module for validating or not the format of the data. The system calculator is, for example, a PC. The invention also relates to a method for loading and / or updating the data in a non-volatile memory connected to a programmable component comprising configurable logical resources interconnectable to each other, by using a computer and an Ethernet type link characterized in what it uses for loading and / or updating a CBETH function implemented within the component, said function comprising a first protocol management sub-module and a second submodule, performing at least the following steps a) transmit the data to be loaded into non-volatile memory, connected to the programmable component, via the Ethernet type link to a first data format control module, b) if the data format is correct, then transmit the data to a storage memory, otherwise, transmit an error message to the computer. According to a variant of the method, data is loaded into the memory connected to an FPGA programmable component.

Le procédé utilise, par exemple, le protocole TFTP pour contrôler le téléchargement des données.The method uses, for example, the TFTP protocol to control the download of the data.

La fonction CBETH est, par exemple, codée dans un langage de description matériel, destinée à représenter le comportement ainsi que l'architecture d'un système électronique numérique, connu sous l'acronyme anglo-saxon HDL pour Hardware Description Language pour coder les données. D'autres caractéristiques et avantages du dispositif selon l'invention apparaîtront mieux à la lecture de la description qui suit d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent : - la figure 1, un exemple de mode de téléchargement selon l'art antérieur utilisant une liaison JTAG, - la figure 2, une représentation du mode de téléchargement utilisant un micro-contrôleur embarqué au sein d'un FPGA, - la figure 3, un synoptique général du contexte d'utilisation de la fonction selon l'invention, - la figure 4, une illustration de la répartition des protocoles gérés et utiles par rapport à la fonction de l'invention, - la figure 5, un synoptique détaillé de la fonction selon l'invention, - la figure 6, un exemple de séquencement du téléchargement de la fonction. L'exemple qui suit est donné pour la mise à jour à distance, via une liaison standardisée Ethernet, du fichier de configuration, nommé Bitstream d'un composant de type FPGA d'un système électronique.The CBETH function is, for example, coded in a hardware description language, intended to represent the behavior as well as the architecture of a digital electronic system, known by the acronym HDL for Hardware Description Language to encode the data. . Other features and advantages of the device according to the invention will appear better on reading the following description of an exemplary embodiment given by way of non-limiting illustration and appended figures which represent: - Figure 1, an example of mode method of download according to the prior art using a JTAG link, - Figure 2, a representation of the download mode using an embedded microcontroller within an FPGA, - Figure 3, a general overview of the context of use of the function according to the invention, - Figure 4, an illustration of the distribution of the managed and useful protocols with respect to the function of the invention, - Figure 5, a detailed block diagram of the function according to the invention, - the Figure 6, an example of sequencing of the download of the function. The following example is given for the remote update, via a standardized Ethernet link, of the configuration file, named Bitstream of an FPGA component of an electronic system.

La figure 3 illustre un synoptique général d'utilisation d'une fonction adaptée à mettre à jour le Bitstream d'un FPGA. Le système de chargement et/ou de mise à jour selon l'invention comprend, par exemple, une mémoire non volatile de stockage de Bitstream FPGA, 31 qui est reliée via une interface de configuration 32 à un contrôleur flash 33 de l'application FPGA 30. L'application FPGA intègre la fonction CBETH de mise à jour selon l'invention. Cette fonction CBETH comprend un module 34 de contrôle de téléchargement et un module 35 de gestion des protocoles en liaison via une interface 36 standard. Le module de gestion des protocoles est en liaison, via une interface standard 37, avec un module d'accès MAC 38 qui fait partie du FPGA. Le module d'accès MAC 38 est relié via une interface physique 39 à une couche physique 40 en liaison 41 avec un connecteur 42 reliant un calculateur 43 tel qu'un PC via le réseau Ethernet 45. La fonction CBETH s'appuie, par exemple, sur le protocole standardisé de transfert de fichier plus connu sous l'acronyme anglo-saxon TFTP pour Trivial File Transfert Protocol. Ceci implique que le système électronique gère les protocoles connus de l'Homme du métier, Ethernet, ARP, IPv4 et UDP bien connus dans le standard OSI. La figure 4 illustre la répartition des protocoles gérés et utiles à la fonction CBETH.Figure 3 illustrates a general block diagram of use of a function adapted to update the Bitstream of an FPGA. The loading and / or updating system according to the invention comprises, for example, a Bitstream FPGA nonvolatile storage memory 31 which is connected via a configuration interface 32 to a flash controller 33 of the FPGA application. 30. The FPGA application integrates the CBETH update function according to the invention. This CBETH function comprises a download control module 34 and a protocol management module 35 linked via a standard interface 36. The protocol management module is connected, via a standard interface 37, with a MAC access module 38 which is part of the FPGA. The MAC access module 38 is connected via a physical interface 39 to a physical layer 40 in connection 41 with a connector 42 connecting a computer 43 such as a PC via the Ethernet network 45. The CBETH function relies, for example , on the standardized file transfer protocol better known by the acronym TFTP for Trivial File Transfer Protocol. This implies that the electronic system manages the protocols known to those skilled in the art, Ethernet, ARP, IPv4 and UDP well known in the OSI standard. Figure 4 illustrates the distribution of the protocols managed and useful to the CBETH function.

La fonction CBETH implémente les protocoles TFTP, UDP protocole de datagramme utilisateur, IP protocole Internet, le protocole de résolution d'adresse ou ARP Address Resolution Protocol et une partie du protocole Ethernet/MAC (Medium Access Control). La seconde partie Ethernet/MAC est réalisée par une IP fournie par le fabricant du FPGA. La couche physique PHY est réalisée par un composant matériel, à l'extérieur du FPGA, généralement présent sur la carte électronique sur lequel se trouve le FPGA. La figure 5 donne un synoptique détaillé de la fonction CBETH. La fonction CBETH est décomposée en deux sous-ensembles comme il a été indiqué ci-dessus, le module 35 « UDP/IP » et le module 34 « Ctrl Telech » qui communique entre eux via des liaisons classiques 60, 61. La fonction est par exemple codée en langage de description matériel, destinée à représenter le comportement ainsi que l'architecture d'un système électronique numérique, connu sous l'acronyme anglo-saxon HDL pour Hardware Description Language.CBETH implements TFTP, UDP User Datagram Protocol, IP Internet Protocol, Address Resolution Protocol or ARP Address Resolution Protocol and part of the Ethernet / MAC (Medium Access Control) protocol. The second Ethernet / MAC part is realized by an IP provided by the manufacturer of the FPGA. The PHY physical layer is made by a hardware component, outside the FPGA, generally present on the electronic card on which the FPGA is located. Figure 5 gives a detailed synoptic of the CBETH function. The CBETH function is decomposed into two subassemblies as indicated above, the "UDP / IP" module and the "Telech Ctrl" module 34 which communicate with each other via conventional links 60, 61. The function is for example coded in hardware description language, intended to represent the behavior as well as the architecture of a digital electronic system, known by the English acronym HDL for Hardware Description Language.

Le module UDP/IP a notamment pour fonction de gérer les protocoles IP, ARP et UDP. Il réalise également un complément de gestion du protocole Ethemet/MAC, non réalisé par les IP Ethernet/MAC fournis par les fabricants de FPGA. Il permet au module de contrôle « ctrl Telech » de pouvoir échanger de datagrammes UDP avec le PC distant. Le fonctionnement du module UDP/IP ne sera pas détaillé car il est connu de l'Homme du métier. Le module de contrôle de téléchargement des données « Ctrl Telech », 34, comporte quatre sous-modules détaillés ci-après.In particular, the UDP / IP module manages IP, ARP and UDP protocols. It also carries out an additional management of the Ethemet / MAC protocol, not realized by the Ethernet / MAC IP provided by the FPGA manufacturers. It allows the control module "ctrl Telech" to be able to exchange UDP datagrams with the remote PC. The operation of the UDP / IP module will not be detailed because it is known to those skilled in the art. The "Ctrl Telech" data download control module, 34, comprises four sub-modules detailed below.

Un premier sous-module, 51, « TFTP Rx » travaillant en réception a notamment pour fonction d'analyser les datagrammes UDP reçus du module de gestion des protocoles UDP/IP. Les datagrammes implémentant des données d'un protocole autre que TFTP sont supprimés. Ce sous-module, 51, « TFTP Rx » interprète uniquement les messages de requête d'écriture et de données d'écriture du protocole TFTP. A chaque requête d'écriture reçue, ce premier sous-module « TFTP Rx » informe un deuxième sous-module de supervision, 52, « Supervision Telech » de la requête d'écriture. A chaque message de données d'écriture, à transmettre vers un bloc mémoire IF mémoire, 53, pour le chargement du bitstream, le premier sous-module « TFTP Rx » informe le sous-module de supervision « Supervision Telech » et met à disposition du sous-module « IF Mémoire » les données utiles. En fonction des données reçues par le sous-module « TFTP Rx », le deuxième sous-module « Supervision Telech » commande le troisième sous-module, 53, « IF Mémoire » et un quatrième sous-module de validation ou non du format des données, 54, « TFTP Tx » adapté notamment à valider le format des données reçues, ou à émettre des messages d'erreurs, via une liaison 60, vers le PC.A first submodule, 51, "TFTP Rx" working in reception has the particular function of analyzing the UDP datagrams received from the UDP / IP protocol management module. Datagrams implementing data from a protocol other than TFTP are deleted. This submodule, 51, "TFTP Rx" interprets only the TFTP write and write data request messages. For each write request received, this first sub-module "TFTP Rx" informs a second supervision sub-module, 52, "Telech Supervision" of the write request. With each write data message, to be transmitted to a memory memory block IF 53, for the loading of the bitstream, the first sub-module "TFTP Rx" informs the supervision sub-module "Telech supervision" and makes available of the "IF Memory" submodule the useful data. According to the data received by the "TFTP Rx" sub-module, the second sub-module "Telech Supervision" controls the third sub-module, 53, "Memory IF" and a fourth submodule of validation or not of the format of the data, 54, "TFTP Tx" adapted in particular to validate the format of the received data, or to send error messages, via a link 60, to the PC.

Si les données reçues sont jugées valides (port correct, numéro de bloc cohérent, CRC, ...), alors le deuxième sous-module de supervision, 52, « Supervision Telech » donne l'ordre d'acquitter la trame courante au sous-module « TFTP Tx », ainsi que l'ordre, au bloc « IF Mémoire)> 5 d'envoyer, via son interface AXI4, avec le contrôleur mémoire, les données utiles du Bitstream. Dans le cas contraire, il configure le sous-module « TFTP Tx » pour envoyer un message d'erreur, conformément au protocole TFTP. Le quatrième sous-module, 54, « TFTP Tx » envoie les messages d'erreurs ou d'acquittement en fonction des requêtes reçues du sous-module 10 « Supervision Telech ». Sur ordre du deuxième sous-module « Supervision Telech », le troisième sous-module « IF Memoire » transmet, sur son interface standardisée de type AXI4 (abrégé anglo-saxon de Advanced eXtensible Interface), les données utiles, le Bitstream, issu des messages de données 15 d'écriture du protocole TFTP. La figure 6 illustre dans un diagramme temporel, le séquencement du téléchargement du Bitstream et les activités sur les interfaces de la fonction CBETH. La requête en écriture, 60, indique le début du téléchargement du 20 Bitstream, l'acquittement de la requête en écriture, 61, après contrôle du format des données, déclenche le chargement des données dans le bloc IF Memoire. Le schéma indique une séquence de téléchargement des données en mémoire par une succession de chargement de données 62, 64, 66, d'acquittement de données 63, 65, 67, tant que toutes les données n'ont pas 25 été chargées dans la mémoire non volatile. Le procédé selon l'invention présente l'avantage de ne pas nécessiter l'utilisation d'outils spécifiques sur un ordinateur distant pour l'envoi du Bitstream, les client TFTP intégrés au OS Windows ou Linux 30 suffisent.If the received data are considered valid (correct port, coherent block number, CRC, ...), then the second supervision sub-module, 52, "Telech Supervision" gives the order to acknowledge the current frame at the slot. -module "TFTP Tx", as well as the order, in the block "IF Memory"> 5 to send, via its interface AXI4, with the memory controller, the useful data of the Bitstream. Otherwise, it configures the "TFTP Tx" sub-module to send an error message, according to the TFTP protocol. The fourth sub-module, 54, "TFTP Tx" sends the error or acknowledgment messages according to the requests received from the sub-module 10 "Telech Supervision". On order of the second sub-module "Telech Supervision", the third sub-module "Memory IF" transmits, on its standardized interface type AXI4 (abbreviated Anglo-Saxon Advanced eXtensible Interface), the payload, the Bitstream, from TFTP write data messages. Figure 6 illustrates in a timing diagram, the sequencing of the download of the Bitstream and the activities on the interfaces of the CBETH function. The write request, 60, indicates the start of the download of the Bitstream, the acknowledgment of the write request, 61, after control of the data format, triggers the loading of the data in the block IF Memory. The diagram indicates a sequence of downloading the data in memory by a data loading sequence 62, 64, 66, of acknowledging data 63, 65, 67, until all the data has been loaded into the memory. nonvolatile. The method according to the invention has the advantage of not requiring the use of specific tools on a remote computer for sending the Bitstream, the TFTP client integrated into the Windows or Linux OS 30 are sufficient.

Il n'est pas nécessaire de développer une architecture spécifique au sein du FPGA. Il suffit d'intégrer dans l'Application FPGA la fonction CBETH et de la connecter à un périphérique de type Ethernet. Le débit de téléchargement des Bitstreams dépend uniquement de la bande passante de la mémoire de stockage du Bitstream en fonctionnement normal. Ils peuvent atteindre plusieurs dizaines de Mbits/s.There is no need to develop a specific architecture within the FPGA. Simply integrate the CBETH function into the FPGA Application and connect it to an Ethernet device. The upload rate of Bitstreams depends only on the bandwidth of the Bitstream storage memory during normal operation. They can reach several tens of Mbps.

Claims (10)

REVENDICATIONS1 - Système pour le chargement de données au sein d'un composant programmable (30) comprenant au moins une mémoire non volatile (31), à partir d'un calculateur (43), d'une liaison standard de type Ethernet et d'une fonction CBETH caractérisé en ce que la fonction CBETH comporte au moins les éléments suivants : - un premier module (35) de gestion de protocole de la liaison standard entre le calculateur (43) et le composant programmable (30), - un deuxième module (34) comprenant un premier module (51) de contrôle du format des données transmises par le calculateur (43), un deuxième module (52) adapté à gérer les étapes du début de téléchargement des données, un troisième module (53) mémorisant les données avant leur transmission dans la mémoire non volatile connecté au composant programmable et un quatrième module (54) d'acquittement des messages.CLAIMS1 - System for loading data into a programmable component (30) comprising at least one nonvolatile memory (31), from a computer (43), a standard link of Ethernet type and a CBETH function characterized in that the CBETH function comprises at least the following elements: a first protocol management module (35) for the standard link between the computer (43) and the programmable component (30), a second module (34) comprising a first module (51) for controlling the format of the data transmitted by the computer (43), a second module (52) adapted to manage the steps of the start of downloading the data, a third module (53) storing the data data before transmission in the non-volatile memory connected to the programmable component and a fourth module (54) for acknowledging messages. 2 - Système selon la revendication 1 caractérisé en ce que le composant programmable (30) est un composant programmable de type FPGA (Field 20 Programmable Gate Array).2 - System according to claim 1 characterized in that the programmable component (30) is a programmable component type FPGA (Field 20 Programmable Gate Array). 3 - Système selon l'une des revendications 1 ou 2 caractérisé en ce que le deuxième module (34) implémente le protocole TFTP. 253 - System according to one of claims 1 or 2 characterized in that the second module (34) implements the TFTP protocol. 25 4 - Système selon l'une des revendications 1 ou 2 caractérisé en ce que la fonction CBETH est codée en langage de description matériel, destinée à représenter le comportement ainsi que l'architecture d'un système électronique numérique, connu sous l'acronyme anglo-saxon HDL pour Hardware Description Language. 304 - System according to one of claims 1 or 2 characterized in that the CBETH function is encoded in hardware description language, intended to represent the behavior and architecture of a digital electronic system, known by the acronym anglo -Saxon HDL for Hardware Description Language. 30 5 - Système selon l'une des revendications 1 à 4 caractérisé en ce que le premier module (35) de gestion de protocole est adapté à gérer le protocole UDP/IP et en ce que le deuxième module (34) de contrôle de téléchargement comprend un premier sous-module (51) adapté à analyser les datagrammes UDP reçus du module de gestion des protocoles UDP/IP, un deuxième sous-module de supervision (52) de requête d'écriture, un bloc mémoire ( 53), un quatrième sous-module de validation ou non du format des données (54).5 - System according to one of claims 1 to 4 characterized in that the first module (35) protocol management is adapted to manage the UDP / IP protocol and in that the second module (34) control download includes a first sub-module (51) adapted to analyze the UDP datagrams received from the UDP / IP protocol management module, a second write request supervision sub-module (52), a memory block (53), a fourth submodule of validation or not of the format of the data (54). 6 - Système selon l'une des revendications précédentes caractérisé en ce que le calculateur (43) est un PC.6 - System according to one of the preceding claims characterized in that the computer (43) is a PC. 7 - Procédé pour charger des données dans une mémoire non volatile connectée à un composant programmable comprenant des ressources logiques configurables interconnectables entre elles, en utilisant un calculateur (43) et une liaison de type Ethernet caractérisé en ce qu'il utilise pour la mise à jour une fonction CBETH implémentée au sein dudit composant programmable (30), ladite fonction CBETH comprenant un premier sous-module (35) de gestion des protocoles et un deuxième sous-module, en exécutant au moins les étapes suivantes : a) transmettre les données à charger en mémoire non volatile connectée au composant programmable via la liaison de type Ethernet à un premier module de contrôle du format des données, b) tester si le format des données est correct, et si oui transmettre les données à une mémoire de stockage, dans le cas contraire, transmettre un message d'erreur vers le calculateur (43).7 - Method for loading data in a non-volatile memory connected to a programmable component comprising configurable logical resources interconnectable to each other, using a computer (43) and an Ethernet type link characterized in that it uses for setting a CBETH function implemented within said programmable component (30), said CBETH function comprising a first protocol management sub-module (35) and a second submodule, performing at least the following steps: a) transmitting the data to load in non-volatile memory connected to the programmable component via the Ethernet type link to a first data format control module, b) to test whether the data format is correct, and if yes to transmit the data to a storage memory, if not, send an error message to the computer (43). 8 - Procédé selon la revendication 7 caractérisé en ce que l'on charge des données dans la mémoire connectée à un composant programmable FPGA.8 - Process according to claim 7 characterized in that one loads data in the memory connected to an FPGA programmable component. 9 - Procédé selon l'une des revendications 7 à 8 caractérisé en ce qu'il utilise le protocole TFTP pour contrôler le téléchargement des données.9 - Method according to one of claims 7 to 8 characterized in that it uses the TFTP protocol to control the download of data. 10 - Procédé selon l'une des revendications 7 à 9 caractérisé en ce que l'on utilise un langage de description matériel, destinée à représenter le comportement ainsi que l'architecture d'un système électronique numérique, connu sous l'acronyme anglo-saxon HDL pour Hardware Description Language pour coder les données.10 - Process according to one of claims 7 to 9 characterized in that one uses a hardware description language, intended to represent the behavior as well as the architecture of a digital electronic system, known by the acronym Saxon HDL for Hardware Description Language to encode data.
FR1300976A 2013-04-26 2013-04-26 SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT Expired - Fee Related FR3005178B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1300976A FR3005178B1 (en) 2013-04-26 2013-04-26 SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1300976A FR3005178B1 (en) 2013-04-26 2013-04-26 SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT

Publications (2)

Publication Number Publication Date
FR3005178A1 true FR3005178A1 (en) 2014-10-31
FR3005178B1 FR3005178B1 (en) 2015-04-17

Family

ID=48771539

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1300976A Expired - Fee Related FR3005178B1 (en) 2013-04-26 2013-04-26 SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT

Country Status (1)

Country Link
FR (1) FR3005178B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6326806B1 (en) * 2000-03-29 2001-12-04 Xilinx, Inc. FPGA-based communications access point and system for reconfiguration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6326806B1 (en) * 2000-03-29 2001-12-04 Xilinx, Inc. FPGA-based communications access point and system for reconfiguration

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Field-Programmable Logic and Applications: The Roadmap to Reconfigurable Computing", vol. 1896, 1 January 2000, SPRINGER BERLIN HEIDELBERG, Berlin, Heidelberg, ISBN: 978-3-54-067899-1, article HAMISH FALLSIDE ET AL: "Internet Connected FPL", pages: 48 - 57, XP055098917, DOI: 10.1007/3-540-44614-1_6 *
FALLSIDE H ET AL: "Internet connected FPGAs", FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, 2000 IEEE SYMPOSIUM ON NAPA VALLEY, CA, USA 17-19 APRIL 2000, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 17 April 2000 (2000-04-17), pages 289 - 290, XP010531950, ISBN: 978-0-7695-0871-9, DOI: 10.1109/FPGA.2000.903421 *
SAAR DRIMER ET AL: "A Protocol for Secure Remote Updates of FPGA Configurations", 16 March 2009, RECONFIGURABLE COMPUTING: ARCHITECTURES, TOOLS AND APPLICATIONS, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 50 - 61, ISBN: 978-3-642-00640-1, XP019115606 *

Also Published As

Publication number Publication date
FR3005178B1 (en) 2015-04-17

Similar Documents

Publication Publication Date Title
EP3425517B1 (en) Method for communication between a master device and n slave devices connected to an spi-type synchronous data bus and corresponding device
US7966437B1 (en) Wireless USB enabled dataloads
FR3010854A1 (en) RECONFIGURABLE AVIONIC EQUIPMENT AND METHOD OF RECONFIGURING SUCH EQUIPMENT.
EP3771182B1 (en) Method for detecting and identifying devices communicating according to a modbus protocol and communication controller for implementing such a method
EP2245794A1 (en) Method of reconfiguring a set of components of an electronic circuit, corresponding reconfiguring system and data transmission method
FR2816786A1 (en) PROGRAMMABLE ADAPTATION DEVICE FOR COMMUNICATION PROTOCOLS
FR2987477A1 (en) NON-VOLATILE MEMORY FOR NFC ROUTER
FR3011706A1 (en) ETHERNET EQUIPMENT CONFIGURATION DEVICE AND ETHERNET EQUIPMENT CONFIGURATION METHOD USING SUCH A DEVICE
FR2812437A1 (en) Vehicle onboard diagnostics communication with exterior diagnostics unit using controller area network bus and universal serial bus
WO2003013100A9 (en) Method and device for establishing network communication compatibility of terminals, for example to enable dialogue with a smart card application
FR3005178A1 (en) SYSTEM AND METHOD FOR LOADING DATA INTO A PROGRAMMABLE COMPONENT
FR2947127A1 (en) SIMULATION OR TEST SYSTEM AND ASSOCIATED METHOD
EP0656591A1 (en) ATE system with integrated bus simulation
FR2825812A1 (en) Method for programming or reprogramming embedded flash memory modules using a CAN bus thus reducing programming time due to much higher bit transfer rates and thus reducing cost
WO2015136181A1 (en) Method and system for downloading data to at least one computer
CA2853389A1 (en) Device for selectively connecting a first item of equipment to a plurality of second items of equipment and data processing assembly comprising such a device
CN109885329B (en) Upgrading method and system and electronic equipment
EP3646991A1 (en) System for controlling a tool comprising a radio communication means of the ultra-wideband type for pinpointing location and receiving orders
EP2202676A1 (en) Securing device with radiofrequency communication interface
EP3672359A1 (en) Electrical equipment that accesses, in an alternating operating mode, a mobile telephone network
US10498832B2 (en) Link-training auto-negotiation protocol with three-way handshake
EP0823088B1 (en) Automatic parallel electronic component testing method and equipment
WO2009098184A1 (en) Mass storage device and storage system
WO2016138989A1 (en) Microcontroller with a diagnosis module and method for accessing said module of said microcontroller
EP3005625B1 (en) Communication management component and method

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 8

ST Notification of lapse

Effective date: 20211205