Science >> Wetenschap >  >> Wiskunde

Algoritme voor 16 -bit stand multiplier?

16-bit stand-multiplier-algoritme

De stand -multiplier is een vermenigvuldigingsalgoritme dat efficiënt twee binaire getallen vermenigvuldigt door patronen in het multiplicand te gebruiken om het aantal vereiste toevoegingen en aftrekkingen te verminderen. Hier is een uitsplitsing van het algoritme voor een 16-bits implementatie:

1. Initialisatie:

* multiplicand (m): Het nummer dat wordt vermenigvuldigd. (16 bits)

* Multiplier (Q): Het nummer dat het multiplicand vermenigvuldigt. (16 bits)

* product (p): Aanvankelijk ingesteld op 0. (32 bits)

* q -1 : Een beetje toegevoegd aan de rechterkant van de vermenigvuldiger (Q), aanvankelijk ingesteld op 0. (1 bit)

2. Loop:

* Herhaal 16 keer (van 0 tot 15).

* Stap 1:Controleer de laatste twee bits Q en Q -1 :

* Als Q 15 Q 14 =00, doe niets.

* Als Q 15 Q 14 =01, voeg M ​​toe aan P.

* Als Q 15 Q 14 =10, trek m af van P.

* Als Q 15 Q 14 =11, doe niets.

* Stap 2:Arithmetic Right Shift:

* Schakel het hele product (P) een beetje naar rechts.

* Schakel de vermenigvuldiger (Q) een beetje naar rechts.

* Verschuiv de Q -1 Bit (het meest rechtse bit van Q) in het meest linkse stukje Q.

3. Eindresultaat:

* De uiteindelijke waarde van P (32 bits) bevat het 32-bit product van M en Q.

Implementatiedetails:

* Representatie: De cijfers zijn weergegeven in het complementvorm van Two.

* toevoeging/aftrekking: De bewerkingen voor toevoeging/aftrekken worden uitgevoerd met behulp van standaard binaire toevoeging/aftrekkingsmethoden, waardoor de complementrepresentatie van twee rekening wordt gehouden.

* Rekenkundige rechtsverschuiving: Voor rekenkundige rechterverschuiving wordt het tekenbit (de meest linkse bit) tijdens de verschuiving rechts gekopieerd.

Voorbeeld:

Laten we zeggen dat we M =00001111 (7) en Q =10000001 (-127) willen vermenigvuldigen.

* initialisatie:

* P =00000000 00000000 (0)

* Q -1 =0

* lus:

* iteratie 1: Q 15 Q 14 =10, trek m af van p (p =-7). Voer vervolgens de juiste verschuiving uit.

* iteratie 2: Q 15 Q 14 =01, voeg M ​​toe aan p (p =0). Voer vervolgens de juiste verschuiving uit.

* ... Ga door voor nog 15 iteraties.

* Eindresultaat: P =11111111 10000001 (-889).

Voordelen van standalgoritme van stand:

* Efficiëntie: Het vermindert het aantal toevoegingen en aftrekkingen in vergelijking met conventionele vermenigvuldigingsmethoden, waardoor het sneller wordt.

* ONDERWIJZIGINGEN: Het kan zowel positieve als negatieve getallen aan zonder extra logica te vereisen voor tekenafhandeling.

* eenvoud: De logica is relatief eenvoudig en gemakkelijk te implementeren in hardware.

Beperkingen:

* Beperkte toepassingen: In de eerste plaats geschikt voor vermenigvuldiging van vaste punten, niet zo efficiënt voor vermenigvuldiging van drijvende komma.

* Hardware -complexiteit: De implementatie kan complex zijn voor grotere bitgroottes.

Dit algoritme biedt een basis voor het implementeren van een 16-bits stand multiplier in hardware of software. U kunt het aanpassen op basis van de specifieke vereisten van uw toepassing.