HELP ... s pevnou rádovou čiarkou násobiť pomocou VHDL

A

Alexander Yin

Guest
Ahoj, kamaráti, ja som zelenú ruku v VHDL a robí to veľmi jednoduché FFT. Prvý problém som encouter je, ako program, 16 bitov pevný bod multiplikátor s 8 bity zlomok. Nechcem používať žiadne násobok modulu dokonca môžu ušetriť obrovské množstvo logických hradiel. Chcem použiť "*" robiť násobenie. Ale pretože dátový typ je pevný bod frakcie, myslím, že výsledok musí byť posunutý po výpočtu "*". Ale nie som si istý, že, a neviete, ako začať tento program. Môže niekto mi ukázať príklad na túto tému? Díky moc.
 
Po prvé, ak máte v úmysle použiť frakčnou pevné zápis ako xxx.xxx, potom môžete vykonať násobenie posunu každého operandu doľava o 8 a považovať ich za celých čísel. Potom môžete vykonávať celočíselné násobenie, ktoré môžu byť vykonávané " * ". Po skončení rozmnožovanie, je nutné posunúť výsledok o 16, pretože každý operand posunul o 8. Ak potrebujete iba 8 bitov po bode, môžete jednoducho zrušiť zvyšok bitov. Môžete tiež použiť IEEE plávajúce čiarkou teda môžete predstavovať číslo ako znamenie, exponent a veľkosti. Stačí vynásobiť veľkosti spolu a pridať exponentmi. Všimnite si, že tento formát sa domnieva, že číslo 1.xxxeyyy tj po veľkosť násobenie, Možno bude potrebné vykonať presun až dosiahnete iba 1 pred bod a pridajte počet smien, aby exponent. Ak je rozsah vašich čísel "je malá by som odporučil pevnou čiarkou, ale ak čakáte systém zvládnuť veľké hodnoty čísel, potom by ste mali zvážiť plávajúce čiarkou.
 
Díky moc. To je naozaj šikovný spôsob, ako posunúť a zaobchádzať s ňou ako celé číslo.
 
Skúšal som to, ale nie je to práca so mnou, mám vstupy X, Y bit_vector (9 downto 0), mám 7 desatinných miest mulRes
 
Áno, máte zrejme zle pochopil koncept desatinné čísla. To je správny frakčnou zastúpenie sfixed (2 downto -7) vo formáte
Code:
 X = 001 1000000 "1.5"
Váš príklad predstavuje inú hodnotu
Code:
 X = 001 1010000 "1,625"
Všeobecne , budete musieť vynásobiť váš vstup číslo (napr. 1,5) s výkonom dva, aby si celé číslo predstavujúce nepatrné číslo.
 
YESSSSSSS, to je skvelé, prepáč, ja myslel zle, je to práca perfectlyyy, Ďakujem moc:)
 

Welcome to EDABoard.com

Sponsor

Back
Top