Implémentation efficace d'algorithmes sur FPGA

Magazine
Marque
Open Silicium
Numéro
1
Mois de parution
janvier 2011
Spécialité(s)


Résumé

Les FPGA ouvrent des possibilités de calculs extrêmement performants, à condition de bien savoir les utiliser. Cet article est le premier d'une série visant à montrer, en partant d'un exemple simple, comment différents choix d'architectures impactent les performances et l'utilisation des ressources disponibles sur le FPGA. Ce choix est primordial mais souvent négligé dans beaucoup de « cores » open source qui sont parfois des monstres de lenteur et d'inefficacité.


1. Introduction

Nous allons prendre pour exemple celui de l'implémentation sur FPGA de la multiplication de nombres complexes, opération couramment utilisée dans de nombreux algorithmes, en particulier dans le domaine du traitement du signal (un domaine où les FPGA excellent). Petit rappel de mathématiques : nous cherchons à calculer le produit A*B = (a + ib)*(c + id) = a*c - b*d + i(b*c + d*a). Autrement dit, notre circuit prendra pour entrée les nombres (réels) a, b, c, d et calculera deux nombres, a*c - b*d et b*c + d*a correspondant aux parties réelle et imaginaire du résultat. Nous travaillerons avec des entiers signés sur 9 bits, ce qui permettra à notre multiplieur complexe d'être utilisable en pratique (les nombres complexes dont les parties réelle et imaginaire sont toutes les deux positives sont un ensemble assez restreint) et de rappeler comment faire de l'arithmétique signée avec les HDL (Verilog et VHDL).

Le FPGA que nous allons prendre pour...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous