Rappresentazione in virgola fissa

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

Rappresentazione in virgola fissa

Postby marittone » 19 Sep 2013, 10:19

Salve,
dovrei implementare questo polinomio
P(x)= x - 1/(2 . 3) x^3
La difficoltà è che x è un numero rappresentato in virgola fissa e quindi i coefficienti devono essere trasformati in virgola fissa e le operazioni devono essere eseguite sempre in virgola fissa.
Qualcuno sa come farlo in linguaggio vhdl???

Grazie 1000
Saluti
marittone
 
Posts: 2
Joined: 19 Sep 2013, 09:43

Re: Rappresentazione in virgola fissa

Postby Leonardo » 19 Sep 2013, 16:53

Quartus 13 non supporta ancora pienamente VHDL 2008 che definisce alcuni package per utilizzare fixed e floating point, si può però ovviare al problema seguendo le istruzioni alla seguente pagina: http://www.vhdl.org/fphdl/

Ciao
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Rappresentazione in virgola fissa

Postby marittone » 27 Sep 2013, 06:52

In realtà il mio problema è la realizzazione di un'entità per approssimare la funzione arcoseno iperbolico con il suo polinomio di Mac-Laurin di cui conosco già la dichiarazione

entity asinh_x is

port (x : in signed(15 downto 0); y : out signed (31 downto 0) ; clk: in std_ulogic );

end entity;


    clk è un segnale di clock per sincronizzare le operazioni.
    x è un segnale in formato virgola fissa Q1.15 (compreso tra -1 e 1)
    y invece ha un formato Q2.30 (compreso tra -2 e 2)

Ho scaricato ModelSim PE 10.2 c (Student Edition)
Purtroppo sono in un vicolo cieco.
marittone
 
Posts: 2
Joined: 19 Sep 2013, 09:43

Re: Rappresentazione in virgola fissa

Postby alfo84 » 27 Sep 2013, 08:05

Ciao Marittone, anche io sto lavorando ad un progetto (filtro di interpolazione con filtri fir) nel quale ci sono coefficienti con la virgola. Quello che ho fatto fino ad ora è considerare i coefficienti senza virgola, ad esempio se hai 0.1234, consideri il valore 1234. Poi alla fine dell'implementazione vai a moltiplicare il risultato per un fattore di scala (in questo esempio è 2^(-4)). Io in questo modo sto facendo, però devo ancora testare il tutto. Per ora ho considerato solamente i coefficienti interi.

Ciao
alfo84
 
Posts: 42
Joined: 06 Sep 2013, 12:51


Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 18 guests

cron