Brevet FR2745448A1 — publié le 19970829

STRUCTURE INTEGREE D'UN DECODEUR CONVOLUTIF DE VITERBI La présente invention concerne une structure de circuit intégré de décodeur convolutif de Viterbi, et plus particulièrement la structure intégrée des modules d'addition- comparaison-sélection du décodeur. Le codage et le décodage convolutifs sont utilisés pour diminuer les erreurs dans les transmissions de signaux numériques. Dans un décodeur convolutif de Viterbi, un module d'addition-comparaison-sélection (ACS) est associé à chaque noeud de ce que l'on appelle un treillis. Chaque noeud du treillis correspond à un état possible d'un registre à décalage utilisé dans le codage convolutif. Etant donné que l'invention ne concerne que la structure d'interconnexion des modules ACS, il est inutile de rappeler le fonctionnement d'un décodeur convolutif de Viterbi, qui est bien connu de la technique. On ne décrit ci-après que les éléments nécessaires à comprendre l'invention. La figure 1 illustre un treillis générique servant à construire tout treillis à N états. Un état 2n et un état 2n+l sont tous deux reliés à un état n et à un état n+N/2. Le nombre n est un entier positif quelconque et les nombres 2n et 2n+l sont définis modulo-N. Les liaisons entre états correspondent à des transitions déterminées par des symboles reçus par le décodeur. Dans cet exemple, chaque symbole contient deux bits d'information. Les transitions de l'état n à l'état 2n et de l'état n+N/2 à l'état 2n+l correspondent à la réception d'un symbole ab, o a est égal à 1 ou 0 et b est égal à 1 ou 0 en fonction de la valeur de 2n. Les transitions de l'état n à l'état 2n+l et de l'état n+N/2 à l'état 2n correspondent à la réception du symbole ab. La figure 2 représente des éléments essentiels du module ACS associé à l'état 2n. Ce module ACS(2n) est destiné à mettre à jour une métrique de chemin associée PM(2n) dans un registre 10 et à fournir une décision D(2n). Chaque métrique de chemin est un nombre de 7 bits, par exemple. Le module ACS(2n) comprend un additionneur 12 qui reçoit la métrique de chemin PM(n) du module ACS associé à l'état n et une métrique de branchement BMab associée, dans le présent exemple, au symbole ab. Un deuxième additionneur 13 reçoit la métrique de chemin PM(n+N/2) fournie par le module ACS associé à l'état n+N/2 et une métrique de branchement BMab associée, dans le présent exemple, au symbole àb. Une métrique de branchement BMx est un nombre de cinq bits, par exemple, qui est d'autant plus faible que la probabilité d'avoir reçu le symbole x correspondant est importante. De même, pour un module ACS donné, plus la valeur d'une métrique de chemin PM(y) est faible, plus il est probable que le symbole reçu soit celui correspondant à la transition de l'état y à l'état associé au module ACS. La décision D(2n) est fournie par un comparateur 15 recevant les sorties des additionneurs 12 et 13. Elle commande un multiplexeur 17 afin de sélectionner, parmi les sorties des additionneurs 12 et 13, celle dont la valeur est la plus faible. Ainsi, la décision D(2n) indique le plus probable état précédent parmi les états n et n+N/2. La sortie du multiplexeur 17 est stockée dans le registre 10 en tant que métrique de chemin PM(2n) à utiliser à la réception du symbole suivant. Le module ACS associé à l'état 2n+1 est similaire à celui de la figure 2, sauf que l'additionneur 12 reçoit la métrique de branchement BMab et l'additionneur 13 reçoit la métrique de branchement BMab. Dans des décodeurs convolutifs couramment utilisés, le treillis est de taille relativement importante, par exemple de 64 états. Alors, les interconnexions entre modules ACS deviennent complexes et il est nécessaire d'accorder un soin particulier au placement et au routage de ces modules ACS sur un circuit intégré, afin de ne pas occuper une surface considérable et affecter la vitesse de fonctionnement. Une solution optimisée pour placer et router des modules ACS a été trouvée par Sparso et est décrite dans IEEE Journal of Solid State Circuits, Vol. 26, N 2, February 1991, pages 90-97, "An Area- Efficient Topology for VLSI Implementation of Viterbi Decoders and Other Shuffle-Exchange Type Structures". La figure 3 est destinée à illustrer le principe général de placement et routage de Sparso. Les modules ACS sont regroupés par couples en deux colonnes séparées par un canal commun de routage 20. Chaque couple comporte, juxtaposés dans le sens de la largeur de la colonne correspondante, les modules associés aux états 2n et 2n+1 (modulo-N, n étant quelconque). Ces deux modules ACS reçoivent la métrique de chemin PM fournie par le module ACS associé à l'état n ou à l'état n+N/2 qui se trouve, comme cela est représenté, dans un couple rapproché précédent, du côté éloigné du canal commun 20. La métrique de chemin manquante arrive aux modules ACS associés aux états 2n et 2n+l par l'intermédiaire du canal commun 20. Il subsiste entre deux couples de modules ACS un canal de routage local 22. La figure 4 illustre schématiquement une structure de réseau de modules ACS, obtenue en utilisant la méthode de Sparso dans l'exemple d'un treillis à 64 états. Les modules ACS sont illustrés par des cases désignées par les états associés. La méthode de Sparso est optimale lorsqu'on utilise des technologies d'intégration à deux couches de métal- lisations. Dans des technologies plus récentes, on dispose de trois couches de métallisations. Si l'on transpose la méthode de Sparso à une technologie à trois couches de métallisations, on ne parvient pas à réduire significativement l'encombrement du réseau de modules ACS par rapport au même réseau réalisé dans une technologie à deux couches de métallisations. Un objet de la présente invention est de prévoir une structure intégrée optimale d'un réseau de modules ACS dans une technologie à trois couches de métallisations. Cet objet est atteint grâce à une structure intégrée d'un réseau de N modules d'addition-comparaison-sélection (ACS) associés aux N états d'un treillis d'un décodage convolutif de Viterbi, dans lequel les modules ACS sont physiquement regroupés par couples juxtaposés pour former deux colonnes parallèles séparées, chaque couple comportant deux modules associés respectivement à des états 2n et 2n+l modulo-N, et dont chacun est relié, pour recevoir deux métriques de chemin, au module associé à l'un des états n et n+N/2 d'un couple rapproché et au module associé à l'autre des états n et n+N/2 d'un couple éloigné, l'espace entre les deux colonnes constituant un canal commun comportant les liaisons entre modules de couples éloignés. la structure est réalisée dans une technologie à trois couches de métallisations et les deux modules ACS de chaque couple sont juxtaposés dans le sens de la hauteur des colonnes. Selon un mode de réalisation de la présente invention, les modules ACS ont une même topologie et chaque couple a une topologie de métallisations de liaison adaptée à l'une des quatre configurations suivantes: (0) le module associé à l'état 2n est relié au couple rapproché suivant et au module associé à l'état n du couple rapproché précédent; (1) le module associé à l'état 2n+l est relié au couple rapproché suivant et au module associé à l'état n du couple rapproché précédent; (2) le module associé à l'état 2n est relié au couple rapproché suivant et au module associé à l'état n+N/2 du couple rapproché précédent; et (3) le module associé à l'état 2n+1 est relié au couple rapproché suivant et au module associé à l'état n+N/2 du couple rapproché précédent. Selon un mode de réalisation de la présente inven- tion, chaque module ACS d'un couple est relié à deux parmi quatre groupes de lignes de fourniture de métriques de branchement, communes à chaque colonne. Selon un mode de réalisation de la présente invention, chaque module ACS comporte des premier à troisième groupes de plots pour établir les liaisons avec respectivement le couple rapproché suivant et les modules associés aux états n et n+N/2, et des quatrième et cinquième groupes de plots pour établir des liaisons avec respectivement les deux groupes de lignes correspondants, tous les plots étant disposés selon une topologie commune à tous les modules. Selon un mode de réalisation de la présente invention, les plots de chaque groupe de plots sont répartis sur la largeur de la colonne correspondante, les plots associés à des bits de poids fort étant du côté éloigné du canal commun, o est intégré un circuit commun aux deux modules du couple correspondant. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles: les figures 1 à 4, précédemment décrites, illustrent l'état de la technique et le problème que vise à résoudre la présente invention; la figure 5 illustre schématiquement et à titre d'exemple quatre configurations physiques possibles d'un couple de module ACS selon l'invention, qui constituent des "blocs" d'assemblage pour réaliser un réseau de modules ACS selon l'invention; et la figure 6 illustre schématiquement une structure de réseau de modules ACS obtenue selon l'invention dans l'exemple d'un treillis à 64 états. La présente invention vise à intégrer les modules d'addition-comparaison-sélection (ACS) d'un décodeur convolutif de Viterbi de manière optimale dans une technologie à trois couches de métallisations. Pour cela, l'invention est partiellement basée sur la structure de Sparso (figures 3 et 4). La structure de Sparso est optimale pour des technologies d'intégration à deux couches de métallisations. Toutefois, en transposant cette structure dans une technologie à trois couches de métallisations, il s'avère que l'on ne peut pas réduire significativement la surface occupée. On ne parvient notamment pas à éviter les canaux de routage locaux 22 séparant les couples de modules ACS dans chaque colonne. Selon l'invention, on utilise des couples de modules ACS déterminés par la méthode de Sparso, mais les modules ACS de chaque couple, au lieu d'être juxtaposés dans le sens de la largeur des colonnes, sont juxtaposés dans le sens de la hauteur. Chaque module ACS est donc distribué sur la largeur de la colonne correspondante. Il en résulte que les connexions entre les modules ACS d'un même couple sont très courtes et verticales. La place ainsi libérée horizontalement sert aux connexions des modules ACS aux métriques de chemin PM du canal commun 20. On parvient pratiquement à supprimer les canaux de routage locaux 22. La surface occupée par un réseau de modules ACS selon l'invention est environ trois fois inférieure à celle de la structure de Sparso. La diminution de surface présente par ailleurs l'avantage d'entraîner une augmentation de la fréquence limite de fonctionnement. Le premier module ACS d'un couple selon l'invention, c'est-à-dire le module qui fournit la métrique de chemin PM au couple rapproché suivant, correspond à un module du côté éloigné du canal commun dans la structure de Sparso. Pour simplifier la conception du circuit intégré, les modules ACS ont une même topologie. Pour simplifier la conception davantage, on souhaite pouvoir juxtaposer des éléments de colonne en se souciant le moins possible du routage de ces éléments. Pour cela, l'invention prévoit quatre configurations de couples de modules ACS qui, en les juxtaposant pour former une colonne, établissent pratiquement toutes les liaisons internes à la colonne. Ainsi, une fois qu'une colonne est formée en choisissant les configurations en fonction des couples à obtenir, il ne reste à router pratiquement que les liaisons externes à la colonne, notamment celles entre couples éloignés qui passent par le canal commun. La figure 5 illustre très schématiquement chacune de ces quatre configurations. Chaque module ACS associé à l'état 2n ou 2n+l du treillis, comporte un plot 50 de fourniture de métrique de chemin PM; un plot 51 de réception de la métrique de chemin PM(n) provenant du module associé à l'état n; un plot 52 de réception de la métrique de chemin PM(n+N/2) provenant du module associé à l'état n+N/2; et deux plots 53 et 54 pour recevoir respectivement les deux métriques de branchement BM correspondantes parmi les quatre métriques de branchement possibles. Les quatre métriques de branchement possibles BMOO, BM01, BM10, et BMll sont distribuées à tous les modules d'une colonne par des lignes s'étendant sur la hauteur de la colonne. Les connexions des plots 53 et 54 aux lignes de métriques de branchement s'effectuent par des lignes verticales allant jusqu'à l'extérieur des couples de modules o, dans des canaux de routage locaux réduits, elles rejoignent horizontalement les lignes BM correspondantes. Ceci est représenté pour les configurations O et 1 dans lesquelles, à titre d'exemple, les plots 53 et 54 du module ACS(2n) reçoivent respectivement les métriques BMOO et BMll et les plots 53 et 54 du module ACS(2n+1) reçoivent respectivement les métriques BMll et BMOO. Chaque métrique de chemin PM ou de branchement BM est un nombre de plusieurs bits auquel on associe, en fait, un groupe de plots qui sont dispersés sur la largeur de la colonne. La nature des liaisons que l'on doit établir dans les canaux de routage locaux est telle que la surface occupée par ces canaux locaux est négligeable (environ 5 % contre environ 30 % dans l'architecture de Sparso). Les topologies des modules ACS sont identiques et les attributions internes des plots 50 à 54 ne peuvent être modifiées. Les quatre configurations se distinguent par les métallisations qui relient les plots 50 à 54 à l'extérieur. Les métallisations ne sont représentées que pour les liaisons qui varient d'une configuration à une autre. Bien entendu, les modules comportent d'autres plots, destinés notamment à recevoir des tensions d'alimentation et des signaux de commande et d'horloge. Les métallisations correspondantes, non représentées, sont les mêmes pour les quatre configurations, et elles sont prévues de manière qu'elles se connectent convenablement par la juxtaposition des couples. Dans une configuration 0, le module ACS associé à l'état 2n est celui qui fournit la métrique de chemin PM(2n) au couple rapproché suivant. Les deux modules du couple reçoivent la métrique PM(n) du couple rapproché précédent. La métrique de chemin PM(2n+l) est fournie au canal commun et la métrique de chemin PM(n+N/2) est reçue par le canal commun. Dans la configuration 1, les modules ACS sont intervertis par rapport à la configuration 0, c'est-à-dire que c'est le module associé à l'état 2n+l qui fournit la métrique de chemin PM(2n+1) au couple rapproché suivant. La seule différence avec la configuration O réside dans l'affectation externe des plots 50 à 54 qui différencie la manière dont le couple de modules est routé avec l'extérieur, comme cela est représenté pour les connexions aux métriques de branchement BM00 et BMll. Dans la configuration 2, le module associé à l'état 2n fournit sa métrique de chemin PM(2n) au couple rapproché suivant, et les deux modules reçoivent du couple rapproché précédent la métrique de chemin PM(n+N/2). La métrique de chemin PM(2n+1) est fournie au canal conmmun et la métrique de chemin PM(n) est revue par le canal commun. Dans la configuration 3, les modules ACS sont intervertis par rapport à la configuration 2, c'est-à-dire que le module associé à l'état 2n+l fournit sa métrique de chemin PM(2n+1) au couple rapproché suivant. La seule différence avec la configuration 2 réside dans l'affectation externe des plots à 54. La seule différence topologique entre les configurations 0 et 2 et entre les configurations 1 et 3, réside dans l'inversion des liaisons aux plots 51 et 52 recevant les métriques de chemin PM d'un couple rapproché et d'un couple éloigné. Dans ces quatre configurations, on a représenté des liaisons qui se croisent. Bien entendu, ces liaisons sont réalisées sur deux couches de métallisations. Une fois que les colonnes ont été formées en juxtaposant les couples, on route en automatique les liaisons qui ne se font pas par la juxtaposition, notamment les liaisons du canal commun 20 et les liaisons aux lignes de métriques de branchement par les canaux locaux réduits. Un avantage de la présente invention est que certains circuits peuvent, sans contraintes, être mis en commun avec deux modules de chaque couple. C'est le cas notamment d'un circuit de normalisation qui est destiné à contrôler le débordement des registres 10 de métrique de chemin. Ces circuits communs sont situés du côté des bits de poids fort des modules ACS, c'est-à-dire du côté extérieur du circuit, les bits de poids faible étant situés du côté du canal central 20. Ceci minimise la longueur des liaisons entre modules éloignés, et augmente donc la rapidité du circuit. Dans la structure de Sparso, un circuit de norma- lisation partagé devrait être placé entre les deux modules d'un couple. Les deux modules seraient alors de topologies symétriques, puisque les bits de poids forts devraient être du côté du circuit de normalisation central. Cette symétrie entraînerait un déséquilibre de longueur entre les lignes de poids faible du côté du canal commun et les lignes de poids faible du côté opposé. Ce déséquilibre entraînerait une diminution de la fréquence de fonctionnement. La figure 6 illustre schématiquement une structure intégrée obtenue selon l'invention d'un réseau de modules ACS dans l'exemple d'un treillis à 64 états. Le numéro de la configuration utilisée pour chaque couple est indiqué dans une case 60 à côté de chaque couple, cette case représentant les circuits communs aux deux modules du couple. REVENDICATIONS 1. Structure intégrée d'un réseau de N modules d'additioncomparaison-sélection (ACS) associés aux N états d'un treillis d'un décodage convolutif de Viterbi, dans lequel les modules ACS sont physiquement regroupés par couples juxtaposés pour former deux colonnes parallèles séparées, chaque couple comportant deux modules associés respectivement à des états 2n et 2n+l modulo-N (n étant un entier positif), et dont chacun est relié, pour recevoir deux métriques de chemin (PM), au module associé à l'un des états n et n+N/2 d'un couple rapproché et au module associé à l'autre des états n et n+N/2 d'un couple éloigné, l'espace entre les deux colonnes constituant un canal commun (20) comportant les liaisons entre modules de couples éloignés, caractérisée en ce qu'elle est réalisée dans une technologie à trois couches de métallisations, et en ce que les deux modules ACS de chaque couple sont juxtaposés dans le sens de la hauteur des colonnes. 2. Structure intégrée selon la revendication 1, caractérisée en ce que les modules ACS ont une même topologie et chaque couple a une topologie de métallisations de liaison adaptée à l'une des quatre configurations suivantes: - (0) le module associé à l'état 2n est relié au couple rapproché suivant et au module associé à l'état n du couple rapproché précédent; - (1) le module associé à l'état 2n+1 est relié au couple rapproché suivant et au module associé à l'état n du couple rapproché précédent; - (2) le module associé à l'état 2n est relié au couple rapproché suivant et au module associé à l'état n+N/2 du couple rapproché précédent; et - (3) le module associé à l'état 2n+1 est relié au couple rapproché suivant et au module associé à l'état n+N/2 du couple rapproché précédent. 3. Structure intégrée selon la revendication 1 ou 2, caractérisée en ce que chaque module ACS d'un couple est relié à deux parmi quatre groupes de lignes de fourniture de métriques de branchement (BM), communes à chaque colonne. 4. Structure intégrée selon la revendication 3, caractérisée en ce que chaque module ACS comporte des premier à troisième groupes de plots (50-52) pour établir les liaisons avec respectivement le couple rapproché suivant et les modules associés aux états n et n+N/2, et des quatrième et cinquième groupes de plots (53, 54) pour établir des liaisons avec respectivement les deux groupes de lignes (BM) correspondants, tous les plots étant disposés selon une topologie commune à tous les modules. 5. Structure intégrée selon la revendication 4, caractérisée en ce que les plots de chaque groupe de plots sont répartis sur la largeur de la colonne correspondante, les plots associés à des bits de poids fort étant du côté éloigné du canal commun (20), o est intégré un circuit (60) commun aux deux modules du couple correspondant.