Page 1 of 1

Rappresentazione in virgola fissa

PostPosted: 19 Sep 2013, 10:19
by marittone
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

Re: Rappresentazione in virgola fissa

PostPosted: 19 Sep 2013, 16:53
by Leonardo
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

Re: Rappresentazione in virgola fissa

PostPosted: 27 Sep 2013, 06:52
by marittone
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.

Re: Rappresentazione in virgola fissa

PostPosted: 27 Sep 2013, 08:05
by alfo84
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