3-Bloques Básicos Secuenciales 3. Bloques básicos 3.2 Ejemplos de diseños 3: Bloques Básicos
Bloques Básicos Secuenciales Bloques básicos secuenciales Contadores Registros de desplazamiento (o corrimiento) Registros de almacenamiento 3: Bloques Básicos 2
Bloques Básicos Secuenciales Contadores Componente muy común, en sus diagramas no suelen anotarse las entradas ya que el cambio de estados se produce con el canto del reloj. Asignación de estados se elige de forma que el estado determine la cuenta; debido a esto son máquinas de Moore. Se puede implementar con JK o D FFs. Hay contadores binarios (,,,...), BCD (- ), Gray (distancia uno). También pueden ser de subida o de bajada. Pueden ser sincrónicos (todos los FFs cambian simultáneamente con el reloj) o no sincrónicos. 3: Bloques Básicos 3
Ejemplo: Diseño de contador de subida Contadores Proceden a través de secuencia de estados bien definida en respuesta a enable. Contador de subida de 3 bits:,,,,,,,,,... 3-bit up-counter Diagrama de estados 3: Bloques Básicos 4
Ejemplo: Contador de subida (cont) Diagrama de estados a tabla de transiciones 3-bit up-counter present state next state 2 2 3 3 4 4 5 5 6 6 7 7 3: Bloques Básicos 5
Ejemplo: Contador de subida (cont) Un flip-flop para cada bit de estado Lógica combinacional basada en codificación Como es D-FF: N=C+, N2=C2+, N3=C3+ C3 C2 C C3+C2+C+ código en Verilog para mostrar que la función es un input a un D-FF N <= C N2 <= CC2 + C C2 <= C xor C2 N3 <= CC2C3 + C C3 + C2 C3 <= (CC2)C3 + (C + C2 )C3 <= (CC2)C3 + (CC2) C3 <= (CC2) xor C3 N3 C3 N2 C3 N C3 C C C C2 C2 C2 3: Bloques Básicos 6
Ejemplo: Contador de subida (cont) Implementación usando 3 D flip-flops para tener estado lógica para calcular próximo estado reloj controla cuando la memoria de los flip-flops cambia hay que esperar para que la lógica calcule nuevo valor no hay que esperar mucho para no tener velocidad muy OUT OUT2 OUT3 lenta CLK D Q D Q D Q "" 3: Bloques Básicos 7
Actividad Implementar un contador de subida de 3 bits (,,,...,,) usando FFs J-K y método analítico. Q3 Q2 Q Q3+ Q2+ Q+ Usando mapas de Karnaugh Para FFs J-K: Qn+= JnQn + Kn Qn Q+ = Q Q2+ = QQ2 + Q Q2 Q3+ = QQ2Q3 + Q Q3 + Q2 Q3 Poniendo en formato para J-K FFs Q+ = ()Q + () Q Q2+ = (Q)Q2 + (Q) Q2 Q3+ = (QQ2)Q3 + (Q + Q2 )Q3 J = K = J2 = Q K2 = Q J3 = (QQ2) K3 = (Q + Q2 ) Comparando coeficientes se obtiene finalmente 3: Bloques Básicos 8
Ejemplo: Contador más complejo Contador Complejo repite 5 estados en secuencia secuencia no es una representación numérica binaria Paso : hacer diagrama de transición de estados contar secuencia:,,,, Paso 2: hacer tabla de transición de estados Present State Next State C B A C+ B+ A+ notar condiciones don't care por los estados no usados 3: Bloques Básicos 9
Ejemplo: Contador más complejo (cont) Paso 3: mapas Karnaugh para próximas funciones C+ C B+ C A+ C X X X A X X A X X A X X B B B C+ <= A B+ <= B + A C A+ <= BC 3: Bloques Básicos
Bloques Básicos Secuenciales Registros de Desplazamiento (o Corrimiento) Una serie de FFs agrupados con reloj y señales de control común. Desplaza la información de una celda (FF) hacia la adyacente dentro del registro en respuesta al reloj. Puede ser un corrimiento a la izquierda o derecha. Si el contenido representa números con signo debe considerar la extensión de este. Típicamente se utilizan en operaciones aritméticas operaciones lógicas conversión serie paralelo generador de secuencias líneas de retardo reconocedor de secuencias generadores de códigos de chequeo (CRC) generadores pseudo aleatorios 3: Bloques Básicos
Ejemplo: Registro de corrimiento (shift register) Shift register de 3 bits input mostrado en arcos de transiciones valores de output mostrado en nodo de estado IN CLK OUT OUT2 OUT3 D Q D Q D Q 3: Bloques Básicos 2
Ejemplo: Registro de corrimiento (cont) Input determina próximo estado N <= In N2 <= C N3 <= C2 IN CLK In C C2 C3 N N2 N3 OUT OUT2 OUT3 D Q D Q D Q 3: Bloques Básicos 3
Bloques Básicos Secuenciales Registros de Almacenamiento Una serie de FFs agrupados con reloj y señales de control común. El registro captura los inputs en las líneas de entrada en el canto del reloj y los mantiene en las salidas hasta el próximo canto. Puede tener una habilitación de la escritura (write enable) 3: Bloques Básicos 4
Registro de almacenamiento Colección de flip-flops con control y lógica similar valores almacenados de alguna forma están relacionados (ej: forman un valor binario de cuatro bits un nibble) comparten reloj, reset y set lógica similar en cada etapa Ejemplo: registro de cuatro bits con D-FF y líneas de Set/Reset "" CLK OUT OUT2 OUT3 OUT4 R S R S R S D Q D Q D Q D Q IN IN2 IN3 IN4 R S 3: Bloques Básicos 5
3-Bloques Básicos Secuenciales 3. Bloques básicos 3.2 Ejemplos de diseños 3: Bloques Básicos 6
Ejemplo: Contador de 4 bits Secuencia fija de patrones en este caso:,,, uno de los patrones es estado inicial (al cargarlo o usando set/reset) OUT OUT2 OUT3 OUT4 IN D Q D Q D Q D Q CLK 3: Bloques Básicos 7
Contador Binario Lógica entre registros XOR deciden cuando el bit debería cambiar siempre para primer bit, solo cuando primer bit es verdad para el segundo etc... output :,,,,,,,... OUT OUT2 OUT3 OUT4 D Q D Q D Q D Q CLK "" 3: Bloques Básicos 8
Contador binario de cuatro bits sincrónico Componente estandard en muchas aplicaciones FF con activación en canto de subida, con carga y clear sincrónicos con el reloj carga de datos paralelo desde D, C, B, A enable: tiene que estar alta para contar RCO: ripple-carry se usa para cascadear contadores alto cuando contador en estado mas alto () implementa usando una compuerta AND (2) RCO goes high (3) High order 4-bits are incremented EN D C B A LOAD CLK CLR RCO QD QC QB QA () Low order 4-bits = 3: Bloques Básicos 9
Contadores con offset (punto de partida) Carga de offset counters sincrónico e.g.,,,,,,,,,,,... "" "" "" "" "" EN D C B A RCO QD QC QB QA LOAD CLK "" CLR Término comparador para valor de término e.g.,,,,...,,, "" EN RCO Combinaciones (valor de comienzo y término) "" "" "" "" D C B A LOAD QD QC QB QA CLK CLR 3: Bloques Básicos 2
Registros de corrimiento (shift register) Mantienen muestreo del input almacena valor de los últimos 4 inputs en secuencia Ejemplo: 4-bit shift register OUT OUT2 OUT3 OUT4 IN D Q D Q D Q D Q CLK 3: Bloques Básicos 2
Registro de corrimiento universal Tiene varias funciones: inputs paralelo o serial outputs paralelo o serial permite corrimiento a la izquierda o derecha nuevos valores para el corrimiento entran de izquierda a derecha output left_in left_out clear s s input right_out right_in clock si clear =, contenidos y outputs del registro = s y s determinan la función: s s función hold state shift right shift left load new input 3: Bloques Básicos 22
Diseño del registro de corrimiento universal Considerando uno de los cuatro FFs: valor nuevo en nuevo ciclo del reloj: clears s new value output output value of FF to left (shift right) output value of FF to right (shift left) input celda de un FF to N-th cell Q D to N+th cell CLK 2 3 CLEAR s and s control mux Q[N-] (left) Q[N+] Input[N] (right) 3: Bloques Básicos 23
Aplicación de registro de corrimiento Conversión paralela a serial para transmisión serial parallel outputs (8 bits) parallel inputs (8 bits) serial transmission ( bit) 3: Bloques Básicos 24
Reconocedor de patrones Función combinacional de muestreo de inputs en este caso, reconocer el patrón en la señal de input IN OUT OUT OUT2 OUT3 OUT4 IN D Q D Q D Q D Q CLK 3: Bloques Básicos 25