Todos los ejercicios
Difícil
Completa el hueco
5 pruebas
Desplazamiento ALU a la izquierda — completa el hueco
Un barrel shifter está casi terminado. La entidad ya declara
la entrada de 8 bits a, la cantidad de desplazamiento de 3 bits
sh, y la salida y. El evaluador ya ha colocado el
process(a, sh) que envuelve tu código.
Tu tarea es asignar a y el valor de a desplazado a la
izquierda por sh posiciones, rellenando con ceros por la
derecha.
Especificación
numeric_stdya está importado.- Convierte
aaunsigned, la cantidad con
to_integer(unsigned(sh)), y usashift_left(...). - Convierte el resultado con
std_logic_vector(...). - Los bits que pasan del MSB se descartan; los LSB quedan a
0.
Pista
Una sola línea basta:
y <= std_logic_vector(shift_left(unsigned(a), to_integer(unsigned(sh))));
Dónde escribir
Sólo las líneas entre -- BEGIN_EDIT y -- END_EDIT se evalúan.
Caso de prueba visible
Desplaza 0x01 con sh = 0..7 — observa el 1 caminando
| Puerto | Tiempo | Valor |
|---|---|---|
a |
0 ns | 00000001 |
sh |
0 ns | 000 |
sh |
200 ns | 001 |
sh |
400 ns | 010 |
sh |
600 ns | 011 |
sh |
800 ns | 100 |
sh |
1000 ns | 101 |
sh |
1200 ns | 110 |
sh |
1400 ns | 111 |
4 casos de prueba ocultos — resuélvelos para revelarlos.