Étape 7: Concevoir un codeur de priorité
Dans cette section, nous allons concevoir un codeur de priorité 4 entrées. Quatre commutateurs bord servira comme entrées de données. Un autre interrupteur à glissière agira comme « Activer » du signal. Deux LED affichera la valeur codée des intrants et un autre deux LEDs acte comme « GS » et le Signal « Eout ».
Créez un projet dans Xilinx Vivado cibler la FPGA board que vous utilisez, comme dans les précédents projets.
Créer un Verilog module appelé encodeur avec entrées I, Ein et sorties Eout, GS et Y comme suit :
(decoder_3_8) 1 module
2 entrée [3:0] I,
3 entrée Ein,
4 sortie Y [1:0],
sortie 5 GS,
6 sortie Eout
7) ;
Le moyen le plus efficace pour décrire le comportement d’un codeur de priorité consiste à utiliser si déclaration en un toujours bloquer. Comme nous l’avons ici trois sorties, on codera la description comportementale pour ces trois sorties dans trois bloque toujours.
1 reg [1:0] Y ;
reg 2 GS ;
3 reg Eout ;
4
5 toujours @ (I, Ein)
6 commencer
7 if(Ein == 1)
8 Y = (J’AI [3] == 1) ? 2' d3: ()
9 (j’ai [2] == 1) ? 2' d2: ()
10 (j’ai [1] == 1) ? 2' d1: 2' d0
11)
12) ;
13 d’autre
14 Y = 2' d0 ;
15 fin
16
17 toujours @ (I, Ein)
18 commencer
19 if (Ein == 1 & & j’ai == 0)
20 Eout = 1' b1 ;
21 d’autre
Eout 22 = 1' b0 ;
fin 23
24
25 toujours @ (I, Ein)
commencer à 26
27 if (Ein == 1 & & j’ai! = 0)
28 GS = 1' b1 ;
29 d’autre
30 GS = 1' b0 ;
se termine le 31
Créer une carte et XDC fichier :
-I [3:0] de SW2, SW1, SW3, SW0
-Ein à SW7
-Y [1:0] à LED 1-0
-Eout à LED 7
-GS 6 LED