Brevet FR3115134A1 — publié le 20220415

L’invention concerne un procédé de configuration d’un circuit logique programmable (1) à partir d’un flux binaire de configuration, le circuit logique programmable (1) comprenant une entrée de configuration de circuit (2) pour le chargement du flux binaire de configuration et une pluralité de modules logiques programmables (10, 20, 30, 40) comprenant chacun une entrée de module (11, 21, 31, 41) et une sortie de module (12, 22, 32, 42), le procédé comprenant : - définir (S1) un vecteur de méta-configuration (500) comprenant une succession de champs de sélection (510, 520, 530, 540) d’une source de configuration de module parmi une pluralité de sources de configuration de module (3, 13, 23, 33, 43), - segmenter (S2) le flux binaire de configuration en une pluralité de segments binaires de configuration, - charger (S3) ledit vecteur de configuration (500) dans un registre de méta-configuration (50) du circuit logique programmable (1), puis, - charger (S3) respectivement lesdits segments binaires de configuration dans lesdits modules logiques programmables (10, 20, 30, 40) selon les valeurs desdits champs dudit vecteur de méta-configuration. Figure à publier avec l’abrégé : Fig. 1 PROCEDE DE CONFIGURATION D’UN CIRCUIT LOGIQUE PROGRAMMABLE, CIRCUIT LOGIQUE PROGRAMMABLE ET DISPOSITIF POUR IMPLEMENTER LE PROCEDE. Au moins un mode de réalisation concerne le domaine des circuits logiques programmables. Au moins un mode de réalisation concerne un procédé de sécurisation d’une phase de configuration d’un circuit logique programmable. ETAT DE LA TECHNIQUE ANTERIEURE Les circuits logiques programmables, encore souvent appelés réseaux logiques programmables, sont des circuits intégrés logiques qui peuvent être programmés après leur fabrication. Plus exactement, de tels circuits sont configurés, après leur mise sous tension, à partir d’un flux binaire de configuration préalablement enregistré dans une mémoire non-volatile. Le flux binaire est agencé de sorte que les informations qu’il comporte réalisent des connexions de portes logiques du circuit programmable entre elles. Ainsi, c’est la configuration d’un circuit logique programmable qui définit les connexions faites entre les portes logiques du circuit, et donc les fonctions implémentées par le circuit. Ces composants sont communément désignés par différents sigles issus de l’anglais, tels que FPGA (de « field-programmable gate array »), CPLD (de « complex programmable logic device ») ou encore EPLD (de « erasable programmable logic device »), par exemple. L’architecture reconfigurable interne d’un tel circuit est classiquement configurée à partir d’un flux binaire de configuration, généré par des outils logiciels de synthèse, lors d’une phase de conception du circuit. La phase de configuration d’un circuit logique programmable est le plus souvent sécurisée de sorte à éviter le plus possible une recopie de l’architecture interne d’un circuit programmable ou encore à rendre ardus des travaux de rétro-ingénierie appliqués au circuit. La sécurisation repose le plus souvent sur un chiffrement du flux binaire de configuration. Le chiffrement est opéré à partir de clés de chiffrement utilisées par un algorithme de chiffrement. L’algorithme de chiffrement est, par exemple, un algorithme de type AES (sigle anglais de « Advanced Encryption Standard » et qui signifie « standard de chiffrement avancé »). Lors de la phase de configuration, le flux binaire de configuration chiffré est déchiffré à l’intérieur du circuit, puis est propagé à l’intérieur du circuit, le long d’un chemin de configuration, aux fins de configurer les modules logiques programmables du circuit. Des techniques additionnelles existent pour complexifier encore d’éventuelles opérations de rétro-ingénierie appliquées au flux binaire de configuration, telles que l’allocation de ressources d’un circuit n’étant pas réellement utiles à une application. La situation peut toutefois être améliorée. A cet effet, l’invention a pour objet un procédé de configuration d’un circuit logique programmable à partir d’un flux binaire de configuration, le circuit logique programmable comprenant une entrée de configuration de circuit pour le chargement du flux binaire de configuration et une pluralité de modules logiques programmables comprenant chacun une entrée de module et une sortie de module, le procédé étant caractérisé en ce qu’il comprend : définir un vecteur de méta-configuration comprenant une succession de champs de sélection d’une source de configuration de module parmi une pluralité de sources de configuration de module, chaque champ de sélection de source de configuration de module étant attribué à l’un seulement desdits modules logiques programmables, et les sources de configuration de modules étant respectivement connectées à l’entrée de configuration de circuit et aux sorties de module, segmenter le flux binaire de configuration en une pluralité de segments binaires de configuration, charger ledit vecteur de configuration dans un registre de méta-configuration du circuit logique programmable, puis, charger respectivement lesdits segments binaires de configuration dans lesdits modules logiques programmables en orientant respectivement chacune des sources de configuration de module vers une entrée de module selon les valeurs desdits champs dudit vecteur de méta-configuration. Ainsi, le chemin de configuration d’un circuit logique programmable est variable dans le temps, ce qui permet de complexifier conséquemment des opérations de rétro-ingénierie. Le concepteur d’un circuit peut donc modifier au cours du temps le chemin de configuration de ce circuit, sans que cela ne puisse avoir une conséquence sur l’application à implémenter dans le circuit. Il est en outre possible de différencier plusieurs exemplaires d’une même architecture. Par exemple, deux circuits logiques programmables distincts implémentant une même application apparaissent différents en termes de configuration (programmation) dès lors que le vecteur de méta-configuration est différent pour ces deux circuits. Avantageusement, le procédé de configuration d’un circuit logique programmable comprend une étape de reconfiguration ou de remise à zéro du registre de méta-configuration, postérieure au chargement desdits segments binaires de configuration dans les différents modules logiques programmables. Là encore, des éventuelles opérations de rétro-ingénierie sont complexifiées. De plus, il est possible d’utiliser le même circuit logique programmable pour une configuration différente d’une même application à implémenter dans ce circuit. Selon un mode de réalisation, les segments binaires de configuration sont de tailles différentes définies de façon arbitraire, ce qui accroît la complexité d’éventuelles opérations de rétro-ingénierie. Selon une variante, les segments binaires de configuration sont de taille identique, ce qui permet alors de simplifier la segmentation du flux binaire de configuration et l’allocation des segments du flux binaire de configuration aux modules programmables internes d’un circuit logique programmable. L’invention a également pour objet un circuit logique programmable à partir d’un flux binaire de configuration, le circuit logique programmable comprenant une entrée de configuration de circuit pour le chargement du flux binaire de configuration et une pluralité de modules logiques programmables comprenant chacun une entrée de module et une sortie de module, le circuit logique programmable comprenant : un registre de méta-configuration connecté à une entrée de méta-configuration, configuré pour être chargé à partir de l’entrée de méta-configuration, et comprenant une succession de champs de sélection d’une source de configuration de module parmi une pluralité de sources de configuration de module, chaque champ de sélection de source de configuration de module étant attribué à l’un seulement desdits modules logiques programmables, et les sources de configuration de modules étant respectivement connectées à ladite entrée de configuration de circuit et aux sorties de module, des circuits de sélection d’une source de configuration configurés pour charger respectivement des segments binaires de configuration dudit flux binaire de configuration dans lesdits modules logiques programmables en orientant respectivement chacune des sources de configuration de module vers une entrée de module selon des valeurs desdits champs dudit vecteur de méta-configuration. Selon un mode de réalisation, le circuit logique programmable comprend en outre une sortie de configuration de circuit et un circuit de sélection d’une source de sortie de configuration configuré pour orienter ledit flux binaire de configuration vers ladite sortie de configuration, le vecteur de méta-configuration comprenant en outre un champ de sélection d’une source de sortie sélectionnée parmi la pluralité de sorties de modules, ledit circuit de sélection d’une source de sortie étant configuré à partir du champ de sélection d’une source de sortie. Ainsi, il est possible de réaliser une opération de configuration commune à plusieurs circuit logiques programmables agencés de sorte que leurs circuits de programmation, encore appelés chemin de configuration, soient chaînés. Avantageusement, le circuit logique programmable comprend en outre une sortie de méta-configuration connectée à l’extrémité du registre de méta-configuration située du côté opposé à l’entrée de méta-configuration. Ainsi, il est possible d’opérer une méta-configuration commune à un ensemble de circuits logiques programmables d’un même système électronique dont les circuits de programmation sont chaînés. L’invention concerne aussi un système électronique comprenant une pluralité de circuits logiques programmables tel que celui précédemment décrit, dans lequel les entrées de configuration et sorties de configuration des circuits logiques programmables sont reliées pour présenter une chaîne de programmation de modules logiques programmables. L’invention concerne encore un produit programme d’ordinateur comprenant des instructions de codes de programme pour exécuter les étapes du procédé décrit lorsque le programme est exécuté par un processeur, ainsi qu’un support de stockage d’informations comprenant un tel produit programme d’ordinateur et un dispositif ou système électronique comprenant un processeur pour exécuter des instructions de codes de programme. L’invention concerne enfin un système de programmation d’au moins un circuit logique programmable, le système de programmation étant configuré pour une connexion à au moins un circuit logique programmable tel que précédemment décrit et comprenant en outre un dispositif configuré pour exécuter un procédé de configuration dudit circuit logique programmable tel que décrit ci-avant. Les caractéristiques de l’invention mentionnées ci-dessus, ainsi que d’autres, apparaîtront plus clairement à la lecture de la description suivante d’au moins un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : est une représentation schématique globale d’une architecture interne d’un circuit logique programmable selon un mode de réalisation ; illustre des éléments de configuration d’un chemin de configuration du circuit logique programmable déjà représenté sur la ; illustre une variante des éléments de configuration représentés sur la ; est un ordinogramme représentatif d’un procédé de configuration du circuit logique programmable représenté sur la ; illustre un système électronique comprenant plusieurs circuits logiques programmables similaires à celui représenté sur la et connectés entre eux pour présenter une chaîne commune de configuration ; illustre un dispositif à processeur configuré pour exécuter un procédé de configuration de circuits logiques programmables similaires à celui représenté sur la . EXPOSE DETAILLE DE MODES DE REALISATION La illustre schématiquement des éléments de l’architecture globale d’un circuit logique programmable 1 selon un mode de réalisation. Le circuit logique programmable 1 comprend une entrée de configuration 2 prévue pour une configuration interne du circuit. Il s’agit plus précisément d’une reconfiguration interne du circuit dans la mesure où le circuit logique programmable 1 peut être reconfiguré après chaque mise sous-tension. Le circuit logique programmable 1 est conçu pour être configuré à partir d’un flux binaire de configuration présenté sur son entrée de configuration 2. Une opération de configuration d’un circuit logique programmable tel que le circuit logique programmable 1 est communément appelée « programmation ». En réalité, il s’agit plus exactement d’une phase de configuration. Selon un mode de réalisation, le circuit logique programmable 1 comprend une pluralité de modules logiques programmables internes 10, 20, 30 et 40. Chacun de ces modules logiques programmables peut être configuré pour implémenter tout ou partie de fonctions spécifiques en combinant des fonctions logiques à partir de liaisons réalisées entre des blocs logiques natifs du circuit logique programmable 1, selon le principe déjà bien connu des circuits de types FPGA. Chacun des modules logiques programmables 10, 20, 30 et 40 comprend une entrée de configuration, appelée entrée de module dans la suite de la présente description, pour opérer une configuration interne des blocs logiques du module. Ainsi, le module logique programmable 10 comprend une entrée de module 11, le module logique programmable 20 comprend une entrée de module 21, le module logique programmable 30 comprend une entrée de module 31, et le module logique programmable 40 comprend une entrée de module 41. Chacun des modules logiques programmables 10, 20, 30 et 40 comprend en outre une sortie de configuration, appelée sortie de module dans la suite de la présente description. Les modules logiques programmables 10, 20, 30 et 40 comprennent respectivement les sorties de module 12, 22, 32 et 42. Astucieusement et selon un mode de réalisation de l’invention, les modules logiques programmables ne sont pas chaînés directement les uns aux autres et chacune des entrées 11, 21, 31 et 41 des modules logiques programmables 10, 20, 30 et 40 est connectée à la sortie d’un circuit de sélection d’une source de configuration de module. Selon un mode de réalisation, le circuit logique programmable 1 comprend des circuits de sélection d’une source de configuration 14, 24, 34 et 44 respectivement associés aux modules logiques programmables 10, 20, 30 et 40. En d’autres termes, le circuit de sélection 14 est configuré pour opérer une sélection d’une source de configuration du module logique programmable 10, le circuit de sélection 24 est configuré pour opérer une sélection d’une source de configuration du module logique programmable 20, et ainsi de suite. Chacun des circuits de sélection 14, 24, 34 et 44 du circuit logique programmable 1 est connecté de sorte à pouvoir sélectionner une source de configuration de module parmi des sources connectées à l’entrée de configuration 2 du circuit logique programmable 1 et aux sorties respectives 12, 22, 32 et 42 des différents modules logiques programmables 10, 20, 30 et 40 du circuit logique programmable 1. Ainsi, des sources de configuration 3, 13, 23, 33 et 43 sont disponibles en entrée de chacun des circuits de sélection 14, 24, 34 et 44 d’une source de configuration de module. Les sources de configurations de modules 3, 13, 23, 33 et 43 sont donc respectivement connectées à l’entrée de configuration 2 du circuit logique programmable 1, et aux sorties des modules 12, 22, 32 et 42. Avantageusement, les circuits de sélection 14, 24, 34 et 44 sont configurables à partir d’un vecteur de méta-configuration 500 qui se présente sous la forme d’un mot binaire opérant comme une clef, de sorte à pouvoir interconnecter les modules logiques programmables 10, 20, 30 et 40 selon un agencement prédéterminé. Le vecteur de méta-configuration 500 est introduit dans un registre interne 50 du circuit logique programmable 1 non représenté sur la , mais détaillé dans la partie descriptive de la , à partir d’une entrée dite entrée de méta-configuration 4 du circuit logique programmable 1. Ainsi, il est astucieusement possible de chaîner les modules logiques programmables 10, 20, 30 et 40 de différentes façons, de sorte que les configurations du circuit logique programmable 1 puissent être différentes en passant d’un exemplaire à l’autre du circuit, et ce, pour une même application implémentée dans le circuit logique programmable 1. Par exemple, la chaîne de configuration peut présenter les modules logiques programmables d’amont en aval, soit à partir de l’entrée de configuration 2, selon un ordre 10, 30, 40 puis 20. Selon un autre exemple, la chaîne de configuration peut présenter les modules logiques programmables dans l’ordre 30, 10, 20 puis 40. Plus généralement, toutes les combinaisons sont envisageables dans la mesure où l’entrée de chacun des modules logiques programmables 10, 20, 30 et 40 peut être reliée soit à l’entrée de configuration 2 du circuit logique programmable 1, soit à l’une quelconque des sorties de module, excepté idéalement sa propre sortie. Selon un mode de réalisation de l’invention, le circuit de sélection d’une source de configuration d’un module donné ne présente pas d’entrée reliée à la sortie du module en question, de sorte à éviter des configurations erratiques du chemin de configuration. La illustre les moyens de configuration (ou contrôle) des circuits de sélection 14, 24, 34 et 44 d’une source de configuration du circuit logique programmable 1 à partir d’un vecteur de configuration 500 introduit dans un registre de méta-configuration 50 du circuit logique programmable 1. Le vecteur de méta-configuration 500 est introduit à partir de l’entrée de méta-configuration 4. Le registre de méta-configuration 50 comprend une succession de champs de sélection d’une source de configuration 510, 520, 530 et 540. Les champs de sélection d’une source de configuration sont agencés de sorte à comprendre des mots logiques (ou codes) qui, concaténés, forment ensemble le vecteur de méta-configuration 500. Selon un mode de réalisation, chacun des champs de sélection 510, 520, 530 et 540 est associé à un circuit de sélection d’une source de configuration. Ainsi, selon l’exemple décrit, le champ 510 du registre de méta-configuration 50 contrôle le circuit de sélection 14 d’une source de configuration de module, le champ de sélection 520 du registre de méta-configuration 50 contrôle le circuit de sélection 24, et ainsi de suite. Selon un mode de réalisation, le vecteur de méta-configuration 500 est introduit de façon sérielle dans le registre de méta-configuration 50, c’est-à-dire que le registre de méta-configuration 50 comprend au moins autant d’éléments bascules que d’éléments binaires utiles à la configuration des entrées des circuits de sélection 14, 24, 34 et 44, les bascules opérant un registre à décalage chargé et décalé par une horloge de chargement à partir de l’entrée de méta-configuration 4. Selon un mode de réalisation, les circuits de sélection d’une source de configuration 14, 24, 34 et 44 sont des circuits de multiplexage de type n vers 1, à n entrées et une sortie et la sélection de l’entrée, recopiée sur la sortie, est réalisée par un mot de sélection. Ainsi les bus de contrôle 141, 241, 341 et 441 reliant respectivement les champs 510, 520, 530 et 540 du vecteur de méta-configuration 500 aux circuits de sélection d’une source de configuration de module 14, 24, 34 et 44 portent des éléments binaires qui codent l’entrée sélectionnée à recopier sur la sortie du circuit de sélection. Les mots binaires, sous-ensembles du vecteur de méta-configuration 500, introduits dans les champs de sélection 510, 520, 530 et 540 sont respectivement recopiés sur les bus 141, 241, 341 et 441 connectés aux entrées de sélection des circuits multiplexeurs de sélection 14, 24, 34 et 44. Il est à noter que seules les connexions des signaux de sélection d’entrée sont représentées sur la , et non pas les sources de configuration, ni même les sorties de modules logiques programmables, aux fins de simplifier l’illustration des moyens de sélection d’une source de configuration de module. La représente une variante des moyens de configuration et de sélection d’une source de configuration appliquée à une version du circuit logique programmable 1 lorsque ce dernier comprend en outre une sortie de configuration 6 (visible sur la ). La présence de la sortie de configuration 6 permet notamment de chaîner le chemin de configuration du circuit logique programmable 1 avec le chemin de configuration d’un autre circuit logique programmable similaire, de sorte à pouvoir réaliser une phase de configuration commune aux deux circuits logiques programmables. Une sortie de configuration peut en outre être utilisée à des fins de débogage, par exemple, pour contrôler une bonne exécution d’une phase de configuration d’un circuit ou plus largement un bon fonctionnement d’outils de configuration. Selon cette variante, le circuit logique programmable 1 comprend un circuit de sélection supplémentaire 54 adapté pour sélectionner une source de sortie, encore appelée source de sortie de configuration. En d’autres termes, le circuit de sélection 54 supplémentaire permet de choisir à quelle sortie de module logique programmable est connectée la sortie de configuration 6 du circuit logique programmable 1. Bien évidemment, ce circuit de sélection 54 supplémentaire doit être contrôlé et un champ de sélection supplémentaire 550 est alors ajouté au vecteur de méta-configuration 500, de sorte à définir un vecteur de méta-configuration étendu 500’. Le contrôle des entrées de sélection du circuit de sélection 54 d’une source de sortie est opéré de façon similaire à ce qui est réalisé pour les autres circuits de sélection 14, 24, 34, et 44, hormis le fait que ce circuit de sélection n’est pas relié à l’entrée de configuration 2 du circuit logique programmable 1. Selon une variante du mode de réalisation, le circuit de sélection 54 peut être relié à l’entrée de configuration 2, de sorte que le circuit logique programmable 1 puisse être traversé par le flux binaire de configuration sans être configuré dans le cas particulier d’une phase de configuration visant à configurer plusieurs circuits logiques programmables dont les chemins de configuration respectifs sont chaînés, et aux fins de complexifier plus encore des opérations de rétro-ingénierie. La est un ordinogramme illustrant un procédé de configuration d’un circuit logique programmable tel que le circuit logique programmable 1. Une étape S0 constitue une étape d’initialisation au terme de laquelle un système électronique qui embarque le circuit logique programmable 1 est initialisé et prêt à exécuter une phase de configuration du circuit logique programmable 1. La phase de configuration du circuit logique programmable 1 est opérée par introduction d’un flux binaire sériel de configuration sur l’entrée de configuration 2 du circuit logique programmable 1, à l’aide de lignes de contrôle dont notamment un signal d’horloge de configuration. La phase de configuration peut être opérée selon un mode de configuration dit « maître » dans lequel le circuit logique programmable 1 met en œuvre les signaux utiles à sa propre configuration. La phase de configuration peut également être opérée selon un mode de configuration dit « esclave » dans lequel les signaux utiles à la configuration du circuit logique programmable 1 sont au moins partiellement contrôlés par un dispositif externe, tel qu’un outil de configuration de circuits logiques programmables. Un tel outil peut être un ordinateur portable équipé d’un logiciel spécifique, par exemple, ou encore un dispositif électronique configuré pour opérer des fonctions d’outil de configuration (ou programmation) de circuits logiques programmables assemblés sur un socle de configuration ou encore in-situ, dans un système électronique compatible avec un tel mode de configuration. Les détails complets d’une phase de configuration d’un circuit logique programmable ne sont pas décrits ici en détails dans la mesure où cela n’est pas utile à la compréhension et à la mise en œuvre de l’invention. L’homme du métier du domaine des circuits logiques programmable saura reproduire les moyens communément utilisés pour la génération d’un flux binaire programmable et sa présentation en entrée de configuration d’un circuit, pour une phase de configuration. Lors d’une étape S1, un vecteur de méta-configuration 500 est défini, lequel comprend les mots logiques de sélection, ou encore codes de sélection à écrire dans les champs de sélection 510, 520, 530 et 540 lorsque le circuit logique programmable 1 ne comprend pas de sortie de configuration, ou encore à écrire dans les champs de sélection 510, 520, 530, 540 et 550 lorsque le circuit logique programmable 1 comprend une sortie de configuration et que celle-ci doit être utilisée à une quelconque fin. Selon un mode de réalisation de l’invention, le vecteur 500 (ou 500’) de méta-configuration à inscrire dans le registre de méta-configuration 50, qui comprend la succession de champs de sélection, est codé sous une forme binaire classique, et des mesures peuvent être adoptées de sorte que la ligne de transmission du signal correspondant soit enfouie dans le système qui embarque le circuit logique programmable. Selon une variante, le vecteur de méta-configuration peut être chiffré et les moyens de méta-configuration comprennent des moyens intermédiaires pour déchiffrer le vecteur de méta-configuration avant écriture dans le registre de méta-configuration 50. Bien évidemment, de telles mesures de protection visant à réduire au maximum les risques de rétro-ingénierie des moyens de configuration du circuit logique programmable 1 peuvent être combinés. Le vecteur de méta-configuration 500 est défini en fonction de l’allocation des ressources programmables du circuit logique programmable 1, c’est-à-dire de la correspondance établie entre les différents segments de flux binaire de configuration et les modules logiques programmables ciblés par la programmation à réaliser, lors d’opérations manuelles ou automatisées de placement-routage. Ainsi, le vecteur de méta-configuration est défini à partir de correspondances respectives entre des fonctions logiques et des ressources physiques programmables ciblées pour l’implémentation de ces fonctions logiques. Selon un mode de réalisation, le flux binaire de configuration est ensuite segmenté en une pluralité de segments lors d’une étape S2 en tenant compte des correspondances précitées entre des fonctions logiques et des ressources physiques programmables. Selon un mode de réalisation, la taille de chacun des segments est définie arbitrairement pour accroître la complexité d’éventuelles opérations de rétro-ingénierie lors d’opérations de placement-routage. Selon une variante, les segments peuvent être de taille identique. Selon l’exemple décrit, le circuit logique programmable 1 comprend quatre modules logiques programmables 10, 20, 30 et 40, et le flux binaire de configuration est décomposé en quatre segments binaires de configuration SEG1, SEG2, SEG 3, SEG4, destinés chacun à la configuration de l’un des modules logiques programmables 10, 20, 30 et 40. Selon l’exemple décrit, les modules logiques programmables 10, 20, 30 et 40 présentent des capacités différentes en termes de nombres de blocs logiques programmables nativement implémentés dans le circuit logique programmable 1, et les segments SEG1, SEG2, SEG3 et SEG 4 présentent donc des tailles différentes. Selon des variantes, les dimensions des modules logiques programmables 10, 20, 30 et 40 peuvent être identiques et les tailles respectives des segments binaires de configuration SEG1, SEG2, SEG3, SEG4 sont donc également identiques. Lors d’une étape S3, le vecteur de méta-configuration 500 (ou 500’) est chargé dans le registre de méta-configuration 50, de sorte à définir les états logiques sur chacun des bus de sélection 141, 241, 341 et 441 connectés aux entrées de sélection des circuits 14, 24, 34, 44 d’une source de configuration de module et éventuellement 54 pour ce qui concerne la sélection d’une source de sortie. Au terme de l’étape S3, la phase de configuration peut être réalisée selon le chemin de configuration alors défini par le vecteur de méta-configuration 500 (ou 500’), lequel chemin comprend les modules logiques programmables 10, 20, 30 et 40 chaînés, et éventuellement la sortie de configuration, selon que celle-ci soit implémentée ou non. Avantageusement, lorsque la configuration du circuit est terminée, le registre de méta-configuration 50 peut être modifié en opérant une reconfiguration de l’ensemble des champs de sélection qu’il comprend, lors d’une étape de reconfiguration S4 de la méta-configuration. Ainsi, par exemple, le registre de méta-configuration 50 comprend une entrée de reconfiguration ou de remise à zéro, encore appelée communément entrée de reset , dont l’activation permet, par exemple, de forcer à zéro les mots logiques de sélection écrits dans les champs de sélection 510, 520, 530, 540 et éventuellement 550 selon que le circuit concerné comprenne ou non une sortie de configuration. Selon une variante, l’entrée de remise à zéro est une entrée de reconfiguration du vecteur de méta-configuration 500 (ou 500’) qui permet de définir une nouvelle valeur du vecteur de méta-configuration autre qu’une valeur pour laquelle tous les champs sont forcés à 0. Par exemple, une nouvelle valeur du vecteur de méta-configuration peut être définie à partir notamment de l’ancienne valeur, suivant un algorithme dédié, être extraite d’une table de vecteurs de méta-configuration stockée dans le circuit logique programmable ou encore une combinaison des deux. Ces exemples étant non limitatifs. La illustre un système électronique 100 comprenant une pluralité de circuits logiques programmables dont le circuit logique programmable 1 et deux autres circuits logiques programmables 1’ et 1’’ similaires au circuit logique programmable 1. Chacun des circuits logiques programmables 1, 1’ et 1’’ comprend une entrée de configuration et une sortie de configuration, ainsi qu’une entrée de méta-configuration et une sortie de méta-configuration. Ainsi, les circuits logiques programmables 1, 1’ et 1’’ comprennent respectivement les entrées de méta-configuration 4, 4’ et 4’’, les sorties de méta-configurations 5, 5’ et 5’’, les entrées de configuration 2, 2’ et 2’’ et les sorties de configuration 6, 6’ et 6’’. Avantageusement, les circuits logiques programmables 1, 1’ et 1’’ peuvent donc être connectés de sorte à chaîner les registres de méta-configuration et les chemins de configurations comprenant les modules logiques programmables de chacun des circuits, de sorte qu’une phase de configuration puisse être commune aux trois circuits logiques programmables 1, 1’ et 1’’. Bien évidemment une telle configuration peut être étendue à un nombre plus conséquent de circuits logiques programmables pour peu que ces derniers soient dotés chacun d’une sortie de configuration et d’une sortie de méta-configuration. Selon un mode de réalisation, les circuits logiques programmables 1, 1’ et 1’’ comprennent chacun une entrée unique permettant la configuration du registre de méta-configuration d’un circuit par insertion d’un vecteur de configuration et la configuration de modules logiques programmables de ce même circuit par insertion subséquente de segments successifs du flux binaire de configuration. En d’autres termes et selon cette configuration, l’entrée de méta-configuration et l’entrée de configuration d’un même circuit logique programmable sont réunies sur une seule broche d’entrée. Dans ce cas, le registre de configuration est connecté en série avec les différents modules logiques programmables de sorte que le début du flux binaire de configuration permette la définition d’un chemin de configuration dans le circuit logique programmable et que la suite du flux binaire de configuration soit ensuite orientée vers l’entrée du premier module de la suite de modules logiques programmables chaînés selon le vecteur de méta-configuration précédemment chargé dans le registre de méta-configuration. Avantageusement, cette configuration accroît encore la sécurité d’une opération de programmation d’un circuit logique programmable, dans la mesure où une « lecture » des moyens de programmation lors d’opérations de rétro-ingénierie est complexifiée par la mise en commun de la broche d’entrée du vecteur de méta-configuration et de la broche d’entrée de configuration des segments successifs de la « partie utile » du flux binaire de configuration. On entend ici par « partie utile » du flux binaire de configuration, la partie n’étant pas destinée à la configuration du chaînage des modules logiques programmables. Avantageusement, selon un autre mode de réalisation et quand plusieurs circuits logiques programmables sont implémentés dans un même système et sont chaînés en vue d’être programmés par un même flux binaire de configuration, la structure du flux binaire de configuration peut être organisée de façon hiérarchisée. Par exemple, une première partie au début du flux binaire de configuration peut servir à programmer une seule partie des vecteurs de méta-configuration, telle que le champ de sélection 550 des registres de méta-configuration 50, puis une deuxième partie, suivant la première partie, peut servir à programmer les autres champs de sélection 510, 520, 530 et 540 des registres de méta-configuration 50, et une troisième partie du flux binaire de configuration, suivant la deuxième partie, sert ensuite à la programmation des modules logiques programmables. Une telle variante vise, là encore, à complexifier d’éventuelles opérations de lecture et de compréhension des moyens de programmation des circuits logiques programmables. Selon une variante d’utilisation et lorsqu’un chaînage de plusieurs circuits logiques programmables n’est pas implémenté, les sorties de méta-configuration 5, 5’ et 5’’ et/ou les sorties de configuration 6, 6’ et 6’’ peuvent être utilisées pour d’autres fonctions du système électronique 100 qui embarque les circuits logiques programmables 1, 1’ et 1’’. Par exemple, les sorties 5, 5’, 5’’, 6, 6’ et 6’’ peuvent être utilisées comme des ports de configuration de circuits électroniques périphériques aux circuits logiques programmables. La représente schématiquement l’architecture interne d’un dispositif 60 configuré pour exécuter le procédé de configuration d’un circuit logique programmable tel que le circuit logique programmable 1. Le dispositif 60 est par exemple un outil de configuration dédié à la configuration de circuits logiques programmables tels que les circuits logiques programmables 1, 1’ et 1’’. Selon l’exemple d’architecture matérielle représenté à la , le dispositif 60 comprend, reliés par un bus de communication 600 : un processeur ou CPU (« Central Processing Unit » en anglais) 601 ; une mémoire vive RAM (« Random Access Memory » en anglais) 602 ; une mémoire morte ROM (« Read Only Memory » en anglais) 603 ; une unité de stockage telle qu’un disque dur (ou un lecteur de support de stockage, tel qu’un lecteur de cartes SD (« Secure Digital » en anglais) 604 ; au moins une interface de communication 605 permettant au premier dispositif 60 de communiquer avec un ou plusieurs circuits logiques programmables tels que les circuits logiques programmables 1, 1’ et 1’’, notamment pour appliquer un signal portant le flux binaire de configuration et pour introduire ce signal par décalages successifs (soit un signal d’horloge de configuration). Le processeur 601 est capable d’exécuter des instructions chargées dans la RAM 602 à partir de la ROM 603, d’une mémoire externe (non représentée), d’un support de stockage (tel qu’une carte SD), ou d’un réseau de communication. Lorsque le dispositif 60 est mis sous tension, le processeur 601 est capable de lire de la RAM 602 des instructions et de les exécuter. Ces instructions forment un programme d’ordinateur causant la mise en œuvre, par le processeur 601, de tout ou partie du procédé décrit en relation avec la et plus généralement le procédé de configuration précédemment décrit, et ses variantes. Tout ou partie du procédé décrit en relation avec la peut être implémenté sous forme logicielle par exécution d’un ensemble d’instructions par une machine programmable, par exemple un DSP (« Digital Signal Processor » en anglais) ou un microcontrôleur, ou être implémenté sous forme matérielle par une machine ou un composant dédié, par exemple un FPGA (« Field-Programmable Gate Array » en anglais) ou un ASIC (« Application-Specific Integrated Circuit » en anglais). En général, le dispositif de configuration 60 comprend de la circuiterie électronique configurée pour mettre en œuvre les procédés décrits en relation avec le dispositif 60. Bien évidemment le dispositif 60 comprend en outre tous les éléments usuellement présents dans un système comprenant une unité de contrôle et ses périphériques, tels que, un circuit d’alimentation, un circuit de supervision d’alimentation, un ou plusieurs circuits d’horloge, un circuit de remise à zéro, des ports d’entrées-sorties, des entrées d’interruptions, des drivers de bus. Cette liste étant non exhaustive. Selon un mode de réalisation, le dispositif de configuration 60 est compris dans un système de programmation configuré pour une connexion à au moins un circuit logique programmable tel que le circuit logique programmable 1. Le système de programmation et le dispositif de configuration 60 sont configurés ensemble de sorte à permettre l’exécution d’un procédé de configuration du circuit logique programmable 1 selon un procédé de programmation tel que décrit, et en conséquence une programmation d’au moins un circuit logique programmable à partir d’un flux binaire de configuration. La connexion entre le système et un circuit logique programmable à programmer peut être réalisée par le biais d’un connecteur dédié, par exemple un connecteur à force d’insertion nulle. Selon une variante, la connexion peut être réalisée au moyen d’un câble de connexion dédié relié à un port de programmation d’une carte portant le circuit logique programmable à programmer. Ces exemples ne sont pas limitatifs. Le procédé de sécurisation de la phase de configuration d’un circuit logique programmable décrit permet avantageusement d’économiser des ressources internes au circuit programmable par rapport à une sécurisation de la phase de configuration au moyen d’une implémentation AES-128, par exemple. L’invention ne se limite pas aux seuls modes de réalisation décrits ci-avant. Ainsi, par exemple, le procédé peut comprendre une segmentation du flux binaire de configuration en un nombre beaucoup plus conséquent de segments et le circuit logique programmable « cible » peut comprendre un nombre beaucoup plus conséquent de modules logiques programmables internes. L’exemple décrit selon lequel le circuit logique programmable 1 est un circuit avec seulement quatre modules programmables internes est choisi aux fins de simplifier la description et dans la mesure où cela suffit à la compréhension de l’invention. En pratique, le nombre de modules logiques programmables internes d’un circuit programmable configurable selon l’invention peut s’élever à plusieurs dizaines de modules logiques programmables, par exemple. Ainsi, dans le cas où le nombre de modules est égal à 35, par exemple, le niveau de protection qui en résulte est équivalent à une protection par implémentation d’un algorithme de chiffrement de type AES-128. En outre, le procédé de sécurisation de la configuration d’un ou plusieurs circuits logiques programmables peut comprendre des étapes de chiffrement et de déchiffrement du flux binaire de configuration, en plus des étapes de sécurisation de la phase de configuration décrites. Procédé de configuration d’un circuit logique programmable (1) à partir d’un flux binaire de configuration, le circuit logique programmable (1) comprenant une entrée de configuration de circuit (2) pour le chargement du flux binaire de configuration et une pluralité de modules logiques programmables (10, 20, 30, 40) comprenant chacun une entrée de module (11, 21, 31, 41) et une sortie de module (12, 22, 32, 42), le procédé étant caractérisé en ce qu’il comprend : définir (S1) un vecteur de méta-configuration (500) comprenant une succession de champs de sélection (510, 520, 530, 540) d’une source de configuration de module parmi une pluralité de sources de configuration de module (3, 13, 23, 33, 43), chaque champ de sélection (510, 520, 530, 540) de source de configuration de module étant attribué à l’un seulement desdits modules logiques programmables (10, 20, 30, 40), et les sources de configuration de modules (3, 13, 23, 33, 43) étant respectivement connectées à ladite entrée de configuration de circuit (2) et aux sorties de module (12, 22, 32, 42), segmenter (S2) le flux binaire de configuration en une pluralité de segments binaires de configuration, charger (S3) ledit vecteur de configuration (500) dans un registre de méta-configuration (50) du circuit logique programmable (1), puis, charger (S3) respectivement lesdits segments binaires de configuration dans lesdits modules logiques programmables (10, 20, 30, 40) en orientant respectivement chacune des sources de configuration de module (13, 23, 33, 43) vers une entrée de module (11, 21, 32, 41) selon les valeurs desdits champs dudit vecteur de méta-configuration. Procédé de configuration d’un circuit logique programmable (1) selon la revendication précédente, comprenant une étape de reconfiguration ou de remise à zéro (S4) du registre de méta configuration (50), postérieure au chargement (S3) desdits segments binaires de configuration. Circuit logique programmable (1) à partir d’un flux binaire de configuration, le circuit logique programmable (1) comprenant une entrée de configuration de circuit (2) pour le chargement du flux binaire de configuration et une pluralité de modules logiques programmables (10, 20, 30, 40) comprenant chacun une entrée de module (11, 21, 31, 41) et une sortie de module (12, 22, 32, 42), le circuit logique programmable (1) étant caractérisé en ce qu’il comprend : un registre de méta-configuration (50) connecté à une entrée de méta-configuration (4), configuré pour être chargé à partir de l’entrée de méta-configuration (4), et comprenant une succession de champs de sélection (510, 520, 530 540) d’une source de configuration de module parmi une pluralité de sources de configuration de module (3, 13, 23, 33, 43), chaque champ de sélection de source de configuration de module étant attribué à l’un seulement desdits modules logiques programmables (10, 20, 30, 40), et les sources de configuration de modules étant respectivement connectées à ladite entrée de configuration de circuit (2) et aux sorties de module (12, 22, 32, 42), des circuits de sélection d’une source de configuration (14, 24, 34, 44) configurés pour charger respectivement des segments binaires de configuration dudit flux binaire de configuration dans lesdits modules logiques programmables (10, 20, 30, 40) en orientant respectivement chacune des sources de configuration de module (3, 13, 23, 33, 43) vers une entrée de module (11, 21, 31, 41) selon des valeurs desdits champs dudit vecteur de méta-configuration. Circuit logique programmable (1) selon la revendication précédente, comprenant en outre une sortie de configuration (6) de circuit et un circuit de sélection (54) d’une source de sortie de configuration configuré pour orienter ledit flux binaire de configuration vers ladite sortie de configuration (6), ledit vecteur de méta-configuration comprenant en outre un champ de sélection (550) d’une source de sortie sélectionnée parmi la pluralité de sortie de modules (12, 22, 32, 42), ledit circuit de sélection (54) d’une source de sortie étant configuré à partir dudit champ (550) de sélection d’une source de sortie. Circuit logique programmable (1) selon la revendication précédente, comprenant en outre une sortie de méta-configuration (5) connectée à l’extrémité du registre de méta-configuration (50), située du côté opposé à l’entrée de méta-configuration (4). Système électronique comprenant une pluralité de circuits logiques programmables (1, 1’, 1’’) selon l’une des revendications 4 et 5, dans lequel des entrées de configuration (2, 2’, 2’’) et des sorties de configuration (6, 6’, 6’’) desdits circuits logiques programmables sont reliées de sorte à chaîner les chemins de configurations comprenant les modules logiques programmables de chacun des circuits pour présenter une chaîne de programmation de modules logiques programmables. Système électronique selon la revendication 6 lorsqu’elle dépend de la revendication 5, dans lequel des entrées de méta-configuration (4, 4’, 4’’) et des sorties de méta-configuration (5, 5’, 5’’) sont reliées de sorte à chaîner les registres de méta-configuration pour présenter une chaîne de registres de méta-configuration. Produit programme d’ordinateur caractérisé en ce qu’il comprend des instructions de codes de programme pour exécuter les étapes du procédé selon l’une quelconque des revendications 1 à 2, lorsque ledit programme est exécuté par un processeur. Support de stockage d’informations comprenant un produit programme d’ordinateur selon la revendication précédente. Système de programmation d’au moins un circuit logique programmable configuré pour une connexion à un circuit logique programmable (1) selon l’une des revendications 3 à 5, le système comprenant en outre un dispositif configuré pour exécuter un procédé de configuration dudit circuit logique programmable (1) selon l’une des revendications 1 et 2