Beruflich Dokumente
Kultur Dokumente
Camille LEROUX
1 Objectif
Lobjectif de ce tutorial est de donner les principales clefs pour utiliser la suite doutils Vivado
de la societe Xilinx. Nous allons realiser un simple additionneur complet (full adder) en utilisant
un language de description materielle: le VHDL. Nous allons ensuite tester le full adder sur la
carte Basys 3 de la societe Digilent. A la fin de ce tutorial, vous devez etre capable de :
Lancer loutil,
Creer un nouveau projet,
Decrire un circuit combinatoire simple en VHDL,
Creer un fichier de contraintes .xdc,
Faire la synth`ese, le placement, le routage et la generation du bit stream,
Reconfigurer le circuit FPGA de la carte.
File>Close Project
1
2.2 Cr
eation dun nouveau projet
Creez un projet :
File>New Project
Le projet vide est maintenant cree. Nous allons `a present creer un fichier source qui contriendra
la description du full adder, et lajouter au projet.
Le fichier VHDL apparait alors. On peut modifier la specification des ports dentree/sortie dans
la partie entity du fichier: Par exemple pour un port dentree TOTO sur 1 bit:
TOTO : in STD LOGIC;
Pour decrire ce circuit en VHDL, nous avons besoin de portes logiques de base. En VHDL,
tous les operateurs logiques de base sont disponibles: not, and, or, nand, nor, xor, xnor. Par
exemple pour generer AXORB = A B, il suffit de taper apr`es le mot clef begin:
AXORB <= A xor B; Nous avons egalement besoin de declarer le fil AXORB. Pour cela, il suffit
de le declarer avant le mot clef begin:
signal AXORB : std logic;
3
use IEEE.STD_LOGIC_1164.ALL;
entity full_adder is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
CIN : in STD_LOGIC;
S : out STD_LOGIC;
COUT : out STD_LOGIC);
end full_adder;
begin
end Behavioral;
La description VHDL etape 0.vhd a dej`a ete ecrite. Telechargez l`a (cleroux.vvv.enseirb-matmeca.fr/EN101/
puis ajoutez l`a au projet:
File > Add Sources
Selectionnez Add or Create Design Sources
Cliquez sur Next
Cliquez sur Add Files
Allez chercher le fichier etape 0.vhd `a lendroit ou vous lavez telecharge
Cliquez sur Finish
Une fois que le fichier etape 0.vhd a ete ajoute, il doit apparaitre dans la fenetre Sources et le
fichier full adder.vhd doit se trouver sous le fichier etape 0.vhd, ce qui montre que larchitecture
du bloc etape 0 contient/instancie un module de type full adder.
4
3.2 Ajout du fichier de contraintes
Le FPGA sur lequel nous allons implanter le circuit comporte un grand nombre de pattes
dentree/sortie. Il faut donc maintenant connecter les entrees sw(0), sw(1) et sw(2) et sorties
led(0) et led(1) du bloc etape 0 aux pattes du FPGA qui sont physiquement connectees aux
LEDs et aux interrupteurs sur la carte (Cf Figure 2). Ceci est specifie dans un fichier .xdc
(Xilinx Design Constraints). Ajouter le fichier Basys3.xdc fournit `a votre projet:
3.3 Synth`
ese logique
Une fois ceci fait, selectionnez le module etape 0 dans la fenetre Sources, puis clique droit et
Set as Top. Ceci permet de dire `a loutil que cest ce module ci et ses eventuels sous-modules
quil va falloir implementer sur le FPGA. Le module etape 0 doit alors apparaitre en gras dans
larborescence. Ceci fait, nous allons voir ce que produit letape de synth`ese logique a` partir de
la description VHDL:
Selectionner le module etape 0 (simple clique dessus)
Dans la fenetre Project Manager, dans la rubrique Synthesis, cliquez sur Schematic.
Le processus de synth`ese se lance et vous voyez apparaitre un schema logique compose de LUT
et de buffer. Vous pouvez verifiez le contenu de chaque LUT :
Clique droit sur une LUT
Cell properties
5
Carte Basys
LED0
FPGA U16 LED1
E19
switch
switch
0
1
Etape 0 LED2
switch 2 Full Adder
V17 sw(0)
switch 3 A S LED3
V16 sw(1) led(0)
switch 4 B
W16 sw(2)
switch 5 CIN COUT LED4
led(1)
switch 6
switch 7 LED5
LED6
LED7
Figure 2: Connexion des I/O du module Full Adder aux I/O du FPGA
3.5 G
en
eration du bitstream et configuration du FPGA
La derni`ere etape du processus dimplantation consiste `a generer un bit stream, cest a` dire un
fichier binaire qui va etre telecharge sur le FPGA et qui va permettre de configurer le contenu de
6
chaque LUT et de chaque interconnexion du FPGA pour que celui-ci implemente larchitecture
que vous avez visualisee apr`es la phase de placement routage.
Pour generer ce bit stream:
Branchez la carte `a votre PC, et allumez votre carte (interrupteur a` cote du cable mini
USB)
Dans la rubrique Program and Debug, cliquez sur Generate Bitstream
Apr`es quelques secondes, une fenetre apparait, selectionnez Open Hardware Manager,
puis OK
Clique droit sur la cible (xc7a35t), puis Program Device
Le bitstream est transfere sur le circuit FPGA via le cable USB. Une fois le circuit configure,
vous pouvez changer la valeur des interupteurs et verifier que votre full adder fonctionne.
NB: Il est possible de realiser toutes les etapes de limplementation jusqu`a la generation du
bitstream en cliquant directement sur Generate Bitstream.