POMOZITE ... fiksna točka razmnožavati koristeći VHDL

A

Aleksandar Yin

Guest
Bok, prijatelje,

Ja sam zelene ruke u VHDL i događaj vrlo jednostavan FFT.Prvi problem je sam encouter kako program 16 bitova fiksne točke množitelja sa 8 bita frakcija.Ja ne želim koristiti bilo koji modul množitelj čak i oni mogu spasiti ogroman broj logička vrata.JA pravedan ištanje korištenje "*" učiniti množenja.

No budući da je vrsta podataka fiksna točka sa frakcije, mislim da rezultat mora biti pomaknut nakon izračun "*".Ali Ja sam ne siguran o tome i ne znam kako započeti ovaj program.

Može li mi netko pokazati primjer o tome?

Thanks a lot.

 
Prvo, ako namjeravate koristiti djelomični fiksni notacija poput xxx.xxx, onda možete izvesti množenje prebacivanjem svaki operanda na lijevoj strani od 8 i razmisliti o njima kao cijeli brojevi. Nakon toga, možete izvesti cjelobrojno množenje koje može obaviti " * ". Nakon završetka množenja, morate smjena rezultat je za 16, jer se svaki operand pomaknut za 8. Ako vam je potrebno samo 8 bita po točku, možete jednostavno odbaciti ostatak bitova.
Također možete koristiti IEEE plutajuće točke, tj. notacija možete predstavljaju broj kao znak, eksponentu i veličine. Ste jednostavno pomnožiti magnitude zajedno i dodati eksponenti. Napominjemo da ovo formati smatra broja kao 1.xxxeyyy tj. nakon magnitude množenja, svibanj vam je potrebno izvršiti pomicanje do te postići samo 1 prije točke, i dodati broj promjena to eksponent.
Ako je Vaš brojeve "raspon je mala ja bih preporučiti fiksne točke notaciji, ali ako vas očekujemo vaš sustav za obradu velike vrijednosti brojeva, onda te bi trebao uzeti u obzir floating point notacije.

 
Thanks a lot.To je stvarno pametan način za pomak i čuvajte ga kao cijeli broj.

 
Pokušao sam ovaj, ali svoj 'ne rad sa mnom,

imam ulazi X, Y bit_vector (9 downto 0), I'm having 7 decimalnih mjesta

mulRes <= bit_vector ((potpisan (X) * potpisan (Y))); - mulRes bit_vector (19 downto 0)
res <= mulRes (16 downto 7);

X = 001 1010000 "1.5"
Y = 010 0000000 "2.0"

mulRes = 00001101000000000000
res = 0110100000 što nije 3

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Tužan" border="0" />Have ja shvatio nešto na krivi način?

Thanks in advance

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />

...

 
Da, očito neshvaćena koncept djelomični brojevi.
Ovo je točan djelomični zastupljenosti sfixed (2 downto -7) formatu
Šifra:

X = 001 1000000 "1.5"
 
YESSSSSSS, to je sjajno,
sorry mislio sam na krivi način,
To je radni perfectlyyy,
Hvala vam toliko

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top