Qu'est-ce qu'un FPGA?
"Un field-programmable
gate array (FPGA) est un circuit semiconducteur qui peut-être
configuré par le client ou le concepteur avant et après avoir été
manufacturé, d'où le nom "field programmable". Les FPGA sont
programmé ou configuré, pour définir leur fonctionnalité, à l'aide d'un
circuit logique ou de code source nommé "Hardware Description
Language" (HDL). Les FPGA peuvent remplir la plupart des fonctions
supportées par les ASIC, mais en plus ils peuvent être modifiés après
avoir été inséré dans l'application. Les FPGA sont constitués de blocs
contenant une certaine quantité de circuit logique et/ou table de vérité,
puis de plusieurs facilités pout faire l'interconnexion entre les blocs
logiques. On peut voir le FPGA comme étant un emplacement pour faire des
prototypes de circuits logiques. Chaque bloc logique peut être configuré
pour faire des fonctions simples comme des ET, OU, NOT, XOR. Dans la plupart
des FPGA les blocs logiques contiennent des éléments de mémoire et des
registres." (référence Wikipedia)
|
Certains FPGA contiennent des sections de circuit fixes:
- Lien
série haute vitesse (LVDS)
- Serializer
and deserializer (SERDES)
- Boucle
verrouilleur de phase (PLL)
- Boucle
verrouilleur de délai (DLL)
- Multiplicateur
et accumulateur pour utilisation en traitement de signal (DSP).
- Interface
mémoire tel que DDR.
- Interface
BUS standard tel que PCI.
- Noyau
de CPU.
- Fonction
analogique de base et superviseur de tension.
- Bloc
de mémoire RAM.
- FIFO,
mémoire à dux port d'accès
- Plusieurs
types d'entrée et sorties tel que CMOS, TTL, différentielles.
|
|
Qu'est-ce
que peut faire un FPGA?
Un FPGA ça peut faire plein de chose. Ça peut faire
toutes sorte de circuits numériques. Par exemple de la logique combinatoire
tel des circuits complexes composés de portes logiques ET, OU, NON. Par
exemple un circuit pour adapter un périphérique à un CPU. Dans les FPGA il
y a des registres et de la mémoire, alors il est possible de faire des
machines séquentielles comme les machine à états de Mealy et Moore. Par
exemple un contrôleur de lumière de trafic ou bien un contrôleur de
mémoire dynamique.
Comme les DSP le FPGA peuvent faire du traitement de
signal numérique comme de la génération d'onde, de la démodulation, du
filtrage, de l'analyse spectrale. etc. Les FPGA vont être favorisés par
rapport aux DSP lorsque les taux d'échantillonnage sont très élevés soit
de l'ordre de million d'échantillons par secondes et dans les applications
où les DSP ne peuvent fournir tous les million de instructions par seconde
requises. Un avantage indéniable des FPGA par rapport aux DSP est qu'avec un
FPGA on peut avoir plusieurs multiplicateur et accumulateurs qui fonctionnent
en même temps, la plupart des DSP sont limités à un ou deux.
Comment travaille t-on avec un FPGA?
Les FPGA sont développés en utilisant un langage texte
spécifique pour la description de circuit logique comme par exemple le VHDL
ou le Verilog. Avec ces langages on élabore le circuit logique un peu comme
on écrit un logiciel pour un CPU, mais attention la principale différence
est que l'exécution n'est pas séquentielle. Un exemple de code VHDL est
montré plus bas:
|
CounterP: process(N_RESET,
DSP_CLK_PIN, DSP_NCS_PIN, StateCount)
begin
if (DSP_NCS_PIN = '1' OR N_RESET = '0') then --async
reset.
Count <= "0000000";
elsif (DSP_CLK_PIN='1' and DSP_CLK_PIN'event) then
--sync increment.
Count <= Count + 1;
end if;
end process CounterP;
|
La
méthode pour travailler avec les FPGA est pas mal directe:
- Spécifier
les fonctions requises.
- Établir
l'architecture.
- Rechercher
de la propriété intellectuelle (PI) disponible pour faire les fonctions
requises. Utiliser la PI peut sauver beaucoup de temps de développement.
- Développer
le code VHDL ou Verilog.
- Simuler.
- Intégrer
le FPGA au produit final et faire les ajustements finaux.
Sysacom dispose d'une procédure de travail pour les
FPGA, cette procédure défini le contenu de la documentation et le style de
l'écriture du code.
Qui vend des FPGA?
Il y a principalement quatre compagnies qui produisent
des FPGA: Xilinx, Altera, Lattice et Actel. Jusqu'à maintenant nous avons
travaillé avec trois d'entre elles, puis nous avons été satisfaits avec
chacune d'elle.
Qui développe avec des FPGA?
Sysacom développe pour ses clients des FPGA. Nous
développons les FPGA en utilisant les langages VHDL et Verilog, mais nous
faisons beaucoup plus, comme par exemple le sélection des FPGA, le
conception des schémas, des circuits imprimés, nous allons aussi fournir
quelques circuits prototypes et faire les tests et l'intégration.