SINCRONOS
Introducción
Los sistemas digitales pueden operar en forma asíncrona o síncrona. En los sistemas
asíncronos, las salidas de los circuitos lógicos pueden cambiar de estado en cualquier
momento en que una o mas de las entradas cambie. En los sistemas síncronos los
tiempos exactos en que alguna salida puede cambiar de estado se determinan por
medio de una señal denominada reloj o clock. Esta señal de reloj consiste en una serie
de pulsos rectangulares o cuadrados como se muestra en la figura.
El ancho del pulso de reloj es el tiempo durante el cual la señal de reloj está en 1.
Hay dos maneras de arreglar esto. Una es la de que el estado cambie una vez que
termine el ciclo de reloj, y otra es la que el cambio ocurra en los flancos de bajada o de
subida del pulso de reloj. Mas adelante se explicará como hacerlo.
En general se llama latch al circuito que sea asíncrono y transparente, y Flip-Flop a los
que sean síncronos y no transparentes.
Un flip flop JK es un refinamiento del flip flop SC, en el que se elimina el estado
indeterminado. Para J=K=1 el estado futuro será igual al estado presente negado: Qn+1
=
TABLA
CARACTERISTICA
S C Qn+1
0 0 Qn
0 1 0
1 0 1
1 1
Flip Flop tipo D
TABLA
CARACTERISTICA
D Qn+1
0 0
1 1
Un flip flop tipo T se obtiene uniendo las dos entradas de un flip flop tipo JK. Si T=0 se
mantendrá el estado, si T=1 el estado futuro será igual al complemento del estado
presente.
TABLA
CARACTERISTICA
T Qn+1
0 Qn
1
Entradas asíncronas
Los Flip-flops contenidos en los circuitos integrados a menudo proveen unas entradas
adicionales para fijar en el estado 1 o en el 0 al FF en cualquier momento de forma
asíncrona, sin importar las condiciones presentes en las otras entradas. Esta entradas
son normalmente llamadas SET o PRESET (para fijar en 1) o CLEAR (para fijar en 0).
Son útiles para colocar los FF en un estado inicial, antes de comenzar con su
funcionamiento de forma síncrona, sin la necesidad de utilizar un pulso de reloj. Por
ejemplo, después de encender un sistema digital, el estado inicial de los FF es
indeterminado. Activando la entrada de clear, se inicializan en cero, y luego se
comienza con el funcionamiento normal.
Diagrama de estados
Describe gráficamente el contador (en este caso), indicando cual es el estado siguiente en
función del estado actual y de las entradas (que no existen para este caso). La figura 4.2
muestra el diagrama de estados del contador. Notar que como no existen entradas, sólo hay
una posible alternativa como estado siguiente dado un estado actual.
Diagrama de estados
Determina el estado siguiente en función del estado actual y de la entrada A. Si A=1, el
contador cuenta ascendentemente y viceversa. Ver la figura 4.5.
Digrama de estados
Asociaremos la salida al estado. Debido a ésto, dentro de cada nodo del diagrama
escribiremos un par (estado/salida). La figura 4.8 presenta un diagrama de estados
adecuado a la especificación del problema.
1999-05-21
2. Determinar los niveles lógicos que estén presentes en las entradas de cada
multivibrador antes de la incidencia del primer pulso del reloj.
2. Determinar los niveles lógicos que estén presentes en las entradas de cada
multivibrador antes de la incidencia del primer pulso del reloj.
2.1 CIRCUITOS
SECUENCIALES
SINCRÓNICOS
(Modalidad de reloj)
El diagrama adjunto
muestra el algoritmo de
diseño y análisis de los circuitos secuenciales sincrónicos en la modalidad de
reloj:
Ejemplo de análisis:
1. Deducir la
función del
circuito adjunto:
La ecuación
de estados,
vista
previamente,
para el MVB J-K
es:
Q+(J, K, Q) =
Q K' + Q'
J.......................
.(I)
Aplicando la
ecuación
anterior a los
MVB 1 y 0 del
circuito, se tiene:
J1 = x y0.........................................................(1)
K1 = x' y'0......................................................(2)
J0 = x..............................................................(3)
K0 = y'1..........................................................(4)
z = y1 y'0 x
..................................................................................................................................
(7)
De las ecuaciones (5), (6) y (7), se obtienen las mascarillas para las tablas de
estados. Para esto se utilizan mapas K:
Tabla de asignación de estados (asignando: 0 0=q0, 0 1=q1, 1 1=q2, 1 0=q3):
Tabla 2 Tabla 3
Tabla 1
Estados Siguientes Transición
Estado Estados
presente siguientes
qv x=0 x=1
q0 q0,0 q1,0
q1 q5,0 q2,0
q2 q3,0 q5,0
q3 q4,1 q5,0
q4 q4,0 q4,0
q5 q5,0 q1,0
2. Si L(q, x) = L(p, x)
donde:
L = función de salida
p, q = estados presentes
x = vector de entrada
entonces: q = p
De la tabla de estados,
se observa que q0 y q5
son equivalentes; por
tanto, si cumplen con esta
regla se puede anular a
cualesquiera de los dos.
En este ejemplo se
eliminará q5,
sustituyéndolo en todos
los casos por q0.
Haciendo lo anterior, se
llega a la tabla (a) y al
diagrama de estados
reducido:
(a)
Tabla de estados
Reducida
qv x=0 x=1
q0 q0,0 q1,0
q1 q0,0 q2,0
q2 q3.0 q0.0
q3 q4,1 q0,1
q4 q4,0 q4,0
m = número de estados = 5
r = número de variables de estado = 2r > m
r = número de multivibradores = 23 > 5
Tablas de
Asignación de Estados
y2 y1 y0 q1v q2v q3v q4v
0 0 0 q0 x x x
0 0 1 q1 q0 x x
0 1 0 q2 q1 q0 x
0 1 1 q3 q2 q1 q0
1 0 0 q4 q3 q2 q1
1 0 1 x q4 q3 q2
1 1 0 x x q4 q3
1 1 1 x x x q4
(b)
En la tabla (b), se observa que en las columnas para x=0 y x=1 hay 4 dígitos,
los cuales corresponden a los estados siguientes de los tres multivibradores y la
salida, o sea: y2+y1+y0+,z. Así, los valores para y2+ corresponden a la columna de
color amarillo, para y1+ la columna en verde, para y0+ la columna color azul y para
z la columna en rojo. Los valores de excitación dependerán del tipo de
multivibrador a usar.
Utilizando multivibradores tipo J-K, cuya tabla de excitación es:
Tabla de
EXCITACIÓN
Q Q+ J K
0 0 0 x
0 1 1 x
1 0 x 1
1 1 x 0
Para obtener los mapas de Karnaugh, se combinan las dos tablas anteriores, en
las siguientes tablas:
x=0
Estado
presente Estado
MB2 MB1 MB0
siguiente z
y2 y1 y0 y2+ y1+ y0+ J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 x 0 x 0 x 0
0 0 1 0 0 0 0 x 0 x x 1 0
0 1 1 0 1 0 0 x x 0 x 1 0
0 1 0 1 1 0 1 x x 0 0 x 1
1 1 0 1 1 0 x 0 x 0 0 x 0
1 1 1 x x x x x x x x x x
1 0 1 x x x x x x x x x x
1 0 0 x x x x x x x x x x
x=1
Estado
presente Estado
MB2 MB1 MB0
siguiente z
y2 y1 y0 y2+ y1+ y0+ J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 x 0 x 1 x 0
0 0 1 0 1 1 0 x 1 x x 0 0
0 1 1 0 0 0 0 x x 1 x 1 0
0 1 0 0 0 0 0 x x 1 0 x 0
1 1 0 1 1 0 x 0 x 0 0 x 0
1 1 1 x x x x x x x x x x
1 0 1 x x x x x x x x x x
1 0 0 x x x x x x x x x x
Obtención de los mapas de Karnaugh para cada una de las entradas de los
multivibradores J-K y la salida z. Para J2, se copia la información en el mapa de la
columnas para x=0 y x=1, sin incluir los ceros, de las tablas anteriores. Lo mismo
se hace para las otras entradas de los multivibradores y la salida z.
El logigrama queda:
Ejemplo 2 de diseño.
Secuencia: 01 10 11 01 10 11
Carta de tiempos:
Diagrama de estados:
Del diagrama de estados se obtiene la tabla de estados:
qv x1 x2 x1 x2 x1 x2 x1 x2
0 0 0 1 1 1 1 0
0
q q0,0 q1,0 q6,0 q6,0
q1 q0,0 q6,0 q6,0 q2,0
q2 q0,0 q6,0 q3,0 q6,0
q3 q0,0 q4,0 q6,0 q6,0
q4 q0,0 q6,0 q6,0 q5,0
q6 q0,0 q6,0 q6,0 q6,0
q5 q0,0 q6,0 q6,1 q6,0
qx qx,x qx,x qx,x qx,x
q0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1
q 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1
q3 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1
q2 0 1 0 0 0 0 1 1 0 1 1 1 1 1 1
q4 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1
q6 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
q5 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1
qx 1 0 0 x x x x x x x x x x x x
Tabla de
EXCITACIÓN
Estado presente Estado siguiente Entrada
Q Q+ D
0 0 0
0 1 1
1 0 0
1 1 1
Mapas de Karnaugh: Se obtienen tres mapas, uno para cada multivibrador; Así
para D2, se toman los valores indicados en la columna verde, considerando los
valores de x1 y x2. Así, para x1=x2=0, los valores corresponden a la primera
columna de mapa K; para x1=0 y x2=1, a los de la segunda columna de mapa y así
sucesivamente. Para D1 se sigue el mismo procedimiento pero tomando los
valores de la columna naranja. Finalmente para D0, se consideran los valores de
la columna azul. Obsérvese que z=1, cuando x1=x2=0 , y2=1 y y1=y0=0.
El logigrama correspondiente es:
EJERCICIOS.
x = 010101101
2. Obtener el diagrama y la tabla de estados para un circuito detector de
secuencia de tal manera que Z=1 en el segundo bit de 2 unos consecutivos. El
circuito debe diseñarse con traslape siempre y cuando se siga la siguiente
secuencia:
x = 01100111110
x = 010100100
x = 00101001010101110
5. En una intersección de
dos calles, una en la
dirección norte-sur (N-S)
y otra en la dirección
este-oeste (E-O). Se
instalan semáforos con
indicaciones de rojo,
ámbar y verde. Diseñar
un circuito mostrando la
secuencia de estados
que recorrerán las luces.
Suponer que el sistema
está controlado por un
reloj cuyo período es de 5
segundos. En cada
dirección se permite
tráfico durante 20
segundos y la luz ámbar dura 20 segundos.
REDUCCIÓN DE TABLAS DE ESTADO
xRy
x (condiciones de entrada)
Estado presente 00 01 11 10
q
0 1 3 2
q1 q3,0
q1,0
q 2,0
q 2,0
)(q1,0) = q3 8(q1,0) = 0 = 00
)(q3,2) = q1 8(q3,2) = 2 = 10
)(q1,3) = q2 8(q1,3) = 0 = 00
)(q2,0) = q3 8(q2,0) = 0 = 00
)(q3,0) = q3 8(q3,0) = 0 = 00
)(q3,1) = q1 8(q3,0) = 1 = 01
)A (q, x1, x1, x1,...., x1) = 8B (p, x1, x1, x1,...., x1)
Estado Entrada
presente x=0 x=1
A C/1 B/0
B C/1 E/0
C B/1 E/0
D D/0 B/1
E E/0 A/1
estado siguiente/salida
(A B C D E) Conjunto universal
x=0 11100
Primero salidas. Formamos subconjuntos, de acuerdo a la tabla anterior
x=1 00011
1ra. PARTICIÓN
(A B C)(D E) Formamos subconjuntos
x=0 C C B D E Analizamos sobre puros estados siguientes. CCB van al mismo
subconjunto con x=0
x=1 B E E B A BEE van a distinto subconjunto con x=1, por lo que debe particionarse
2a. PARTICIÓN
(A)(B C)(D E)
x=0 C B D E DE van al mismo subconjunto con x=0
x=1 E E B A BA van a distinto subconjunto con x=1
3a. PARTICIÓN
(A)(B C)(D)
(E)
x=0 CB
Así queda, ya que no es posible dividir en más subconjuntos
x=1 EE
a b d e a=(A), B=(BC), d=(D) y e=(E)
Estado Entrada x
presente x=0 x=1
a b/1 b/0
b b/1 e/0
d d/0 b/1
e e/0 a/1
TABLA 1
Estado Entrada
presente x=0 x=1
A A/1 E/0
B A/0 E/0
C B/0 F/0
D B/0 F/0
E C/0 G/1
F C/0 G/1
G D/0 H/1
H D/0 H/1
estado siguiente/salida
1ra. PARTICIÓN
(A B C D E F G H) Conjunto universal
x=0 1 0 0 0 0 0 0 0
De acuerdo a salidas
x=1 0 0 0 0 1 1 1 1
2a. PARTICIÓN
(A)(B C D)(E F G H)
x=0 A A B B C C D D
ABB van a distinto subconjunto, por lo que particionamos
x=1 E E F F G G H H
3a. PARTICIÓN
(A)(B)(C D)(E F G
H)
BB CCD
x=0
D
Van a los mismos subconjuntos
FF GGH
x=1
H
a b c d a=(A), b=(B), c=(CD) d=(EFGH)
Estado Entrada x
presente x=0 x=1
a a/1 d/0
b a/0 d/0
c b/0 d/0
d c/0 d/1
EJEMPLO 3. Dada la siguiente tabla, obtener una tabla de estados mínima y
equivalente:
Tabla 1
Estado Entrada
presente x=0 x=1
A E/0 D/0
B A/1 F/0
C C/0 A/1
D B/0 A/0
E D/1 C/0
F C/0 D/1
G H/1 G/1
H C/1 B/1
estado siguiente/salida
1ra. PARTICIÓN
(A D C F B E G H)
x=0 0 0 0 0 1 1 1 1
Arreglamos de acuerdo a salidas iguales
x=1 0 0 1 1 0 0 1 1
(A D)(C F)(B E)(G H)
3a. PARTICIÓN
Estado Entrada
presente x=0 x=1
A A/0 B/0
B A/0 C/0
C A/0 D/0
D A/0 D/1
estado siguiente/salida
1ra. PARTICIÓN
(A B C D) Conjunto universal
x=0 0 0 0 0
De acuerdo a salidas
x=1 0 0 0 1
2a. PARTICIÓN
(A B C)(D)
x=0 A A A A
De acuerdo a estados siguientes
x=1 B C D D
3a. PARTICIÓN
(A B)(C)(D)
x=0 A A A A
De acuerdo a estados siguientes
x=1 B C D D
(A)(B)(C)(D) No es posible simplificarla
EJEMPLO 5. Dada la siguiente tabla, reducirla por el método de particiones:
TABLA A
Estado Entrada
presente x=0 x=1
1 1/0 1/0
2 1/1 6/1
3 4/0 5/0
4 1/1 7/0
5 2/0 3/0
6 4/0 5/0
7 2/0 3/0
estado siguiente/ salida
Estado presente
1 2 3 4 5 6 7 Conjunto universal
x=0 0 1 0 1 0 0 0
De acuerdo a salidas
x=1 0 1 0 0 0 0 0
(1 3 5 6 7) (4) (2)
x=0 0 0 0 0 0 1 1
Primero agrupamos de acuerdo a salidas
x=1 0 0 0 0 0 0 1
1ra. PARTICIÓN
(1 3 5 6 7) (4) (2)
x=0 1 4 2 4 2 1 1
Considerando estados siguientes
x=1 1 5 3 5 3 7 6
2a. PARTICIÓN
Estado Entrada x
presente x=0 x=1
a a/0 a/0
b a/1 d/1
c a/0 e/0
d c/1 e/0
e b/0 d/0
EJERCICIOS.
1. 2.
3.
2. Como únicamente los estados siguientes con salidas idénticas pueden ser
equivalentes, se coloca una cruz en las celdas correspondientes de aquellos
pares de estados cuyas salidas no son iguales para cada entrada.
Si los pares implicados contienen únicamente los mismos estados que lo definen,
o bien, si los estados equivalentes son iguales para una entrada dada, se coloca
el símbolo que indica que estos estados son equivalentes por inspección e
independientes de otros pares implicados.
4. Una vez completada la tabla deben realizarse pasos sucesivos para determinar
si otras celdas deben cruzarse además de las indicadas en el paso 2. Una celda
debe cruzarse si contiene al menos un par implicado definido en otra celda que
haya sido cruzada anteriormente.
Estado x
presente 0 1
A C/1 E/0
B C/1 E/0
C B/1 E/0
D D/0 B/1
E E/0 A/1
estado siguiente/salida
De la tabla de
implicantes, se obtiene la siguiente tabla reducida:
Estado x
presente 0 1
a a/1 b/0
b b/0 a/1
estado siguiente/salida
EJEMPLO 2. Reducir al mínimo la siguiente tabla de estados por el método de
implicantes.
0 1
Estado
presente
A E/0 D/0
B A/1 F/0
C C/0 A/1
D B/0 A/0
E D/1 C/0
F C/0 D/1
G H/1 G/1
H C/1 B/1
ESTADO SIGUIENTE/SALIDA
EJEMPLO 3. Reducir al mínimo la siguiente tabla de estados por el método de
implicantes.
0 1
Estado
presente
A C/1 B/0
B C/1 E/0
C B/1 E/0
D D/0 B/1
E E/0 A/1
ESTADO SIGUIENTE/SALIDA
EJEMPLO 4. Reducir al mínimo la siguiente tabla de estados por el método de
implicantes.
0 1
Estado
presente
A A/1 E/0
B A/0 E/0
C B/0 F/0
D B/0 F/0
E C/0 G/1
F C/0 G/1
G D/0 H/1
H D/0 H/1
ESTADO SIGUIENTE/SALIDA
EJEMPLO 5. Dada la siguiente tabla, reducirla por el método de tablas de
implicación:
qv x=0 x=1
1 2,0 3,0
2 4,0 5,0
3 6,0 7,0
4 8,0 9,0
5 10,0 1,0
6 4,0 12,0
7 10,0 12,0
8 8,0 1,0
9 10,1 1,0
10 4,0 1,0
11 2,0 1,0
12 2,0 1,0
estado siguiente/salida
qv 0 1 2 3
1 3 4 2 4
2 4 4 3 4
3 1 1 3 4
4 1 2 1 4
Pasos eliminados:
Primer paso:
1-9 2-9 3-9 4-9 5-9 6-9 7-9 8-9 9-10 9-11 9-12
Segundo paso: Para este paso, se eliminan todos los que tengan implicados los
de primer paso.
1-4 2-4 3-4 4-5 4-6 4-7 4-8 4-10 4-11 4-12
Tercer paso:
1-2 1-6 1-10 2-3 2-5 2-7 2-8 2-11 3-6 3-10 5-6 5-10 6-7 6-8 6-11 6-12 7-10 8-10 10-11 10-12
Cuarto paso:
11 11-12
10 11-12
9 11-12
8 11-12
7 11-12 7-11 7-12
6 11-12 7-11 7-12 6-10
5 11-12 7-11 7-12 6-10 5-7 5-11 5-12
4 11-12 7-11 7-12 6-10 5-7 5-11 5-12
3 11-12 7-11 7-12 6-10 5-7 5-11 5-12 3-5 3-7 3-11 3-12
2 11-12 7-11 7-12 6-10 5-7 5-11 5-12 3-5 3-7 3-11 3-12 2-6 2-10
1 11-12 7-11 7-12 6-10 5-7 5-11 5-12 3-5 3-7 3-11 3-12 2-6 2-10 1-3 1-5 1-7 1-11 1-12 4 8 9
Diagrama de Merger:
Tabla reducida
qv x=0 x=1
1 2,0 1,0
2 4,0 1,0
4 8,0 9,0
8 8,0 1,0
9 2,1 1,0
estado siguiente/salida
Explicación de circuitos no especificados completamente (diagrama de Merger)
EJEMPLO:
Estado x
presente 0 1
A A/- -/-
B C/- B/0
C D/0 -/-
D -/- B/-
E A/0 C/-
estado siguiente/salida
x x
0 1 0 1
A'=A AC A'B'/
B/0 A' A'/0
BD /1 1
B'=E DA
C/1 B' A'/0 B'/1
C /0
se llena con la primera se llena con la tabla
tabla adjunta
x x
0 1 0 1
A'=AC A'/
AD/0 B/1 A' B'/1
D 0
A'/
B'=B C/1 B/0 B' B'/0
1
A'/
C'=E A/0 C/- C' A'/-
0
x x
0 1 0 1
A'=AC AD/ A',B'
C/1 A' A'/1
E 0 /0
B'=BD C/1 B/0 B' A'/1 B'/0
2 5
L=MÁX {NSMI1 , NSMI2 , NSMI3}
2 2 2
No. de estados del iésimo grupo
del conjunto de incompatibles máximo
L <= K <= U
Ejercicios
Reducir por medio de tablas de implicación, los siguientes problemas:
1. 2.
00 01 10 11 00 01 10 11 00 01 10 11
qv qv
0 1 2 3 0 1 2 3 0 1 2 3
1 6 2 1 1 0 0 0 0 A E,1 C,0 B,1 E,1
2 6 3 1 1 0 0 0 0 B C,0 F,1 E,1 B,0
3 6 9 4 1 0 0 1 0 C B,1 A,0 D,1 F,1
4 5 6 7 8 1 0 1 0 D G,0 F,1 E,1 B,0
5 5 9 7 1 1 0 1 0 E C,0 F,1 D,1 E,0
6 6 6 1 1 0 0 0 0 F C,1 F,1 D,0 H,0
7 5 10 7 1 1 0 1 0 G D,1 A,0 B,1 F,1
8 6 2 1 8 0 0 0 0 H B,1 C,0 E,1 F,1
9 9 9 1 1 0 0 0 0
10 6 11 1 1 0 0 0 0
11 6 9 4 1 0 0 1 0
Asignación de estados
2r - 1 < m < 2r
Asignaciones útiles:
Regla I
Regla II
Las anotaciones del estado siguiente para un renglón dado, deben recibir
asignaciones diferentes.
Regla III
Las asignaciones deben hacerse de tal manera que simplifiquen los mapas de
salida.
Ejemplo:
q0 0 0 0 0,0 0 1,0 0 0 0 x
q1 0 1 0 0,0 1 1,0 0 1 1 x
q2 1 1 0 0,0 1 0,1 1 0 x 1
q3 1 0 1 0,0 1 0,0 1 1 x 0
Donde y1, y0 son los estados presentes y y+1, y+0 son los estados siguientes, para
x=0 y x=1. Combinando las dos tablas previas, se obtienen los valores para los
dos multivibradores J-K para los mapas de Karnaugh, como se muestra en la
siguiente tabla:
x=0 x=1
qv y1 y0
J1 K1 J0 K0 J1 K1 J0 K0
0
q 0 0 0 x 0 x 0 x 1 x
q1 0 1 0 x x 1 1 x x 0
q2 1 1 x 1 x 1 x 0 x 1
q3 1 0 x 0 0 x x 0 0 x
2a. asignación
x=0 x=1
qv y1 y0
y+1y+0,z y+1y+0,z
q0 0 0 0 0,0 1 1,0
q1 0 1 0 0,0 1 0,0
q2 1 1 0 0,0 0 1,1
q3 1 0 1 0,0 1 0,0
Nuevamente, combinando esta tabla con la tabla de excitación del
multivibrador tipo J-K, se tiene:
x=0 x=1
qv y1 y0
J1 K1 J0 K0 J1 K1 J0 K0
0
q 0 0 0 x 0 x 1 x 1 x
q1 0 1 0 x x 1 1 x x 1
q2 1 1 x 1 x 1 x 1 x 0
q3 1 0 x 0 0 x x 0 0 x
3a. asignación
x=0 x=1
qv y1 y0
y+1y+0,z y+1y+0,z
q0 0 0 0 0,0 1 0,0
q1 0 1 0 0,0 1 1,1
q2 1 1 1 1,0 1 1,0
q3 1 0 0 0,0 0 1,0
Nuevamente, combinando esta tabla con la tabla de excitación del
multivibrador tipo J-K, se tiene:
x=0 x=1
qv y1 y0
J1 K1 J0 K0 J1 K1 J0 K0
0
q 0 0 0 x 0 x 1 x 0 x
q1 0 1 0 x x 1 1 x x 0
q2 1 1 x 0 x 0 x 0 x 0
q3 1 0 x 1 0 x x 1 1 x