FR2650088A1 - Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants - Google Patents

Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants Download PDF

Info

Publication number
FR2650088A1
FR2650088A1 FR8909635A FR8909635A FR2650088A1 FR 2650088 A1 FR2650088 A1 FR 2650088A1 FR 8909635 A FR8909635 A FR 8909635A FR 8909635 A FR8909635 A FR 8909635A FR 2650088 A1 FR2650088 A1 FR 2650088A1
Authority
FR
France
Prior art keywords
multiplier
multiplication
bits
booth
parameters
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
FR8909635A
Other languages
English (en)
Inventor
Laurent Bathellier
Christian Mach
Jean-Pierre Giacalone
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.)
Thales SA
Original Assignee
Thomson CSF SA
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 Thomson CSF SA filed Critical Thomson CSF SA
Priority to FR8909635A priority Critical patent/FR2650088A1/fr
Publication of FR2650088A1 publication Critical patent/FR2650088A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

Le procédé consiste : - à entrer dans l'ordinateur : . les fonctions élémentaires (DECOD, CSA, MUX1 , ADD) nécessaires à la réalisation de la fonction de la multiplication et ceci une fois pour toutes; . les paramètres dimensionnels (nbitx, nbity, nbita) et fonctionnels (function, sign,...) du multiplieur pour chaque schéma logique ou implantation physique à générer; - à générer, en fonction des paramètres, les motifs répétitifs du schéma par assemblage des fonctions élémentaires puis le schéma complet du multiplieur par assemblage des motifs 2,... 9.

Description

Procédé pour la génération de schémas logiques de circuits
multlplleurs paramgtrabies A décodeur de Booth au moyen
d'un ordinateur et circuits multiplieurs correspondants.
La présente invention concerne un procédé pour la génération - de schémas logiques de circuits multiplieurs paramétrables à décodeur de Booth au moyen d'un ordinateur, et des circuits multiplieurs obtenus par ce procédé.
Suivant le principe connu de la multiplication de nombres binaires, où le multiplicande est multiplié par le chiffre de poids le plus faible du multiplicateur puis par le chiffre de poids immédiatement supérieur et ainsi de suite, jusqu'au poids le plus fort, il est obtenu à chaque fois un produit partiel, et les différents produits partiels sont additionnés avec un décalage latéral d'un chiffre vers le gauche entre chaque produit partiel et le suivant. La somme de tous les produits partiels progressivement décalés constitue le résultat de la multiplication.
Le nombre d'opérations élémentaires å effectuer dans ces conditions est naturellement d'autant plus grand que les nombres de bits du multiplicande et du multiplicateur sont élevés, la plage étant, dans les circuits multiplieurs connus, de 5 à 32 bits. Mais la vitesse de travail peut être augmentée en réduisant soit le temps d'addition de ces produits partiels, soit le nombre de ceux-ci.C'est ainsi que, le temps nécessaire à l'addition peut être réduit grâce å l'utilisation d'additionneurs à sauvegarde de retenues dans lesquelles les retenues des additions élémentaires des bits composant un produit partiel ne sont pas propagées d'un bit à l'autre mais sont conservées pour être additionnées globalement et le nombre de produits partiels peut quant à lui être réduit grâce à un découpage approprie des bits du multiplicateur suivant l'algorithme connu de Booth qui permet de ne générer que m/2 produits partiels au lieu de m pour un multiplicateur à m chiffres. Chacun des produits partiels a alors comme valeur possible non pas simplement O ou X, X étant le multiplicande mais 0, X, -X, 2X et -2X.Comme les produits partiels générés sont positifs ou négatifs, la convention dite "du complément à deux" est utilisée pour les représenter. Cependant lors de la multiplication, chaque produit partiel doit avoir son signe étendu de façon à ne pas fausser le résultat de l'addition des produits partiels par un bit de signe qui ne serait pas à la position de poids le plus fort du résultat de l'addition.
Une solution connue, décrite dans la demande de brevet français 2 546 318, tient compte des bits d'extension de signes et du souhait de l'utilisateur d'effectuer les multiplications avec des opérandes signées ou non signées sans adjonction d'additionneurs supplémentaires.
Cependant, les temps de calcul des circuits utilisés et leur complexité restent très liés à la longueur des opérandes ainsi qu 'à la nature des opérations de multiplications mises en oeuvre, les temps de calcul et les schémas de réalisation pouvant être très différents suivant que l'opération de multiplication porte sur des bits signés ou non ou qu'elle se fait par exemple, avec cumul des résultats dans un registre accumulateur. Cette grande diversité dans les réalisations entraîne également des difficultés de conception des schémas par ordinateur, car plus le nombre et les natures des cellules élémentaires a compiler pour réaliser un circuit sont importants plus il est difficile de maîtriser les paramètres physiques mis en oeuvre. Le but de l'invention est de pallier les inconvénients précités.
A cet effet, l'invention a pour objet, un procédé pour la génération de schémas logiques de circuits multiplieurs paramétrables à décodeur de Booth au moyen d'un ordinateur, caractérisé en ce qu'il consiste - à entrer dans l'ordinateur
- les fonctions élémentaires nécessaires à la réalisation de la fonction de la multiplication et ceci une fois pour toutes
- les paramètres dimensionnels et fonctionnels du multiplieur pour chaque schéma logique ou implantation physique à générer - à générer en fonction des paramètres, les motifs répétitifs du schéma par assemblage des fonctions élémentaires puis le schéma complet du multiplieur par assemblage des motifs.
D'autres caractéristiques et avantages de l'invention apparaîtront ci-après à l'aide de la description faite en regard des dessins annexés qui représentent
La figure 1 une représentation des entrées/sorties d'un décodeur de Booth
La figure 2 la table de vérité du décodeur de Booth de la figure 1
La figure 3 un schéma d'un décodeur de Booth permettant selon l1invention l'inversion à volonté du signe du résultat de la multiplication dans le cas d'un multiplicateur signé
La figure 4 un découpage fonctionnel d'un circuit multiplieur à décodeur de Booth utilisé pour la mise en oeuvre du procédé selon l'invention
La figure 5 un schéma logique du circuit de la figure 4 obtenu par la mise en oeuvre du procédé selon l'invention;;
La figure 6 un découpage fonctionnel d'un circuit multiplieur à accumulation et à décodeur de Booth utilisé pour la mise en oeuvre du procédé selon l'invention;
La figure 7 un schéma logique du circuit multiplieur de la figure 6 obtenu par la mise en oeuvre du procédé selon l'invention ;
La figure 8 un dispositif pour la génération de bits de signes
Les figures 9 et 10 deux modes d'implantations de registres "pipe liner pouvant être obtenus par la mise en oeuvre du procédé selon l'invention
La figure 11 une définition topologique des différentes zones constituant le schéma.Cette définition permet l'implantation des différents motifs obtenus par compilation des cellules élémentaires composant les circuits multiplieurs réalisables par la mise en oeuvre du procédé selon l'invention;
Les figures 12 à 17 une définition des paramètres utiles à la réalisation des schémas selon l'invention au moyen d'une machine de traitement de données ou d'un ordinateur.
Le procédé de génération de schémas de circuits multiplieurs à décodeurs de Booth selon l'invention est très lié à l'organisation fonctionnelle des circuits à réaliser, qui est définie de la façon décrite ci-après pour faciliter la programmation de la machine de traitement de données ou de l'ordinateur avec lequel sont réalisés les schémas correspondant.
L'algorithme de multiplication de Booth mis en oeuvre pour le fonctionnement des circuits multiplieurs de l'invention met en jeu cinq produits partiels, O, X, -X, 2X, -2X où X désigne le multiplicande. Typiquement X est formé par un nombre binaire quelconque, à 16 chiffres XO à X15 par exemple.
L'algorithme consiste à examiner par groupes de trois les bits du multiplicateur Y et à engendrer pour chaque groupe de bits consécutifs un produit partiel 0, X, -X, 2X, -2X. Dans le décodeur de Booth représenté å la figure 1, YO, Y1 et Y2 désignent les signaux formés par 3 bits successifs du multiplicateur Y et Cx, C2x, Sg sont des signaux de commande permettant de déterminer la valeur du produit partiel à générer.
La table de vérité correspondante est représentée par le tableau de la figure 2. Dans ce tableau le signal Sg est représentatif du signe du produit partiel. Lorsque Sg est dans l'état binaire
O le produit partiel est nul ou positif, par contre lorsque Sg est dans l'état binaire 1 le produit partiel est négatif. Selon une première caractéristique de l'invention, l'architecture du décodeur de Booth, est simplifiée en introduisant dans le schéma du décodeur de Booth un signal rmy qui, lorsqu'il est positionné à la valeur binaire 0, ne modifie pas le fonctionnement du décodeur mais qui, lorsqu'il est positionné à la valeur binaire 1, inverse la valeur de la commande Sg. Ceci résulte du fait que dans la table de vérité de la figure 2, le signal Sg suit l'évolution du bit Y2. La modification correspondante du décodeur est représentée à la figure 3.Elle consiste a générer le signal Sg å partir d'un circuit "OU exclusif" 1 à deux entrées sur lesquelles sont appliqués respectivement les signaux Y2 et rmy. L'intérêt est, dans le cas où le multiplicateur Y est un nombre signé, de pouvoir inverser par la commande rmy l'ensemble des produits partiels générés et de réaliser sans que cela nécessite un temps de calcul supplémentaire, la multiplication -XY. Le décodeur de Booth ainsi modifié divise par deux le nombre des produits partiels à générer et s'adapte logiquement au cas ou m, le nombre de bits du multiplicateur Y est un nombre pair.
La séquence de décodage consiste à examiner les bits du multiplicateur Y par groupe de trois, chaque groupe ayant un blt - eommun avec chacun des groupes adjacents, lorsque le nombre de bits du multiplicateur Y est un nombre pair, la séquence de décodage effectuée par chaque décodeur de Booth est la suivante "0", bit 0, bit 1 # (1er décodeur de Booth) bit 1, bit 2, bit 3 #(2e décodeur de Booth) bit (m-3), bit (m-2), bit (m-1)#(m/2e décodeur de Booth) bit (m-1).tcy# (décodeur de Booth supplémentaire)
Lorsque le nombre de bits du multiplicateur est un nombre impair la séquence de décodage est décalée de la façon suivante "0", "0", bit 0 # (1er décodeur de Booth) bit 1, bit 2, bit 3 b(2e décodeur de Booth) bit (m-3), bit (m-2), bit (m-1) v (m/2e décodeur de Booth)
bit (m-l).tcy (décodeur de Booth supplémentaire)
Cette disposition revient en interne à multiplier par deux le multiplicateur Y, le résultat correct est fourni en ne sortant pas à l'extérieur du multiplieur le bit de plus faible poids du produit ainsi obtenu. De la sorte le nombre de bits du multiplicateur Y peut prendre toutes les valeurs paires ou impaires dans une plage déterminée 5 à 32 bits par exemple.
A la fin de chaque séquence le décodeur de Booth supplémentaire prend en compte le cas où le multiplicateur Y est un nombre non signé et où le bit de rang m-l n'est plus un bit de signe mais un bit de poids fort. En effet un produit partiel supplémentaire égal à X est à ajouter si le multiplicateur est un nombre non signé (tcy = O), ou égal à O si le nombre multiplicateur Y est signé tcy=1).
L'extension de signe est traitée de façon similaire, au procédé décrit dans la demande de brevet français 2 546 318 en tenant compte du fait que les opérandes peuvent être signés ou non signés. Dans le cas ou l'utilisateur choisit un multiplicande X signé, la séquence d'extension de signe est réduite du fait que le bit de plus fort poids du nombre X est par nature un bit de signe, la taille du produit partiel généré est ainsi réduite d'un bit et la surface occupée par la macrocellule formant le circuit multiplieur est optimisé dans ce cas là.
Enfin l'addition des produits partiels est réalisée par une matrice de circuits additionneurs à sauvegarde de retenue qui délivrent pour chaque poids du produit un bit somme et un bit de retenue. L'addition finale permet d'additionner l'ensemble de ces bits pour l'obtention du produit.
Une architecture de circuit multiplieur selon l'invention fonctionnant suivant ce principe est représentée aux figures 4 et 5. Elle comprend organisés autour d'une matrice de multiplication 2, un module 3 encodeur de Booth, un module 4 d'additionneur de poids faibles (LSB) et un module 5 d'addition de poids forts (MSB). Le multiplicande X est appliqué directement sur la matrice de multiplication 2 et le multiplicateur Y est appliqué sur le module de décodage de Booth 3. Ce circuit permet d'effectuer des opérations du type +/-X.Y.
Lé module encodeur de Booth est composé, figure 5, de cellules de décodage élémentaires (DEY01) du type de celles représentées à la figure 3, chaque ensemble de trois bits successifs du multiplicateur Y donnant naissance au travers d'une cellule de décodage, aux signaux Cx > C2x et Sg décrits précédemment. Ces signaux sont appliqués à la matrice de multiplication 2. Celle-ci est composée comme le montre la figure 5 d'un ensemble de circuits multiplexeurs référencés (MUX1), et de circuits additionneurs à sauvegarde de retenue référencés (CSA) disposés en rangées horizontales et en colonnes verticales.Chaque rangée de circuits multiplexeurs effectue, conformément à la table de vérité de la figure 2, un produit partiel avec extension de signe pour tenir compte du fait que les nombres X et Y peuvent être signés ou non.
La valeur -X d'un produit partiel est obtenue en additionnant, dans les additionneurs CSA et au travers de la rangée de multiplexeurs correspondants, la valeur complémentée à un des bits du multiplicande, au nombre binaire 1.
La valeur 2X d'un produit partiel est obtenue par décalage d'une position de bits vers la gauche du multiplicande
X appliqué sur la rangée correspondante de multiplexeur. La valeur -2X est obtenue à partir du nombre 2X par une addition du nombre binaire 1 à la valeur complémentée à un des bits composant le nombre 2X.
Enfin le produit -XY est obtenu lorsque le multiplicateur Y est signé par inversion sur chaque ligne de multiplexeur du produit partiel généré par le signal de commande rmy appliqué aux entrées correspondantes des cellules de décodage élémentaires DECOI.
L'addition des produits partiels est réalisée par les additionneurs CSA, les résultats sont appliqués sous la forme de bits "somme" et de bits "retenue", en ce qui concerne les poids forts, aux entrées correspondantes du module d'addition de poids fort 5. Le module d'addition de poids fort 5 a la structure des additionneurs connus sous l'appellation
Brent-Kung, et porte l'abréviation (box) sur la figure 5.
Enfin le module d'addition 4 est formé d'additionneurs de structure type "Ripple Carry". Ces additionneurs référencés par (ADD) sur la figure 5 traitent les bits "somme" et "retenue" de poids faibles au fur et à mesure qu'ils sont fournis par la matrice des additionneurs CSA. Ce module d'addition est formé par autant de cellules (ADD) qu'il y a de produits partiels à calculer. La retenue sortante e out est fournie à l'additionneur rapide (BK) en même temps que les bits "somme" et "retenue" de la dernière ligne d'additionneurs CSA de la matrice de multiplication.
Le module d'addition 4 est utilisé pour tenir compte du fait que l'ensemble des bits "somme" et "retenue" en provenance de la matrice des additionneurs (CSA) ne sont pas disponibles simultanément. En fait, si n est le nombre de bits du multiplicande X et m le nombre de bits du multiplicateur Y, chaque rangée d'additionneurs CSA fournit successivement deux paires de bits (bit somme et bit retenue) jusqu a un total de m-2 paires, le reste des bits (n+2 paires) est fourni simultanément par la dernière rangée d'additionneurs CSA.
Les m-2 paires de bits disponibles successivement sont immédiatement traitées dans le module d'addition 4 formé des additionneurs (ADD) de la figure 5 dont le temps de propagation de la retenue sur deux étages est égal au temps de calcul d'un additionneur (CSA). De la sorte, l'addition finale effectuée sur les m-2 bits de poids faibles a lieu parallèlement à la propagation des résultats partiels dans la matrice de multiplication 2 et n'intervient pas dans le chemin critique. De plus l'additionneur choisi qui est du type connu sous la désignation Ripple Carry dans la littérature anglo saxonne est très compact en surface et facilement paramétrable. En ce qui concerne les n+2 paires de bits restants, leur temps d'addition est totalement réparti dans le temps total de multiplication.
L'architecture de l'additionneur "Brent-Kung" 5 est une architecture parallèle rapide du type "recurrence solver" telle que décrite par exemple dang l'article "A comparison of the structures for VISSE technology" de MM. S. or et DE. Atkins publié en 1983. L'optimisation de ces circuits porte sur le découpage en bloc de - l'additionneur, en examinant chaque bloc de taille n, du point de vue de sa surface et de sa vitesse de traitement. La largeur du bloc est déterminée du point de vue de sa surface par le fait qu'elle est porportionnelle au nombre de bits n. Par contre sa hauteur varie avec le logarithme à base 2 de n.Pour des raisons de surface, il est par conséquent nécessaire de limiter les possibilités de chaque bloc à un nombre déterminé de bits à traiter, 16 bits par exemple. Si le nombre de bits à traiter est supérieur l'adjonction de plusieurs blocs les uns aux autres est alors nécessaire pour optimiser le temps de propagation.
La variante de réalisation de circuits multiplieurs selon l'invention qui est représentée aux figures 6 et 7 comporte en plus des éléments 2 à 5 de la figure 4 l'adjonction d'un premier registre accumulateur 6 à la sortie de l'additionneur rapide 5, un premier module de rebouclage 7 inséré entre la matrice de multiplication 2 et l'additionneur rapide 5, un deuxième registre à accumulateur 8 couplé d'une part, à la sortie du module d'addition 4 et d'autre part, à une entrée d'un deuxième module de rebouclage 9 inséré entre la matrice de multiplication 2 et le module d'addition 4.La fonction accumulation qui est ainsi réalisée présente les particularités, d'une part, de pouvoir être intégrée directement à la matrice d'additionneurs "CSA" et d'autre part, d'offrir plusieurs fonctionalités optionnelles, cumulatives ou non, à savoir une accumulation positive ou négative avec remise à zéro de l'accumulateur, l'extension de l'accumulateur paramétrable jusqu'à un nombre déterminé de bits et la possibilité d'effectuer une accumulation entrelacée des parties réelles et imaginaires lorsque les calculs de multiplications sont effectués sur des nombres complexes. Pour réaliser le premier point, l'accumulateur est placé avant l'additionneur final.En bas de la matrice d'additionneurs CSA un étage supplémentaire d'additionneurs de même type est introduit pour additionner chaque bit provenant du registre d'accumulation aux bits "somme" et aux bits "retenue" en provenance de l'étage précédent. En sortie de ces étages supplémentaires les bits "somme" et "retenue" obtenus sont additionnés par l'additionneur final 5 décrit précédemment. L'avantage de procéder ainsi tient à la faible occupation en surface qui en résulte, une seule rangée supplémentaire d'additionneurs CSA étant nécessaire, et à la faible augmentation du temps de calcul puisque l'accumulation équivaut seulement au temps d'addition mis par un additionneur
CSA pour effectuer une addition et ceci quel que soit la taille des opérandes.Pour réaliser le deuxième point, l'option extension de l'accumulateur nécessite de compléter le procédé d'extension de signes des produits partiels. Dans le cas général où le multiplicande X peut être un nombre signé ou non signé, le signe du dernier produit partiel généré doit être étendu à la dynamique de l'accumulateur. La génération du bit de signe S est différente si X est signé ou non signé et dépend également de la valeur nulle ou égale à X du produit partiel. Un dispositif représenté à la figure 8 permet d'obtenir ce résultat. Ce dispositif fournît un bit de signe S à partir du bit Xn-l, et des signaux de commande Cx et tex. Xn-I est le bit de poids le plus fort de l'opérande X. Cx est le signal de commande qui indique que le produit partiel vaut 0 ou X. tex est le signal qui indique lorsqu'il prend la valeur 1, que le nombre X est signé. Si Cx est égal å o, le signal S fourni par le dispositif vaut nOn. Par contre, si Cx est égal à I et si tex = 1 alors le signal S est égal à la valeur du bit Xn-1.
Enfin, si tex = 0, alors le signal S est égal à O. L'utilisation du dispositif de la figure 8 n'est cependant pas obligatoire si l'utilisateur impose de lui même que le multiplicande X est un nombre signé. Dans ce cas, le bit de signe généré est directement le bit de poids le plus fort du produit partiel et le dispositif précédent n'est plus dans ce cas nécessaire.
Enfin les modes de réalisation précédents peuvent être corriplêtés utilement, comme le montre les figures 9 et 10 par l'adjonction d'un registre pipeline de façon à partager en deux parties égales le temps de propagation des bits des produits partiels dans la matrice de multiplication. La position et l'architecture du pipeline sont calculées en fonction des paramètres et des options.De façon générale, le pipeline est décomposable en trous parties, un pipeline plI vertical des commandes en sortie des décodeurs de Booth, un pipeline pi2 horizontal des cellules formant le coeur du muitiplieursitué au-dessus du pipeline pll, (bits sommes et retenues + bits opérande X) et enfin un pipeline pl3 vertical des sorties poids faibles du produit situées au-dessus de la ligne pipeline pll.
Les structures topologiques précédemment décrites ont l'avantage qu'elles permettent des conceptions de schémas relativement simples à mettre en oeuvre sur des consoles graphiques d'ordinateurs.
Globalement, les programmes à mettre en oeuvre concernent la matrice de multiplication, l'additionneur final type Brent et Kung, et les divers registres à placer en entrée ou en sortie des circuits multiplieurs.
La matrice de multiplication est formée comme le montre la figure ll d'un ensemble de rangées ou lignes appelées, sur la figure 11, par ligne du haut, ligne du centre, ligne d'addition supplémentaire, ligne d'accumulation, dont l'espace topologique est clairement défini en fonction des dimensions des motifs élémentaires ou cellules composant le schéma.
Leur ordre de génération peut être quelconque, par exemple, il peut être choisi d'abord de générer la ligne d'addition supplémentaire, puis, les lignes du centre dont le nombre est défini en fonction de la baffle de l'opérande Y, puis la ligne du haut et enfin la ligne d'accumulation.
Chaque ligne réalise l'aboutement de plusieurs cellules élémentaires ou motifs du schéma, l'aboutement ayant lieu par exemple de la gauche vers la droite. La compilation par un ordinateur des cellules élémentaires et leur nombre sur chaque ligne est effectuée en fonction des paramètres structurels introduits dans l'ordinateur de chaque type de multiplieurs à réaliser, les dessins de chaque motif ayant été préalablement définis par programme ou dessinés au moyen d'une souris, avant d'être rangés dans une bibliothèque de programme de l'ordinateur. L'écriture des programmes nécessaires aux dessins des motifs et à la compilation des motifs est à la portée de l'homme de l'art qui peut par exemple, utiliser le language "L" de l'outil GDT développé par la société de droit des Etats Unis d'Amérique connue sous le nom de "Silicon
Compiler System".Les paramètres définissent les longueurs des opérandes X et Y dans un espace compris par exemple entre 5 et 32 bits, les fonctions à réaliser (multiplication simple, signée, multiplication avec accumulation, présence ou absence de registres d'entrée X, Y ou de registres de sortie registre out.
Ces différents paramètres sont répertories dans les tableaux des figures 12, 13 et 14. Les fonctions du générateur programmées du circuit multiplieur ou multiplieur-accumulateur sont résumées dans le tableau de la figure 14. Dans ce tableau l'opération accumulation est réalisée lorsque la commande "acon" est active.
La commande nrmyn réalise suivant sa polarité l'opération produit courant XY ou produit courant -XY. La commande "sur" réalise, suivant sa polarité l'opération produit courant + contenu de l'accumulation" ou l'opération "produit courant - contenu de l'accumulation".
Sur la figure 12, la zone "nbitx" définit le nombre de bits (3 à 32 bits) de l'opérande XX, la zone "nbity" définit le nombre de bits de l'opérande XY sur une longueur de 5 à 32 bits. La zone sign" définit la représentation des opérandes, ces opérandes pouvant être signées ou non (représentation en complément à 2). Les configurations correspondantes sont montrées dans le tableau de la figure 15. Dans ce tableau dans les cas "signé ou non signé" la représentation de l'opérande XX (respectivement XY) est déterminée par la commande tex (respectivement tcy).
Si tex (respectivement tcy ) = 1 alors X (respectivement Y) est "signé".
Si tex (respectivement tcy) = O alors XX (respectivement XY) est "non signé".
Les zones "reg-X", "reg-Y", "reg-out", figures 12 et 13 désignent les options concernant les registres X et Y d'entrée et le registre out de sortie. Dans le tableau de la figure 12
n signifie qu'il n'y a pas de registre,
f signifie que le registre est composé de basculeurs,
d signifie que le registre est double.
Sur la figure 13 la zone "nbita" désigne le nombre de bits de. l'extension d'accumulation, la zone "pipe" indique l'existence ou non d'un pipeline, la zone "buffer" indique l'existence ou non d'un buffer 3- états en sortie du circuit multiplieur et enfin la zone "speed" impose la sortance.
Les bornes d'entrée/sortie sont mentionnées sur liicone de la figure 16. Les symboles utilisés ont les signlficstions suivantes dx désigne le bus d'entrée du multiplicande défini par la zone "nbitx" dy désigne le bus d'entrée du multiplicateur défini par la zone nnbltyn pi désigne le bus de sortie des bits de faible poids du produit
X.Y pm désigne le bus de sortie des bits de fort poids du produit
X.Y pu désigne le bus de sortie. des bits de la zone "nbita" ckx désigne le point d'entrée de l'horloge pour le registre d'entrée "x" rnx désigne le point de remise à zéro du registre d'entrée "x" cky désigne le point d'entrée de l'horloge pour le registre d'entrée "y" rny désigne le point de remise à zéro du registre d'entrée "y" ckp désigne le point d'application de l'horloge pour le registre de sortie "pn, tex est la commande de représentation de "dx" (signé ou non) tcy est la commande de représentation de "dy" (signé ou non) rmy commande la fonction "x. y" ou "-x.y". acn commande l'opération d'accumulation et sub commande l'accumulation positive ou négative.
Une représentation fonctionnelle correspondante est montrée à la figure 17.

Claims (15)

REVENDICATIONS
1. Procédé pour la génération de schémas logiques de circuits mulUplieurs paramétrables à décodeur de Booth au moyen d'un ordinateur, caractérisé en ce qu'il consiste - à entrer dans l'ordinateur
- les fonctions élémentaires (DECOD, CSA, MUX1,
ADD) nécessaires à la réalisation de la fonction de la multiplication et ceci une fois pour toutes
- les paramètres dimensionnels (bit, nbity, nbita) et fonctionnels (fonction, sign,...) du multiplieur pour chaque schéma logique ou implantation physique à générer - à générer, en fonction des paramètres, les motifs répétitifs du schéma par assemblage des fonctions élémentaires puis le schéma complet du multiplieur par assemblage des motifs (2,... 9).
2. Procédé selon la revendication 1, caractérisé en ce que l'introduction des paramètres et la génération des motifs et du schéma ont lieu sur une console graphique d'un ordinateur.
3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il utilise des paramètres dimensionnels et fonctionnels du multiplieur comprenant - des paramètres définissant la longueur des opérandes (nbitx, nbity) - des paramètres définissant la nature signé ou non des opérandes X et Y (sign) - et des paramètres définissant le type de multiplication à réaliser (function).
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les paramètres définissant le type de multiplication à réaliser comprennent des paramètres indiquant la présence d'un accumulateur et/ou l'existence de registres type 5pipeline".
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les fonctions élémentaires qu'il met en oeuvre pour la génération des schémas sont des fonctions de décodeur de Booth (3), de multiplexeur à décodeur de Booth (2), d'additionneur avec sauvegarde de retenue (2), dtadditionneur type "ripple carry" (4), d'additionneur type "Brent Kung" (5) d'accumulateur (6) et de registre "pipeline" (plI, pi2, pi3).
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que les motifs sont rangés dans une bibliothèque de programmes de ltordinateur.
7. Circuit multiplieur pour la multiplication de deux nombres binaires X et Y obtenu par la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6 caractérisé en ce qu'il comprend une matrice de multiplication (2) couplé à un module encodeur de Booth (3), à un module additionneur de poids faibles (4) et un module d'addition de poids forts (5).
8. Circuit multiplieur selon la revendication 7, caractérisé en ce que le module encodeur de Booth (3) est formé de cellules de décodage élémentaires comportant trois bornes d'entrée sur lesquelles sont appliqués trois bits successifs du multiplicateur (Y) et trois bornes de sortie sur lesquelles sont générés trois signaux de sortie (Cx, C2x et Sg) pour la commande de la matrice de multiplication (2).
9. Circuit multiplieur selon la revendication 8, caractérisé en ce que la matrice de multiplication comprend une entrée sur laquelle est appliqué le multiplicande X, et comprend des circuits multiplexeurs commandés par les signaux (Cx, C2x et Sg) fournis par le module encodeur de Booth (3) pour générer des produits partiels égaux, à Or X, -X, 2X ou -2X.
10. Circuit multiplieur selon la revendication 9, caractérisé en~ ce que la matrice de multiplication comprend également des additionneurs à sauvegarde de retenue couplés aux circuits multiplexeurs pour opérer l'addition des produits partiels
11. Circuit multiplieur selon la revendication IO, caractérisé en ce que les bits sommes et retenues de poids faibles (obtenus à l'issue de l'addition des produits partiels) sont additionnés au moyen d'additionneurs (ADD) type "ripple carry" pour fournir les bits de poids faibles de la multipllcation.
12. Circuit multiplieur selon la revendication 11, caractérisé en ce que les bits sommes et retenues de poids forts (obtenus å l'issue de l'addition des produits partiels) ainsi que la retenue fournie par le dernier additionneur (ADD) type "rlpple carry" sont additionnés au moyen d'un additionneur type Bruni et Kung pour fournir les bits de poids forts de la multiplication.
13. Circuit multiplieur selon l'une quelconque des revendications 1 å 12, caractérisé en ce qu'il comprend au moins un registre accumulateur inséré dans la matrice de multiplication pour effectuer des accumulations positives ou négatives.
14. Circuit multiplieur selon l'une quelconque des revendications 1 à 13, caractérisé en ce qu'il comprend un registre pipeline dont la position variable est calculée pour partager en deux parties égales le temps de propagation et augmenter ainsi le débit de calcul.
15. Circuit multiplieur selon l'une quelconque des revendications 1 à 14, caractérisé en ce que chaque cellule de décodage de Booth comporte une entrée supplémentaire pour commander le changement de signe des produits partiels lorsque le multiplicateur Y est un nombre signé.
FR8909635A 1989-07-18 1989-07-18 Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants Withdrawn FR2650088A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8909635A FR2650088A1 (fr) 1989-07-18 1989-07-18 Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8909635A FR2650088A1 (fr) 1989-07-18 1989-07-18 Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants

Publications (1)

Publication Number Publication Date
FR2650088A1 true FR2650088A1 (fr) 1991-01-25

Family

ID=9383867

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8909635A Withdrawn FR2650088A1 (fr) 1989-07-18 1989-07-18 Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants

Country Status (1)

Country Link
FR (1) FR2650088A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0605885A2 (fr) * 1992-12-28 1994-07-13 Matsushita Electric Industrial Co., Ltd. Méthode et appareil pour la conception automatique de circuit logique et multiplicateur

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0128072A1 (fr) * 1983-05-20 1984-12-12 Societe Pour L'etude Et La Fabrication De Circuits Integres Speciaux - E.F.C.I.S. Multiplieur binaire avec extension de signe pour la multiplication de nombres signés ou non signés
US4701860A (en) * 1985-03-07 1987-10-20 Harris Corporation Integrated circuit architecture formed of parametric macro-cells
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
FR2611286A1 (fr) * 1987-02-23 1988-08-26 Dassault Electronique Circuit integre multiplieur, et son procede de composition
EP0316036A2 (fr) * 1987-11-09 1989-05-17 Lsi Logic Corporation Multiplicateur numérique et multiplicateur-accumulateur préchargeant et accumulant des résultats intermédiaires

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0128072A1 (fr) * 1983-05-20 1984-12-12 Societe Pour L'etude Et La Fabrication De Circuits Integres Speciaux - E.F.C.I.S. Multiplieur binaire avec extension de signe pour la multiplication de nombres signés ou non signés
US4701860A (en) * 1985-03-07 1987-10-20 Harris Corporation Integrated circuit architecture formed of parametric macro-cells
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
FR2611286A1 (fr) * 1987-02-23 1988-08-26 Dassault Electronique Circuit integre multiplieur, et son procede de composition
EP0316036A2 (fr) * 1987-11-09 1989-05-17 Lsi Logic Corporation Multiplicateur numérique et multiplicateur-accumulateur préchargeant et accumulant des résultats intermédiaires

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ELEKTRONIK *
IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN: VLSI IN COMPUTERS & PROCESSORS *
IEEE JOURNAL OF SOLID-STATE CIRCUITS *
PHOENIX CONFERENCE ON COMPUTERS AND COMMUNICATIONS: CONFERENCE PROCEEDINGS *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0605885A2 (fr) * 1992-12-28 1994-07-13 Matsushita Electric Industrial Co., Ltd. Méthode et appareil pour la conception automatique de circuit logique et multiplicateur
EP0605885A3 (fr) * 1992-12-28 1995-05-10 Matsushita Electric Ind Co Ltd Méthode et appareil pour la conception automatique de circuit logique et multiplicateur.
US5530664A (en) * 1992-12-28 1996-06-25 Matsushita Electric Industrial Co., Ltd. Method and apparatus for automatically designing logic circuit, and multiplier

Similar Documents

Publication Publication Date Title
EP0853275B1 (fr) Coprocesseur comprenant deux circuits de multiplication opérant en parallèle
FR2788867A1 (fr) Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
BE897441A (fr) Calculateur associatif permettant une multiplication rapide
EP0692762B1 (fr) Circuit logique de multiplication parallèle
TWI263402B (en) Reconfigurable fir filter
FR2489554A1 (fr) Circuit de traitement numerique en arithmetique distribuee utilisant des multiplexeurs a l'entree d'une memoire
FR2853424A1 (fr) Architecture de multiplicateurs polynomial et naturel combines
EP0437876B1 (fr) Multiplieur série programmable
US6370556B1 (en) Method and arrangement in a transposed digital FIR filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
EP0275765B1 (fr) Circuit intégré de traitement numérique de signaux
EP0262032B1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
WO2000072187A1 (fr) Multiplieur de nombres complexes
EP2319177B1 (fr) Dispositif de filtrage a stucture hierarchique et dispositif de filtrage reconfigurable
EP0110767A1 (fr) Multiplieur binaire rapide
EP0237382B1 (fr) Dispositif de transformée en cosinus d'un signal numérique échantilloné
EP0020185B1 (fr) Procédé et dispositif d'addition, de manière parallèle-série d'un grand nombre de mots
FR2650088A1 (fr) Procede pour la generation de schemas logiques de circuits multiplieurs parametrables a decodeur de booth au moyen d'un ordinateur et circuits multiplieurs correspondants
EP0209446B1 (fr) Multiplieur pour la multiplication de deux nombres complexes
WO2000026790A1 (fr) Memoire a acces vectoriel
EP0327445A1 (fr) Multiplieur numérique généralisé et filtre numérique mettant en oeuvre ce multiplieur
EP0175623A1 (fr) Dispositif de traitement en temps réel de signal numérique par convolution
FR2563349A1 (fr) Multiplieur matriciel systolique de traitement de donnees numeriques
EP0128072B1 (fr) Multiplieur binaire avec extension de signe pour la multiplication de nombres signés ou non signés
Singh et al. High performance VLSI architecture for wave digital filtering
EP0927928A1 (fr) Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery

Legal Events

Date Code Title Description
ST Notification of lapse