Brevet FR2972566A1 — publié le 20120914

SYSTEME MONO-PUCE COMPRENANT UN COEUR PROGRAMMABLE SYNTHETISABLE ET UN PROCEDE DE FABRICATION D'UN TEL SYSTEME L'invention concerne un système mono-puce comprenant un coeur programmable synthétisable et un procédé de fabrication d'un tel système. Elle s'applique notamment au domaine des circuits intégrés. Il existe aujourd'hui plusieurs alternatives pour mettre en oeuvre 1 o des applications sur circuits intégrés. Une première possibilité est d'utiliser des circuits intégrés conçus spécialement pour une application ou un ensemble d'application donné. Ces circuits sont désignés par l'acronyme ASIC venant de l'expression anglo-saxonne « Application-Specific Integrated Circuit ». Ils permettent une 15 exécution rapide des applications et le coût de production est réduit lorsqu'ils sont produits à grande échelle. Cependant, la conception de tels circuits est longue et les coûts de développement peuvent être importants. Une alternative est d'utiliser des circuits intégrés programmables comme par exemple des circuits FPGA, acronyme venant de l'expression 20 anglo-saxonne « Field Programmable Gate Array ». Les circuits FPGA sont composés d'une pluralité de cellules logiques élémentaires pouvant être connectées les unes aux autres par programmation. La programmation d'un FPGA est mise en oeuvre à l'aide d'un ensemble de bits de configurations permettant de connecter les cellules élémentaires de différentes manières. 25 Cet ensemble de bits de configuration est habituellement regroupé dans un fichier de configuration. Ce fichier est désigné habituellement par le mot anglais « bitstream ». Le fichier de configuration peut être mémorisé à l'extérieur du circuit FPGA dans une mémoire non volatile externe. Un des avantages des circuits FPGA est qu'ils peuvent être reprogrammés par 30 modification du fichier de configuration. La mise en oeuvre d'une application donnée est facilitée du fait que lorsqu'une erreur est détectée, celle-ci peut être corrigée par reprogrammation du circuit sans modification matérielle. Cependant, pour une application donnée, du fait qu'un circuit FPGA n'est pas spécialisé, la surface en silicium est plus importante que celle requise par un 35 circuit ASIC. De plus, sont coût est plus élevé et ses performances en termes de temps d'exécution moins bonnes. Une autre alternative est d'intégrer un circuit FPGA dans un système mono-puce comportant aussi des éléments de calcul spécialisés, lesdits éléments de calcul spécialisés étant mis en oeuvres dans des blocs dédiés, c'est-à-dire non programmables. Les systèmes mono-puce sont désignés habituellement par l'acronyme SoC venant de l'expression anglo-saxonne « System on Chip ». Puisque dans ce cas le circuit FPGA est intégré au sein d'un système SoC, celui-ci est désigné par l'acronyme eFPGA, le `e' faisant référence au mot anglais « embedded ». La figure 1 représente de manière simplifiée les étapes de conception d'un système SoC comportant un circuit eFPGA. De nombreuses difficultés y sont rencontrées. Après avoir spécifié 100 quelles sont les caractéristiques du système SoC voulu, deux types de blocs doivent être conçus. Les premiers 15 sont les blocs dédiés et les seconds les blocs eFPGA. Pour concevoir des blocs dédiés dans un SoC, une description fonctionnelle synthétisable 101 desdits blocs doit être produite. Pour cela, un langage de description matérielle HDL, acronyme venant de l'expression anglo-saxonne « Hardware Description Langage » est utilisé. Des exemples 20 couramment utilisés de tels langages sont les langages VHDL et Verilog. Les langages HDL sont utilisés habituellement pour décrire le fonctionnement attendu des blocs dédiés et permettre leur traduction en un assemblage de portes logiques, cet assemblage de portes logiques étant obtenu à l'aide d'un outil de synthèse 102. Plus précisément, le résultat de la synthèse 25 correspond à une liste d'interconnections de portes logiques 103, ladite liste étant présentée habituellement sous la forme d'un fichier désigné par l'expression anglo-saxonne « netlist gate ». Ce fichier correspond à une liste contenant l'ensemble des portes logiques élémentaires à utiliser pour la mise en oeuvre des blocs dédiés du SoC ainsi que des informations sur la manière 30 dont ces portes sont connectées les unes aux autres. Pour ce qui concerne la conception du circuit eFPGA, le concepteur doit produire une description matérielle 104 du circuit puis utiliser un outil de génération 105 de manière à générer à partir de la description matérielle une liste d'interconnexion de transistors 106, ladite liste étant 35 présentée habituellement sous la forme d'un fichier désigné par l'expression anglo-saxonne « transistor netlist ». Un fichier géométrique est également obtenu. L'outil de génération permettant d'obtenir ces fichiers est habituellement dédié à la conception de circuit eFPGA. Il permet d'obtenir en plus de la liste de transistors et du fichier géométrique un modèle de simulation. Cependant, ce modèle de simulation est limité car il ne prend pas en compte tous les phénomènes physiques liés à l'implémentation du circuit eFPGA sur le système mono-puce SoC. Un tel modèle de simulation imparfait est néanmoins utilisé pour valider le système avant la génération physique de la puce. 1 o II apparait donc qu'une première série d'opérations de conception 109, et une seconde série d'opérations de conception 110 sont nécessaires pour obtenir un SoC intégrant un circuit eFPGA, ces séries d'opérations étant appelées flots de conception. Les opérations requises pour la mise en oeuvre des deux flots sont conduites indépendamment les unes des autres. Le 15 premier flot 109 utilisé pour la synthèse des blocs dédiés est appelé flot de conception classique dans la suite de la description, le terme classique étant utilisé car ce type de flot est similaire à celui utilisé lors de la conception de circuits ASIC. Le second flot 110 est appelé flot eFPGA. Les listes 103, 106 obtenues par la mise en oeuvre des flots 20 classique 109 et eFPGA 110 sont ensuite utilisées à un autre stade de la conception dans le but d'obtenir une image de la puce à fondre, cette image étant mémorisée dans des fichiers appelés fichiers géométriques 106, 112, appelé aussi fichier « Iayout » en langue anglaise. Un inconvénient de cette approche est que deux flots 25 indépendants 109, 110 sont requis. Les concepteurs doivent donc décider dès la phase de spécification du système mono-puce 100 de la répartition des fonctions requises pour la mise en oeuvre de la ou des applications ciblées. En effet, les fonctions nécessaires à la mise en oeuvre de l'application choisie peuvent être implémentées soit dans des blocs dédiés, 30 soit dans des circuits eFPGA. A titre d'exemple, un SoC sera obtenu par la mise en oeuvre d'un premier sous-ensemble de fonctions dans un bloc dédié et d'un second-sous ensemble de fonctions dans un bloc eFGPA. Un autre inconvénient de cette approche est qu'un certain nombre d'erreurs ne peuvent être détectés qu'une fois la puce fondue. Cela est du 35 notamment aux imperfections du modèle de simulation du bloc eFPGA obtenus à l'aide de l'outil de génération 105 et à la réalisation de fichiers géométriques 106, 112 avec deux processus indépendantes 105, 107. Ces erreurs détectées tardivement ont pour conséquences une augmentation significative du temps et du coût de développement du système SoC car il est alors nécessaire de corriger les modèles HDL des blocs dédiés à générer puis de synthétiser de nouveaux fichiers netlist dans le but de corriger ces erreurs puis de fondre une nouvelle puce pour la tester. Un but de l'invention est notamment de pallier les inconvénients 1 o précités. A cet effet l'invention a pour objet un système mono-puce comportant au moins un coeur programmable synthétisable CPS et un bloc dédié. Le coeur CPS et le bloc dédié ont été synthétisés ensemble à partir d'une part d'un modèle en langage de description matérielle HDL du bloc 15 dédié et d'autre part d'un modèle HDL du coeur CPS associé à un fichier de configuration par défaut. Selon un aspect de l'invention, le modèle HDL et le fichier de configuration par défaut du coeur CPS ont été générés à partir d'un modèle HDL initial correspondant à un bloc non programmable. Le modèle HDL du 20 coeur CPS associé à son fichier de configuration par défaut est équivalent fonctionnellement au modèle HDL initial. Selon un autre aspect de l'invention, le fichier de configuration par défaut est obtenu par compilation du résultat de la synthèse du modèle HDL initial, l'architecture du coeur CPS étant prise en compte par la compilation. 25 Le coeur CPS est synthétisé, par exemple, en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. Dans un mode de réalisation, des éléments mémoire sont utilisés pour la programmation du coeur CPS. Un signal d'initialisation met les 30 éléments mémoire dans un état connu, ledit signal d'initialisation étant adapté de manière à ce que les états connus des éléments mémoire correspondent aux valeurs comprises dans le fichier de configuration par défaut. Le signal d'initialisation est par exemple adapté par retro-35 annotation du modèle HDL du coeur CPS afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un élément mémoire. Les éléments mémoire sont, par exemple, des bascules D. Selon un mode de réalisation, le signal d'initialisation est routé 5 vers les entrées de données des bascules D. Selon un autre mode de réalisation, le signal d'initialisation est routé vers les entrées SET ou RESET des bascules D. Les bascules D sont par exemple choisies avec une entrée de forçage à 0 ou avec une entrée de forçage à 1 de manière à ce que lesdites 1 o bascules soient initialisées en chargeant les valeurs leurs étant associées dans le fichier de configuration par défaut. Par exemple, le coeur CPS associé à son fichier de configuration met en oeuvre un contrôleur de mémoire. L'invention a aussi un procédé de fabrication d'un système mono- 15 chip tel que décrit précédemment. Le procédé comprend une étape de génération d'un modèle en langage de description matérielle HDL d'un coeur programmable synthétisable CPS devant mettre en oeuvre des fonctions décrites à l'aide d'un modèle HDL initial, une étape de génération d'un fichier de configuration par défaut du coeur CPS par synthèse et compilation du 20 modèle HDL initial, une étape de synthèse du coeur CPS et du bloc dédié en utilisant un même outil de synthèse, une étape de génération d'un fichier géométrique à partir du résultat de la synthèse et une étape de fonte du système mono-puce en utilisant ledit fichier géométrique. Selon un aspect de l'invention, la synthèse est effectuée en 25 utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. Le modèle HDL et le fichier de configuration par défaut du coeur CPS ont été générés à partir d'un modèle HDL initial correspondant à un bloc non programmable de manière à ce que le modèle HDL du coeur CPS 30 associé à son fichier de configuration par défaut soient équivalent fonctionnellement au modèle HDL initial. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite 35 en regard des dessins annexés parmi lesquels : - la figure 1 représente de manière simplifiée les étapes de conception d'un système SoC comportant un circuit eFPGA; - la figure 2 présente un exemple de système mono-puce selon l'invention ; - la figure 3 illustre une première phase de conception permettant d'obtenir une description en langage de description matérielle d'un coeur CPS ainsi que son fichier de configuration ; - la figure 4 illustre la manière dont un système SoC selon l'invention peut être obtenu à partir du modèle HDL d'un coeur CPS et de son fichier de configuration ; - la figure 5 illustre la manière dont un système SoC comprenant un coeur programmable synthétisable CPS peut être paramétré par défaut. La figure 2 présente un exemple de système mono-puce 200 selon l'invention. Cet exemple de système SoC comprend quatre blocs dédiés 201, 202, 203, 207 ainsi que trois blocs appelés blocs durs 204, 205, 206. Les blocs durs 204, 205, 206 correspondent à des blocs mettant en oeuvre des fonctions communément utilisées dans les circuits intégrés, comme par exemple des mémoires, des circuits d'interface entrées-sorties ou bien des PLL, acronyme venant de l'expression anglo-saxonne « Phase Locked Loop ». Le système comporte en outre une zone dans laquelle apparait un bloc dédié 207 ainsi que deux coeurs programmables synthétisables CPS 208, 209. Un coeur CPS 208, 209 est associé à au moins un fichier de configuration mémorisé en interne au SoC ou bien dans une mémoire externe. Un tel fichier permet de programmer précisément un coeur CPS après que la puce du système mono-coeur ait été fondue. Les blocs dédiés 201, 202, 203 ayant leurs propres fonctionnalités peuvent être implémentés à l'aide de modèles HDL déjà utilisés pour implémenter des blocs dédiés validés dans la cadre d'autres SoC. Les concepteurs peuvent ainsi choisir de les réutiliser directement, les risques d'erreurs résultant de l'implémentation de ces blocs étant limités. La problématique est différente par exemple lorsque des fonctionnalités nouvelles doivent être introduites dans le SoC. Dans ce cas, une solution de type eFPGA peut être choisie. De cette façon, les fonctionnalités nouvelles sont reprogrammables après que le SoC ait été fondu. Dans le cadre de l'invention, une solution nouvelle et innovante est proposée. Un SoC selon l'invention comprend un ou plusieurs coeurs programmables synthétisables CPS 208, 209. Une partie des fonctionnalités 1 o nouvelles à mettre en oeuvre dans le SoC y est allouée, et le fait que ces coeurs soient programmables permet la correction d'erreurs même après la production de la puce par modification d'un fichier de configuration. Si le SoC est utilisé pour différentes versions d'un produit, les fonctionnalités mises en oeuvre au niveau des coeurs CPS peuvent aussi être adaptées d'un produit à 15 l'autre en modifiant le fichier de configuration. Avantageusement, la logique programmable d'un coeur CPS est optimisée pour pouvoir réaliser un ensemble donné de fonctions de nature connue a priori par le concepteur. A titre d'exemple, si un coeur CPS doit mettre en oeuvre un contrôleur de mémoire, les ressources caractéristiques 20 d'un processeur sont inutiles et ne seront pas comprises dans les éléments physiques composant le coeur. En d'autres termes, un coeur CPS est un bloc semi-dédié, ce qui diffère des circuits de type FPGA et eFPGA dont les architectures sont mises au point afin de répondre à n'importe quel besoin. Les FPGA et eFPGA sont par conséquent souvent surdimensionnés, ce qui 25 n'est pas le cas des coeurs CPS. Les figure 3 et figures 4 présentent de manière simplifiée les deux phases de conception permettant d'obtenir un système SoC selon l'invention. La figure 3 illustre une première phase de conception permettant 30 d'obtenir un modèle HDL 307 d'un coeur CPS, c'est-à-dire une description en langage de description matérielle de ce coeur 306, ainsi que son fichier de configuration 305. Dans cet exemple, les concepteurs ont choisi de mettre en oeuvre une application 300 dans laquelle un premier ensemble de fonctions A est 35 destiné à être embarqué dans un bloc dédié. Un deuxième ensemble B de fonctions est divisé en deux sous-ensembles de fonctions B1 et B2. Le sous-ensemble de fonctions B1 est destiné à être embarqué dans un bloc dédié et le sous-ensemble de fonctions B2 est destiné à être embarqué dans un coeur CPS. Une première étape a pour finalité la description de ces ensembles de fonctions en langage de description matérielle 300. Un modèle HDL est obtenu pour chacun d'eux. Une succession d'étape est ensuite appliquée pour obtenir à partir d'un modèle HDL initial 307 du sous-ensemble B2 un modèle HDL du coeur 1 o CPS ainsi que son fichier de configuration par défaut. Dans un premier temps, l'architecture du coeur CPS doit être déterminée 301. Celle-ci peut être décrite par le concepteur, par exemple en utilisant des logiciels adaptés. Il est aussi possible de générer cette architecture automatiquement ou de la sélectionner parmi différentes 15 architectures de coeurs CPS possibles comprises dans une bibliothèque. L'architecture d'un coeur CPS peut aussi être affinée pour des besoins spécifiques par l'utilisation de modules ou de fonctions spécialisées. L'architecture du coeur CPS est décrite par un langage de description matérielle. D'autre part, le modèle le sous-ensemble de fonctions 20 B2 est synthétisé 303 à partir du modèle HDL initial 307 en prenant en compte 308 l'architecture du coeur CPS. Le résultat de cette synthèse est compilé 304 de manière à produire un fichier de configuration par défaut 305 du coeur CPS. Un outil de compilation spécifique est alors requis comme par exemple un outil classique de compilation pour FPGA ou eFPGA. La 25 combinaison du modèle HDL 306 du coeur CPS et de son fichier de configuration par défaut 305 est alors équivalente fonctionnellement au modèle HDL d'un bloc non programmable d'origine 307 du sous-ensemble de fonctions B2 appelé aussi modèle HDL initial, et peut être utilisée dans un flot de synthèse classique. 30 La figure 4 illustre la manière dont un système SoC selon l'invention peut être obtenu à partir du modèle HDL et de son fichier de configuration. L'équivalence fonctionnelle entre le modèle HDL initial 307 non 35 programmable du sous-ensemble de fonction à mettre en oeuvre sur le coeur CPS, c'est-à-dire le sous-ensemble B2 dans cet exemple, et l'ensemble composé du modèle HDL dudit coeur 306, 402 associé à son fichier de configuration par défaut 305, 401 est essentielle pour la conception d'un SoC selon l'invention. Cette équivalence va au-delà de celle obtenue quand un eFPGA est utilisé. En effet, en plus d'avoir la même fonctionnalité logique, le modèle HDL initial et l'ensemble composé du modèle HDL du coeur et de son fichier de configuration par défaut peuvent être permutés aisément à l'intérieur du flot de synthèse. La partie physique du SoC mettant en oeuvre le sous- 1 o ensemble de fonction est différente selon que l'une ou l'autre alternative est choisie. En particulier, la surface de silicium sera différente. Cependant, le modèle HDL initial et l'ensemble composé du modèle HDL du coeur CPS associé à son fichier de configuration sont tous deux synthétisables par les mêmes outils. Cela a notamment comme avantage d'éviter la mise en oeuvre 15 d'une étape d'intégration supplémentaire quand on décide d'une telle permutation. Lorsque le modèle HDL 402 du coeur CPS et son fichier de configuration 401 ont été générés, ils peuvent être synthétisés 404 en même temps que le modèle HDL du sous-ensemble B1 de fonctions et du modèle 20 HDL de l'ensemble A de fonctions. Après la synthèse logique 404, un fichier de géométrie 406 peut être généré 405 en utilisant un outil classique et le système SoC 408 comprenant un coeur programmable synthétisable peut être fondu 407. Dans le cas où la synthèse de coeur CPS est mise en oeuvre à 25 l'aide d'une bibliothèque de cellules standard, l'équivalence est valable à travers tout le processus de conception, y compris pour le placement et le routage, c'est-à-dire pour l'étape de génération de fichier géométrique. Le système SoC peut alors être mis en oeuvre en utilisant n'importe quelle technologie de fabrication de circuits intégrés. 30 La figure 5 illustre la manière dont un système SoC comprenant un coeur programmable synthétisable CPS peut être configuré par défaut. Un SoC selon l'invention est un compromis entre un SoC comprenant un eFGPA et un SoC ne comprenant que des blocs dédiés. En d'autres termes, un SoC 35 selon l'invention est un système semi-dédié. Ces systèmes sont donc utiles pour la mise en oeuvre d'une ou plusieurs applications données, le ou les coeurs CPS permettant de programmer certaines des fonctions utilisées par ces applications. Comme explicité précédemment, il y a équivalence fonctionnelle entre le modèle HDL initial et le modèle HDL du coeur CPS associé à son fichier de configuration par défaut. Pour l'acquéreur d'un système SoC selon l'invention, il peut être utile que celui-ci soit directement utilisable sans avoir à le programmer, tout en laissant la possibilité de paramétrer finement plus tard un sous-ensemble de fonctions. Pour cela, un mode de réalisation avantageux d'un tel système 1 o SoC selon l'invention comprend une technologie lui permettant de se configurer par défaut au moment de sa mise sous tension. Pour rappel, pour pouvoir fonctionner les circuits FPGA et eFPGA doivent charger les bits contenus dans un fichier de configuration au niveau de points de mémoire internes à ces circuits, appelés points mémoire dans le 15 suite de la description. Ces points mémoire sont programmés séquentiellement à partir du fichier de configuration habituellement mémorisé sur un support de stockage externe au circuit à programmer. Cette approche est classique lorsque des circuits FPGA ou eFPGA sont utilisés, car leur configuration n'est pas ou n'a pas besoin d'être connue au moment de leur 20 fabrication. Une fois que le fichier de configuration a été déterminé, à la mise sous tension du système utilisant un FPGA ou un eFPGA les bits dudit fichier de configuration sont chargés. Cette opération n'est pas instantanée. De plus, un FPGA ou un eFPGA n'est pas disponible avec une configuration par défaut. 25 Le système mono-chip selon l'invention permet avantageusement de contenir une configuration par défaut du ou des coeurs CPS sans que l'acquéreur d'un tel système n'ait à réaliser une quelconque opération de programmation. Pour cela, deux alternatives sont décrites ci-après. Toujours à titre de rappel, un signal d'initialisation est 30 habituellement utilisé dans les circuits intégrés pour mettre des éléments mémoire de type bascule dans un état connu. Ce signal est habituellement généré à l'extérieur du circuit et est appelé signal d'initialisation. Par défaut, le signal d'initialisation charge la valeur 0 dans tous les éléments. Une première manière pour charger la configuration par défaut 35 automatiquement est de modifier ce signal d'initialisation de sorte que celui-ci ne charge pas uniquement des 0 dans les éléments 501 permettant de programmer les cellules 500 du coeur CPS, mais des 0 et des 1 en conformité avec les valeurs du fichier de configuration par défaut. L'effet produit par le signal d'initialisation est adapté au moment de l'écriture du modèle HDL du coeur CPS. Pour cela, après génération du modèle HDL du coeur CPS ainsi que son fichier de configuration, le modèle HDL est retro-annoté afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un point mémoire du coeur CPS lorsque le signal d'initialisation est appliqué. 1 o Le signal d'initialisation peut être dérivé du signal d'initialisation classique d'un SoC, d'un autre signal ou d'une combinaison entre ce signal d'initialisation et un autre signal. De plus, cette technique de prise en compte de la configuration par défaut au niveau du signal d'initialisation permet avantageusement une simulation complète du fonctionnement du système 15 Soc à partir des modèles HDL du coeur CPS et des autres modèles HDL associés aux blocs dédiés et aux blocs durs. Une manière alternative de charger la configuration par défaut du coeur CPS automatiquement est de modifier la nature des éléments mémoire 501 choisis. Lors de la conception d'un système SoC selon l'invention, des 20 bibliothèques de cellules standards sont utilisées au moment de la synthèse. Ces bibliothèques permettent la mise en oeuvre d'au moins deux types d'éléments mémorisant. Un premier type d'élément est la bascule D sur état appelée aussi « latch » en anglais et un deuxième type d'élément est la bascule D sur front appelée aussi bascule « flip-flop ». Une bascule D sur 25 état prend moins de place sur un SoC qu'une bascule D sur front. Le choix entre ces deux types d'éléments mémoire est fait habituellement au moment de l'écriture du modèle HDL. Après la synthèse, il reste cependant possible de modifier des bascules choisies pour la prise en compte des valeurs du fichier de configuration. La modification après synthèse consiste en un 30 remplacement de bascules D avec une entrée de forçage à 0 RESET par une bascule D avec une entrée de forçage à 1 SET ou l'inverse en fonction de la valeur correspondant du fichier de configuration, le signal d'initialisation étant par exemple connecté à cette entrée. Cette modification peut être mise en oeuvre en mettant à jour manuellement ou à l'aide d'un logiciel adapté le 35 fichier « netlist gate » généré à partir des modèles HDL du SoC. Il reste possible de re-programmer le SoC en utilisant le mode de programmation classique d'un circuit programmable, c'est-à-dire en chargeant les bits d'un fichier de configuration 502 différent du fichier de configuration par défaut par la voie de donnée normale 504 des éléments mémoires, par exemple en utilisant l'entrée D d'une bascule D. L'une des techniques de configuration par défaut peut être appliquée à tout ou partie d'un coeur CPS. Cela permet avantageusement au concepteur de ne pas divulguer la totalité du fichier de configuration par défaut.10 REVENDICATIONS1- Système mono-puce (200, 408) caractérisé en ce qu'il comporte au moins un coeur programmable synthétisable CPS (208, 209) et un bloc dédié (201, 202, 203, 207), ledit coeur CPS et ledit bloc dédié ayant été synthétisés ensemble à partir d'une part d'un modèle en langage de description matérielle HDL du bloc dédié (201, 202, 203, 207) et d'autre part d'un modèle en langage de description matérielle d'un modèle HDL du coeur CPS (306, 402) associé à un fichier de 1 o configuration par défaut (305, 401). 2- Système mono-puce (200, 408) selon la revendication 1 dans lequel le modèle HDL (306) et le fichier de configuration par défaut (305) du coeur CPS ont été générés à partir d'un modèle HDL initial (307) 15 correspondant à un bloc non programmable, le modèle HDL du coeur CPS (306) associé à son fichier de configuration par défaut (305) étant équivalent fonctionnellement au modèle HDL initial (307). 3- Système mono-puce (200, 408) selon l'une des revendications 1 ou 2 20 dans lequel le fichier de configuration par défaut est obtenu par compilation (304) du résultat de la synthèse (303) du modèle HDL initial (307), l'architecture du coeur CPS étant prise en compte (308) par la compilation (304). 25 4- Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel le coeur CPS est synthétisé en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. 30 5- Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel des éléments mémoire (501) sont utilisés pour la programmation du coeur CPS, un signal d'initialisation mettant lesdits éléments (501) dans un état connu, ledit signal d'initialisation étant adapté de manière à ce que les étatsconnus des éléments mémoire (501) correspondent aux valeurs comprises dans le fichier de configuration par défaut. 6- Système mono-puce (200, 408) selon la revendication 5 dans lequel le signal d'initialisation est adapté par retro-annotation du modèle HDL du coeur CPS afin de faire correspondre chaque information du fichier de configuration par défaut à une mise à 1 ou à une mise à 0 d'un élément mémoire. 7- Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel les éléments mémoire (501) sont des bascules D. 8- Système mono-puce (200, 408) selon la revendication 7 dans lequel le signal d'initialisation est routé vers les entrées de données des bascules D. 9- Système mono-puce (200, 408) selon la revendication 7 dans lequel le signal d'initialisation est routé vers les entrées SET ou RESET des bascules D. 10- Système mono-puce (200, 408) selon l'une des revendications 7 à 9 dans lequel les bascules D sont choisies avec une entrée de forçage à 0 (RESET) ou avec une entrée de forçage à 1 (SET) de manière à ce que lesdites bascules soient initialisées en chargeant les valeurs leurs étant associées dans le fichier de configuration par défaut (305). 11- Système mono-puce (200, 408) selon l'une quelconque des revendications précédentes dans lequel le coeur CPS associé à son fichier de configuration met en oeuvre un contrôleur de mémoire. 12- Procédé de fabrication d'un système mono-chip selon l'une quelconques des revendications 1 à 11 comprenant les étapes suivantes :- la génération (301) d'un modèle en langage de description matérielle HDL (306) d'un coeur programmable synthétisable CPS devant mettre en oeuvre des fonctions décrites à l'aide d'un modèle HDL initial (307); - la génération (302) d'un fichier de configuration par défaut (305) du coeur CPS (306) par synthèse (303) et compilation (304) du modèle HDL initial (307) ; - la synthèse (404) du coeur CPS et du bloc dédié en utilisant un même outil de synthèse ; - la génération (405) d'un fichier géométrique (406) à partir du résultat de la synthèse ; - la fonte (407) du système mono-puce en utilisant ledit fichier géométrique (406). 13- Procédé selon la revendication 12 dans lequel la synthèse est effectuée en utilisant une bibliothèque de cellules standard communément utilisée pour la synthèse de circuits ASIC. 14- Procédé selon l'une des revendications 12 ou 13 dans lequel le modèle HDL (306) et le fichier de configuration par défaut (305) du coeur CPS ont été générés à partir d'un modèle HDL initial (307) correspondant à un bloc non programmable de manière à ce que le modèle HDL du coeur CPS (306) associé à son fichier de configuration par défaut (305) soient équivalent fonctionnellement au modèle HDL initial (307).