Page 1 of 1

Filtro FIR low pass

PostPosted: 07 Jun 2018, 15:59
by myself92
Ciao a tutti
sto usando da poco il linguaggio VHDL e dovrei implementare un filtro FIR low pass. Siccome non ho molte conoscenze di base, come posso realizzare il sommatore e il moltiplicatore?
Devo realizzare un filtro di ordine N=6, dove l'ingresso, i coefficienti e l'uscita sono di 16 bits

Re: Filtro FIR low pass

PostPosted: 08 Sep 2018, 10:12
by legacy
il linguaggio vhdl non ha problemi a definire operatori come + o *; i guai arrivano nella sintesi perche' bisogna vedere SE e COSA l'hardware (FPGA, CPLD, ...) ha a disposizione "gia' pronto" per soddisfare la richiesta, altrimenti tocca implementare l'altoritmo della moltiplicazione a manina

su FPGA e CPLD ci sono sempre stati e ci saranno sempre le unita' fondamentali sommatrici con granularita' al bit e propagazione del carry, e non ci sono problemi a comporre sommatori piu' grandi con latenza massima 1, mentre per quanto riguarda la moltiplicazione ...

sulle CPLD non c'e supporto hw
su vecchie FPGA, p.e. Xilinx Spartan2, non c'e' supporto
su meno vecchie FPGA, p.e. Xilinx Spartan3, c'e' supporto ma bisogna "guidare" il sintetizzatore
su moderne FPGA, p.e. Xilinx Sparta6,7, c'e' supporto DSP-slice, ISE-v14 e Vivado usano le risorse con malizia

le DSP-slice sono circuiti "gia' pronti" capaci di fare moltiplicazioni a 16-o-18bit con latenza tipicamente 6 colpi di clock; se servono moltiplicatori a 32 bit tocca compore moduli con la dovuta logica ed aritmetica di contorno, con latenza totale tipicamente di 12-14 colpi di clock.

FIR e IIR usano tipicamente unita' MAC (moltpica e accumula), in fixedpoint con logica satura