Re: Date: Wed, 7 Apr 2004 12:35:29 +0200
Napravio sam lapsus, kritican slucaj je -2*M (a ne 2*M) gde je M minimalna negativna vrednost. Tada -2*M daje maksimalni moguci pozitini broj koji treba predstaviti odgovarajucim brojem bita.
Pozdrav,
Pedja
----- Original Message -----
From: Predrag Gojic
To: vlsi-nastava@titan.etf.bg.ac.yu
Sent: Wednesday, April 07, 2004 3:51 PM
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
Pozdrav,
Pedja
----- Original Message -----
From: Predrag Gojic
To: vlsi-nastava@titan.etf.bg.ac.yu
Sent: Wednesday, April 07, 2004 3:51 PM
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
- Follow-Ups:
- Re: Date: Wed, 7 Apr 2004 12:35:29 +0200
- From: "Jovan Maric" <jovan@beotel.yu>
- Re: Date: Wed, 7 Apr 2004 12:35:29 +0200
- References:
- [no subject]
- From: "Dragan Krtalic" <krtalic@InfoSky.Net>
- Re: Date: Wed, 7 Apr 2004 12:35:29 +0200
- From: "Predrag Gojic" <pgojic@eunet.yu>
- [no subject]
Previous by date: RE: Date: Wed, 7 Apr 2004 12:35:29 +0200
Next by date: Rokovi
Previous by thread: RE: Date: Wed, 7 Apr 2004 12:35:29 +0200 Next by thread: Re: Date: Wed, 7 Apr 2004 12:35:29 +0200
Previous by thread: RE: Date: Wed, 7 Apr 2004 12:35:29 +0200 Next by thread: Re: Date: Wed, 7 Apr 2004 12:35:29 +0200