Virgule fixe avec fixed_pkg
Comprendre ufixed, sfixed, les bits fractionnaires, resize et la conversion vers std_logic_vector.
Pourquoi la virgule fixe
Un FPGA manipule naturellement des bits. Pour représenter une valeur comme 0.75, -1.25 ou un gain de filtre, on évite souvent la virgule flottante. On utilise plutôt une virgule fixe : un entier binaire avec une position de virgule connue.
Exemple sur 8 bits en Q4.4 :
- 4 bits pour la partie entière ;
- 4 bits pour la partie fractionnaire ;
- la valeur physique est le mot binaire divisé par
2^4.
Le package fixed_pkg
VHDL-2008 fournit fixed_pkg :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.FIXED_PKG.ALL;Il définit principalement :
| Type | Usage |
|---|---|
ufixed | nombre non signé à virgule fixe |