Escolar Documentos
Profissional Documentos
Cultura Documentos
1
MARCO TEÓRICO
Se multiplica cada bit del multiplicador, empezando por el menos significativo, por todos
los bits del multiplicando Si es 0, el resultado es 0 Si es 1, el resultado es el multiplicando
Cada vez que se considera un nuevo bit del multiplicador, se desplaza hacia la izquierda una
posición el nuevo producto y se añade a la suma parcial acumulada La última suma parcial
será el resultado ejemplo
0110 ∗
1001
0110
0000
0000
0110
00110110
La explicación anterior es como normalmente opera el algoritmo, pero para este caso la
modificación es que en vez de recorrer para la izquierda recorrerá hacia la derecha el
resultado anterior de la suma parcial
El producto de un número binario de n bits con otro de m bits necesita m+n bits(m=4,n=4)
Sea A el multiplicador y B el multiplicando En este caso un registro de 4+4= 8 bits para el
resultado
Este algoritmo esta implementado como se ve en el ejemplo para dos operandos
(multiplicando y multiplicador) de 4 bits para lo cual se está usando dos registros de 8 bits
cada uno
Para realizar esta operación se está usando dos unidades:
1. Unidad de control: donde se controla las señales a los diferentes componentes que se
usa
2. Unidad de procesamiento: es donde se realiza la operación
1.1 ALGORITMO
Se inicializan a 0 el contador de bits del multiplicador y el registro R3
Se carga R1 con el multiplicando A y R2 con el multiplicador B
2
Se analiza el LSB de R2
Si es 1, se suma R1+ bits superiores de RPTA y el resultado se deja en RPTA
Si es 0, se suma R1 + 0 (es decir, no se hace nada) y el resultado se deja en R3
Se incrementa el contador
Se produce un desplazamiento aritmético posición hacia la derecha de la suma parcial
anterior
Se mira si el contador ha llegado hasta el final
En caso negativo se repite el proceso, volviendo a preguntar por el LSB de R2
En caso afirmativo se finaliza el proceso y el resultado está en R3
3
Vamos a ver la evolución de los registros al ejecutar la multiplicación anterior
2. UNIDAD DE PROCESAMIENTO
0
15
17
19
21
22
23
13
11
3
5
7
9
REGB
SR
MR
D0
D1
D2
D3
D4
D5
D6
D7
SL
S0
S1
CLK
74198
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
4
6
8
10
14
16
18
20
74198 en el proteus
diagrama de conexión data shet 5
b) 40161:
Contadores síncrono de 4 bits programable.
14 3
Q0 A
13 4
Q1 B
12 5
Q2 C
11 6
Q3 D
NOT
U2
15 7
RCO ENP
10
ENT
9
LD
2
CLK
15 1
2E MR
1
1E
2
40161
CONT
B
14
A
13
2X3
12
2X2
11
2X1
Datashet
9
2Y 2X0
10 Proteus
3 4 3
1X3 Q0 D0
4 6 5
1X2 Q1 D1
5 8 7
c) 74153 y 74157 7
1X1
6 10
Q2 D2
9
1Y 1X0 Q3 D3
14 15
74153 es un multiplexor de 4 entradas de alta velocidad con entradas de selección comunes
16
Q4 D4
17
74153
LSB
Q5 D5
NOT
U3
18 19
Q6 D6
y entradas de habilitación individuales para cada sección. Puede seleccionar dos bits de datos
20
Q7 D7
21
0
0
2
de cuatro fuentes. Las dos salidas almacenadas en búfer presentan
SR los
22
datos en la forma
SL
11
3
S1
funciones de tres variables MR
13
4 6
R S
74198
REGB
C:A
NOT
U2
Q
Q
4013
15
2E
1
1E
2
B
14
A
13
2X3
12
2X2
11
2X1
9 10
2Y 2X0
13
MR 3
23
1X3
S1 4
1
1X2
S0 5
8 11
1X1
M 7 CLK 6
3 1Y SL 22
1X0
S3
4 2
S2 SR
0
0
5
74153
LSB
S1
NOT
U3
6 20 21
S0 Q7 D7
18 19
Q6 D6
7 16 17
CN Q5 D5
14 15
Q4 D4
15 18 10 9
P B3 Q3 D3
d) 74157 17
G B2
20 8
Q2 D2
7
16 22 6 5
CN+4 B1 Q1 D1
14 1 4
Estos multiplexores de selectores de datos monolíticos contienen inversores y controladores 3
A=B B0 Q0 D0
21
19
17
15
13 19
2
9
7
5
3
74198
REGA
10 23
SR
D7
D6
D5
D4
D3
D2
D1
D0
F1 A1
proporciona una entrada
9 separada. Una
A0 palabra de 4 bits se selecciona entre dos fuentes y se
2
3
5
4
6
2
1
7
F0
7447
A
LT
RBI
BI/RBO
D
C
B
A
74LS181
ALU
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
6
20
18
16
14
10
8
6
4
15
E
1
A/B
QG
QD
QC
QE
QB
QA
QF
13
4B
G B2
16 22
CN+4 B1
14 1
A=B B0
13 19
F3 A3
11 21
F2 A2
10 23
F1 A1
9 2
encamina a las cuatro salidas. Los '157 presentan datos verdaderos mientras F0
que los ls158 A0
74LS181
ALU
presentan datos invertidos para minimizar el tiempo de retardo de propagación
15
E
1
A/B
13
4B
12 14
4Y 4A
10
3B
9 11
3Y 3A
6
2B
7 5
2Y 2A
3
1B
4 2
1Y 1A
74157
AUX
e) A.L.U. 74LS181
El LS181 es una Unidad Aritmética Lógica (ALU) de 4 bits que puede realizar todas las
posibles 16 operaciones lógicas en dos variables y una variedad de operaciones aritméticas.
Características
Proporciona 16 operaciones aritméticas: suma, resta, compara, dobla, más doce otras
operaciones aritméticas
Proporciona las 16 operaciones lógicas de dos variables: OR-exclusivo, comparar,
AND, NAND, OR, NOR, más diez otras operaciones lógicas
Mirada completa para la operación aritmética de alta velocidad en palabras largas
conbinacion accion M
8
3
S3
A0-A3 Entradas de operando (Active LOW) S2
4
5
S1
6
B0-B3 Entradas de operando (Active LOW) S0
7
S0 -S3 Selección de funciones Entradas CN
15 18
M Entrada de control de modo 17
P B3
20
G B2
16 22
Cn Carry Input 14
CN+4 B1
1
A=B B0
F0-F3 Función Salidas (Active LOW) 13 19
F3 A3
11 21
A-B Salida del comparador 10
F2 A2
23
F1 A1
9 2
G Llevar Generar Salida (Active LOW) F0 A0
74LS181
ALU
B
7 13
A QA
1 12
B QB
2 11
C QC
6 10
D QD
4 9
BI/RBO QE
5 15
RBI QF
3 14
LT QG
7447
REGB(CLK) REGA(CLK)
A
7 13
1 1 1
A
B
QA
QB
12
2 11
1 1 6
C
D
QC
QD
10
4 9
0 0 5
BI/RBO
RBI
QE
QF
15
3 14
0 0 LT QG
7447
10
15
17
19
21
22
23
13
13
23
22
21
19
17
15
11
11
3
4
5
6
9
2
1
3
5
7
9
9
7
5
3
CONT REGB REGA
ENT
C
D
LD
MR
SR
MR
MR
SR
D0
D1
D2
D3
D4
D5
D6
D7
SL
S0
S1
S1
S0
SL
D7
D6
D5
D4
D3
D2
D1
D0
A
B
ENP
CLK
CLK
CLK
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
14
13
12
11
15
4
6
8
10
14
16
18
20
20
18
16
14
10
8
6
4
15
14
13
12
10
11
1
2
3
4
5
6
18
20
22
19
21
23
U2
8
3
4
5
6
LSB
2X3
2X2
2X1
2X0
1X3
1X2
1X1
1X0
2E
1E
B
A
NOT
ALU
CN
S3
S2
S1
S0
B3
B2
B1
B0
A3
A2
A1
A0
M
74153
74LS181
2Y
1Y
CN+4
A=B
9
15
13
14
10
11
F3
F2
F1
F0
6
5
3
2
G
P
AUX
E
A/B
4B
4A
3B
3A
2B
2A
1B
1A
15
17
16
14
13
11
10
9
U3 74157
NOT
4Y
3Y
2Y
1Y
12
C:A
6
5 1
S
D Q
3
CLK RPTA 4L
2 3 4 7 13
Q D0 Q0 A QA
R
5 6 1 12
D1 Q1 B QB
7 8 2 11
D2 Q2 C QC
4
4013 9 10 6 10
D3 Q3 D QD
15 14 4 9
D4 Q4 BI/RBO QE
17 16 5 15
D5 Q5 RBI QF
19 18 3 14
D6 Q6 LT QG
21 20
D7 Q7
7447
2
SR
RPTA(CLK) 22
SL
11
CLK
1
S0 4H
23
S1
13 7 13
MR A QA
1 12
B QB
74198 2 11
C QC
6 10
D QD
4 9
BI/RBO QE
5 15
RBI QF
3 14
LT QG
MUXREG-0 7447
2 4
1A 1Y
3
1B
5 7
2A 2Y
6
2B
11 9
3A 3Y
10
3B
14 12
4A 4Y
13
4B
1
A/B
15
E
74157
8
2.3.DESCRIPCION DE LA UNIDAD DE PROCESAMIENTO
Esta unidad pasa por las siguientes etapas:
Primero la unidad de control envía las señales para que los números se carguen en los
registros A y B
Los datos cargados en el registro B pasa por el mux para que pueda pasar solo el bit con el
q se debe operar el cual es modulado por el contador empezando por el menos significativo.
Por ejemplo, si el el número es 0110 entonces primero pasara 0 (el bit menos significativo)
ya q el contador estará en 00 luego pasara el 1 cuando el reloj este en 01 y así sucesivamente
hasta q el reloj llegue a 11
Una vez que salga el bit del mux este se invierte para ser analizado en la unidad de control
ya q depende de este si se realiza una acción. Por ejemplo, si el bit que pasa por el mux es 1
entonces ira a la UC para que este envíe las señales necesario para que se realice la suma, ò
0 para que no se realice nada
Una vez salido el dato del registro A pasa al A.L.U. para ser operado con el valor que tenga
el registro RPTA al inicio este inicia en 0000.
El carry o desbordamiento de la suma realizada en el A.L.U. es almacenada en un flip flop
D para q este dato no se pierda y se pasa al registro RPTA
El registro RPTA y A.L.U. reciben señales de la UC para realizar las diferentes tareas que
especifica el diagrama de estados, que este a su vez esta plasmado en un archivo .bin en la
rom (en este caso 2 rom’s)
Finalmente del registro RPTA pasa a los decoder y este a las pantallas led . el cual
implementamos para su fácil comprensión.
Se usa 2 pantallas por que el registro RPTA salen 8 bits de respuesta pero cada pantalla solo
puede proyectar hasta número 9 para los demás dígitos presentamos la leyenda para dicho
dígitos
9
SIMBOLO NUMERO BINARIO
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
2.2HERRAMIENTAS
Para el desarrollo de es procesador utilizamos el “PROTEUS 8 PROFESSIONAL
PROTEUS DESIGN SUITE es software de automatización de diseño electrónico,
desarrollado por Labcenter Electronics Ltd., que consta de los dos programas principales:
Ares e Isis, y los módulos VSM y Electra.
ISIS
El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de
Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea
realizar con componentes muy variados, desde simples resistencias, hasta alguno que
otro microprocesador o microcontrolador, incluyendo fuentes de alimentación,
generadores de señales y muchos otros componentes con prestaciones diferentes. Los
diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo
VSM, asociado directamente con ISIS.
ARES
ARES, o Advanced Routing and Editing Software (Software de Edición y Ruteo
Avanzado); es la herramienta de enrutado, ubicación y edición de componentes, se
utiliza para la fabricación de placas de circuito impreso, permitiendo editar
generalmente, las capas superficial (Top Copper), y de soldadura (Bottom Copper).
10
3. UNIDAD DE CONTROL
3.1. PRUEBA MANUAL DE EJECUCIÓN DEL ALGORITMO EN LA UNIDAD DE
CONTROL
3.2.HARDWARE
3.2.1. DESCRIPCIÓN DE LAS HERRAMIENTAS DE SIMULACIÓN UTILIZADAS PARA EL
DISEÑO.
Esta unidad consta de 6 componentes. 2 MEMORIAS EPROM’S para el
grabado del microprograma, 1 registro para el registro de direcciones, 2 mux uno
para el registro de direcciones y otro para el PSW, 1 contador, 2 señales de reloj
uno para el registro de direcciones y otro para el contador.
La descripción detallada se presenta a continuación:
2 MEMORIAS 27C256 se usaron dos porque se necesitó grabar 14 bits
y cada MEMORIA solo tiene 8 bits por ello se usó un HIGH MEMORY
para los bits más significativos y un LOW MEMORY para las cifras
menos significativas.
1 Registro 74196 para las direcciones.
1 contador 40161 para avanzar entre fila y fila de las microinstrucciones.
2 mux, uno74153 para el PSW y otro 74157 para las direcciones.
11
3.2.2. ESPECIFICACIONES DE LOS COMPONENTES
Ya no mencionaremos el registro, el contador y los multiplexores ya que se especificó en la
unidad de control y se especificó algunos de sus detalles según sus DATASHET respectivos.
27C256: es una memoria de sólo lectura (EPROM) eléctricamente programable de
256K bit de CMOS. El dispositivo está organizado como 32K palabras por 8 bits
(32K bytes). El acceso a bytes individuales a partir de una transición de dirección o
desde el encendido (el pin de habilitación de chip se hace más bajo) se logra en menos
de 90 ns. Este dispositivo de alta velocidad permite que los microprocesadores más
sofisticados funcionen a toda velocidad sin la necesidad de estados WAIT. El diseño
y el procesamiento CMOS permiten que esta parte se utilice en sistemas en los que
se requiere un consumo de energía y una fiabilidad reducidos. Se ofrece una familia
completa de paquetes para ofrecer la mayor flexibilidad en las aplicaciones. Para
aplicaciones de montaje en superficie, se dispone de embalajes PLCC, SOIC, VSOP
o TSOP. El embalaje de cinta y carrete también está disponible para paquetes PLCC
o SOIC.
12
13
15
16
17
18
19
12
13
15
16
17
18
19
11
11
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
HIGH
27C256
27C256
LOW
VPP
VPP
A10
A12
A13
A14
A10
A12
A13
A14
A11
A11
OE
OE
CE
CE
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
10
9
8
7
6
5
4
3
25
24
21
23
2
26
27
20
22
1
10
9
8
7
6
5
4
3
25
24
21
23
2
26
27
20
22
1
12
3.2.3. HARDWARE DE LA UNIDAD DE PROCESAMIENTO
HIGH
10 11
A0 D0
9 12
A1 D1
8 13
A2 D2
7 15
A3 D3
6 16
A4 D4
5 17
A5 D5
4 18
A6 D6
3 19
MUXDIR CAR A7 D7
25
A8
2 4 3 4 24
1A 1Y D0 Q0 A9
3 5 6 21
1B D1 Q1 A10
5 7 7 8 23
2A 2Y D2 Q2 A11
6 9 10 2
2B D3 Q3 A12
11 9 15 14 26
3A 3Y D4 Q4 A13
10 17 16 27
3B D5 Q5 A14
14 12 19 18
4A 4Y D6 Q6
13 21 20 20
4B D7 Q7 CE
22
OE
1 2 1
A/B SR VPP
15 CAR(CLK) 22
E SL
11 27C256
CLK
74157 1
S0
23
S1 LOW
13
MR
10 11
A0 D0
74198 9 12
A1 D1
8 13
A2 D2
7 15
A3 D3
6 16
A4 D4
5 17
A5 D5
4 18
A6 D6
3 19
A7 D7
25
7
A8
24
A9
PSW 21
1Y
2Y
A10
74153 23
A11
U1 2
A12
NOT 26
A13
1X0
1X1
1X2
1X3
2X0
2X1
2X2
2X3
27
1E
2E
A14
A
B
20
CE
6
5
4
3
10
11
12
13
14
2
1
15
22
OE
1
VPP
27C256
COUNT
3 14
A Q0
4 13
B Q1
5 12
C Q2
6 11
D Q3
7 15
ENP RCO
10
ENT
COUNT(CLK) 9
LD
2
CLK
1
MR
40161
13
Necesitamos que el contador se cargue en la dirección de memoria del registro , cada
vez que el registro haya hecho una lectura , es decir necesitamos que después de un
flanco de subida del reloj propia del registro necesitamos que LD=0 y al reloj del
contador en flanco de subida
Inmediatamente después necesitamos incrementar en 1 esta dirección para tener la
parte secuencial del microprograma para ello es necesario que LD=1 y al reloj del
contador en flanco de subida
El reloj del contador debe tener una frecuencia inversa a la del reloj del registro
A continuación detallamos el micro programa desarrollado para este algoritmo
RA:
RB:
MUX:
S0
S1
I:
MR:
D:
C:
3.2.5. HERRAMIENTAS
Para esta parte usamos para el diseño el “PROTEUS” y para el diseño del microprograma
el programa “MAX LOADER” que hace posible el grabado de las instrucciones en las
memorias
14
auto-programa que borra automáticamente el chip, carga el archivo HEX seleccionado, y
verifica el contenido.
15
Conclusiones
16
BIBLIOGRAFÍA
17