• Sonuç bulunamadı

Türkiye’de Agrega Madenciliği İşletmeciliği ve Şirket’in Pazardaki Konumu:

Belgede Lider, Öncü, Yenilikçi (sayfa 61-64)

Le décodeur de Reed-Solomon utilisé dans la chaîne décode le code (204, 188, 8), version raccourcie du code (255, 239, 8) dont les symboles sont des octets. Il est découpé fonctionnellement en cinq sous-blocs : le calcul des syndromes, la détermination des polynômes localisateur et évaluateur d’erreurs, le calcul des racines du polynôme localisateur d’erreurs, le calcul de la valeur des erreurs et la correction des erreurs, comme l’illustre la Figure 5-6 extraite de [JEG03]. Le développement s’est fait en trois phases : écriture d’un modèle de référence en C, écriture et synthèse avec GAUT des algorithmes de chacun des blocs en VHDL comportemental et validation par simulation des codes RTL générés.

Figure 5-6 : Architecture fonctionnelle du décodeur de Reed-Solomon

L’implantation initiale envisagée est matérielle pour les quatre premiers blocs et logicielle pour le dernier. La raison principale de ce découpage en cinq blocs repose sur le fait que l’algorithme complet est beaucoup trop complexe et génère des architectures trop volumineuses et trop lentes. L’optimisation des fréquences et de la surface nécessite une conception par sous-blocs de tailles plus petites, pour lesquels on maîtrise mieux les performances lors de la synthèse logique et physique.

Ce phénomène s’inscrit dans la démarche de conception des systèmes insensibles à la latence dont le but est de réaliser des systèmes par composition de blocs localement plus performants. L’introduction de la méthodologie LIS dans GAUT permet donc d’envisager le découpage d’un algorithme en plusieurs séquences plus performantes et leur aboutement ultérieur sans pertes de performances dues à la synchronisation inter-blocs.

• Bloc de calcul des syndromes

Figure 5-7 : Interface du bloc de calcul des syndromes

Les résultats de synthèse sont les suivants :

Latence (ns) 32700 16730

Nombre d’états de la FSM = nEtats 1671 3269

Nombre de bus = nBus 41 5

Nombre d’entrées-sorties = nES 221 221

Débit atteint (Mbit/s) 50 97,6

FSM équivalente (nSync/nCalc/nSig) 6/279/41 44/74/41

Surface/Vitesse FSM équivalente (slices/MHz) 623/92 1124/92

Surface/Vitesse du processeur équivalent (slices/MHz) 42/103 45/100

Gains en % -93/+12 -96/+9

Tableau 5-2 : Performances du bloc de calcul des syndromes

On constate que des débits, qui vont quasiment du simple au double, sont atteignables et que le nombre d’états de calcul va de 1671 à 3269 états. La communication avec la chaîne fait apparaître un total de 221 données à recevoir ou à transmettre par itération de l’algorithme sur un nombre de bus qui va d’un minimum de 5 jusqu’à un maximum de 41. Ce bloc est synthétisé avec une unité de communication à base de processeur de synchronisation dont nous estimons le gain en surface et en vitesse. Pour cela nous déterminons les caractéristiques de la FSM la plus petite qui assure la synchronisation des 221 entrées-sorties du bloc. Ainsi, en faisant l’hypothèse que les entrées-sorties transitent en un nombre minimum d’états de synchronisation on obtient les règles de calcul suivantes :

• Bloc de calcul des polynomes

Figure 5-8 : Interface du bloc de calcul des polynomes

De même, pour le bloc de calcul des polynomes, les résultats sont les suivants :

Latence (ns) 3440 2170

Nombre d’états de la FSM = nEtats 343 217

Nombre de bus = nBus 15 6

Nombre d’entrées-sorties = nES 35 35

Débit atteint (Mbit/s) 470 752

FSM équivalente (nSync/nCalc/nSig) 3/114/35 6/36/35

Surface/Vitesse FSM équivalente (slices/MHz) 74/133 80/130

Surface/Vitesse du processeur équivalent (slices/MHz) 34/104 34/104

Gains en % -54/-22 -58/-20

Tableau 5-3 : Performances du bloc de calcul des polynomes

On constate que, dans ce cas précis, la fréquence du processeur de synchronisation est plus faible que celle de la FSM. Cela est du au fait que la FSM n’est pas suffisamment complexe (3 points de synchronisation seulement) pour que sa vitesse chute en dessous des 100 MHz visés.

• Bloc de calcul des racines

Figure 5-9 : Interface du bloc de calcul des racines

De même, pour le bloc de calcul des racines, les résultats sont les suivants :

Latence (ns) 37890

Nombre d’états de la FSM = nEtats 3789

Nombre de bus = nBus 4

Nombre d’entrées-sorties = nES 27

Débit atteint (Mbit/s) 43

FSM équivalente (nSync/nCalc/nSig) 7/541/27

Surface/Vitesse FSM équivalente (slices/MHz) 1569/87

Surface/Vitesse du processeur équivalent (slices/MHz) 37/100

Gains en % -98/+15

Tableau 5-4 : Performances du bloc de calcul des racines

On constate une réduction de la surface et un accroissement de la fréquence du wrapper grâce à l’emploi du processeur de synchronisation..

• Bloc de calcul de la valeur des erreurs

Figure 5-10 : Interface du bloc de calcul de la valeur des erreurs

De même, pour le bloc de calcul de la valeur des erreurs, les résultats sont les suivants :

Latence (ns) 1060

Nombre d’états de la FSM = nEtats 105

Nombre de bus = nBus 18

Nombre d’entrées-sorties = nES 37

Débit atteint (Mbit/s) 1539

FSM équivalente (nSync/nCalc/nSig) 3/35/37

Surface/Vitesse FSM équivalente (slices/MHz) 62/133

Surface/Vitesse du processeur équivalent (slices/MHz) 36/104

Gains en % -42/-22

Tableau 5-5 : Performances du bloc de calcul de la valeur des erreurs

De même que pour le bloc de calcul des polynomes, la fréquence du processeur de synchronisation est inférieure à celle de la FSM car cette dernière n’est pas assez complexe.

• Conclusion

Le Tableau 5-6 résume les résultats obtenus pour le décodeur de Reed-Solomon complet. On constate que, si le processeur de synchronisation n’est pas utilisé, alors le wrapper de synchronisation consomme de l’ordre de 2328 à 2835 slices en surface et fonctionne à une fréquence maximale de seulement 92 MHz à cause du bloc de calcul des syndromes qui est le plus lent. Par contre, l’emploi du processeur de synchronisation consomme de 149 à 152 slices et fonctionne à une fréquence de 100 MHz, malgré les deux « contre-performances » locales pour les blocs de calcul des polynomes et de calcul de la valeur de l’erreur.

Syndromes Polynomes

Cad. min Cad. max Cad. Min Cad. Max

Racines Valeur des erreurs 1124/92 623/92 80/130 74/133 1569/87 62/133 Gains (%) 45/100 42/103 34/104 34/104 37/100 36/104 Surface -96 -93 -58 -54 -97 -42 Fréquence +9 +12 -20 -22 +15 -22

Tableau 5-6 : Résumé des gains obtenus pour le décodeur Reed-Solomon

Le processeur de synchronisation réduit donc la surface du wrapper de synchronisation de deux ordres de grandeur et améliore légèrement la fréquence maximale de fonctionnement. La cible de synthèse étant 100 MHz, nous concluons que le processeur de synchronisation ne pénalise par la synthèse des unités de traitement et de mémorisation et remplit ainsi son rôle.

2.5.3. Viterbi (Sacet)

Le décodeur de Viterbi employé par la norme DVB-DSNG est un décodeur à 64 états supportant les taux de codage de 1/2, 2/3, 3/4, 5/6, 6/7 et 7/8. Il peut fonctionner dans des conditions de densités spectrales différentes et permet d’adapter la puissance de calcul nécessaire à mettre en œuvre (et donc l’aptitude à corriger des erreurs) à la « mauvaise » qualité du canal de transmission satellite. Cette flexibilité est requise car le canal de transmission peut être bruité par des conditions atmosphériques particulières dont les plus contraignantes sont la pluie.

UCom

UT

UC

UM

Si

Sq

M0

M1

M3

M2

Figure 5-11 : Interface du décodeur de Viterbi

Le décodeur de Viterbi de la Sacet est synthétisable en un seul bloc. Ses entrées sorties sont peu nombreuses : 2 entrées et 4 sorties à chaque exécution. Les résultats sont les suivants :

Latence (ns) 10000

Nombre d’états de la FSM = nEtats 699

Nombre de bus = nBus 6

Nombre d’entrées-sorties = nES 6

FSM équivalente (nSync/nCalc/nSig) 3/2/3495

Surface/Vitesse FSM équivalente (slices/MHz) 3002/81

Surface/Vitesse du processeur équivalent (slices/MHz) 25/113

Gains en % -99/+40

Tableau 5-7 : Performances du décodeur de Viterbi

Le décodeur de Viterbi est un exemple de circuit synchrone spécifié par un seul algorithme. Dans ces conditions, les résultats obtenus prouve que le processeur de synchronisation joue son rôle comme convenu et permet d’optimiser la surface et de préserver la vitesse.

Belgede Lider, Öncü, Yenilikçi (sayfa 61-64)