«« ( Date ) »» // «« ( Thread ) »» // vlsi-nastava - 2004

RE: Date: Wed, 7 Apr 2004 12:35:29 +0200

by Gvozden Marinkovic
sreda, 07. april 2004 - 19:26.

Pohvala za Dragana, a jos veca za Pedju.

Pozdrav

Gvozden

-----Original Message-----
From: Predrag Gojic [mailto:pgojic@EUnet.yu]
Sent: Wednesday, April 07, 2004 3:52 PM
To: vlsi-nastava@titan.etf.bg.ac.yu
Subject: Re: [vlsi-nastava] Date: Wed, 7 Apr 2004 12:35:29 +0200


Fora je (ne vidi se bag tako lako) u tome sto modifikovani booth-ov
algoritam koristi mnozenje 2*multiplikant i tu moze da nastane
prekoracenje, kod tog izracunavanja kao i kod dodavanja na medju
rezultat. Razlog je sto je mnozenje 2*broj u stvari siftovanje ulevo, pa
se 2*broj ne moze predstaviti sa istim brojem bita kao i sam broj.
Treba obratiti paznju i na to da je apsolutna vrednost minimalne
(negativne) vrednosti multiplikant-a za jedna veca od njegove maksimalne
(pozitivne) vrednosti pa je kritican slucaj izracunavanje
2*multiplikant, gde je multiplikant minimalna negativna vrednost.
Znaci treba predvideti dodatne bite za 2*multiplikant i
medjurezultat.
Pored svega za finalni rezultat 20 bita je dovoljno, matematika ne
laze:)
Obican Booth-ov algoritam nema potrebe za dodatnim bitima jer ne
koristi mnozenje 2*multiplikant.

Da ne bude da sam sve rekao, sam izracunaj koliko dodatnih bitova za
medjurezultat treba.

Pozdrav,
Pedja

----- Original Message -----
From: Dragan Krtalic
To: Vlsi
Sent: Wednesday, April 07, 2004 12:33 PM
Subject: [vlsi-nastava] Date: Wed, 7 Apr 2004 12:35:29 +0200


Ako neko moze da mi pomogne.
Pogledao sam primer sa "zvanicnog" sajta, booth-ov algoritam u
realizaciji Gvozdena Marinkovica iz januara 2002.
Pokretanjem simulatora sa nekim vrednostima koje su male mnozac radi
ispravno,
ali za neke vredmosti neradi uopste ispravno vec mi daje bezveze
rasenja, da li neko zna sta je fora.

Evo nekih primera koji nedaju ispravan rezultat
X=011111 Y=011111 res= 111111000001 a treba res= 001111000001

X=011111 Y=011011 res= 000001000101 a treba res= 001101000101

X=011111 Y=011001 res= 000000000111 a treba res= 001100000111

da li su ovo ispravne vrednosti promenljivih X i Y, a da ne govorim o
negativnim vrednostima promenljivih X i Y.

Unapred hvala.

Dragan Krtalic