Ejercicio: Detector de secuencia (1) Se necesita un circuito detector de secuencias que active su salida Z1 cuando se reciba la secuencia 10101, y su salida Z2 cuando se reciba la secuencia 10110. Se considera que las secuencias pueden venir superpuestas. Utilizar flip-flops tipo T. 0 / 00 A “...0” Circuitos Digitales EC1723 A 1 / 00 B E 1 / 10 1 / 00 0 / 00 C “10” 0 / 00 C 0 / 00 1 / 00 D “101” D 1 / 00 E “1010” 0 / 00 0 / 01 X / Z1Z2 Universidad Simón Bolívar Departamento de Electrónica y Circuitos Prof. Juan. C. Regidor B 0 / 00 C 1 / 00 Edo. actual Codificado E 1 / 10 1 / 00 0 / 00 D 1 / 00 0 / 00 0 / 01 X / Z1Z2 Edo. actual Codificado Edo. Futuro, Z1 Z2 X=0 X=1 Transiciones X=0 X=1 A 000 000, 00 001, 00 000 B 001 010, 00 001, 00 0!" 001 C 010 000, 00 011, 00 0"0 01! D 011 100, 00 101, 00 !"" !"1 E 100 000, 00 011, 10 "00 "!! F 101 010, 01 001, 00 "!" "01 Prof. Juan Claudio Regidor 3 Ejercicio: Detector de secuencia (3) 0 / 00 A F “1011” 1 / 00 Ejercicio: Detector de secuencia (2) 1 / 00 F Universidad Simón Bolívar Prof. Juan Claudio Regidor 0 / 00 B “1” Edo. Futuro, Z1 Z2 X=0 X=1 Transiciones X=0 X=1 A 000 000, 00 001, 00 000 B 001 010, 00 001, 00 0!" 00! 001 C 010 000, 00 011, 00 0"0 01! D 011 100, 00 101, 00 !"" !"1 E 100 000, 00 011, 10 "00 "!! F 101 010, 01 001, 00 "!" "01 F 1 / 00 00! Universidad Simón Bolívar T2 = Q1·Q0 + Q2 4 Prof. Juan Claudio Regidor T1 = X'·Q0 + X·Q2·Q0' + X'·Q1 + Q1·Q0 T0 = X·Q0' + X'·Q0 = X#Q0 Universidad Simón Bolívar 5 Ejercicio: Detector de secuencia (4) Edo. actual Codificado Edo. Futuro, Z1 Z2 X=0 X=1 Inicio Transiciones X=0 X=1 A 000 000, 00 001, 00 000 B 001 010, 00 001, 00 0!" 001 C 010 000, 00 011, 00 0"0 01! D 011 100, 00 101, 00 !"" !"1 E 100 000, 00 011, 10 "00 "!! F 101 010, 01 001, 00 "!" "01 El estado inicial suele asignarse de tal modo que todos los flip-flops estén en cero o en uno, y se usan las entradas de Clear o Preset para iniciar el circuito. 00! Vcc Vcc Pr D Pr Q D Q Vcc C Q' C Clr Q' Clr INICIO Z1 = X·Q2·Q0' Z2 = X'·Q2·Q0 Universidad Simón Bolívar Prof. Juan Claudio Regidor Universidad Simón Bolívar Prof. Juan Claudio Regidor Diseño con un flip-flop por estado (one-hot) 7 Diseño con un flip-flop por estado La idea es usar un flip-flop tipo D para representar cada estado de la máquina. El flip-flop que esté en uno corresponde al estado actual. El diseño del circuito es una copia directa del diagrama de estados: X=0, S=0 X=1, S=0 X=0, S=0 X' Bifurcación: X=0 Ei Di Qi A Qi' X Di DA Qi QA D X=1, S=1 X' DB X' C C Universidad Simón Bolívar X=0, S=0 C X=1, S=0 Confluencia: Ei X=1, S=0 B X X=1 C Prof. Juan Claudio Regidor X=0, S=0 QB X C X X' DC QC DD X' X C QD C Qi' 8 Prof. Juan Claudio Regidor Universidad Simón Bolívar 9 Diseño con un flip-flop por estado Diseño con un flip-flop por estado: Inicio Las ecuaciones de excitación de cada flip-flop pueden leerse de las “flechas” que llegan a cada estado: X=0, S=0 X=1, S=0 A X=0, S=0 X=0, S=0 X=1, S=0 B C X=0, S=0 La inicialización puede hacerse asíncronamente mediante las entradas de preset y clear, o de manera síncrona con compuertas adicionales a la entrada de los flip-flops. D X=1, S=1 X=1, S=0 DA = X·QA + X·QC! ! ! DB = Xʼ·QA + Xʼ·QB + Xʼ·QD DC = X·QB + X·QD! ! ! DD = Xʼ·QC ! ! Prof. Juan Claudio Regidor El flip-flop que represente al estado inicial debe cargarse con un “uno” y todos los demás deben ponerse en “cero”. ! S = X·QD Universidad Simón Bolívar 10 Diseño con un flip-flop por estado Universidad Simón Bolívar Prof. Juan Claudio Regidor 11 Diseño con un flip-flop por estado: Ejemplo 0 / 00 Ventajas: Simplicidad y rapidez del diseño. A 1 / 00 B 0 / 00 C 0 / 00 D 0 / 00 0 / 01 X / Z1Z2 Especialmente útil cuando hay muchas entradas que no están activas todo el tiempo. F 1 / 00 Desventajas: Cantidad excesiva de flip-flops. DA = Xʼ·QA + Xʼ·QC + Xʼ·QE DE = X´·QD DB = X·QA + X·QB + X·QF DF = X·QD DC = Xʼ·QB + Xʼ·QF! Z1 = X·QE DD = X·QC + X·QE Prof. Juan Claudio Regidor 1 / 00 1 / 00 Es más fácil depurar el circuito. Universidad Simón Bolívar E 1 / 10 1 / 00 0 / 00 12 Prof. Juan Claudio Regidor Z2 = Xʼ·QF Universidad Simón Bolívar 13 Ejercicio con un flip-flop por estado (1) Ejercicio con un flip-flop por estado (2) Y' / 00 Implementar el diagrama de estados de la figura mediante el método de un flip-flop por estado. Escribir las ecuaciones de entrada de los flip-flops tipo D y las expresiones para las salidas Z1 y Z2. Entradas / Z1 Z2 Y / 10 S' / 00 X.Y / 00 A S / 00 B Y' / 00 Y / 10 X.Y / 00 A S / 00 B Y' / 00 C X / 00 X'.Y' / 00 D X.Z' / 00 Prof. Juan Claudio Regidor G Z / 00 X.Z' / 00 F X'.Y / 10 Z' / 00 Z' / 01 Z / 01 H 14 X.Y' / 00 F X'.Y / 10 Z' / 00 H Z / 01 Z / 00 DE = QF·Z + QD·X·Y Z1 = QE·Y + QD·X'·Y DB = QH·Z + QG·X'·Z' + QB·Y + QA·S DF = QD·X·Y' Z2 = QH·Z' + QG·Z DC = QH·Z' + QB·Y' DG = QC·X' Prof. Juan Claudio Regidor DH = QG·Z + QF·Z' + QD·X'·Y Universidad Simón Bolívar 15 Control de Semáforo (2) La figura muestra el esquema de una intersección de dos calles, una principal y otra secundaria. Hay dos detectores de vehículos, Dp y Ds, los cuales indican la presencia de un automóvil esperando en la vía principal o en la secundaria, respectivamente. Hay también pulsadores que pueden ser operados por un peatón que desee cruzar la calle principal (los pulsadores Pp) o la secundaria (los Ps); los pulsadores correspondientes se conectan a compuertas OR, de modo que cada grupo se puede tratar como una señal única. Universidad Simón Bolívar G Z / 00 DA = QG·X·Z' + QE·Y' + QA·S' DD = QE·Y + QD·X'·Y' + QC·X Z / 00 Universidad Simón Bolívar Control de Semáforo (1) Prof. Juan Claudio Regidor D Z' / 01 X'.Z' / 00 X.Y' / 00 X' / 00 X'.Z' / 00 X / 00 X' / 00 E Y / 00 S' / 00 C X'.Y' / 00 Y' / 00 Entradas / Z1 Z2 E Y / 00 Especificaciones: La luz verde principal Vp se debe mantener encendida por un mínimo de 30 segundos y continuar encendida hasta que el detector Ds señale la presencia de un automóvil en la vía secundaria o hasta que un peatón accione el pulsador Pp. Se enciende simultáneamente la luz roja secundaria, Rs. La luz amarilla principal Ap se enciende durante 5 segundos, manteniéndose encendida Rs. 16 Prof. Juan Claudio Regidor Universidad Simón Bolívar 17 Control de Semáforo (3) Control de Semáforo (4) Especificaciones (cont.): Se dispone de dos temporizadores (monoestables no redisparables, activados por frente de subida), uno de 5 segundos (entrada I5, salida T5) y otro de 15 segundos (entrada I15, salida T15) La luz verde secundaria Vs se debe mantener encendida por un mínimo de 15 segundos y continuar encendida hasta que el detector Dp señale la presencia de un automóvil en la vía principal o hasta que un peatón accione el pulsador Ps. Se enciende simultáneamente la luz roja principal, Rp. La luz amarilla secundaria As se enciende durante 5 segundos, manteniéndose encendida Rp. Se repite el ciclo indefinidamente. Universidad Simón Bolívar Prof. Juan Claudio Regidor 18 Control de Semáforo (5) T15 A T15 T15' / I15 B T15' C Ds + Pp / I5 T15 D A T15 T15' / I15 B T5 (Ds + Pp)' T15' C Ds + Pp / I5 T5' / I15 DA = QA·T15 + QG·T5ʼ D T5' / I15 T5' / I15 G T5' / I15 Dp + Ps / I5 F T15' 19 Control de Semáforo (6) T5 (Ds + Pp)' Universidad Simón Bolívar Prof. Juan Claudio Regidor E G DB = QA·T15ʼ + QB·T15 DC = QB·T15ʼ + QC·(Ds + Pp)ʼ DD = QD·T5 + QC·(Ds + Pp) Dp + Ps / I5 F T15' E DE = QE·T15 + QD·T5ʼ DF = QE·T15ʼ + QF·(Dp + Ps)ʼ T5 (Dp + Ps)' T15 T5 Estado A B C D E F G Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp Prof. Juan Claudio Regidor Universidad Simón Bolívar (Dp + Ps)' T15 DG = QG·T5 + QF·(Dp+ Ps) Estado A B C D E F G Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp 21 Prof. Juan Claudio Regidor Universidad Simón Bolívar 22 wloop: if( suma < numero ) { impar += DOS; suma += impar; raiz ++; Control de Semáforo (7) if( suma < 0 ) return raiz ; goto wloop; T15 T15 T5 (Ds + Pp)' Camino de Datos (Data Path) // Puede ser un 'Halt' } Vp = QA return + QB +raiz QC ; // Puede ser un 'Halt' } A T15' / I15 B T15' Ds + Pp / I5 C Ap = QD D T5' / I15 T5' / I15 G Rp = QE + QF + QG Vs = QE + QF Control de la ULA S2S1S0 Operación 0 0 0 A+B 0 0 1 A–B 0 1 0 A+1 0 1 1 A–1 1 0 0 A AND B 1 0 1 A OR B 1 1 0 NOT A 1 1 1 A As = QG Dp + Ps / I5 F T15' E Rs = QA + QB + QC + QD I5=QC·(Ds+Pp)+QF·(Dp+ Ps) T5 (Dp + Ps)' T15 I15=QA·T15ʼ+QD·T5ʼ+QG·T5ʼ Estado A B C D E F G Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp Prof. Juan Claudio Regidor Banco de registros Universidad Simón Bolívar Z: Salida, vale 1 si el resultado de la operación es 0 N: Salida, vale 1 si el resultado es negativo 23 wloop: Camino de Datos (Data Path) Los registros (Banco, Salida, Flags) se cargan con el frente de subida del reloj. El período de éste debe ser lo bastante largo como para permitir que se completen todas las operaciones. if( del suma < numero ) { Control Banco de Registros impar += DOS; Señal sumaEnable += impar; REA Read A raiz ++; REB Read Enable B WE Write Enable< 0 ) if( suma DirA[2..0] Dirección lectura A (3;bits)// Puede ser un 'Halt' return raiz goto wloop; DirB[2..0] Dirección lectura B (3 bits) } DirW[2..0] Dirección escritura (3 bits) Camino de Datos Banco de registros return raiz ; // Puede ser un 'Halt' } Figura 2 JCR/MPO/LGU Edo. Adw(2:0) AdA(2:0) AdB(2:0) WE Sm S(2:0) LF OE 0 000XXXXXX1011100 1 0010010011100100 2 001001XXX1101000 3 010001XXX1101000 4 0110010101100000 5 1000110101100000 6 1111001001100000 7 XXX0001110100110 8 1100000001100000 9 110110XXX1101001 Prof. Juan Claudio 10 Regidor 1 1 0 1 1 0 X X XUniversidad 1 1 0 1 1Simón 0 1 Bolívar Control de la ULA S2S1S0 Operación 0 0 0 A+B 0 0 1 A–B 0 1 0 A+1 0 1 1 A–1 1 0 0 A AND B 1 0 1 A OR B 1 1 0 NOT A 1 1 1 A Z: Salida, vale 1 si el resultado de la 26 operación es 0 N: Salida, vale 1 si el resultado es negativo Control del Banco de Registros Camino de Datos Camino de Datos: Ejercicio // Puede ser un 'Halt' Banco de registros Dibujar un diagrama de estados para ejecutar la operación: // Puede ser un 'Halt' El siguiente algoritmo, escrito en lenguaje “C”, produce la parte entera de la raíz cuadrada de un número. Hacer un diagrama de estados que lo materialice, de la manera más fiel posible, sobre el “camino de datos” mostrado antes. El “NUMERO” se supone cargado previamente en el registro R7. Salida = Entrada*R4+R3; Control de la ULA S2S1S0 Operación 0 0 0 A+B 0 0 1 A–B 0 1 0 A+1 0 1 1 A–1 1 0 0 A AND B 1 0 1 A OR B 1 1 0 NOT A 1 1 1 A Z: Salida, vale 1 si el resultado de la operación es 0 N: Salida, vale 1 si el resultado es negativo Prof. Juan Claudio Regidor Control del Banco de Registros Señal REA Read Enable A REB Read Enable B WE Write Enable DirA[2..0] Dirección lectura A (3 bits) DirB[2..0] Dirección lectura B (3 bits) DirW[2..0] Dirección escritura (3 bits) Camino de Datos: Ejercicio #define NUMERO 38 // Número está cargado en el registro R7 En cierta fábrica, una banda trasportadora que corre a 1 m/s lleva dos tipos de cajas: las tipo "A" de 50 cm. de longitud, y las tipo "B", de 80 cm. Usando el camino de datos anterior, se desea diseñar un sistema que realice las siguientes operaciones: suma = raiz = 0; impar = suma + 1; DOS = impar + 1; wloop: if( suma < numero ) { impar += DOS; suma += impar; raiz ++; if( suma < 0 ) return raiz ; goto wloop; } return raiz ; } Prof. Juan Claudio Regidor 28 Camino de Datos: Ejercicio int Sqrt( int numero ) { int suma, raiz, impar, DOS; Figura 2 Universidad Simón Bolívar Cada vez que haya pasado una caja se debe activar la salida del camino de datos, con el valor 0 si pasó una caja "A" y 1 si fue una tipo "B". // Puede ser un 'Halt' Se desea llevar la cuenta del número total de cajas (en R5), número de cajas tipo "A" (en R6) y número de cajas tipo "B" (en R7). // Puede ser un 'Halt' Universidad Simón Bolívar 29 Prof. Juan Claudio Regidor Universidad Simón Bolívar 30 Camino de Datos: Ejercicio ROM Memoria de sólo lectura (Read Only Memory) ROM: programable en la fabricación La cinta tiene un sensor óptico que detecta la interrupción de un rayo de luz al paso de una caja. La salida de este sensor se lleva a la entrada del camino de datos (bit 0). El reloj del controlador tiene un período de 0,01 s. Escriba un diagrama de estados que cumpla con las condiciones pedidas. PROM: programable una vez por el usuario EPROM: borrable con luz ultravioleta EEPROM o E2PROM: borrable eléctricamente; el ciclo de borrado es mucho más lento que el de escritura Flash memory: E2PROM borrable y programable por bloques Universidad Simón Bolívar Prof. Juan Claudio Regidor 31 Control microprogramado Universidad Simón Bolívar Prof. Juan Claudio Regidor Control microprogramado 2 Y S' Clk Clr Contador Programable Lectura ROM Clr Control Disponible ROM Condición verdadera Registro Edo. Act. Condición Prof. Juan Claudio Regidor Inc. Señales de control Universidad Simón Bolívar Condición falsa 1 S X Y' Z D0 0 D7 Y' 1 2 X 3 X' Z' CE Load MUX Salto S Clk CE Load Clk 0 Contador Programable Clk ... . 32 Z 4 MUX 8:1 Condición 3 Salto 3 Salto 33 Prof. Juan Claudio Regidor Universidad Simón Bolívar 34 Control microprogramado 2 Y S' Clr 0 Contador Programable Y' S 1 0 D7 5 3 3 Salto Prof. Juan Claudio Regidor Z 4 Edo. Actual Condición MUX 8:1 Condición 3 X' CE Load D0 X Z' Clk 1 S X Y' Z 2 Salto 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 x x x 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 Universidad Simón Bolívar 34