Vous êtes sur la page 1sur 22

Contenu 

de l’élément
Implémentation Matérielle • Algorithmes pour le 
traitement d’images : 
– principes, caractéristiques 
Systèmes de traitement et de  et implantation, 
communication multimédia – complexité, cible 
(Mcom_1) matérielle.
• FPGA 
– Outils et chaîne de 
conception, 
– Implantation 
d'architecture pour le 
traitement d’images.
1 2

Problématique Problématique 
• Complexité des systèmes embarqués numériques (Multimédia, 
Télécommunications…).
• Le choix d’une architecture pour les systèmes embarqués 
• Les processeurs standards deviennent incapables de répondre aux 
exigences de ces systèmes.
multimédia doit être un compromis entre :
– Flexibilité.
– Consommation réduite.
– Performance.
– Faible Coût .
– Rapidité de conception (Time    to    M a r k e t)

• Pour la conception d’un tel système complexe, une 
méthodologie de conception rigoureuse doit être utilisée

Les lois empiriques de l’évolution de l’électronique
Codesign
3 4
Traitement d’image
Contenu de l’élément principe
• Algorithmes pour le traitement d’images : 
Les applications de traitement d’images font appel à 
– principes, caractéristiques et implantation, 
des algorithmes qui peuvent être décomposés en 
– complexité, cible matérielle. trois niveaux:
• FPGA 
– Outils et chaîne de conception,  • Le bas niveau
– Implantation d'architecture pour le traitement  • Le moyen niveau
d’images. • Le haut niveau

5 6

Traitement d’image Traitement d’image
principe principe
• Le moyen niveau: 
• Le bas niveau:  – S’intéresse à l’extraction de primitives dans l’image 
– Concerne les prétraitements d’images.  traitée au bas niveau. 
– Les algorithmes utilisent en général des techniques  – Ce niveau consiste également à réduire le volume des 
données traitées (la structure des informations est de 
de filtrage linéaire ou non linéaire, ces  type image en entrée et de type liste en sortie) 
transformations s’appliquent à chaque pixel de 
l’image. 
– Les données à traiter sont nombreuses et les  • Le haut niveau: 
algorithmes sont essentiellement réguliers  – Concerne la fusion des primitives (listes) 
(traitement identique pour chaque donnée).  – Effectue l’interprétation de la scène observée. 

7 8
Traitement d’image
caractéristiques Contenu de l’élément
• Algorithmes pour le traitement d’images : 
• Quantité d’information importante donc: – principes, caractéristiques et implantation, 
– Rapidité – complexité, cible matérielle.
– Capacité
• FPGA 
– Outils et chaîne de conception, 
– Implantation d'architecture pour le traitement 
d’images.

9 10

Traitement d’image Perspective d’intégration 
implantation

• Processeurs
– Microprocesseur Système sur puce
– DSP
– Multiprocesseurs

• FPGA 

• SOC 

11 12
AR.Drone
• Un drone est un « véhicule 
aérien sans pilote »  
télécommandé destiné à des 
missions de surveillance, de 
renseignement, de combat ou 
Application support de transport.

• L'AR.Drone est un drone 
conçu par la société française 
Pilotage autonome d’un AR.Drone Parrot SA.

• L’AR.Drone peut se piloter 
avec un appareil sous iOS, 
Android, Symbian, ou 
windows via une liaison Wi‐Fi.

14 15

16 17
Diagramme de bloc interne de l'AR. Drone Moteurs et énergie

• 4 moteurs brushless : (35 000 tr/min, puissance : 15 W pour 
le 2.0) et (28 500 tr/min, puissance : 14,5 W pour la 
première génération )

• Batterie Lithium‐polymère (trois cellules, 11,1 V, 1 000 mAh)
– Capacité de décharge : 10 C
– Temps de rechargement de la batterie : 90 minutes
– L'autonomie est de maximum 12 à 15 minutes pour les deux 
drones.

18 19

Microcontrôleur ARM Jeu d’instruction ARM
Acorn RISC Machine
A[31:0] control
r0 r8 • Il y a trois types de jeu d’instructions ARM
address register r1 r9
P
C incrementer r2 r10 – ARM : c’est le jeu d’instruction par défaut sur 32 bits. On a 58
r3 r11 instructions dans ce mode et 15 reg+PC disponibles;
PC
register
bank r4 r12
instruction r5 r13 – Thumb : mode instructions sur 16 bits. Il y a 30 instructions et 8
decode
A multiply &
r6 r14 reg+PC Dispo. L’activation (respect. désactivation) de ce mode se 
L register
U
A B
control r7 r15 (PC) fait par l’exécution d’une instruction BX (respect. BLX).
b
u b b
s u u
s barrel s 31 0
shifter
– Jazelle : Exécution du byte code Java, Il existe un bit (J) dans le 
CPSR CPSR qui indique le mode Jazelle. 
ALU
• Les instructions sont sur 8 bits. 
• Une partie des instructions de la JVM sont exécutées directement par le 
NZCV micro‐code et d’autre sont émulés (suite de plusieurs instructions).
data out register data in register CPSR : Current program status register
20 21
D[31:0]
Exercice 
Organisation logicielle
• Calculer en assembler ARM :

x = (a + b) - c
ADR r4,a ; get address for a
STR r0,[r1]; Store contents of r0 to location pointed by contents of r1.
LDR r2,[r1]; Load r2 with contents of memory location pointed to by contents of r1.
ADD r0,r1,r2; Computes r1+r2, stores in r0.
SUB r0,r1,r2; Computes r1-r2, stores in r0.

22 24

Réalisation d’un programme embarqué 

25 26
Exécution du programme embarqué 
Contenu de l’élément
• On se connecte via telnet à l’aide de la commande suivante : 
– telnet 192.168.1.1 
• Algorithmes pour le traitement d’images : 
• Avant de pouvoir lancer un nouveau programme, on doit se  – principes, caractéristiques et implantation, 
placer dans le dossier /usr/bin du drone et saisir l’instruction 
suivante :  – complexité, cible matérielle.
– killall program.elf 
• FPGA 
• Il est nécessaire de modifier les droits du programme  – Outils et chaîne de conception, 
"motorboard" afin de le rendre exécutable. 
– Chmod 777 motorboard – Implantation d'architecture pour le traitement 
d’images.
• Enfin, on peut lancer le code embarqué ! 
– ./motorboard

27 28

Complexité des algorithmes Approximation de la complexité


• Grand O
f(n) = 0(g(n)) s'il existe C> 0 et no > 0 tels que
• un algorithme utilise deux ressources : f(n)  C. g(n) pour tout n  no
– le temps processeur
– et l’espace mémoire.

• Grand oméga
f(n) = Ω(g(n)) s'il existe C> 0 et no > 0 tels que
• Complexité temporelle, complexité spatiale f(n)  C. g(n) pour tout n  no
coût en temps: temps nécessaire à l'exécution
coût en espace: espace mémoire nécessaire
• Grand thêta
f(n) = Θ(g(n)) s'il existe C1 et C2 > 0 et no > 0 tels que
C1.g(n)  f(n)  C2. g(n) pour tout n  no
29 30
Exemples Rapidité de croissance comparée
de certaines fonctions usuelles
• 3n+2 = O(n) 3n+3 = O(n)
100n+6 = O(n)
10n2+4n+2=O(n2) 3n+3 = O(n2)
1000n2+100n-6 = O(n2) 10n2+4n+2= O(n4)
6*2n + n2 = O(2n)

•  c'est la plus petite fonction g(n) qui est


intéressante

31 32

Comparaison des complexités d'algorithmes


Calcul de la valeur d'un polynôme en un point (2)
p  a[0]
xpi  1
• Calcul de la valeur d'un polynôme en un point (1)
pour i  1 à n faire
p  a[0] xpi  xpi * x
pour i  1 à n faire p  p + a[i]* xpi
xpi  puissance(x, i) fpour
p  p + a[i]* xpi
fpour Complexité??????????????????????????

Complexité??????????????????????????

33 35
• Calcul de la valeur d'un polynôme en un point (3)
Contenu de l’élément
p  a[n]
pour i  n - 1 à 0, pas -1 faire • Algorithmes pour le traitement d’images : 
p  p*x + a[i] – principes, caractéristiques et implantation, 
fpour – complexité, cible matérielle.
• FPGA 
– Outils et chaîne de conception, 
– Implantation d'architecture pour le traitement 
Complexité??????????????????????????
d’images.

37 39

Spartan 3E:
Le FPGA Xilinx Spartan 3

http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf

40 Spartan 3E 500K FPGA 41


Digilent Board
Architecture de Spartan‐3E 
• Configurable Logic Blocks (CLBs)
– Se compose de RAM mise sous forme de table des 
éléments logiques et de stockage qui peuvent être 
utilisés comme des flip‐flops ou des latches.
• Input Output Blocks (IOBs)
– Contrôle le flux de données entre les broches d'E / S et 
de logique interne. Prise en charge de nombreuses 
signaux standards. (Tri‐state, bidirectionnel, LVTTL, etc
• Block RAM (BRAM)
• 18 bit Multiplier Blocks
• Digital Clock Manager (DCM)

42 43

• Very low cost, high-performance logic solution for Une cellule


high-volume, consumer-oriented applications
• Multi-voltage, multi-standard Select IO™ interface pins
- Up to 376 I/O pins or 156 differential signal pairs
- LVCMOS, LVTTL, HSTL, and SSTL single-ended
signal standards
- 3.3V, 2.5V, 1.8V, 1.5V, and 1.2V signaling

44 45
Resources et composants
• Unités d’entrées : 8-Swithches, 4-Buttons, and
or Keyboard.
• Unités de sorties : 8-LEDs, 4 digits 7-Segment-
Display, Monitor or Data Show.
• Ressources logiques et Processeur : 500K
Spartan 3E FPGA, and Softcore MicroBlaze
processor.

46 47

Contenu de l’élément
• Algorithmes pour le traitement d’images : 
– principes, caractéristiques et implantation, 
– complexité, cible matérielle.
• FPGA  Outil de description
– Outils et chaîne de conception, 
– Implantation d'architecture pour le traitement d’images.
Implémentation Matérielle

48 49
Outil : ISE de Xilinx
Les possibilités de description
• Schématique
• Littérale
– VHDL (variante altera AHDL)
– Verilog
– Abel
–…

50 51

Xilinx ISE
TP1
• Nous allons écrire, en VHDL, un programme de  • Créer un nouveau 
projet (on 
base pour s’initier à charger une carte FPGA. l’appellera : TP1)

• Spécifier les 
– Sur un afficheur 7 segments, on doit visualiser une  caractéristiques 
de la cible:
valeur correspondante à la position des Switches. – Spartan3E
– On utilise les switches SW0 à SW3 pour représenter  – XC3S500E
– FG320 
les 4 bits binaires.
– Les valeurs sont affichées en hexadécimal sur un 
afficheur 7 segments

52 53
Ajout d’un fichier VHDL Configuration des ports d’entrée/sortie

• Sélectionner : "Project → New Source" 
• On appellera notre fichier “toplevel.vhd” 

54 55

Fichier généré automatiquement Compléter le fichier VHDL
library IEEE; 
with switches select 
use IEEE.STD_LOGIC_1164.ALL;  sevenseg <= 
use IEEE.STD_LOGIC_ARITH.ALL;  "1000000"   when x"0" , 
use IEEE.STD_LOGIC_UNSIGNED.ALL; 
‐‐‐‐ Uncomment the following library declaration if instantiating 
"1111001"   when x"1" , 
"0000000"   when x"8" , 
‐‐‐‐ any Xilinx primitives in this code.  "0100100"   when x"2" , 
"0010000"   when x"9" , 
‐‐library UNISIM;  "0110000"   when x"3" , 
‐‐use UNISIM.VComponents.all; 
"0001000"   when x"A" , 
entity toplevel is
"0011001"   when x"4" ,  "0000011"   when x"B" , 
Port ( switches : in STD_LOGIC_VECTOR (3 downto 0);  "0010010"   when x"5" ,  "1000110"   when x"C" , 
sevenseg : out STD_LOGIC_VECTOR (6 downto 0);  "0000010"   when x"6" ,  "0100001"   when x"D" , 
anodes : out STD_LOGIC_VECTOR (3 downto 0));  "0000110"   when x"E" , 
"1111000"   when x"7" , 
end toplevel;  "0001110"   when others; 
architecture Behavioral of toplevel is anodes   <=   "1110";
begin
end Behavioral;
56 57
Assignation des PINs de FPGA Assignation des PINs de FPGA
• Cette étape permet de faire correspondre à nos entrées sorties des pins de FPGA
NET "anodes<0>" LOC = "F17"; 
• Si on néglige cette étape, les pins sont assignés par le logiciel Xilinx
NET "anodes<1>" LOC = "H17";
aléatoirement
NET "anodes<2>" LOC = "C18"; 
• Pour cela créer un nouveau fichier “Universal Constraints File” (.ucf). 
NET "anodes<3>" LOC = "F15"; 
– "Project → New Source" 
NET "sevenseg<0>" LOC = "L18"; 
NET "sevenseg<1>" LOC = "F18"; 
NET "sevenseg<2>" LOC = "D17"; 
NET "sevenseg<3>" LOC = "D16"; 
NET "sevenseg<4>" LOC = "G14"; 
NET "sevenseg<5>" LOC = "J17"; 
NET "sevenseg<6>" LOC = "H14"; 
NET "switches<0>" LOC = "G18"; 
NET "switches<1>" LOC = "H18"; 
NET "switches<2>" LOC = "K18"; 
NET "switches<3>" LOC = "K17";  

58 59

Synthesis, Place+Route, Programming File  Chargement de la cible

double‐cliquer sur “Generate Programming File” 

• Cliquer sur “Browse” 


• Selectionner le fichier
“toplevel.???“
• Cliquer sur “Program”

60 61
TP2 TP3
• Concevoir un système de calcul arithmétique  • Mettre en place un diviseur de fréquence pour diviser 
pour faire: la fréquence d’horloge (50MHz) du FPGA par 224
C = A + B  si  OP = 0 • Réaliser un compteur modulo 10
C = A – B  si  OP =1

A, B et C sont sur 4 bits et OP un seul bit
On aura le soin de connecter
A et B : 4+4 switches
OP : un bouton poussoir
C : un afficheur 7 segments

62 63

Cahier des charges 
Contenu de l’élément
• Algorithmes pour le traitement d’images : 
– principes, caractéristiques et implantation, 
– complexité, cible matérielle.
• FPGA 
– Outils et chaîne de conception, 
– Implantation d'architecture pour le traitement 
d’images.

64 65
Détection d’objets Étapes de l'algorithme
• Acquisition des images (trames de la video)
• La détection basée sur la couleur (appelée parfois Blob  – Le principe du tout traitement vidéo est de procéder à une analyse du flux 
Detection)  image par image. 
– C’est une méthode simple et rapide qui peut être utilisé dans 
plusieurs systèmes de vision artificielle,  • Conversion
– Elle peut être utilisée pour la détection et le suivi des objet  – On doit convertir l'image (trame) qui est en BGR en HSV (Hue, Saturation, 
simples comme une ballon, une étiquette ou un marqueur, ou  Value).
bien détecter la peau d'une personne. – La représentation en HSV nous permettra de se baser sur un canal ou deux : 
la teinte et la saturation de la couleur, sans prendre en compte la  brillance  (V  
value), se qui permet alors d'éliminer les problèmes liés à l'éclairage.
• Cette méthode vise à détecter des points et/ou régions de 
l'image qui diffèrent des propriétés par rapport au  • Binarisation
entourages (la couleur...).  – La binarisation consiste à placer les pixels de l'image dans deux classes 
distinctes, généralement représentées par deux couleurs, le blanc et le noir. 
– la première classe correspondra à la couleur à isoler, la seconde à toutes les 
autres couleurs
• L'idée général est de chercher les régions d'une image  – Ainsi, si la couleur de l'objet sélectionné est le rouge, nous verrons sur notre 
numérique dans laquelle certaines propriétés sont  image binarisée tous les éléments rouges apparaître en blanc sur un fond 
constantes ou varient dans une plage de valeurs donnée. noir.
66 67

Étapes de l'algorithme Réalisation sur FPGA
• Le Masque
– Créer un masque pour sélectionner les pixels qui peuvent appartenir à l'objet en se 
basant uniquement sur leurs valeurs HSV.
– Théoriquement, nous devons mettre en blanc tous les pixels ayant les mêmes valeurs 
HSV que notre couleur. Pratiquement, le résultat ne serait pas très convaincant et  Erosion/
nous ne récupérerions que quelques pixels. Masque  dilatation
lecture
– Il faut rechercher les pixels qui se situent dans un intervalle autour de cette couleur, 
nous utiliserons alors une valeur de tolérance pour les valeur de teinte et de 
saturation uniquement. Nous cherchons donc tous les pixels qui vérifient : 
HSV
Conversion  Binarisation
memoire
• Opérateurs morphologiques et isolation de l'objet
– L’image en noir et blanc nous indique où se trouve la couleur de notre objet dans 
l'image par des  tâches blanches . mais il va falloir l'isoler des couleurs similaire dans 
l'environnement. CLK
– Globalement l'objet correspondra à la tâche la plus grosse et la plus dense. Il nous faut 
donc nous débarrasser de ces pixels éparpillés qui ne représentent pas l’objet.
Détecteur d’Objets
– On applique successivement deux opérateurs morphologiques: 
• d'abord nous effectuons  une érosion. Cela nous permet de supprimer le pixels  isolés  qui ne 
correspondent  pas à notre objet  de couleur. 
• Ensuite nous effectuons  une dilatation qui nous permet de renforcer les groupes denses  de pixels 
(donc notre objet)
68 69
Affichage de l’objet Affichage sur écran
• On veut mettre un signal à la norme VGA (Video Graphics 
Array : norme standard d’affichage sur les moniteurs)
Reed
lecture
ecran_VGA Green

Adr Blue
RVB

multiplexeur
memoire
HSYN

synchro
CLK VSYN

Détecteur d’Objets

70 71

Connecteur VGA Principe d’affichage sur écran
• Les signaux VGA_HSYNC et VGA_VSYNC sont les deux 
signaux qui vont définir le balayage de l’écran à une 
fréquence de 60Hz. 

• Le premier signal correspond à la synchronisation 
horizontal et le deuxième à la synchronisation verticale. 

– Le faisceau fait un balayage plus large que l’écran et va de 
gauche à droite sans arrêt. 
– Il ne revient pas spontanément à gauche et sur la ligne du 
dessous.
– Pour cela nous utilisons le signal de synchronisation 
horizontal qui va faire revenir le faisceau au début de la ligne 
suivante.
72 73
Principe d’affichage sur écran
• On remarque que le retour à la ligne suivante se fait lors du front descendant du signal 
de synchronisation horizontal. 
• Afin de ramener le faisceau en haut à gauche il faut appliquer un front descendant sur 
le signal de synchronisation vertical. 
• Il est interdit d’afficher un pixel lorsque le faisceau dépasse l’écran ou lorsqu’il revient 
se repositionner en début de ligne. 

Symbole  Paramètre  Synchronisation verticale Synchronisation 


horizontale
Time  Clocks Lines Time  Clocks
TS Sync pulse 16.7ms 416 800 521 32us 800
Tdisp Display time 15.36ms 384 000 480 25.6us 640
Tpw Pulse width 64us 1 600 2 3.84us 96
Tfp Front porch 320us 8 000 10 640ns 16
74 Tbp Back porch 928us 23 200 29 1.92us 48 75

Principe d’affichage sur écran Synchronisation 

La sortie AFF=0 →  pas d’affichage
CLK
HSYN
(25MHz)
• Pour synchroniser les signaux nous devons utiliser une  VSYN
horloge dont la période est de  Synchro Col
– 16,7ms/416800clocks,  Lig
– soit une horloge à 25MHz.  RESET
AFF

• Ainsi chaque front représente un pixel. 
HSYN

• Il suffit donc de suivre les valeurs du tableau afin de définir  Display Front Pulse Back


la zone d’écran dans laquelle il est possible d’afficher.  0 639 655 751 799

VSYN 703

Display Front Pulse Back


76 0 479 488 490 519 77
• Créer un nouveau projet (on l’appellera : « cryptage »)
• Spécifier les caractéristiques de la cible: Spartan3E – XC3S500E – FG320  Création du fichier Synchro
• Sélectionner : "Project → New Source" 
• On appellera notre fichier “synchro.vhd” 

N’oublier 
pas de 
spécifier 
un dossier 
de travail

78 79

Configuration des ports d’entrée/sortie Déclarations et initialisations
architecture synchronisation of synchro is

signal Vclk, HDisplay, HFront, HPulse, Hback :  STD_LOGIC_VECTOR  (9 downto 0);


signal VDisplay, VFront, VPulse, VBack : STD_LOGIC_VECTOR  (9 downto 0);
CLK
HSYN signal SCol : STD_LOGIC_VECTOR  (9 downto 0);
(25MHz)
VSYN signal SLig : STD_LOGIC_VECTOR  (9 downto 0);
signal inc_lig : std_logic;
Synchro Col signal erow, ecol : std_logic;
Lig
RESET Begin
AFF
‐‐ Horizontal 
HDisplay <= "1001111111"; 
HFront <= "1010001111"; 
HPulse <= "1011101111"; 
Vclk <= "1010111111"; 
HBack <= "1100011111"; 
‐‐ Vertical 
VDisplay <= "0111011111"; 
VFront <= "0111101000"; 
Comment peut‐on avoir une fréquence de 25MHz en CLK? VPulse <= "0111101010"; 
80 VBack <= "1000000111";  81
process (clk_25, RESET)
Begin
if ((SLig >= VBack) and (inc_lig = '1')) then
if (SCol = Vclk) then Affichage sur écran
if RESET = '1' then SLig <= (others => '0'); inc_lig <= '1';
Scol <= (others => '0'); elsif (inc_lig = '1') then else valide
Slig <= (others => '0'); SLig <= SLig + 1; inc_lig <= '0'; 3Bits
rouge
Clk_25
erow <= '0'; end if; end if; 3Bits
ecol <= '0'; Ecran_VGA vert
if ((SLig <= VPulse) and (SLig >= VFront)) then 8Bits
inc_lig <= '0'; donnee 2Bits
HSYN <= '1'; AFF <= erow and ecol; bleu
VSYN   <= '0';
VSYN <= '1'; else end if;
VSYN   <= '1'; end process;
elsif clk_25'event and clk_25='1' then
end if;
architecture affichage of ecran_VGA is
if (SCol <= HDisplay) then
if SCol = HBack then Begin
ecol <= '1';
SCol <= (others => '0'); process (clk_25, valide)
else
else col <= SCol ; begin
ecol <= '0';
SCol <= SCol + 1; lig <= SLig ; rouge(1)<='0'; rouge(2)<='0'; vert(1)<='0'; vert(2)<='0'; bleu(1)<='0';
end if;
end if; if valide = '0' then
rouge(0)<= '0‘; vert(0)<= '0‘; bleu(0)<= '0';
if ((SCol <= HPulse) and (SCol >= HFront))  if (SLig <= VDisplay) then
elsif clk_25 = '1' and clk_25'event then
then erow <= '1';
HSYN   <= '0'; rouge(0)<=donnee(2) ; vert(0)<=donnee(1) ; bleu(0)<=donnee(0) ;
else
else end synchronisation; end if;
erow <= '0';
HSYN   <= '1'; end process;
end if; 82 83
end if; end affichage;

Lecture de la mémoire
adresse : process (clk_25, reset)
reset
begin
begin
Clk_25 if reset = '1' then
Positionnement : process (clk_25, reset)
16Bits addr_signal <= (others => '0');
Lecture addr begin
elsif clk_25'event and clk_25='1' then
10Bits if reset = '1' then
col if position = '1' then
position <= '0';
lig 10Bits if addr_signal = 50175 then
elsif clk_25'event and clk_25='1' then
addr_signal <= (others => '0');
if (lig >= vHaut) and (lig <= vBas) then
else
if (col >= hHaut) and (col <= hBas) then
addr_signal <= addr_signal + 1;
position <= '1';
architecture image of lecture is end if;
else
end if;
position <= '0';
constant vHaut : integer := 128; end if;
end if;
constant vBas : integer := 351; end if;
constant hHaut : integer := 64; end process ;
end if;
constant hBas : integer := 287; end process ;
addr<=addr_signal;
signal position : std_logic := '0';
signal addr_signal : STD_LOGIC_VECTOR (15 downto 0);
end image;
84 85
Insertion d’un IP Insertion d’un IP
• Sélectionner dans « RAM&ROM » le générateur de mémoire « Block Memory Generator » 
• Sélectionner dans « New Source » l’ajout d’un « IP »  • Next puis finish

86 87

• Sélectionner  « Single Port ROM »
• Puis « Next »   • On créera une mémoire de 3 x 50177
• « Next » à l’étape 3, sélectionner, dans Load File, le fichier « valeur.coe »
• Puis « Next » jusqu’à l’étape 5, choisir « Generate »

88 89
Assignation des PINs de FPGA
Réaliser le montage
NET "CLK"  LOC = "B8"; 
NET "reset" LOC = "B18";
3Bits
Reed
NET "R<0>" LOC = "R9"; 
3Bits
8Bits ecran_VGA Green NET "R<1>" LOC = "T8";
memoire
RVB 2Bits NET "R<2>" LOC = "R8";
Blue
NET "G<0>" LOC = "N8"; 
Adr
valide NET "G<1>" LOC = "P8";
SA NET "G<2>" LOC = "P6";
colonne 10Bits AFF HSYN NET "B<0>" LOC = "U5"; 
lecture NET "B<1>" LOC = "U4";
ligne 10Bits
synchro
CLK VSYN
NET "H" LOC = "T4"; 
NET "V" LOC = "U3"; 
RESET

90 91

Synthesis, Place+Route, Programming File  Chargement de la cible

double‐cliquer sur “Generate Programming File” 

• Cliquer sur “Browse” 


• Selectionner le fichier
“*.bit“
• Cliquer sur “Program”

92 93
 

Vous aimerez peut-être aussi