Booth -multiplikatorn är en multiplikationsalgoritm som effektivt multiplicerar två binära siffror genom att använda mönster i multiplicand för att minska antalet erforderliga tillägg och subtraktioner. Här är en uppdelning av algoritmen för en 16-bitars implementering:
1. Initialisering:
* multiplicand (m): Antalet multipliceras. (16 bitar)
* multiplikator (Q): Numret som multiplicerar multiplicand. (16 bitar)
* produkt (P): Ursprungligen inställd på 0. (32 bitar)
* q -1 : Lite bifogat till höger om multiplikatorn (Q), initialt inställd på 0. (1 bit)
2. Loop:
* Iterera i 16 gånger (från 0 till 15).
* Steg 1:Kontrollera de två sista bitarna av Q och Q -1 :
* Om Q 15 Q 14 =00, gör ingenting.
* Om Q 15 Q 14 =01, lägg till M till P.
* Om Q 15 Q 14 =10, subtrahera M från P.
* Om Q 15 Q 14 =11, gör ingenting.
* Steg 2:Aritmetisk höger skift:
* Skift hela produkten (P) en bit till höger.
* Skift multiplikatorn (q) en bit till höger.
* Skift Q -1 bit (den högra biten av Q) i den vänstra biten av Q.
3. Slutresultat:
* Det slutliga värdet på P (32 bitar) innehåller 32-bitars produkten av M och Q.
Implementeringsdetaljer:
* Representation: Siffrorna representeras i två komplementform.
* Tillägg/subtraktion: Tilläggs-/subtraktionsoperationerna görs med hjälp av standardbinära tilläggs-/subtraktionsmetoder, med tanke på de två komplementrepresentationen.
* aritmetisk höger skift: För aritmetisk högerförskjutning kopieras skyltbiten (den vänstra biten) till höger under skiftet.
Exempel:
Låt oss säga att vi vill multiplicera M =00001111 (7) och Q =10000001 (-127).
* Initialisering:
* P =00000000 00000000 (0)
* Q -1 =0
* Loop:
* iteration 1: Q 15 Q 14 =10, subtrahera m från p (p =-7). Utför sedan rätt skift.
* iteration 2: Q 15 Q 14 =01, lägg till m till p (p =0). Utför sedan rätt skift.
* ... Fortsätt i ytterligare 15 iterationer.
* Slutresultat: P =11111111 10000001 (-889).
Fördelar med Booth -algoritmen:
* Effektivitet: Det minskar antalet tillägg och subtraktioner jämfört med konventionella multiplikationsmetoder, vilket gör det snabbare.
* Hantering av negativ: Det kan hantera både positiva och negativa siffror utan att kräva ytterligare logik för skylthantering.
* enkelhet: Logiken är relativt enkel och enkel att implementera i hårdvara.
Begränsningar:
* Begränsade applikationer: Primärt lämplig för multiplikation av fast punkt, inte lika effektiv för flytande punktmultiplikation.
* Hårdvarukomplexitet: Implementeringen kan vara komplex för större bitstorlekar.
Denna algoritm ger en grund för att implementera en 16-bitars montermultiplikator i hårdvara eller programvara. Du kan anpassa den baserat på de specifika kraven i din applikation.