FR2681741A1 - Procede de conversion de donnees d'un code cyclique et convertisseur. - Google Patents

Procede de conversion de donnees d'un code cyclique et convertisseur. Download PDF

Info

Publication number
FR2681741A1
FR2681741A1 FR9111645A FR9111645A FR2681741A1 FR 2681741 A1 FR2681741 A1 FR 2681741A1 FR 9111645 A FR9111645 A FR 9111645A FR 9111645 A FR9111645 A FR 9111645A FR 2681741 A1 FR2681741 A1 FR 2681741A1
Authority
FR
France
Prior art keywords
matrix
code
columns
cyclic
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR9111645A
Other languages
English (en)
Inventor
Barbu Stephane
Lepailleur Laurent
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Photonis SAS
Original Assignee
Photonis SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Photonis SAS filed Critical Photonis SAS
Priority to FR9111645A priority Critical patent/FR2681741A1/fr
Priority to DE69212093T priority patent/DE69212093T2/de
Priority to EP92202776A priority patent/EP0533253B1/fr
Priority to US07/947,665 priority patent/US5329279A/en
Priority to JP04251634A priority patent/JP3073338B2/ja
Publication of FR2681741A1 publication Critical patent/FR2681741A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/16Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé de traitement de données par conversion d'au moins un sous-bloc de données codées selon un code cyclique représenté par une première matrice dont chaque ligne est une donnée numérique. Il consiste à extraire de la première matrice d'une part une deuxième matrice au moins en partie cyclique, d'autre part une troisième matrice associant au moins un code de levée d'indétermination à chaque ligne de la deuxième matrice. Un convertisseur mettant en œuvre ledit procédé comporte un premier circuit logique (E1 ...Ej ) (bits de poids faible) présentant des entrées d'autorisation commandées par un signal SC fourni par un deuxième circuit logique (E'1 ...E'2 N ) (bits de poids fort). Il met en œuvre un décodeur (400) pour les bits de poids faible et un décodeur (500) pour les bits de poids fort.

Description

PROCEDE DE CONVERSION DE DONNEES D'UN CODE CYCLIQUE ET CONVERTISSEUR
La présente invention a pour objet un procédé de conversion d'au moins un sous-bloc de données codées selon un code cyclique représenté par une première matrice dont chaque ligne est une donnée numérique codée.
Les codes cycliques sont très fréquemment mis en oeuvre notamment dans les convertisseurs analogique-numérique, lesquels de par le caractère "thermométrique" des échelles de résistances utilisées pour définir des niveaux de référence de comparaison, génèrent des codes de GRAY. Un convertisseur analogique-numérique présente alors un convertisseur de code (ou décodeur) dont la fonction est de transformer ledit code de GRAY en un code binaire. Une telle conversion demande un nombre élevé de comparateurs (ou portes), ce qui augmente notablement la surface occupée sur un circuit intégré. La conversion d'un code de GRAY de (nu1) bits en code binaire ne requiert en effet pas moins de 2 N comparateurs (ou portes) pour un code de
GRAY cyclique.
La présente invention a pour objet un procédé de conversion permettant de transformer un code cyclique, notamment de
GRAY en un code qui peut, quant à lui, être facilement transformé en un autre code par exemple en code binaire de telle sorte que le nombre de comparateurs (ou portes) soit notablement diminué.
L'idée de base de l'invention consiste à tenir compte de la redondance d'informations inhérente aux codes cycliques pour obtenir un code plus simple.
Dans ce but, le procédé selon l'invention est caractérisé en ce qu'il comprend une étape consistant à extraire de la première matrice une deuxième matrice au moins en partie cyclique et ayant au moins une dimension sous-multiple d'une dimension de la première matrice, et une étape consistant à extraire de la première matrice une troisième matrice associant au moins un code de levée d'indétermination à chaque ligne de la deuxième matrice.
On transforme ainsi la première matrice en un code replié comportant deux matrices faciles à décoder, et notamment à convertir en code binaire, du fait que la deuxième matrice est au moins en partie cyclique. Ledit procédé peut être avantageusement itéré au moins une fois.
Selon un mode particulièrement avantageux, le procédé comporte les étapes suivantes
a) définir des sous-matrices triangulaires dont les dimensions sont sous-multiples de celles de ladite première matrice, lesdites sous-matrices formant au moins un ensemble de sous-matrices alignées selon une diagonale,
b) définir la deuxième matrice comme un empilement de sous-matrices triangulaires, la moitié des sous-matrices étant inversée logiquement, de manière qu'au moins une partie de la deuxième matrice soit cyclique.
On met ainsi à profit la propriété des codes cycliques1 selon laquelle il existe des blocs de "O" et de "1" séparés par des lignes transversales de la matrice.
Selon une première variante correspondant au cas où la première matrice est elle-même cyclique, la conversion porte sur une moitié d'un code cyclique et les sous-matrices forment un dit ensemble de sous-matrices.
Selon une variante préférée, la conversion porte sur la totalité d'un code cyclique et les sous-matrices forment deux ensembles de sous-matrices, la deuxième matrice comportant une première et une deuxième partie dont chacune est cyclique et présente au moins un cycle, la deuxième matrice pouvant être obtenue notamment en complémentant alternativement une matrice sur deux.
On obtient ainsi un décodage pouvant être simplifié au maximum. Les sous-matrices ont avantageusement toutes la même dimension. La troisième matrice est de préférence cyclique, ce qui facilite encore plus la conversion en code binaire.
Selon l'invention, le procédé peut également inclure une étape de conversion notamment en code binaire d'au moins une partie des deuxième et troisième matrices.
L'invention concerne également un convertisseur d'un code cyclique représenté par une première matrice dont chaque ligne est une donnée numérique et permettant de mettre en oeuvre le procédé selon l'invention.
Un convertisseur selon l'invention présente ainsi un premier circuit logique présentant des entrées logiques agencées pour recevoir les données d'un premier groupe de colonnes du code et une entrée d'autorisation associée à chaque entrée logique, ainsi qu'un deuxième circuit logique présentant des entrées logiques agencées pour recevoir les données d'un deuxième groupe de colonnes comportant les colonnes restantes du code et présentant au moins une sortie connectée aux entrées d'autorisation, les colonnes de la deuxième matrice étant constituées par les données présentes à des sorties du premier circuit logique, lesquelles comporte les fractions des colonnes du premier groupe validées par les entrées d'autorisation, les colonnes de la troisième matrice étant constituées par au moins certaines des colonnes du deuxième groupe.

N
Pour une première matrice comportant 2 colonnes (code à
N + 1 bits), la deuxième matrice peut ainsi comporter 2 N-M colonnes, et la troisième matrice 2 M colonnes. Les colonnes de la troisième matrice peuvent être les p 2 (N-M) èmes colonnes de la première matrice, p variant de 1 à "M
Selon une variante préférée, une entrée logique sur deux du premier circuit logique est une entrée inverseuse.
Selon un mode de réalisation particulièrement avantageux, le premier circuit logique comporte j groupes de portes d'autorisation présentant une entrée logique et une entrée d'autorisation (avec j = 2 N-M - I et M = ql q = nombre d'itérations, 1 représentant le nombre de "repliements" pour passer de la première à la deuxième matrice, les entrées de signal des portes d'autorisation du groupe de portes de rang i étant agencées pour recevoir les données des colonnes de rang p 2 N-M + i, pour i variant de 1 à j et pour p variant de O à 2 M - 1, et les entrées d'autorisation de la porte d'autorisation qui reçoit les données des colonnes de rang p 2 N M + i étant agencées pour recevoir le résultat logique d'un OU exclusif entre les données des colonnes p 2 N-M et (p+1) 2 N-M pour p variant de 1 à (2 M ~ 1) eut d'un OU exclusif inversé entre les données des colonnes 2 N-M et 2 N pour p = O.
Un convertisseur selon l'invention peut être agencé pour que les entrées logiques des premier et deuxième circuits logiques soient agencés pour recevoir les sorties d'interpolation d'un convertisseur analogique-numérique à repliement et interpolation.
Ceci permet de simplifier l'architecture de décodage du code GRAY fourni par les amplificateurs de repliement, lequel est déjà plus simple que le code GRAY qui correspondrait au signal à échantillonner.
L'invention sera mieux comprise à la lecture de la description qui va suivre donnée à titre d'exemple non limitatif en liaison avec les dessins qui représentent
- les figures 1 et 2 respectivement une table de conversion de données codées selon un code GRAY cyclique de 4 bits en un code à deux matrices puis en code binaire et un circuit pour réaliser une telle conversion,
- la figure 3, une table de conversion d'un code GRAY cyclique de 5 bits,
- la figure 4, un code GRAY cyclique N + 1 bits (2 N colonnes) pour illustrer le traitement de matrices triangulaires selon 1 'invention,
- la figure 5, un convertisseur de code GRAY cyclique de N bits en un code replié à deux matrices selon l'invention.
Selon la figure 1, un code GRAY cyclique de 4 bits est représenté par huit colonnes numérotées de 1 à 8 depuis le bit de poids faible (à droite) et le bit de poids fort (à gauche), et seize lignes. La première ligne correspondant au nombre O ne compte que des zéros. Les lignes successives de la 2ème à la 8ème qui correspondent aux nombres décimaux 2 à 8, voient les zéros des colonnes 1 à 7 progressivement remplacées par des 1. La 9ème ligne ne comporte que des 1, et les lignes successives de la 10ème à la 16ème, qui correspondent aux nombres décimaux 10 à 16, voient les 1 des colonnes
I à 7 progressivement remplacés par des zéros, la 16ème ligne présentant un seul 1 sur la huitième colonne, ce qui assure une continuité cyclique avec la première ligne.
Pour décoder un tel code de 4 bits (N+1 = 4), il faut 2 , soit 8 comparateurs logiques, selon l'art antérieur.
On peut voir sur la ligne 1 que le code cyclique représenté présente d'assez nombreuses symétries qui ont été mises en évidence en décomposant le codes en sous-matrices de 4 lignes et 4 colonnes. Quatre de ces sous-matrices seulement sont porteuses d'informations différentes sur chacune des lignes. Elles ont été notées M1, M2, M'1 et M'2. Les sous-matrices M1 et M2 comportent une diagonale de 0 au-dessus de laquelle tous les bits sont des zéros et en-dessous de laquelle tous les bits sont des 1. Les sous-matrices M' et M'2 comportant une diagonale de 1 au-dessus de laquelle tous les bits valent 1 et en-dessous de laquelle tous les bits valent 0. Les autres sous-matrices comportent toutes soit des 0, soit des 1, c'està-dire une seule information. Cette information peut être utilisée pour préciser, pour un nombre donné, quelle sous-matrice est concernée.En d'autres termes, il s'agit de discriminer entre la sousmatrice M1 et la sous-matrice M2, ou bien entre la sous-matrice M'1 et la sous-matrice M'2 c'est-à-dire lever l'indétermination entre les sous-matrices identiques. Pour ce faire, la solution la plus simple est d'utiliser directement les colonnes 4 et 8 dont les bits ne changent de valeur que lorsque l'on passe d'une sous-matrice à une autre. On conserve donc la totalité des informations du code GRAY en extrayant l'information des sous-matrices M1 à M4, que l'on superpose pour former une matrice de code intermédiaire de 4 colonnes et de 16 lignes, ainsi que les colonnes 4 et 8 formant une matrice de contrôle de code intermédiaire pour lever l'indétermination.
Il est cependant beaucoup plus avantageux de procéder en inversant les données logiques d'une sous-matrice sur deux, pour réaliser une substitution de bits, à savoir en remplaçant les données logiques de M1 et de M'2 par leur complément logique. On obtient ainsi une matrice de code intermédiaire de quatre colonnes notées (1) (2) (3) et 4, et de 16 lignes en superposant par empilement S et g . Ceci apporte un avantage important. Les huit premières lignes et le huit dernières lignes de cette matrice sont cycliques, ce qui va favoriser le décodage. En outre, la quatrième colonne de la matrice (à partir de la droite) est dans ce cas tout à fait particulier identique à la quatrième colonne de la matrice du code
GRAY.On gagne ici une colonne, puisque cette quatrième colonne va servir également à lever l'indétermination en combinaison avec la huitième colonne de la matrice du code GRAY.
Il est ensuite possible par décodage de transformer les deux matrices (1) (2) (3) 4, et 8 en une matrice de code binaire [1] [2] t3] [4]. En effet, les deux parties t , et formant chacune un code cyclique, ainsi que les colonnes 4 et 8 servant à la levée d'indétermination, le décodage est simplifié.
On notera par ailleurs que la deuxième matrice pourrait être rendue entièrement cyclique (deux cycles s'enchainent l'un à l'autre), sans discontinuité entre la huitième et la première ligne en superposant 4,x, et
La figure 2 représente un décodeur réalisant la table de conversion des données de la figure 1.
Les données de la colonne (1) de la matrice de code intermédiaire doivent contenir soit les données de la colonne 1, soit l'inverse des données de la colonne 5 selon que les données des colonnes 4 et 8 sont identiques ou non et ainsi de suite pour les colonnes (2) et (3). On utilise à cet effet des portes ET d'autorisation 110r 120, 210, 220, 310, 320. Une entrée de ces portes
ET reçoit les données des colonnes respectivement 1, 5, 2, 6, 3 et 7.
Une porte OU exclusif 48 dont les entrées reçoivent les données des colonnes 4 et 8 permet de détecter si ces données sont identiques ou non. Une deuxième entrée desdites portes ET sert d'entrée d'autorisation et reçoit à cet effet la sortie de la porte 48 soit directement (portes 120, 220, 320) soit après inversion (portes 110, 210, 310). Une porte OU 130 a ses entrées connectées à la sortie des portes 110 et 120, une porte OU 230 a ses entrées connectées à la sortie des portes 210 et 220 et une porte OU 330 a ses entrées connectées à la sortie des portes 310 et 320. Pour réaliser l'inversion logique des sous-matrices M2 et M'2, les portes ET 120, 220 et 320 sont des portes inverseuses.Lorsque les colonnes 4 et 8 ont des données identiques, la sortie de la porte 48 est au niveau O et valide les portes ET 110, 210 et 330. (Colonnes 1, 2, 3 ; matrices
M1 et M'1).
Lorsque les données des colonnes 4 et 8 sont différentes, la sortie de la porte 48 est au niveau logique 1 et valide les portes 120, 220 et 320 (colonne 5, 6, 7, matrices ki et
Les portes 130, 230 et 330 délivrent donc des signaux représentatifs des colonnes (1) (2) et (3) de la matrice de code intermédiaire. On a représenté des bascules de type D (facultatives) synchronisées par une horloge H, à savoir D1, D2 et D3 aux sorties respectivement des portes OU 130, 230, 330 ainsi que D4 et D8 aux entrées correspondant aux colonnes 4 et 8. Leur fonction est de mémoriser la suite de ces portes pour éviter des erreurs logiques en fonctionnement très rapide, où des données peuvent être stabilisées tardivement. La transformation en code binaire est particulièrement aisée, en raison des propriétés du code.Le bit de poids fort [4] du code binaire est obtenu simplement en reprenant la colonne 8 du code
GRAY. Le bit de rang immédiatement inférieur t3] correspond à un OU exclusif entre les bits des colonnes 4 et 8 (sortie de la porte 48).
Le bit de deuxième rang [2] est obtenu en faisant un OU (porte 502) entre d'une part le résultat d'un OU exclusif entre les colonnes (2) et (3) (porte 402) et d'autre part le résultat d'un OU exclusif entre les colonnes (3) et (4) (porte 403). Le bit de poids faible [I] est obtenu en faisant un OU (porte 501) entre les sorties des portes 401 et 403. Comme indiqué ci-dessus, des bascules D facultatives D'1, D'2,
D'3 et D'4 sont également prévues.
La figure 3 représente la transformation du code pour
N+1 = 5 (5 bits). Le code cyclique de départ (code GRAY) présente 2N colonnes soit 16 colonnes. On a choisi de comprimer le code à l'aide de matrices triangulaires de 4 lignes et 4 colonnes, soit une compression dans un rapport 21 = 16/4 = 4. Les quatre premières matrices M1, M2, M3 et M4 présentent une diagonale de "zéro", et les quatre dernières sous-matrices M1, M'2, M'3 et M'4 une diagonale de "un". Les quatre premières sous-matrices forment ainsi un premier ensemble de sous-matrices alignées selon une de leurs diagonales, et les quatre dernières matrices, un deuxième ensemble de sous-matrices alignées selon une de leurs diagonales. Selon l'invention, une matrice (ou une sous-matrice) triangulaire est définie comme comportant une diagonale de zéros ou de 1, et comportant uniquement des "zéros" d'un côté de ladite diagonale et uniquement des "uns" de l'autre côté de cette diagonale.
Après compression par repliement, le code présente 7 colonnes. Les quatre colonnes correspondant aux bits de poids faible sont constituées par superposition des sous-matrices
M1, M2,M3, M4, M'1, M'2, M'3, M'4 qui forment les colonnes (1), (2), (3) et 4, la quatrième colonne 4 est identique à la colonne 4 du code cyclique du départ mais ceci n'est valable que dans des cas d'espèce. Les 3 colonnes restantes, ici utilisées en combinaison avec la colonne 4 pour lever l'indétermination (bits de poids fort) sont les colonnes 8, 12 et 16 du code cyclique de départ.Ces colonnes correspondent dans ce cas aux colonnes les plus à gauche (vers les bits de poids fort) des sousmatrices triangulaires précitées, car elles possèdent la propriété de voir leur valeur binaire changer sur les diagonales selon lesquelles les matrices sont alignées et donnent donc une information de position, qui peut être utilisée si on retransforme le code intermédiaire à deux matrices en code cyclique.
La figure 4 montre la généralisation à un code à (N + 1) bits, soit un code cyclique de départ à 2 N colonnes. On opère une ou
M plusieurs compressions dans un rapport 2 M avec M = ql
q = nombre de compressions (ou d'itérations) (nombre entier > 1)
1 = facteur de compression (nombre entier > 2).
Les matrices triangulaires présentent 2 N-M lignes et 2 N-M colonnes. Chaque matrice d'ordre p a sa colonne de droite alignée avec la [(p-1)2N-M + 1] ème colonne du code cyclique, et sa colonne de gauche alignée avec [p 2N-M]ème colonne de code cyclique, p variant de 1 à 2 M
De par la propriété des diagonales déjà évoquée ci-dessus, la position d'une sous-matrice de rang p (Mp ou M'p) peut être obtenue à partir des colonnes (p-1) 2 N-M et p-2 N-M du code cyclique de départ. Après compression, le code est alors constitué par l'empilement des matrices M1, M2, ... Mp .... M2M, M'1, M'1, M'2 ... M'p ....M'2M, auquel on adjoint les colonnes p 2 N-M du code de départ pour p variant de 1 à 2 M
La figure 5 montre un décodeur réalisant la compression du code cyclique de départ, en un code intermédiaire tel que défini cidessus et présentant une matrice de code intermédiaire et une matrice de contrôle de code intermédiaire.Pour obtenir la ligne (i) de la matrice de code intermédiaire, il faut déterminer les fractions pertinentes des colonnes il
2N K +j I;P 2N-k + i] i [2X 2N 2r + ÇI i variant de 1 à (2 N-M - 1), en fonction des informations contenues dans les colonnes 2 N-M, 2 2 N-M .... p 2 N Nr N-M , 2 N, p variant de 1à2 M
Comme déjà mentionné, les fractions pertinentes de la colonne p 2 N-M * i peuvent être déterminées à partir des colonnes p 2 N-M et (p*1) 2 N Mr à savoir lorsque ces colonnes ont ou non des valeurs logiques différentes, ce qui correspond à un OU exclusif.Pour p = 1, il n'y a pas de colonne à droite des matrices, et la fonction correspond à un OU exclusif inversé entre les données des colonnes 2 N-M et 2 N (test d'identité entre les lignes de ces deux colonnes).
On met en oeuvre j blocs logiques ou comparateurs (j = 2 N-M ~ 1) notés L1 .... L. ... Lj, comportant chacun 2
1 notés L1 Li Lj' comportant chacun M portes ET notées E1i Epi Eki (k = 2 ) dont les sorties sont connectées à une entrée d'une porte OU à 2 M - 1 entrées notées i 30 pour i variant de 1 à j.La porte E pi (p variant de 1 à k et i variant de 1 à j) reçoit sur une entrée dite de données, les données de la (p 2 N-M + i) ème colonne du code cyclique de départ, et sur une entrée dite d'autorisation, un signal qui fait partie d'un groupe de signaux de contrôle SC et qui est le résultat d'un OU exclusif (ou de toute opération logique équivalente) entre les colonnes p 2 N-M et (p+1) 2 N-M pour p variant de 2 à k, et d'un OU exclusif inversé (ou de toute opération logique équivalente) entre les données des colonnes
N-M et réaliser l'inverse logique 2 N 2 N-M M et 2 N pour p = 1.Pour réaliser l'inverse logique des sous- matrices analogues à celui de la figure 3 (inversion des sous-matrices de rang pair, les portes E pi sont inverseuses lorsque p est pair. En pratique, un bloc logique L. est constitué par une porte à entrées multiples.
Il n'est plus besoin que de j + k comparateurs pour transformer le code cyclique en code intermédiaire à deux matrices, à savoir les (2 N-M -1) blocs logiques et les 2 M portes OU exclusif que nécessitent les entrées d'autorisation des blocs logiques. Le passage de code intermédiaire en code binaire ne demande pas de comparateurs supplémentaires, seulement des portes OU. On a donc besoin de moins de comparateurs que dans le cas d'un décodage classique de code GRAY (2 N blocs logiques) et en outre les 2 M portes OU exclusif sont de structure beaucoup plus simple que les blocs logiques.
Il faut donc en tout (2 N-M * 2 M -1) comparateurs ce qui est inférieur à 2 N ExemPles
I) N+I = 4 (code à 4 bits)
N
1) 2 N = 8, soit 8 comparateurs pour le décodage selon l'art antérieur.
2) M = 1 2 N-M + 2 M - 1 = 4 + 2 - 1 = 5 comparateurs pour le décodage selon l'invention. On obtient un résultat appréciable même pour ce nombre faible de bits.
II) N+I = 10 (code à 10 bits) M = 2
1) 2 N = 512 soit 512 comparateurs pour le décodage selon l'art antérieur.
2) M = 2
2 N-M + 2 M - 1 = 128 + 4 - I = 131 comparateurs pour le décodage selon l'invention.
3) M = 3
2 N-M + 2 M - 1 = 64 + 8 - 1 = 71 comparateurs pour le décodage selon l'invention.
4) M = 4
2 N-M + 2 M - 1 = 32 + 16 - I = 47 comparateurs pour le décodage selon l'invention.
5) M = 5
2 N-M + 2 M - 1 = 16 + 32 - 1 = 47 comparateurs.
Dans le cas d'un convertisseur à repliement et interpolation, la taille du décodeur des bits de poids fort est préférablement inférieur à celui du décodeur des bits de poids faible.

M
Il en résulte que 2 < 2 N-M -
L'optimum est obtenu pour M choisi le plus grand possible mais inférieur ou égal à N/2. Si N est pair, on choisit
M = N/2.
Si N est impair, on choisit M = N/2 - 0,5.
Dans l'exemple ci-dessus, le cas n' 5 (N = 9, M = 5) n'est pas possible. L'optimum est le cas n 4 (M = 4) avec 47 comparateurs au lieu de 512.

N
A la figure 5, on a représenté par S(1) .... S(2N) les sorties des réseaux d'interpolation d'un convertisseur analogiquemumérique dont le code a été replié pour donner un code GRAY à (N+1) bits, la détection étant une détection de passage par zéro ainsi qu'il est connu. On remarque que, dans cette architecture de décodage, la commutation est effectuée dans les blocs logiques L1 .... Ljr donc sur des signaux numériques.Une telle architecture se distingue donc essentiellement des conceptions connues selon lesquelles on opère une discrimination analogique entre codage grossier et codage fin, comme par exemple décrit dans A 10 bit 40 MHz ADC using 0,8 pm BI C-MOS
Technology" de Kazumini TSUGARU et al (TOSHIBA) paru dans la revue de synthèse IEEE 1989 (paper 2-3 page 49) - conférence annuelle ISCC
N-M (1989). La porte E pi qui reçoit à une entrée un signal S (p 2 + M * i) et à son autre entrée un signal logique (j+p) peut être réalisée sous forme d'un amplificateur avec une entrée d'autorisation recevant le signal logique (j+p).Les divers amplificateurs d'un bloc logique t1 ...li peuvent alors attaquer directement la bascule D1... Dj
3 3 correspondante, un seul de ces amplificateurs détectant à la fois un niveau haut et les autres ayant leur sortie dans un état de haute impédance de manière connue. On peut bien entendu mettre en oeuvre le schéma de la figure 5 dans un convertisseur de type flash d'un code à (N+1) bits.
Pour plus de renseignements sur les convertisseurs à repliement et interpolation, on se reportera à la thèse de Rudy Van de
Plassche (Ph D-Thesis - University of Technology Delft) publiée en 1989 ainsi qu'à l'article "A 8-bit Video ADC Incorporating Folding and
Interpolation Techniques" de Rob Van de Guft et al (IEEE Journal of
Solid State Circuits vol SC 22 n 6 Dec 1987 p 944-953), et dont les contenus sont incorporés, par référence, à la présente description.
En se reportant à la figure 5, on va maintenant montrer comment on peut, dans le cas d'un code à (N+1) bits, passer du code replié à deux matrices au code binaire classique. Il suffit à cet effet de considérer quelles sont les cellules OU exclusif (telles que 401, 402.... 40i.... 40j) qui donnent lieu à l'apparition d'une validation (Bit q = 1) dans le code binaire, puis de faire la sommation logique de ces cellules. Si on effectue des repliements en cascade, le code replié présente plus d'une discontinuité de cycle. La solution la plus favorable est de réaliser un seul repliement de 2 M blocs. On obtient alors une seule discontinuité du code replié.
Pour le passage en code binaire, le point sensible est l'obtention de la colonne de rang 2 N-M de la matrice de code intermédiaire. Le code GRAY de départ comporte une première partie
N-M correspondant aux bits de poids faible (colonne de rang p 2 N M + i) et une deuxième partie correpondant aux bits de poids fort (colonnes
N-M de rang p 2 ). Cette décomposition a déjà été utilisée dans la figure 5. On met en oeuvre un décodeur de bits de poids faible (400) et un décodeur de bits de poids fort (500). Le décodeur (500) auquel sont associées des entrées logiques (E'1... E'2M) correspondant aux entrées (dj+1... D2N) de la figure 5 founit des signaux logiques SC en tant que signaux d'autorisation pour les blocs logiques E1.... E E.
attaquant le décodeur 400.
Pour passer en code binaire, on peut procéder de deux façons.
Selon la figure 6, on peut envoyer les signaux de contrôle
SC aux entrées des blocs logiques correspondant au décodeur de poids faible 400 (portes Eki des blocs logiques L1 à Lj de la figure 5) de manière qu'il produise tout le décodage des bits de poids faible.
Selon la figure 7, une variante préférée est de décoder la colonne de rang 2 N-M de la matrice de code intermédiaire en faisant un OU exclusif (porte 600) entre les bits (N-M+1) et (N+1) du code binaire produits par le décodeur de poids fort 500, les bits (N-M*1) à
N étant en effet décodés uniquement à partir des bits de la matrice de
N-M contrôle de code intermédiaire (colonne de rang p 2 + M * i) du code de départ. En d'autres termes, une partie du décodage des bits de poids fort est mise à profit pour décoder les bits de poids faible.
Dans le cas de la figure 6, la colonne de rang 2N-M de la matrice de code intermédiaire est par contre obtenue à l'aide, comme décrit plus haut, d'une bascule à 2 M entrées constituant un bloc logique du convertisseur de poids faible.
Les formules logiques permettant le décodage vont être données ci-après.
Le décodage du bit de poids q du code binaire1 à partir d'un code de GRAY acylique (première moitié d'un code GRAY à (N+1) bits correspondant aux bits de poids faible, est donné par la formule
Figure img00130001
<SEP> N <SEP> 2tI
<tb> <SEP> N <SEP> 2
<tb> Bit <SEP> q <SEP> = <SEP> D2pj <SEP> $ <SEP> D2pj+
<tb> <SEP> p-q <SEP> -i
<tb>
Dx représente le signal logique de la Xème colonne de la matrice de code GRAY acylique avec X entier positif.
La colonne [2 N-M 1 peut s'obtenir par repliement des entrées à r 2 N-M avec # = 1 à 2 M Le codage décrit alors les deux cycles du code GRAY de départ, dont l'un concerne les bits de poids faible, et l'autre ceux de poids fort.
S désignant la somme logique (fonction logique OU)
&commat; désignant un OU exclusif.
En ce qui concerne maintenant le passage du code intermédiaire (ou code replié) en code binaire
a) pour 1 < q < N-M
Figure img00130002
<tb> <SEP> N <SEP> -2PB
<tb> Bit <SEP> q <SEP> = <SEP> S <SEP> E <SEP> D2vj <SEP> &commat; <SEP> Dan
<tb> <SEP> P' <SEP> -1
<tb>
Dx désignant la sortie de la Xème bascule D1... Di... Dj (figure 5), c'est-à-dire, la Xeme colonne de la matrice de code intermédiaire (X entier positif).
(D désignant une fonction logique OU exclusif.
b) pour 1+N-M c q < N
Figure img00130003
<tb> <SEP> r2e
<tb> Bit <SEP> q <SEP> = <SEP> Cr+M <SEP> E <SEP> DX2P~1) <SEP> 2 <SEP> oxo <SEP> DfaP-7+l) <SEP> 2
<tb> <SEP> P -NfM <SEP> -1
<tb> Dx2N-M désignant la sortie de la Xème bascule (D
j+1 ...dk... D2 ) correspondant aux colonnes successives de la matrice de contrôle de code intermédiaire. En d'autres termes, DxN-M désignant la Xème colonne de ladite matrice de contrôle de code intermédiaire.
c) Bit N+1 = D2N (c' est-à-dire la 2 Même colonne de ladite matrice de contrôle) (X entier positif).
Les bits des codes binaires sont donc obtenus à partir de
OU multiples (501, 502...) en fonction des sorties des portes OU exclusif (401 - 40jar donc sans ajouter de comparateur.
Comme (voir figure 5), une seule des portes OU exclusif 401, 402,... 40i,... 40j, est active à la fois, il suffit de détecter celle-ci et de l'aiguiller vers le bit de sortie correspondant, chaque porte OU exclusif ayant le nombre de sorties qui convient (chaque sortie supplémentaire pouvant être réalisée par un transistor additionnel). Les portes OU multiples ne sont alors pas physiquement présentes, mais leur fonction est réalisée par câblage desdites sorties (par addition de courants).

Claims (19)

  1. REVENDICATIONS
    1. Procédé de traitement de données par conversion d'au moins un sous-bloc de données codées selon un code cyclique représenté par une première matrice dont chaque ligne est une donnée numérique caractérisé en ce qu'il comprend une étape consistant à extraire de la première matrice une deuxième matrice au moins en partie cyclique, et ayant au moins une dimension sous-multiple d'une dimension de la première matrice et une étape consistant à extraire de la première matrice une troisième matrice associant au moins un code de levée d'indétermination à chaque ligne de la deuxième matrice.
  2. 2. Procédé selon la revendication, caractérisé en ce qu'il comporte au moins une itération desdites étapes.
  3. 3. Procédé selon une des revendications 1 ou 2 caractérisé en ce que l'étape consistant à extraire de la première matrice une deuxième matrice comporte les étapes suivantes
    a) sélectionner des sous-matrices triangulaires dont les dimensions sont sous-multiples de celles de ladite matrice, lesdites sous-matrices formant au moins un ensemble de sous-matrices alignées selon une diagonale,
    b) définir une deuxième matrice constituant un empilement des sous-matrices triangulaires1 la moitié dedites sous-matrices étant complémentée logiquement de manière qu'au moins une partie de la deuxième matrice soit cyclique.
  4. 4. Procédé selon la revendication 3 caractérisé en ce que la conversion porte sur une moitié d'un code cyclique et en ce que les sous-matrices forment un dit ensemble de sous-matrices.
  5. 5. Procédé selon la revendication 3 caractérisé en ce que la conversion porte sur la totalité d'un code cyclique et en ce que les sous-matrices forment deux ensembles de sous-matrices.
  6. 6. Procédé selon la revendication 5 caractérisé en ce que la deuxième matrice est cyclique.
  7. 7. Procédé selon la revendication 5 caractérisé en ce que la deuxième matrice comporte une première et une deuxième partie dont chacune est cyclique et présente au moins un cycle.
  8. 8. Procédé selon la revendication 7 caractérisé en ce que la deuxième matrice est obtenue par inversion logique de données d'alternativement une matrice sur deux.
  9. 9. Procédé selon une des revendications 2 à 8 caractérisé en ce que les sous-matrices ont toutes la même dimension.
  10. 10. Procédé selon une des revendications précédentes caractérisé en ce que la troisième matrice est cyclique.
  11. 11. Procédé selon une des revendications précédentes caractérisé en ce qu'il comporte une étape de conversion en code binaire d'au-moins une partie des deuxième et troisième matrices.
  12. 12. Convertisseur d'un code cyclique de traitement de données représenté par une première matrice dont chaque ligne est une donnée numérique en un deuxième code présentant une deuxième et une troisième matrice, pour la mise en oeuvre du procédé selon une des revendications précédentes caractérisé en ce qu'il comporte un premier circuit logique présentant des entrées logiques agencées pour recevoir les données d'un premier groupe de colonnes du code cyclique et une entrée d'autorisation associée à chaque entrée logique, ainsi qu'un deuxième circuit logique présentant des entrées logiques agencées pour recevoir les données d'un deuxième groupe de colonnes comportant les colonnes restantes du code, et présentant au moins une sortie connectée aux entrées d'autorisation, les données des colonnes de la deuxième matrice étant constituées par les données présentes à des sorties du premier circuit logique, lesquelles comportent les fractions des colonnes du premier groupe validées par lesdites entrées d'autorisation, les colonnes de la troisième matrice étant constituées par au moins certaines des colonnes du deuxième groupe.
  13. 13. Convertisseur selon la revendication 12 caractérisé en ce
    N que la première matrice comporte 2 colonnes, en ce que la deuxième matrice comporte 2 N-M colonnes et en ce que la troisième matrice comporte (2 M) colonnes.
  14. 14. Convertisseur selon la revendication 13 caractérisé en ce
    N-M que les colonnes de la troisième matrice sont les p x 2 N M èmes colonnes de la première matrice, p variant de 1 à 2 M
  15. 15. Convertisseur selon une des revendications 13 ou 14 caractérisé en ce que M = N/2 si N est pair et M = N/2 - 0,5 si N est impair.
  16. 16. Convertisseur selon une des revendications 13 à 15 caractérisé en ce qu'une porte logique sur deux du premier circuit logique est inverseuse.
  17. 17. Convertisseur selon une des revendications 13 à 16 caractérisé en ce que le premier circuit logique comporte j groupes de portes présentant une entrée logique et une entrée d'autorisation avec j - 2 N-M 1
    Avec M = Kl k = nombre d'itérations ( > 1).
    OU exclusif inversé entre les données de colonne 2 N-M et 2 N pour p = 0.
    les entrées de signal de portes d'autoristion du groupe de porte de rang i étant agencées pour recevoir les données des colonnes de rang p 2 N-M + i, pour i variant delà j et pour p variant de O à 2 M - 1 et les entrées d'autorisation de la porte d'autorisation qui reçoit les données de la colonne de rang p 2 N-M + i étant agencées pour recevoir le résultat logique d'un OU exclusif entre les données de colonne p 2 N-M et (p+1) 2 N-M pour p variant de 1 à (2 M ~ 1) et d'un
  18. 18. Convertisseur selon une des revendications 13 à 17 caractérisé en ce que les entrées logiques des premier et deuxième circuits logiques sont connectées aux sorties des réseaux d'interpolation d'un convertisseur analogique-numérique à repliement et interpolation.
  19. 19. Convertisseur selon une des revendications 13 à 18 caractérisé en ce que ledit code cyclique est un code de GRAY.
FR9111645A 1991-09-20 1991-09-20 Procede de conversion de donnees d'un code cyclique et convertisseur. Withdrawn FR2681741A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9111645A FR2681741A1 (fr) 1991-09-20 1991-09-20 Procede de conversion de donnees d'un code cyclique et convertisseur.
DE69212093T DE69212093T2 (de) 1991-09-20 1992-09-11 Datenumkodierungsverfahren für thermometrischen Kode, Dekodierer und Umkodierungseinrichtung zur Anwendung dieses Verfahrens
EP92202776A EP0533253B1 (fr) 1991-09-20 1992-09-11 Procédé de transcodage de données d'un code thermométrique, décodeur et convertisseur appliquant ce procédé
US07/947,665 US5329279A (en) 1991-09-20 1992-09-18 Method of transcoding data from a thermometric code, decoder and converter applying this method
JP04251634A JP3073338B2 (ja) 1991-09-20 1992-09-21 サーモメトリック符号データの符号変換方法、並びにこの方法に用いるデコーダ及びコンバータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9111645A FR2681741A1 (fr) 1991-09-20 1991-09-20 Procede de conversion de donnees d'un code cyclique et convertisseur.

Publications (1)

Publication Number Publication Date
FR2681741A1 true FR2681741A1 (fr) 1993-03-26

Family

ID=9417161

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9111645A Withdrawn FR2681741A1 (fr) 1991-09-20 1991-09-20 Procede de conversion de donnees d'un code cyclique et convertisseur.

Country Status (1)

Country Link
FR (1) FR2681741A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2847746A1 (fr) * 2002-10-22 2004-05-28 Samsung Electronics Co Ltd Procede et circuit de conversion analogique-numerique de type rapide

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0249538A1 (fr) * 1986-06-10 1987-12-16 Thomson-Csf Encodeur analogique-numérique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0249538A1 (fr) * 1986-06-10 1987-12-16 Thomson-Csf Encodeur analogique-numérique

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE JOURNAL OF SOLID-STATE CIRCUITS vol. 22, no. 6, Décembre 1987, NEW YORK US pages 944 - 953; R. VAN DE GRIFT ET AL.: 'An 8-bit Video ADC Incorporating Folding and Interpolation Techniques' *
IEEE TRANSACTIONS ON INFORMATION THEORY. vol. 37, no. 4, Juillet 1991, NEW YORK US pages 1229 - 1233; A. VAN ZANTEN: 'Index System and Separability of Constant Weight Gray Codes' *
PATENT ABSTRACTS OF JAPAN vol. 13, no. 374 (E-808)18 Août 1989 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2847746A1 (fr) * 2002-10-22 2004-05-28 Samsung Electronics Co Ltd Procede et circuit de conversion analogique-numerique de type rapide

Similar Documents

Publication Publication Date Title
FR2509549A1 (fr) Convertisseur analogique-numerique
EP0484259B1 (fr) Procédé de codage binaire à taux de basculement des éléments binaires sensiblement uniforme, et procédés d&#39;incrémentation et de décrémentation correspondants
EP2002546B1 (fr) Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
US6366230B1 (en) Pipelined analog-to-digital converter
FI92272C (fi) Kuvansiirtojärjestelmän tiivistyskoodausmenetelmä
FR2490429A1 (fr) Convertisseur numerique-analogique
FR2935076A1 (fr) Convertisseur analogique-numerique
EP0533253B1 (fr) Procédé de transcodage de données d&#39;un code thermométrique, décodeur et convertisseur appliquant ce procédé
FR2716587A1 (fr) Procédé et appareil de compression d&#39;images.
FR2699025A1 (fr) Convertisseur analogique numérique.
EP0329533B1 (fr) Procédé de codage et procédé de décodage à longueur variable, dispositif de codage et dispositif de décodage pour la mise en oeuvre de ce procédé
FR2700084A1 (fr) Convertisseur analogique numérique avec échantillonneur bloqueur distribué.
Daubechies et al. Beta expansions: a new approach to digitally corrected A/D conversion
EP0263751B1 (fr) Convertisseur analogique-numérique à capacités commutées
EP1692687A1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
WO2013057453A2 (fr) Codage hierarchique perfectionne
FR2681741A1 (fr) Procede de conversion de donnees d&#39;un code cyclique et convertisseur.
WO1989010042A1 (fr) Procede de codage et de decodage d&#39;informations, par blocs, et dispositifs de codage et de decodage, pour la mise en oeuvre de ce procede
FR2681740A1 (fr) Code numerique et son procede de transformation.
EP3276833A1 (fr) Convertisseur sigma-delta à haute linéarité
EP0980146A2 (fr) Convertisseur analogique-numérique du type à chevauchement à amplitude reducée des amplificateurs de liaison
EP1952305A2 (fr) Quantificateur vectoriel fonde sur une dichotomie spatiale a n dimensions
CN1677869A (zh) 可进行背景校正的流水线式模数转换器
Wang et al. Hierarchy-oriented searching algorithms using alternative duplicate codewords for vector quantization mechanism
Ibrahim et al. A Chinese Remainder Theorem based enhancements of Lempel-Ziv-Welch and Huffman coding image compression

Legal Events

Date Code Title Description
ST Notification of lapse