Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
INTRODUCCIÓN
Existen sistemas secuenciales demasiado complejos pa-ra poder implementarlos con las técnicas vistas hastaahora, por ejemplo, el procesador MIPS posee 32 regis-tros de 32 bits, lo que lleva a un total de 21024 estados.
En este tema veremos nuevas metodologías para imple-mentar algoritmos o computaciones sobre conjuntos dedatos (vectores de n bits). En general constan de ope-raciones combinacionales más sencillas que se realizansecuencialmente.
Ejemplos de dichos algoritmos son un sumador secuen-cial con un único FA o un multiplicador a partir de unsumador paralelo.
Esta metodología es la que se emplea para la implemen-tación de los computadores digitales de propósito gene-ral.
También se utiliza para implementar hardware específi-co para la computacóon de algoritmos concretos, sobretodo en campos tales como el tratamiento de señales,procesamiento de imágenes, etc.
1
CONCEPTOS BÁSICOS
La especificación algorítmica de sistemas secuenciales implementaeficientemente algoritmos o computaciones que se realizan sobrevectores de datos de n bits. Son los llamados algoritmos RT (’Regis-ter Transfer’).
Una computación es un conjunto de operaciones más simples queconsiste en la transferencia de vectores entre registros. Durante lastransferencias se realizan las operaciones de suma, desplazamien-to, comparación, etc.
Esta nueva metodología divide la implementación en dos bloquesbásicos:
• Camino de datos, el conjunto de elementos que implementael almacenamiento de datos y las funciones de transformaciónde los mismos.
• Sección de control, el sistema secuencial o autómata quecontrola la transferencia y transformaciones de los datos asícomo el secuenciamiento y la operación de todo el sistema.
El esquema general se puede ver en la siguiente figura:
2
CONCEPTOS BÁSICOS
El camino de datos recibe los datos del exterior (entra-das o “Data Input”) y devuelve los resultados obtenidos(salidas o “Data Output”).
La sección de control recibe órdenes e información delexterior (“Control Input”, por ejemplo, reset , begin, stop,modo de operación...) y envía información u órdenes alexterior (“Control Output”, por ejemplo, end , done, over-flow ...).
Las condiciones son generadas por el camino de datosy sirven para que la sección de control pueda tomar de-cisiones y realizar un control dependiente de los datos.
Ejemplos de condiciones son el signo de un operando, elacarreo en una operación, un desbordamiento, el valorde un bit o una comparación, etc.
Los puntos de control son las señales necesarias pararealizar las transformaciones de los datos. Son genera-das por la sección de control e indican al camino de da-tos el modo de operación de todos y cada uno de suselementos.
Ejemplos de puntos de control son la carga de un regis-tro, los bits de control de un MUX o de DEMUX, el tipode operación de una ALU, el incremento de un contador,el desplazamiento de un registro, el sentido del despla-zamiento, la lectura o escritura en una memoria, etc.
3
CONCEPTOS BÁSICOS
El resultado de aplicar o activar cada uno de los puntosde control se denomina microoperación.
El conjunto de microoperaciones que se pueden reali-zar de forma concurrente (en paralelo) se denomina mi-croinstrucción. Cada microinstrucción determina o equi-vale a un estado del autómata de la sección de control.
Cada estado debe indicar que puntos de control hay queactivar en ese momento y cual es su estado (microins-trucción) siguiente, que en general dependerá de las con-diciones actuales del camino de datos.
El conjunto o secuencia de todas las microinstruccionesconstituye un microprograma y su objetivo es imple-mentar el algoritmo o computación requerido.
4
CAMINO DE DATOS
Se encarga de almacenar y transformar los datos.
Consta de:
• Elementos de almacenamiento.
• Operadores.
• Buses.
Elementos de almacenamiento: almacenan la informa-ción. El componente básico es el registro de N bits.
• Registro de N bits con LOAD y CLEAR.
Operación: if LOAD then y←xif CLEAR then y←0
5
CAMINO DE DATOS
RAM = conjunto de 2k registros de N bits que sólo pue-den accederse de uno en uno.
Operación: if READ then y←M[ϑ(A)] else y←0if WRITE then M[ϑ(A)]←x
siendo ϑ(A) =∑k−1
i=0Ai · 2i
Fichero de registros.
Operación: if READ then y←R[ϑ(A)] else y←0if WRITE then R[ϑ(A)]←x
6
CAMINO DE DATOS
Otros elementos de almacenamiento: FIFO y LIFO
Operadores: se encargan de transformar los datos.
donde OP: ADD, SUB, MAX, MIN, ...AND, OR, NOR, EXOR, ...SHIFT, ...
OP también puede representar una función más compleja imple-mentada con sistemas secuenciales (multiplicadores, divisores, ...).
Los operadores generan algunas condiciones: >, <, =, carry, over-flow, ...
7
CAMINO DE DATOS
Buses: son las conexiones, junto con los switches necesarios, quecomunican los distintos elementos del camino de datos (registros yoperadores).
Se clasifican en:
• Paralelos/Serie
• Unidireccionales/Bidireccionales
• Dedicados/Compartidos
• Directos/Indirectos
8
CAMINO DE DATOS
Switches: establecen o cortan el acceso al bus.
• Unidireccionales
• Bidireccionales
9
CAMINO DE DATOS
Selector: selecciona una de entre varias fuentes de da-tos (MUX).
Distribuidor: selecciona uno de entre varios destinos dedatos (DEMUX).
10
CAMINO DE DATOS
Ejemplos de buses:
• Crossbar
• Bus compartido
◦ Usando un selector.
◦ Usando registros con salida triestado.
11
SECCIÓN DE CONTROL
Es el sistema secuencial o autómata que al activar los puntos decontrol en el orden adecuado controla las transferencias y transfor-maciones de los datos que tienen lugar en el camino de datos y queimplementan un algoritmo específico.
Cada estado o microinstrucción de la sección de control indica quépuntos de control se activan en cada momento (salidas del autóma-ta) y, en función de las condiciones (entradas del autómata), cual esel estado o microinstrucción siguiente.
La sección de control también se puede representar mediante undiagrama de flujo.
Existen diversos métodos para implementar una sección de control:
1. Tablas de estado.
2. Elementos de retardo.
3. Microprogramación.
Tablas de Estado
• Es la metodología que ya se ha explicado.
• Es compleja, dificil de depurar, no es modular ni flexible y esdificil realizar modificaciones (no hai una relación evidente entrela implementación y el algoritmo).
• Su uso es poco frecuente.
• Se denomina “Lógica Aleatoria”.
12
SECCIÓN DE CONTROL
Elementos de retardo
• Implementación sencilla y directa.
• Alta velocidad pero con un alto coste hardware.
• Se utiliza en sistemas relativamente pequeños.
• Cada estado se implementa con un biestable tipo D.
• Exiten equivalencias entre un autómata, un diagrama de flujo yla implementación mediante elementos de retardo.
⇔ ⇔
⇔ ⇔
13
SECCIÓN DE CONTROL
Los puntos de control que se activan en cada estado se sacan de lasalida del biestable correspondiente.
Para activar un punto de control en dos o más estados:
14
SECCIÓN DE CONTROL
Ejemplo: implementación con elementos de retardo
Autómata Diagrama de Flujo
15
SECCIÓN DE CONTROL
Ejemplo (cont.): implem. con elementos de retardo
16
SECCIÓN DE CONTROL
Ejemplo (cont.): implem. con elementos de retardo
17
SECCIÓN DE CONTROL
Microprogramación
• La implementación es sencilla y estándar.
• El hardware es casi independiente de la implemen-tación.
• Es muy flexible y versátil.
• Fácil de depurar, modificar y ampliar.
• Su funcionamiento es relativamente lento debido alos accesos a la memoria de control.
• Apta para sistemas grandes y/o complejos.
18
SECCIÓN DE CONTROL
Microprogramación
• Una de las implementaciones más sencillas:
19
SECCIÓN DE CONTROL
Memoria de control
• Almacena la información de control necesaria paraejecutar el algoritmo.
• Su tamaño viene dado por el número de microins-trucciones (2k) del microprograma por el número debits por microinstrucción (m).
• Se puede implementar con una ROM, PROM o RAM.
Contador de microprograma (µPC)
• Direcciona la memoria de control para seleccionar lasiguiente microinstrucción (µI).
20
SECCIÓN DE CONTROL
Registro de microinstrucciones (MIR)
• Almacena la µI que se está ejecutando actualmente.
• Ejemplo de formato doble para codificar las µI:
1. Para instrucciones de salto:
◦ El bit más significativo a cero.
◦ El campo condición indica la condición a verificar.
◦ El campo dirección de salto codifica la dirección de lasiguiente µI a ejecutar si la condición es cierta.
2. Para puntos de control:
◦ El bit más significativo a uno.
◦ Los puntos de control pueden estar codificados (micro-programación vertical) o no (microprogramación horizon-tal).
21
SECCIÓN DE CONTROL
El funcionamiento o secuenciamiento puede realizarse de diferentesformas. Una de las más sencillas:
• a: generación de la dirección siguiente = el µPC se incrementa(ejecución de la siguiente µI) o se carga una nueva dirección(salto).
• b: se direcciona la memoria de control = lectura de la µI co-rrespondiente.
• c: carga de la µI direccionada en el MIR.
• d: ejecución de la µI, dos posibilidades:
1. Activación de los puntos de control y desactivación del MUXde condiciones⇒ El µPC se incrementa.
2. Selección en el MUX de la condición a verificar. Si se cumplela salida del MUX = 1⇒ el µPC se carga con la direcciónespecificada en la µI.
22
SECCIÓN DE CONTROL
Ejemplo de sección de control microprogramada
23
SECCIÓN DE CONTROL
Ejemplo de sección de control microprogramada (cont.)
24
SUMADOR SECUENCIAL
Algoritmo 0 (alto nivel): realiza la operación pero no tie-ne en cuenta la sincronización con el exterior.
Cargar A
Cargar B
Borrar C
for I=1 to n
{Di ← Ai ⊕ Bi ⊕ CC ← Ai ·Bi + (Ai ⊕ Bi) · C
}
25
SUMADOR SECUENCIAL
Algoritmo 1: introduce la sincronización con el exterior mediantedos señales:
1. Control Input: start , indica cuando comenzar la operación.
2. Control Output: done, indica cuando ha finalizado. Mientras es-ta señal esté a cero no puede comenzarse una nueva opera-ción.
También se identifican las entradas y salidas utilizadas:
1. Data Inputs: A, B
2. Data Outputs: D
WAIT: dodone ← 1
while (start)done ← 0
------------------------------Cargar ACargar BBorrar Cfor I=1 to n{
Di ← Ai ⊕ Bi ⊕ CC ← Ai ·Bi + (Ai ⊕ Bi) · C
}
------------------------------goto WAIT
26
SUMADOR SECUENCIAL
Una vez identificadas las líneas de conexión con el exte-rior empezaremos por diseñar un camino de datos capazde realizar el algoritmo:
1. Se identifican las unidades de almacenamiento y ope-radores necesarios:
• A, B y D: registros de n bits.
• C, done: biestables (registros de 1 bit).
• 1 FA.
• 1 Contador + 1 Comparador.
2. Se establecen las conexiones entre los elementosdel camino de datos identificados y se determinanlos puntos de control necesarios (existen diferentesalternativas).
27
SUMADOR SECUENCIAL
Camino de datos (alternativa 1)
28
SUMADOR SECUENCIAL
Algoritmo 2: introduce los puntos de control (microoperaciones)
WAIT: doPreset
while (start)ClearLOADA
LOADB
CLEARC
for I=1 to n{
SHIFTD
LOADC
SHIFT A
SHIFT B
}goto WAIT
Existen microoperaciones que pueden realizarse simultaneamente(p.e. LOADA y CLEARC), por lo que ambos puntos de controlpueden activarse simultaneamente y formar una microinstrucción.
Por el contrario hay puntos que no se pueden activar simultanea-mente (p.e. LOADA y LOADB), por lo que formaran microinstruc-ciones diferentes.
29
SUMADOR SECUENCIAL
Algoritmo 3: se identifican las operaciones simultaneas(se reduce el número de microinstrucciones necesarias).
WAIT: doPreset
while (start)Clear || LOADA|| CLEARC
LOADB
for I=1 to nSHIFTD || LOADC|| SHIFT A|| SHIFT B
goto WAIT
30
SUMADOR SECUENCIAL
El último paso consiste en eliminar las estructuras de control com-plejas (bucles WHILE, FOR, etc.) remplazándolas por saltos condi-cionales (if ) o incondicionales (goto).
dooperación
while (x)
pasaría a ser:
LOOP: operaciónif (x) then goto LOOP
for I=1 to noperación
pasaría a ser:
CLEARI
LOOP: operación || INCI
if (I<n) then goto LOOP
31
SUMADOR SECUENCIAL
Algoritmo 4: se substituyen las estructuras complejas por sus mi-croinstrucciones equivalentes activando en paralelo los puntos decontrol que lo permitan.
WAIT: S0: Presetif (start) then goto WAITS1: Clear || LOADA|| CLEARC|| CLEARI
S2 : LOADB
LOOP: S3: SHIFTD || LOADC|| SHIFT A|| SHIFT B||INCI
if (I<n) then goto LOOPgoto WAIT
32
SUMADOR SECUENCIAL
El algoritmo puede expresarse también mediante un au-tómata o diagrama de flujo.
33
SUMADOR SECUENCIAL
El camino de datos que implementa una computación noes único. Otra posibilidad:
34
SUMADOR SECUENCIAL
Algoritmo 4 bis: sólo cambian los puntos de control que se activanen S3
WAIT: S0: Presetif (start) then goto WAITS1: Clear || LOADA|| CLEARC|| CLEARI
S2 : LOADB
LOOP: S3: SHIFTD || LOADC|| INCI
if (I<n) then goto LOOPgoto WAIT
35
SUMADOR SECUENCIAL
Implementación de la sección de control: elementos deretardo.
36
SUMADOR SECUENCIAL
Implementación de la sección de control: elementos deretardo.
37
SUMADOR SECUENCIAL
Implementación de la sección de control: microprogra-mación.
38
SUMADOR SECUENCIAL
Implementación de la sección de control: microprogra-mación.
39
29EJERCICIOS9.1. Es ribe el mi ro �odigo de la memoria ROM de la se i�on de ontrol de un sistemaque realiza el algoritmo que se expone a ontinua i�on, indi ando los valores de lasentradas del multiplexor de sele i�on de salto.INICIO : a tivar PRESETif empieza goto INICIOa tivar LOADR y CLEARTEST : if z1z0 = 10 goto BUCLEelse if z1z0 = 01 goto CORRECCIONelse a tivar DESPLAZARBUCLE : a tivar INCREMENTAa tivar RESTA y LOADDif I < n goto BUCLEgoto INICIOCORRECCION : a tivar SUMA y LOADRgoto TEST9.2. Dado el aut�omata de la �gura dise~na su orrespondiente unidad de ontrol mi ro-progamada ompleta.
S5
S0
S1
S2
start
c
z
S4
S3
I>n
start
z
I<n
c
{C , C , C }0 1 2
{C , C }1 3
{C , C }4 6
{C , C }2 7
{C }8
{C }5
30 TEMA 9. ESPECIFICACI �ON ALGOR�ITMICA DE SISTEMAS SECUENCIALES9.3. La siguiente �gura representa una unidad de ontrol implementada on elementosde retardo. Extrae su aut�omata de ontrol e implem�entalo mediante la t�e ni a de ontrol mi roprogramado.DQ
DQ
DQ
DQ
3
3
DQ
4
4
DEMUX1 a 4
DQ
5
5
DEMUXstart
1 0
DEMUX1 a 2
1 a 2
0
0
1
1
2
2
C0
C1
CLK
Preset
I>n
Clear
C4,C6
C2,C7
C3
00 01 10 11
0 1
X
Y
C59.4. Dise~na una unidad de ontrol mi roprogramada ompleta orrespondiente al algo-ritmo siguiente que realiza la multipli a i�on entre dos n�umeros naturales X e Y de uatro bits, teniendo en uenta el amino de datos de la �gura. Cal ula tambi�en u�al es la mejor se~nal de reloj para sin ronizar el sistema, teniendo en uenta lossiguientes datos: tiempo de estabiliza i�on de los registros y ontadores 10ns, tiempode retardo en el sumador de 4 bits 30 ns, tiempo de retardo en el omparador y enlos multiplexores 20 ns, tiempo de a eso a la memoria 90 ns. arga X arga YAC = 0for i = 1 to YAC = AC plus Xend 4 bitsSUM
inCCout4 bitsSUM
inCCout
LOADRexistro X
LOADRexistro Y
A<B A>BA=B
A B
COMP
LOADRexistro S
LOADRexistro ACH
CLEARRexistro ACL
CLEAR
LOAD
COUNT
CLEAR
4bits
0
0
RELOXOLX LY CON
CC
LS
CAC
BUS DE ENTRADA
0
4
4 4
4 4
4
44
44
4
4
8
4
Q
D
BUS DE SAÍDA
LAC
CONT
FIN
A<B A=B A>B
9.5. Obter o autómata de control e deseñar a unidade de control microprogramada completa que implemente o algoritmo seguinte:
INICIO: activar READYIF goto INICIO
BUCLE: activar OK, STARTINGIF end goto ESPERARELSE
activar OK, SELECTIF input = 00
activar PROCESSINGELSE IF input = 01
activar INITIATINGactivar PROCESSINGactivar DONE
ELSE goto RECUPERAREND IFgoto BUCLE
ESPERAR: activar WAIT, CHECKIF goto ESPERARgoto INICIO
RECUPERAR: activar FAULTIF
activar WAIT, RESTORINGgoto ESPERAR
END IFgoto BUCLE
start
ready
ready
S0
S1
S2
S4
S5
start
start
{READY}
{OK, STARTING}
{OK, SELECT}
{PROCESSING}
{INITIATING}
S6
S7
end
i1i0=00
S3
i1i0=01
end
S8
S9
ready
ready
ready
i1i0=10OR
i1i0=11(i1=1)
{PROCESSING}
{DONE}
{WAIT, CHECK}
{FAULT}
{WAIT, RESTORING}
INICIO:
BUCLE:
ESPERAR:
RECUPERAR:
Temos:
11 puntos de control 10 microinstruccións de activación 5 condicións no MUX 12 instruccións de salto
9.5. Autómata de Control:
ready
9.5. Diagrama de Fluxo:
S0
start si
S1
no
endno
S2
i1i0=00
S3 i1i0=01
si
no
S4
S5
S6
S7
S8
S9
no
no
si
si
si
no
si
{READY}
{OK, STARTING}
{OK, SELECT}
{PROCESSING}
{INITIATING}
{PROCESSING}
{DONE}
{WAIT, CHECK}
{FAULT}
{WAIT, RESTORING}
ready
ready
9.5. Implementación con Elementos de Retardo:
S0Pr
S1Cl
S2Cl
S3Cl
S4Cl
S5Cl
S6Cl
S7Cl
S8Cl
S9Cl
DEMUX1 a 2
0 1
DEMUX1 a 2
0 1
DEMUX1 a 2
0 1
DEMUX1 a 2
0 1
DEMUX1 a 2
0 1
DEMUX1 a 2
0 1
READY
STARTING
OK
SELECT
PROCESSING
INITIATING
DONE
RESTORING
CHECK
WAIT
FAULT
PRESET
CLOCK
START
CLEAR
END
i1i0 = 00
i1i0 = 01
READY
9.5. Unidade de Control Microprogramada:
ROM
(32 x 12)
CONTADOR MICROPROGRAMA CLK
1
LOAD
INCR
STROBE
MUX8 a 1
12
3
startend
readyi1i0 = 00i1i0 = 01
5
5
REG. MICROINSTRUCCIONES
RE
AD
YO
KST
AR
TIN
GSE
LE
CT
PRO
CE
SSING
INIT
IAT
ING
DO
NE
WA
ITC
HE
CK
FAU
LT
RE
STO
RIN
G
1 1 0 0 0 0 0 0 0 0 0 00 0 0 1 x x x 0 0 0 0 01 0 1 1 0 0 0 0 0 0 0 00 0 1 0 x x x 0 1 1 1 01 0 1 0 1 0 0 0 0 0 0 00 1 0 0 x x x 0 1 0 0 00 1 0 1 x x x 0 1 0 1 00 0 0 0 x x x 1 0 0 0 11 0 0 0 0 1 0 0 0 0 0 00 0 0 0 x x x 0 0 0 1 01 0 0 0 0 0 1 0 0 0 0 01 0 0 0 0 1 0 0 0 0 0 01 0 0 0 0 0 0 1 0 0 0 00 0 0 0 x x x 0 0 0 1 01 0 0 0 0 0 0 0 1 1 0 00 0 1 1 x x x 0 1 1 1 00 0 0 0 x x x 0 0 0 0 01 0 0 0 0 0 0 0 0 0 1 00 0 1 1 x x x 1 0 1 0 00 0 0 0 x x x 0 0 0 1 01 0 0 0 0 0 0 0 1 0 0 10 0 0 0 x x x 0 1 1 1 0
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
. . .
INICIO:
BUCLE:
ESPERAR:
RECUPERAR:
activar READYIF start goto INICIOactivar OK, STARTINGIF end goto ESPERARactivar OK, SELECTIF i1i0 = 00 goto 8IF i1i0 = 01 goto 10goto RECUPERARactivar PROCESSINGgoto BUCLEactivar INITIATINGactivar PROCESSINGactivar DONEgoto BUCLEactivar WAIT, CHECKIF ready goto ESPERARgoto INICIOactivar FAULTIF ready goto 20goto BUCLEactivar WAIT, RESTORINGgoto ESPERAR
[Examen TC Septiembre'2005]
Deseñar a unidade de control microprogramada completa do seguiente algoritmo:
INICIO: activar PREPARADOIF GOTO INICIO
activar INICIALIZANDOBUCLE_TIEMPO: activar CALCULAR_INSTANTE
activar INICIALIZAR1, INICIALIZAR2, INICIALIZAR3IF x1x0 = 11
activar PROCESAR1ELSE IF x1x0 = 01
activar PROCESAR2activar DONE
ELSEIF parar
activar FINALIZARGOTO INICIO
END IFEND IFGOTO TESTGOTO BUCLE_TIEMPO
TEST: activar PONER_A_CEROBUCLE_TEST: activar ACUMULAR
IF parar activar FINALIZARGOTO INICIO
END IFactivar COMPARARIF GOTO BUCLE_TESTGOTO BUCLE_TIEMPO
empezar
converge
S0
S3
S5
S6
empezar
empezar
{PREPARADO}
{INICIALIZAR1, INICIALIZAR2, INICIALIZAR3 }
{FINALIZAR}
{DONE}
S7
X1X0=11
S4
S10
S11
parar
converge
(X1X0=00 AND parar)OR
(X1X0=10 AND parar) (X0=0 AND parar)
{PROCESAR2}
{PONER_A_CERO}
{ACUMULAR}
INICIO:
BUCLE_TIEMPO:
TEST:
BUCLE_TEST:
Temos:
13 puntos de control 12 microinstruccións de activación 5 condicións no MUX 7 instruccións de salto
[Examen TC Septiembre'2005] Autómata de Control:
parar
S1{INICIALIZANDO}
S2{CALCULAR_INSTANTE}
{PROCESAR1}
X1X0=01
S8
S9
{FINALIZAR}
{COMPARAR}
converge
ROM
(32 x 14)
CONTADOR MICROPROGRAMA CLK
1
LOAD
INCR
STROBE
MUX8 a 1
14
3
empezarparar
convergex1x0 = 11x1x0 = 01
5
5
REG. MICROINSTRUCCIONES
PRE
PAR
AD
OIN
ICIA
LIZ
AN
DO
CA
LC
UL
AR
_INST
AN
TE
INIC
IAL
IZA
R1
INIC
IAL
IZA
R2
INIC
IAL
IAR
3PR
OC
ESA
R1
PRO
CE
SAR
2D
ON
EFIN
AL
IZA
RPO
NE
R_A
_CE
RO
activar PREPARADOIF empezar goto INICIOactivar INICIALIZANDOactivar CALCULAR_INSTANTEactivar INIC1, INIC2, INIC3IF x1x0 = 11 goto 9IF x1x0 = 01 goto 11IF parar goto 14goto TESTactivar PROCESAR1goto TESTactivar PROCESAR2activar DONEgoto TESTactivar FINALIZARgoto INICIOactivar PONER_A_CEROactivar ACUMULARIF parar goto 14activar COMPARARIF converge goto BUCLE_TESTgoto BUCLE_TIEMPO
AC
UM
UL
AR
CO
MPA
RA
R
[Examen TC Septiembre'2005] Unidade de control micropogramada:
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
. . .
INICIO:
BUCLE_TIEMPO:
TEST:
BUCLE_TEST:
1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 x x x x x 0 0 0 0 0
0 0 0 0 x x x x x 1 0 0 0 0
0 0 0 0 x x x x x 1 0 0 0 0
0 0 0 0 x x x x x 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 x x x x x 0 0 0 0 0
0 1 0 0 x x x x x 0 1 0 0 1 0 1 0 1 x x x x x 0 1 0 1 1 0 0 1 0 x x x x x 0 1 1 1 0
0 0 1 0 x x x x x 0 1 1 1 0
0 0 1 1 x x x x x 1 0 0 0 1 0 0 0 0 x x x x x 0 0 0 1 1