-
Notifications
You must be signed in to change notification settings - Fork 202
Capítulo 10: Registro de desplazamiento
Ejemplos de este capítulo en github
Los registros de desplazamiento almacenan un valor y nos pemiten desplazarlo. Son extremadamente útiles. Se utilizan para convertir la información de paralelo a serie (y vice-versa) para usar en las comunicaciones síncronas. Las comunicaciones a través de SPI, I2C, etc, se implementan con estos registros. También nos permiten realizar las operaciones de multiplicar por 2 y dividir entre 2 para número enteros.
En este capítulo los utilizaremos para generar una secuencia de 4 estados en los leds de la placa iCEstick, moviendo las luces en sentido horario
El registro de desplazamiento que usaremos es como el siguiente:
La salida del registro es de N bits (en nuestro ejemplo usaremos un registro de 4 bits). Tiene una entrada en paralelo de N bits, que nos permite cargar en el registro con un valor nuevo. La señal load_shift nos permite determinar el modo de funcionamiento: cuando está a 0 se realiza la carga de un valor nuevo al llegar un flanco de subida de reloj. Cuando está a 1 se realiza un desplazamiento hacia la izquierda en el flanco de subida del reloj.
En este desplazamiento el bit más significativo se pierde, y el nuevo se lee de la entrada serin (serial input). Si tenemos almacenado el valor inicial 1001, la señal load_shift está a 1, serin está a 0 y llega un flanco de subida de reloj, obtendremos el valor: 0010. En el siguiente flanco (si serin sigue a 0) obtendremos 0100, luego 1000 y luego 0000.
Como ejemplo usaremos un registro de desplazamiento de 4 bits para rotar una secuencia de bits y mostrarlos por los 4 leds de la placa iCEStick. La secuencia obtenida por los leds dependerá del valor inicial cargado en el registro.
El diagrama de bloques del componente shift4 es:
- Ej1
- Ej2
TODO
0 You are leaving the privative sector (EN)
1 ¡Hola mundo! (EN) (RU)
2 De un bit a datos (EN)
3 Puerta NOT (EN)
4 Contador de 26 bits (EN)
5 Prescaler de N bits (EN)
6 Múltiples prescalers (EN)
7 Contador de 4 bits con prescaler (EN)
8 Registro de 4 bits (EN)
9 Inicializador (EN)
10 Registro de desplazamiento (EN)
11 Multiplexor de 2 a 1 (EN)
12 Multiplexor de M a 1 (EN)
13 Inicializando registros (EN)
14 Registro de N bits con reset síncrono
15 Divisor de frecuencias
16 Contador de segundos
17 Generando tonos audibles
18 Tocando notas
19 Secuenciando notas
20 Comunicaciones serie asíncronas
21 Baudios y transmisión
22 Reglas de diseño síncrono
23 Controladores y autómatas finitos
24 Unidad de transmisión serie asíncrona
25 Unidad de recepción serie asíncrona
26 Memoria ROM
27 Memoria ROM genérica
28 Memoria RAM
29 Puertas triestado
30 Hacia el microprocesador y más allá