Schritt 7: Entwerfen eines Priority-Encoders
In diesem Abschnitt wollen wir einen 4-Eingang Priorität Encoder zu entwerfen. Vier on-Board-Schalter werden als Eingabe verwendet werden. Ein weiterer Schiebeschalter fungiert als "Enable" signal. Zwei LEDs zeigen den codierten Wert der Eingänge und ein weiterer zwei LEDs wirken als die "GS" und "Eout"-Signal.
Erstellen Sie ein Projekt in Xilinx Vivado Ausrichtung auf das FPGA-Board, die, das du, das wie bei früheren Projekten verwendest.
Erstellen Sie ein Verilog Modul aufgerufen Encoder mit Eingängen I, Ein und Ausgänge Eout "," GS "und" Y wie folgt:
1 Modul decoder_3_8)
2 Eingang [3:0] I,
3 geben Sie Ein,
4 Ausgang [1:0] Y,
5 Ausgang GS,
6 Ausgabe Eout
(7);
Der effizienteste Weg zu beschreiben, das Verhalten der Encoder eine Priorität ist, benutzen, wenn-Anweisung in eine immer blockieren. Wie wir hier drei Ausgänge haben, werden wir die Verhaltensstörungen Beschreibung code, für diese drei Ausgaben in drei immer blockiert.
1 Reg [1:0] Y;
2 Reg GS;
3 Reg Eout;
4
5 immer @ (I, Ein)
6 beginnen
7 if(Ein == 1)
8 Y = (ICH [3] == 1)? 2' d3: ()
9 (ich [2] == 1)? 2' d2: ()
10 (ich [1] == 1)? 2' d1: 2' d0
11)
(12);
13 andere
14 Y = 2' d0;
15 Ende
16
17 immer @ (I, Ein)
18 beginnen
19 If (Ein == 1 & & ich == 0)
20 Eout = 1' b1;
21 andere
22 Eout = 1' b0;
23 Ende
24
25 immer @ (I, Ein)
26 beginnen
27 If (Ein == 1 & & ich! = 0)
28 GS = 1' b1;
29 andere
30 GS = 1' b0;
31 Ende
Erstellen Sie eine XDC-Datei und eine Karte:
-I [3:0] SW0, SW1, SW2, SW3
-Ein zu SW7
-Y [1:0] LED 1-0
-Eout LED 7
-GS LED 6