Brevet FR2843201A1 — publié le 20040206

PROCEDE POUR DEBOGUER UN MICROPROGRAMME, ET DISPOSITIF DE DEVELOPPEMENT DE COMPOSANT ELECTRONIQUE. L'invention concerne, de façon générale, les techniques notamment connues sous l'abréviation "OCE" de l'expression anglo-saxonne "On Chip Emulation" (émulation sur silicium) et facilitant le développement de puces électroniques. Plus précisément, l'invention concerne, selon un premier de ses aspects, un procédé pour déboguer un microprogramme stocké dans une puce électronique, préalablement à une production de cette puce en série, ce procédé comprenant une étape préalable consistant à implanter dans la puce à déboguer, lors de sa conception, des premières ressources matérielles et logicielles permettant d'en extraire un vecteur instantané de signaux d'états réels représentatifs d'une activité interne de cette puce, et une étape de mise au point et / ou de validation du microprogramme comprenant une opération d'excitation dans laquelle la puce est excitée par un vecteur instantané de signaux d'excitation à travers des plots de connexion dont cette puce est dotée au moins en périphérie, une opération d'observation dans laquelle le vecteur instantané de signaux d'états réels est observé corrélativement à l'excitation, et une opération de comparaison dans laquelle ce vecteur instantané d'états réels est comparé à un vecteur instantané de signaux d'états de référence prédits pour le vecteur instantané de signaux d'excitation. Traditionnellement, l'émulation sur silicium est effectuée en utilisant les ressources matérielles et logicielles dont la puce à déboguer est dotée pour réaliser l'ensemble des opérations de débogage et en observant la puce à travers ses plots de connexion périphériques. Compte tenu de l'importance des ressources nécessaires au débogage et du surcot auquel conduit l'implantation de ces ressources dans la puce, les fondeurs de silicium sont souvent conduits à préparer un premier jeu de masque pour réaliser la puce à déboguer, et un second jeu de masque pour fabriquer la puce définitive en série, postérieurement au débogage, en omettant tout ou partie des ressources nécessaires à ce débogage. Or, cette démarche allonge le cycle de production de nouvelles puces, en augmente le cot de façon considérable, notamment pour les moyennes séries, et laisse ouverte la possibilité qu'une différence entre les premier et second jeux de masques empêche de continuer à maintenir le microprogramme en utilisant le silicium de développement. L'invention, qui se situe dans ce contexte, a pour but de proposer une solution à ces problèmes. A cette fin, le procédé de l'invention, par ailleurs conforme à la définition générique qu'en donne le préambule ci-dessus, est essentiellement caractérisé en ce qu'il comprend une étape intermédiaire consistant à doter la puce à déboguer de plots de connexion internes accessibles à partir de sa surface supérieure, en ce qu'il comprend une première étape de préparation consistant à fixer à la surface supérieure de la puce à déboguer une puce d'instrumentation au moins dotée d'une première série de plots connectés aux plots internes'de la puce à déboguer et d'une seconde série de plots, en ce qu'il comprend une deuxième étape de préparation consistant à implanter dans la puce d'instrumentation des secondes ressources matérielles et logicielles permettant d'appliquer au vecteur instantané de signaux d'états réels extraits un traitement tel qu'une mémorisation temporaire et / ou un filtrage logique, et en ce que l'opération d'observation est mise en òuvre en observant au moins les signaux d'états issus du traitement et transitant sur les plots de la seconde série de plots. L'étape intermédiaire peut par exemple comprendre une opération de formation d'une couche métallique de redistribution. Par ailleurs, il est utile de prévoir que les premières ressources matérielles et logicielles comprennent essentiellement des ressources définies par le standard JTAG. L'invention concerne également un dispositif de développement de composant électronique, comprenant une puce électronique dotée d'une pluralité de plots de connexion périphériques, d'une mémoire dans laquelle est stocké un microprogramme à déboguer, et de premiers moyens de débogage intégrés à la puce, ce dispositif étant principalement caractérisé en ce qu'il comprend en outre une puce d'instrumentation fixée sur une première face de la puce à déboguer et présentant des première et seconde séries de plots de connexion, en ce que la puce à déboguer comprend des plots de connexion formés sur sa première face et reliés aux plots de la première série de plots de la puce d'instrumentation, et en ce que la puce d'instrumentation est dotée de seconds moyens de débogage fonctionnellement interposés entre les première et seconde séries de plots de connexion. Dans le cas o les premiers et seconds moyens de débogage comprennent des première et seconde séries respectives de mémoires tampons, les mémoires tampons de la seconde série sont avantageusement plus nombreuses que les mémoires tampons de la première série. Enfin, dans le cas o le débogage requiert le recours à des filtres logiques et / ou de machines d'état, il est préférable de faire en sorte que ces filtres et / ou ces machines d'état soient au moins majoritairement compris dans les seconds moyens de débogage, et éventuellement même que les premiers moyens de débogage en soient dépourvus. D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est faite ci-après, à titre indicatif et nullement limitatif, en référence aux dessins annexés, dans lesquels: - la figure 1 est une vue schématique d'un dispositif conforme à l'invention, incluant de façon symbolique des éléments structurels et des éléments fonctionnels et - la figure 2 est une vue schématique latérale du dispositif illustré à la figure 1. Comme annoncé précédemment, l'invention concerne un procédé et un dispositif permettant le développement d'un composant électronique programmable. Comme le montrent les figures, le dispositif comprend, de façon connue en soi, une puce électronique 1 dotée d'une pluralité de plots de connexion périphériques CP, d'une mémoire, par exemple d'une mémoire réinscriptible MR, dans laquelle est stocké un microprogramme à déboguer, et de ressources matérielles et logicielles de débogage ML1 intégrés à cette puce 1. Selon l'invention, les ressources matérielles et logicielles de débogage ML1 intégrés à la puce 1 à déboguer ne constituent que des ressources auxiliaires, d'autres ressources de débogage ML2 étant implantées dans une puce d'instrumentation 2 qui est fixée sur la face supérieure 11 de la puce à déboguer 1. La puce à déboguer 1 comprend alors des plots de connexion internes CI, formés sur sa face supérieure 11, et la puce d'instrumentation 2 présente deux séries de plots de connexion respectivement notées SC1 et SC2, les plots de la série SC1 étant reliés aux plots de connexion internes CI de la puce à déboguer. Par ailleurs, les ressources de débogage déportées ML2, implantées dans la puce d'instrumentation 2, sont fonctionnellement interposées entre les deux séries de plots de connexion SC1 et SC2. Grâce à cet agencement, un matériel externe d'analyse relié aux plots de la série SC2 peut avoir accès aux signaux présents sur les plots de connexion internes CI de la puce à déboguer 1 par l'intermédiaire des ressources de débogage déportées ML2. Les ressources de débogage auxiliaires ML1 implantées dans la puce à déboguer 1 étant relativement modestes, et ne comprenant de préférence que des ressources définies par le standard JTAG, la puce fabriquée en série peut garder la même structure que la puce déboguée. Dans le cas o des mémoires tampons sont utilisées pour mémoriser de façon transitoire des signaux d'états réels représentatifs de l'activité interne de la puce 1, ces mémoires sont ainsi implantées au moins majoritairement sur la puce d'instrumentation 2. En d'autres termes, même si les ressources de débogage MLl et ML2 respectivement prévues sur la puce à déboguer 1 et sur la puce d'instrumentation 2 comprennent des séries respectives RD1 et RD2 de mémoires tampons, les mémoires tampons de la seconde série RD2 sont de préférence plus nombreuses que les mémoires tampons de la première série RD1. De façon analogue, si des filtres logiques et / ou des machines d'états doivent être utilisés pour déboguer le microprogramme implanté dans la puce 1, ces filtres et / ou ces machines d'états FM sont de préférence plutôt implantés dans la puce d'instrumentation 2 que dans la puce à déboguer 1. L'invention permet, de façon simple et économique, de déboguer le microprogramme stocké dans la mémoire MR de la puce électronique 1, préalablement à une production de cette puce en série. Pour ce faire, les ressources matérielles et logicielles auxiliaires ML1 élaborées lors de la conception de la puce à déboguer 1 sont implantées dans cette puce au cours d'une étape préalable, dans le but de permettre d'extraire des plots de connexion internes CI de cette puce 1 un vecteur instantané de signaux d'états réels représentatifs d'une activité interne de cette puce. Ces signaux d'états réels sont produits au cours d'une étape de mise au point et / ou de validation du microprogramme dans laquelle la puce i est excitée par un vecteur instantané de signaux d'excitation appliqués sur ses plots de connexion périphériques CP, sur ses plots de connexion internes CI, et / ou sur une partie de ces plots. En observant les évolutions du vecteur instantané de signaux d'états réels en fonction des évolutions du vecteur instantané de signaux d'excitation, et en comparant ce vecteur instantané d'états réels à un vecteur instantané de signaux d'états de référence prédits pour le vecteur instantané de signaux d'excitation, il est possible de caractériser le fonctionnement de la puce à déboguer 1 et de corriger d'éventuels défauts de programmation. Cependant, au lieu d'observer directement les signaux d'états réels tels qu'ils peuvent être délivrés sur la série de plots CI par les ressources auxiliaires de débogage MLl implantées dans la puce 1, l'invention permet d'observer ces signaux tels qu'ils sont rendus disponibles sur la série SC2 de plots de connexion de la puce d'instrumentation 2, c'est-à-dire après un traitement, tel qu'une mémorisation temporaire et / ou un filtrage logique, appliqué aux signaux délivrés sur la série de plots CI par les ressources de débogage ML2 déportées dans la puce d'instrumentation 2. Une fois la puce 1 totalement déboguée et correctement reprogrammée, sa fabrication en série peut être lancée. Bien que la puce d'instrumentation 2 ne serve donc que dans la phase de développement de la puce à déboguer 1, elle peut être conçue pour être réutilisable, dans sa structure, pour le développement d'autres puces. Comme le montre la figure 1, les plots de connexion de la série SCi peuvent éventuellement être reliés aux plots de connexion CI par des conducteurs externes aux puces l et 2. Dans le cas d'une puce nécessitant un grand nombre de plots de connexion internes CI, ces plots peuvent, en variante, être obtenus par formation d'une couche métallique de redistribution, suivant une technique connue en soi de l'homme de métier. Le dispositif peut optionnellement être optimisé en minimisant les transistors qui amplifient les signaux sortant des plots de connexion internes CI et en supprimant les composants de protection contre l'électricité statique, les composants assurant ces fonctions d'amplification et de protection étant alors implantés sur la puce d'instrumentation 2. REVENDICATIONS. 1. Procédé pour déboguer un microprogramme stocké dans une puce électronique (1), préalablement à une production de cette puce en série, ce procédé comprenant une étape préalable consistant à implanter dans la puce à déboguer (1), lors de sa conception, des premières ressources matérielles et logicielles (MLl) permettant d'en extraire un vecteur instantané de signaux d'états réels représentatifs d'une activité interne de cette puce, et une étape de mise au point et / ou de validation du microprogramme comprenant une opération d'excitation dans laquelle la puce (1) est excitée par un vecteur instantané de signaux d'excitation à travers des plots de connexion (CP) dont cette puce (1) est dotée au moins en périphérie, une opération d'observation dans laquelle le vecteur instantané de signaux d'états réels est observé corrélativement à l'excitation, et une opération de comparaison dans laquelle ce vecteur instantané d'états réels est comparé à un vecteur instantané de signaux d'états de référence prédits pour le vecteur instantané de signaux d'excitation, caractérisé en ce qu'il comprend une étape intermédiaire consistant à doter la puce à déboguer (1) de plots de connexion internes (CI) accessibles à partir de sa surface supérieure (11), en ce qu'il comprend une première étape de préparation consistant à fixer à la surface supérieure (11) de la puce à déboguer (1) une puce d'instrumentation (2) au moins dotée d'une première série de plots (SCl) connectés aux plots internes (CI) de la puce à déboguer (1) et d'une seconde série de plots (SC2), en ce qu'il comprend une deuxième étape de préparation consistant à implanter dans la puce d'instrumentation (2) des secondes ressources matérielles et logicielles (ML2) permettant d'appliquer au vecteur instantané de signaux d'états réels extraits un traitement tel qu'une mémorisation temporaire et / ou un filtrage logique, et en ce que l'opération d'observation est mise en oeuvre en observant au moins les signaux d'états issus du traitement et transitant sur les plots de la seconde série de plots (SC2). 2. Procédé suivant la revendication 1, caractérisé en ce que l'étape intermédiaire comprend une opération de formation d'une couche métallique de redistribution. 3. Procédé suivant la revendication 1 ou 2, caractérisé en ce que les premières ressources matérielles et logicielles (ML1) comprennent essentiellement des ressources définies par le standard JTAG. 4. Dispositif de développement de composant électronique, comprenant une puce électronique (1) dotée d'une pluralité de plots de connexion périphériques (CP), d'une mémoire (MR) dans laquelle est stocké un microprogramme à déboguer, et de premiers moyens de débogage (ML1) intégrés à la puce (1), caractérisé en ce qu'il comprend en outre une puce d'instrumentation (2) fixée sur une première face (11) de la puce à déboguer (1) et présentant des première et seconde séries (SC1, SC2) de plots de connexion, en ce que la puce à déboguer (1) comprend des plots de connexion (CI) formés sur sa première face (11) et reliés aux plots de la première série de plots (SC1) de la puce d'instrumentation (2), et en ce que la puce d'instrumentation (2) est dotée de seconds moyens de débogage (ML2) fonctionnellement interposés entre les première et seconde séries (SC1, SC2) de plots de connexion. 5. Dispositif de développement suivant la revendication 4, caractérisé en ce que les premiers et seconds moyens de débogage (MLl, ML2) comprennent des première et seconde séries respectives (RD1, RD2) de mémoires tampons, et en ce que les mémoires tampons de la seconde série (RD2) sont plus nombreuses que les mémoires tampons de la première série (RD1). 6. Dispositif de développement suivant l'une quelconque des revendications 4 et 5, caractérisé en ce que les premiers moyens de débogage (ML1) sont dépourvus de filtres logiques et / ou de machines d'état (FM). 7. Dispositif de développement suivant l'une quelconque des revendications 4 à 6, caractérisé en ce que les seconds moyens de débogage (ML2) comprennent des filtres logiques et / ou des machines d'état (FM).