Paso 3: Formas de codificar el Mux
La primera forma de comportamiento del código un mux es utilizar el "?:" operador de selección. Este método es más análogo al if instrucción. La manera de que leer es, asignar Y a I0 si la declaración en el paréntesis es verdadera, otra hacer las cosas después de los dos puntos y así sucesivamente.
¿1 asignar Y = (Sel == 2' d0)? I0: (
¿2 (Sel == 2' d1)? I1:)
¿3 (Sel == 2' d2)? I2: I3
4)
5);
La segunda forma para codificar un mux es mediante el uso de un bloque siempre junto con una instrucción "if". Sin embargo, y se asigna en un bloque de siempre, Y debe ser declarada como tipo REG.
1 reg [1:0] Y;
2
3 siempre @ (Sel, I0, I1, I2, I3)
4 comenzar
5 si (Sel == 2' d0) 6 Y = I0;
7 si otro (Sel == 2' d1)
8 Y = I1;
9 Si otro (Sel == 2' d2)
10 Y = I2;
12 mas 11 Y = I3;
13 final
La tercera forma de código de un mux es mediante un bloque siempre junto con una declaración de «caso».
1 reg [1:0] Y;
2
3 siempre @ (Sel, I0, I1, I2, I3)
4 comenzar
caso 5 (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;
por defecto 14: 15 Y = 2' d0;
endcase 16
final 17
Por último, crear un archivo de XDC y mapa los siguientes:
-I0 [0] a SW0, I0 [1] a SW1
-I1 [0] a SW2, I1 [1] a SW3
-I2 [0] a la SW4, I2 [1] a SW5
-I3 [1] a SW6, I3 [2] a SW7
-Sel [0] a BTN0, Sel [1] a BTN1
-Y [0] a LED0, Y [1] para el LED 1