• Aucun résultat trouvé

V. Chapitre V : Exploitation des résultats

V.3. COMPARAISON AVEC UN RESEAU DE NEURONES NUMERIQUE

V.3.1. Conception numérique

L'intégration d'un neurone numérique de type perceptron multi-couches a été étudiée afin de déterminer les avantages et les inconvénients associés aux deux techniques de conception analogiques et numériques. Cette étude fait suite à celle déjà réalisée dans les paragraphes I.5.2.1 et I.5.2.2 à partir d'exemples issus de la littérature.

Il existe trois types de réalisation d'un neurone numérique : logicielle, matérielle, et mixe (de type co-design).

La solution logicielle, plus souple en terme de programmation de l’algorithme, permet d’étudier plusieurs configurations du neurone sans modification du support matériel. Elle inclue au moins un processeur de calcul, type DSP ou disposant d'une unité assignée aux nombres réels. Cette solution nécessite le pilotage des composants d’interfaces tels que les convertisseurs analogiques-numériques et numériques-analogiques. L’utilisation d’une mémoire est nécessaire de manière à implanter le programme.

La solution matérielle présente un inconvénient majeur lié au codage de l’information. En effet, généralement, du fait de leur complexité, les blocs numériques réalisés ne traitent pas les nombres en virgule flottante. Cela se traduit par un codage en virgule fixe, entraînant des erreurs de troncatures tout au long du calcul. En revanche, cette solution est la plus rapide en terme de performances dynamiques. En effet, tous les blocs arithmétiques étant réalisés sous forme de composants combinatoires, le retard engendré n'est dû qu'à la propagation des signaux.

La solution mixte n’a pas été envisagée ici car le système numérique à concevoir n’impose pas de fortes contraintes au niveau temporel ou en terme de précision, nécessitant l’utilisation du codage en virgule flottante.

Pour effectuer une comparaison avec le neurone analogique intégré, nous nous sommes donc orientés vers la solution matérielle de type FPGA. Le neurone numérique développé est constitué des mêmes fonctions élémentaires que le neurone analogique précédemment implanté (figure IV-v). La phase de conception peut se décomposer en plusieurs parties :

• Choix du composant,

• Synthèse des différentes fonctions – Simulations pré-routage, • Placement – Routage – Simulations post-routage,

• Le choix du composant a été effectué en fonction des performances requises relatives au fonctionnement du neurone, du nombre de cellules impliquées (appelées blocs logiques, ou slices) et du nombre d'entrées-sorties nécessaires. L'ensemble de ces paramètres dépend de la complexité des structures des différentes fonctions synthétisées et du codage choisi. Pour pouvoir effectuer une comparaison avec le neurone analogique conçu, la dynamique associée à chacune des entrées et chacun des paramètres est égale à 1V. Pour avoir une précision de l’ordre de 1mV, les entrées et les paramètres du neurone ont été codés en 10 bits. Ce choix implique l'intervention de convertisseurs analogiques – numériques 10 bits au niveau des deux entrées du neurone, dont il faudra tenir compte dans les performances de la structure globale.

• La synthèse des différents composants a été réalisée en VHDL. Les différentes opérations sont effectuées de manière asynchrone, de façon à maîtriser le retard global de la structure neuronale. Une structure "pipeline" pourra être intégrée dans un second temps de manière à optimiser la bande passante. Les entrées/sorties de chaque multiplieur et de chaque additionneur ont été codées en 16 bits. L’augmentation de la résolution en interne du réseau est motivée par la perte de précision en sortie de chaîne, causée par les troncatures faites lors de chaque opération élémentaire. Le nombre de blocs logiques élémentaires impliqués dans les synthèses du multiplieur et de l'additionneur 16 bits dans un FPGA Xilinx sont respectivement égaux à 50 et 8, répartis respectivement sur 93 et 16 LUTs (look-up tables - table de mémoire ROM à 4 entrées réalisant des fonctions combinatoires).

A noter que le signal de sortie de chaque multiplieur a été multiplié par 4 (2²), à l'image de la multiplication par 5 du courant différentiel ∆Iin de chaque multiplieur analogique, afin

d'accroître la dynamique des signaux. Le signal issu de la somme des signaux de sortie des multiplieurs Mult11 et Mult12 et de l'additionneur Add1 a donc une dynamique de 2.5V. Compte tenu des valeurs d'entrée VinNN1 et VinNN2 et des paramètres w11, w12 et b1 dans des

cas pratiques, la probabilité que la dynamique du signal d'entrée de la fonction tangente hyperbolique dépasse 1V est faible.

La méthode choisie pour synthétiser la fonction d'activation sigmoïdale est celle du développement limité, mettant en œuvre une série de multiplications et d'addition :

) a ( o 315 a 17 15 a 2 3 a a a 82 7 2 5 2 3 2 2 3= − + − + (V-7)

Comme les termes d'ordre supérieur à 3 ne deviennent prépondérant qu'à partir de 1V, pour optimiser la consommation et le nombre de blocs logiques utilisés, le développement a été

limité à l'ordre 3. La figure V-k représente l'arrangement des cellules multiplieurs et additionneur sous forme de schéma bloc et en vue schématique.

Figure V-k : Approximation de la tangente hyperbolique à l'ordre 3.

3 a a a 3 2 2 3 = − .

La figure V-l représente le neurone élémentaire. Après synthèse, le nombre de slices est égal à 104, impliquant 204 LUTs. Le temps de propagation est évalué à 35ns.

Figure V-l :Schéma d'implantation numérique du neurone. 1 2 12 1 11 2 3 2 2 2

4 3) aveca 4w VinNN 4w VinNN b

a a ( w

a = − = + + .

Pour une dynamique de 1V sur chacune des entrées, la tension de sortie est évaluée avec une précision de 977µV. Compte tenu du nombre de slices et de broches impliquées, le type de FPGA choisi est un Xilinx Spartan 3 (XC3S200 ; FPGA à 200000 portes équivalentes, ayant 12 multiplieurs câblés).

• Les caractéristiques de transfert du multiplieur (figure V-m) et de la fonction tangente hyperbolique (figure V-n), issues de simulation post-routage, sont très proches des caractéristiques idéales attendues. L'écart relatif constaté entre les caractéristiques idéale et simulée de la fonction tangente hyperbolique à partir de 0.3V crête, est lié à la limitation du développement limité à l'ordre 3. Une approximation à un ordre supérieur permettrait de se rapprocher de la caractéristique idéale, mais pour une consommation et un nombre de blocs logiques mobilisés plus importants.

Figure V-m : Caractéristique du multiplieurMult11 en fonction du signal VinNN1 pour différentes valeurs de

poids w11.

Figure V-n : Caractéristique de la fonction tangente hyperbolique.

La figure V-o représente les puissances consommées par la fonction tangente hyperbolique et par le neurone complet. On note que celles-ci dépendent de la fréquence. De plus, même à basse fréquence, le composant dissipe une puissance statique de 37.2mW, liée à la mémoire statique SRAM de configuration du FPGA choisi.

Figure V-o : Puissances consommées en mW par la fonction tangente hyperbolique (pointillés) et par le neurone (trait plein) en fonction de la fréquence (en MHz).

• Une fois les simulations post-routages validées, le neurone a été synthétisé dans le FPGA. Les tensions d'entrée VinNN1 et VinNN2 analogiques sont converties en un signal

numérique 10 bits. Le signal de sortie a4 numérique (10 bits) est converti en analogique de

manière à pouvoir l'observer plus facilement (Figure V-p). Ce même convertisseur permet aussi de visualiser chaque signal intermédiaire a1, a2 ou a3, afin de valider fonctionnellement

chaque cellule élémentaire. La photographie ci-dessous montre le PCB de test du neurone numérique réalisé.

Documents relatifs