Projekt 5: Multiplexer, avkodare, kodare och Växelreglage (7 / 10 steg)
Steg 7: Designa en prioritet kodare
I det här avsnittet ska vi utforma en 4-input prioriterade kodare. Fyra ombord växlar används som data ingångar. En annan slide switch kommer att agera som "Aktivera"-signal. Två lysdioder visar kodade värdet av insatsvaror, och en annan två lysdioder verka som "GS" och "Eout" signalen.
Skapa ett projekt i Xilinx Vivado inriktning FPGA styrelsen du använder, som i tidigare projekt.
Skapa en Verilog modulen kallas kodare med ingångar I, Ein och utgångar Eout, GS och Y enligt följande:
() 1 modul decoder_3_8
2 ingång [3:0] I,
3 ingång Ein,
4 utgång [1:0] Y,
5 produktion GS,
6 utgång Eout
7).
Det mest effektiva sättet att beskriva beteendet av en prioritet kodare är att använda om-uttryck i en alltid blockera. Som vi har tre utgångar här, kommer vi kod beteendemässiga beskrivningen för dessa tre resultat i tre alltid blockerar.
1 reg [1:0] Y;
2 reg GS;
3 reg Eout;
4
5 alltid @ (I, Ein)
6 börja
7 if(Ein == 1)
8 Y = (JAG [3] == 1)? 2' d3: ()
9 (jag [2] == 1)? 2' d2: ()
10 (jag [1] == 1)? 2' d1: 2' d0
11)
12).
13 annat
14 Y = 2' d0;
15 slutet
16
17 alltid @ (I, Ein)
18 börjar
19 om (Ein == 1 & & jag == 0)
20 Eout = 1' b1;
21 annat
22 Eout = 1' b0;
23 slutet
24
25 alltid @ (I, Ein)
26 börjar
27 om (Ein == 1 & & jag! = 0)
28 GS = 1' b1;
29 annat
30 GS = 1' b0;
31 slutet
Skapa en XDC fil och karta:
-I [3:0] till SW3, SW2, SW1, SW0
-Ein till SW7
-Y [1:0] till LED 1-0
-Eout till LED 7
-GS till LED 6