Mini Projet Vhdl

  • Uploaded by: houssam
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mini Projet Vhdl as PDF for free.

More details

  • Words: 1,415
  • Pages: 13
Loading documents preview...
Mini projet VHDL : Etude de cas Conception d’un filtre numerique

Préparé par : BIFERGANE Houssam SSIF-DDINE Faical Encadré par : Mr. ELKHAILI Mohammed

Table des matières

I.

Objectifs : .............................................................................................................................................. 2

II.

Multiplication rapide :........................................................................................................................ 2 II.1. Principe........................................................................................................................................... 2 II.2. Les codages de Booth ..................................................................................................................... 2

III.

addITION RAPIDE : ......................................................................................................................... 6

III.1.

Additionneur à report anticipé .................................................................................................... 6

III.2.

Additionneurs 4-2 ....................................................................................................................... 8

III.3.

Synthèse d’un filtre RIF ............................................................................................................. 9



Code VHDL : ..................................................................................................................................... 9



Schéma correspondant : ................................................................................................................... 12

I.

OBJECTIFS :

Cette étude de cas a pour but d’améliorer l’architecture standard du filtre numérique sur un FPGA. En cherchant, d’abord, des architectures des additionneurs rapides et des circuits de multiplication rapide que nous allons les implémentés par la suite.

II. MULTIPLICATION RAPIDE :

II.1. Principe La multiplication fondée sur l’examen chiffre par chiffre du multiplicateur nécessite n+1 étapes, où n+1 est la longueur de mot (signe compris). Le temps de multiplication dépend donc d’abord du temps d’addition et du nombre d’additions effectives (on considère uniquement les chiffres non nuls). Par conséquent, pour réduire le temps de multiplication, il faut: - diminuer le temps d’addition par l’emploi d’additionneurs rapides (ce sera l’objet de la partie III), - diminuer le nombre d’additions effectives grâce à un recodage approprié du multiplicateur (c’est ce que l’on va aborder dans la partie suivante).

II.2. Les codages de Booth Le principe de l’accélération de la multiplication par recodage du multiplicateur consiste à effectuer le produit sur la base d’un examen du multiplicateur dans le sens des poids croissants en recodant ce dernier pour diminuer le nombre d’additions à réaliser. Un procédé connu utilisant ce principe est le codage de Booth. Pour réduire le nombre de produits partiels, on groupe les bits du multiplicateur (B) en plusieurs paires, et on sélectionne les produits partiels parmi les nombres 0,A,2A,3A,4A où A est le multiplicande. On réduit le nombre de produits partiels de moitié mais cela nécessite des additionneurs supplémentaires pour générer, par exemple 3A (2A et 4A s’obtiennent à partir de A par des décalages à gauche (multiplication par 2) ). • Booth2 Considérons le multiplicateur B, d’une longueur de 16 bits, codé en complément vrai et A le multiplicande: On notera les produits partiels PPi.

Le produit AB peut s'écrire:

On réduit le nombre de produits partiels qui peuvent prendre les valeurs -2A,A,0,A,2A (excepté le produit PP0 qui peut prendre les valeurs -2A,-A,0,A). La figure 5 illustre ce principe et montre le diagramme d’un multiplieur 16*16 bits qui utilise cet algorithme noté Booth2 (algorithme de Booth d’ordre 2).

Le multiplicateur est décomposé en plusieurs groupes de 3 bits, et chaque groupe est décodé pour sélectionner le produit partiel PPi à l’aide de la table de sélection (0,-0,A,-A,2A,-2A). Chaque produit partiel est décalé de 2 bits par rapport au produit partiel précédent (multiplication par 4). Les termes négatifs (codés en Complément Vrai) s’obtiennent en complémentant bit à bit le multiple positif correspondant , avec le rajout de 1 au LSB (ce sont les bits S du diagramme qui se trouvent sur le coté droit des produits partiels):

C’est une légère modification du codage et le rajout de 1 se fera sur le report entrant des additionneurs. De plus, si on considère une multiplication signée, oninverse les bits de poids fort issus des produits partiels pour effectuer le passage Complément Vrai - Binaire décalé et on n’inverse pas la retenue de l’additionneur précédent (contrairement à la multiplication classique). Le nombre de produits partiels est passé de 16 (multiplication classique) à 9. Si n est le nombre de bits des opérandes, le nombre de produits partiels pour l’algorithme Booth2 vaut (n+2)/2. Si le nombre d’additions est moins élevé et par conséquent on obtient une multiplication plus rapide (le gain de temps par rapport à la multiplication classique est estimé environ à 26%), la logique de sélection des produits partiels est plus complexe et la taille de l’opérateur devient plus grande. Il apparaît déjà le compromis temps de retard/surface.

• Booth3 On peut réduire encore le nombre de produits partiels.

Le multiplicateur est décomposé en plusieurs groupes de 4 bits, et chaque groupe est décodé pour sélectionner le produit partiel PPi à l’aide de la table de sélection (0,-0,A,-A,2A,-2A,3A,-3A,4A,-4A). Chaque produit partiel est décalé de 4 bits par rapport au produit partiel précédent (multiplication par 8).

Les termes négatifs (codés en Complément Vrai) s’obtiennent de la même manière que pour l’algorithme Booth2. On réduit le nombre de produits partiels (ici 6 au lieu de 9 pour l’algorithme Booth2) mais la logique de sélection des produits partiels devient de plus en plus complexe. Si les générations des multiples 2A et 4A s’obtiennent facilement (décalages à gauche), il n’en est pas de même pour le multiple 3A qui nécessite une addition supplémentaire (ou soustraction) et qui, par conséquent, augmente le temps de calcul. Pour remédier à cela, il existe des algorithmes de Booth modifiés pour améliorer la rapidité de la production des multiples 3A (par exemple, au lieu de générer le produit partiel 3A, on génère deux produits partiels A et 2A et on optimise les additions). On peut continuer à diminuer le nombre de produits partiels (on arrive à l’algorithme Booth4) mais il faut alors générer les multiples 3A,5A,7A. Il y a un compromis à trouver entre ces générations de multiples et le nombre de produits partiels pour avoir un temps de calcul le plus petit possible.

III. ADDITION RAPIDE :

III.1. Additionneur à report anticipé Pour un additionneur classique on a :

Pour améliorer le rapidité de l’additionneur, on utilise les fonctions auxiliaires p (terme de propagation) et g (terme de génération) qui sont définies par les équations suivantes:

D’après les équations (1) et (2), on obtient:

Par conséquent, il est possible d’obtenir directement les retenues rk à partir de r0 et par la suite les termes sk. En effet, en développant l’équation (5), on obtient:

On obtient un gain de temps pour l’obtention des retenues rk, mais les équations logiques deviennent complexes et l’additionneur risque d’être trop volumineux. Le gain en vitesse est au détriment du nombre de portes. De plus, cette synthèse oblige les portes logiques à avoir des sortances importantes, ce qui est, par exemple, néfaste pour des portes CMOS qui sont sensibles aux charges capacitives. Cet additionneur rapide porte le nom d’additionneur à report anticipé (ou à retenue anticipée), car on calcule d’abord les retenues rk qui se propagent avant les termes sk de la somme. La figure 8 montre l’architecture de cet additionneur.

Il apparaît, là encore, le compromis temps de propagation/surface et une étude de structures intermédiaires entre les solutions série et parallèle reste à faire. On ne fera pas cette étude très complexe, mais à travers les simulations des deux additionneurs décrits ci-dessus, on regardera l’évolution de la surface des additionneurs en fonction de leur vitesse de calcul. Cela permettra de mieux cerner les variations des différents paramètres et de mieux cibler les recherches futures sur la synthèse d’additionneurs rapides pour la multiplication.

III.2. Additionneurs 4-2 Jusqu’à maintenant, on a supposé que l’on utilise des opérateurs qui additionnent au fur et à mesure les produits partiels ( on fait PP0+PP1, puis PP2+somme(PP0,PP1) , etc...). Dans le but d’améliorer les vitesses de calcul des multiplieurs, des recherches ont été effectuées sur des architectures parallèles au niveau des additionneurs (arbres). Il semblerait que les performances en vitesse soient meilleures que celles des multiplieurs utilisant l’algorithme de Booth d’ordre 2. L’idée des additionneurs 4-2 est de diminuer le nombres de produits partiels à additionner de moitié. La figure 9 montre la réduction de 8 produits partiels avec des additionneurs 4-2.

Des études comparatives avec l’algorithme de Booth2 montrent que le temps de calcul est plus faible pour le multiplieur utilisant les additionneurs 4-2.

III.3. Synthèse d’un filtre RIF On utilise un pipe-line pour l’acquisition des donnés. Cela va permettre à X(n) de prendre la valeur fourni par le signal, mais avant cette opération, le pipe-line va transmettre la valeur de X(n) à X(n-1). Cette méthode va simplifier et augmenter la vitesse d’acquisition de donnés. Ces données vont multiplier par des coefficients, et les résultats seront ensuite sommés entre eux. Finalement on va prendre que les bits de 19 jusqu’à 11. C’est l’équivalent de diviser sur 2048. L’opération inverse doit être faite par le microprocesseur, ça veut dire que les valeurs fournis par le filtre doivent être multipliés par 2048. L’erreur est proportionnellement faible par rapport aux valeurs fournis. •

Code VHDL :



Schéma correspondant :

Related Documents

Mini Projet Vhdl
February 2021 1
Mini Projet Pont
January 2021 1
Mini Projet Laa322
January 2021 1
Vhdl
January 2021 6

More Documents from "Soufiane Lamrabti"

Mini Projet Vhdl
February 2021 1
January 2021 0
Politique Economique
January 2021 1
January 2021 0
March 2021 0