Stap 3: Manieren om te coderen de Mux
De eerste manier om een mux gedragsgestoorde code is het gebruik van de "?:" exploitant van de selectie. Deze methode komt meest overeen met de if statement. De manier waarop die ik gelezen dat het is, Y aan I0 toewijzen als de instructie in het haakje klopt, anders doen het spul na de dubbele punt, enzovoort.
1 toewijzen Y = (Sel == 2' d0)? I0:)
2 (Sel == 2' d1)? I1:)
3 (Sel == 2' d2)? I2: I3
4)
5);
De tweede manier om een mux code is met behulp van een altijd blokkeren samen met een "if" statement. Nochtans, als Y is toegewezen een altijd blokkeren, Y dient te worden verklaard zoals Typ reg.
1 reg [1:0] Y;
2
3 altijd @ (Sel I0, I1, I2, I3)
4 beginnen
5 als (Sel == 2' d0) 6 Y = I0;
7 anders als (Sel == 2' d1)
8 Y = I1;
9 anders als (Sel == 2' d2)
10 Y = I2;
11 anders 12 Y = I3;
13 einde
De derde manier om de code van een mux is met behulp van een altijd blokkeren samen met een "case"-instructie.
1 reg [1:0] Y;
2
3 altijd @ (Sel I0, I1, I2, I3)
4 beginnen
5 geval (Sel)
6 2' d0:
7 Y = I0;
8 2' d1:
9 Y = I1;
10 2' d2:
11 Y = I2;
12 2' d3:
13 Y = I3;
14 standaard: 15 Y = 2' d0;
16 endcase
17 eind
Tot slot, een XDC-bestand maken en de volgende kaart:
-I0 [0] aan SW0, I0 [1] naar SW1
-I1 [0] aan SW2, I1 [1] naar SW3
-I2 [0] aan SW4, I2 [1] tot SW5
-[1] van de I3 aan SW6, I3 [2] naar SW7
-Sel [0] aan BTN0, Sel [1] te BTN1
-Y [0] naar LED0, LED1 Y [1]