Booth -multiplikatoren er en multiplikationsalgoritme, der effektivt multiplicerer to binære tal ved at anvende mønstre i multiplikandet for at reducere antallet af krævede tilføjelser og subtraktioner. Her er en sammenbrud af algoritmen til en 16-bit implementering:
1. Initialisering:
* Multiplicand (M): Antallet multipliceres. (16 bit)
* Multiplikator (Q): Antallet, der multiplicerer multiplikandet. (16 bit)
* Produkt (p): Oprindeligt indstillet til 0. (32 bit)
* q -1 : En smule knyttet til højre for multiplikatoren (Q), oprindeligt indstillet til 0. (1 bit)
2. Loop:
* Iterere i 16 gange (fra 0 til 15).
* Trin 1:Kontroller de to sidste bit af Q og Q -1 :
* Hvis q 15 Q 14 =00, gør intet.
* Hvis q 15 Q 14 =01, tilføj m til P.
* Hvis q 15 Q 14 =10, trækker M fra P.
* Hvis q 15 Q 14 =11, gør intet.
* Trin 2:Aritmetisk højre skift:
* Skift hele produktet (p) en smule til højre.
* Skift multiplikator (q) en smule til højre.
* Skift Q -1 Bit (den højre smule af Q) til den venstre bit af Q.
3. Endelig resultat:
* Den endelige værdi af P (32 bit) indeholder det 32-bit produkt af M og Q.
Implementeringsdetaljer:
* Repræsentation: Tallene er repræsenteret i to komplementform.
* Tilføjelse/subtraktion: Tilføjelses-/subtraktionsoperationerne udføres ved hjælp af standard binære tilføjelses-/subtraktionsmetoder, idet man husker de to komplementrepræsentation.
* aritmetisk højre skift: For aritmetisk højre skift kopieres skiltbiten (den venstre bit) til højre under skiftet.
Eksempel:
Lad os sige, at vi ønsker at multiplicere M =00001111 (7) og Q =10000001 (-127).
* Initialisering:
* P =00000000 00000000 (0)
* Q -1 =0
* loop:
* iteration 1: Q 15 Q 14 =10, træk M fra P (P =-7). Udfør derefter højre skift.
* iteration 2: Q 15 Q 14 =01, tilføj m til p (p =0). Udfør derefter højre skift.
* ... Fortsæt for 15 flere iterationer.
* Endelig resultat: P =11111111 10000001 (-889).
Fordele ved Booth -algoritme:
* Effektivitet: Det reducerer antallet af tilføjelser og subtraktioner sammenlignet med konventionelle multiplikationsmetoder, hvilket gør det hurtigere.
* Håndtering af negativer: Det kan håndtere både positive og negative tal uden at kræve yderligere logik til skilthåndtering.
* enkelhed: Logikken er relativt enkel og let at implementere i hardware.
Begrænsninger:
* Begrænsede applikationer: Primært egnet til multiplikation med fast punkt, ikke så effektiv til multiplikation af flydende punkt.
* Hardware -kompleksitet: Implementeringen kan være kompleks for større bitstørrelser.
Denne algoritme giver et fundament for implementering af en 16-bit-bås-multiplikator i hardware eller software. Du kan tilpasse det baseret på de specifikke krav i din ansøgning.
Sidste artikel22 kg svarer til hvor mange pund?
Næste artikel39 centimeter svarende til hvor mange meter?